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 / garg.ascii < prev    next >
Text File  |  1993-10-19  |  12KB  |  188 lines

  1.  
  2. A Meta-Process for Software Reuse Process 
  3. Discovery and Evolution
  4.  
  5. Pankaj K. Garg, Mehdi Jazayeri, and Michael L. Creech
  6.  
  7.  
  8.  
  9. Hewlett-Packard Labs
  10.  
  11. 1501 Page Mill Road
  12.  
  13. Palo Alto, CA 94304
  14.  
  15. Email: garg@hpl.hp.com
  16.  
  17.  
  18.  
  19. Abstract
  20.  
  21. Our goal is to develop process models for domain-specific kit-based software production 
  22. and consumption. For this purpose, we are exploring approaches for: (1) empirically dis-
  23. covering and validating software processes, and (2) monitoring and optimizing (evolv-
  24. ing) such processes. In this paper we present an iterative meta-process that represents a 
  25. first step in this direction. We also report on some early usage of the meta-process for an 
  26. experimental domain-specific kit production process.
  27.  
  28. Keywords: domain-specific software kits, process models, meta-processe.
  29.  
  30. Workshop Goals: to better understand the state of the art in the development of generic 
  31. software architectures.
  32.  
  33. Working Groups: domain analysis/engineering, reuse process models.
  34.  
  35.  
  36. 1  Introduction
  37.  
  38. One approach to software reuse is to develop application programs from domain-specific software 
  39. development kits (DSK's). With the use of such kits, generic knowledge about an application domain can 
  40. be encoded such that the process of creating a new application becomes one of customizing the kit rather 
  41. than programming. There are two main impediments to the kit approach: the technology and mechanisms 
  42. for encoding generic domain knowledge as kits needs to be developed, and software development 
  43. organizations need to be redesigned to follow a kit-based development and maintenance process. In this 
  44. paper we address the latter issue.
  45.  
  46. Figure 1: A Meta-Process for DSK process discovery and evolution.
  47.  
  48. Recent organization design theories suggest that, with the competitive demands of the future, organizations 
  49. need to be organized around their core processes rather than their functional units [6]. Software engineering 
  50. studies indicate that, to control the runaway costs of software efforts, and to ensure the quality of a software 
  51. product, the processes by which the software is produced and used need to be explicated [1, 4]. And, finally, 
  52. explicit process models seem essential for establishing a software reuse program [3]. For these reasons, our 
  53. work is focused on developing DSK process models.
  54.  
  55. In order to understand the nature of such processes, our group is experimentally constructing and using 
  56. example kits over several iterations. In each iteration of a DSK process, we develop prototype process 
  57. models, along with the development of the next iteration of a kit, such that eventually we can produce 
  58. empirically validated DSK process models and guidelines that are applicable for organization settings 
  59. similar to ours. These process models include processes that can be packaged with the kits, to be followed 
  60. by kit users, as well as process models to be followed by other kit producers.
  61.  
  62. Figure 1 shows the meta-process that we have adopted for developing the DSK process model. As shown 
  63. in the figure, we started by participating in the planning of the Kit0 activity, that led to the development of 
  64. the initial process model for Kit0. This model was subsequently used by the kit building team to develop the 
  65. kit. 
  66.  
  67. While the kit was being developed, we determined a framework for capturing the process of Kit0. This 
  68. framework is an adaptation of the knowledge-based Articulator framework [5]. The main feature of the 
  69. Articulator that was attractive for our application is its flexibility. Using the Articulator meta-model, a 
  70. process modeler can specify the analysis and modeling concepts that will be used to develop the process 
  71. models, rather than being forced to use a particular set of concepts and method, e.g., the one advocated by 
  72. tools supporting the IDEF method.
  73.  
  74. At various stages of the process, we monitored the process to get a feel of what was going on. Ultimately, 
  75. when we realized that the kit production process was almost complete, at time Ts in Figure 1, we started 
  76. conducting interviews of the participating people to capture the process history. We analyzed the process 
  77. history to determine the strengths and weaknesses of the process.
  78.  
  79. The next stage of the meta-process was to present the process history and its analysis for feedback from the 
  80. DSK team. As shown in Figure 1, this was necessary to produce a validated process history that can be used 
  81. to produce a process model for kit1. One reason for validation is to remove any misinformation introduced 
  82. while we were developing the history. Another reason for the history feedback was to collect information 
  83. about the time interval from Te to Ts that we missed during the interviews. This part of the process was 
  84. primarily on kit usage. However, most of our time was spent in validating the history for the interval from 
  85. T1 to Ts. Therefore, for the next iteration of the meta-process we will be adopting a more continuous 
  86. monitoring and feedback approach.
  87.  
  88. 2  Process History Elements
  89.  
  90. The process history is captured using the four elements described below. The words in italics within this 
  91. description are attributes of the four elements of our process history.
  92.  
  93. 1.    Agents - the characterization of the different roles that are executed by the people involved in the 
  94. process. An agent is characterized by the Person represented, the Role that he or she plays in the 
  95. process, the Skill Set they bring to the process, the person's Goal with regards to that role, and the 
  96. Relative Importance the person attaches to that role.
  97.  
  98. 2.    Primary Tasks (P-Tasks) - the planned activities or tasks that were carried out in the process to 
  99. accomplish the goals of either producing a DSK or using one. Each P-Task has a Goal associated with 
  100. it, lasts for a certain Duration, has some people who are Responsible for accomplishing the task, some 
  101. people who are Participants in the task, and some people who were Monitoring the task. Participants 
  102. actively contribute to the task execution while the monitors simply observe the activities of the task. 
  103. Each P-Task produces some Outputs from Inputs.
  104.  
  105. 3.    Articulation Tasks (A-Tasks) - the tasks that are carried out to fix breakdowns in P-Task executions. 
  106. A-Tasks result from some Problem, last for a certain Duration, have some people who are Involved 
  107. in fixing the problem, or carrying out the A-Task, and have some P-Tasks that are Affected by the A-
  108. Task. A-Tasks use some Resolution Strategy, e.g., relax the input constraints on the affected P-Task, 
  109. or change the representation language for a task's output.
  110.  
  111. 4.    Products - the results of P-Tasks or A-Tasks. In this iteration of the meta-process (see Figure 1), we 
  112. have a very high level view of the products, but this will be refined for subsequent iterations.
  113.  
  114. 3  Process History Analysis
  115.  
  116. The goal of the history analysis is to understand what happened in the process so that in the next iteration 
  117. we can remove the deficiencies of the history. We use three primary forms of analysis: (1) Goal Analysis 
  118. [2], (2) Task Analysis, and (3) Participant Analysis.
  119.  
  120. In the goal analysis, we evaluate the goals of agents working on a task with respect to the goals of the task 
  121. in the process. The hypothesis is that if the goals of the agents are not aligned with the goals of the task then 
  122. the task will not be successful. Also, we checked to see if the tasks had explicit goals that contributed to the 
  123. process goals.
  124.  
  125. In the task analysis, we analyze task attributes and relationships. For example, whether or not a task had a 
  126. single agent responsible for the task, or whether or not communication between concurrent and inter-
  127. dependent tasks was carried out successfully. In the participant analysis, we take opinions of participants in 
  128. the process history and highlight them for discussion in the process feedback stage. Based on the discussion 
  129. during the feedback, we can either adopt, modify, or discard the analysis. Participant analysis is more 
  130. subjective than goal and task analysis.
  131.  
  132. Note that none of these analyses techniques are specific to reuse as such. However, since they are being used 
  133. to discover and evolve a reuse-oriented process, the issues become relevant for this workshop.
  134.  
  135. 4  Some Early Results
  136.  
  137. As discussed earlier, we started the first meta-process iteration with an explicit process for developing the 
  138. first iteration of a kit. Based on our analysis of the history of the process, we discovered several problems 
  139. with the history, including problems of goal alignment, task responsibility, and concurrent task 
  140. synchronization. Based on this analysis, we were able to suggest a process for domain specific kit 
  141. production and consumption, which was much simpler than the process that we had for Kit0, and is shown 
  142. in . Note that this is just the first iteration through our meta-process, and is, therefore, an early result. We 
  143. expect this to be refined further as we go through more iterations of the meta-process. 
  144.  
  145. One interesting aspect of this process is that, since the team did not have any experience in the domain for 
  146. which the kit was being produced, it was necessary to prototype one application in the domain. Moreover, 
  147. the application prototype was useful throughout the process. For example, the prototype could be used as 
  148. an illustration for kit usage to help teach building new applications in the domain.
  149.  
  150. Another interesting aspect was the set of issues relating to the synchronization of the inter-dependent tasks 
  151. of domain analysis and kit design. We had first assumed that these tasks could be done in parallel with the 
  152. results of domain analysis feeding into the kit design. However, this model does not work, specially in the 
  153. short cycle times such as ours, because these activities seem to highly inter-dependent and each of them 
  154. requires substantial time. We are looking at alternative ways of synchronizing these tasks.
  155.  
  156. Figure 2: An Empirically derived Domain-specific kit production and consumption process
  157.  
  158. 5  Summary
  159.  
  160. In this paper we have posited that a meta-process is necessary for discovering and evolving software reuse 
  161. processes. We have presented one such meta-process along with its early experimental use. We anticipate 
  162. using this meta-process for a few more iterations to determine an empirically grounded domain-specific kit-
  163. based software production and use process.
  164.  
  165. 6  Acknowledgments
  166.  
  167. We thank the participants of the kit production team from HP Labs for their patience in letting us intrude 
  168. and observe their process. We thank Lew Creary and Allan Shepherd for their extensive comments on 
  169. earlier versions of this paper. We thank Dan Berry of the Software Engineering Institute for his feedback on 
  170. this work. We thank Martin Griss and Kevin Wentzel for their support of this project.
  171.  
  172. References
  173.  
  174. [1] B. I. Blum, Software Engineering: A Holistic View, Oxford University Press, New York, NY, 1992.
  175.  
  176. [2] B. W. Boehm, Software Engineering Economics, Chapter 3, Prentice-Hall, Englewood Cliffs, NJ, 1981
  177.  
  178. [3] P. K. Garg, "Process Modeling of Software Reuse", In Proceedings of the 5th International Workshop 
  179. on Institutionalizing Software Reuse, Palo Alto, October 1992.
  180.  
  181. [4] W. Humphrey, Managing the Software Process, Addison-Wesley, Reading, MA, 1989.
  182.  
  183. [5] P. Mi and W. Scacchi, "A Knowledge-Based Environment for Modeling and Simulating Software 
  184. Engineering Processes", IEEE Transactions on Knowledge and Data Engineering, Vol. 2, No. 3, Sept,1990.
  185.  
  186. [6] G. A. Rummler and A. P. Brache, Improving Performance: How to Manage White Space on the 
  187. Organization Chart, Jossey-Bass Inc., San Francisco, CA 94104, 1990.
  188.