Learning and Evolution in Dynamic Software Product Lines

A Dynamic Software Product Line (DSPL) aims at managing run-time adaptations of a software system. It is built on the assumption that context changes that require these adaptations at run-time can be anticipated at design-time. Therefore, the set of adaptation rules and the space of configurations in a DSPL are predefined and fixed at design-time. Yet, for large-scale and highly distributed systems, anticipating all relevant context changes during design-time is often not possible due to the uncertainty of how the context may change. Such design-time uncertainty therefore may mean that a DSPL lacks adaptation rules or configurations to properly reconfigure itself at run-time. We propose an adaptive system model to cope with design-time uncertainty in DSPLs. This model combines learning of adaptation rules with evolution of the DSPL configuration space. It takes particular account of the mutual dependencies between evolution and learning, such as using feedback from unsuccessful learning to trigger evolution. We describe concrete steps for learning and evolution to show how such feedback can be exploited. We illustrate the use of such a model with a running example from the cloud computing domain.

[1]  Sven Apel,et al.  Performance-influence models for highly configurable systems , 2015, ESEC/SIGSOFT FSE.

[2]  Luciano Baresi,et al.  Evolution in dynamic software product lines: challenges and perspectives , 2015, SPLC.

[3]  Claus Pahl,et al.  Self-Learning Cloud Controllers: Fuzzy Q-Learning for Knowledge Evolution , 2015, 2015 International Conference on Cloud and Autonomic Computing.

[4]  Luciano Baresi,et al.  Dynamically Evolving the Structural Variability of Dynamic Software Product Lines , 2015, 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems.

[5]  John Mylopoulos,et al.  Rationalism with a dose of empiricism: Case-based reasoning for requirements-driven self-adaptation , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[6]  Klaus Pohl,et al.  Software product line engineering and variability management: achievements and challenges , 2014, FOSE.

[7]  Vicente Pelechano,et al.  Dynamic adaptation of service compositions with variability models , 2014, J. Syst. Softw..

[8]  Sam Malek,et al.  Ieee Transactions on Software Engineering 1 a Learning-based Framework for Engineering Feature-oriented Self-adaptive Software Systems , 2022 .

[9]  Enda Barrett,et al.  Applying reinforcement learning towards automating resource allocation and application scalability in the cloud , 2013, Concurr. Comput. Pract. Exp..

[10]  Carlo Ghezzi,et al.  On requirements verification for model refinements , 2013, 2013 21st IEEE International Requirements Engineering Conference (RE).

[11]  Andreas Metzger,et al.  Addressing Highly Dynamic Changes in Service-Oriented Systems: Towards Agile Evolution and Adaptation , 2013 .

[12]  Andreas Metzger,et al.  MCaaS: Model Checking in the Cloud for Assurances of Adaptive Systems , 2013, Software Engineering for Self-Adaptive Systems.

[13]  Bradley R. Schmerl,et al.  Evolution styles: foundations and models for software architecture evolution , 2012, Software & Systems Modeling.

[14]  Saeed Jalili,et al.  Formal modeling of evolving self-adaptive systems , 2012, Sci. Comput. Program..

[15]  Jaejoon Lee,et al.  Engineering Service-Based Dynamic Software Product Lines , 2012, Computer.

[16]  Sooyong Park,et al.  Building Dynamic Software Product Lines , 2012, Computer.

[17]  Paola Spoletini,et al.  LOVER: Light-Weight fOrmal Verification of adaptivE Systems at Run Time , 2012, FACS.

[18]  Andres J. Ramirez,et al.  A taxonomy of uncertainty for dynamically adaptive systems , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[19]  Cheng-Zhong Xu,et al.  URL: A unified reinforcement learning approach for autonomic cloud management , 2012, J. Parallel Distributed Comput..

[20]  Sam Malek,et al.  Taming uncertainty in self-adaptive software , 2011, ESEC/FSE '11.

[21]  Danny Weyns,et al.  An Architectural Approach to Support Online Updates of Software Product Lines , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[22]  Eduardo F. Morales,et al.  An Introduction to Reinforcement Learning , 2011 .

[23]  Thomas Vogel,et al.  Adaptation and abstract runtime models , 2010, SEAMS '10.

[24]  Carlo Ghezzi,et al.  Dealing with Non-Functional Requirements for Adaptive Systems via Dynamic Software Product-Lines , 2010, Software Engineering for Self-Adaptive Systems.

[25]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[26]  Nelly Bencomo,et al.  How dynamic is your Dynamic Software Product Line? , 2010, SPLC Workshops.

[27]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[28]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[29]  Sooyong Park,et al.  Reinforcement learning-based dynamic adaptation planning method for architecture-based self-managed software , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[30]  Ladan Tahvildari,et al.  Adaptive Action Selection in Autonomic Software Using Reinforcement Learning , 2008, Fourth International Conference on Autonomic and Autonomous Systems (ICAS'08).

[31]  Tom Mens,et al.  Introduction and Roadmap: History and Challenges of Software Evolution , 2008, Software Evolution.

[32]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[33]  Rajarshi Das,et al.  A Hybrid Reinforcement Learning Approach to Autonomic Resource Allocation , 2006, 2006 IEEE International Conference on Autonomic Computing.

[34]  Peter Dayan,et al.  Q-learning , 1992, Machine Learning.

[35]  Peter Dayan,et al.  Technical Note: Q-Learning , 2004, Machine Learning.

[36]  Shichao Zhang,et al.  Association Rule Mining: Models and Algorithms , 2002 .

[37]  Chengqi Zhang,et al.  Association Rule Mining , 2002, Lecture Notes in Computer Science.

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