Sunday Morning Tutorials (9:00am - 12:30pm)
SA1: Effective Requirements Engineering
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
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
- 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
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
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.