Tutorials Information

  

Monday, 5th
 

T1. Verification and validation for reliable software systems (Morning)
William Bail, The MITRE Corporation

Contents

In the development of software systems, the role of verification and validation is often not formally recognized or applied. In fact, throughout development, the roles of construction and verification are intertwined. In this tutorial we examine the nature of V&V as applied to software systems with high expectations of dependability, and present techniques that have been shown to increase quality and dependability. Rather than being an exclusively “testing” activity, V&V consists of a wide range of practices, each with strengths and weaknesses, that support careful and considered development of software systems.

  • Introduction
  • Terminology
  • Development life cycles
  • Overview of practices
  • Inspections
  • Audits
  • Reviews
  • Testing
    • Types of testing
    • Levels of testing
  • Special problems
  • Planning for verification and validation

Presenter

Dr. Bail received a BS in Mathematics from Carnegie Institute of Technology, and an MS and Ph.D. in Computer Science from the University of Maryland. Since 1990, Dr. Bail has worked for The MITRE Corporation in McLean VA as a Computer Scientist in the Software Engineering Center (SWEC). MITRE is a not-for profit corporation chartered to provide systems engineering services to the U.S. Government agencies, primarily the DoD, the FAA, and the IRS. Within MITRE, the SWEC focuses on supporting various programs with consultation, particularly transitioning emerging technologies into practice. Dr. Bail’s technical areas of focus include dependable software design and assessment, error handling policies, techniques for software specification development, design methodologies, metric definition and application, and verification and validation. At MITRE, Dr. Bail is currently supporting the U.S. Navy, focusing on the practice of software engineering within PEO IWS (Integrated Warfare Systems), particularly as applied to large real-time systems. Prior to 1990, Dr. Bail worked at Intermetrics Inc. in Bethesda MD.
Since 1989 he has served as a part-time Adjunct Associate Professor at the University of Maryland University College where he develops instructional materials and teaches courses in software engineering, in topics such as Software Requirements, Verification and Validation, Software Design, Software Engineering, Fault Tolerant Software, and others. Previously, Dr. Bail taught part-time at The University of Maryland from 1983-1986 in the Computer Science Department for undergraduate courses in discrete mathematics, computer architecture, and programming language theory.
Dr. Bail has presented tutorials on Cleanroom Software Engineering, Semi-Formal Development Techniques, Statistical Testing, and Requirements Engineering for Dependable Systems at SIGAda, AdaEurope, and other conferences.

Why you should participate in this tutorial?

This tutorial will assist in planning for complex systems development by providing a framework of verification steps that will maximize the opportunity for success with the efficient use of resources.
 


T2. The Ada 2005 Standard Container Library (Afternoon)
Matthew Heaney, On2 Technologies

Contents

This tutorial provides an overview of the standard container library, describing its design and philosophy and presenting techniques for using the library most effectively. Containers are divided into two main categories: sequence containers, to insert elements at specified positions, and associative containers, which insert elements in order by key. The library includes vectors and lists (from the former category), and hashed and sorted sets and maps (from the latter). All containers have variants to support elements (or keys) that have an indefinite subtype. Containers have various mechanisms (including both active and passive iterators) for designating and accessing container elements.

Presenter

Matt is the author of Charles, a container library for Ada which was the basis of the proposal selected by the ARG for the Ada 2005 standard container library. He has given many Ada tutorials on topics that include object-oriented programming, design patterns, and software systems and library design. Matt was recently awarded an Outstanding Ada Community Contribution Award by SIGAda, for his work in the development of container libraries for Ada.

 

Why you should participate in this tutorial?

The standard container library is an important addition to the Ada language, since developers need data structures with semantics more sophisticated than simple arrays or linked lists. An array provides support for mapping an element to a discrete index subtype, but this is not really general enough, since one often needs keys of other types. The developer also needs container abstractions that scale well to large numbers of elements, with operations having predictable execution behavior. The standard container library solves these problems, thus greatly simplifying many programming tasks that would otherwise be very difficult or just plain tedious. You should attend this tutorial to learn about the standard container library, what features it provides, and how it solves typical programming problems.
 


T3. Developing Web-aware Applications in Ada with AWS (Full day)
Jean-Pierre Rosen, Adalog

Contents

