Tutorials  

  

Tutorials Overview

 
    Monday, 5th   Friday, 9th
Morning   T1

Verification and validation for reliable software systems

William Bail

Room: Sagres

T3

Developing Web-aware Applications in Ada with AWS 

Jean-Pierre Rosen

Room: Sintra

T4

SAE Architecture Analysis and Design Language

Joyce L Tokar

Room: Aveiro

 
T5

Model Driven Development with the Unified Modeling Language (UML) 2.0™ and Ada

Colin Coates

Room: Bragança
 

T7

Requirements management for dependable systems

William Bail

Room: Aveiro

T8

Real-Time Java for Ada Programmers

Benjamin M. Brosgol

Room: Viana do Castelo

Afternoon   T2

The Ada 2005 Standard Container Library

Matthew Heaney

Room: Sagres

  T6

Distribution in Ada 95 with PolyORB, A Schizophrenic Middleware

Jérôme Hugues

Room: Bragança


Morning tutorial sessions will start at 9:30 and end at 13:00. Afternoon sessions will start at 14:00 and end at 17:30. There will be coffee breaks at 11:00 - 11:30 and at 15:30 - 16:00.  

Tutorial Abstracts

+ information of all tutorials here

Monday, 5th
 

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

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.

+ info
 


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

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.

+ info
 


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

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.

+ info
 


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

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

+ info
 

 

Friday, 9th
 

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

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.

+ info
 


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

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.

+ info
 


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

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 depen¬da¬bi¬lity. 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.

+ info
 


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

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.

+ info
 


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