AdaIC News Winter 1996-1997
| Mitre Study | Zeigler Study |
Perhaps the main reason that the Ada programming language was developed is quite non-technical: to save money. Software engineering has goals: modifiability, efficiency, reliability, understandability, portability, reusability. Whatever their technical merits, the reason we pay attention to those goals is because failure to meet them costs money. Lots of it.
And the cost is not merely a matter of how much it costs to develop a program on day one. The point that concerned the Department of Defense (DoD) in adopting Ada was lifecycle costs — the cost of modifying, maintaining, and improving a system over the course of years.
To some extent, Ada’s advantages over the long haul are simply common sense: To the extent a program is modular, for instance, it will be easier to modify; to the extent it is readable, it will be easier to maintain. Ada encourages these characteristics far more than most other languages. Lifecycle costs, then, are bound to be less when using Ada.
Backing up those common-sense advantages with hard evidence, you can find several files of interest on the Ada Information Clearinghouse’s (AdaIC) World Wide Web site.
- One is a study conducted by the MITRE Corporation, “Ada in the Maintenance Arena”, by Michael J. Schrank, Glenn W. Boyce, Jr., and Dr. Carolyn K. Davis.
- Another is Dr. Stephen F. Zeigler’s paper “Comparing Development Costs of C and Ada”, previously mentioned in the Spring/Summer issue of this newsletter.
The MITRE study
The MITRE study points out that software-maintenance costs have increased to the point where they consume 60-80% of many software budgets. The study indicates that U.S. corporations are spending $30 billion annually on software maintenance and may employ as much as 90% of all software resources.
An example the study gives from the world of embedded systems is the Air Force’s F-16 aircraft. Development costs were $85 million, but estimated maintenance costs are $250 million. MITRE’s experience in this area comes from “an ongoing effort to evaluate military [software-maintenance organizations] from the system-level, software, and cost perspectives”. Part of this effort has included development of maintenance cost estimates for each of the maintenance activities. “Using this baseline of information,” the report notes, “we are able to project the potential savings that can be attributed to the use of Ada.”
The report’s case for Ada cost savings does require making certain assumptions. One is the expectation that the amount of delivered source lines of code will be reduced. The authors point out, however, that reports indicate that developers must be experienced in Ada to increase development productivity — which many Ada supporters regard as a given.
A second assumption requires that one be able to compare equal functionality in analyzing multiple languages. This issue is addressed by reference to the “function point” (FP) data collected by T. Capers Jones — which compares different languages’ line counts in terms of the functionality they provide, rather than assuming that one line in one language is as meaningful as one line in any other. The FP data indicates that Ada will obtain equal functionality with fewer source lines of code (SLOC) than C and other high-level languages such as 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.”
The study authors also calculated comparative costs for an average annual maintenance effort within a ten-year “maintenance horizon” (using a parametric tool, Lockheed-Martin’s Programmed Review of Information for Costing and Evaluation (PRICE) Software (PRICE-S)). Their analysis showed average annual maintenance costs to be lower for Ada than for C and for all other HOLs in general.
(The MITRE study can be found on the AdaIC Web site at http://archive.adaic.com/docs/reports/schrank/main.htm).
What improvement would C or other languages need?
The report then asks what sort of a boost C or other languages would need to come up to Ada. As an example, the study shows the effects of increasing C and other languages’ productivity factor by 50% and increasing quality by 25%. For other HOLs in general, the combination would bring support costs down to those of Ada. For C, though, that same improvement would still not be enough. Moreover, “[w]ith these increases in productivity and code quality for other HOLs and C,” the report says, “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.”
However, the report also points out that Ada itself must be supported by investment. The report concludes that very few large Ada programs have entered the maintenance phase. When they do, just “handing over the product and the tools is simply not sufficient”. Training in a product’s design methodology, software-engineering practices, and proper tool usage are “vital to preserving the quality of software product.”
Successful maintenance, the report says in closing, “cannot occur without considerable advance planning on the part of all organizations associated with the maintenance and support of software. Ø
The Zeigler study
The evidence available to the MITRE study indicated that few major Ada systems in the DoD have moved into the maintenance phase. To gain evidence from the maintenance perspective, we can look at long-term figures for a commercial product — specifically the Verdix Ada Development System (VADS), on which work began in 1983. The project was started in C because suitable Ada compilers were not yet available. Later, however, both C and Ada were used.
Quite unintentionally, the use of both languages provided a head-to-head comparison of C and Ada. Both the staff and the tools they used kept the comparison fair. The VADS tools, supporting both C and Ada, were used for their own development, and the staff was equally proficient in both languages.
All that was needed was for someone to go back over the update/maintenance records of the Verdix system. This analysis was performed by Dr. Stephen F. Zeigler, who worked on the effort first for Verdix, now for Rational Software Corp. (which later purchased Verdix). The data from the VADS effort reveals that over the lifecycle, Ada’s cost effectiveness is twice that of C’s, or better.
One other notable conclusion was that, within a six-month timeframe, Ada is no more difficult to learn than C is; and as developers continue to learn Ada, their code will improve in quality. In contrast, the study finds that the fix rates of C users do not substantially improve after the first six months. “We can observe that those people who code primarily in Ada can expect fewer bugs and general improvement, while C users can expect harder going,” the study reported.
(The Zeigler study can be found on the AdaIC Web site at http://www.adaic.com/whyada/ada-vs-c/cada_art.html.) Ø
Ada 95 Tools to be Available on Loan
Financial risk is frequently a concern when an organization transitions to an Ada-based development environment. Responding to this, the Ada Joint Program Office (AJPO) has established a resource library of Ada software tools for use by government organizations desiring to move to the new technology.
The library, administered by the Idaho National Engineering Laboratory (INEL), will make available Ada 95 bindings, compilers, application systems, and other innovations in return for evaluations of the products’ technical features and customer support. The tools will be on loan for an appropriate period (say, six months), and thereafter will be made available to others interested — as also will be the evaluations.
The library will thus leverage the AJPO’s investment in promoting the development and spread of the Ada programming language. Ada 95 tools will be variously applied and reapplied in the field, and all involved will benefit from real-use evaluation and lessons learned. Organizations interested in obtaining additional information on the tools loaner program and the Ada95 tools available should contact the Idaho National Engineering Laboratory:
PREVIOUS PAGE CONTENTS NEXT