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 / wisr5 / proceedings / ascii / garg.ascii < prev    next >
Text File  |  1993-05-28  |  17KB  |  359 lines

  1.  
  2. Process Modeling of Software Reuse 
  3.  
  4. Pankaj K. Garg 
  5.  
  6. Hewlett-Packard Laboratories 
  7. 1501 Page Mill Road, Palo Alto, CA 94306 
  8. Tel: (415) 857-4709, Fax: (415) 857-8526 
  9. Email: garg@hpl.hp.com 
  10.    
  11.   
  12.                        Abstract
  13.  
  14. Explicit models of software processes benefit organizations by making the 
  15. process visible for organization design; providing a basis for continuous 
  16. process improvement; providing a basis for selecting an infrastructure 
  17. (technology support) for the process; etc. Not surprisingly, these benefits can
  18. accrue for the process of software reuse as well. However, it is easy to 
  19. underestimate the importance of process modeling for software reuse.
  20.  
  21. In this position paper we claim that unless a successful strategy and 
  22. methodology for process modeling is developed, software reuse strategies will 
  23. not be successful. We outline an approach, based on macro and micro process 
  24. modeling, which represents a process modeling strategy for software reuse. The 
  25. approach is illustrated using concepts from the Matisse process-oriented 
  26. programming environment.
  27.  
  28. Keywords:  Software Reuse, Software Process Modeling, Organization design.
  29.  
  30. Workshop Goals:  Understand the intersection of software process modeling 
  31.          research and software reuse research; contribute understanding
  32.                  of software process research to the reuse community.
  33.  
  34. Working Groups:  Reuse process models, Reuse maturity models, Reuse management,
  35.                  Organization and economics, Domain analysis/engineering.
  36.  
  37.  
  38. 1  Background 
  39.  
  40. I have been involved in software engineering research for the past seven years.
  41. The basic hypothesis of my work has been that programmer productivity can be 
  42. improved by (semi-automatically) explicating appropriate and timely information
  43. regarding the state of a software project.  Towards this end I have previously
  44. proposed a hypertext model to manage software life-cycle information 
  45. [Gar88, GS90]. This work was subsequently extended to include more automation of
  46. the software process within the hypertext framework [GS89] and to include better
  47. team-work support [GPB+92].
  48.  
  49. More recently I have been looking at the issue of making software processes 
  50. explicitly available as information objects to be manipulated within a software
  51. team information environment [Ost87, GB92].  Within this context, I would like 
  52. to explore the possibilities of applying software process modeling to software 
  53. reuse and vice versa.
  54.  
  55.  
  56. 2  Position 
  57.  
  58. My position is that in order to achieve its full potential, software reuse 
  59. requires explicit software process modeling.  In the first part of this section,
  60. I argue for this position. In the latter part, I present the first steps towards
  61. process modeling of software reuse.
  62.  
  63.  
  64. 2.1  Benefits of Reuse Process Modeling 
  65.  
  66. 2.1.1  Process Modeling  
  67.  
  68. A software process model consists of a description of the activities in the 
  69. process (with associated resource descriptions) in a textual or graphical form.
  70. In addition,  within a process-oriented programming environment, there is an 
  71. enactment engine which maintains (and helps maintain) the state of the process 
  72. in a dynamic, continuous manner.
  73.  
  74. Explicit models of software processes within programming environments 
  75. accomplish several functions:
  76.   
  77.   * Provide analysis capabilities for process descriptions;
  78.  
  79.   * Suggest sequence of actions to be carried out by an agent (human or 
  80.     artificial) at a given stage in the project;
  81.  
  82.   * Track the activities carried out in the project such that a sufficient 
  83.     corporate memory of the project is captured;
  84.  
  85.   * Establish constraints on what can be done by an agent at a given stage in 
  86.     the project.
  87.  
  88.  
  89. 2.1.2  Macro Process Models  
  90.  
  91. Several proposals for software process management, such as the Waterfall 
  92. [Roy88] or Spiral [Boe88] life-cycle models, describe (and prescribe) in a very
  93. general sense the activities of a software project. For example, the Waterfall 
  94. life-cycle model suggests that the system requirements should be understood 
  95. before developing the functional specifications. The Spiral life-cycle model 
  96. suggests that at specific intervals the team should understand (estimate) the 
  97. project risks and minimize the risks by developing prototypes of high risk 
  98. components. These models serve a useful purpose: they help in designing the 
  99. organization within which the software should be developed and maintained . 
  100. Because of the level at which activities are described in such models, we have 
  101. termed this class of models as macro process models .
  102.  
  103. Lurking behind James Neighbors' following remark is the desire for designing
  104. macro software reuse process models:
  105.   
  106.     The basic motivation is the frustrating feeling that most of the system you
  107.     are currently building is the same as the last few systems you have built, 
  108.     but that once again you are building everything from scratch. The current 
  109.     system development is behind schedule and you have no time to figure out 
  110.     what this similarity means [Nei91][pp.39].
  111.   
  112.  
  113. Accordingly, a major component of Neighbors' DRACO approach is the specification
  114. of a particular reuse process model.  The primary reason to develop a macro 
  115. process model for reuse, therefore, is that the benefits of producing a reusable
  116. component might not be obvious to the producers unless they can identify the 
  117. `bigger picture'. There are, of course, secondary reasons like the need to blend
  118. together the "producer" and "consumer" processes for effective reuse of 
  119. components [Ost87].
  120.  
  121.  
  122. 2.1.3  Micro Process Models  
  123.  
  124. At a high level of generality, it seems that macro models should be able to meet
  125. the needs of describing and prescribing software processes. However, if we 
  126. address the issue of embedding process models in a process-oriented programming
  127. environment, we have to detail out the finer activities which comprise the 
  128. general activities described in such models [GS89]. For example, the high level
  129. activity of "Understand Requirements" can be decomposed into several finer 
  130. grained activities such as read requirements document, develop annotations for 
  131. the requirements document, collate the annotations, etc. These finer grained 
  132. activities, in turn, may be composed of several primitive actions which are the
  133. commands available to the environment user. Models of such activities are quite
  134. useful to the humans working on the projects -- they serve to automate the 
  135. routine aspects of the work such that the humans in the process can concentrate
  136. on the more creative and challenging aspects.  We define these types of process
  137. models as being micro process models .
  138.  
  139. As discussed before [Nei91, Kru89], effective reuse requires extra activity on 
  140. the part of the `producer', `consumer', `librarian', etc., of reusable software
  141. components. Therefore, it behooves us to find ways of reducing (or eliminating) 
  142. these extra burdensome activities through the use of micro models embedded 
  143. within the appropriate programming environments.
  144.  
  145. In summary, there are two layers at which reuse process modeling needs to be 
  146. carried out: (1) the macro layer, and (2) the micro layer. The macro process 
  147. models help in designing organizations, major work flows, etc.  The micro 
  148. process models help in developing the support environment for programmers, 
  149. designers, etc.  In the rest of this section we describe a particular 
  150. instantiation of this layered approach, embedded within a process-oriented 
  151. programming environment, Matisse.
  152.  
  153.  
  154. 2.2  A Layered approach to Reuse Process Modeling 
  155.  
  156. We have built an experimental process-oriented programming environment, Matisse,
  157. which can support both the layers described above [GPB+92]. The heart of the 
  158. system is a forward chaining rule engine which provides the enactment engine for
  159. process models.  A powerful combination of object-oriented and rule-based 
  160. concepts provides the the necessary representational power for both the macro 
  161. and micro level process models. The rule engine is also connected to a shared, 
  162. persistent repository of information which provides the requisite team work 
  163. support.
  164.  
  165. We use modeling constructs originally suggested by Bob Balzer's group [BDMN83]
  166. and later refined by Geoff Clemm [Cle88]. The modeling language used is SE-KRL 
  167. (for Software Engineering Knowledge Representation Language). SE-KRL uses a 
  168. rule-based, object-oriented approach to software process modeling.  It allows 
  169. the user to define: classes of objects, relations (attributes) on objects, 
  170. operations on objects, and rules which govern the behavior of property 
  171. modifications in the environment. Both change propagation and consistency 
  172. maintenance rules are easily defined in SE-KRL.
  173.  
  174.  
  175. 2.2.1  Macro Process Model  
  176.  
  177. For illustration purpose, we use IDEF constructs for the macro process model. 
  178. Rather than go into the details of IDEF, we highlight the approach by encoding 
  179. aspects of a modified butterfly model of reuse [aW91].
  180.  
  181. At the top level, there are four main activities in this model: Manage Reuse, 
  182. Produce Components, Support Components, and Use Components.  These are modeled 
  183. within Matisse by creating an IDEF-Activity-Class:
  184.   
  185.     (DEFCLASS IDEF-Activity-Class
  186.       :name "IDEF-Activity-Class"
  187.       :superclass Job-Class
  188.       :attributes (user-object))
  189.   
  190.  
  191. This SE-KRL construct defines the class IDEF-Activity-Class as a sub-class of 
  192. the (pre-defined) job-class in Matisse. The attribute User-Object suggests (to 
  193. Matisse) that users can create instances for this class of objects.  Once this 
  194. class is defined, users can use a graphical editor to create the four top level
  195. activities.
  196.  
  197. Subsequently, relationships between activities and their inputs; activities and
  198. their constraints; etc., can be modeled. For example, relationships between 
  199. activities and their inputs can be defined as:
  200.  
  201.     (DEFSLOT IDEF-activity-input
  202.       :name "IDEF-activity-input"
  203.       :domain PO-Class
  204.       :range IDEF-Activity-Class
  205.       :attributes (Can-Change)
  206.       :inverse IDEF-input-of)
  207.   
  208.  
  209. This definition states that IDEF-Activity-Input is a relationship which exists 
  210. between IDEF-Activities and objects of the PO-Class. (PO-Class is a generic 
  211. class which is used in Matisse to represent workproducts of the process.)
  212.  
  213. Matisse helps in the development of such Macro models in several ways: (1) It 
  214. maintains the model in a team-shared repository such that the model can be built
  215. by team consensus, (2) It provides the infrastructure to check for various 
  216. consistency requirements for the model, (3) It can automate aspects of the 
  217. process of developing the macro model  through change propagation, and (4) 
  218. Various forms of analysis can be performed on the model.  For example, the 
  219. following analysis operation, Workproduct-fan-out, can be used to determine the
  220. number of activities in which a particular workproduct is used:
  221.   
  222.     (DEFOPERATION Output-Fan-Out (Idef-Output)
  223.       :name "Output Fan Out"
  224.       :domain PO-Class
  225.       :lisp-test (wdb-get Idef-Output 'idef-output-of)
  226.       :lisp-apply-test NIL
  227.       :lisp-body (format t "Output  A is used in  A activities 
  228.                    (wdb-get idef-output 'has-name)
  229.                    (length (wdb-get-all idef-output 'idef-input-of))))
  230.   
  231.  
  232. 2.2.2   Micro Process Model  
  233.  
  234. In micro modeling, it is important that the process-oriented environment provide
  235. automation support for the burdensome aspects of the process. If we assume a 
  236. component-based reuse strategy, one of the micro process which teams would like
  237. to do is to enforce some naming convention for the components produced [Kru89].
  238. Typically, such conventions involve pre-pending the name of the library package
  239. to which the component would ultimately belong, with the name of the produced 
  240. component. This is a burdensome activity for the producer.  With Matisse, one 
  241. can easily automate this activity, through a change propagation rule:
  242.   
  243.     (DEFCOORDINATION prepend-package-name-to-components  
  244.       :test (and (rel ?object has-name ?name)
  245.                  (rel ?object component-in-package ?package))
  246.       :body (unless (string= ?name (wdb-get ?package 'has-name)
  247.                             :start1 0
  248.                             :end1 (length (wdb-get ?package 'has-name)))
  249.                 (assert (action assert =?object has-name
  250.                 =(strcat (wdb-get ?package 'has-name) ":" ?name)))))
  251.  
  252.   
  253. With this rule, anytime a user changes (or creates) the name of a component, 
  254. Matisse will make sure that the name is pre-pended with the name of the package
  255. which the user is currently working with.
  256.  
  257.  
  258. 2.2.3   Summary  
  259.  
  260. To summarize, it is our claim that explicit process modeling will be an 
  261. essential component of any reuse strategy. Our claim is based on observations 
  262. made in the literature about shortcomings of unsuccessful reuse strategies.  On
  263. the basis of this hypothesis, we have developed an approach to process modeling
  264. of software reuse, the first steps of which have been presented in this paper. 
  265. The approach is promising specially because of the automation support we can 
  266. provide through the Matisse process-oriented programming environment.
  267.  
  268.  
  269. 3  Comparisons 
  270.  
  271. Several people have expressed the necessity of modeling the software reuse 
  272. process model, including Neighbors [Nei91], University of Maryland's component 
  273. factory approach [BCC92], etc. The main contribution of our approach is the 
  274. ability to: (1) automate the routine aspects of reuse processes, and (2) 
  275. explicate process models in a manner suitable for ready analysis.
  276.  
  277. Other people such as Prieto Diaz, Martin Griss, Walt Scacchi, and Mark Simos 
  278. have expressed the need for solving some of the non-technical barriers of 
  279. software reuse.  Clearly, having a well-defined reuse process model is a 
  280. pre-requisite for such solutions.  The approach presented in this paper can 
  281. provide a basis for solving the problem of software reuse process modeling.
  282.  
  283.  
  284. 4  Acknowledgments 
  285.  
  286. I would like to thank Patricia Collins for her patient explanation of the 
  287. Butterfly process model. I would also like to thank Patricia Collins, Martin 
  288. Griss, and Thuan Pham for their comments on earlier versions of the paper.
  289.  
  290.  
  291. 5  Biography 
  292.  
  293. Pankaj Garg is a Project Leader at Hewlett Packard Laboratories, Software 
  294. Technology Labs. He got his Ph.D in Computer Science from the University of 
  295. Southern California, in February 1989.  His research interests are in 
  296. artificial intelligence, hypertext systems, and software engineering.  Pankaj 
  297. was an All-University-Pre-Doctoral-Merit fellow of the graduate school, USC, 
  298. for the years 1984 through 1987. He was a research associate in the Computer 
  299. Science Department, USC, from 1987 through February 1989.  He got his Bachelor 
  300. of Technology degree in Computer Science, from Indian Institute of Technology, 
  301. Kanpur (INDIA), 1984.
  302.  
  303.  
  304. References
  305.  
  306. [aW91]   Reuse Process Working Group at WISR-4.  Reuse Process Working Group 
  307.      Results.  Technical report, November 1991.
  308.  
  309. [BCC92]  V. R. Basili, G. Caldiera, and G. Cantone.  A Reference Architecture 
  310.      for the Component Factory.  ACM Transactions on Software Engineering 
  311.      and Methodology, 1(1):53--80, January 1992.
  312.  
  313. [BDMN83] R. Balzer, D. Dyer, M. Morgenstern, and R. Neeches.  Specifications 
  314.      Based Computing Environments.  In Proc. National Conf. on AI, AAAI-83,
  315.      1983.
  316.  
  317. [Boe88]  Barry W. Boehm. A Spiral Model of Software Development and Enhancement.
  318.          In Richard H. Thayer, editor, IEEE Tutorial: Software Engineering 
  319.      Project Management, pages 128--142. IEEE Computer Society Press, 1988.
  320.  
  321. [Cle88]  G. M. Clemm.  The Workshop System: A Practical Knowledge-Based Software
  322.          Environment.  In Proceedings of the 3rd ACM software engineering 
  323.      environments conference, pages 55--64, December 1988.
  324.  
  325. [Gar88]  P. K. Garg.  Abstraction  Mechanisms in  Hypertext.  Communications of
  326.          the ACM, 31(7), July 1988.
  327.  
  328. [GB92]   P. K. Garg and S. Bhansali.  Process Programming by Hindsight.  In 
  329.      Proceedings of the International Conference on Software Engineering, 
  330.      May 1992.
  331.  
  332. [GPB+92] P. K. Garg, T. Pham, B. Beach, A. Deshpande, A. Ishizaki, W. Fong, and
  333.          K. Wentzel.  Matisse: A Knowledge-based Team Programming Environment.
  334.      In Preparation., 1992.
  335.  
  336. [GS89]   P. K. Garg and Walt Scacchi.  ISHYS: Designing an Intelligent Software
  337.          Hypertext System.  IEEE Expert, pages 52--63, Fall 1989.
  338.  
  339. [GS90]   P. K. Garg and W. Scacchi.  A  Hypertext System to Manage Software  
  340.          Life Cycle Documents.  IEEE Software, pages 90--98, May 1990.
  341.  
  342. [Kru89]  Charles W. Krueger.  Models of Reuse in Software Engineering.  
  343.      Technical Report CMU-CS-89-188, School of Computer Science, Carnegie
  344.          Mellon University, Pittsburgh, PA 15213, December 1989.
  345.  
  346. [Nei91]  James M. Neighbors.  Draco: A Method for Engineering Reusable Software
  347.          Systems.  In Ruben Prieto-Diaz and Guillermo Arango, editors, IEEE
  348.          Tutorial: Domain Analysis and Software Systems Modeling , pages 34--52.
  349.      IEEE Computer Society Press, 1991.  Original article appeared in 1989.
  350.  
  351. [Ost87]  Leon Osterweil.  Software Processes are Software too. In Proceedings of
  352.          the International Conference on Software Engineering, pages 2--13, 
  353.      April 1987.
  354.  
  355. [Roy88]  Winston W. Royce.  Managing the Development of Large Software Systems.
  356.          In Richard H. Thayer, editor, IEEE Tutorial: Software Engineering 
  357.      Project Management , pages 118--127. IEEE Computer Society Press, 1988.
  358.          Original article was published in 1970.
  359.