Conceptual Modeling for Families of Software Systems
No Thumbnail Available
Date
1994-08-01T00:00:00Z
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Conceptual models must be sometimes built for a family of software systems rather than for a single system. Situations when this happens include evolutionary software development, software reengineering and reuse. In all those cases a conceptual model should characterize a given application domain and all the systems in that domain, e.g., payroll. For example, in software reuse, we look for reoccurring features (or concepts) such as objects, business rules, procedures, requirement/design patterns and code modules that can be reused across payroll systems. Capturing commonalties is a primary goal of a conceptual model. But apart from commonalties, we find that there are also some variations in feature specifications from one system to another. For example, some of the employee characteristics or rules for computing employee salary may differ from one payroll system to another. The premise of work described in this paper is that conceptual models should capture both commonalties and differences across a family of similar systems. In the reuse context, if variations in feature specification are not anticipated and explicitly modeled, customization of a component for reuse will not be easy: component customization will be done in an ad hoc way and programmers will have to go through the same customization process many times. Such reuse will be expensive and resulting systems will be difficult to maintain. These problems can be avoided if we explicitly model variations in feature specification. This paper shows how such multi-version models can be created. Conceptual models are composed of frames organized in Object-Oriented way. Our domain modeling method combines independent domain analysis and reverse engineering of low level design abstractions from existing programs.