Home/Publications/Technical Reports


April 1995

Michael J. Schrank
Glenn W. Boyce, Jr.
Dr. Carolyn K. Davis
The MITRE Corporation
7525 Colshire Drive
McLean, VA 22102

  • 1.0 Introduction
  • 2.0 Rising Maintenance Costs
  • 3.0 Ada's Impact on Software Life-Cycle Costs
  • 4.0 Status of Ada in Maintenance
  • 5.0 The Future of Ada Maintenance
  • 6.0 Conclusions
  • References
  • Authors


    In the late 1970's and early 1980's, the Ada programming language was developed by the Department of Defense (DOD) to support mission critical computer resources. In 1983, Ada was mandated for use in real-time, embedded systems. At its inception, it was intended that Ada would become the single common programming language for use in all future DOD systems. The expectation was (and continues to be) that Ada would reduce software life cycle costs by:

    • supporting "good" software engineering practices,
    • facilitating portability across platforms, and
    • shortening release cycles.

    Having performed evaluations for a broad spectrum of software maintenance organizations (SMOs), MITRE is in a unique position to assess the current use of Ada and to offer insight as to how well Ada has met its expectation with respect to life cycle cost reduction. This paper presents data suggesting current and future trends in developing software and in transitioning software systems from development to maintenance. This data is presented both from a technological viewpoint as well as an economic viewpoint. Also provided is a discussion of how Ada has penetrated the DOD maintenance environment, what we have seen at the maintenance organizations visited, and the identification of some roadblocks facing Ada in the maintenance arena.


    The cost of software maintenance has increased steadily during the past 20 years, consuming 60 to 80 percent of most software budgets. U. S. corporations now spend $30 billion annually on software maintenance and, by 1995, the process of fixing and upgrading aging application software programs will employ 90 percent of all software resources. New code is added faster than old code is deleted, increasing the maintainable systems base (Sherer, 1992). Moreover, growth in system size averages 5 to 10 percent per year and maintenance expenditures generally increase as systems age. This could lead to a "maintenance-bound" software organization that can no longer produce new software because it is expending all its available resources maintaining old software (Pressman, 1992).

    Software maintenance is also a major concern in the world of embedded systems. For example, the software development cost for the U.S. Air Force F-16 was $85 million, but the estimated cost of maintaining the software is $250 million (McClure, 1992). As Grady Booch has stated, change is probably the biggest challenge facing software systems today. It has already been mentioned that more resources are spent in the software maintenance phase than in any other phase of the life cycle. This points to the conclusion that large software systems don't die; they simply get modified (Booch, 1987).


    MITRE has an ongoing effort to evaluate military SMOs from the system-level, software, and cost perspectives. These evaluations have included reviews of the maintenance infrastructure (processes, procedures, and tools) that are required to provide software support and the identification of potential technologies or tools that might improve the maintenance environment. In addition, we have developed maintenance cost estimates for each of the maintenance activities. Using this baseline of information we are able to project the potential savings that can be attributed to the use of Ada.


    Developing a case for Ada as a cost savings technology first requires that several assumptions be made. The first is that the amount of delivered source lines of code will be reduced. This is based on the richness and syntax of the development environment. Although, initial efforts in Ada appear to disprove this assumption. Cost modelers, such as Don Reifer, have suggested that developers must be experienced Ada developers to achieve any increases in development productivity (Reifer, 1989). The NASA Software Engineering Laboratory (SEL) has also documented the case that experience is required before a reduction in the source lines of code (SLOC) is realized (SEL, 1991). The strong typing feature of Ada also tends to increase the amount of code written.

    The second assumption requires that equal functionality be compared when multiple languages are analyzed. Capers Jones has collected function point (FP) data that indicates for equal functionality Ada will require fewer SLOC to implement than C and other higher order languages (including FORTRAN and Jovial). For Ada, the SLOC per FP is 71; for C, the SLOC per FP is 128; and for other higher order languages (HOLs), the SLOC per FP is 105. This analysis is based on a range of 350 to 2100 FPs, in 350 FP increments. The source lines of code equivalents for each language are shown in Table 1. The software is assumed to be military avionics operating on an airborne platform. It is further assumed that no underlying architecture constraints, such as memory or throughput, are present.

    Table 1. Function Point vs. SLOC Comparison (Thousands of SLOC)

    FPs 350 700 1050 1400 1750 2100

    Ada SLOC 25.0 50.0 75.0 100.0 125.0 150.0

    Other HOL
    37.5 75.0 112.5 150.0 187.5 225.0

    C SLOC 45.0 90.0 135.0 180.0 225.0 270.0

    Using a parametric tool, the Martin Marietta Programmed Review of Information for Costing and Evaluation (PRICE) Software (PRICE-S), an average annual maintenance effort, in staff months, was calculated from a ten-year maintenance horizon for each of the languages and sizes. The results were converted to constant 1994 dollars using an average rate for software professionals of $130,000 per year. Table 2 contains the average annual maintenance costs for each language modeled.

    Table 2. Average Annual Maintenance Costs by Language (Thousands of 1994 Dollars)

    FPs 350 700 1050 1400 1750 2100

    Ada $101.6 $217.0 $338.9 $465.0 $594.0 $725.5

    Other HOL $165.3 $357.2 $560.3 $770.5 $985.6 $1,204.5

    C $215.7 $466.2 $731.1 $1,004.8 $1,284.8 $1,568.3

    Our analysis shows that the average annual cost for maintenance is lower for Ada than for either C or other HOLs. Figure 1 illustrates graphically the data on maintenance cost by FP for each of the languages.

    Figure 1. Average Annual Maintenance Costs (Thousand of 1994 Dollars)

    Figure 1.  Average Annual Maintenance Costs

    Achieving the savings that seem to be promised with the use of Ada (and good software engineering practice) means investment will be required in several areas. Better tools will be required, integrated development and maintenance environments will be required, more training, and a highly skilled workforce will also need to be available. The question that comes to mind is: "With little Ada software currently in the inventory, can current technology achieve maintenance cost savings equivalent to that of Ada?".


    While we do not attempt to answer the question of “What is the level of investment that would be required to upgrade maintenance support for current legacy systems?”, we can postulate what would be required in terms of productivity and quality enhancement to achieve a support cost reduction equal to that of Ada maintenance.

    The productivity factor is a combination of several parameters including: the extent of tool usage, the capability of the staff, the training provided, and the environment in which support takes place. The quality of the software is measured in terms of the number of latent defects remaining in the delivered code. The parametric tool allows us to vary the productivity and quality factors to determine what level will be required to reduce software support costs.

    Figures 2 and 3 represent the results of increasing the productivity factor by 50 percent and increasing the quality by 25 percent for other HOLs and C, respectively. For other HOLs, this combination of increases results in a decrease in support costs to that of Ada. For C, however, while the same 50 percent increase in productivity and 25 percent increase in code quality do result in a decrease in support costs, it does not represent enough of a decrease to be comparable to that of Ada. With these increases in productivity and code quality for other HOLs and C, Ada would still maintain its cost advantage since many of the techniques used to achieve the increases in productivity and code quality in other languages could also be applied to Ada.

    Figure 2. Ada Maintenance Cost Advantage vs. Other HOL

    Figure 2.  Ada Maintenance Cost Advantage vs. Other HOL

    Figure 3. Ada Maintenance Cost Advantage vs. C

    Figure 3.  Ada Maintenance Cost Advantage vs. C

    It should be noted that productivity, here defined as a combination of factors, is generally thought of as relating to only the increase in output of code per unit of time. It does not consider other portions of the development and maintenance life cycle such as requirements, design, or testing. It is also interesting to note that a 50 percent increase in productivity is not uncommon to find stated in vendor sales literature. Anecdotal evidence does not support this increase in most cases, especially across the entire life cycle.


    As previously mentioned, MITRE is currently supporting an effort to assess the "health" of military software maintenance organizations. The objectives of the assessment are to determine the software maintenance capabilities at a specific organization, identify areas of technical, programmatic and cost risk, estimate the costs associated with maintenance, and recommend actions which could reasonably be taken to improve the business efficiency and software quality.

    The programs assessed by MITRE have ranged from software support associated with a single box installed in military aircraft to supporting software on an entire weapons system platform. Most of the software being maintained by these organizations has been operational for many years and the standards under which the software was developed have changed over time.

    Our assessment experiences have shown, that for a limited domain, minimal amounts of Ada software are currently in the maintenance arena. Table 3 illustrates that for 12 projects in which we have been involved, only about 12% of the software was in Ada. The remaining software was in the usual mix of previously accepted military languages.

    Table 3. Language Distribution by Maintenance Project (SLOC)

    Project    Ada       C       CMS-2    Pascal  Assembly  Jovial   PL/M     Other    Total    
       A            0        0   312,200        0   182,400      0        0   309,300   803,900 
       B       98,500   53,900   291,700        0   497,100 89,100   48,000   223,500 1,301,800 
       C       64,500   21,000         0   18,000    64,500      0   45,000         0   213,000 
       D            0  202,000         0        0         0      0        0         0   202,000 
       E            0        0    84,000  210,000    74,600      0        0         0   268,600 
       F            0        0    92,700  106,000    38,800      0        0         0   237,500 
       G      330,200        0         0        0         0      0        0   506,000   836,200 
       H       76,500        0   277,000        0         0      0        0         0   353,500 
       I            0        0         0   42,000   143,000      0   72,000     6,400   263,400 
       J            0   50,000         0        0    54,000      0        0    12,000   116,000 
       K            0        0         0        0     1,200      0   19,000    24,000    44,200 
       L            0   40,000         0        0    45,000      0        0     8,000    93,000 
     TOTAL    569,700  366,900 1,057,600  376,000 1,100,600 89.100  184,000 1,089,200           
      PCT.      11.8%     7.6%     21.9%     7.8%     22.8%   1.8%     3.8%     22.5%           
    Maintenance of this software is often difficult since no current member of the technical staff participated in the software development, no development methodology was applied, documentation is incomplete or non-existent, and records of past changes are sketchy.


    To some it may be an arguable point as to whether Ada has or has not already entered the maintenance arena. However, with the data that is available and from first hand experiences, it is fairly clear that medium to large-scale Ada projects have NOT yet entered the maintenance phase of their life cycle. As can be seen from Table 4, there are many projects still in development (AdaIC, 1992). Some of these projects are very large systems that will consume enormous amounts of resources (both man and machine) to maintain.

    Table 4. Ada Systems Currently in Development (Thousands of SLOC)

    Sponsor Projects SLOC

    Air Force 151 12,600

    Army 62 2,400

    Marine Corps 41 3,900

    Navy 220 11,700

    Gov’t- Non-DOD 58 3,500

    Software maintenance organizations must be prepared for the transition of these systems into maintenance. Traditionally, military software support organizations are lagging in knowledge and capability regarding technology when it comes to state-of-the-art programming languages, software engineering processes, methods and tools. This lag is generally due to working with legacy systems 10 to 15 years old (and sometimes older) containing older technology and languages. Therefore, these organizations have not yet encountered large systems containing the Ada programming language and, as a result, have not been exposed to Ada software engineering and its accompanying environments. Just handing over the product and the tools is simply not sufficient to expect an SMO to seamlessly continue to maintain the product. Training in the product’s design methodology, software engineering practices, and proper usage of the tools is vital to preserving the quality of software product.

    The SMO should now be treated as critical an organization to the entire life cycle as the development organization has been treated all along. Ada is beginning to enter the maintenance arena and has been touted over the past couple of years with success stories. For these success stories to continue and not develop into nightmares, the maintenance phase of their life cycle must be given immediate attention.


    We have researched and analyzed the available data to determine whether Ada was achieving its initial goals of making a system more maintainable and thereby reducing life cycle costs. Initially, cost estimates of the data were developed utilizing parametric models. These estimates, based on the domain of airborne avionics software, implied that Ada will reduce maintenance costs. However, this reduction will not come without some up-front costs. These up-front costs are required to accomplish the transition of current maintenance organizations to Ada support environments. This transition will require an investment in personnel training and upgrades to software engineering environments. This transition cannot occur without considerable advance planning on the part of all organizations associated with the maintenance and support of software.

    Availability of data has prevented an in-depth study from being performed. However, it appears there is enough evidence from this limited analysis to warrant a caution flag being raised and further study should be performed. As more and more organizations are collecting data during their software processes, this would be the ideal time to make use of the data. However, no one should wait until all data is available to begin preparing the warrior for Ada.


    Ada Information Clearinghouse, 1992, "Ada Usage Summary Report", Washington, D.C.

    Booch, Grady, 1987, Software Engineering with Ada. Menlo Park: Benjamin/Cummings Publishing Co., Inc.

    GE PRICE Systems, 1991, PRICE S Software Model Reference Manual. Cherry Hill, NJ.

    Jones, Capers, 1991, Applied Software Measurement, New York: McGraw-Hill, Inc.

    McClure, Carma, 1992, The Three Rs of Software Automation; Re-engineering, Repository, Reusability. Englewood Cliffs: Prentice Hall.

    Pressman, Roger S., 1992, Software Engineering: A Practitioner's Approach, New York: McGraw-Hill, Inc.

    Reifer Consultants, Inc., Software Cost-Ada Reference Manual, November, 1989. Torrance, CA.

    Sherer, Susan A., November 1992, "Cost Benefit Analysis and the Art of Software Maintenance." Proceedings IEEE Conference on Software Maintenance.

    Software Engineering Laboratory, Proceedings of the Sixteenth Annual Software Engineering Workshop, Goddard Space Flight Center, December 1991.


    Glenn W. Boyce, Jr.
    The MITRE Corporation
    Economic and Decision Analysis Center
    7525 Colshire Drive, M.S. W635
    McLean, VA 22102-3481
    Voice: (703) 883-7588
    Fax: (703) 883-5963
    E-mail: gboyce@mitre.org

    Dr. Carolyn K. Davis
    The MITRE Corporation
    Software Engineering Center
    7525 Colshire Drive, M.S. W624
    McLean, VA 22102-3481
    Voice: (703) 883-7109
    Fax: (703) 883-1339
    E-mail: cdavis@mitre.org

    Michael J. Schrank
    The MITRE Corporation
    Software Engineering Center
    7525 Colshire Drive, M.S. W624
    McLean, VA 22102-3481
    Voice: (703) 883-5784
    Fax: (703) 883-1339
    E-mail: mschrank@mitre.org

    Presenter: Michael J. Schrank
    Title: Ada in the Maintenance Arena
    Track: Track 8 (Ada)
    Day: Wednesday, April 12, 1995
    Keywords: Ada, software maintenance, software cost estimation, mission critical computer resources