An Architectural Approach to Support Online Updates of Software Product Lines

Despite the successes of software product lines (SPL), managing the evolution of a SPL remains difficult and error-prone. Our focus of evolution is on the concrete tasks integrators have to perform to update deployed SPL products, in particular products that require runtime updates with minimal interruption. The complexity of updating a deployed SPL product is caused by multiple interdependent concerns, including variability, traceability, versioning, availability, and correctness. Existing approaches typically focus on particular concerns while making abstraction of others, thus offering only partial solutions. An integrated approach that takes into account the different stakeholder concerns is lacking. In this paper, we present an architectural approach for updating SPL products that supports multiple concerns. The approach comprises of two complementary parts: (1) an update viewpoint that defines the conventions for constructing and using architecture views to deal with multiple update concerns, and (2) a supporting framework that provides an extensible infrastructure supporting integrators of a SPL. We evaluated the approach for an industrial SPL for logistic systems providing empirical evidence for its benefits and recommendations.

[1]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[2]  Jacky Estublier,et al.  Software product line evolution: the Selecta system , 2010, PLEASE '10.

[3]  Arie van Deursen,et al.  Symphony: view-driven software architecture reconstruction , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[4]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[5]  Nicolas Anquetil,et al.  A model-driven traceability framework for software product lines , 2010, Software & Systems Modeling.

[6]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[7]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[8]  Pierre America,et al.  Defining execution viewpoints for a large and complex software-intensive system , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[9]  Variant Management with pure : : variants pure-systems , 2007 .

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

[11]  Samuel Ajila,et al.  Evolution support mechanisms for software product line process , 2008, J. Syst. Softw..

[12]  Samuel A. Ajila,et al.  Experimental use of code delta, code churn, and rate of change to understand software product line evolution , 2007, J. Syst. Softw..

[13]  Danny Weyns,et al.  Codifying architecture knowledge to support online evolution of software product lines , 2011, SHARK '11.

[14]  Ping Chen,et al.  Differencing and Merging within an Evolving Product Line Architecture , 2003, PFE.

[15]  Michael Eichberg,et al.  The SEXTANT Software Exploration Tool , 2006, IEEE Transactions on Software Engineering.

[16]  Robert L. Nord,et al.  Software Product Lines , 2004, Lecture Notes in Computer Science.

[17]  Liam O'Brien Architecture Reconstruction to Support a Product Line Effort: Case Study , 2001 .

[18]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[19]  André van der Hoek,et al.  Modeling Product Line Architectures through Change Sets and Relationships , 2007, 29th International Conference on Software Engineering (ICSE'07).

[20]  Martin Pinzger,et al.  ArchView - Analyzing Evolutionary Aspects of Complex Software Systems , 2005 .

[21]  Eoin Woods,et al.  Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives , 2005 .

[22]  Danny Weyns,et al.  On-demand Generation of Views to Support Online Evolution of Software Product Lines , 2011 .