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 / davis.detex < prev    next >
Text File  |  1992-04-28  |  21KB  |  410 lines

  1.  
  2.  
  3.                      STARS Framework for Reuse Processes 
  4.  
  5. Margaret J. Davis 
  6.          
  7. Boeing Defense   Space Group 
  8. P.O. Box 3999 MS 87-37 
  9. Seattle, Washington 98124-2499 
  10. mjdavis@stars.boeing.com 
  11.     
  12.  
  13.                     Abstract
  14.   
  15. Incorporation of reuse concepts into software-intensive systems
  16. development so that reuse becomes systematic requires guidance as to
  17. what constitutes reuse-based activities.  The reuse process framework
  18. discussed in this article provides a common viewpoint for considering,
  19. defining, composing, and applying reuse-based activities. The
  20. framework is based on the notion that discrete process units can be
  21. well-defined and can be composed into broader, consistent process
  22. contexts such as life cycle models.  The framework is asset-centered
  23. and is tailorable to the needs of specific organizations, specific
  24. domains, and specific projects.  The framework is also independent of
  25. any life cycle model style such as waterfall or spiral.
  26.  
  27.  
  28. Keywords:  reuse processes, reusable assets, reuse-based development
  29.  
  30.  
  31.  
  32. 1   Introduction   
  33.  
  34. The Software Technology for Adaptable, Reliable Systems (STARS) program
  35. has articulated a mission to accelerate the shift to a ``process-driven, 
  36. domain-specific reuse-based, technology-supported''  development paradigm for 
  37. software-intensive DOD systems. In support of this mission, the three STARS' 
  38. prime contractors (Boeing, IBM, and Unisys) are jointly developing a 
  39. description of the reuse aspects of such a software development paradigm.  This description is captured in an evolving document called the STARS Reuse Concept 
  40. of Operations.  The focus of version 0.5 [1], a recently-released first draft, 
  41. is a framework for considering and defining reuse supporting process building 
  42. blocks and for composing these building blocks into broader contexts such as 
  43. reuse-based organizational strategies and product life cycles.  The remainder 
  44. of this paper gives an overview of that reuse process framework.
  45.  
  46.  
  47.  
  48. 2  Reuse Process Framework Overview 
  49.  
  50. STARS has identified functions and processes supporting reuse in the context 
  51. of software-intensive system development and maintenance. Further, these reuse 
  52. supporting activities have been organized into a process framework containing 
  53. four families of processes.  The names of these families emphasize the primary 
  54. purpose of each.  The reuse process families (see Figure 1) are:
  55.   
  56.   * reuse planning;
  57.   * asset creation;
  58.   * asset management; and,
  59.   * asset utilization.
  60.  
  61.  
  62. The families of the reuse process framework can be decomposed further to 
  63. identify processes and functions focusing on different aspects of each family's purpose.  Individual organizations may use different decompositions of these 
  64. families to suit their goals and business strategies.  Brief descriptions of 
  65. processes in the decomposition currently being used by STARS are given in
  66. following sections 2.1, 2.2, 2.3, and 2.4.
  67.  
  68. The arrows in Figure 1 represent the extensive information flow, influence, and feedback among the four process families. In general, the arrows represent the 
  69. flow of decisions, constraints, experience lessons, and assets.
  70.  
  71. As the figure shows, inputs to the reuse process framework are market forces, 
  72. existing assets, systems, domain expertise, and tools. A market force is 
  73. defined as requirements or needs of any intended customer. Software systems, 
  74. software architectures, software components, asset libraries, experience 
  75. reports, domain analysis results, and domain models are examples of the output 
  76. software and related products shown in the figure.
  77.  
  78. The results of the asset planning  processes feed separately into the asset 
  79. creation, asset management, and asset utilization process families.  Planning 
  80. processes set goals and strategies, select and effect the tailoring of 
  81. processes consistent with the goals and strategies, and identify and allocate
  82. existing resources.  The asset creation process family produces software and 
  83. software related assets.  The asset management process family evaluates, 
  84. describes, and organizes the assets provided by the asset creation process 
  85. family.  The asset utilization  process family accesses the organized assets
  86. to construct software-intensive systems. 
  87.  
  88. Lessons learned regarding the usage, applicability, quality, and reusability of assets are feedback from the asset utilization processes to the asset 
  89. management  processes.  Lessons learned regarding missing assets or possible 
  90. asset generalizations are feedback from the asset utilization processes into 
  91. the asset creation processes.  Lessons learned regarding asset quality and
  92. description are feedback from the asset management  processes to the asset 
  93. creation  processes.  Needs for new assets; lessons learned regarding process 
  94. usage, applicability, and quality; and new process assets are feedback from the asset creation, asset management, and asset utilization processes into the 
  95. asset planning  processes.
  96.  
  97.  
  98. 2.1  Reuse Planning 
  99.  
  100. An important function of the planning activity in Figure 1 is to define a reuse strategy and plan for its implementation within the organization that is 
  101. undertaking a reuse program.  A second function is to implement the strategy in plans and processes for a specific project.  A related function is to measure
  102. and evolve the process for executing the plans.  Note that many of the planning
  103. activities and products are appropriate at both the organizational and specific project levels.
  104.  
  105.   
  106. 2.1.1   Reuse Strategy Development 
  107.  
  108. A reuse strategy is used to guide the asset creation, management, and 
  109. utilization processes. The activities required to define the strategy will 
  110. depend on the nature of the organization, e.g., whether it is a company 
  111. seeking to market reusable components or develop systems based on them, a DoD 
  112. Program Executive Officer establishing a reuse program for a given domain, a 
  113. Program Manager developing a specific system, or a maintenance organization.  
  114. The strategy will be influenced by the organization's goals and top level
  115. reuse policy.  The reuse strategy may define processes that identify, evaluate 
  116. and select domains for reuse; define a set of methods for asset creation that 
  117. are compatible with the methods for asset utilization; create plans for asset 
  118. creation, management, and utilization; and define goals to measure the 
  119. effectiveness of reuse.  A software reuse strategy may include, but is not 
  120. limited to, a domain selection method [2, 3], an asset creation plan, an asset 
  121. management plan, an asset utilization plan, and process and product 
  122. improvement plans.
  123.  
  124.  
  125. 2.1.2  Incorporation of Reuse Into the Project Process
  126.  
  127. If the parent organization of a specific reuse project has produced
  128. generic plans for asset creation, utilization, management, and process
  129. improvement, then incorporation of reuse into the project process
  130. is a matter of adapting those generic plans to the project's particular
  131. situation.  If no generic plans exist, specific plans for asset
  132. creation, utilization, management, and process improvement will need
  133. to be developed.  In either case detailed project specific plans will result.  
  134.  
  135.  
  136. 2.1.3  Process Measurement and Evolution
  137.  
  138. The reuse process measurement and evolution function receives input in the form of data captured about the asset creation, management, and utilization
  139. processes and products.  It also receives lessons learned, asset
  140. requirements, process requirements, and any other form of relevant
  141. feedback from individuals involved in those processes.  Feedback from
  142. the users of the software products is also input to this function.
  143. The process involves analysis of the input information; identification
  144. of problems and opportunities for improvement; development of
  145. solutions; identification of resources required to effect the
  146. solution; definition of changes to the process or products;
  147. modification of the plans and the process being followed; and
  148. measurement and analysis of the modified process.
  149.   
  150.  
  151.  
  152. 2.2  Asset Creation    
  153.  
  154. Since asset is a very broad term, the activities identified as asset creation 
  155. include domain analysis, domain modeling, software architecture/design 
  156. development, reverse engineering, design recovery, software component 
  157. development, application generator development, and source code translation.
  158. Furthermore, the encoded domain expertise and design rationale guide the 
  159. creation of software components, architectures, designs, and application
  160. generators.  That is, there is considerable interaction and feedback among 
  161. the members of the asset creation process family.
  162.  
  163.   
  164. 2.2.1  Domain Analysis and Modeling
  165.  
  166. The goal of domain analysis is to develop a domain model, reusable
  167. requirements, and domain variability description applicable to solution
  168. systems within the domain.  Note that domain is being used here in its broadest sense, i.e, as an area of activity or knowledge.  At a high level, domain 
  169. analysis is a combination of reverse engineering, knowledge extraction, 
  170. technology and requirements forecasting, and modeling.
  171.  
  172.  
  173. 2.2.2  Software Architecture Development 
  174.  
  175. The purpose of this activity is to produce an architecture that can
  176. be used to implement numerous systems for the domain as defined by
  177. the domain analysis. The process of architecture development seeks
  178. to identify a set of software components and their interactions that
  179. can support both the full and minimal set of domain services and objects [4].
  180.  
  181.  
  182. 2.2.3  Software Component Development  
  183.  
  184. The goal of this activity is to develop reusable software components
  185. that implement the previously developed domain-specific architecture.  Before 
  186. this activity is undertaken, reuse planning has already evaluated whether 
  187. component development is more appropriate than or complementary to application 
  188. generator development or use.  Reuse planning activities will also have 
  189. evaluated whether translation of code from legacy systems may also be 
  190. appropriate.
  191.  
  192.  
  193. 2.2.4  Application Generator Development 
  194.  
  195. The goal of application generator development is to provide a capability that 
  196. allows a reuser or application developer to create software (sub)systems using 
  197. the concepts and terms belonging to the domain. The point is to support the end user in stating ``what'' is desired rather than detailing ``how'' the desired 
  198. effect is to be achieved.  This ``what'' orientation can also be termed 
  199. requirements-based.
  200.  
  201.  
  202. 2.2.5  Asset Evolution 
  203.  
  204. The results of asset evaluations from the asset management and asset 
  205. utilization process families are feedback into the asset creation processes.  
  206. There should be explicit processes that receive and analyze these results with 
  207. the objective to enhance the appropriate domain model, software architecture 
  208. and components, and application generators.  The feedback may also be used to 
  209. improve or better tailor the processes of modeling, component and architecture 
  210. creation, and application generator development to the needs of particular 
  211. domains or organizations.
  212.  
  213.  
  214.  
  215. 2.3   Asset Management 
  216.  
  217. The goal of asset management is to acquire, evaluate, describe, and organize 
  218. reusable assets to assure their availability to asset creation and asset 
  219. utilization processes. Asset management is also responsible for asset library 
  220. administration and operation.  Asset management activities include asset 
  221. acquisition, asset acceptance, asset classification, asset cataloging, asset 
  222. certification, library and asset metrics collection, library administration and operation, and asset maintenance and enhancement.
  223.  
  224.   
  225. 2.3.1  Asset Acquisition 
  226.  
  227. The goal of asset acquisition is to obtain assets from external asset libraries and other sources in support of asset creation and asset utilization activities.
  228.  
  229.  
  230. 2.3.2  Asset Acceptance 
  231.  
  232. The goal of asset acceptance is to ensure that an asset satisfies all legal and policy constraints and that sufficient information is available to catalog the 
  233. asset.
  234.  
  235.  
  236. 2.3.3  Asset Classification 
  237.  
  238. The goal of asset classification is to develop a scheme for categorizing assets on the basis of their domain-relevant characteristics.  The classification 
  239. scheme provides library users with an organizational framework for locating and understanding domain assets.  This is distinct from the process (described 
  240. under asset cataloging below) of determining where a particular asset belongs 
  241. within the library classification scheme.
  242.  
  243.  
  244. 2.3.4  Asset Cataloging 
  245.  
  246. Asset cataloging is broken down into three steps:  asset categorization, asset 
  247. description, and asset installation.  Asset categorization (as distinguished 
  248. from the asset classification process discussed above) is the process of 
  249. determining where an asset belongs within the classification scheme.  Asset 
  250. description is the process of creating, capturing, or adapting all the 
  251. information that is needed to describe the asset in the context of the 
  252. library's data model, once the asset has been categorized.  Asset installation 
  253. is the process of installing the categorized and described asset in the 
  254. library system.  
  255.  
  256.  
  257. 2.3.5  Asset Certification 
  258.  
  259. The ultimate goal of asset certification is to guarantee that software assets 
  260. implement their requirements and that their execution will be error free in 
  261. their intended environment.
  262.  
  263.  
  264. 2.3.6  Library and Asset Metrics Collection
  265.  
  266. Library metrics are used to measure the effectiveness of library management 
  267. processes, tools, and policies.  Asset metrics are used to measure the 
  268. characteristics and effectiveness of individual assets, such as their 
  269. reusability.  The goal of collecting such measurements is to improve the 
  270. effectiveness of the library in supporting reuse processes within client 
  271. organizations.
  272.  
  273.  
  274. 2.3.7   Library Administration and Operation 
  275.  
  276. The goal of library administration and operation is to assure the availability 
  277. of the asset library for asset creation and asset utilization activities.
  278.  
  279.  
  280. 2.3.8  Asset Maintenance and Enhancement 
  281.  
  282. The goal of the asset maintenance and enhancement process is to iteratively 
  283. improve the assets in the library relative to user and domain needs.
  284.  
  285.  
  286.  
  287. 2.4  Asset Utilization 
  288.  
  289. There are two primary methods of asset utilization, corresponding to system 
  290. composition and system generation.  These two asset utilization methods are 
  291. complementary and can both be employed within the same domain or for a single 
  292. system development.  The other asset utilization processes (asset 
  293. identification, asset understanding/evaluation/selection, and asset
  294. tailoring/integration) are subordinate to the two primary asset 
  295. utilization methods and are approached differently within each method. 
  296.  
  297.   
  298. 2.4.1  System Composition 
  299.  
  300. Asset-based system composition is a process in which the software 
  301. engineer constructs new products (e.g., requirements, design, code, 
  302. tests, documentation) from previously developed or newly generated 
  303. parts.  This is typically done by identifying, understanding, 
  304. evaluating, and selecting appropriate generalized domain assets and 
  305. tailoring and integrating them to meet specific system needs.
  306.  
  307.  
  308. 2.4.2  System Generation 
  309.  
  310. System generation is a process for producing systems or subsystems that 
  311. ideally incorporates all the variation in a domain into a set of parameters 
  312. expressed in terms of a specification language or template.  A generation
  313. tool accepts specifications from engineers that define values for
  314. the domain parameters and resolves the variation accordingly to generate 
  315. components of the target system.  The specifications are generally
  316. non-procedural in nature and can be expressed in a number of different
  317. forms (e.g., textual, graphical, template-based, etc.).  These 
  318. specifications in effect define a set of specific target system 
  319. requirements that lie within a set of more generic domain requirements 
  320. represented by the specification language.  Thus, the target components 
  321. are derived directly from a specification of system requirements, which 
  322. is why generation is often referred to as requirements-based reuse.
  323.  
  324.  
  325. 2.4.3  Feedback to Reuse Planning, Asset Creation, and Asset Management 
  326.  
  327. For each reuse-based development effort, assets within the relevant domain(s) 
  328. will likely need to be updated based on feedback from asset utilization.
  329. If updates are appropriate, the domain model may be amended, new assets may be
  330. constructed, and other assets may be changed or deleted.  Similarly, each 
  331. reuse-based development effort should yield lessons that can be applied to 
  332. asset management within the domain.  Engineers' experiences with browsing and 
  333. querying the library may result in recommendations for refining or correcting 
  334. aspects of the library taxonomy or asset descriptions; experiences with the 
  335. tools used to facilitate asset understanding, tailoring, integration, and 
  336. generation may yield recommendations for additional tools or improvements to 
  337. the existing tools; problems with assets that were thought to be well-qualified may reveal inadequacies in the asset qualification process; lack of adequate 
  338. access to the remote libraries may result in recommendations for improved 
  339. library connectivity or interoperability.
  340.  
  341.  
  342.  
  343. 3  Using the STARS Reuse Process Framework 
  344.  
  345. Historically, organizations have based their software development plans on 
  346. methodology, technique, or tool selections made to implement an idealized 
  347. project life cycle rather than on process building block selections.  Indeed, 
  348. software development has mostly been considered as one gigantic waterfall life 
  349. cycle divided into major phases encompassing system conception to demise. In 
  350. contrast, STARS is promoting the concept that there are multiple, valid modern
  351. software life cycle models appropriate for different organizational goals,
  352. strategies, and strengths. That is, STARS is generalizing the concept of life 
  353. cycle model from a strategy for software system development to strategies for 
  354. software product development, where product includes components, interface and 
  355. protocol standards, architectures, domain models, application generators, and 
  356. systems.
  357.  
  358. As opposed to modeling and planning a development strategy around
  359. major activities and tools, the reuse process framework supports the
  360. notion of composing a life cycle model from process building blocks.
  361. We believe the benefits of this approach to be:
  362.    
  363.   * The ability to compose multiple, reuse-based life cycle models with 
  364.     different goals guided by the reuse process framework. 
  365.  
  366.   * Easier implementation and tailoring of life cycle models in support of 
  367.     individual domains, organizations, and engineers.
  368.  
  369.   * Easier management, measurement, monitoring, and improvement, of life cycle 
  370.     model implementations and improvement in life cycle models.
  371.  
  372.   * Identification of the similarities in appropriate methods, techniques, and 
  373.     tools supporting various life cycle models and processes.
  374.  
  375.  
  376. These benefits accrue because process building blocks are well-defined, may 
  377. have formal representations, have definite begin and end points, have definite 
  378. start and stop criteria, span a shorter time duration than life cycle phases, 
  379. and can be customized to available tools and environment support.
  380.  
  381.  
  382.  
  383. References
  384.  
  385. [1] STARS Reuse Concept of Operations, Version 0.5}, August 1991.  Unisys STARS     CDRL GR-7670-(NP).
  386.  
  387.  
  388. [2] Robert R. Holibaugh, Sholom G. Cohen, Kyo C. Kang, and Spencer Peterson.
  389.     Reuse: Where to Begin and Why.  In Proceedings of Tri-Ada '89, pp. 266-277,     New York, NY, October 1989. Association for Computing Machinery.
  390.  
  391. [3] A. Jaworshi, F. Hills, T. Durek, S. Faulk, and J. Gaffney.  A Domain 
  392.     Analysis Process.  Technical Report DOMAIN_ANALYSIS-90001-N, Software 
  393.     Productivity Consortium, SPC Building, 2214 Rock Hill Road, Herndon VA, 
  394.     22070, January 1990.
  395.  
  396. [4] D. Parnas.  Designing Software for Ease of Extension and Contraction.  IEEE     Transactions on Software Engineering, SE-5(2):128--138, March 1979.
  397.  
  398.  
  399.  
  400. 4  About the Author 
  401.  
  402. Ms. Margaret J. Davis is the technical lead for reuse on the Boeing STARS 
  403. project, which is sponsored in part by DARPA under USAF contract 
  404. F19628-88-D-0028.  Ms. Davis has served in a lead capacity on the Boeing STARS 
  405. project since its award in 1988. Prior to the STARS project, Ms. Davis was a 
  406. technical contributor to the Software GetPRICE program, which produced an 
  407. expert systems tool supporting systems integration testing, and to the Air
  408. Force contract that developed a Specification Technologies Handbook.  Ms. Davis has 18 years experience in software engineering and received an M.S. in 
  409. Computer and Information Sciences from the University of Delaware in 1984.
  410.