Documented Results of Software Reuse: Quantified Savings and Benefits Jeffrey S. Poulin Reuse Technology Support Center International Business Machines Corporation Abstract: This paper collects documented experiences in software reuse. The _____________________________________________________________________ first section of the paper lists results from those reusing software both in ____________________________________________________________________________ industry and within IBM. The second section of the paper provides experi- __________________________________________________________________________ ences of those producing code for reuse. By providing a collection of reuse ____________________________________________________________________________ case studies this paper will help people seeking to develop a reuse program ___________________________________________________________________________ estimate resources, develop schedules, and determine expected Return on _______________________________________________________________________ Investment. ___________ KEYWORDS: Software Reuse, Reuse Experiences, Reuse ROI. 1 OVERVIEW ________ The success of transferring technology to an organization depends on pro- viding examples where the technology resulted in quantified benefits. This paper helps meet this need by presenting some documented experiences in soft- ware reuse. By providing a collection of case studies on the effects of reuse on software development, this paper will help organizations determine the potential value of reuse in their line of business. However, the reader must consider these results in their reported contexts. The interpretation of any measurement depends on the collection method, envi- ronment, and numerous other factors. Most results lack sufficient supporting information. The reader therefore does not have the details required to repeat the experiment or case study, understand the results, or cogently agree with or disagree with the conclusions. Failing to consider these issues may lead to inappropriate perceptions Ý21¨. Not only do few reports put the reported data in context, they do not expand on the results or value of the experience. Many organizations report the levels of reuse achieved on projects but they do not explain the value of reuse in terms of quality improvement or cost savings. When a report includes these results, the reader must know the cost model, defect defi- nitions, assumptions, and all other factors necessary to responsibly inter- pret the findings. Few organizations publish their definition of reuse Ý15¨, Ý16¨, Return on Investment (ROI) model Ý17¨, or assumptions made when deter- mining the value of reuse in their organization Ý18¨, Ý19¨. 2 REUSE CONSUMERS _______________ The following two sub-sections provide experiences in reusing software. These experiences reflect the effects of reuse on product quality, produc- tivity, and cost savings on a product. These two sub-sections also include reports on the effort to reuse software. Although normally easier than developing custom software, reusing software still requires resources. We call the work required to locate, retrieve, understand and integrate reusable software into a product the Relative Cost of Reuse (RCR). ______________________ REUSING SOFTWARE IN INDUSTRY ____________________________ BELLCORE Bellcore reports that as of 1990 they reused 5 million lines of code through their Bellcore Application Environment (BAE). Bellcore reports that the investment in the development of the common BAE software presently returns three to four times its value when compared to the equivalent software devel- opment costs without software reuse Ý2¨. GTE DATA SERVICES In 1986 GTE Data Services initiated the Asset Management Program (AMP) for the purpose of creating and maintaining a corporate collection of reusable assets. Their library system implemented on an IBM mainframe using the COBOL programming language and the DB2 database system. AMP consists of 128 reus- able parts, of which 38% contributed to more than one project. During its first year GTE had a corporate reuse percent of 14% and an overall estimated savings of $1.5 million. Ý20¨. EUROPEAN CONSULTANTS NETWORK The European Consultants Network implemented a set of Ada tools for dialogue management for a popular workstation platform. As part of an approximately 30 kloc project, they experienced approximately 8 kloc of reused software (27%). To study the cost of this reuse they classified the reusable compo- nents into groups based on increasing complexity. The study grouped the software into: GROUP CHARACTERISTICS MONOLITHIC Single data structure of basic types (e.g., stacks and queues) POLYLITHIC Compound data structure possibly containing multiple basic types (e.g., trees and lists) Reuse Consumers 3 GRAPH Complex data structure containing multiple interconnections of pos- sibly several basic types MENU End product of project; an input tool MASK End product of project; a form management tool The study concluded that the Relative Cost of Reuse (RCR) depended on the complexity of the software reused. Table 1 provides a summary of the results; very simple components require little effort (10% of the effort to write new software) whereas very complex components required 40% of the effort of new development. The study concludes that reuse can save from 60% to 90% of development costs Ý8¨. +---------------------------------------------------------------------------+ | Table 1. European Consultants Network- RCR | +--------------------------------------------------------+------------------+ | TYPE OF SOFTWARE | RCR | +--------------------------------------------------------+------------------+ | Monolithic | 0.10 | +--------------------------------------------------------+------------------+ | Polylithic | 0.15 | +--------------------------------------------------------+------------------+ | Graph | 0.25 | +--------------------------------------------------------+------------------+ | Menu | 0.30 | +--------------------------------------------------------+------------------+ | Mask | 0.40 | +--------------------------------------------------------+------------------+ NTT SOFTWARE LABS Nippon Telephone and Telegraph (NTT) Corporation's Software Labs provides a sample of Japanese reuse experiences on a project involving 100 NTT employees and 500 contractors. The project includes 1 mloc/year of C and SYSL (a dialect of PL/I) code for program development tools (such as compilers, design support tools, and project management tools). These tools run on workstations, PCs, and mainframe computers. NTT conducted the following activities: o Created quality control actions to deposit and reuse modules o Constructed an extensive library of reusable modules o Compiled manuals and guidelines o Developed tools for managing, finding, and using modules. A reusability committee monitors the programs, sets goals (reuse ratio and module deposition ratio), and gives three awards (high-deposition-ratio, high-reuse-ratio, and highly-utilized-module). By the 4th year the reuse percent on projects increased to 17%, the average reuse module size increased to nearly 600 LOC, the average reuse frequency 0.28, and the ratio of modules reused at least once 0.19 Ý3¨, Ý10¨, Ý11¨. 4 RAYTHEON On a major business applications system project Raytheon reused functions based on common patterns and business abstractions; e.g., sort, edit, combine, explode, update, and report. Database modules for input/output, interface description, search, and database calls also contributed to reuse on this project. As a result, Raytheon experienced a 50% productivity increase with reuse levels of 60% Ý7¨. SOFTWARE ENGINEERING LABORATORY The NASA/Goddard Space Flight Center, the University of Maryland, and the Computer Sciences Corporation (CSC) launched a joint effort called the Soft- ware Engineering Laboratory (SEL) to study software engineering principles and promote modern development techniques. The three year study included an analysis of the effect of reuse in Ada development projects in a single organization. The study identifies four classes of software: 1. newly created 2. reused with extensive modification (>25%) 3. reused with slight modification (<25%), and, 4. reused verbatim. SEL reports quality benefits as measured by Error Density (Errors/kloc) directly proportional to the amount and quality of reuse. As shown in Table 2, reused code had almost an order of magnitude fewer errors than newly developed code. Productivity ranged from 2.5 kloc/staff month on the project with the least reuse (26%) to 5.8 kloc/staff month for the project with the most reuse (94%), demonstrating a two-fold increase in productivity with increased reuse Ý23¨.(1) +---------------------------------------------------------------------------+ | Table 2. Error Density by Class of Reuse at SEL | +-------------------------------------+-------------------------------------+ | CLASS OF REUSE | ERRORS / KLOC | +-------------------------------------+-------------------------------------+ | New Code | 9.5 | +-------------------------------------+-------------------------------------+ | Extensively Modified Code | 8.1 | +-------------------------------------+-------------------------------------+ | Slightly Modified Code | 5.6 | +-------------------------------------+-------------------------------------+ | Reused Verbatim | 0.9 | +-------------------------------------+-------------------------------------+ REUSING SOFTWARE IN IBM _______________________ --------------- (1) This level of reuse exceeds all other percentages in this report. Reuse Consumers 5 BOEBLINGEN SOFTWARE SYSTEMS Boeblingen Software Systems develops the following IBM products: o VSE/ESA operating system and VSE Program Products, o System Management Products - HCD (Hardware Configuration Definition) for MVS and VM, - RMF (Resource Monitoring Facility) for MVS, o ScreenView. o The Parts Center (e.g., BBLX, C++, GUI_Master); Boeblingen Software Systems develops most products in PL/X or Assembler, although they note more projects starting to use OO techniques (e.g., CASE/390, C++). Boeblingen tracks reuse by quality level of the reused part and only when the part crosses from one product to another. Figure 1 and Figure 2 show the amount of code in the Boeblingen reuse library and the per- centages of reused code shipped in Boeblingen products Ý3¨. Figure 1. Reusable components available to Boeblingen developers. Figure 2. Unmodified reused code in products shipped by Boeblingen. ENDICOTT Endicott develops the IBM VM mainframe operating system and several related products including Pass Through Virtual Machine (PVM). The collection of reusable parts created in the EPL continues to grow steadily, thereby con- tributing to increased reuse levels between products. Table 3 on page 7 and Table 4 on page 7 show the Endicott inventory of reusable software and reuse results for the VM/ESA R2 and PVM 2.1 products. These results total 16.675 kloc RSI and $936k in Reuse Cost Avoidance Ý3¨. 6 +---------------------------------------------------------------------------+ | Table 3. EPL-created Reusable Components as of 12/92 | +---------------------------------------------+--------------+--------------+ | PRODUCT/NON-PRODUCT | # OF PARTS | LOC | +---------------------------------------------+--------------+--------------+ | Product | 6 | 800 | +---------------------------------------------+--------------+--------------+ | Product | 14 | 45K | +---------------------------------------------+--------------+--------------+ | Product | 29 | 5K | +---------------------------------------------+--------------+--------------+ | PRODUCT SUM | 49 | 51K | +---------------------------------------------+--------------+--------------+ | Non-Product | 4 | 3.5K | +---------------------------------------------+--------------+--------------+ | Non-Product | 42 | 3.2K | +---------------------------------------------+--------------+--------------+ | Non-Product | 3 | 960 | +---------------------------------------------+--------------+--------------+ | NON-PRODUCT SUM | 49 | 8K | +---------------------------------------------+--------------+--------------+ +---------------------------------------------------------------------------+ | Table 4. EPL Reuse by Product Release (Certified) | +--------+---------+--------+---------+---------+--------+---------+--------+ | PRODUCT| DEPT. | CSI | RSI | SIRBO | REUSE | RCA | RVA | | | | | | | % | | | +--------+---------+--------+---------+---------+--------+---------+--------+ | ESA 2 | S.J. | 12k | 7500 | 0 | 60 | | | +--------+---------+--------+---------+---------+--------+---------+--------+ | ESA 2 | G82 | 20k | 1750 | 0 | 8 | | | +--------+---------+--------+---------+---------+--------+---------+--------+ | ESA 2 | G18 | 20k | 250 | 150 | 1.23 | | | +--------+---------+--------+---------+---------+--------+---------+--------+ | ESA 2 | G75 | 20k | 475 | 0 | 2.32 | | | +--------+---------+--------+---------+---------+--------+---------+--------+ | ESA 2 | Other | 710k | 0 | 0 | 0 | | | +--------+---------+--------+---------+---------+--------+---------+--------+ | TOTALS | (+SJ) | 782K | 9975 | 150 | 1.3 | $379K | 1.01 | +--------+---------+--------+---------+---------+--------+---------+--------+ | TOTALS | (-SJ) | 769K | 2200 | 150 | .29 | $84K | 1.0 | +--------+---------+--------+---------+---------+--------+---------+--------+ | PVM | | 76K | 4.5K | 0 | 5.6 | $477K | 1.06 | +--------+---------+--------+---------+---------+--------+---------+--------+ | NOTE: EPL CSI Estimates based on March actuals | +---------------------------------------------------------------------------+ Reuse Consumers 7 HURSLEY (CICS) Hursley uses the PL/X version of the Boeblingen building blocks in the Cus- tomer Information Control System (CICS) for Extended System Architecture (ESA) V4R1. Three main line items employ BB/LX thereby reusing the following amounts of BB/LX: Directory Manager (6 kloc), Security Manager (7 kloc), and Afinity Utility (6.5 kloc). Using the IBM simplified Reuse Business Case calculator shown in Figure 3 on page 8 below, this equates to reuse rate of 20% and a total return of $2.74m Ý22¨. +---------------------------------------------------------------------------+ | +---------------------------------------------------------+ | | | | | | | SSI/CSI . . . . . . . . . . . . . 78.00 KLOC | | | | * Reuse Percent . . . . . . . . . . 20.00 % | | | | RSI . . . . . . . . . . . . . . . 19.50 KLOC | | | | Percent SSI/CSI written for reuse 6.41 % | | | | KLOC of SSI/CSI written for reuse 5.00 KLOC | | | | Additional development cost (ADC) $500.00 K | | | | SIRBO . . . . . . . . . . . . . . 0.00 KLOC | | | | * Reuse Value Added (RVA) . . . . . 1.25 | | | | Development cost avoidance (DCA). $3120.00 K | | | | Service cost avoidance (SCA). . . $126.75 K | | | | * Reuse Cost Avoidance (RCA). . . . $3246.75 K | | | | | | | | (Savings for other projects) | | | | Development cost avoidance (ODCA) $0.00 K | | | | Service cost avoidance (OSCA) . . $0.00 K | | | | * Cost avoided by others (ORCA) . . $0.00 K | | | | | | | | Total RCA (RCA + ORCA). . . . . . $3246.75 K | | | | -> ROI (RCA+ORCA-ADC). . . . . . . . $2746.75 K | | | | | | | +---------------------------------------------------------+ | +---------------------------------------------------------------------------+ Figure 3. Hursley Reuse- CICS/ESA V4R1. HURSLEY (CUTTY SARK) Hursley uses the PL/X version of the Boeblingen building blocks in the Cutty Sark V1R1 product for CICS/ESA. Two line items employ BB/LX: Enquire Ser- vices (6 kloc) and Storage Services (6 kloc). Using the IBM simplified Reuse Business Case calculator shown in Figure 4 on page 9, this equates to reuse rate of 15.81% and a total return of $1.9m Ý22¨. 8 +---------------------------------------------------------------------------+ | +---------------------------------------------------------+ | | | | | | | SSI/CSI . . . . . . . . . . . . . 63.90 KLOC | | | | * Reuse Percent . . . . . . . . . . 15.81 % | | | | RSI . . . . . . . . . . . . . . . 12.00 KLOC | | | | Percent SSI/CSI written for reuse 0.00 % | | | | KLOC of SSI/CSI written for reuse 0.00 KLOC | | | | Additional development cost (ADC) $0.00 K | | | | SIRBO . . . . . . . . . . . . . . 0.00 KLOC | | | | * Reuse Value Added (RVA) . . . . . 1.19 | | | | Development cost avoidance (DCA). $1920.00 K | | | | Service cost avoidance (SCA). . . $60.00 K | | | | * Reuse Cost Avoidance (RCA). . . . $1980.00 K | | | | | | | | (Savings for other projects) | | | | Development cost avoidance (ODCA) $0.00 K | | | | Service cost avoidance (OSCA) . . $0.00 K | | | | * Cost avoided by others (ORCA) . . $0.00 K | | | | | | | | Total RCA (RCA + ORCA). . . . . . $1980.00 K | | | | -> ROI (RCA+ORCA-ADC). . . . . . . . $1980.00 K | | | | | | | +---------------------------------------------------------+ | +---------------------------------------------------------------------------+ Figure 4. Hursley Reuse- Cutty Sark V1R1. LA GAUDE NETWORKING LAB The La Gaude, France networking laboratory develops networking software for many IBM applications. Experiences on various products resulted in the portions of reuse shown in Table 5 on page 10; product reuse percentages result from parts coming from other products. La Gaude reports a relative cost of reuse (the cost of finding, understanding, and integrating reusable code) of .4 Ý14¨. Reuse Consumers 9 +---------------------------------------------------------------------------+ | Table 5. La Gaude Reuse Results by Product | +------------------------+-------------------------+------------------------+ | PRODUCT | KLOC | REUSE% | +------------------------+-------------------------+------------------------+ | 3746-900 | 757 | 14 | +------------------------+-------------------------+------------------------+ | Clipper 500 | 507.7 | 48 | +------------------------+-------------------------+------------------------+ | Wireless LAN | 110 | 41 | +------------------------+-------------------------+------------------------+ | NPSI | 248 | 12 | +------------------------+-------------------------+------------------------+ | XI | 251 | 23 | +------------------------+-------------------------+------------------------+ | X.21 | 20 | 19 | +------------------------+-------------------------+------------------------+ | CSFI | 10 | 45 | +------------------------+-------------------------+------------------------+ | X.25Net | 110 | 38 | +------------------------+-------------------------+------------------------+ | ISDN 7820 | 218 | 46 | +------------------------+-------------------------+------------------------+ | ISDN 7830 | 145 | 43 | +------------------------+-------------------------+------------------------+ | ISDN Tinee | 86 | 24 | +------------------------+-------------------------+------------------------+ | ACD 7822 | 22.2 | 35 | +------------------------+-------------------------+------------------------+ | 6629 | 8.2 | 55 | +------------------------+-------------------------+------------------------+ | ISDN Roya | 81 | 73 | +------------------------+-------------------------+------------------------+ MYERS CORNERS LAB (MVS) Myers Corners Laboratory, part of the Mid-Hudson Valley Programming Lab (MHVPL), develops several products related to the IBM mainframe operating system MVS. Of these, MCL develops the Base Control Program (BCP) and Time Sharing Option (TSO). Table 6 on page 11 and Table 7 on page 11 show experi- ences with these two products. MCL considers only high-quality parts from the site reuse library in these reuse results. Using the IBM return on investment model, the 38% reuse level in the BCP Rel 4.3.0 equates to a cost avoidance of $13 Million; the 30% reuse in TSO Rel 2.4.0 equates to a cost avoidance of $524K Ý3¨, Ý9¨. 10 +---------------------------------------------------------------------------+ | Table 6. MVS BCP results by release | +-------------------------------------+-------------------------------------+ | RELEASE | REUSE % | +-------------------------------------+-------------------------------------+ | BCP 3.13 | 2.6% | +-------------------------------------+-------------------------------------+ | BCP 4.10 | 7.8% | +-------------------------------------+-------------------------------------+ | BCP 4.20 | 19.60% | +-------------------------------------+-------------------------------------+ | BCP 4.22 | 37.40% | +-------------------------------------+-------------------------------------+ | BCP 4.30 | 41.90% | +-------------------------------------+-------------------------------------+ +---------------------------------------------------------------------------+ | Table 7. MVS TSO results by release | +-------------------------------------+-------------------------------------+ | RELEASE | REUSE % | +-------------------------------------+-------------------------------------+ | TSO 2.11 | 0.8% | +-------------------------------------+-------------------------------------+ | TSO 2.20 | 15.10% | +-------------------------------------+-------------------------------------+ | TSO 2.30 | 7.10% | +-------------------------------------+-------------------------------------+ | TSO 2.31 | 32.30% | +-------------------------------------+-------------------------------------+ | TSO 2.40 | 38.40% | +-------------------------------------+-------------------------------------+ MYERS CORNERS LAB (CASE/390) Integrating object technology into a large legacy system increased both pro- ductivity and quality in the development of releases SP4.3 and SP4.4 of MVS. Table 8 on page 12 displays the results from creating a library of reusable objects for MVS development. CASE/390 objects contribute to the APPC, SRM, Master Scheduler, Workload Manager, and JES components of the operating system. The CASE/390 library contains 205 classes representing 505 oper- ations. Results show a 2.9 times productivity increase and a 40% decrease in error density due to CASE/390 reusable code Ý9¨. Reuse Consumers 11 +---------------------------------------------------------------------------+ | Table 8. CASE/390 results by MVS Release | +------------------------+-------------------------+------------------------+ | | SP 4.3 | SP 4.4 | +------------------------+-------------------------+------------------------+ | CASE/390 Code | 20+ kloc | 50+ kloc | +------------------------+-------------------------+------------------------+ | Productivity | 196 loc/pm | 570 loc/pm | +------------------------+-------------------------+------------------------+ | Error Density | 3.0/kloc | 1.8/kloc | +------------------------+-------------------------+------------------------+ ROCKVILLE Rockville develops the Advanced Automation System (AAS) for the United States federal government. AAS will replace the air traffic control system now used in the U.S.; it consists of the Initial Sector Suite System (ISSS), the Ter- minal Advanced Automation System (TAAS), the Area Control Computer Complex (ACCC), and the Tower Control Computer Complex (TCCC). Rockville develops this highly distributed, fault tolerant system in Ada, achieving exceptional reuse rates of up to 70%. Rockville counts reuse in accordance with Ý15¨, counting reusable parts when they pass from between functional groups or operational units of programmers (usually from 10-20 people). Rockville achieved these levels of reuse by performing an analysis of the avionics domain prior to development, identifying the common system services (input/output, communications, queueing, timing, debugging, etc.), assigning groups to develop and maintain the common system software, then mandating that all groups use the software. Table 9 shows the reuse results for ISSS and TAAS; assuming a default value of $100 to develop a line of code, this translates into a reuse cost avoidance of $55.15m for TAAS and $78.32m for ISSS Ý12¨. +---------------------------------------------------------------------------+ | Table 9. Rockville reuse on AAS as of 21 August 1992. | +--------------+--------------+---------------+--------------+--------------+ | SEGMENT | SSI | CSI | RSI | REUSE% | +--------------+--------------+---------------+--------------+--------------+ | ISSS | 866.5k | 0 | 979k | 53% | +--------------+--------------+---------------+--------------+--------------+ | TAAS | 0 | 292.2k | 689.4k | 70% | +--------------+--------------+---------------+--------------+--------------+ SYDNEY The DB2 Performance Monitor development team of the Australian Programming Centre used reusable code to help improve the performance of the mainframe database product DB2. The batch component of DB2 processes a large volume of data and must run efficiently. Specifically, response depends on the mainte- nance of records in virtual storage. Boeblingen Building Block Language Extensions (BB/LX) provided the required function in reusable PL/AS code. The DB2 team developed a prototype by 12 replacing the existing code, an indexed sequential linked list, with a BB/LX dictionary. Greatly improved performance of 10-20% and up to almost 50% resulted. Use of BB/LX required only about two person weeks, including time spent learning how to use the Building Blocks, and achieved an estimated savings of 2 kloc Ý3¨. WARWICK Warwick developed a Host Application System (AS) Screen Interface Manager to provide a system that reduces both the size and complexity of mainframe pro- ducts. The screen manager removes duplicated and complex screen handling code. This resulted in program size reductions of around 20% and corre- sponding decreases in program complexity Ý3¨. Reuse Consumers 13 REUSE PRODUCERS _______________ The following sections provide experiences in writing software for reuse. Since reusable software must have higher levels of quality and documentation, more resources must go into this effort. We call the additional work required to develop reusable software the Relative Cost of Writing for Reuse __________________________________ (RCWR). WRITING FOR REUSE IN INDUSTRY _____________________________ COMPUTER SCIENCES CORPORATION The Computer Sciences Corporation (CSC) reports experiences writing for reuse on the Federal Aviation Administration's Advanced Automation System (AAS). CSC works on AAS along with the prime contractor, IBM. Using cost per loc as a measure of effort, CSC reports that creating reusable software costs twice that of creating non-reusable software. The RCWR = 2 results from various development overhead such as additional reviews, gener- alization, testing, and maintenance. Table 10 contains an analysis of the CSC software development lifecycle by phase and percent additional work required in each phase. +---------------------------------------------------------------------------+ | Table 10. Computer Sciences Corporation - RCWR | +---------------------------------------------+--------------+--------------+ | PHASE OF DEVELOPMENT CYCLE | PERCENT OF | ADDITIONAL | | | TOTAL CYCLE | EFFORT | +---------------------------------------------+--------------+--------------+ | High level design | 13% | 10-15% | +---------------------------------------------+--------------+--------------+ | Low level design | 37% | 60% | +---------------------------------------------+--------------+--------------+ | Code | 20% | 12.5% | +---------------------------------------------+--------------+--------------+ | Test | 30% | 12.5% | +---------------------------------------------+--------------+--------------+ | Totals | 100% | 100% | +---------------------------------------------+--------------+--------------+ | NOTE: | | (1) Additional design effort depends on code complexity. | | (2) 25% additional effort split between Code and Unit Test. | | (3) RCWR = 2. | +---------------------------------------------------------------------------+ 14 EUROPEAN CONSULTANTS NETWORK The European Consultants Network implemented a set of Ada tools for dialogue management for a popular workstation platform. They developed two specific dialogue subsystems; one for menu definition and the other for forms (mask) management. To study the cost of developing reusable components they classi- fied the reusable components into groups based on their complexity (see the experience report in the Reuse Consumers section). As with the Relative Cost _______________ of Reuse (RCR), they found the Relative Cost of Writing for Reuse (RCWR) dependent on the complexity of the software produced. Table 11 on page 15 provides a summary of the results; very simple components require no extra effort whereas very complex components require 2.2 times more effort Ý8¨. +---------------------------------------------------------------------------+ | Table 11. European Consultants Network- RCWR | +--------------------------------------------------------+------------------+ | TYPE OF SOFTWARE | RCWR | +--------------------------------------------------------+------------------+ | Monolithic | 1.0 | +--------------------------------------------------------+------------------+ | Polylithic | 1.2 | +--------------------------------------------------------+------------------+ | Graph | 1.6 | +--------------------------------------------------------+------------------+ | Menu | 1.9 | +--------------------------------------------------------+------------------+ | Mask | 2.2 | +--------------------------------------------------------+------------------+ WRITING FOR REUSE IN IBM ________________________ BOEBLINGEN PARTS CENTER The developers of the BB/LX Building Blocks have extensive experience designing, developing, testing, and supporting reusable software. The Boeblingen Parts Center reports that the ratio of effort to develop reusable versus non-reusable software (RCWR) may vary from 1.25 to 2.00. They report that developing an reusable library architecture with good documentation may average a RCWR of 1.5 assuming an equivalent library not developed for reuse also require some documentation. Boeblingen reports the additional effort required for sample programs (design, code, and test) may range up to 30% of implementation effort. The standard development cycle becomes 35% design, 25% code, and 40% testing to certify higher quality levels Ý6¨.(2) --------------- (2) Depending on implementation language. Reuse Producers 15 ROME PARTS CENTER In 1992 the IBM Rome Networking Lab established a group to produce libraries of reusable software for OS/2 applications. The Rome development group reports developing these "Z" libraries requires 40% extra effort. However, the complete cost also includes development of sample code and demonstration programs. Standard development in Rome requires 25 units of effort for design, 45 units for code, and 30 units for test. Using 100 units for the cost of an equivalent piece of non-reusable code, Rome reports writing reus- able software (the RCWR) requires 2.8 times the effort of normal development Ý4¨: +---------------------------------------------------------------------------+ | Table 12. Rome- "Z" library RCWR | +--------------+--------------+---------------+-----------------------------+ | ACTIVITY | LIBRARY | DOCUMENTATION | SAMPLE PROGRAM | +--------------+--------------+---------------+-----------------------------+ | Design | 30 | | 30 (1) | +--------------+--------------+---------------+-----------------------------+ | Code | 50 | 65 | 60 (2) | +--------------+--------------+---------------+-----------------------------+ | Test | 35 | | 10 (3) | +--------------+--------------+---------------+-----------------------------+ | SUB-TOTALS | 115 | 65 | 100 | +--------------+--------------+---------------+-----------------------------+ | NOTE: | | (1) Total effort = 115 + 65 + 100 = 280 | | (2) Sample code only. | | (3) CASE tools generate code. | | (4) Only need to test "glue" code. | +---------------------------------------------------------------------------+ The Rome "Z" family of parts continues to grow. Table 13 on page 17 shows the "Z" library statistics as of February 1993 Ý5¨. 16 +---------------------------------------------------------------------------+ | Table 13. Rome- "Z" library statistics | +------------------------------------------------------------+--------------+ | Number of libraries | 11 | +------------------------------------------------------------+--------------+ | Total amount of code for libraries | 11 kloc | +------------------------------------------------------------+--------------+ | Total amount of code for sample programs | 11 kloc | +------------------------------------------------------------+--------------+ | Total amount of document pages for User's Guide and Refer- | 511 pgs | | ence Manual | | +------------------------------------------------------------+--------------+ | Total sample code generated by KASE (1) | 57% | +------------------------------------------------------------+--------------+ | Average amount of code for a single library | 994 loc | +------------------------------------------------------------+--------------+ | Average amount of code for a sample program | 969 loc | +------------------------------------------------------------+--------------+ | Average productivity for a complete package (including | 1564 loc/PM | | test cases, sample programs, etc.) | | +------------------------------------------------------------+--------------+ | Average cost for a single line of code | $23 | +------------------------------------------------------------+--------------+ | Total number of internal (Rome) licences (2) | 15 | +------------------------------------------------------------+--------------+ | Total number of external (non-Rome) licences (2) | 22 | +------------------------------------------------------------+--------------+ | NOTE: | | (1) KASE stands for Knowledge Assisted Software Engineering (tm) by | | Caseworks Inc. | | (2) Data after only 2 months. | +---------------------------------------------------------------------------+ Reuse Producers 17 FUTURE WORK ___________ Later versions of this document will include additional results as data becomes available. Please send documented results and source of the informa- tion directly to the author. The author will provide this document to anyone searching for reuse experience reports. 18 CONCLUSION __________ Many examples of successful reuse exist. However, the reader must ensure when examining the experiences of others to include in the analysis either: o the context surrounding the results, or, o skepticism of the results in the absence of contextual information. Until industry adopts a uniform method of calculating reuse and its corre- sponding economic benefits, the reader should not compare the data from these (or any) experience reports. We accept that reuse has value in productivity, quality, and cost savings. This paper demonstrates that numerous organiza- tions quantitatively report their experiences with reuse, although without the full context of their experience we may only ascribe a qualitative value to the numbers. Conclusion 19 CITED REFERENCES ________________ Ý1¨ Bourland, D. David and Paul Dennithorne Johnston, ed., To Be or Not: An ________________ E-Prime Anthology, International Society for General Semantics, San _______________________________________________________________ Francisco, CA, 1991. Ý2¨ Carfagno, Joseph, A., "A Common Software Platform for Realizing Inte- grated BELLCORE Software Systems," Proceedings of IEEE ICC, 1991, pp. ________________________ 1510-1514. Ý3¨ IBM Corporation, "Corporate Programming Reuse Newsletter Issue 92-02," Reuse Technology Support Center, December 1992. ________________________________ Ý4¨ De Judicibus, Dario, Private correspondence, 15 October 1992. _______________________ Ý5¨ De Judicibus, Dario, General Information Manual - Z-family Standards - _________________________________________________ Level 3.00, RNSL-DZFM-06. ___________ Ý6¨ Drescher, Peter, Private correspondence, 27 October 1992. _______________________ Ý7¨ Conte, P., "Recycling Your Software," Computer Language, Vol. 5, No. 6, __________________ p. 43, June 1988. Ý8¨ Favaro, John, "What price reusability? A case study," Ada Letters, Vol. ____________ 11, No. 3, Spring 1991, pp. 115-24. Ý9¨ IBM Corporation, Internal Report, October 1992. ________________ Ý10¨ Isoda, Sadahiro, "An Experience of Software Reuse Activities," Pro- ____ ceedings of the Fifteenth Annual International Computer Software and ____________________________________________________________________ Applications Conference, pp. 8-9. ________________________ Ý11¨ Isoda, Sadahiro, "Experience Report on Software Reuse Project: Its Structure, Activities, and Statistical Results," Proceedings of the __________________ International Conference on Software Engineering, Melbourne, Australia, _________________________________________________ 11-15 May 1992, pp. 320-326. Ý12¨ Liu, Ted, "AAS Software Reuse," Corporate Reuse Council Presentation, _____________________________________ October 1992. Ý13¨ Margano, Johan, and Thomas E. Rhoads, "Software Reuse Economics: Cost Benefit Analysis on a Large Scale Ada Project," Proceedings of the __________________ International Conference on Software Engineering, 11-15 May 1992, _________________________________________________ Melbourne, Australia, 1992, pp.338-348. Ý14¨ Pignal, Pierre, Private correspondence, 4 December 1992. _______________________ Ý15¨ Poulin, Jeffrey S. and W.E. Hayes, "IBM Reuse Methodology: Measurement Standards," IBM Corporation Document Number Z325-0682, 2 October 1992. __________________________________________ 20 Ý16¨ Poulin, Jeffrey S. "Measuring Reuse," Proceedings of the 5th Interna- _______________________________ tional Workshop on Software Reuse, Palo Alto, California, 26-29 October __________________________________ 1992. Ý17¨ Poulin, Jeffrey S. and Joseph M. Caruso, "A Reuse Measurement and Return on Investment Model," Proceedings of the Second International Workshop ________________________________________________ on Software Reusability, Lucca, Italy, 24-26 March 1993, pp. 152-166. ________________________ Ý18¨ Poulin, Jeffrey S., "Issues in the Development and Application of Reuse Metrics in a Corporate Environment," Fifth International Conference on _________________________________ Software Engineering and Knowledge Engineering, 16-18 June 1993. _______________________________________________ Ý19¨ Poulin, Jeffrey S., "Rationale and Criteria for the IBM Reuse Metrics," IBM Technical Report TR 00.3726, 15 April 1993. ________________________________ Ý20¨ Prieto-Diaz, Ruben, "Implementing Faceted Classification for Software Reuse," Communications of the ACM,, Vol. 34, No. 5, May 1991, pp. 88-97. ___________________________ Ý21¨ Rombach, H. Dieter, "Design Measurement: Some Lessons Learned," IEEE ____ Software, March 1990, pp.17-25. _________ Ý22¨ Sultana, Sam, "Hursley Software Reuse," Corporate Reuse Council Presen- _______________________________ tation, October 1992. _______ Ý23¨ Thomas, W.M., A. Delis, and V.R. Basili, "An evaluation of Ada source code reuse," Proceedings of 11th Ada Europe International Conference, ________________________________________________________ Zandvoort, Netherlands, 1-5 June 1992, pp. 80-91. Cited References 21 BIOGRAPHY _________ JEFFREY S. POULIN joined IBM's Reuse Technology Support Center, Poughkeepsie, New York, in 1991 as an advisory programmer. His primary responsibilities include developing and applying corporate standards for reusable component classification, certification, and measurements. Dr. Poulin has worked in the area of software reuse since 1985 and helped lead the development and acceptance of the IBM software reuse metrics. He participates in the IBM Corporate Reuse Council, the Association for Computing Machinery, and Vice- Chairs the Mid-Hudson Valley Chapter of the IEEE Computer Society. A Hertz Foundation Fellow, Dr. Poulin earned his Bachelors degree at the United States Military Academy at West Point, New York, and his Masters and Ph.D. degrees at Rensselaer Polytechnic Institute in Troy, New York. 22