|
|
System Families |
|
|
|
What are System Families?
Reuse applied to software out of a specific problem domain is described by System Families. The term System Families was introduced in 1976 by David Parnas. Very often software engineers have to develop custom-build and expensive applications. It is rather profitable to switch to a development method making use of the system family idea based on a family core and variable parts. An application will be generated out of the core and a set of variable parts. As depicted in Figure 1 a system family in the library domain consists of a core part and parts specific to the actual applications in our domain. The core is made of the user/media handling and general library procedures like borrowing media. The specific part for a mobile library is made of functionality that temporarily separates a set of books, which will be brought to the 'customers'. Current System Family research Many projects in the past explored the field of sytem family development and errected new methods and technologies in this field. A selection of these scientific efforts is shown below.
State-of-the-Art in System Family Development The quintessence of all methods is the separation of software development into two stages which are connected by a data layer holding all development assets created throughout the development. The figure shows the twofold development of system families.
The upper blue part represents the development of the family itself. A flexible architecture realizing the ideas described in the requirements model and a set of components are the assets developed in the domain engineering phase. The middle green compartment holds all the information and the assets developed in the domain engineering phase and will supply the basis for the development of applications (family members) in the application engineering phase. The lower orange part represents the application development. Based on the family architecture new applications, members of the family, will be developed. Any new requirements elicited throughout this development phase or any inconsistencies found in the assets used, are propagated backwards to the domain engineering part, depicted by the control flow arrows. The benefits of the system family approach The basic idea of system families is the long term reuse of development assets throughout the whole development cycle. Contrary to the development of single applications system families are based upon a family architecture from which all applications are derived. New applications are not developed by extending and changing existing systems up to the point where the new requirements are met. Their requirements are compared against the family requirements to reuse most of the existing asstes. Possible changes to the family architecture are performed without an impact on the derivation of already developed family members. The following point describe the key issues for system family development.
|