A free compiler is available at "www.inmet.com/javadir/download". It will be free until August 1 and will self-destruct at that time. An environment will be available on July 1. Eventually it will be bundled with Thomson's Ada 95 compiler.
Academic Ada will soon be available for $68.50 (Addison-Wesley) in university bookstores.
The Canadian Automated Air Traffic Control System (CAATS) is estimated at 750K SLOC of Ada. It was initially bid using the 2167A life-cycle model, but changed in 1992 to use an object-oriented design and an iterative development process. The phases for their iterative process include: inception, elaboration, construction, transition, evolution.
The criteria for defining the content of an increment include:
Their model distinguishes phases from activities; the activities cut horizontally across the phases. Kruchten described some of the lessons they have learned in applying this LC model to CAATS.
David Emery, HCSD Unit Development Process: Step-Wise Process Improvement
This paper is also related to the CAATS program. They have progressed through three different versions of their Unit Development Process. This paper examines the various versions and what motivated the changes.
Juan Antonio de la Puente, Mapping HRT-HOOD Designs to Ada 95 Hierarchical Libraries
The European Space Agency uses HRT-HOOD (Hard Real-Time HOOD) as its design methodology. There have been methods to translate designs more or less directly into Ada but have tended to obscure the design. The paper describes how to use the subroutine renaming feature and the child library feature of Ada 95 to improve the mapping.
The paper describes the modernization of legacy systems for USAF Program Planning and Budgeting providing vertical integration among the various command echelons. This is an interesting integration of CORBA, SQL, ODBC, OLE and Ada 95 on a PC platform.
Kor Molenmaker, Converting the Part Task Nautical Simulator to Ada 95 [from Ada 83]
This paper describes the conversion of an existing operational program from Ada 83 to Ada 95 and the problems that were encountered.
Vincent Celier, Visibility Control and Migration of Interfaces in Large Ada Systems
In large Ada systems, it is necessary to freeze major interfaces early, but it is then sometimes necessary to change them. The paper describes techniques for minimizing the difficulties in migrating users of changed interfaces.
Philippe Waroquiers, Ada Tasking and Dynamic Memory: To Use or Not to Use, That's a Question!
This is an air traffic flow management flow system. The paper describes the tuning of the system to improve its performance. The major changes including changing the mechanisms for the storage of persistent data.
Rich Hilliard, Experiences in Applying a Practical Architecture Method
He described what MITRE has learned from articulating architectures for a number of large, complex systems. It's a good summary of the OSEG work in this area at MITRE-Bedford.
John Smart, A Decade of Development and Deployment of Distributed Ada Systems
His company develops Naval Command and Control Systems comprising more than 2.5 MSLOC of Ada 83 code. They use Jackson Structured Design. The paper is a valuable overview of how to use Ada 83 with JSD to develop very large systems.
The paper describes alternatives for communicating encrypted data among partitions in a distributed system. The method would also work for compression and other data transformations. They deal with the problem of key exchange.
RAPIDE is a language for defining architectures. The paper describes a mapping from Ada to RAPIDE and a method for checking conformance. This is useful because a number of tools are available to analyze RAPIDE designs.
The purpose of the paper is to analyze the suitability of the Ada 95 language for use in critical systems. It summarizes a much larger report that evaluates the various language features of Ada 95 from the viewpoint of critical systems. It concludes that the use of complete Ada 95 in critical systems is problematic but that SPARK-like subsets are suitable.
Marc Richard-Foy, The Use of Ada in Critical Systems, such as the TGV
He described the particular methods employed in programming the train control systems for the French high-speed train, TGV. The safety approach relies on three elements: the coded processor technique (a mechanism for self-checking of data validity); a safe Ada subset (LSAda) and a strict quality assurance process.
Alfred Rosskopf, Use of a Static Analysis Tool for Safety-Critical Ada Applications
This controversial paper is a study of the use of the SPARK Examiner to perform static analysis on Ada code. The assessment is critical. Basically, the analysis would criticize any method that requires supplemental annotation to facilitate static analysis.
This paper describes some extensions made to Ada 95 for the study of persistent programming. He concludes that the extensions are possible but are sometimes not compatible with the spirit of the Ada language.
The "dining philosophers" is a classic problem in concurrent programming. Brosgol has offered a number of Ada solutions to the problem in the past. This paper re-analyzes the problem utilizing the new concurrent programming features of Ada 95.
Ted Baker, The GNARL Implementation of POSIX/Ada Signal Services
GNARL is the run-time library for the GNAT compiler. The paper describes the application-level interface for GNARL so that Ada tasking might be equated with POSIX threads.
David Mundie, Implementing Protected Types on Embedded Targets
The paper describes Tartan's experience in implementing protected types in their compilers for embedded machines.
This paper is the result of a study that examined 8.5 million lines of Ada source code (excluding specifications) to determine situations in which programmers choose to code Goto statements. They found that 99.5% of files contained no Goto statements whatsoever. The average distance (in lines) between occurrences of Goto is about 8100 lines. This is a much greater distance than for Fortran or C. Of the GOTOs found, 67% could have been replaced by other control structures and another 26% were in ACVC tests. Another 5% were in automatically generated code. So, only about 1.5% of the occurrences were legitimate, primarily intended for premature loop termination. In those cases where GOTOs were used for "efficiency", there is evidence that the programs with GOTOs run more slowly than those without.
He cited MITRE's work on maintenance cost showing that C costs twice as much per function point as Ada in large systems.
The new DODI 5000.1/5000.2 says that Ada is the language for software to be maintained by the DOD. The new DODD 3405.1 will provide an order of preference: (1) COTS; (2) adjust your requirements to fit a COTS alternative; (3) NDI (GOTS); (4) 4GL or 5GL (presuming that maintenance will be done at the 4GL level); (5) Ada; (6) get a waiver.
Use of Ada will be checked at MAISRC/DAB quarterly and annual reviews. 14 waivers were requested last year; 12 were granted.
There are currently 14 validated Ada 95 compilers. Seven programs have been designated as early adopters for Ada 95. The Airfields application for GCCS has been delivered. FMMS has demonstrated an initial prototype. The Marine Corps Tactical Data Link went to the field last week.
For each of the last three years there has been a 25% annual increase in the use of Ada in universities. A free Ada compiler (GNAT) is available to researchers in source code form. A very low cost compiler and development environment along with a CS-1 textbook will be available on a CD this summer. Ada 95 is now the introductory level course at USMA and USAFA. NPG and AFIT have also adopted Ada 95.
He showed a chart claiming that Ada is the #2 language in universities (after Pascal). Even C and C++ together are smaller than Ada.
The National Research Council is now conducting a review of Ada policy in the DoD for completion by October 31, 1996.
New validation suite, 2.0.1, adds additional tests but still does not require complete implementation of all of Ada 95. Version 2.1 in March 97 will complete that.
Transition of activities formerly done by AJPO: AJPO will close by June 1997. Its current activities will be performed by others: