Sunday Full-Day Tutorials (9:00am - 5:30pm)
SF1: Architecture-Centered Development of Time Critical Systems with AADL, UML, and Ada
Ed Colbert, Bruce Lewis
The Society of Automotive Engineers (SAE) is developing a standard Avionics Architecture Description Language (AADL) using UML and Honeywell's MetaH architecture language as a base. (Voting on the standard is expected to start in the first quarter of 2004.) MetaH has been used on 20 demonstration projects. The AADL specification defines an AADL profile for the Object Management Group's (OMG) Unified Modeling language (UML).
The AADL is designed to support the specification and analysis of hardware and software for real-time, fault-tolerant, safety-critical, securely partitioned, dynamically reconfigurable multi-processor system architectures. The AADL is intended for avionics, space, and other embedded time-critical systems where a highly integrated, rapidly evolvable approach is needed, such as robotics. The AADL tools will be able to generate the integrated code for the application components, an executive, and "architectural glue", all customized for the target hardware environment and either the Ada runtime, POSIX, or ARINC 653.
This tutorial will look at how to develop embedded, time-critical systems that can evolve as requirements or technology change, using AADL.
SF2: Improved Software Testing With the Use of Metrics (Cancelled)
Software Metrics can aid in improving your organizations Testing Process by (1) providing insight and early visibility into the "real" status of the testing effort, and (2) aid in making assessments as to whether progress, productivity and quality goals are being met. This tutorial presents a practical guide on how to start taking advantage of these new tools/techniques to aid in improving the testing process. These metric based tools and techniques have successfully been used by (1) software test teams, (2) software developers and, (3) SQA/IV&V staffs.
It is a practical overview of metrics-based testing designed for technical and managerial professionals concerned with improving quality, performance, and productivity of software testing.
SF3: Introduction to Ada
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, to include typing, packages, syntax rules, and other Ada programming constructs. In the afternoon, we will cover the concepts of object-oriented programming, and show how object-oriented design can easily be implemented using Ada. Simple Ada programs will be constructed during the class, and the attendees will also see how to use various Ada programming environments and tools that can be downloaded for free over the web.
SF4: SPARK, An Intensive Overview
Roderick Chapman, Ph.D
SPARK is an annotated sub-language of Ada which is unambiguous and suitable for rigorous static analysis. The tutorial, which is extracted from the four-day "Software Engineering with SPARK" course will provide an intensive introduction to SPARK and the static analysis performed by the SPARK Examiner.
The tutorial is intended primarily for those with current or recent experience of software development in Ada, especially those who will work on or lead safety critical or other high integrity developments.
Attendees will be encouraged to bring laptop computers on which the SPARK Examiner will be installed.
Monday Full-Day Tutorials (8:30am - 5:00pm)
MF1: Normative Quality Specification and Standardized Acceptance Testing
The seminar will cover the principles and the normative quality characteristics as well as the standardized procedures of information quality assurance resp. system quality assurance (comprising verification, validation , black box or glass box testing, reliability assessment, technical review, measurement and assessment) for procedural, object-oriented or agent-based dependable systems. Attendees will exercise proven techniques for goal-directed measurement, scaling and assessment for system certification. Assessment of both the software artefact as well as the respective processes will be discussed with respect to its relevance for acceptance assessments. A standardized process model for measurement, assessment and certification of dependable systems will be used to make the attendees familiar with this comprehensive assessment procedure and to learn how to embed it into today's standardized or non-standardized IT processes. Basic knowledge in mathematics and some knowledge of software methods and tools is required. Emphasis will be given to selected advanced topics depending on the needs of participants.
Monday Morning Tutorials (8:30am - 12:00 noon)
MA1: Links in the Chain: Why Mature Systems Engineering is Needed
Today's society is becoming increasingly dependent on software-intensive systems for its infrastructure and daily operations, particularly for safety-critical and mission-critical systems in domains such as avionics and aerospace, business and finance, communications, and transportation. Over the last 20 years, Software Engineering as a discipline has emerged and gained acceptance, offering a set of best practices for creating these software-intensive systems. ACM Computing Curriculum 2001 (CC2001) contains knowledge units for Software Engineering, Microsoft Research has a Software Engineering group, and most universities are placing elements of Software Engineering into their curricula.
However, Software Engineering is only one link in the chain required to produce these safety-critical and mission-critical systems. Society needs capability maturity to improve at the customer level, at the corporate management level, and at the domain-specific engineering level as well. Systems Engineering, which involves all of these links in the chain, has to mature. Some universities, such as the University of Houston at Clear Lake (with its ties to NASA), the University of Southern California and the University of Missouri at Rolla (with their ties to companies like Boeing TRW), and Southern Polytechnic State University (with its ties to Lockheed Martin) now have Systems Engineering programs in place, and the Secretary of the Air Force has created a Systems Engineering program for the US Air Force Academy and the Air Force Institute of Technology. Lockheed Martin, the world's largest defense contractor (employing about 125,000 people), is engaged in maturing all of its Software Engineering organizations to CMM Level 5 and all of its Systems Engineering organizations to at least CMMI Level 3. Microsoft has a company-wide Trustworthy Computing initiative underway with the long-term objective of making Microsoft-based computer systems as reliable as the telephone.
This talk presents an overview of Systems Engineering and the issues surrounding it. Many real-world examples, including videos showing many software-intensive systems under development by Lockheed Martin and Microsoft, are included. Ada continues to play a key role in many of these systems, and the use of Ada will be highlighted. Now that we have A# (Ada) available under Microsoft's Visual Studio .NET, Ada is firmly a part of the world-wide collaboration associated with Microsoft, and we will discuss this collaboration and its impact to the Ada community.
Attendees will receive access to the Systems Engineering Resource Guide for Educators and Practitioners, edited by Richard Conn (the presenter) and funded by Microsoft. The audience will leave this talk with a basic understanding of Systems Engineering, an understanding of why more universities should create a multidisciplinary Systems Engineering curriculum, a view of Ada in the context of Systems Engineering and the next generation computing platforms, and access to resources to start learning more about Systems Engineering themselves.
MA2: The HOOD Design Method
HOOD (Hierarchical Object Oriented Design) is a software design method, which is used after the requirement analysis activities and covers architectural design, detailed design and coding. The method unifies and integrates object orientation with advanced software engineering concepts and notations.
The HOOD method was originally defined for the European Space Agency (ESA), and was initially targeted to Ada. It has been considerably enhanced since, and its latest version (HOOD4) supports Ada95 as well as other languages. Several tools are available on the market to support the method. Apart from being the preferred design method for ESA projects, it has also been used in other domains, including nuclear plants control systems, and transportation systems, for example.
HOOD emphasizes modularity, composition and client-server relationships, and uses inheritance only where useful. The principle of separation of concerns makes it easy to analyze the structural, behavioral, and functional properties independently. Extensive support for documentation, strict hierarchy of objects, and the definition of a standard interchange format accepted by all tools, make HOOD especially appropriate for large projects involving many subcontractors.
Many original aspects differentiate HOOD from traditionnal OO methods; this makes this tutorial invaluable not only to those in search of an appropriate method, but also to all those interested in a broader view of the Object Oriented paradigm.
Monday Afternoon Tutorials (1:30 - 5:00pm)
MP1: High-Integrity Ravenscar using SPARK
Roderick Chapman, Ph.D, Brian Dobbing
SPARK is a well-established, unambiguous and fully-analysable annotated subset of Ada. In its original form SPARK excluded all forms of concurrency because weaknesses in the Ada tasking model made it incompatible with the design goals of SPARK. The advent of the Ravenscar Profile has provided an opportunity to extend SPARK to include concurrency and to enable the SPARK Examiner to analyse concurrent programs.
The tutorial will describe the way SPARK has been extended to include the Ravenscar Profile and how static analysis techniques can eliminate all of the erroneous behaviour, bounded errors and implementation- defined behaviour that remain in the concurrency model defined by the Profile.
Martin Carlisle, Ph.D
This advanced tutorial covers multi-language programming with Ada in the .NET Framework. Attendees will learn how to target Ada code to the .NET Framework, call .NET libraries from Ada, create .NET DLLs in Ada that can be used by programmers in other .NET languages, and create multilanguage applications using AdaGIDE and Visual Studio .NET.
Attendees should have experience with object-oriented programming in at least one language, and also have prior programming experience in Ada.