Tailoring dynamic software product lines

Software product lines (SPLs) and adaptive systems aim at variability to cope with changing requirements. Variability can be described in terms of features, which are central for development and configuration of SPLs. In traditional SPLs, features are bound statically before runtime. By contrast, adaptive systems support feature binding at runtime and are sometimes called dynamic SPLs (DSPLs). DSPLs are usually built from coarse-grained components, which reduces the number of possible application scenarios. To overcome this limitation, we closely integrate static binding of traditional SPLs and runtime adaptation of DSPLs. We achieve this integration by statically generating a tailor-made DSPL from a highly customizable SPL. The generated DSPL provides only the runtime variability required by a particular application scenario and the execution environment. The DSPL supports self-configuration based on coarse-grained modules. We provide a feature-based adaptation mechanism that reduces the effort of computing an optimal configuration at runtime. In a case study, we demonstrate the practicability of our approach and show that a seamless integration of static binding and runtime adaptation reduces the complexity of the adaptation process.

[1]  Klaus Schmid,et al.  From Static to Dynamic Software Product Lines , 2008, SPLC.

[2]  Gunter Saake,et al.  SPL Conqueror: Toward optimization of non-functional properties in software product lines , 2012, Software Quality Journal.

[3]  Sooyong Park,et al.  Dynamic Software Product Lines , 2008, Computer.

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  Sven Apel,et al.  Type safety for feature-oriented product lines , 2010, Automated Software Engineering.

[6]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, Seminal Contributions to Information Systems Engineering.

[7]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[8]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

[9]  Gunter Saake,et al.  Multi-dimensional variability modeling , 2011, VaMoS.

[10]  Jörgen Hansson,et al.  Application-tailored database systems: a case of aspects in an embedded database , 2004, Proceedings. International Database Engineering and Applications Symposium, 2004. IDEAS '04..

[11]  Gunter Saake,et al.  Flexible feature binding in software product lines , 2011, Automated Software Engineering.

[12]  Jaejoon Lee,et al.  A feature-oriented approach to developing dynamically reconfigurable products in product line engineering , 2006, 10th International Software Product Line Conference (SPLC'06).

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

[14]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[15]  Steffen Göbel,et al.  Enforceable component-based realtime contracts , 2006, Real-Time Systems.

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

[17]  Sven Apel,et al.  Scalable Prediction of Non-functional Properties in Software Product Lines , 2011, 2011 15th International Software Product Line Conference.

[18]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[19]  Jia Liu,et al.  Feature oriented refactoring of legacy applications , 2006, ICSE.

[20]  Gordon S. Blair,et al.  Dynamically Adaptive Systems are Product Lines too: Using Model-Driven Techniques to Capture Dynamic Variability of Adaptive Systems , 2008, SPLC.

[21]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[22]  Vicente Pelechano,et al.  Using Feature Models for Developing Self-Configuring Smart Homes , 2009, 2009 Fifth International Conference on Autonomic and Autonomous Systems.

[23]  Douglas C. Schmidt,et al.  Selecting highly optimal architectural feature sets with Filtered Cartesian Flattening , 2009, J. Syst. Softw..

[24]  Thomas Leich,et al.  FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming , 2005, GPCE'05.

[25]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[26]  Krzysztof Czarnecki,et al.  SAT-based analysis of feature models is easy , 2009, SPLC.

[27]  Martin L. Griss,et al.  Implementing Product-Line Features with Component Reuse , 2000, ICSR.

[28]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[29]  Mohammad Ilyas,et al.  Smart Dust , 2006 .

[30]  Antonio Ruiz Cortés,et al.  Mapping Feature Models onto Component Models to Build Dynamic Software Product Lines , 2007, SPLC.

[31]  Ted J. Biggerstaff,et al.  A perspective of generative reuse , 1998, Ann. Softw. Eng..

[32]  Manuel Oriol,et al.  Practical dynamic software updating for C , 2006, PLDI '06.

[33]  Frank Eliassen,et al.  Using architecture models for runtime adaptability , 2006, IEEE Software.

[34]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[35]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[36]  Svein O. Hallsteinsen,et al.  Using product line techniques to build adaptive systems , 2006, 10th International Software Product Line Conference (SPLC'06).

[37]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[38]  Brice Morin Models aT RunTiMe To suppoRT dynaMic adapTaTion , 2022 .