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 / gomaa.detex < prev    next >
Text File  |  1992-04-29  |  19KB  |  323 lines

  1.  
  2.        A Prototype Software Engineering Environment for 
  3.        Domain Modeling and Reuse.
  4.  
  5.  
  6.        H. Gomaa, L. Kerschberg, C. Bosch, V. Sugumaran, I. Tavakoli  
  7.          
  8.        Center for Software Systems Engineering  
  9.        Department of Information and Software Systems Engineering  
  10.        George Mason University  
  11.        Fairfax, Virginia  22030-4444 
  12.  
  13.  
  14.                           Abstract
  15.  
  16.   This paper describes a prototype software engineering environment which
  17.   has been developed at George Mason University to demonstrate the concepts
  18.   of domain modeling and software reuse.  The prototype environment, which
  19.   is application domain independent, is used to support the development of
  20.   domain models and the generation of target system specifications from them.
  21.   The prototype environment consists of an integrated set of commercial
  22.   off-the-shelf software tools and custom developed software tools.   
  23.  
  24.   Keywords: domain modeling, reuse, software engineering environments, object 
  25.         repository, requirements elicitation, knowledge-based tool support
  26.  
  27.  
  28.  
  29. 1  Introduction 
  30.  
  31. At George Mason University, a project is underway to support
  32. software engineering lifecycles, methods, and prototyping
  33. environments to support software reuse at the requirements
  34. and design phases of the software lifecycle, in addition to
  35. the coding phase.  A reuse-oriented software lifecycle, the
  36. Evolutionary Domain Lifecycle [Gomaa89, Gomaa91] has been
  37. proposed, which is a highly iterative lifecycle that takes an 
  38. application domain perspective allowing the development of families of 
  39. systems.  A domain analysis and modeling method has also been developed 
  40. [Gomaa90].  This paper describes the prototype software engineering 
  41. environment that has been developed to demonstrate these concepts.
  42.  
  43.  
  44.  
  45. 2  Domain Modeling 
  46.  
  47. An application domain is defined to be a collection of systems that share 
  48. common characteristics.  A domain model is used to capture common
  49. characteristics and variations among a family of software systems [Parnas79] 
  50. in a given application domain.  From the domain model, target systems can be
  51. generated by tailoring the domain model.  The concept of generating target 
  52. systems from an application domain model has been adopted by various 
  53. researchers [Batory89, Kang90, Lubars89, Pyster90]. 
  54.  
  55. Reuse is an important goal in domain modeling.  The primary objective of the 
  56. domain modeling approach to software development is to increase reuse, i.e., 
  57. not only code reuse, but also of domain knowledge such as domain requirements, 
  58. specifications and designs.
  59.  
  60. Applying the domain modeling method, the application domain is modeled by 
  61. means of the following views:
  62.  
  63.   * Aggregation Hierarchy.  The Aggregation Hierarchy is used to decompose 
  64.     complex aggregate object types into less complex object types eventually 
  65.     leading to simple object types at the leaves of the hierarchy.
  66.  
  67.   * Object Communication Diagrams. Objects in the real world are modeled as 
  68.     concurrent processes, which communicate with each other using messages.  
  69.     The object communication diagrams, which are hierarchically structured, 
  70.     show how objects communicate with each other.
  71.  
  72.   * State Transition Diagrams.  As each active object is modeled as a 
  73.     sequential process, it may be defined by means of a finite state machine 
  74.     and documented using a state transition diagram.
  75.  
  76.   * Generalization / Specialization Hierarchies.  As the requirements of a 
  77.     given object type are changed to meet the needs of a given target system, 
  78.     the object type may be specialized by adding, modifying or suppressing 
  79.     operations.  The variants of a domain object type are stored in this 
  80.     hierarchy.
  81.  
  82.   * Feature / Object Dependencies.  This view shows for each feature (domain
  83.     requirement) the object types required to support the feature.
  84.  
  85.  
  86. The domain modeling method has been applied to developing a domain model for 
  87. NASA's Payload Operations Control Center (POCC) Domain.
  88.  
  89.  
  90.  
  91. 3  Prototype Software Engineering Environment 
  92.  
  93. 3.1  Overview 
  94.  
  95. A prototype Software Engineering Environment is being developed, which 
  96. consists of an integrated set of software tools that support domain modeling 
  97. and the generation of target system specifications.  In order to expedite 
  98. development of the prototype, the environment uses commercial-of-the-shelf 
  99. software as well as specially developed software.  We are using IDE's Software
  100. Through Pictures CASE tool to represent the multiple views of the domain model, although semantically interpreting the views according to the domain modeling 
  101. method. The information in the multiple views is extracted, checked for 
  102. consistency, and stored in an object repository.
  103.  
  104. A knowledge based tool is used to assist with target system requirements 
  105. elicitation and generation of the target system specification.  The tool, 
  106. implemented in NASA's CLIPS shell, conducts a dialog with the human target 
  107. system requirements engineer, prompting the engineer for target system 
  108. specific information.  The output of this tool is used to adapt the domain 
  109. model to generate the target system specification.
  110.  
  111. The prototype Software Engineering Environment is a domain independent 
  112. environment.  Thus it may be used to support the development of a domain model 
  113. for any application domain that has been analyzed, and to generate target 
  114. system specifications from it.  
  115.  
  116.  
  117. 3.2  Tool Support for Domain Modeling 
  118.  
  119. The domain modeling activity starts with the creation of the multiple graphical views.  The prototype environment uses a customized version of IDE's Software 
  120. through Pictures (StP) as the front end to capture the multiple views.  The StP environment was customized in two ways.  First, the menu structure was changed 
  121. to make it more consistent with the domain modeling method.  The prototype menu
  122. consists of a set of icons, each corresponding to one of the views.  Selecting
  123. each icon results in the invocation of the appropriate graphical editor for
  124. creating that view.  Secondly, the schema in the underlying TROLL database was 
  125. evolved by adding a new set of relations that capture the semantics of the 
  126. domain model as represented in the graphical views.  The relations serve as the interface between the front end graphical environment and the object 
  127. repository, and they are independent of the StP environment.
  128.  
  129. We also extended the StP environment by integrating our own tools with it, in 
  130. such a way that they could access the information in the underlying database 
  131. as well as adding information to it.  The Domain Model Relations Extractor 
  132. (DMRE) extracts the information contained in the multiple views of the domain 
  133. model from StP's TROLL relational database, interprets the information 
  134. semantically according to the domain modeling method, and stores it in a common underlying relational representation.  The Domain Model Relations Browser 
  135. (DMRB) extracts, formats, and displays the domain model information in a 
  136. relational format.  The Domain Model Consistency Checker (DMCC) checks for 
  137. consistency among the multiple views. Inconsistencies, if any, are displayed 
  138. and must be corrected by the domain modeler.  The entire process of creating 
  139. the domain model relations and checking their consistency is repeated until 
  140. a consistent set of relations is generated.
  141.  
  142. Once the relational representation has been determined to be consistent,
  143. the domain analyst uses the Domain Object Repository Generator tool to create
  144. a key component underlying the tools in our software engineering environment:
  145. the    object repository .  This repository is a single composite object that
  146. is composed of other objects representing domain object types, features, and
  147. the relationships among them which serve to define a domain model.  The Domain
  148. Object Repository Generator tool takes the information captured in the
  149. relational representation and creates corresponding objects according to the 
  150. object repository's schema.  For example, if the domain analyst had created 
  151. eight object communication diagrams using StP, the Domain Object Repository 
  152. Generator tool would create eight instances of class OCD, the class defining 
  153. object communication diagrams.  Similarly, this tool will create objects 
  154. representing the aggregation hierarchy, generalization/specialization 
  155. hierarchies, and state transition diagrams, as well as the domain object types, external object types, and messages which are represented in these diagrams.
  156.  
  157. Another tool in our prototype software engineering environment supporting
  158. domain modeling is the Feature/Object Editor tool.  Once the object repository 
  159. representing a domain model has been created, the domain analyst can use this 
  160. tool to define new features by: 1) giving each new feature a unique name, 
  161. 2) entering an informal annotation for each new feature, 3) specifying object 
  162. types supporting the feature being defined, and 4) specifying other features 
  163. required by the feature being defined.  The Feature/Object Editor can also be 
  164. used to browse features previously defined for a given domain model, delete 
  165. features from the domain model, or modify the definition of features in a 
  166. domain model.
  167.  
  168. The last tool supporting domain modeling in our prototype software engineering
  169. environment is the Domain Object Repository Report Generator tool.  At any time after creating the object repository the domain analyst can generate a report 
  170. on the contents of a given domain model by using this tool which extracts 
  171. select information from the object repository as specified by the domain 
  172. analyst, formats that information using the LaTeX typesetting program, and 
  173. displays the resulting document in an X-Windows document previewer.
  174.  
  175.  
  176.  
  177. 3.3  Tool Support for Generation of Target System Specifications 
  178. A target system specification is derived from the domain model by tailoring it
  179. according to the requirements specified for the target system.  The process of 
  180. generating a target system specification consists of gathering the requirements in terms of domain features, retrieving from the domain model the corresponding components to support those features, and reasoning about inter-feature and 
  181. feature/object dependencies to ensure consistency.  The Knowledge-Based 
  182. Requirements Elicitation Tool (KBRET) has been developed to facilitate the
  183. process of generating target system specifications from the domain model.  
  184. KBRET is implemented in CLIPS (C Language Integrated Production System), 
  185. developed at NASA/Johnson Space Center.
  186.  
  187. The architecture of KBRET consists of two types of knowledge: domain 
  188. independent and domain dependent knowledge.  The domain independent knowledge 
  189. provides control knowledge for the various functions supported by KBRET.  These functions include a browser, a feature selector, a dependency checker, and a 
  190. target system generator.  The domain dependent knowledge represents the 
  191. multiple views of an application domain model, including the feature/object 
  192. dependencies.  This knowledge is derived from the object repository by the
  193. Domain Dependent Knowledge Base Extractor tool, which structures this knowledge as CLIPS facts.
  194.  
  195. The separation of domain-independent and domain-dependent knowledge is 
  196. essential for providing scale-up and maintainability of domain specifications 
  197. for large domains.  Also, since the domain-independent knowledge is independent of the application domain, it can be used with domain-dependent knowledge from 
  198. any application domain to generate target system specifications in that domain.
  199.  
  200. To generate the target system specification, KBRET enters into a dialog with 
  201. the target system engineer and elicits the requirements for the target system.  KBRET also provides facilities for browsing the domain model.  During the 
  202. requirements elicitation process, KBRET presents the domain model features and 
  203. the target system engineer can choose the features that are desired in the 
  204. target system.  Whenever a feature is selected for the target system, the 
  205. associated feature/object dependencies are enforced.  For example, when a 
  206. feature with some prerequisite features is selected, those prerequisite 
  207. features, if not already selected, are also included in the target system.  
  208. Similarly, before deleting a feature from the target system, dependency 
  209. checking is performed to ensure that it is not required by any other target 
  210. system feature.
  211.  
  212. Once feature selection for the target system has been completed, KBRET begins
  213. the process of assembling the target system.  The domain kernel object types 
  214. are automatically included in the target system.  Depending upon the features 
  215. selected for the target system, the corresponding variant and optional object 
  216. types are included.  When all the object types required to support the selected features for the target system are assembled, the target system engineer is 
  217. presented with the target system features and object types.  KBRET also outputs two files containing the target system information that is used in tailoring 
  218. the domain picture files  to derive the multiple views for the target system.
  219.  
  220. Using the two files generated by KBRET, the Target System Specification 
  221. Generator (TSSG) tool tailors the domain model graphical views and generates 
  222. a set of graphical views for the target system.  The target system views 
  223. differ from those of the domain model in two ways.  First, the optional 
  224. objects that are not selected for the target system are removed.  Secondly, in 
  225. the case where one or more variants of a domain object type are selected, the 
  226. object type is replaced by its variant(s).
  227.  
  228.  
  229.  
  230. 4  Acknowledgements 
  231.  
  232. We gratefully acknowledge the assistance of S. Bailin, R. Dutilly, J. M. Moore, and W. Truszkowski in providing us with information on the POCC.  We gratefully acknowledge the major contributions of Liz O'Hara-Schettino in developing the 
  233. domain model of the POCC.  This work was sponsored primarily by NASA Goddard 
  234. Space Flight Center, with support from the Virginia Center of Innovative 
  235. Technology.  The Software Through Pictures CASE tool was donated to GMU by
  236. Interactive Development Environments (IDE).
  237.  
  238.  
  239.  
  240. 5  References 
  241.  
  242. [Batory89] Batory D., ``The Genesis Database System Compiler: A Result of 
  243.        Domain Modeling'', Proc. Workshop on Domain Modeling for Software 
  244.        Engineering, OOPSLA'89, New Orleans, October 1989.
  245.  
  246. [Gomaa89]  Gomaa H., R. Fairley and L. Kerschberg, ``Towards an Evolutionary 
  247.            Domain Life Cycle Model'', Proc. Workshop on Domain Modeling for 
  248.        Software Engineering, OOPSLA, New Orleans, October 3, 1989.
  249.  
  250. [Gomaa90]  Gomaa H., ``A Domain Analysis and Specification Method for Software 
  251.        Reuse'', Proc. Third Annual Workshop on Methods and Tools for Reuse,            Syracuse, June 1990.
  252.  
  253. [Gomaa91]  Gomaa H. and L. Kerschberg, ``An Evolutionary Domain Life Cycle 
  254.            Model for Domain Modeling and Target System Generation'', Proc. 
  255.        Workshop on Domain Modeling for Software Engineering, International 
  256.        Conference on Software Engineering, Austin, May 1991.
  257.  
  258. [Kang90]   Kang K. C. et. al., ``Feature-Oriented Domain Analysis'', Technical
  259.            Report No. CMU/SEI-90-TR-21, Software Engineering Institute, 
  260.        November 1990.
  261.  
  262. [Lubars89] Lubars M. D., ``Domain Analysis for Multiple Target Systems'', 
  263.        Proc. Workshop on Domain Modeling for Software Engineering, 
  264.        OOPSLA'89, New Orleans, October 1989.
  265.  
  266. [Parnas79] Parnas D., ``Designing Software for Ease of Extension and 
  267.            Contraction'', IEEE Transactions on Software Engineering, March 1979.
  268.  
  269. [Pyster90] Pyster A., ``The Synthesis Process for Software Development'', in 
  270.        ``System and Software Requirements Engineering'', Edited by R. 
  271.        Thayer and M. Dorfman, IEEE Computer Society Press, 1990.
  272.  
  273.  
  274.  
  275. 6  About the Authors 
  276.  
  277. Hassan Gomaa is a Professor of Information and Software Systems Engineering at 
  278. George Mason University, Fairfax, Virginia, where he teaches graduate courses 
  279. in Software Systems Engineering.  He also has several years industrial 
  280. experience, most recently at General Electric.
  281.  
  282. He received his B.Sc. in Electrical Engineering from University College, London University, England and his Ph.D. in Computer Science from Imperial College, 
  283. London University.  His current research interests include software engineering methods and tools, analysis and design of concurrent and real-time systems, 
  284. software prototyping, software process models, domain analysis and design, and 
  285. software reuse. He has published over fifty technical papers.
  286.  
  287. Larry Kerschberg is Professor and Chairman of the Department of Information 
  288. and Software Systems Engineering in the School of Information Technology and 
  289. Engineering at George Mason University.  He holds a Ph.D. in Systems 
  290. Engineering from Case Western Reserve University, an M.Sc. in Electrical 
  291. Engineering from the University of Wisconsin-Madison, and a B.Sc. degree in 
  292. Engineering Science from Case Institute of Technology.
  293.  
  294. Dr. Kerschberg's research focuses on the areas of data models, database design, data dictionaries, distributed query processing, and most recently, expert 
  295. database systems.  His current research interests deal with architectures for 
  296. expert database systems, models that integrate the specification of knowledge 
  297. and data, as well as knowledge-based tools and techniques for knowledge 
  298. acquisition and software requirements gathering and specification.
  299.  
  300. Dr. Kerschberg serves as an Editor-in-Chief of the forthcoming International 
  301. Journal of Intelligent Information Systems.
  302.  
  303. Chris Bosch is a doctoral candidate studying Information Technology at
  304. George Mason University where his dissertation research focuses on 
  305. problems associated with the evolution of object-oriented systems.
  306. He holds a B.S. in Aerospace Engineering from the University of
  307. Virginia (1982) and an M.A. in Government from Georgetown University (1985),
  308. and is a member of ACM and AAAI.
  309.  
  310. Vijayan Sugumaran is a doctoral candidate in Information Technology at
  311. George Mason University.  He received his B.Tech. and M.S. degrees in
  312. Mining Engineering from Indian School of Mines and University of
  313. Alaska-Fairbanks respectively.  His research interest includes 
  314. database management systems, knowledge-based systems, domain modeling and 
  315. software engineering.  
  316.  
  317. Iraj Tavakoli received the BS in computer science from Aryamehr Univeristy
  318. in Tehran/Iran in 1980, and the MS in computer science from 
  319. University of Tennessee in 1988.  He is currently a PH.D student 
  320. in School of Information Technology at George Mason University.  His research 
  321. interests include software reuse, software engineering environments,
  322. domain modeling, and real-time system design.
  323.