Supporting Evolution in Model-Based Product Line Engineering

Software maintenance and evolution are among the most challenging and cost-intensive activities in software engineering. This is not different for software product lines due to their complexity and long life-span. New customer requirements, technology changes and internal enhancements lead to the continuous evolution of a product line's reusable assets. Due to the size of product lines, single stakeholders or teams can only maintain a small part of a system which poses additional challenges for evolution. This paper presents an approach supporting product line evolution by organizing variability models of large-scale product lines as a set of interrelated model fragments defining the variability of particular parts of the system. The approach allows semi-automatic merging of fragments into complete variability models. We also provide tool support to automatically detect changes that would make models and the architecture inconsistent. Furthermore, our approach supports the co-evolution of variability models and their respective meta-models. We illustrate the approach with examples from an ongoing industry collaboration.

[1]  Michael Mattsson,et al.  Frameworks as Components : A Classification of Framework Evolution , 1998 .

[2]  Paul Grünbacher,et al.  Supporting Product Derivation by Adapting and Augmenting Variability Models , 2007 .

[3]  KramerJeff,et al.  The Koala Component Model for Consumer Electronics Software , 2000 .

[4]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[5]  Michael Eonsuk Shin,et al.  Multiple-view meta-modeling of software product lines , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

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

[7]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[8]  Gabor Karsai,et al.  Metamodel driven model migration , 2003 .

[9]  Paul Grünbacher,et al.  Supporting the Evolution of Product Line Architectures with Variability Model Fragments , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

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

[11]  A. G. Kleppe,et al.  Building a Flexible Software Factory Using Partial Domain Specific Models , 2006, OOPSLA 2006.

[12]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

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

[14]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

[15]  Dewayne E. Perry,et al.  Challenges in Evolving a Large Scale Software Product , 1998 .

[16]  Paul Grünbacher,et al.  Domain-specific Adaptations of Product Line Variability Modeling , 2007, Situational Method Engineering.

[17]  Siobhán Clarke,et al.  Subject-oriented design: towards improved alignment of requirements, design, and code , 1999, OOPSLA '99.

[18]  Penny Grubb,et al.  Software Maintenance: Concepts and Practice , 2003 .

[19]  Cláudia Maria Lima Werner,et al.  ArchTrace: Policy-Based Support for Managing Evolving Architecture-to-Implementation Traceability Links , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[20]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[21]  John D. McGregor,et al.  The Evolution of Product Line Assets , 2003 .

[22]  Guido Wachsmuth,et al.  Metamodel Adaptation and Model Co-adaptation , 2007, ECOOP.

[23]  Krzysztof Czarnecki,et al.  Synchronizing Cardinality-Based Feature Models and Their Specializations , 2005, ECMDA-FA.

[24]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[25]  Paul Grünbacher,et al.  Architectural Knowledge in Product Line Engineering: An Industrial Case Stu , 2006, 32nd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO'06).

[26]  Paul Grünbacher,et al.  Decision-Oriented Modeling of Product Line Architectures , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[27]  M. E. Conway HOW DO COMMITTEES INVENT , 1967 .