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 / cohen.detex < prev    next >
Text File  |  1992-04-27  |  24KB  |  467 lines

  1.  
  2.  
  3.    Process and Products for Software Reuse and Domain Analysis 
  4.  
  5. Sholom Cohen 
  6. Software Engineering Institute  
  7. Carnegie Mellon University 
  8. Pittsburgh, PA 15213   
  9. email: sgc@sei.cmu.edu 
  10.  
  11.   
  12.                 Abstract
  13.  
  14. The adoption of reuse into software development will include the definition of
  15. new products and processes.  On the product side, we must identify the form of
  16. deliverables that can support reuse; on the process side, the approach needed
  17. to develop and apply those products.  In order to move from the current, 
  18. ad-hoc approach to reuse, to a systematic reuse process, we must be able to 
  19. both abstract a problem domain and create reusable solutions.  The solutions 
  20. can then be used in the development of a range of systems in the domain.
  21.  
  22. Each of the next three sections will examine the processes and products that
  23. can lead to successful reuse.  The first process, one widely used today, is to
  24. adapt an existing system to meet a new set of requirements.  The second, a
  25. relatively new practice, identifies families of programs, providing support for
  26. parameterization of commonality, and customization for unique requirements. 
  27. The third process is an abstract-based engineering approach to discover and 
  28. exploit commonality in software systems as the basis for software development.  Figure 1 compares these three approaches.
  29.  
  30. Each process offers its own set of benefits and risks.  The adaptive approach
  31. (Figure 1-a) requires little new investment by an organization, and, can 
  32. support new developments, provided they require only incremental changes from 
  33. previous applications.  However, applications that require major modifications 
  34. and upgrades typical of most aerospace applications, will only achieve 
  35. marginal benefits from adapting old software.  The parameterized approach 
  36. (Figure 1-b) establishes a framework for all new implementations, a major 
  37. investment for an organization.  There is a significant pay-off, provided the 
  38. framework is stable.  However, in areas with rapidly evolving technology, there is no stable framework.  The investment in establishing standard products may 
  39. be at risk if new requirements do not fit previously established standards.  
  40. Like the parameterized approach, engineered reuse  (Figure 1-c) requires a 
  41. large investment.  The domain resources must meet the requirements of a wide 
  42. range of applications or this investment will also be at risk.  If the 
  43. resources are properly developed this approach offers a greater degree of 
  44. flexibility than the parameterized method, and can adapt to changing 
  45. requirements.  The following discussion explores each approach in depth.
  46.  
  47.  
  48.  
  49. 1  The Adaptive Approach to Software Reuse 
  50.  
  51. The most common form of reuse in practice is the sharing of design and
  52. code between similar projects.  Most organizations performing software
  53. development build new applications using previous developments as a starting
  54. point.  In some cases, such as prototyping or modification, this adaptive
  55. approach is planned, and reuse of software is a natural occurrence.  In others,
  56. the ability to reuse software from one development to the next is assumed, but
  57. often not fully realized due to inconsistencies between current and previous
  58. projects.  
  59.                                                                        
  60. In adapting previous designs to new requirements, developers must be aware that 
  61. these new requirements will mean significant modification to the existing
  62. application.  If the application was not built to support subsequent
  63. modification and reuse, the adaptation may be as costly as a complete redesign. 
  64. This was the lesson learned from the P-7A project, and it applies in software
  65. development, as well.
  66.  
  67. A process model for adaptive software reuse (Figure 1-a) shows different paths 
  68. that this approach may support.  For example, a developer may wish to modify an existing software system to incorporate new requirements. The software taken 
  69. from the original system is ``reused software,'' in the sense that it has come 
  70. from a previous development.  Similarly, when porting an existing system to a 
  71. new platform, developers reuse the old software, making necessary changes to 
  72. achieve compatibility.  While the reuse of software not explicitly designed for reuse has been called ``software scanvenging'' such reuse is very common 
  73. [Trac90].
  74.  
  75. The adaptive approach can be systematized for process improvement by:
  76.  
  77. * Applying standard software engineering techniques to build modular software 
  78.   to increase adaptability
  79.  
  80. * Classifying existing software by projects, and indexing that software to 
  81.   increase awareness and lead to more effective reuse
  82.  
  83. * Organizing test and evaluation software to support decisions about 
  84.   applicability
  85.  
  86. * Utilizing CASE tools and re-engineering to facilitate customization and
  87.   integration of reused and new software
  88.  
  89.  
  90. While the adaptive process can be ad hoc, these steps will improve the value of
  91. existing software and increase the ability to reuse that software.
  92.  
  93.  
  94.  
  95. 2  Parameterized Reuse and Program Families 
  96.  
  97. The identification of classes of program families can lead to significant
  98. levels of reuse.  This approach has proved to be extremely successful in 
  99. organizations that deliver large systems to a broad range of customers to meet
  100. similar sets of requirements.  The successes in reuse attributed to the
  101. Japanese all stem from establishing a common architecture for a family of
  102. systems that can be applied through parameterization to a wide class of users.
  103.  
  104. This approach is illustrated with a particular program family, that of the
  105. Air Traffic Control (ATC) system.  The reuse work on these systems done by
  106. Thomson-CSF shows the potential payoff of the parameterized form of reuse. 
  107. The approach is illustrated in Figure 1-b.  Under this process, standard 
  108. products can be used to create new systems, through parameterization. A second 
  109. use of these products is for more traditional reuse, following the adaptive 
  110. approach.
  111.  
  112.  
  113.  
  114. 2.1  Identifying the family 
  115.  
  116. The successful identification of a family of related systems in the ATC domain
  117. is illustrated by by reuse technology developed by the Thomson-CSF company. 
  118. The first step in applying the process to the ATC domain is to scope the domain
  119. according to its generic properties (i.e., what features do all systems in the
  120. domain have in common).  The feedback diagram of Figure 2 illustrates the 
  121. common features of most ATC systems.
  122.  
  123. The real world environment, labeled Actual System State, consists of all of
  124. the entities controlled or used by the ATC system.  These entities include:
  125. aircraft, radars, flight planning operational input, weather reports, etc.  The
  126. data managing function must handle these entities, organizing them into a
  127. coherent representation of the system state, and making them available to other
  128. system functions.  The long-term planning function will use this data to
  129. establish the desired state for the area controlled by the ATC system over a
  130. long-term (on the order of hours) basis.  The controlling function performs
  131. similar operations, over a duration measured in minutes.  Commands from the
  132. controlling function to effect the desired system state go to system elements,
  133. such as aircraft or to the database to update the current state.  These
  134. commands will, indirectly, update the actual system state, as well.
  135.  
  136. By illustrating the primary components of an ATC system, the feedback diagram
  137. provides support for scoping the domain for further analysis.  In the work done
  138. by Thomson-CSF, the domain of interest covered three areas:
  139.  
  140. 1. Radar operations: processing radar sensor return data to establish aircraft
  141.    tracks and reports.  This data is labeled as the sensor feedback from the
  142.    actual system state in Figure 2 and is handled by the data management 
  143.    function.
  144.  
  145. 2. Flight operations: flight plan, weather and other information forwarded to 
  146.    the ATC system.  This includes the data labeled as observer feedback in 
  147.    Figure 2 and also covers output labeled as element actions on the figure, 
  148.    which is also fed back to the data managing function.
  149.  
  150. 3. Operator interface: software facilitating the processing performed by ATC 
  151.    operators.  This interface permits the operator to obtain current 
  152.    information about the system state, via the data managing function, and to
  153.    perform controlling functions.
  154.    
  155.  
  156.  
  157. 2.2  Developing a parameterized architecture 
  158.  
  159. The next step in the parameterization process is to establish common 
  160. functionality and data flow within the domain areas defined within this scope. 
  161. Figure 3 illustrates the need of all ATC systems for both flight plan and radar tracking data in order to provide operators with the information required to 
  162. support air traffic control activities.  The figure also provides information 
  163. on the interfaces of components of the system and a context for each of the 
  164. three domain areas.
  165.  
  166. Recognizing that this functionality is common across a range of systems built
  167. for ATC, Thomson-CSF has constructed a generic architecture of large scale Ada
  168. components to implement new systems.  This architecture is represented in
  169. Figure 4, and currently accounts for 20% reuse among installed systems.  The 
  170. company hopes to achieve 50% reuse, the approximate figure also attained by 
  171. Japanese firms, by supporting reuse within the operator interface subsystem.
  172.  
  173. The Thomson-CSF architecture uses three sets of reusable packages in
  174. constructing its ATC systems.  These correspond to support packages for each of
  175. the three domain areas (radar, flight planning, operator interface) described
  176. above.  The domain analysis approach also supports identification of 
  177. commonality between the individual areas.  This commonality is captured in
  178. a common utilities package that is a part of the architecture within each
  179. domain area.
  180.  
  181.  
  182.  
  183. 3   Engineered Reuse 
  184.  
  185. While parameterized reuse is appropriate in mature domains, reuse in domains
  186. that rely on emerging technology cannot standardize at the same level of
  187. parameterization.  Applications within such a domain, sometimes called
  188. ``unprecedented applications,'' rely on new techniques such as domain analysis 
  189. to establish commonality and enable software reuse.  Implementation approaches,
  190. such as objected-oriented design and programming also play a significant role
  191. in the support of reuse.  These techniques form the process of Engineered
  192. Reuse, as shown in Figure 1-c.  Engineered reuse in terms of domain
  193. analysis is discussed below using the ATC problem as an example.
  194.  
  195.  
  196.  
  197. 3.1  Domain Analysis 
  198.  
  199. The systematic discovery and exploitation of commonality across related 
  200. software systems is a fundamental technical requirement for achieving
  201. successful software reuse.  Domain analysis is one technique that can be
  202. applied to meet this requirement.  By examining related software systems and
  203. the underlying theory of the class of systems they represent, domain analysis
  204. can provide a generic description of the requirements of those systems.  It can
  205. also propose a set of approaches for implementation of new systems in the class.
  206.  
  207. The development of complex aerospace software systems requires a clear
  208. understanding of desired system features and of the capabilities of those
  209. features.  Software reuse, which has long promised improvements in this
  210. development process, will become feasible only when the features and
  211. capabilities within the domain of a particular system can be properly defined
  212. in advance of formal software development of the system.  Thus,
  213. the need to develop domain analysis technology and apply it within specific
  214. software development programs is a factor that can promote software reuse for
  215. those programs.  
  216.    
  217.  
  218.  
  219. 3.1.1  Domain Analysis Process 
  220.  
  221. Domain analysis gathers and represents information on software systems that
  222. share a common set of capabilities and data.  Three basic activities
  223. characterize this process:
  224.   
  225. * Scoping: defining a domain for analysis
  226.  
  227. * Domain modeling: providing a description of the requirements met by software
  228.                    within the domain
  229.  
  230. * Architectural modeling: creating the software architecture(s) that implements
  231.                           a solution to the problems in the domain
  232.  
  233.  
  234. The domain analysis process must also be integrated into the more general
  235. process for software development.  The domain analysis can then support
  236. implementation of applications in the domain, creation of reusable resources,
  237. and support for creation of domain tools and training.  Figure 5 illustrates 
  238. the support that domain analysis provides to the software development process.
  239.  
  240.  
  241.  
  242. 3.1.2  Domain Analysis Products 
  243.  
  244. The domain analysis method should provide specific representations to document
  245. the results of each of the domain analysis activities.  These representations
  246. should describe the problems solved by software in the domain and architectures
  247. that can implement solutions.  
  248.  
  249. For each of the three phases of the domain analysis process, there is a
  250. separate set of representations or views of the domain.
  251.   
  252.  
  253. * Scoping: The results of this phase should provide the context of the domain. 
  254.   This requires representing the primary inputs and outputs of software in the 
  255.   domain as well as identifying other software interfaces.  Figure 2 
  256.   illustrates the scoping of the ATC domain.
  257.  
  258. * Domain modeling: The products of this phase describe the problems addressed 
  259.   by software in the domain.  The products provide the typical vocabulary of 
  260.   domain experts, document the entities embodied in software, and establish 
  261.   generic software requirements via control flow, data flow, and other 
  262.   specification techniques.  Figure 3 supports domain modeling.
  263.  
  264. * Architectural modeling: This phase establishes the structure of 
  265.   implementations of software in the domain.  The purpose of these 
  266.   representations is to provide developers with a set of models for 
  267.   constructing applications.  They can also guide the development of libraries 
  268.   of reusable components.  Figure 4 provides the basis of a common architecture
  269.   for ATC systems.
  270.  
  271.  
  272. The next subsection describes a specific method for domain analysis that covers
  273. the three phases of domain analysis.
  274.  
  275.  
  276.  
  277. 3.2  Feature-Oriented Domain Analysis 
  278.  
  279. The Software Engineering Institute is currently refining a method for 
  280. discovering and representing commonalities among related software systems 
  281. [Kang90].  The Feature-Oriented Domain Analysis (FODA) method stresses the 
  282. identification of prominent or distinctive features of a software system. These features are user-visible characteristics of the domain and include both common aspects of the domain as well as differences among related systems in the 
  283. domain.  Features are also used to define the domain in terms of the mandatory, optional, and alternative characteristics of these related systems, leading to 
  284. the creation of a feature model.  The feature model establishes rationale for 
  285. selecting a feature, rules concerning the composition of two or more features, 
  286. and the effect of binding time of a feature within an application.
  287.  
  288.  
  289.  
  290. 3.2.1  The feature model concept 
  291.  
  292. Figure 6 illustrates each of the concepts regarding features, their
  293. interrelationships and attributes:
  294.  
  295. * Horsepower and transmission are mandatory features.  All cars must have a 
  296.   power supply and a way to turn that power into forward motion.
  297.  
  298. * Air conditioning is an optional feature.
  299.  
  300. * The selection of manual or automatic transmission represents a choice between
  301.   alternative features.
  302.  
  303. * If the air conditioning feature is selected, it may require a more powerful
  304.   engine, illustrating the concept of composition of features.
  305.  
  306. * The choice between transmission features could be based on issues such as 
  307.   fuel efficiency or ease of operation. 
  308.                            
  309. * The choice of transmission may be bound, i.e., installed, at the factory. 
  310.   Porsche, however, offers a special feature called the Tiptronic transmission,
  311.   that offers binding of the transmission feature while the car is in operation.
  312.   The driver may select automatic transmission for ease of operation in heavy
  313.   traffic and can  shift to manual for open road driving.
  314.  
  315.  
  316. The next subsection describes the application of the feature method to
  317. domain analysis.  A domain analysis of window manager software, fully
  318. documented in [Kang90], illustrates the use of the method.
  319.  
  320.  
  321.  
  322. 3.2.2  Applying the feature method to domain analysis 
  323.  
  324. The FODA method establishes a context analysis phase as the process for 
  325. scoping a domain.  There are two products of this phase:
  326.  
  327. 1. Context diagram: data flow showing primary inputs and outputs of the domain. 
  328.    Figure 7 shows a context diagram for the window manager domain.  
  329.  
  330. 2. Structure chart: showing related software.  For the window manager domain, 
  331.    the structure chart shows the relationship between window manager software, 
  332.    other applications, graphical user interface software (e.g., OpenLook, 
  333.    Motif), toolkits, and programming interfaces (e.g., Xlib), protocols, 
  334.    servers, and clients.
  335.  
  336.  
  337. The products of the domain modelling phase define the operations, mission, and
  338. interfaces of the domain:
  339.   
  340. 1. Entity relationship model: defining the entities (objects) of the domain.  
  341.    For the window manager, these include the screen, main window, icon, pointer    and process.  The model also defines relationships and constraints on these
  342.    entities.
  343.  
  344. 2. Feature model: shows the operations and mission of software in the domain. 
  345.    For the window manager the operations include: create, destroy, move, 
  346.    resize, iconify (optional), deiconify (optional), etc.  This model also 
  347.    includes composition rules and textual documentation of feature definitions.    For example, if a window manager has the optional iconify feature, it must 
  348.    also have the deiconify feature.  Mission information includes information 
  349.    about user feedback, the ability to move windows off a screen, 
  350.    horizontal/vertical constraints on the move operation, etc.  Figure 8 shows 
  351.    the model of the window manager domain for the move feature.  The boxed in 
  352.    regions identify features of particular window managers.  Note the selection    of both alternatives under interactive feedback for the X10/uwm window 
  353.    manager; this illustrates a binding time attribute of the feature.  A user 
  354.    may select either type of feedback before executing the move.  In the other 
  355.    feature model, this binding to the feature occurs when the window manager 
  356.    is initiated; it cannot be changed during execution.
  357.  
  358. 3. Functional model: control and data flow for each operation in the domain
  359.  
  360. 4. Domain terminology: a dictionary of standard terms 
  361.  
  362.  
  363. The FODA report presents a method for defining an architectural model of the
  364. domain.  For the window manager domain, this architecture relies upon the Xlib
  365. and toolkit.
  366.  
  367.  
  368.  
  369. 4  Lessons Learned 
  370.  
  371. The methods and products of both the parameterized and engineered processes can
  372. lead to successful reuse.  Under both approaches, the goal is to create a
  373. common structure for application development.  For air traffic control systems, this structure was the basic architecture for a complete implementation; from 
  374. this base level, up to half of a system can be built. Using these two 
  375. approaches for guidance, reuse methods can succeed when:
  376.  
  377. 1. The domain of applicability is appropriate, large enough to meet the needs 
  378.    of typical applications, yet tractable in scope;
  379.  
  380. 2. The analysis attempts to abstract the requirements from the application 
  381.    level (ATC or window manager) to the problem level (control of system 
  382.    state); and,
  383.  
  384. 3. The products provide documentation of the problem abstraction and guidance 
  385.    in tailoring the abstraction to meet specific requirements.
  386.  
  387.  
  388. Nonetheless, software reuse does not come without some costs.  The building of
  389. reusable resources, or of mechanisms to improve reuse of existing resources,
  390. requires a major investment.  Furthermore, the reuse process must limit or
  391. eliminate inappropriate reuse.  A failure in reuse engineering could result if:
  392. the wrong software is assumed capable of reuse in a new development, or
  393. reusable software is used incorrectly in a new development
  394.  
  395. There are several general goals that must be addressed to achieve a successful
  396. method for domain analysis, as well.
  397.  
  398. * Developing domain analysis products to support implementation of new 
  399.   applications.  This goal will be met when domain analysis products are used
  400.   in new implementations.             
  401.  
  402. * Establishing domain analysis methods to produce these products.  This goal 
  403.   will be met when domain analysis methods are incorporated into the software
  404.   development process.
  405.  
  406.  
  407. Given the results of domain analysis, the process of engineered reuse must now
  408. create specific resources--software components.  The application of reuse 
  409. design principles is covered in several other technical reports [Cohe90, 
  410. Palm90].
  411.  
  412. A model of software reuse must include both a process and products to ensure
  413. the availability of the correct software and support for using it correctly. 
  414. The software engineering community must identify a standard process for
  415. developing and applying software for reuse to overcome technical barriers to
  416. the widespread adoption of reuse.  The product development must promote a
  417. common understanding of: (1) the problem space of applications in a domain; and
  418. (2) the solution space for implementing new applications.
  419.  
  420. To establish an appropriate model for reuse, the software engineering
  421. community can take the following steps:
  422.   
  423. * identify major application areas appropriate for establishing a model of the
  424.   problem domain and its context 
  425.  
  426. * perform analyses of these problem domains (i.e., domain analysis)
  427.  
  428. * establish one or more generic architectures that can be used for 
  429.   implementation of applications in each domain (i.e., architecture modelling)
  430.  
  431. * establish and adopt a common approach to design for reuse in Ada
  432.  
  433. * build resources to support reuse (e.g., code generators, components, 
  434.   reference models) within and across domains
  435.  
  436. * provide guidance to the practitioner through handbooks that capture reuse
  437.   knowledge and document the means of applying that knowledge [Trau89].
  438.  
  439.  
  440. These steps can help advance the state of the technology of reuse from its
  441. current    ad hoc  position to a managed and controlled state.  Moreover, by
  442. building reuse into an overall model for software development, these steps
  443. will promote an approach to software engineering that is built upon reuse
  444. technology. 
  445.  
  446.  
  447.  
  448. References
  449.  
  450. [Cohe90]  Sholom, G. Cohen.  Ada Support for Software Reuse , Special report
  451.           CMU/SEI-90-SR-16, Software Engineering Institute (also available
  452.           via ftp from ajpo.sei.cmu.edu), Pittsburgh, PA, October, 1990.
  453.  
  454. [Kang90]  Kyo C. Kang, Sholom Cohen, James A. Hess, William Novak, A. Spencer
  455.           Peterson.  Feature-Oriented Domain Analysis (FODA) Feasibility Study.           Technical report CMU/SEI-90-TR-21, Software Engineering Institute, 
  456.       Pittsburgh, PA, November, 1990.
  457.  
  458. [Palm90]  Constance Palmer, et al. Developing and using Ada parts in real-time 
  459.       embedded applications .  CAMP-3 Report Contract No. F08635-88-C-0002,           McDonnell Douglas Astronautics Company, St. Louis, MO, April, 1990.
  460.  
  461. [Trac90]  William Tracz.  Where does reuse start?  ACM SIGSOFT Software 
  462.       Engineering Notes  15(2):42-46, April, 1990.
  463.  
  464. [Trau89]  Joseph Traub.  Scaling up: a research agenda for software 
  465.       engineering.  National Research Council. National Academy Press, 
  466.       Washington, D.C., 1989.
  467.