SIGAda 2010 Tutorials

SIGAda 2010 logo
Descriptions of Tutorials

SIGAda 2010 Home

Register Online Now

Hotel Rates, Reservations, Travel

Reception Dinner & Cultural Program

Exhibiting and Sponsorship Opportunities

Conference at a Glance
Final Program:


Workshops and BoFs

Media Information

Conference Officers

Program Committee

Grants to Educators

Previous Conferences

Important Visa Information for

Sunday Morning Tutorials (9:00am - 12:30pm)

SA1: Effective Requirements Engineering
William Bail

Level — Intermediate.

Failures in systems closely correlate to shortcomings in the system’s requirements. Some historic data suggests that requirements are responsible for nearly half of all system development failures. This is especially true for critical systems that are real-time and embedded. Expectations for fault tolerance, graceful degradation, degraded performance modes, and temporal challenges (latency and synchronization) fail to be fully satisfied by common practice. This tutorial discusses shortcomings in current practices, and provides guidance for enhanced practices that address historic shortcomings, and provide an approach to weighing tradeoffs associated with ambitious goals and realistic limits. 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 maximize the likelihood of success. This tutorial has been updated significantly from versions presented at previous conferences.

SA2: Using Object Oriented Technologies in High Reliability Systems
Jean-Pierre Rosen

Level — Intermediate.

This tutorial presents the new challenges brought by the advent of object oriented technologies (OOT) into the realm of high reliability systems.

For a long time, OOP was deemed too dynamic a model for highly reliable systems, especially levels A/B of the DO178B, although the standard in itself does not preclude the use of any technology. However, interest for introducing OO techniques is growing in the community; the FAA sponsored OOTiA (Object-Oriented Technology in Aviation), a handbook intended to identify and address these issues. Although not an official policy of the FAA, this handbook is a major input for the upcoming revision of DO178B (DO178C).

The tutorial provides an overview of software safety related standards (DO178B in airborne systems, EN5018 for railway systems). Based on the extensive work of the OOTiA, it explains the issues of object oriented technologies in high reliability systems, and how such technologies can be used while ensuring the high degree of control, review, and testing mandated by these systems. Finally, it shows how Ada's object oriented model differs from the traditional model, and brings better solutions for introducing OOP to high reliability systems.

Sunday Afternoon Tutorials (2:00 - 5:30pm)

SP1: Ada for Parallel, Embedded, and Real-Time Applications
John W. McCormick

Level — Intermediate. This tutorial assumes basic knowledge or experience with the Ada programming language.

The arrival and popularity of multi-core processors has sparked a renewed interest in the development of parallel programs. Similarly, the availability of low cost microprocessors and sensors has generated a great interest in embedded real-time programs. Ada is arguably the most appropriate language for development of parallel and real-time applications. This tutorial provides an introduction to the features of Ada that make it appropriate in these domains including:

  • High level support for low level programming.
  • The task.
  • Communication and synchronization based on shared objects.
  • Communication and synchronization based on direct interaction.
  • Support for compliance with real-time scheduling theory.

Monday Full-Day Tutorials (9:00am - 5:30pm)

MF1: C#, .NET and Ada: Keeping the Faith in a Language-Agnostic Environment
Ben Brosgol

Level — Intermediate

In this tutorial we will describe the main elements of the C# programming language and the Common Language Infrastructure (whose implementation by Microsoft is knows as .NET), and explain how Ada fits into this framework. The C# discussion will focus on that language’s distinctive features -- is it simply Microsoft’s response to Java, or is there more to it? -- through examples and comparisons with other languages. We will summarize the main elements of the .NET technology (intermediate language, type system, run-time environment) and explain why it is referred to as "language agnostic". We will show how Ada development is supported on .NET, and conclude with a demonstration of the GNAT Pro for .NET product.

This is an intermediate-level tutorial. Attendees should be familiar with a language such as Ada, Java or C++ and should also understand the basics of object-oriented programming. No previous experience with C# or .NET is required. For the last section of the tutorial, which focuses on how Ada fits into .NET, some familiarity with Ada is assumed.

Monday Morning Tutorials (9:00am - 12:30pm)

MA1: Designing Real-Time, Concurrent, and Embedded Software Systems using UML and Ada
Robert Pettit

Level — Intermediate

The domain of real-time, concurrent, and embedded software is becoming increasing complex. To effectively develop these systems, greater care must be taken to construct adequate models of the software and to effectively analyze these designs prior to code development. In this tutorial, we will discuss modeling and analysis issues specific to real-time, concurrent, and embedded software systems. Specifically, this tutorial will present guidelines for modeling these systems using the Unified Modeling Language (UML) version 2. A case study will be introduced to solidify the concepts and participant interaction will be encouraged in the construction of the models. Analytical methods will also be discussed to verify that the UML-based designs will produce the desired behavior. Finally, we will discuss how to proceed from the UML models into an Ada (2005) implementation.

Monday Afternoon Tutorials (2:00 - 5:30pm)

MP1: Unmanned Systems with Ada and RTEMS
Cynthia Cicalese, Joel Sherrill, Ricky E. Sward, Richard Weatherly

Level — Intermediate

This tutorial provides an introduction to the growing field of Unmanned Systems and the role that Ada plays in solving the challenges presented when designing, building, and operating Unmanned Systems. The tutorial begins with an introduction to the fundamentals of ground, air, and maritime Unmanned Systems and the specific challenges of these systems. The authors will demonstrate how they are using Ada over RTEMS in developing Large Unmanned Ground Vehicles. RTEMS is an open source, real-time operating system that provides a high performance environment for embedded applications on a range of processors and embedded hardware. The attendee will gain hands-on experience in developing an Ada application over RTEMS using an environment that provides a complete GNAT Ada installation with all sources and scripts as well as the prebuilt toolset and simulators. The attendee will gain from this tutorial an understanding of Unmanned Systems and a practical application of how Ada can be used in the development of these systems.

Thursday Afternoon Tutorials (1:00 - 5:00pm)

TP1: System and Software Architecture Using AADL
Bruce Lewis, Peter Feiler

Level — Intermediate

The SAE Architecture Analysis & Design Language (AADL) is an architecture description language for real-time, fault-tolerant, scalable, embedded, modular multiprocessor systems. It enables the development of highly evolvable systems, early and quantitative analyses of a system’s architecture, and evolution of an architecture model for continued analysis throughout the lifecycle. In this tutorial, we provide an overview of the AADL; demonstrate the AADL’s capabilities in creating and analyzing component-based models of the task and task interaction architectures of embedded software; discuss interfacing to physical devices; highlight AADL capabilities for predictive analyses of operational characteristics such as meeting deadline, response time, and throughput requirements; and describe how the AADL can discover system integration problems early in a development effort.

We will also review the System Architecture Virtual Integration (SAVI) program and its application of AADL. SAVI has developed a new paradigm for model-based system acquisition and early quantitative analysis. SAVI’s approach is “integrate then build”, using quantitative analysis for incremental verification and validation. SAVI is led by Boeing and includes Airbus, Lockheed Martin, BAE Systems, Rockwell Collins, Goodrich, and the SEI along with NASA, DoD, and the FAA under the Aerospace Vehicle Systems Institute. We will include an overview of SAVI concepts, relate them to AADL concepts, present the Proof of Concept (POC) demonstration with its architectural analyses and review the ROI analysis.

last updated 23 October 2010 - cgr