Supporting Component-Based Software Development Using Domain Knowledge*

Abstract A consistent implementation of component-based reusebears several implications for the design of the softwaredevelopment process. For instance, requirements engi-neering has to be tailored to particularly elicit informa-tion necessary for selecting and configuring appropriatecomponents. Concerning the development of compo-nents, a thorough analysis of the envisioned domain hasto provide the necessary information about how specificrequirements can be met. To this end, a domain modeldescribes the commonalities and variabilities of possiblesolutions. While commonalities can be mapped directlyto fixed implementations, this paper presents an approachto map requirements concerning the variabilities to con-crete component configurations. Our approach is basedon the technique of design spaces, which allows to bothcapture the variability of a domain and to formalize trans-formation rules leading from requirements to possiblesolutions. In the course of a detailed example, we demon-strate how the design space technique can be applied toprovide tool support throughout the development pro-cess.

[1]  Said Ghoul,et al.  CLASSIFYING SOFTWARE FOR REUSABILITY , 2001 .

[2]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[3]  Thomas G. Lane Studying software architecture through design spaces and rules , 1990 .

[4]  Peter Sturm,et al.  Driving the composition of runtime platforms by architectural knowledge , 1998, EW 8.

[5]  Lothar Baum Towards Generating Customized Run-time Platforms from Generic Components , 1999 .

[6]  Martin Becker,et al.  Mapping requirements to reusable components using Design Spaces , 2000, Proceedings Fourth International Conference on Requirements Engineering. ICRE 2000. (Cat. No.98TB100219).

[7]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[8]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[9]  Steffen Rothkugel,et al.  Architecture-Centric Software Development Based on Extended Design Spaces , 1998, ESPRIT ARES Workshop.

[10]  Ted J. Biggerstaff,et al.  The library scaling problem and the limits of concrete component reuse , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[11]  Steffen Rothkugel,et al.  Customization of system software for large-scale embedded applications , 1997, Comput. Commun..

[12]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[13]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..