next up previous
Next: Software Engineering Methodologies Up: Projects Previous: X

Ada

Ada ( [#!Ichbiah-etal79!#], [#!Ada83!#] ) was created in the late 1970s to solve the problem of the software programming bottle neck. Millions of lines of code needed to be written to support government and commercial needs. Hardware has gotten faster and cheaper each year, but software programming remained labor intensive and expensive. Furthermore, many systems built in the 1950s through the 1970s were nearing their life cycle end and had to be replaced. Because computer science is a relatively new field, solutions to total life cycle management were not abundant. To make maters worse, the computer science environment consists of a huge collection of heterogeneous hardware, software, programming languages, operating system environments, file systems, and database systems.

The hope of Ada was to create one independent environment, written in one language, to support all applications.

Ada is a strongly typed language supporting object-oriented programming, information hiding, modularization, concurrent programming, generalization through generic classes, and a unified error and exception handling system. The hope was that Ada was powerful enough to express a vast number of algorithms and data structures as well as process control and parallelism. In 1983, Ada became a standard.

The development of Ada went though an extensive period of requirement gathering, prototyping, and review. This was followed by huge amounts of funding for compilers and supporting environments. All government contracts were to use Ada as the language of choice.

Unfortunately, Ada did not eclipse the world. The developers of Ada created a system that was difficult to master, hard to program, and un-forgiving to change. Creating a language does not solve the bigger problems of software engineering methodologies where analysis, requirements, design, and architectures are defined. The strongly-typed pointer concept in Ada made many categories of programming difficult, including algorithms in the fields of AI, databases, operating systems, and file systems.

See tables 7.19 and 7.20 starting on page [*].


 
Table 7.19: Survey Part 1: Basic Properties Ada
Question Response
Analysis? none..poor..fair.. good..great
Design? none..poor..fair.. good..great
Implementation? none..poor..fair.. good..great
Testing? none..poor..fair..good.. great
Cycles of ADIT? one..few..several.. frequent
Priority? no.. yes
Versions? no.. yes
Change Order Control? no.. yes
Internal Prototype? no.. yes
External Prototype? no.. yes
Alpha Release? no.. yes
Beta Release? no.. yes
Duration? 20 years
Effort? greater than 10,000
 


 
Table 7.20: Survey Part 2: Change Control Ada
Question Response
Did a new introduced requirement ever negatively affect accomplished work? never.. seldom..often..frequent
Did an architectural change ever negatively affect accomplished work? never.. seldom..often..frequent
Are new features introduced up to product release? never..seldom..often..frequent
Is there a dedicated period of quality assurance before the product is released? no.. yes
 


next up previous
Next: Software Engineering Methodologies Up: Projects Previous: X
Ronald LeRoi Burback
1998-12-14