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 / harris.detex < prev    next >
Text File  |  1992-04-29  |  12KB  |  258 lines

  1.  
  2.    Increasing Reusability through Architectural Design 
  3.  
  4.    Kim Harris, Software Reuse Program Manager 
  5.    Hewlett Packard Company, Corporate Engineering 
  6.    1801 Page Mill Rd., MS 18DG, Palo Alto, CA 94304 
  7.    Telephone 415-857-7771, FAX 415-857-2631   
  8.    email: kimh@hpcea.ce.hp.com 
  9.  
  10.  
  11.  
  12.                               Abstract
  13.  
  14.    The design of good, reusable architectures is essential to effective 
  15.    software reuse among applications in a product family.  The goals of an 
  16.    architecture improvement process and good architectures are presented.  An 
  17.    example of a reusable architectural design is described.  Both the process 
  18.    and artifacts of the architecture are included.
  19.  
  20.  
  21.    Keywords: domain analysis, reusable architectures, object-oriented analysis,              object-oriented design
  22.  
  23.  
  24.  
  25. 1   The Hewlett Packard Software Reuse Program 
  26.  
  27. The objective of the Software Reuse program at Hewlett Packard is to 
  28. institutionalize software reuse in selected business areas within the company.  The program has a small staff of people at a central Corporate Engineering 
  29. organization, and it works with several pilot projects in operating divisions.  We are emphasizing reuse across a vertical span of domains from the application domain through low-level implementation domains.  We are also focusing on 
  30. external library, black box reuse of complete workproducts which have been 
  31. explicitly designed for reuse.  The design of software architectures for 
  32. specific application domains and product families is key to a successful reuse 
  33. program in a large company like HP.
  34.  
  35.  
  36.  
  37. 2  Software Architecture Objectives 
  38.  
  39. To improve the state of architecture designs, we need:
  40.  
  41.   * quality objectives for a software architecture
  42.  
  43.   * metrics and review processes for evaluating architectures
  44.  
  45.   * graphical notation systems for documenting and communicating architectures
  46.  
  47.   * processes for designing architectures.
  48.  
  49.  
  50. Some quality objectives of good software architectures include:
  51.  
  52.   * complete functional coverage of application domain(s)
  53.  
  54.   * consistent treatment of functions within the architecture
  55.  
  56.   * flexibility to adapt to different products in an application domain
  57.  
  58.   * clean separation of responsibilities between components to ensure that side     effects are minimized and documented, protocols are functionally focused, 
  59.     and the coupling between modules is loose and cohesion is strong
  60.  
  61.   * loose constraints that do not assume or preclude lower domain decisions 
  62.     such as: concurrency, data structures and algorithms, i.e., allows such 
  63.     decisions to be made, evaluated and changed without changing the 
  64.     architecture
  65.  
  66.   * measurable and predictable performance, effort and generality.
  67.  
  68.  
  69. There are several approaches to achieving these objectives.  One is a top-down 
  70. process where architectural principles are derived from the objectives.  
  71. Another is a bottom-up approach which captures, classifies and catalogs 
  72. architectural styles, cliches and notations and then synthesizes common 
  73. abstract principles with reproduce the cataloged artifacts.  Both approaches 
  74. are important.
  75.  
  76.  
  77.  
  78. 3   An OO Architecture for Instrument Measurement and Control 
  79.  
  80. An example of an interesting software architecture comes from the ATUX project 
  81. recently designed at HP [Harr91]. This paper will describe both the key 
  82. elements of the architecture and the process used to design it.
  83.  
  84. First, the project team performed a domain analysis on the applications 
  85. developed by the Instrumentation Department of the Optoelectronics Division at 
  86. Hewlett Packard Co.  The department builds Test and Measurement (T&M) systems 
  87. that test optoelectronic products manufactured in HP factories.  A scope of 80
  88.  
  89. The domain analysis consisted of analyzing three examples in the application 
  90. family: the simplest (a single LED), a representative middle case (a 
  91. multicharacter display assembly), and the most complex case (an LED replacement for a laser engine in a ``laser printer'').  The engineers in the project team 
  92. had only partial domain knowledge.  Additional domain experts were interviewed 
  93. to complete the domain analysis.
  94.  
  95. An example of a product in the middle category is described in Figure 1.
  96.  
  97.  
  98.       A 4 digit LED display assembly.  Each digit has 7 LED segments.
  99.  
  100.                                     Physical Assembly
  101.  
  102.          Display              -----------------------------
  103.            | 1                |   __ |   __ |   __ |   __ |
  104.            |                  |  /_/ |  /_/ |  /_/ |  /_/ |
  105.            | 4                | /_/  | /_/  | /_/  | /_/  |
  106.          Digit                |______|______|______|______|
  107.            | 1
  108.            | 
  109.            | 7
  110.         Segment
  111.                                 
  112.                 Figure 1
  113.  
  114.  
  115. Entity Relationship (ER) diagrams were used as domain models.  An object-
  116. oriented analysis and design process was followed which was adapted from the 
  117. OOA process by Mellor and Shlaer [Shla88].  In the ER diagrams, the entities 
  118. are objects (instances) and most of the relations are ``uses-a.''  The main 
  119. goal of the modeling was to organize solution-space functions into layers in 
  120. order to facilitate interoperability of modules in each layer and the reuse of 
  121. components.  See Figures 2 and 3 for the domain models for the simplest and 
  122. most complex cases.
  123.  
  124.  
  125.  
  126. 4  Responsibility-based layers 
  127.  
  128. From the domain models, class hierarchies for the application domain classes 
  129. were identified.  Each layer had a different purpose (functionality), temporal 
  130. duties, and persistence of its data.  These properties are shown in Figure 4.  
  131. The abbreviation UUT stands for ``Unit Under Test'' (i.e., the device on which 
  132. measurements are being made).
  133.  
  134.  
  135. Layer           Purpose                         Data persistence
  136.  
  137. Test            Test sequence                    Whole UUT
  138. management      Pass/fail decision               Fetch/store data base
  139.  
  140.  
  141. UUT Topology    Electrical Whole UUT
  142.                            connectivity
  143.                            Hierarchical         Local to component of UUT
  144.                                      composition
  145.                            Geometry, location
  146.                            Comparing limits
  147.  
  148. Virtual              Set measurement      Each measurement
  149. Instrument     conditions
  150.                            Read results
  151.                            Timing: trigger,
  152.                            intervals
  153.                            Instrument topology
  154.                            Calibration:         Calibration: whole
  155.                            engineering units     session
  156.  
  157. Instrument     Instrument modes,                Each measurement by 
  158. Drivers        limits, controli             instrument
  159.                      Communication with
  160.                      each instrument
  161.                      Error detection/
  162.                      recovery
  163.                            Calibration:         Calibration: whole
  164.                            engineering units     session
  165. Hardware
  166. Instruments
  167.  
  168.                                 Figure 4
  169.  
  170.  
  171. The lowest-layer contains the instrument drivers.  There is a 1:1 
  172. correspondence between drivers and physical instruments.  The next higher
  173. layer is the result of a design abstraction: the virtual instrument layer.
  174. It allows application domain measurements to be made by combinations of more 
  175. primitive hardware instruments.  The UUT Topology layer is actually a variable 
  176. number of sub-layers which have the responsibility of agglomerating measured 
  177. data.  The classes in these layers mirrored the topology of the products being 
  178. measured.  Refer back to Figure 1 for an example.  The top layer(s) provided 
  179. management of the measurement sequencing and communication to other tasks.  The interfaces between layers were defined as architecture standards for this 
  180. application, and they were implemented using Abstract Base Classes (ABC's).  An example of this class design is shown in Figure 5.
  181.  
  182. Following the design of the application domain classes, lower domain classes 
  183. (such as service and computer science classes) were added to the design.  They 
  184. were mapped onto a client-server architecture containing three nodes as shown 
  185. in Figure 6.
  186.  
  187.  
  188.                   Test                        User Interface
  189.                 Subsystem                        Subsystem
  190.                  Process                          Process
  191.                         \                            /
  192.                          \                          /
  193.                           \                        /
  194.                            \                      /
  195.                             \                    /
  196.                              \                  /
  197.                                   Data Base
  198.                                   Subsystem
  199.                                    Process
  200.  
  201.  
  202.                                   Figure 6
  203.  
  204.    
  205.  
  206. 5  Parasite Classes 
  207.  
  208. Another architectural technique used was the design and application of parasite classes.  Parasite classes were used to perform functions such as persistence, 
  209. real-time control and tracing and debugging.  Parasite classes have the same 
  210. interface and protocol as the main application classes they can be attached to. They were derived from the ABC's that defined the layer interfaces.  They 
  211. allowed optional functionality to be included without changing the application 
  212. classes.  For example, to add Unix real-time control to an application class, 
  213. the appropriate parasite class was dynamically linked in front.  Any messages 
  214. sent to the application class were first received by the parasite.  It 
  215. performed its function (i.e., change the real-time priorities), then passed 
  216. the messages along to the application class.
  217.  
  218. To facilitate rapid configuration of all classes including the optional 
  219. parasites, a glue language utility was created that controlled the construction of all instances and initialized attributes and pointers to complete a running 
  220. system.
  221.  
  222.  
  223.  
  224. 6  Conclusions 
  225.  
  226. The first application product developed met expectations, and most of the 
  227. architectural goals were archieved.  The interfaces between most layers were 
  228. fixed for all products in the application family.  However, the team was unable to define a single interface between the lowest two layers because of 
  229. performance requirements.  The reusability of the architecture has not been 
  230. verified because the software platform has not yet been used to develop 
  231. multiple application products.
  232.  
  233.  
  234.  
  235. References
  236.  
  237. [Harr91]  Harris, K.R., Using Object-Oriented Methods to Develop Reusable 
  238.       Software for Test & Measurement Systems: a Case Study, Proceedings of 
  239.       the First International Workshop on Software Reusability, SWT Memo   
  240.       #57, Universitat Dortmund, June 1991
  241.   
  242. [Shla88]  Shlaer, Sally and Mellor, Stephen, ``Object-Oriented Systems 
  243.       Analysis, Modeling the World in Data'', Yourdon Press, 1988.
  244.  
  245.  
  246.  
  247. 7  About the Author 
  248.  
  249. Kim Harris is the manager of Hewlett-Packard's corporate-wide software reuse 
  250. program.  He has over 20 years experience in the areas of computer software, 
  251. hardware, architecture, training and management.  Mr. Harris has worked with 
  252. microcomputers, minicomputers and supercomputers.  He has developed scientific 
  253. applications, real-time applications, operating systems, compilers and graphics software.  He has published over 20 papers in the technical and popular press.  He received an M.S. degree from Purdue University and a B.S. degree in Physics 
  254. from Louisiana State University.
  255.  
  256. His current interest and research areas include: software engineering, process, architecture, metrics, reuse, management, education, object oriented 
  257. programming, and domain analysis.
  258.