This tutorial describes AWS, the Ada Web Server, and how to use it for the development of web-aware applications. It describes the principles of AWS, from the most basic functionality to more advanced functions (authentication, SOAP interface, session management, hotplugs, multi-server applications, etc.). The seminar emphasises practical usage of AWS, and presents design patterns that have proved effective for developing existing applications.
It compares the development process with AWS to other techniques. The tutorial provides attendees with the information needed to assess whether AWS is appropriate to their needs, and the necessary knowledge to start writing fullscale Web applications.

Presenter

J.-P. Rosen graduated from ENST in 1975, and obtained his PhD in 1986. He started as a software engineer at the computing centre of ENST. After a Sabbatical at New York University on the Ada/ED Project, he worked as Professor at ENST, where he was responsible for the teaching of Software Engineering and Ada. He has now formed Adalog, a company specialized in high level training, consultancy, and software development in the fields of Ada and OOD.  J.-P. Rosen is Chairman of the AFNOR (French standardization body) group for Ada, and the author of “Méthodes de Génie Logiciel avec Ada 95” (Software Engineering Methods with Ada 95) and “HOOD: an industrial approach for software development”.

Why you should participate in this tutorial?

AWS is more than a simple Web server, it allows incorporation of Web technology into applications where the Web interface is only part of the problem. By attending this tutorial, participants will gain in-depth understanding of the issues of Web interfaces, and will discover new solutions to common problems, like using a browser as a GUI or providing control through Web interfaces to real-time programs.
 


T4. SAE Architecture Analysis and Design Language (Full day)
Joyce L Tokar, Pyrrhus Software

Contents

The Architecture Analysis and Design Language (AADL) is an architecture description language (ADL) that has been developed under the auspices of the International Society of Automotive Engineers (SAE), Avionics Systems Division (ASD) Embedded Computing Systems Committee (AS-2). The AADL was approved as an SAE standard in November of 2004. In 2005, the SAE AADL standard was extended with the approval of four annexes: Graphical AADL Notation, AADL Meta Model and Interchange Formats, Language Compliance and Application Program Interface, and the Error Model.
The AADL language has been defined to provide a consistent and concise notation, both textual and graphical, to be used to develop models of complex, real-time, critical systems such as those used in automotive, avionics, medical, robotic, and space-based systems. The AADL provides the notation to perform various types of analysis of the complex critical systems.
In the early stages of design, the AADL enables the definition of the preliminary connectivity between application and execution platform components. As an AADL model is developed, additional components and properties are specified. The properties provide the information needed by analysis tools to determine the behaviour and performance of the system being modelled. The AADL has been designed to facilitate the development of tools that provide automatic code generation of the system both in terms of the application software components and the underlying execution environment. The AADL may be used to verify an actual system against the specified model. With automatic code generation, the AADL offers a system model that maintains significant information about a system that is useful throughout the lifetime of the system. Thus, the AADL offers support for all stages of system development.
This tutorial will provide an introduction to the AADL language from a textual and graphical perspective. It will also give some guidelines regarding the relationship between existing systems and the generation of AADL models. The tutorial will present a mapping between programming languages such as C and Ada and the AADL. Several uses of the AADL in the design and analysis of safety-critical real-time systems will be demonstrated along with the OSATE toolset.

Attendees may learn more about AADL at www.aadl.info

Presenter

