Feature-Based Product Derivation : Composing Features

Anton Jansen, Rein Smedinga, Jilles van Gurp, Jan Bosch Department of Mathematics and Computing Science University of Groningen PO Box 800, 9700 AV The Netherlands [anton|rein|jilles|jan.bosch]@cs.rug.nl http://segroup.cs.rug.nl Abstract We have observed that large software systems are increasingly defined in terms of the features they implement. Consequently, there is a need to express the commonalities and variability between products of a product family in terms of features. Unfortunately, technology support for the early aspect of a feature is currently limited to the requirements level. There is a need to extend this support to the design and implementation level as well. Existing separation of concerns technologies, such as AOP and SOP, may be of use here. However, features are not first class citizens in these paradigms. To address this and to explore the problems and issues with respect to features and feature composition, we have formalized the notion of features in a feature model. The feature model relates features to a component role model. Using our model and a composition algorithm, we can select a number of base components and a number of features from a software product family and derive a product. As a proof of concept we have experimented extensively with a prototype Java implementation of our approach.

[1]  Implementing Layered Designs with Mixin Layers 1 , 1998 .

[2]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[3]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[4]  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).

[5]  João Araújo,et al.  Early aspects: a model for aspect-oriented requirements engineering , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[6]  Alexander L. Wolf,et al.  A conceptual basis for feature engineering , 1999, J. Syst. Softw..

[7]  Jan Bosch,et al.  Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization , 2002, SPLC.

[8]  Martin L. Griss Implementing Product-Line Features By Composing Component Aspects , 2000 .

[9]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[10]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[11]  Jan Bosch,et al.  Superimposition: a component adaptation technique , 1999, Inf. Softw. Technol..

[12]  Martin L. Griss,et al.  Implementing Product-Line Features with Component Reuse , 2000, ICSR.

[13]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[14]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[15]  Arie van Deursen,et al.  Feature-Based Product Line Instantiation Using Source-Level Packages , 2002, SPLC.

[16]  Trygve Reenskaug,et al.  Working with objects - the OOram software engineering method , 1995 .

[17]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[18]  J. Paul Gibson Feature Requirements Models: Understanding Interactions , 1997, FIW.

[19]  Martin L. Griss,et al.  Integrating feature modeling with the RSEB , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[20]  Dirk Riehle,et al.  Role model based framework design and integration , 1998, OOPSLA '98.

[21]  Pamela Zave Feature-Oriented Description, Formal Methods, and DFC , 2000, FIREworks.

[22]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[23]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[24]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.