A Formal Model for Multi SPLs

A Software Product Line (SPL) is a family of similar programs generated from a common artifact base. A Multi SPL (MPL) is a set of interdependent SPLs that are typically managed and developed in a decentralized fashion. Delta-Oriented Programming (DOP) is a flexible and modular approach to implement SPLs. This paper presents new concepts that extend DOP to support the implementation of MPLs. These extensions aim to accommodate compositional analyses. They are presented by means of a core calculus for delta-oriented MPLs of Java programs. Suitability for MPL compositional analyses is demonstrated by compositional reuse of existing SPL analysis techniques.

[1]  Sebastian Erdweg,et al.  A variability-aware module system , 2012, OOPSLA '12.

[2]  Ina Schaefer,et al.  Compositional type checking of delta-oriented software product lines , 2012, Acta Informatica.

[3]  Ina Schaefer,et al.  Family-Based Analysis of Type Safety for Delta-Oriented Software Product Lines , 2012, ISoLA.

[4]  Reiner Hähnle,et al.  Proof Repositories for Compositional Verification of Evolving Software Systems - Managing Change When Proving Software Correct , 2016, LNCS Trans. Found. Mastering Chang..

[5]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

[6]  Michael Lienhardt,et al.  On Type Checking Delta-Oriented Product Lines , 2016, IFM.

[7]  Thomas Thüm,et al.  Towards modular analysis of multi product lines , 2013, SPLC '13 Workshops.

[8]  Sebastian Krieter,et al.  Feature-Model Interfaces: The Highway to Compositional Analyses of Highly-Configurable Systems , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[9]  Dave Clarke,et al.  Conflict Detection in Delta-Oriented Programming , 2012, ISoLA.

[10]  Sandro Schulze,et al.  DeltaJ 1.5: delta-oriented programming for Java 1.5 , 2014, PPPJ.

[11]  Gunter Saake,et al.  Feature-context interfaces: tailored programming interfaces for software product lines , 2014, SPLC.

[12]  Marko Rosenmüller,et al.  Modeling Dependent Software Product Lines , 2008 .

[13]  Goetz Botterweck,et al.  Software diversity: state of the art and perspectives , 2012, International Journal on Software Tools for Technology Transfer.

[14]  Paul Grünbacher,et al.  A systematic review and an expert survey on capabilities supporting multi product lines , 2012, Inf. Softw. Technol..

[15]  Ina Schaefer,et al.  Pure delta-oriented programming , 2010, FOSD '10.

[16]  Viviana Bono,et al.  Delta-Oriented Programming of Software Product Lines , 2010, SPLC.

[17]  Sven Apel,et al.  Variability encoding: From compile-time to load-time variability , 2016, J. Log. Algebraic Methods Program..

[18]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[19]  Ina Schaefer,et al.  Delta-oriented multi software product lines , 2014, SPLC.

[20]  Mathieu Acher,et al.  Slicing feature models , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[21]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[22]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[23]  Reiner Hähnle,et al.  A Liskov Principle for Delta-Oriented Programming , 2012, ISoLA.

[24]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[25]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 1999, OOPSLA '99.

[26]  Thomas Thüm,et al.  Variability Hiding in Contracts for Dependent Software Product Lines , 2016, VaMoS.

[27]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

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

[29]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[30]  Reiner Hähnle,et al.  Reuse in Software Verification by Abstract Method Calls , 2013, CADE.

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