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 / stump2.ascii < prev    next >
Text File  |  1993-10-19  |  15KB  |  307 lines

  1.  
  2.  
  3.  
  4.  
  5.   Experiences  in  Introducing  and  Measuring  Software  Reuse
  6.  
  7.  
  8.                 at  IBM  Endicott  Programming  Laboratory
  9.  
  10.  
  11.  
  12.                                               Patricia Stump
  13.  
  14.  
  15.  
  16.                             IBM Endicott Programming Laboratory
  17.  
  18.                                           Dept.  G95/16-4D10
  19.  
  20.                                          17C & Glendale Drive
  21.  
  22.                                           Endicott, NY 13760
  23.  
  24.                                            Tel:  (607) 752-6237
  25.  
  26.                                Email:  stump@gdlvm7.vnet.ibm.com
  27.  
  28.  
  29.  
  30.                                                Jim Gesacion
  31.  
  32.  
  33.  
  34.                             IBM Endicott Programming Laboratory
  35.  
  36.                                           Dept.  G85/17-3R16
  37.  
  38.                                          17C & Glendale Drive
  39.  
  40.                                           Endicott, NY 13760
  41.  
  42.                                            Tel:  (607) 752-6254
  43.  
  44.  
  45.  
  46.                                                   Abstract
  47.  
  48.  
  49.     This position paper describes approaches to introducing software reuse as an ingrained part
  50. of software development for the Virtual Machine / Enterprise Systems Architecture (VM/ESA)
  51. operating system and related products at the Endicott Programming Laboratory (EPL). We
  52. discuss the major inhibitors and how to overcome them. Our approach is to motivate software
  53. developers to participate without making large investments in time and effort,and to measure
  54. reuse in a simple, useful, and comprehensive way.
  55.  
  56.  
  57. Keywords: Reuse experiences, reuse program introduction, reuse measurements
  58.  
  59.  
  60. Workshop Goals: Learn and exchange information on reuse methods and experiences.
  61.  
  62.  
  63. Working Groups: Reuse process models, Reuse and OOmethods, Reuse and formal methods,
  64. Useful and collectible metrics, Reusable component certification
  65.  
  66.  
  67.  
  68.                                                   Stump- 1
  69.  
  70.  
  71. 1      Background
  72.  
  73.  
  74.  
  75. The authors have been active in the Endicott Programming Laboratory's Reuse Advisory Board
  76. formed in 1990. Patty Stump has been the IBM Endicott site Reuse Champion since 1991,leading
  77. the Reuse Board in several approaches to intro duce Software Reuse.  She's been involved in reuse
  78. education, tool evaluation and selection, measurements, lo cal success stories, combining reuse im-
  79. provement with quality improvement goals and measurements, and exchanging experiences with
  80. other  IBM Reuse  site  Champions.  Jim  Gesacion  has  been  involved  as  a  Reuse  Board  manage-
  81. ment representative since 1992 and haslead work groups to define criteria for reusable component
  82. candidates,  to  upgrade  the  EPL's  Reuse  Incentives  Program,  and  Reuse  advertising,  as  well  as
  83. advocating software reuse among the EPL management team.
  84.  
  85.  
  86.  
  87. 2      Position
  88.  
  89.  
  90.  
  91. Getting a new tool or process, such as software reuse, successfully intro duced,supp orted, and  in-
  92. grained in an existing team of technical people and its processes is difficult[1]. Since new software is
  93. where reuse investments are usually justified, an environment of legacy code development presents
  94. an even greater challenge for the introduction ofsoftware reuse[2 ]. The bulk of the EPL's VM/ESA
  95. product consists of very procedure-oriented, tightly-coupled subsystems and modules of low cohe-
  96. sion (EVB87), often written in Assembler programming language. When new function is created
  97. for the VM/ESA product, it must blend with old product technology,  making the exploitation of
  98. new development technologies very limited.  At the same time, to remain competitive,  the EPL
  99. must invest in new technologies that promise productivity and quality improvements. The EPL has
  100. learned that it can demonstrate significant quality improvement by removing errors from a product
  101. in the field.  However, in order to deliver new functionto that product and maintain equivalent
  102. low error rates, new development technologies must be employed.  Software reuse is a technology
  103. which allows the creation of more and more new function with less and less error introduction. The
  104. EPL combines scavenging of existing product code with the examination of new product function
  105. to identify all reuse opportunities.
  106.  
  107.  
  108.  
  109. 2.1     What Seems to be Working; Identifying Informal Reuse
  110.  
  111.  
  112.  
  113. Spending time and effort to closely analyze the full collection of existing reusable co de inthe legacy
  114. operating system, for example macros, module entry points and subroutines in any language, and to
  115. then document and measure them provides many benefits. It addresses the common problem of not
  116. having a robust repository of reusable parts for developers to use, as software reuse is introduced.
  117. If many parts are not available, willing participants in the introduction of software reuse haveonly
  118. one choice, to create new reusable parts. This often implies an investment larger than just writing
  119. new code[3 , 4], an investment which is very difficult to justify.  This "seeding" of existing parts
  120. creates  a  library  of  parts  of  unknown  certification  level  [5 ], i.e.  the  desired  or  required  level  of
  121. documentation,  quality,  testing,  legal  information  required  of  reusable  parts  by  the  local  Reuse
  122. Board may or may not be met. These parts may be narrow in scope, and may not justify claims
  123. in productivity improvements, since reusers may know anduse them anyway.  But with respect
  124. to quality, existing parts havereal customer-world history and data that can be used to identify
  125. and record known quality information of parts forreusers of those parts.  This level of quality is
  126. difficult to achieve through extensiveinternal testing and quality verification of new code.  What
  127.  
  128.  
  129.  
  130.                                                          Stump- 2
  131.  
  132.  
  133. this repository of existing parts also provides to software developers is access to the new tools and
  134. new processes of software reuse, through the familiarity of software parts they have worked with
  135. for  years.  By  making  change  as  effortless  as  possible, people  can  adopt  new  habits  of  software
  136. reuse, i.e. looking for parts to use on a new project, "owning" a reusable part, and understanding
  137. documentation,  quality,  and test requirements of a reusable part.  These habits will be required
  138. and  will  reap  larger  benefits  as  more  formal  and  broader  domain  reuse is  employed.  As  people
  139. understand through personal experience, the value, the tools, the requirements of goo dreusability,
  140. they will more naturally be lead to create software that is more reusable and less domain-specific
  141. when possible.
  142.  
  143.  
  144. Scavenging of reusable components from existing software can be accomplished in many ways[6, 7 ],
  145. and is likely more cost-effective than building new ones in an environment where the amount of ex-
  146. isting legacy code that is maintained and enhanced far outweighs the amount of new code produced
  147. for the same software product. The EPL uses a set of reuse characteristics when manually scanning
  148. through existing code and when working with developers to identify reusable parts.  This initial
  149. repository  is  further  refined  by  examining  encapsulation,  domain breadth,  frequency  of  current
  150. reuse, and known quality. Though only a subset of parts may be selected to make improvements
  151. based on these criteria and resource availability factors, all items remain on the list to be searched
  152. for by reusers.  Once the repository of existing reusable parts is created, it becomes a repository
  153. of opportunity for quality improvement, reusability improvement, and certification of the reusable
  154. part.  Domain experts and reuse experts can decide which parts need which work.  For example,
  155. some parts may easily meet certification criteria once the quality history is checked. In other cases
  156. the  documentation  may  need  to  be  improved, and  often,  testing  information  needs  to  be  found
  157. and recorded.  With ato ol to track which criteria are met and which aren't, it becomes easier to
  158. share the "costs" of certification, both among people and over time.  A module owner, or one of
  159. the reusers, or a Reuse Board representative, or anyone could help with what they can afford to do
  160. in meeting certification criteria for a reusable part. Instead of requiring an author to do all these
  161. "extras" for some new reusable component and requiring them to fit it inwith their development
  162. schedule now, it can be added to the repository, and mature to certification as it gets reused, or as
  163. time permits. We see this approach as an evolution of parts to thecertified level, and an evolution
  164. of the organization to the broad employment of software reuse technology.
  165.  
  166.  
  167.  
  168. 2.2     What we Measure
  169.  
  170.  
  171.  
  172. Measurements are most effective when they measurethe b ehavior that is being encouraged.  The
  173. behavior the EPL Reuse Board wishes to encourage is the practice of reuse to attain quality and
  174. productivity  improvements.  Therefore,  many  types  of  reusable  parts  are  measured,  from  as-is
  175. parts, to thoroughly proven "certified" parts.  The simplest measurement is the number of parts in
  176. the repository, and how many certification criteria need to be met by the uncertified parts.  This
  177. measurement is presented to teams, organizations of teams, and management.
  178.  
  179.  
  180. The EPL measures quality inour pro cess and pro ducts quite extensively. Reuse measurements need
  181. to reflect reuse's contribution to a product's quality improvement.  The EPL uses IBM corporate
  182. reuse measurements[8].  The Reused Source Instructions (RSI) measurement and its derivatives, the
  183. Reuse Percentage, Reuse Cost Avoidance, andReuse Value Added are oriented toward measuring
  184. the combined value of quality and pro ductivity improvements. Productivity gains cannot be claimed
  185. for all uses of a high-quality reusable part because people will naturally use itover and over and
  186. teams will naturally share it.  However, each instance of a certified reusable part in the product,
  187. from a quality-only perspective, representsa unique contribution to the quality of the product. If a
  188.  
  189.  
  190.  
  191.                                                          Stump- 3
  192.  
  193.  
  194. developer chooses to use a "certified" routine over an as-is routine, there is a different quality result
  195. in the product. There are potential services costs avoided each and every timethe certified part is
  196. used. The "used instructions" (UI) (PH93) is used with an RSI which is based on total number of
  197. instances. This reuse measurement complements the existing collection of defect-oriented pro duct
  198. quality measurements used in the EPL by showing the total amount of certified product code at
  199. its lower error rate, and its effect onthe pro duct's overall error rates and quality. These RSI-based
  200. measurements are presented to product owners, project leaders, and management on a quarterly
  201. basis, or when product development cycles produce new results.
  202.  
  203.  
  204. To encourage teams to create certifiedreusable parts when possible, s and to improve the quality
  205. of as-is reusable parts, the Reuse Percentage measurement is used to set and track team goals.
  206.  
  207.  
  208. To be able to explain reuse in terms familiar to pro duct developers,  additonal categories of reuse
  209. are measured, including code ported from one platform to another and co de imported from external
  210. sources. So that everyone understands the "best" kind of reuse they can do, these reuse categories
  211. are  further  refined  into  the  least  desirable  and  most desirable  based  on  two  criteria, productiv-
  212. ity improvement and quality improvement.  This matrix helps encourage reusers to focus on the
  213. underlying requirements of "better" categories of reuse.  "Best",  in this case,  would be a reuser
  214. modifying  the  reusable  part  as  little  as  possible  (ideally  none), a  reuser  relying  on  the  original
  215. owner to maintain a single copy of thereusable part,  and the reuser knowing and being able to
  216. prove the quality of the reusable part. This "best" reuse, when practiced, will result in the highest
  217. quality improvement and simultaneously the highest productivity improvement.
  218.  
  219.  
  220.  
  221. 2.3     Comparison
  222.  
  223.  
  224.  
  225. There are many reports on reuse experiences available.  Most describe experiences in an environment
  226. of application development or systems programmed with languages that better lend themselves to
  227. reuse, such as Ada, C, and C++. We've found none that describe a reuse program that is introduced
  228. for low-cost and that continues to evolve to more mature forms of reuse.
  229.  
  230.  
  231. Although our measurement methods are based on existing measurement methods, ours have been
  232. refined to focus on quality improvement,  and haveb een expanded up on in an effort to focus on
  233. the education, and on the progress of getting reuse momentum going in a development team at the
  234. same time that the measurements are used to explain the financial costs and benefits.
  235.  
  236.  
  237.  
  238. 2.4     References
  239.  
  240.  
  241.  
  242. References
  243.  
  244.  
  245.  
  246. [1]  B.Bouldin, Agents of Change: Managing the Introduction of Automated Tools. Yourdon Press,
  247.      1991.
  248.  
  249.  
  250. [2]  J.  Doll  and P.  Stump,  "VM Quality  Improvement  Through  Software  Reuse  at  the  Endicott
  251.      Programming Lab," Tech. Rep. TR 01.C173, International Business Machines, November 1991.
  252.  
  253.  
  254. [3]  B. Barnes, T.Durek, G. Gaffney, and A. Pyster, "Cost Models for Software Reuse," in Pro-
  255.      ceedings of the Tenth Minnowbrook Workshop, July 1987.
  256.  
  257.  
  258. [4]  T. Bollinger and S. Pfleeger, "The Economics of Reuse: Issues and Alternatives," in Proceedings
  259.      of the EighthAnnual National Conference on Ada Technology, March 1990.
  260.  
  261.  
  262.                                                          Stump- 4
  263.  
  264.  
  265. [5]  R. T. S. Center, "IBM Reuse Methodology:  Qualification Standards," Tech. Rep. Z325-0683,
  266.      International Business Machines, 1992.
  267.  
  268.  
  269. [6]  G. Caldiera and V. Basili, "Identifying and Qualifying Reusable Software Components," IEEE
  270.      Computer, February 1991.
  271.  
  272.  
  273. [7]  G.  Mayobre,  "Using  Code  Reusability  Analysis  to  Identify  Reusable  Components  from  the
  274.      Software Related to an Application Domain," in Proceedings of the Fourth Annual Workshop
  275.      on Software Reuse, November 1991.
  276.  
  277.  
  278. [8]  J. Poulin and W. Hayes, "IBM Reuse Methodology:  Measurement Standards," tech. rep., In-
  279.      ternational Business Machines, 1992, July.
  280.  
  281.  
  282.  
  283. 3      Biography
  284.  
  285.  
  286.  
  287. Patty Stump is a staff programmer at IBM's Endicott ProgrammingLab oratory, Endicott, New
  288. York. After numerous software development projects as a developer, her currentprimary respon-
  289. sibility is to coordinate the Endicott Reuse Advisory Board's efforts tointroduce formal software
  290. reuse  into  the  software  product  development  process  for  EPL-produced  products.  Her  interests
  291. include software developmentpro cess models, quality improvement, and systems science. She is a
  292. member of the IBM Corporate Reuse Council, the 100X Quality Improvement team in Endicott,
  293. and IEEE Computer Society.  She received her Bachelor's degree from East Stroudsburg University,
  294. Pennsylvania, and her Master's degree from StateUniversity of New York and Binghamton, New
  295. York.
  296.  
  297.  
  298. James Gesacion is a first line development manager at IBM's Endicott Programming Laboratory,
  299. Endicott, New York.  He is currently responsible for development of Client/Server products.  His
  300. software reuse responsibilities include serving on the Endicott Reuse Advisory Board, and providing
  301. management support and focus. His interests include achieving Six Sigma Quality in products and
  302. processes. He received his Bachelor's Degree from Youngstown State University, Ohio.
  303.  
  304.  
  305.  
  306.                                                          Stump- 5
  307.