Expected Benefits of Ada

Overall Advantage: Increased Quality per Dollar Spent

Previous slide Contents Next slide

From the Script: SLIDE 15 - Expected Benefits of Ada

There are real benefits to be gained from using Ada and, in the end, they all lead to increased quality per dollar spent.

Over the course of its lifecycle, it is often necessary to move a software program to a different host computer due to hardware changes and upgrades, management changes, or support problems. Mature Ada compilers are available for many different platforms and environments and correctly designed Ada source code is readily portable across numerous architectures, saving time and money when it becomes necessary to move a system. Language standardization helps to ensure portability [Software], though developers should strive to avoid the use of vendor-specific features in order to secure the real benefits from Ada or any other standard.

Also because of language standardization, programmers trained in Ada can move from project to project without extensive and expensive retraining.

Ada code is very readable, making errors easier to locate and correct. Code maintenance and change is made easier because earlier work can be clearly understood, helping developers to avoid incorrect and unintentional code alteration.

Ada is reliable because its compilers apply rigorous checks to the code at compile-time, enabling the programmer to remove defects. At run-time, Ada effectively compartmentalizes code, preventing unpredictable interactions between modules. Reliability and recovery capabilities are designed into the language, the importance of which is illustrated by problems encountered by AT&T in January 1990. Nationwide, 5 million phone calls were blocked over a 9-hour period due to an undetected latent flaw in the recovery-recognition software in 114 electronic switching systems that had been installed 1 month earlier. The C program contained one unexpected intervening {\tt if} clause that was not caught [Neumann].

Much effort has gone into the development of a method for integrating tools and design methodologies with Ada compilers. The Ada Semantic Interface Specification (ASIS) defines an interface that can be used by any tool vendor to retrieve the information from a compatible compiler that is needed to drive software design tools, code browsers, debuggers, metrics tools and many other development aids. This has led to an increase in the availability and capability of tools for Ada development [Guidelines, p. 5-69]. It has also provided a low cost transition path from Ada 83 to Ada 95 [ Colket, p. 9].

The modular nature of Ada gives developers the ability to break down programs into manageable units, following good software engineering practice. Ada is unique in providing discipline for programmers, increasing the probability of a well engineered system that is less expensive to maintain.

Ada's readability, abstraction, and information hiding abilities make it easier for managers and non-programmers to understand the system and be more involved in its design.

Studies quoted by the US Air Force have shown that there is an Ada productivity edge of about 35%, largely due to the existence of a strictly-enforced, mature Ada standard [Guidelines, p. 5-11]. Rational Software found that the cost per single line of C code in their VADS toolset was 159% higher than Ada [ Zeigler , p. 2].

Productivity can be further increased by reusing code that has already been designed and tested. The Ada language has many features that can be exploited to take advantage of code reuse. Ada allows the compartmentalization of information within packages and tasks and the use of generic procedures and data abstractions to achieve a modularized structure. The result is an increased capability for the creation of reusable software components, which can be inserted into new programs or easily adapted [Sammet, p. 730].