Staged configuration through specialization and multilevel configuration of feature models

Feature modeling is a key technique for capturing commonalities and variabilities in system families and product lines. In this article, we propose a cardinality-based notation for feature modeling, which integrates a number of existing extensions of previous approaches. We then introduce and motivate the novel concept of staged configuration. Staged configuration can be achieved by the stepwise specialization of feature models or by multilevel configuration, where the configuration choices available in each stage are defined by separate feature models. Staged configuration is important because, in a realistic development process, different groups and different people make product configuration choices in different stages. Finally, we also discuss how multilevel configuration avoids a breakdown between the different abstraction levels of individual features. This problem, sometimes referred to as 'analysis paralysis', easily occurs in feature modeling because features can denote entities at arbitrary levels of abstraction within a system family. Copyright © 2005 John Wiley & Sons, Ltd.

[1]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[2]  Klaus Schmid,et al.  A systematic approach to derive the scope of software product lines , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

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

[4]  E. Visser,et al.  Capturing Timeline Variability with Transparent Configuration Environments , 2003 .

[5]  S. Buhne,et al.  Modeling features for multi-criteria product-lines in the automotive industry , 2004, ICSE 2004.

[6]  Krzysztof Czarnecki,et al.  Generative programming - principles and techniques of software engineering based on automated configuration and fragment-based component models , 1999 .

[7]  Wolfgang Schröder-Preikschat,et al.  Functional and non-functional properties in a family of embedded operating systems , 2005, 10th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems.

[8]  Michal Antkiewicz,et al.  FeaturePlugin: feature modeling plug-in for Eclipse , 2004, eclipse '04.

[9]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[10]  Alessandro Pasetti,et al.  XML-Based Feature Modelling , 2004, ICSR.

[11]  Danilo Beuche Composition and construction of embedded software families , 2003 .

[12]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

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

[14]  Michel Barbeau,et al.  A Protocol Stack Development Tool Using Generative Programming , 2002, GPCE.

[15]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools , 2004, GPCE.

[16]  Andreas Hein,et al.  Applying feature models in industrial settings , 2000, SPLC.

[17]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[18]  Krzysztof Czarnecki,et al.  Generative Programming for Embedded Software: An Industrial Experience Report , 2002, GPCE.

[19]  Ilka Philippow,et al.  EXTENDING FEATURE DIAGRAMS WITH UML MULTIPLICITIES , 2002 .

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

[21]  Jaejoon Lee,et al.  Concepts and Guidelines of Feature Modeling for Product Line Software Engineering , 2002, ICSR.

[22]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[23]  André van der Hoek,et al.  Design-time product line architectures for any-time variability , 2004, Sci. Comput. Program..

[24]  Arie van Deursen,et al.  Domain-specific language design requires feature descriptions , 2002 .

[25]  Don S. Batory,et al.  Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study , 2000, ICSR.

[26]  J. Craig Cleaveland Program Generators with XML and Java , 2001 .

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

[28]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

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

[30]  Kurt C. Wallnau Software Technology for Adaptable, Reliable Systems (STARS) , 1990 .

[31]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.