Optimization of Variability in Software Product Lines

The widespread use of the product line approach allows companies to realize significant improvements in time-to- market, cost, productivity, and quality. However, a fundamental problem in software product line engineering is that a product line of industrial size can easily incorporate several thousand variable features. The complexity caused by this amount of variability makes variability management and product derivation tasks extremely difficult. To address this problem, we present a new method to optimize the variability provided in a software product line. Our method constructs a visualization that provides a classification of the usage of variable features in real products derived from the product line. We show how this classification can be used to derive restructuring strategies for simplifying the variability. The effectiveness of our work is demonstrated by presenting a case study of optimizing the variability in a large industrial software product line.

[1]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[2]  Ira D. Baxter,et al.  Preprocessor conditional removal by simple partial evaluation , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[3]  Gregor Snelting,et al.  On the inference of configuration structures from source code , 1994, Proceedings of 16th International Conference on Software Engineering.

[4]  Marco Sinnema,et al.  Product derivation in software product families: a case study , 2005, J. Syst. Softw..

[5]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[6]  K. Czarnecki,et al.  Cardinality-Based Feature Modeling and Constraints : A Progress Report , 2005 .

[7]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[8]  A. Hoek,et al.  Refactoring Product Line Architectures , 2003 .

[9]  Wolfgang Stolz,et al.  Introducing PLA at Bosch Gasoline Systems: Experiences and Practices , 2004, SPLC.

[10]  Dirk Muthig,et al.  A case study in refactoring a legacy component for reuse in a product line , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

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

[12]  Marco Sinnema,et al.  COSVAM: a technique for assessing software variability in software product families , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[13]  F. Loesch,et al.  Restructuring Variability in Software Product Lines using Concept Analysis of Product Configurations , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[14]  Marco Sinnema,et al.  COVAMOF: A Framework for Modeling Variability in Software Product Families , 2004, SPLC.

[15]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

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

[17]  Harald Hönninger,et al.  A Common Software Architecture for Diesel and Gasoline Engine Control Systems of the New Generation EDC/ME(D)17 , 2003 .