home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / docs / success / ascii / adacplus.txt < prev    next >
Encoding:
Text File  |  1996-04-29  |  23.9 KB  |  442 lines

  1. Form G75-0892a
  2. AdaCPLUS.HLP
  3.  
  4. Ada Information Clearinghouse, 1-800-AdaIC-11, 1-703-685-1477
  5.  
  6.                    OVERVIEW OF U.S. AIR FORCE REPORT
  7.                  Ada AND C++: A BUSINESS CASE ANALYSIS
  8.  
  9. On July 9, 1991, the Air Force released to the public a report of a business 
  10. case they conducted to determine under what circumstances a waiver to the DoD 
  11. Ada requirement might be warranted for use of C++, particularly in DoD's 
  12. Corporate Information Management (CIM) program.  The report is titled, "Ada 
  13. and C++: A Business Case Analysis."
  14.  
  15. Since its release the report has received a great deal of publicity in various 
  16. newspapers and journals.  The information that follows was excerpted from 
  17. remarks made by Mr. Lloyd K. Mosemann, II, Deputy Assistant Secretary of the 
  18. Air Force (Communications, Computers, and Logistics), at a press conference 
  19. held July 9, 1991.
  20.  
  21. Reprinted with permission.
  22.  
  23.                              I.  Introduction
  24.  
  25. There has never been any intention to question DoD's commitment to Ada, but 
  26. only to identify when waivers for C++ might be warranted.  This business case 
  27. will support the development of DoD programming language policy for 
  28. information systems and C3 systems.
  29.  
  30. I might say at the outset that language comparison is not merely a scientific 
  31. issue: it evokes strong emotions as well, in that to a certain extent people 
  32. adopt "favorite" languages for reasons other than purely dispassionate 
  33. analysis, much as one might not be able to explain why he/she roots for the 
  34. Chicago Cubs or drinks Coke rather than Pepsi.  The task is also rendered 
  35. difficult because there are yet no well-established and standard methods for 
  36. conducting such comparisons.  For these reasons, we endeavored to make our 
  37. study as quantitative as possible, asking the best experts we could find to 
  38. use a variety of methods that have historically been used for business 
  39. analysis in such tasks.  We felt that by using a variety of methods and 
  40. comparing their results, we would avoid the skewing that might result from the 
  41. sole use of a single method.
  42.  
  43. In our business case, therefore, several different approaches were undertaken 
  44. to identify, from a business perspective, when the life cycle cost 
  45. effectiveness of C++ might be greater than that of Ada.
  46.  
  47. --    The first, conducted by the Institute for Defense Analyses (IDA), 
  48.       examined quantitatively the availability of tools and training for the 
  49.       two languages.
  50.  
  51. --    The second, conducted by the Software Engineering Institute, applied to 
  52.       this problem a quantitative language selection methodology developed by 
  53.       IBM for the Federal Aviation Administration (FAA).
  54.  
  55. --    The third, conducted by CTA, Inc., analyzed cost and cost analysis).
  56.  
  57. --     And the fourth, conducted by the TRW Corporation, applied a standard 
  58.       cost model in depth to both languages for a typical information 
  59.       systems/C3 project (micro analysis).
  60.  
  61. --    In addition, the Naval Postgraduate School (NPS) was asked to address 
  62.       the overall policy issue of Ada, particularly in the context of emerging 
  63.       fourth-generation language (4GL) software technology.
  64.  
  65. Each of the substudies reached the same conclusion: there are no compelling 
  66. reasons to waive the Ada requirement to use C++.
  67.  
  68. The business case analysis was directed at information systems and C3 systems.  
  69. However, there is no reason to believe the results would differ for computer 
  70. programs embedded in weapons systems.
  71.  
  72. Let me now summarize for you the salient quantitative results of each study, 
  73. and I think you will understand more fully how we arrived at our conclusion.
  74.  
  75.                           II.  Substudy Results.
  76.  
  77.         A.  Tools, Environments, and Training: IDA Substudy.
  78.  
  79. The Institute for Defense Analyses (IDA) collected and analyzed information on 
  80. the market availability of commercial- off-the-shelf products available from 
  81. U.S. sources for Ada and C++ compilers, tools, education, and training.
  82.  
  83. The study provided a large quantity of demographic data.  For example, there 
  84. are 28 companies located in the U.S. that have Ada compilers with currently 
  85. validated status; 18 vendors offer C++ compilers.  The Ada compiler vendors 
  86. are more likely to have been in business five years or more.  Ada "validation" 
  87. is more rigorous than that of other high order languages: only Ada is 
  88. monitored and approved for conformity to a standard, without supersets or 
  89. subsets, by a government-controlled process.  By contrast, no validation or 
  90. even a standard of any kind exists for C++, although a standard by 1994 is 
  91. expected.
  92.  
  93. Both languages are supported on PCs and workstations.  Ada is also supported 
  94. on mainframes.  Ada, but not C++, has cross compilation systems.
  95.  
  96. Ada is supported with program engineering tools.  Compiler vendors provide a 
  97. rich set.  Code generators exist for Ada but none so far for C++.  There is 
  98. considerable variability among C++ products in language features supported and 
  99. libraries provided.
  100.  
  101. Ada is taught in 43 states at 223 universities and 13 DoD installations.  C++ 
  102. is taught in four states at four universities and no DoD installations.  There 
  103. are more Ada than C++ courses available.  The cost of training is about equal, 
  104. but Ada course variety is wider.
  105.  
  106.   B.  Faceted IBM Language Selection Methodology: SEI Substudy.
  107.  
  108. The Federal Aviation Administration (FAA) contracted with IBM in the mid-1980s 
  109. to evaluate high order languages for use on its Advanced Automation System 
  110. (AAS) Program.  In response, IBM developed a formal, quantitative faceted 
  111. methodology comparing 48 language features (criteria) in six categories.  This 
  112. IBM study concluded that use of Ada was "in the ultimate best interest of the 
  113. AAS program and its goals, and that warrants coping with the temporary 
  114. risks/problems that loom large in the near term in order to reap the 
  115. significant benefits/payoffs over the long term."
  116.  
  117. Using this same methodology for each of the 48 criteria, the Software 
  118. Engineering Institute (SEI) evaluated Ada and C++ for application in 
  119. information systems/C3 systems.  The original FAA weighted scores for the six 
  120. criteria categories were as shown in this matrix:
  121.  
  122.       Category       Max.    Ada    C    Pascal  JOVIAL  FORTRAN
  123.                      Score
  124.  
  125.       Capability      16.7   16.1    9.6   10.4     7.6     3.9
  126.       Efficiency      16.4    8.0   11.8   10.8    11.0    11.1
  127.       Availability
  128.         Reliability/  22.6   21.5   11.6   14.5    15.6    10.3
  129.       Maintainability/
  130.         Extensibility 17.4   14.0   10.2   12.2     6.8     8.3
  131.       Lifecycle cost  11.3    8.2    7.4    7.8     4.9     5.2
  132.       Risk            15.6    8.8    8.9    7.6     9.6     8.2
  133.  
  134.       Total          100.0   76.6   59.5   63.3    55.5    47.0
  135.  
  136. The 1991 weighted scores for the six criteria categories were:
  137.  
  138.       Category                Max. Score   Ada    C++
  139.  
  140.       Capability                    16.7   15.3   11.3
  141.       Efficiency                    16.4   10.7   10.9
  142.       Availability/Reliability      22.6   19.1   12.6
  143.       Maintainability/Extensibility 17.4   13.6   11.4
  144.       Lifecycle cost                11.3    8.4    8.0
  145.       Risk                          15.6   11.7    9.8
  146.  
  147.       Total                        100.0   78.8   63.9
  148.  
  149. In 1985 Ada was considered considerably more capable than C.  Today, the SEI 
  150. study found there is still a significant difference between Ada and C++, C's 
  151. successor.  The relative efficiency of Ada has improved markedly; Ada still 
  152. scores significantly higher in availability/reliability; the Ada advantage in 
  153. maintainability/extensibility persists; and from a position of parity in 1985, 
  154. Ada has attained in 1991 a significant advantage over C++ in lowered risk.
  155.  
  156. An attachment lists numerous major Ada information systems/C3 systems.  It is 
  157. not widely appreciated that such extensive use is now being made of Ada: in 
  158. fact, the Ada 9X Project Office reports that the U.S. Ada market, excluding 
  159. training, services, and government research/development, now exceeds $1 
  160. billion.
  161.  
  162.                 C.  Macro Cost Analysis: CTA Substudy.
  163.  
  164. CTA compiled and compared available productivity and cost data of Ada and C++.  
  165. Much of their data comes from Reifer Consultants' extensive database, one of 
  166. the best, largest, and most current programming language cost databases now 
  167. available.
  168.  
  169. Average productivity across the four domains for which data exists 
  170. (environment/tools, telecommunications, test (with simulators) and other) for 
  171. both Ada and C++ projects is shown in this matrix.  Note the productivity 
  172. advantage for Ada:
  173.  
  174.                         Productivity   Number of
  175.                           (SLOC/MM)   Data Points
  176.       *  Norm (all languages) 183         543
  177.       *  Average (Ada)        210         153
  178.       *  Average (C++)        187          23
  179.       *  First project (Ada)  152          38
  180.       *  First project (C++)  161           7
  181.  
  182. The C++ project data reflected information on 23 projects taken from seven 
  183. firms who had been using C++, Unix, and object-oriented techniques for over 2 
  184. years.  All projects were new developments.  Application size ranged from 25 
  185. to 500 KSLOCs (thousand source lines of code).  Average size was about 100 
  186. KSLOC.
  187.  
  188. The average costs across the four domains for both Ada and C++ projects are 
  189. shown in this matrix.
  190.  
  191.                                 Cost       Number of
  192.                               ($/SLOC)    Data Points
  193.       *  Cost (all languages)  $ 70           543
  194.       *  Average (Ada)           65           153
  195.       *  Average (C++)           55            23
  196.  
  197. Typically, the Ada developments were performed in accordance with military 
  198. standards and incorporated formal reviews, additional documentation, and 
  199. additional engineering support activities such as formal quality assurance 
  200. (QA) and configuration management (CM).  Most C++ projects are commercial and 
  201. do not extensively incorporate such activities.  Additionally, on such 
  202. projects developers are typically intimately involved with users, resulting in 
  203. considerably less requirements engineering effort.  Consequently, applications 
  204. on which C++ is used are inherently less costly, so that the reported 
  205. productivity rates are favorably skewed toward C++.
  206.  
  207. The average error rates across the four domains for both Ada and C++ projects 
  208. were:
  209.  
  210.                        Integration          FQT          Number of
  211.                        Error Rates       Error Rates       Data
  212.                      (Errors/KSLOC)     (Errors/KSLOC)     Points
  213.       *  Norm (all languages)   33             3            543
  214.       *  Average (Ada)          24             1            153
  215.       *  Average (C++)          31             3             23
  216.  
  217. The integration error rates include all errors caught in test from start of 
  218. integration testing until completion of software Formal Qualification Test 
  219. (FQT).  The FQT error rate includes only those errors found during the FQT 
  220. process.
  221.  
  222. A so-called "transition state analysis" performed by Reifer's group indicates 
  223. that 26 of the 38 firms within the Ada database had successfully made the 
  224. changeover to effective use of Ada, while none of the 7 firms in the C++ 
  225. database had made the transition.  Also, none of the 7 firms were fully using 
  226. C++'s inheritance and other advanced features.
  227.  
  228. The standardization maturity of Ada was found by the CTA to be particularly 
  229. important.  While Ada has a firm and well policed standard, allowing neither 
  230. supersets nor subsets, it will be years before a stable C++ language 
  231. specification is established.  New features are being considered for the 
  232. latest standard C++ release.  Vendors are likely to offer their own enhanced 
  233. versions of C++ compilers and CASE tools, complicating portability and reuse.
  234.  
  235. Finally, the original arguments for establishing a single programming language 
  236. for military applications were found to remain.  Common training, tools, 
  237. understanding, and standards simplify acquisition, support, and maintenance.  
  238. The study concluded that after maturing for a decade, Ada's benefits have been 
  239. proven for all application classes.  Ada projects have reported 15% higher 
  240. productivity with increased quality and double the average size.  Normalizing 
  241. these data to comparable size projects would result in an expected Ada 
  242. productivity advantage of about 35%.  Ada should be the near term language of 
  243. choice.  C++, the study felt, still needs significant maturing before it is a 
  244. low risk solution for a large DoD application.
  245.  
  246.                 D.  Micro Cost Analysis: TRW Substudy.
  247.  
  248. TRW performed a tradeoff analysis that generalized recent corporate cost 
  249. analyses on a typical real-world information systems/C3 systems project.  
  250. Their study defined a set of maximally independent criteria, judged each 
  251. language with respect to those criteria, and then translated those judgments 
  252. into cost impacts to emphasize the importance of each criterion from a 
  253. lifecycle cost perspective.  Results were translated into perturbations of 
  254. Boehm's Ada COCOMO cost model.
  255.  
  256. Rankings of the two languages based on this analysis are shown in this matrix 
  257. (0 = no support; 5 = excellent support), followed by a total score, a weighted 
  258. sum of the rankings based on weights determined by an expert panel:
  259.  
  260.                                                Ada     C++
  261. Reliable S/W Engineering                       4.5     3.2
  262. Maintainable S/W Engineering                   4.4     3.2
  263. Reusable S/W Engineering                       4.1     3.8
  264. Realtime S/W Engineering                       4.1     2.8
  265. Portable S/W Engineering                       3.6     2.9
  266. Runtime Performance                            3.0     3.6
  267. Compile-Time Performance                       2.3     3.1
  268. Multilingual Support                           3.1     2.4
  269. OOD/Abstraction Support                        3.9     4.6
  270. Program Support Environment                    4.1     2.1
  271. Readability                                    4.4     2.9
  272. Writeability                                   3.4     3.5
  273. Large Scale S/W Engineering                    4.9     3.3
  274. COTS S/W Integration                           2.8     3.6
  275. Precedent Experience                           3.6     1.5
  276. Popularity                                     2.8     4.0
  277. Existing Skill Base                            3.0     1.8
  278. Acceptance                                     2.5     3.3
  279.  
  280. TOTAL SCORE FOR MGT INFO SYSTEMS              1631    1324
  281.     (Ada score is 23% higher)
  282.  
  283. TOTAL SCORE FOR C3 SYSTEMS                    1738    1401
  284.     (Ada score is 24% higher)
  285.  
  286. The study concluded that both Ada and C++ represent improved vehicles for 
  287. software engineering of higher quality products.  Currently, C++ was estimated 
  288. to be approximately 3 years behind Ada in its maturity and tool support.  The 
  289. case study used in this report (the Command Center Processing and Display 
  290. System -- Replacement) demonstrated development cost advantages for Ada on the 
  291. order of 35% and maintenance cost advantages for Ada on the order of 70% under 
  292. today's technologies.  In the far term (1994+), the study felt, this Ada 
  293. advantage might erode to approximately a 10% advantage in development costs 
  294. and 30% in maintenance costs for a typical development intensive system.
  295.  
  296. The study listed the primary strengths of Ada as its support for realtime 
  297. domains and large scale program development.  Its primary weaknesses are its 
  298. compile-time and runtime efficiency.  The primary strengths of C++ listed were 
  299. its support for better object oriented design, support for COTS integration, 
  300. and its compile-time and runtime efficiency.  Its main weaknesses were 
  301. identified as its support for reliability and large scale program development.  
  302. In general, the study felt Ada's weaknesses to be solved by ever-increasing 
  303. hardware performance and compiler technology advancement.  C++ weaknesses, on 
  304. the other hand, remain to be solved by advances in its support environment.
  305.  
  306.                    E.  Ada Policy Issues: NPS Study.
  307.  
  308. Concurrently with the preparation of this Ada and C++ Business Case Analysis, 
  309. the Naval Postgraduate School (NPS) reported on policy issues on the use of 
  310. Ada for Management Information Systems.  Their report, an analysis of the need 
  311. to see Ada in a total and evolving context, is an important vision statement 
  312. leading from Ada as the primary third-generation language (3GL) to its 
  313. conception as the basis for evolving to higher levels of productivity in 
  314. so-called 3 1/2 GL and 4GL environments.
  315.  
  316. Rather than concentrating on programming language selection, the NPS report 
  317. focuses on and argues for needed advances in software development technology.  
  318. In particular, the Report contends, while traditional factors such as 
  319. programming language selection, better training, and computer-assisted 
  320. software engineering (CASE) tools can enhance productivity modestly, a 
  321. fundamental change in the software development paradigm will be necessary to 
  322. achieve an order of magnitude gain.  Such a gain is possible through use of 
  323. 4GLs, languages that will ultimately enable the developer to define the 
  324. complete design of an application entirely in the 4GL's own high-level 
  325. specification language.  The specification is then translated automatically by 
  326. the 4GL into an executable program.  When accompanied by a productive 
  327. development environment, an evolutionary implementation methodology, and well 
  328. trained development teams, the report asserts, 4GLs can provide a tenfold gain 
  329. in productivity.
  330.  
  331. An intermediate step cited by the report in the movement to 4GLs is 3 1/2 GL 
  332. programming, a term referring to the extensive use of CASE tools coupled with 
  333. a high level of code reuse.  The 3 1/2 GL approach requires a strong 
  334. commitment to codifying and accrediting code modules, to the point where it 
  335. becomes easier and more desirable to reuse code than to rewrite it.
  336.  
  337. Although experience with 4GLs has not yet been extensive (with existing 
  338. experience limited largely to specific functional domains such as financial 
  339. management and transaction processing), 4GLs are attractive for several 
  340. reasons.  One is their robustness under change: changes made to the 
  341. application, for whatever reason, are made at the specification level and then 
  342. re- translated automatically into executable code.  Another is the facility 
  343. with which they can be integrated into tightly knit and full-featured 
  344. development environments.  For these reasons, the report strongly recommends 
  345. that the DoD discourage use of traditional 3GL programming and take bold steps 
  346. to incorporate the 4GL paradigm.
  347.  
  348. Finally, the report recommends that, given the importance of Ada to DoD 
  349. software, greater effort and funding should be provided for the key Ada 
  350. initiatives: the Ada Technology Improvement Program, Ada 9X, and Ada education 
  351. initiatives.
  352.  
  353. Two issues on 3 1/2 GLs and 4GLs related to this business case were outside 
  354. the scope of the NPS report.  The first of these is that, for the foreseeable 
  355. future, state-of-the-art limitations will probably keep 4GLs from generating 
  356. more than half the total code required by most applications.  In such cases, 
  357. where a substantial amount of 3GL programming will be required to complete 
  358. application development, use of a 3 1/2 GL approach, rather than a 4GL 
  359. approach, is preferable.
  360.  
  361. Another issue outside the scope of the NPS Report was the evaluation of the 
  362. relative merits of Ada and C++ as target (output) languages for 4GL 
  363. application generators.  However, as section V.C of the NPS report points out, 
  364. a "standard, stable target language portable to a variety of hardware 
  365. platforms" with good software reuse and interface definition capabilities is 
  366. appealing.  Although more study of the characteristics desired in 4GL target 
  367. languages is warranted, the SEI and TRW substudies suggest no particular 
  368. advantage of C++ over Ada in software reuse and interface definition, so there 
  369. appears no reason to waive DoD's Ada requirement in favor of C++ as a target 
  370. language for 4GLs.
  371.  
  372.                              3.  Conclusions.
  373.  
  374. All four substudies which specifically compared Ada and C++ (IDA, SEI, CTA, 
  375. TRW) report a significant near term Ada advantage over C++ for all categories 
  376. of systems.  This advantage could be eroded as C++ and its supporting 
  377. environments mature over the next few years.  On the other hand, as aggressive 
  378. overseas Ada initiatives stimulate even wider domestic Ada interest, as Ada 
  379. tools/environments further mature, and when the Ada update (Ada 9X) is 
  380. complete, the balance could tip further in Ada's favor.
  381.  
  382. Adding to the case for Ada is the fact that the Ada scoring so well in the 
  383. business case was Ada's 1983 version, MIL-STD-1815A.  Just as C++ incorporates 
  384. into C certain software engineering concepts already in Ada (e.g., modularity, 
  385. strong typing, specification of interfaces), so an Ada update now underway 
  386. will bring into Ada selected features now included in C++.  This update, known 
  387. as the Ada 9X Project, is targeted for completion in 1993.  The product of 
  388. extensive community involvement (including the C3 and MIS communities), Ada 9X 
  389. will bring to Ada such improvements as decimal arithmetic, international 
  390. character sets, improved input/output, support for calls between Ada and other 
  391. languages, further representation specifications, and inheritance/polymorphism 
  392. (popular features of C++).  The Ada 9X Project Office lists one of the goals 
  393. of Ada 9X as "to provide all the flexibility of C++ with the safety, 
  394. reliability, and understandability of Ada 83."
  395.  
  396. At the same time, Ada 9X has been designed so that neither existing Ada 
  397. benefits nor performance will be lost.  For example, Ada 9X inheritance will 
  398. be controlled so as not to reduce lifecycle supportability.  Some have 
  399. criticized OOP features such as inheritance as potentially dangerous to DOD 
  400. software mission goals (such as safety, reliability, and dependability).  
  401. Bjarne Stroustrup himself, the originator of C++, has been quoted as follows: 
  402. "C makes it easy for you to shoot yourself in the foot.  C++ makes that 
  403. harder, but when you do, it blows away your whole leg."
  404.  
  405. In summary, it is not possible to make a credible case for the existence of 
  406. classes of "more cost effective" C++ systems compared to Ada.  Business cost 
  407. effectiveness data collected for this study are typified by the TRW study's 
  408. conclusion that Ada provides development cost advantages on the order of 35% 
  409. and maintenance cost advantages on the order of 70%.  In terms of full 
  410. lifecycle costs, it will be some time before data exists which could justify a 
  411. cost savings for C++.  Today, there is limited lifecycle data available for 
  412. Ada and almost none for C++.
  413.  
  414. For the foreseeable future, then, this business case shows that there are more 
  415. than enough reasons for the DoD to stick firmly with Ada, both for all high 
  416. order language (3GL and 3 1/2 GL) development and for exclusive use as a 
  417. target language of 4GL application generators in the large class of 
  418. applications for which 3GL code must supplement generated code.
  419.  
  420.                           ++++++++++++++++++++++
  421.  
  422. Those who have an account with the Defense Technical Information Center (DTIC) 
  423. may purchase "Ada and C++: A Business Case Analysis" from DTIC, Cameron 
  424. Station, Alexandria, Virginia 2314, 703/274-7633; Order No. AD A253 087; Cost 
  425. $20.82.  All others may purchase it from the National Technical Information 
  426. Service (NTIS), U.S. Department of Commerce, 5825 Port Royal Road, 
  427. Springfield, Virginia 22161, 703/487-4600; Order No. AD A253 087; Cost $43.00.
  428.  
  429.                             **********************
  430.  
  431.                  Ada Information Clearinghouse (AdaIC)
  432.                                P.O. Box 46593
  433.                        Washington, DC  20050-6593
  434.              703/685-1477, 800/AdaIC-11, FAX 703/685-7019
  435.            adainfo@ajpo.sei.cmu.edu; CompuServe 70312,3303
  436.  
  437. The AdaIC is sponsored by the Ada Joint Program Office and operated by IIT 
  438. Research Institute.
  439.  
  440.  
  441.  
  442.