Joyce Tokar is the President of Pyrrhus Software – a software consultancy and training company. Over the past 15 years, Dr. Tokar has been working in the area of mission and safety critical, embedded software systems. She has been involved in research and development in the areas of  software and systems architectures, high level computing langua­ges such as Ada, Ada 95, C/C++, and real-time embedded techno­logy. During this time she has co-authored the Society of Automotive Engineering (SAE) Architecture Analy­sis and Description Language (AADL) standard. She has written the Programming Language Annex for the SAE AADL standard. Dr. Tokar has also partici­pated in the evolution of the Ada programming language both as a member of the team defining the Ada 05 update and as a distinguished reviewer for Ada 95. Dr. Tokar is also active in the area if secure software system development tools and environments.  She provides expert witness consultation in the area of real-time embedded systems and software systems engineering.  Dr. Tokar also offers training courses in AADL, SPARK, Ada, and real-time embedded systems programming.
Dr. Tokar is the Head of the US Technical Advisor Group (TAG) to ISO Working Group 9, the group that is responsible for the definition and evolution of the Ada language.  She is a member of the Ada Rappor­teur Group (ARG) and has served in various roles within SIGAda and the Ada9X Project. Dr. Tokar has been very active in the Ada Semantic Interface Specification Working Group (ASISWG).  She has also been a regular participant in the International Real-Time Ada Working Group (IRTAWG) where she has contributed to the definition and standardization of the Ravenscar Profile; a tasking subset of Ada 95 that is suitable for use in safety critical and high integrity real-time systems.
Dr. Tokar has authored a large number of papers and reports, most of which are in the areas of software & system architecture, the Ada programming language and real-time, embedded systems.  Dr. Tokar is involved with a number of professional societies and committees associated with real-time, embedded systems.  And, she is a mentor for the IEEE Future Cities program.
Dr. Tokar has received numerous awards for her contributions including the Who’s Who in Executives and Professionals 2005-2006 and the Outstanding Ada Community Contributions Award 2000 from the ACM (Assoc. for Computing Machinery) SIGAda. She has been recognized in Who’s Who in Information Technology. Dr. Tokar also received the Duncan Peddie Memorial Award for her lectures at the University of Natal in Durban, South Africa.

Why you should participate in this tutorial?

This tutorial will assist programmers in developing AADL specifications and corresponding source code, and vice versa. A program manager will learn guidelines to obtain a consistent and uniform mapping between source code and AADL specifications. A systems integrator will find the AADL tutorial useful to enable the development of software components that are acceptable for integration. A tool vendor will find this tutorial helpful when considering how to develop tools to support the development and analysis of source code and AADL models. The attendees should have an understanding of the fundamentals of the development of complex, critical real-time systems
 

 

Friday, 9th
 

T5. Model Driven Development with the Unified Modeling Language (UML) 2.0™ and Ada (Morning)
Colin Coates, I-Logix UK

Contents

System and software development has become an increasingly complex science. With so many emerging devices, processors, systems specification languages, software implementation languages, and tools for all of these, there needs to be a common denominator in the development process that brings focus back on the application. Model-Driven Development (MDD) based on the UML has emerged as the preferred approach by a growing number of systems engineers and software developers for addressing this growing complexity. The UML has proven to be the standard visual representation language capable of providing both systems and software teams with a coherent set of interchangeable artefacts that fully describe an application with rich enough specification to be able to design and implement it in Ada.
This tutorial will, through the use of worked examples, demonstrate the pros and cons of using a Model Based approach with the Ada language. It will examine how UML 2.0 concepts might be mapped into Ada code and how this process might be automated through the use of model transformation.

Outline

  • Introduction to UML 2.0
  • Translating UML 2.0 concepts into Ada
  • UML Model-Driven Development, with special consideration of:
    • Customizable reverse engineering of legacy Ada code into a UML 2.0 model;
    • Customizable forward generation of Ada code from a UML 2.0 model.

Presenter

Colin Coates has more that twelve years experience in the discipline and craft of software engineering. He began his career cutting Ada code on military R&D projects, and continued it with working in the fields of telecom­mu­ni­cations, air-traffic control and Internet-enabled applications. Conversant in multiple programming languages and paradigms of analysis and design, he now applies his accumulated knowledge by working for I-Logix as a Senior Applications Engineer.
 

Why you should participate in this tutorial?

The tutorial will focus on areas which are of critical importance to the contemporary Ada software engineering professional. These areas are:
1. The latest standard for the Unified Modelling Language (UML), which has become the dominant software modeling notation for object oriented programming languages.
2. How to apply a UML Model-Driven Development approach, whilst preserving the unique benefits of implementing software in the Ada programming language. The tutorial with give special consideration to the twin imperatives of supporting legacy code (through reverse engineering Ada a UML model), and also controlling the automatic generation of robust, maintainable and evolving Ada code.

 


T6. Distribution in Ada 95 with PolyORB, A Schizophrenic Middleware (Afternoon)
Jérôme Hugues, ENST

Contents

PolyORB is the reference implementation of the "schizophrenic" middleware architecture. This innovative architecture resolves middleware-to-middleware introperability issues: it allows seamless integration of partitions in heterogeneous distribution environments (CORBA, DSA, web services) through the collaboration of multiple colocated personalities. We first present the motivations and approaches for developing distributed applications in Ada 95.

