Table D.1 Language Functionality Attributes

 

 

FAA/IBM Study

 

 

 

SEI Study

Language

Attributes

Maximum

Score

Ada 83

C

Pascal

Jovial

Fortran

Ada

83

C++

Capability

16.7

16.1

9.6

10.4

7.6

3.9

15.3

11.3

Efficiency

16.4

8.0

11.8

10.8

11.0

11.1

10.7

10.9

Availability/ Reliability

22.6

21.5

11.6

14.5

15.6

10.3

19.1

12.6

Maintainability/

Extensibility

17.4

14.0

10.2

12.2

6.8

8.3

13.6

11.4

Life-cycle cost

11.3

8.2

7.4

7.8

4.9

5.2

8.4

8.0

Risk

15.6

8.8

8.9

7.6

9.6

8.2

11.7

9.8

Total

100.0

76.6

59.5

63.3

55.5

47.0

78.8

64.0

 

SOURCES: Federal Aviation Administration (FAA)/IBM data from IBM (1985); Software Engineering Institute (SEI) data from Weiderman (1991).

  • Availability/Reliability—factors influencing day-to-day safety of operational systems;
  • Maintainability/Extensibility—factors influencing long-term viability of operational systems;
  • Life-cycle cost—elements of cost associated with or affected by the implementation language; and
  • Risk—areas of uncertainty or concern associated with or affected by the implementation language.

Ada scored the highest overall in both studies. It scored the highest in each individual category, except for efficiency, where it was ranked last, and risk, where it was ranked first in the SEI study and third in the FAA study.

PROJECT EVALUATION DATA

In comparisons of Ada with other programming languages in actual development projects, empirical data on characteristics such as expressibility, maintainability, defect rates, reusability, and cost factors are of particular interest. Since Ada has been used in relatively large programs, a larger proportion of data has been collected for Ada than for contemporaneous commercial programming languages like C and C++.

Much of the data are subjective in nature, and care must be taken in drawing conclusions from such studies. For instance, the data in Table D.2 are confounded by differences in the expressive power of a source line of code in different programming languages. One way of normalizing uses tables of source lines of code per function point (Jones, 1995). However, as shown in Table D.2, these ratios have wide variability. Lubashevsky (1996) reports variations in source lines of code per function point exceeding factors of 2 for C and 6 for C++. Finally, there are differences in expressiveness for the same language across different application domains.



The National Academies | 500 Fifth St. N.W. | Washington, D.C. 20001
Copyright © National Academy of Sciences. All rights reserved.
Terms of Use and Privacy Statement