Ieee Transactions on Software Engineering 1 a Learning-based Framework for Engineering Feature-oriented Self-adaptive Software Systems

Self-adaptive software systems are capable of adjusting their behavior at runtime to achieve certain functional or quality-of-service goals. Often a representation that reflects the internal structure of the managed system is used to reason about its characteristics and make the appropriate adaptation decisions. However, runtime conditions can radically change the internal structure in ways that were not accounted for during their design. As a result, unanticipated changes at runtime that violate the assumptions made about the internal structure of the system could degrade the accuracy of the adaptation decisions. We present an approach for engineering self-adaptive software systems that brings about two innovations: 1) a feature-oriented approach for representing engineers' knowledge of adaptation choices that are deemed practical, and 2) an online learning-based approach for assessing and reasoning about adaptation decisions that does not require an explicit representation of the internal structure of the managed software system. Engineers' knowledge, represented in feature-models, adds structure to learning, which in turn makes online learning feasible. We present an empirical evaluation of the framework using a real-world self-adaptive software system. Results demonstrate the framework's ability to accurately learn the changing dynamics of the system while achieving efficient analysis and adaptation.

[1]  Marija Mikic-Rakic,et al.  An Extensible Framework for Improving a Distributed Software System's Deployment Architecture , 2012, IEEE Transactions on Software Engineering.

[2]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[3]  Sam Malek,et al.  FUSION: a framework for engineering self-tuning self-adaptive software systems , 2010, FSE '10.

[4]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

[5]  Duminda Wijesekera,et al.  An evidence generation model for web services , 2009, 2009 IEEE International Conference on System of Systems Engineering (SoSE).

[6]  Konrad Rieck,et al.  Language models for detection of unknown attacks in network traffic , 2006, Journal in Computer Virology.

[7]  Sam Malek,et al.  Utilizing architectural styles to enhance the adaptation support of middleware platforms , 2012, Inf. Softw. Technol..

[8]  Carl M. Harris,et al.  Fundamentals of queueing theory (2nd ed.). , 1985 .

[9]  Marcus A. Maloof,et al.  Dynamic weighted majority: a new ensemble method for tracking concept drift , 2003, Third IEEE International Conference on Data Mining.

[10]  Li Zhou,et al.  Adaptive trust negotiation and access control , 2005, SACMAT '05.

[11]  Carlo Ghezzi,et al.  Rethinking the Use of Models in Software Architecture , 2008, QoSA.

[12]  Gerald Tesauro,et al.  Reinforcement Learning in Autonomic Computing: A Manifesto and Case Studies , 2007, IEEE Internet Computing.

[13]  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).

[14]  Sam Malek,et al.  A user-centric approach for improving a distributed software system's deployment architecture , 2007 .

[15]  Paola Inverardi,et al.  Feature oriented evolutions for context-aware adaptive systems , 2010, IWPSE-EVOL '10.

[16]  Chris Chatfield,et al.  The Analysis of Time Series : An Introduction, Sixth Edition , 2003 .

[17]  P. A. Blight The Analysis of Time Series: An Introduction , 1991 .

[18]  Holger Giese,et al.  Incremental model synchronization with triple graph grammars , 2006, MoDELS'06.

[19]  Brice Morin,et al.  An Aspect-Oriented and Model-Driven Approach for Managing Dynamic Variability , 2008, MoDELS.

[20]  Sam Malek,et al.  RESISTing reliability degradation through proactive reconfiguration , 2010, ASE.

[21]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[22]  Marija Mikic-Rakic,et al.  A Framework for Ensuring and Improving Dependability in Highly Distributed Systems , 2004, WADS.

[23]  Gerhard Widmer,et al.  Learning in the Presence of Concept Drift and Hidden Contexts , 1996, Machine Learning.

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

[25]  João Araújo,et al.  MATA: A Unified Approach for Composing UML Aspect Models Based on Graph Transformation , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

[26]  Giuseppe Valetto,et al.  Elicitation and utilization of application-level utility functions , 2009, ICAC '09.

[27]  Giovanni Toffetti Carughi,et al.  Protecting SLAs with surrogate models , 2010, PESOS '10.

[28]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[29]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[30]  D. Edwards Data Mining: Concepts, Models, Methods, and Algorithms , 2003 .

[31]  Daniel A. Menascé,et al.  Assessing the robustness of self-managing computer systems under highly variable workloads , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

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

[33]  Wei-Yin Loh,et al.  Classification and regression trees , 2011, WIREs Data Mining Knowl. Discov..

[34]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[35]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

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

[37]  Sam Malek,et al.  Qos architectural patterns for self-architecting software systems , 2010, ICAC '10.

[38]  J. Ross Quinlan,et al.  Induction of Decision Trees , 1986, Machine Learning.

[39]  Yuriy Brun,et al.  An architecture-driven software mobility framework , 2010, J. Syst. Softw..

[40]  Brice Morin,et al.  Taming Dynamically Adaptive Systems using models and aspects , 2009, 2009 IEEE 31st International Conference on Software Engineering.

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

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

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

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

[45]  J. Freidman,et al.  Multivariate adaptive regression splines , 1991 .

[46]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[47]  Marcus A. Maloof,et al.  Dynamic Weighted Majority: An Ensemble Method for Drifting Concepts , 2007, J. Mach. Learn. Res..

[48]  Sam Malek,et al.  A framework for utility-based service oriented design in SASSY , 2010, WOSP/SIPEW '10.

[49]  Shmuel Onn Convex Discrete Optimization , 2009, Encyclopedia of Optimization.

[50]  Lawrence R. Rabiner,et al.  A tutorial on hidden Markov models and selected applications in speech recognition , 1989, Proc. IEEE.

[51]  Vicente Pelechano,et al.  Autonomic Computing through Reuse of Variability Models at Runtime: The Case of Smart Homes , 2009, Computer.

[52]  William F. Gilreath,et al.  Concurrency State Models and Java Programs , 2000, Parallel Distributed Comput. Pract..

[53]  R. Syski,et al.  Fundamentals of Queueing Theory , 1999, Technometrics.

[54]  Ian H. Witten,et al.  Induction of model trees for predicting continuous classes , 1996 .

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

[56]  Gürsel Serpen,et al.  Application of Machine Learning Algorithms to KDD Intrusion Detection Dataset within Misuse Detection Context , 2003, MLMTA.

[57]  Dongbin Zhao,et al.  Supervised adaptive dynamic programming based adaptive cruise control , 2011, 2011 IEEE Symposium on Adaptive Dynamic Programming and Reinforcement Learning (ADPRL).

[58]  Franck Fleurey,et al.  A Domain Specific Modeling Language Supporting Specification, Simulation and Execution of Dynamic Adaptive Systems , 2009, MoDELS.

[59]  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.

[60]  Sam Malek,et al.  Scenario-Driven Dynamic Analysis of Distributed Architectures , 2007, FASE.

[61]  G. Nemhauser,et al.  Integer Programming , 2020 .

[62]  David Garlan,et al.  User Guidance of Resource-Adaptive Systems , 2008, ICSOFT.