Restructuring Variability in Software Product Lines using Concept Analysis of Product Configurations

The management of variability plays an important role in successful software product line engineering. As the set of products that is derived from the product line and their requirements are constantly changing, the variability in the product line needs to evolve as well. A typical problem in in such an evolution scenario is that the number of variable features and variants will explode, and thus become unmanageable. One of the reasons for this explosion is that obsolete variable features are not removed. In order to address this problem, we present a new method for restructuring and simplifying the provided variability in a software product line. Our method is based on concept analysis. It analyzes the realized variability in a software product line, and constructs a lattice 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 variability that solve the problem of variability explosion. The effectiveness of our method is demonstrated by presenting a case study of restructuring the variability in a large industrial software product line

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

[2]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software 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]  Gregor Snelting,et al.  Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[5]  Thomas W. Reps,et al.  Identifying modules via concept analysis , 1997, 1997 Proceedings International Conference on Software Maintenance.

[6]  Frank Tip,et al.  Reengineering class hierarchies using concept analysis , 1998, SIGSOFT '98/FSE-6.

[7]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

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

[9]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[10]  Paolo Tonella,et al.  Concept Analysis for Module Restructuring , 2001, IEEE Trans. Software Eng..

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

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

[13]  Mark Harman,et al.  7 th European Conference on Software Maintenance and Reengineering , 2003 .

[14]  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 .

[15]  Ladan Tahvildari,et al.  First international workshop on refactoring : achievements, challenges, and effects (REFACE'03) , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

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

[17]  Gabriela Beatriz Arévalo,et al.  High-level views in object-oriented systems using formal concept analysis , 2004 .

[18]  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..

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

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

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

[22]  Felix Lösch A Formal Method to Identify Variation Points in Product Line Assets , 2006, Softwaretechnik-Trends.