SIGAda 2008 Tutorials
SIGAda 2008
Descriptions of Tutorials

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

SF1: Introduction to Ada
Michael B. Feldman

Level — Beginner, but attendees should have some experience with a high-level programming language.

This tutorial is designed for those who have some familiarity with a programming language, but who are new to Ada. In the morning, we will discuss the basics of programming in Ada, including types, packages, syntax rules, and other Ada programming constructs. In the afternoon, we will cover Ada's object-oriented programming and concurrent-programming features. Many examples will be shown; freely downloadable Ada programming environments and tools will be demonstrated.

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

SA1: Introduction to Ada (Morning Only)
Michael B. Feldman

Level — Beginner, but attendees should have some experience with a high-level programming language.

Please register for this tutorial if you wish to attend only the morning session of SF1, in order to attend SP1 in the afternoon.

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

SP1: Service Oriented Architecture (SOA) Concepts and Implementations for Ada
Ricky E. Sward

Level — Intermediate

This tutorial covers the principles of Service-Oriented Architectures (SOA) including loose coupling, encapsulation, reusability, composibility, etc. The attendee will learn about the Ada Web Server (AWS) and how SOA interfaces, session management, etc. are implemented using AWS. The tutorial will also cover the fundamentals of the Enterprise Service Bus (ESB), a key enabling component of the SOA. Attendees will learn about ESB endpoints, data routing, automatic translations, etc. They will also learn how to connect Ada web services to an ESB, how to expose the web services, and how to use AWS with the ESB through in-class exercises and demonstrations.

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

MA1: Ada for Real-Time and Parallel Processing
John W. McCormick

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

This tutorial covers two of the major problems with parallel and real-time programming - time management and storage management. Parallel processing, whether on single-processor machines or multiple processors, has many pitfalls. We will examine these potential pitfalls, and discuss ways to avoid common problems, such as deadlocks and race conditions. We will also discuss how to write code that efficiently passes data with other parallel processes. The basics of parallel processing are covered, leading to a discussion and examples using Ada tasking. In addition, the Ada Real-Time Systems Annex is also covered.

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

MP1: Languages for Safety-Critical Software: Issues and Assessment
Ben Brosgol

Level — Intermediate.

This intermediate-level tutorial is aimed at people with a technical background in software development. No previous experience with safety-critical standards is required. Some familiarity with one or more of C, C++, Ada, or Java would be useful.

Safety-critical systems (whose anomalous behavior could cause catastrophic or major failure involving loss of life) are becoming increasingly prevalent. Standards such as DO-178B, originally developed for commercial avionics, are attracting attention in other segments. The requirement to comply with such standards imposes constraints (on quality assurance, traceability, etc.) much beyond what is typical for Commercial-Off-The-Shelf Software. One of the major decisions that affects safety certification is the choice of programming language(s). Specific language features, either by their presence of absence, may make certification easier or harder. (Practicalities such as tool support and programmer experience are of course also important but are outside the scope of the tutorial).

This tutorial first summarizes existing safety standards, with a focus on DO-178B, and explains how they affect the requirements on a programming language. It specifically addresses the challenges imposed by Object-Oriented Technology and summarizes the work currently underway on DO-178C. The tutorial then assesses three language technologies -- C (including C++), Ada, and Java -- with respect to suitability for meeting these requirements through appropriate subsetting. MISRA C, SPARK, and the in-progress Safety-Critical Java Technology are specifically identified and reviewed.

Back to Main Page Back to Main Page
last updated 3 November 2008 - cgr