We then focus on two application fields for PolyORB:
1. as a CORBA implementation, using the idlac IDL-to-Ada compiler, allowing integration in multi-language distributed applications;
2. as a supporting partition communication subsystem for the Ada Distributed Systems Annex (annex E), using the gnatdist partitioning tool.

We finally present the general principles of schizophrenic middleware, and show how this architecture can be leveraged to take advantage of both the CORBA and Ada DSA distribution models. We also show how it can be adapted to meet stringent application requirements, particularly in the context of embedded, real-time systems.

PolyORB is developed by ENST, LIP6 and AdaCore, and supported by AdaCore. The PolyORB project is a member of the ObjectWeb consortium.

Presenter

Jérôme Hugues graduated from ENST in 2002, and got his PhD in 2005. He is now associate professor at the C/S department of the ENST. His research domain covers distributed systems, real-time systems and the use of modelling and formal methods applied to the engineering of complex systems. As part of his research activities, he was involved in the PolyORB project since its early stage in 2002, and since he became one of its lead architects. He uses PolyORB as a proof of concept of emerging techniques in distributed systems, and contributed many enhancements to its architecture and its internals: better performance, determinism and compliance to standards, including CORBA and RT-CORBA. He also contributed to the formal verification of the inner core of PolyORB using Petri Nets. He also participates in the support and development of PolyORB in the context of an industrial partnership between AdaCore and the ENST.

Why you should participate in this tutorial?

Understanding how to build distributed applications requires a deep understanding of the involved technologies. This tutorial will describe how to write distributed applications in Ada, and how to efficiently tune it according to your application needs, understanding the link between design decisions and the underlying technology.
 


T7. Requirements management for dependable systems (Full day)
William Bail, The MITRE Corporation

Contents

The demands of systems on which high expectations of dependability are placed stress the normal techniques applied to requirements engineering. These demands are exacerbated when the systems are embedded and real-time. Considerations of fault tolerance, graceful degradation, degraded performance modes, and temporal challenges (latency and synchronization) fail to be fully satisfied by normal practice. This tutorial examines these challenges and provides a set of techniques and practices that address these issues. It specifically addresses the issue of stakeholder acceptability, allowing trade-offs of various system qualities to determine overall system acceptance. The tutorial does not describe in detail any specific techniques. Rather, it describes the ways that requirements need to be handled to ensure dependability.
This tutorial has been updated significantly from the version that was presented at Ada Europe 2005 by focusing on models of dependability and presenting a new model of stakeholder acceptance.

  • Introduction
  • Terminology
  • Dependability
  • Acceptability
  • Source,  levels, nature and types of requirements
  • Requirements qualities
  • Management of requirements and verification
  • Special problems

Presenter

Dr. Bail received a BS in Mathematics from Carnegie Institute of Technology, and an MS and Ph.D. in Computer Science from the University of Maryland. Since 1990, Dr. Bail has worked for The MITRE Corporation in McLean VA as a Computer Scientist in the Software Engineering Center (SWEC). MITRE is a not-for profit corporation chartered to provide systems engineering services to the U.S. Government agencies, primarily the DoD, the FAA, and the IRS. Within MITRE, the SWEC focuses on supporting various programs with consultation, particularly transitioning emerging technologies into practice. Dr. Bail’s technical areas of focus include dependable software design and assessment, error handling policies, techniques for software specification development, design methodologies, metric definition and application, and verification and validation. At MITRE, Dr. Bail is currently supporting the U.S. Navy, focusing on the practice of software engineering within PEO IWS (Integrated Warfare Systems), particularly as applied to large real-time systems. Prior to 1990, Dr. Bail worked at Intermetrics Inc. in Bethesda MD.
Since 1989 he has served as a part-time Adjunct Associate Professor at the University of Maryland University College where he develops instructional materials and teaches courses in software engineering, in topics such as Software Requirements, Verification and Validation, Software Design, Software Engineering, Fault Tolerant Software, and others. Previously, Dr. Bail taught part-time at The University of Maryland from 1983-1986 in the Computer Science Department for undergraduate courses in discrete mathematics, computer architecture, and programming language theory.
Dr. Bail has presented tutorials on Cleanroom Software Engineering, Semi-Formal Development Techniques, Statistical Testing, and Requirements Engineering for Dependable Systems at SIGAda, AdaEurope, and other conferences.

