home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr6 / proceedings / ascii / poulin2.ascii < prev    next >
Text File  |  1993-10-19  |  13KB  |  335 lines

  1.  
  2.  
  3.  
  4.  
  5.              A  Method  for  Assessing  Cross-Lifecycle  Reuse
  6.  
  7.  
  8.  
  9.                                              Jeffrey S. Poulin
  10.  
  11.  
  12.  
  13.                                   IBM Federal Systems Company
  14.  
  15.                                     MD 0220, Owego, NY 13827
  16.  
  17.                                            Tel:  (607) 751-6899
  18.  
  19.                                    Email:  poulinj@vnet.ibm.com
  20.  
  21.                                           Fax: (607) 751-2800
  22.  
  23.  
  24.  
  25.                                                   Abstract
  26.  
  27.  
  28.     Most current reuse measurement models focus on quantifying the level of software, e.g., code,
  29. reused on a given project [1 ], [2 ], [3 ]. One reason for the focus on code reuse metrics lies in the
  30. relative ease of quantifying the amount of code in a given product.  A second, perhaps more
  31. critical, reason lies in the difficulty of completely understanding the issues behind reusein other
  32. phases of the lifecycle, such as design [4], information [5 ], and test cases.  This position paper
  33. describes a method to quantify the total amount of cross-lifecycle reuse on a project. However,
  34. until we have practical and reliable methods of understanding and quantifyingthe issues in each
  35. phase of software development, we will depend on our currentco de reusemo dels toreflect the
  36. overall level of reuse in our systems.
  37.  
  38.  
  39. Keywords: Reuse Metrics, Measuring Reuse, Cross-lifecycle metrics.
  40.  
  41.  
  42. Workshop Goals:  Learn and exchange information on current reuse issues,  methods,  and
  43. metrics.
  44.  
  45.  
  46. Working Groups: Design guidelines for reuse, Useful and collectible metrics, Reuse and formal
  47. methods.
  48.  
  49.  
  50.  
  51.                                                   Poulin- 1
  52.  
  53.  
  54. 1      Background
  55.  
  56.  
  57.  
  58. As a member of IBM's Reuse Technology Support Center, the author helped lead the development
  59. and acceptance of the IBM software reuse metrics. He has conducted research into software mea-
  60. surement techniques and implemented a program measurement tool for the workstation platform.
  61. A common aspect of this measurement work has remained the need to implement metrics that the
  62. software development managercan easily acquire,  understand,  and use with the confidence that
  63. the values upon which he makes his business decisions accurately reflect the state of his product.
  64.  
  65.  
  66.  
  67. 2      Position
  68.  
  69.  
  70.  
  71. To fully determine the complete value of reuse, we must develop a method of measuring reuse in the
  72. total software development lifecycle. (The emphasis on development means to exclude maintenance
  73. activities.) The other phases of the lifecycle may include the reuse of requirements specifications,
  74. designs,  user  documentation,  and  other  products  related  to  the  project.  Since  code  really  only
  75. contributes about 20 percent of the effort to software development [6 ], it seems misleading to claim
  76. a total level of reuse on a product based solely on the amount of reused source instructions.
  77.  
  78.  
  79. However, we do not currently have a means to determine the total reuse on a product based on
  80. reuse in each of the lifecycle stages. We know that where code reuse takes place, reuse of designs,
  81. test cases, and documentation has probably also taken place.  This "inclusion effect" [7] of reusing
  82. subsequent lifecycle products motivates us to reuse early in the lifecycle so as to generate the most
  83. value out of our reused parts. Because of this effect, Itake the position (in the form of a hypothesis)
  84. that until we develop a comprehensive system of measuring and combining reuse in each phase of
  85. the software development lifecycle:
  86.  
  87.  
  88.  
  89.                          HO: total cross-lifecycle reuse ss level of code reuse
  90.  
  91.  
  92.  
  93. Observations show Reuse Percent (Reuse%) [8 ] as the most widely used and reported reuse metric.
  94. Reuse% has an advantage in that managers can easily gather data for, calculate, and understand
  95. the  metric.  This  position  paper  assumes  a  systematic  method  of  determining  what  to  count  (a
  96. reuse definition) [9] and does not attempt to address the financial aspects of cross-lifecycle reuse.
  97. Instead, it proposes to use (code) Reuse% as an overall indicator of the level of reuse on a product.
  98. The premise of this position extends the observation in [10] that despite their shortcomings, LOC
  99. not only serve as a good indicator of overall productivity inco de but also provide a good secondary
  100. indicator of work done in other phases.
  101.  
  102.  
  103.  
  104. 2.1     Proposed method to quantify total lifecycle reuse
  105.  
  106.  
  107.  
  108. While we use the code Reuse% as an overall product indicator,we can work towards realizing the
  109. following model of Product Reuse%. First , we require a means to measure reuse in each individual
  110. stage of the lifecycle.  A straightforward approach to measure reuse in each phase would extend
  111. the approach currently used to measure reuse of code. First, determine the unit of granularity or
  112. workproduct unit of interest at each stage. Second, base the Reuse% for each stage on the portion
  113. of units reused in that stage. We might use the following units for each stage:
  114.  
  115.  
  116.  
  117.                                                          Poulin- 2
  118.  
  119.  
  120.     fflCode- Lines of code, Function Points
  121.  
  122.  
  123.     fflDesign- Module design sheet, Component specification
  124.  
  125.  
  126.     fflTest- Test cases, test scripts
  127.  
  128.  
  129.     fflInformation Development- Words, tokens, paragraphs
  130.  
  131.  
  132.  
  133. Observe that once we define the units to use at each phase and we put a process (and required tools)
  134. in place to track these units, we can determine the reuse percent for each phase.  This may prove
  135. useful as an in-process measurement to indicate how well a product tracks towards a reusetarget
  136. or goal. Also observe that this approach assumes each lifecycle phase has well-defined boundaries
  137. (e.g., we can calculate a Reuse% foreach phase) and that the software development process remains
  138. relatively stable (e.g., that we canmo del thetotal lifecycle as the sum of the activity in each of the
  139. individual phases). Although these assumptions may not hold for any given project, they allow us
  140. to develop a general equation for Product Reuse%.
  141.  
  142.  
  143. To achieve an overall Product Reuse%, we determine the portion of total product effort expended
  144. in each phase of the lifecycle. For post-mortem statistics, actual values willyield the best results,
  145. but  for  a  general  model  we  can  use  historical  averages  obtained  from  the  organization  product
  146. development office. For example, we might use the following lifecycle effort profile inour general
  147. model [6 ]:
  148.  
  149.  
  150.  
  151.     fflRequirements Definition- takes 15 percent of the lifecycle
  152.  
  153.  
  154.     fflDesign- takes 15 percent of the lifecycle
  155.  
  156.  
  157.     fflCode- takes 20 percent of the lifecycle
  158.  
  159.  
  160.     fflTest- takes 30 percent of the lifecycle
  161.  
  162.  
  163.     fflInformation Development/admin- takes 20 percent of the lifecyle
  164.  
  165.  
  166.  
  167. Knowing the Reuse% in each phase and the relative effort expended in each phase, we can calculate
  168. the overall Product Reuse% as follows:
  169.  
  170.  
  171.                                     Xn
  172.       Product Reuse%              =           (Relative lifecycle effort in Phasei)                   (Reuse% in Phasei)
  173.                                     i=1
  174.  
  175.  
  176.  
  177. where n=number of phases in lifecycle.
  178.  
  179.  
  180.  
  181. 2.2     Example total lifecycle reuse calculation
  182.  
  183.  
  184.  
  185. Let the entire software development cycle for an organization consist of the five phases above, in
  186. the proportions given. Let the following situations determine the amount reuse in each phase:
  187.  
  188.  
  189.  
  190.     fflRequirements Definition- 25 percent of requirements for the current system came from a
  191.        similar system done last year for another customer
  192.  
  193.  
  194.  
  195.                                                          Poulin- 3
  196.  
  197.  
  198.     fflDesign- 55 percent of the designs, mostly coming from the requirements reused in the pre-
  199.        vious phase, came straight out of the graphical CASE tool library used by the design depart-
  200.        ment,
  201.  
  202.  
  203.     fflCode- 35 percent of the code came unmodified from the organization's reuse subdirectory
  204.        on AFS,
  205.  
  206.  
  207.     fflTest- 25 percent of the test cases and drivers from other projects worked just fine without
  208.        change, and,
  209.  
  210.  
  211.     fflInformation Development/admin- 65 percent of the documentation, mostly from hyper-
  212.        text links to help files and user instructions, came from the Information Development (ID)
  213.        database.
  214.  
  215.  
  216.  
  217. The Product Reuse% would equal:
  218.  
  219.  
  220.  
  221.     fflReuse%:  Requirements Definition- :15  :25 = :038
  222.  
  223.  
  224.     fflReuse%:  Design- :15  :55 = :083
  225.  
  226.  
  227.     fflReuse%:  Code- :20  :35 = :07
  228.  
  229.  
  230.     fflReuse%:  Test-:30  :25 = :075
  231.  
  232.  
  233.     fflReuse%:  Information Development/admin- :20 :65 = :13
  234.  
  235.  
  236.  
  237. For a total Product Reuse% of 39.6 percent.
  238.  
  239.  
  240.  
  241. 3      Comparison
  242.  
  243.  
  244.  
  245. The detailed version of the COnstructive COst Model (COCOMO)software cost-estimation model
  246. uses phase-dependent Effort Multipliers to reflect the effect of the cost drivers on the phase dis-
  247. tribution of effort [11 ]. The COCOMO model premises all calculations on cost drivers and Effort
  248. Multipliers that reflect the relative difficulty or complexity at each lifecycle phase. COCOMO de-
  249. fines the following six lifecycle phases: Requirements, Product Design, Detailed Design, Code and
  250. Unit Test, Integrate and Test, and Maintenance.
  251.  
  252.  
  253. The  model  proposed  by  Gaffney  and  Durek  [1]  also  addresses  reuse  at  each  lifecycle  stage  and
  254. uses effort multipliers similar to COCOMO. These models contrast with the model presented here,
  255. which does not consider the value or complexity of each task because this model does not seek to
  256. estimate costs or ROI. Werethe mo del to address total lifecycle costs or costs avoided, it would
  257. extend the model presented in [2] by including a cost factor related to the value of the units we
  258. choose to measure at each phase.
  259.  
  260.  
  261.  
  262. References
  263.  
  264.  
  265.  
  266.   [1] J. G. Jr. and T. Durek, "Software Reuse- Key to Enhanced Pro ductivity:  Some Quantitative
  267.       Models," Information and Software Technology, vol. 31, no. 5, June 1989.
  268.  
  269.  
  270.  
  271.                                                          Poulin- 4
  272.  
  273.  
  274.   [2] J. Poulin and J. Caruso, "A Reuse Measurement and Return on Investment Model," in Pro-
  275.       ceedings of the Second International Workshop on Software Reusability, (Lucca, Italy), 24-26
  276.       March 1993.
  277.  
  278.  
  279.   [3] B.  Barnes  and  T.  Bollinger,  "Making  Reuse  Cost  Effective,"  IEEE  Software,  vol.  8,  no.  1,
  280.       pp. 13-24, January 1991.
  281.  
  282.  
  283.   [4] G.  Boetticher,  K.  Srinivas,  and  D.  Eichmann,  "A  Neural  Net-based  Approach  to  Software
  284.       Metrics,"  in Proceedings  of  the  5th  International  Conference  on  Software  Engineering  and
  285.       Knowledge Engineering, (San Francisco, CA), pp. 271-4, 14-18 June 1993.
  286.  
  287.  
  288.   [5] K. Yglesias, "Limitations of Certification Standards in Achieving Successful Parts Retrieval,"
  289.       in Proceedings of the 5th International Workshop on Software Reuse, (Palo Alto, California),
  290.       26-29 October 1992.
  291.  
  292.  
  293.   [6] G. G. Inc., "Software Engineering Strategies StrategicAnalysis Report," tech. rep., April 30,
  294.       1991.
  295.  
  296.  
  297.   [7] T. Bollinger and S. Pfleeger, "Economics of reuse: issues and alternatives," Information and
  298.       Software Technology, vol. 32, no. 10, pp. 643-52, December 1990.
  299.  
  300.  
  301.   [8] J. Poulin and J. Caruso, "Determining the Value of a Corporate Reuse Program," in Proceed-
  302.       ings  of  the  IEEE Computer  Society  International  Software  Metrics Symposium,  (Baltimore,
  303.       MD, 21-22 May 1993), pp. 16-27, 21-22 May 1993.
  304.  
  305.  
  306.   [9] J. Poulin, "Issues in the Development and Application of Reuse Metrics in a Corporate En-
  307.       vironment," in Fifth International Conference on Software Engineering and Knowledge Engi-
  308.       neering, (San Francisco,CA), pp. 258-262, 16-18 June 1993.
  309.  
  310.  
  311. [10]  R. Tausworthe, "Information models of software productivity: limits on productivity growth,"
  312.       Journal of System Software, vol. 19, no. 2, pp. 185-201, October 1992.
  313.  
  314.  
  315. [11]  B. Boehm, Software Engineering Economics.  Englewood Cliffs, NJ: Prentice-Hall, 1981.
  316.  
  317.  
  318.  
  319. 4      Biography
  320.  
  321.  
  322.  
  323. Jeffrey S. Poulin, joined IBM's Reuse Technology Support Center, Poughkeepsie, New York, in
  324. 1991.  Hisresp onsibilities on the RTSC included developing and applying corporate standards for
  325. reusable component classification,  certification,  and measurements.  He currently works in Open
  326. Systems Development for IBM's Federal Systems Company and participates in the IBM Corporate
  327. Reuse  Council,  the  Association  for  Computing  Machinery,  and  the  IEEE Computer  Society.  A
  328. Hertz Foundation Fellow,  Dr.  Poulin earned his Bachelors degree at the United States Military
  329. Academy at West Point, New York, and his Masters and Ph.D. degrees at Rensselaer Polytechnic
  330. Institute in Troy, New York.
  331.  
  332.  
  333.  
  334.                                                          Poulin- 5
  335.