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 languages such as Ada, Ada
95, C/C++, and real-time embedded technology. During this time
she has co-authored the Society of Automotive Engineering (SAE)
Architecture Analysis and Description Language (AADL) standard.
She has written the Programming Language Annex for the SAE AADL
standard. Dr. Tokar has also participated 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 Rapporteur 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
telecommunications, 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.
-
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
development 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
|
|