Why you should participate in this tutorial?

If you are responsible for the development of a critical software intensive system, this tutorial will help you plan for and implement effective requirements processes, helping you to manage your requirements from inception through deployment, and assist in avoiding many of the common pitfalls that many projects have encountered.
 


T8. Real-Time Java for Ada Programmers (Full day)
Benjamin M. Brosgol, AdaCore

Contents

Although the term "real-time Java" may sound self-contradictory, serious technical activity has been underway since early 1999 on extending the Java platform to satisfy the requirements for real-time systems, and several implementations exist. This work is relevant to the Ada community as both a challenge and an opportunity: on the one hand, it may compete with Ada in the real-time marketplace, but on the other hand some of its ideas may be worthy of consideration in a future version of the Ada language or as implementation-provided libraries at present. This tutorial will focus on the Real-Time Specification for Java ("RTSJ"), which was developed by the Real-Time for Java Expert Group under the auspices of Sun Microsystems' Java Community Process. The tutorial will analyze/critique the Java platform with respect to real-time support, summarize/illustrate the main elements of the RTSJ, and compare/contrast the design with Ada’s real-time features (both in Ada 95 and Ada 2005). The tutorial will also describe the ongoing work in developing high-integrity profile for the RTSJ, and will provide a status update on the real-time Java work and its usage and prospects. The proposed tutorial will be an updated version of the "Real-Time Java for Ada Programmers" tutorial that was delivered at Ada Europe 2005 and SIGAda 2005, taken into account recent developments in both real-time Java and Ada 2005.

Introduction

  • Requirements for real-time programming
  • Background and goals of real-time Java activities
  • Summary of Java thread model
  • Critique of Java platform for real-time support

Pervasive technical issues

  • Priority inversion management
  • Garbage collection
  • Object Oriented Programming and real-time systems

The Real-Time Specification for Java

  • Summary
  • Concurrency, scheduling and synchronization
  • Memory management
  • Asynchrony
  • Other features
  • Comparison with "Core Extensions" from the J-Consortium
  • Comparison with Ada
  • High-integrity profile

Conclusions

  • Status of the definition and implementation of Real-Time Java
  • Assessment of Real-Time Java
  • What Ada can learn from Real-Time Java

Presenter

Dr. Brosgol has over 25 years of experience in the computer software industry, with a focus on programming languages, software develop­ment methods, and real-time systems. He was a primary member of the Real-Time for Java Expert Group and a coauthor of the Real-Time Specification for Java. He is currently a member of the Technical Interpretations Committee for the RTSJ and has delivered Java tutorials and courses since 1997. 
The proposed tutorial will be an updated version of the "Real-Time Java for Ada Programmers" tutorial that he delivered at Ada Europe 2005 and SIGAda 2005, taken into account recent developments in both real-time Java and Ada 2005.
Dr. Brosgol is an internationally-recognized expert on Ada. He participated in both the initial language design and the Ada 95 revision, and he is a past chairman of the ACM's Special Interest Group on Ada (SIGAda). He has published numerous papers on Ada, has delivered presentations and tutorials at many Ada Europe and SIGAda conferences, and has been conducting courses on real-time programming in Ada since the late 1980s. He was an invited keynote speaker at the 2003 SIGAda conference, where his topic was "Ada and Real-Time Java: Cooperation, Competition, or Cohabitation?" He is a senior member of AdaCore’s technical staff in the US, in the Boston area.

Why you should participate in this tutorial?

  • You will learn the pros and cons of the Java thread model, both in general and for real-time applications
  • You will see how real-time Java addresses the apparent "show stopper" problem of garbage collection
  • You will be able to judge whether real-time requirements can be met by a "pure" Object-Oriented Language
  • You will understand the effect of a dynamic and flexible scheduling approach, in terms of expressibility, predictability, and performance
  • You will discover who is using real-time Java, and for what sorts of applications


 


 


The organizers thank the exhibitors and supporters of the conference:

     

Springer Verlag published the proceedings of the conference, as vol. 4006 of Lecture Notes in Computer Science