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 / ascii / nishimoto.ascii < prev    next >
Internet Message Format  |  1991-10-31  |  10KB

  1. From griss@hplmlg.hpl.hp.com Thu Oct 31 20:37:26 1991
  2. Received: from hplms2.hpl.hp.com by gandalf.umcs.maine.edu (5.59/1.34-seg070391)
  3.     id AA00883; Thu, 31 Oct 91 20:02:36 EST
  4. Received: from hplmlg.hpl.hp.com by hplms2.hpl.hp.com with SMTP
  5.     (16.5/15.5+IOS 3.20) id AA10615; Thu, 31 Oct 91 10:38:09 -0800
  6. Received: from localhost by hplmlg.hpl.hp.com with SMTP
  7.     (15.11/15.5+IOS 3.14) id AA23436; Thu, 31 Oct 91 10:39:27 pst
  8. Message-Id: <9110311839.AA23436@hplmlg.hpl.hp.com>
  9. To: latour@hplmlg.hpl.hp.com
  10. X-Location: 1U, post H13
  11. X-Phone: 857-8715
  12. Subject: Alvina's paper
  13. Date: Thu, 31 Oct 91 10:39:25 PST
  14. From: Martin Griss <griss@hplmlg.hpl.hp.com>
  15. Status: RO
  16.  
  17. She asked me to send this for here to you, so you can strat the
  18. formating job.
  19.  
  20. She cant easily send email out of HP.
  21.  
  22. Martin
  23.  
  24.  
  25. ------- Forwarded Message
  26.  
  27. Return-Path: alvina_nishimoto%10@hpc700.desk.hp.com 
  28. Received: from hplms1.hpl.hp.com by hplmlg.hpl.hp.com with SMTP
  29.     (15.11/15.5+IOS 3.14) id AA23256; Thu, 31 Oct 91 07:33:44 pst
  30. Return-Path: <alvina_nishimoto%10@hpc700.desk.hp.com>
  31. Received: by hplms1.HPL.HP.COM; Thu, 31 Oct 91 07:32:08 pst
  32. Date:        31 Oct 91 07:14 -0800
  33. Subject:     Reuse Paper
  34. Message-Id:  <50475174.0.0.0@HP1900UX.HPDESK>
  35. X-Hpdesk-Priority: 2
  36. X-Hpdesk-System:  261
  37. To: martin_griss@hplabs.hpl.hp.com
  38. To: martin_griss%01@hp1900.desk.hp.com
  39. From: alvina_nishimoto%10@hpc700.desk.hp.com
  40. Received: from ux@hp1900 by hplabs; 31 Oct 91 7:30:49-PST (Thu)
  41.  
  42. Martin,
  43.  
  44. This message contains the ASCII verion of my paper.  I have
  45. sent by Federal Express today the following:
  46.  
  47. * Two formatted copies of my position paper
  48. * IBM-compatible floppy disc with an ASCII version of the file
  49. * Registration fee of $100
  50. * Registration information below
  51.  
  52. Name:                 Alvina Nishimoto
  53. Name to be on Badge:  Alvina Nishimoto
  54. Affiliation:          Hewlett-Packard Company, Manufacturing
  55.                       Productivity Operation
  56. Address:              5301 Stevens Creek Blvd., M/S 51U/92
  57.                       Santa Clara, CA  95051
  58. Phone:                (408) 553-3682
  59. FAX:                  (408) 249-1283
  60. EMAIL:                alvina_nishimoto@hpc700.desk.hp.com
  61.  
  62.  
  63. Thanks,
  64.  
  65. Alvina
  66.  
  67.  
  68.  
  69. Program of Reuse at Manufacturing Productivity Operation
  70.  
  71. Alvina Nishimoto
  72.  
  73. Hewlett-Packard Company
  74. Manufacturing Productivity Operation
  75. 5301 Stevens Creek Blvd.  M/S 51U/92
  76. Santa Clara, CA  95051
  77. 408-553-3682, alvina_nishimoto@hpc700.desk.hp.com
  78.  
  79.  
  80. Abstract
  81.  
  82. This paper describes a program of reuse that began in January 1984 with a new MP
  83.  
  84. *    How the program was initiated and how our definition of reuse has changed over
  85. *    How the program evolved to include other already existing products
  86. *    Development of the fix process for reuse components
  87. *    Coordination issues between products and the formation of the Shared Component
  88. *    Results of reuse metrics
  89. *    What lessons we learned and suggested areas for improvement
  90.  
  91. Major emphasis is on what we learned along the way and how our reuse program has
  92.  
  93. Keywords:  re-engineering for reuse, reuse maintenance process, reuse councils,
  94.  
  95.  
  96.  
  97. Getting Started
  98.  
  99. In January 1984, Manufacturing Productivity Operation (MPO) launched a fast trac
  100.  
  101. *    To invent a high-quality software product where there was none before, either
  102.  
  103. *    To meet all scheduled milestones, the most important being the manufacturing r
  104.  
  105. *    To increase the productivity of engineers in designing this type of software p
  106.  
  107. Several members of the project team had worked on the division's flagship produc
  108.  
  109. supporting this product. We had "cloned" so much of the product, meaning that a
  110.  
  111. We had many service requests that we classified as "generic", indicating that th
  112.  
  113. We placed many of the common calls to our tools layer inside of utility subrouti
  114.  
  115.  
  116.  
  117. *** Object: DOS: SEPC0100
  118.  
  119.  
  120. Figure 1
  121.  
  122. The initial impetus behind the development of this reuse code was to avoid dupli
  123.  
  124. Expansion to Other Products
  125.  
  126. After the manufacturing release of the product, a couple of the team's members m
  127.  
  128. Interestingly enough, we found out that using reused code for another product in
  129.  
  130. *    Training to help people understand when and how to use the reused code.  Unles
  131.  
  132. *    Code templates to provide engineers with a framework for which to write a tran
  133.  
  134. *    Reuse code changes to support the new and larger scope of functionality and us
  135.  
  136. *    An initial investment of six engineering months with ongoing additional effort
  137.  
  138. *    A new set of responsibilities that required engineers to make ongoing modifica
  139.  
  140. *    Making reuse a part of the development process. We set up metrics to help meas
  141.  
  142.     - Improper utility (reuse) usage
  143.     - Redundant code
  144.     - Creation of new utilities (reuse code)
  145.     - Not using an already established utility (reuse code)
  146.  
  147. We also measured the NCSS (non-commented source statements) for the reuse code v
  148.  
  149. Despite the fact that MPO cancelled this project to rewrite MM/3000, we took thi
  150.  
  151. Figure 3 shows distribution of the code for this enhancement to Materials Manage
  152.  
  153.  
  154.  
  155. *** Object: DOS: SEPC0400
  156.  
  157.  
  158. Figure 2
  159.  
  160.  
  161.  
  162. *** Object: DOS: SEPC0500
  163.  
  164.  
  165. Figure 3
  166.  
  167.  
  168. Fix Process for Reuse
  169.  
  170. The fix process for supporting a reuse product could be characterized by the fol
  171.  
  172. *    Although reuse code tends to create smaller code units allowing for smaller de
  173.  
  174. *    With more code components, it was sometimes difficult to identify a component
  175.  
  176. *    Initially, when new products added the reuse code, there were many changes in
  177.  
  178.     Because of the testing effort involved with these utilities, we often got to a
  179.  
  180.     In some cases where the rework effort was too large, we replaced a piece of reu
  181.  
  182. *    As more products began to use the reuse code, we found that it became necessar
  183.  
  184.     An example of this was a utility that displayed information on whether a datase
  185.  
  186. *    As the number of transactions and programs using reuse code grew, the testing
  187.  
  188.     We, in the beginning, felt that we needed to test each affected transaction or
  189.  
  190.  
  191. Reuse Inspection and Metrics Analysis
  192.  
  193. Encouraging the use of reuse code was included as an important part of our inspe
  194.  
  195. *    Design Change
  196.     - Work-in-process utilities that should be considered
  197.  
  198. *    Enhancement
  199.     - Logic that should be made into a NEW application or architecture utility
  200.  
  201. *    Utility Usage
  202.     - Defects in the parameter list
  203.     - Defects in initialization of the parameter list
  204.     - Incorrect usage of a utility
  205.     - Not using an established utility
  206.  
  207.  
  208.  
  209. Figures 4 and 5 show examples of the utility usage category for mini-releases re
  210.  
  211. We also track service requests from our customers that occur in reuse code and h
  212.  
  213.  
  214.  
  215. *** Object: DOS: NC540000
  216.  
  217.  
  218. Figure 4
  219.  
  220.  
  221.  
  222. *** Object: DOS: CDEFCAT0
  223.  
  224.  
  225. Figure 5
  226.  
  227.  
  228. Current Situation
  229.  
  230. MPO today has the following number of shared components:
  231.  
  232. - -    Shared (include files rather than callable routines)           9
  233. - -    Utilities (callable routines)                                     200
  234. - -    Internal documentation for shared code and utilities        209
  235. - -    Data dictionary elements (approximation only)                 40
  236. - -    Shared messages                            210
  237. - -    Testing tools (created by MPO)                                 16
  238.  
  239. We have shared and reuse code broken down as follows:
  240. - -    Shared (include files rather than callable routines)     16,100 NCSS
  241. - -    Utilities (callable routines)                               24,900 NCSS
  242. - -    Generated                                28,300 NCSS
  243.  
  244. In addition to the above code, we have a tools layer of reuse code (not included
  245.  
  246. As more and more products began to use the reuse code, coordination issues began
  247.  
  248. As this situation became more critical, we organized a group called the "Shared
  249.  
  250. *    Continue to evolve a process that allows for different groups to work on share
  251.  
  252. *    Communicate changes for shared components and proactively assess the impact to
  253.  
  254. *    Foster a process that allows us to continually add to our library of shared co
  255.  
  256. Some of the strategies to address these objectives include:
  257.  
  258. *    Definition of the shared component process that include:
  259.  
  260.     -    Update process
  261.         Process for informing people impacted by the change and how to go about the im
  262.  
  263.     -    Checkout/checkin procedures
  264.         How to checkout and checkin components, what tags should be used, and how the
  265.  
  266. - -    Synchronization process
  267.         Process for the creation of multiple versions of a shared component and how th
  268.  
  269. - -    Release account management
  270.         How the latest version of shared components are distributed to various product
  271.  
  272. - -    Testing strategy
  273.         What type of testing should be done and what should be considered when testing
  274.  
  275. *    Regular update to discuss future additions and changes to shared components to
  276.  
  277. *    Regular communication of changes to shared components during critical periods,
  278.  
  279. *    Regular communication of distribution processes to ensure that each applicatio
  280.  
  281. *    Regular communication of new components to ensure that there is a minimum of d
  282.  
  283.  
  284.  
  285. Benefits of the Reuse Program
  286.  
  287. *    Quality
  288.  
  289.     Reused code has much better quality than unique code. We have found that reused
  290.  
  291.     Relying on many shared utility procedures eliminates the risk of errors caused
  292.  
  293. *    Consistency and Standardization
  294.  
  295.     Perhaps the best benefit results from the consistency and standardization that
  296.  
  297.     Eliminating code duplication not only reduces overall code length, but also red
  298.  
  299. *    Productivity
  300.     
  301.     Code maintenance and product enhancement are made simpler since a correction or
  302.  
  303.     Some reuse code can be used by similar software systems, saving time and effort
  304.  
  305.  
  306. Conclusions
  307.  
  308. *    Initial Investment
  309.     
  310.     There is some initial investment that must be done with any reuse program. At M
  311.  
  312. *    Coordination Effort
  313.     
  314.     As more and more products use the reuse code, the coordination effort between t
  315.  
  316. *    Long term versus short term productivity
  317.  
  318.     A reuse program requires both an initial investment and an ongoing investment a
  319.  
  320. The following summarizes the key benefits and the prerequisites to success:
  321.  
  322. Benefits                                      Prerequisites to Success
  323. High quality                                  High initial investment
  324. Consistency and standardization           Detailed planning
  325. Productivity                                   High coordination between engineering team
  326. Reduced support costs                     Source code management system
  327.                         Testing strategy
  328.                         Documentation of reuse routines
  329.                         Defined maintenance process
  330.                         Measurement system that supports reuse
  331. Acknowledgments
  332.  
  333. Thanks to Nancy Federman and Raj Bhargava for their support of the initial reuse
  334.  
  335.  
  336. References
  337.  
  338. Bhargava, Raj K.; Lombardi, Teri L.; Nishimoto, Alvina Y.; and Passell, Robert A
  339.  
  340.  
  341.  
  342. ------- End of Forwarded Message
  343.  
  344.  
  345.