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 / wisr4 / proceedings / detex / fraser.detex < prev    next >
Text File  |  1992-04-29  |  12KB  |  218 lines

  1.  
  2.   Pragmatic Approaches to Software Reuse at BNR, Ltd. 
  3.  
  4.   Steven Fraser    
  5.   Software Reuse Program, 
  6.   Computing Research Laboratory, 
  7.   Bell-Northern Research Ltd. Box  3511,
  8.   Station C, Ottawa, Ontario, Canada.  K1Y 4H7    
  9.  
  10.   sdfraser@bnr.ca 
  11.  
  12.                        Abstract
  13.  
  14.    An overview of our research on software reuse is presented in the context 
  15.    of BNR's large software legacy of more than 15 million lines of real-time 
  16.    software.  Some of the general research areas under investigation include:  
  17.    software cloning; software indexing; reuse metrics; and reuse project 
  18.    management.
  19.  
  20.    Keywords:  metrics, cloning, project management
  21.  
  22.  
  23. 1  Introduction 
  24.  
  25. BNR develops a wide range of telecommunication products for public/private 
  26. networks.  DMS (Digital Multiplex System) is an evolving central office switch 
  27. system with over 15 million lines of code developed by over 1200 designers 
  28. located at labs worldwide and released two to three times a year.  Reuse is 
  29. part of our development strategy: there is one development process (BCS
  30. - Batch Change Supplement) across all sites;  development tools have
  31. consistent look and feel; and a proprietary software library system
  32. maintains versioned requirements, designs and software.  BNR
  33. software designers participate at all stages of the software
  34. development cycle, i.e. requirements analysis, design,
  35. implementation, designer testing, and problem resolution.  BNR's
  36. software process is primarily focused on the development of
  37. enhancements and extensions to a system that requires a very high
  38. degree of reliability and customer satisfaction.
  39.  
  40.  
  41.  
  42. 2  Software Cloning and Indexing for Reuse 
  43.  
  44. Several different strategies for reuse are applied:
  45. design model reuse (reuse of designs for different, but similar
  46. applications); switch operating system base utilities (reuse of
  47. components and architectures); code cloning, re-engineering
  48. and designer reuse.   Designer reuse is the somewhat obvious reuse
  49. of expertise by individual designers.  Re-engineering has been
  50. applied at several levels, first to split off common functionality for
  51. reuse, e.g. utilities, and second to improve performance, which is
  52. often seen as an obstacle to reuse in real-time systems. Code   
  53. cloning, a form of copy-and-edit, provides tremendous leverage.  For 
  54. example, risk is minimized in making modifications to
  55. the production system while facilitating specialization for new
  56. applications, e.g. template reuse.  The down-side of cloning is rapid
  57. code growth and increased complexity.
  58.  
  59. A CD-ROM based tool has been made available to designers to assist
  60. them  in rapidly  locating relevant software with keyword searches.
  61. However, further research is required to determine the influences of
  62. templates on the effectiveness of reuse.  We have observed that the
  63. cultural problems are as important (if not more so) than the technical
  64. issues: Designers must be able to trust and quickly understand
  65. software written by others.
  66.  
  67.  
  68.  
  69. 3  The Designer as Customer? 
  70.  
  71. Within the DMS BCS delivery process there are several levels of customer:  The 
  72. primary customer is the end-user of a telephony feature while the secondary 
  73. end-user is a telephone operating company.   Customers within BNR such as 
  74. designers who reuse software written by others are not really considered as   
  75. customers because they are not an obvious source of revenue.  Consideration of 
  76. the individual designer and project teams as the customer for software reuse 
  77. could result in substantial development savings.   The benefits of reuse, 
  78. particularly in the short-term, are difficult to visualize in a production 
  79. environment driven by short development cycles and limited market windows.  
  80. The initial impetus must be driven by a global-corporate perspective of the 
  81. benefits.
  82.  
  83. From a designer perspective, there are a number of reuse inhibitors
  84. that must be  addressed before a cultural evolution can proceed.
  85. First we assume that the distinction between reuse producers and
  86. reuse consumers is important - probably to the extent that designers
  87. designing for reuse will be different from those designing with reuse.
  88. Why should this be the case?  While it is possible to specify a
  89. methodology for building with reuse, only general guidelines can be given 
  90. for design for reuse.  The incentives and cultures appear to be different.  
  91. For example, application designers can follow a general methodology for 
  92. design with reuse, i.e.they can design and build robust software reusing
  93. components (following the  principles of software engineering,
  94. e.g. reviews, inspections, testplans).  Our experience has indicated
  95. that designers, require extensive  application or system experience
  96. and motivation for effective reuse contributions.  Application
  97. designers are also driven by the narrow market windows which
  98. govern their deliverables.  Usually they don't have time to
  99. experiment or consider applications beyond the scope of their
  100. current deliverables.  Additionally, no time is available to support
  101. and educate other designers since this would reduce the time
  102. available for feature development.
  103.  
  104. Experience and specialized expertise are essential for designers to be
  105. considered  as reuse specialists.  For reuse to be explicitly provided,
  106. it must become a deliverable with specific cost objectives, e.g. internal 
  107. client groups with target application areas and cost benefits.  This is done 
  108. within BNR and is partly due to the critical mass of both design staff and 
  109. feature families (large application areas) that can benefit from reuse. As 
  110. the reuse methodology matures, a culture will develop that will promote reuse 
  111. on more of a day-to-day basis.  However, this culture will only become evident
  112. during the transition between the current regime of reuse-by-convenience and 
  113. a regime where reuse-by-process is standard.
  114.  
  115.  
  116.  
  117. 4  Software Reuse Metrics 
  118.  
  119. Software metrics are used to determine the cost of software development and its maintenance.  Metrics generally evaluated include:
  120.  
  121.    * development interval: time to market
  122.  
  123.    * productivity: designer output
  124.  
  125.    * quality: defect rates
  126.  
  127.  
  128. To promote reuse, rather than simply suggesting that software be developed for  reuse (which really doesn't tell the designer what or how to do reuse), it is 
  129. more instructive to develop metrics that measure the expected outputs of 
  130. software reuse.   For example measure:  the increased productivity; the number 
  131. of reusable components; and the quality of components built from reusable 
  132. components.
  133.  
  134. Metrics based on information gathered by surveys administered to members of our design groups in the postmortem phase of each BCS development cycle will be 
  135. evaluated, e.g. as an on-line questionnaire designed for rapid completion with 
  136. minimal effort.  It is assumed that the information collected by this process 
  137. can be correlated to determine where reuse has met with success.  Components 
  138. are assumed to include:  functional requirements, design documents, code, 
  139. test plans, and other documentation components that might be reused.  Proposed 
  140. survey questions focus on component evaluations, e.g. component: almost reused, but wasn't (why?); reused as-is; reused with minor modifications;  reused with
  141. major modifications (cloned); re-engineered to improve performance; merged with other similar components; and components created without any reuse.
  142.  
  143.  
  144.  
  145. 5  Reuse Process Management 
  146.  
  147. Part of our research on software reuse has focused on how the software 
  148. development process can be enhanced to improve reuse.  Evaluation of the 
  149. process steps has highlighted the importance of analogies to help designers 
  150. understand the problems at hand.  These analogies include:
  151.  
  152.   * Standard forms?   Unlike integral calculus, software engineering has not 
  153.     evolved to the point where detail can be avoided entirely.  For example, 
  154.     tables of software forms are not readily available for easy identification 
  155.     nor are software simplification techniques standard.  A civil engineer, for     example, does not go back to first principles to derive solutions to 
  156.     general integral forms.  Instead the problem is reduced to a standard form
  157.     by a simplification technique, such as integration by parts; partial 
  158.     fractions; or coordinate transformations.  Then an analytic solution can 
  159.     be derived from a set of tables or a numerical solution calculated.  
  160.     Software reuse has not evolved to this level of standardization either 
  161.     from a solution framework perspective or standard software forms.  
  162.     This is probably a characteristic of the immaturity of software engineering     as a discipline rather than software reuse specifically.
  163.  
  164.   * With Reuse or For Reuse?   The analogy of plastic building blocks appears 
  165.     appropriate.  A child, when given blocks to play with, can implement the 
  166.     most innovative designs.  However, if a child is asked to create a new 
  167.     block type, the interest and the motivation would not be there (nor are 
  168.     the necessary skills and production facilities).  In software reuse, the 
  169.     analogy is that designers have different personal values and motivating 
  170.     influences.  These should be recognized and fostered.  Core reuse groups  
  171.     can be created to specialize in facilitating reuse.   With this model of 
  172.     reuse, the necessary rework and support required is viewed as an important 
  173.     deliverable, rather than an overhead that can be sacrificed to meet market 
  174.     pressures.  
  175.  
  176. From our experience, it is not possible to stop the product delivery process to introduce reuse in one step.  The greatest challenge with our research is to 
  177. introduce the benefits of a planned program of software reuse without 
  178. jeopardizing current market deliverables.  A balance must be struck between 
  179. resources required to meet today's deadlines and those required for the for 
  180. system longevity.
  181.  
  182.  
  183.  
  184. 6  Summary 
  185.  
  186. Several pragmatic approaches to software reuse have been presented.  We close 
  187. with the observations that:
  188.   
  189.   * software reuse presents major cultural-process challenges that require  
  190.     significant management commitment for success (reuse will not just happen).
  191.  
  192.   * software reuse is not free:  business decisions must be taken in context        to determine the appropriate strategy for success (not everything is 
  193.     reusable everywhere).
  194.  
  195.   * a greater emphasis should be placed on the evolution of process and 
  196.     research into the cultural factors that currently inhibit reuse.
  197.  
  198.  
  199.  
  200. 7  About the Author 
  201.  
  202. Steven Fraser is on staff at Bell-Northern Research's Computing Research 
  203. Laboratory (CRL) in Kanata, Ontario.  The CRL provides BCE (Bell Canada 
  204. Enterprises) with a dedicated centre of computing expertise and serves as a 
  205. bridge from the research community to product development.  Fraser is currently responsible for a research program on software reuse from both technical and 
  206. cultural perspectives.  Since joining BNR in 1987, Fraser has contributed to 
  207. the Telos project, an OO-based CASE-Design Tool and to BNR's BCS software 
  208. development process.  He completed his doctoral studies at McGill University 
  209. in Electrical Engineering in the spring of 1987.  His research focused on the 
  210. validation of natural language specifications, particularly those of the 
  211. Graphics Kernel System (GKS).  He holds a Master's degree from Queen's 
  212. University at Kingston in applied Physics and a Bachelor's degree from McGill 
  213. University in Physics and Computer Science.
  214.  
  215. In addition to research interests Fraser currently serves as the Chair of BNR's Ottawa Lab Council and the Secretary of its Corporate Lab Council.  He is an 
  216. avid photographer and opera "buff" - averaging over 40 operas a year (he is 
  217. always looking for "opera"tunities)!
  218.