Control Strategies for Self-Adaptive Software Systems

The pervasiveness and growing complexity of software systems are challenging software engineering to design systems that can adapt their behavior to withstand unpredictable, uncertain, and continuously changing execution environments. Control theoretical adaptation mechanisms have received growing interest from the software engineering community in the last few years for their mathematical grounding, allowing formal guarantees on the behavior of the controlled systems. However, most of these mechanisms are tailored to specific applications and can hardly be generalized into broadly applicable software design and development processes. This article discusses a reference control design process, from goal identification to the verification and validation of the controlled system. A taxonomy of the main control strategies is introduced, analyzing their applicability to software adaptation for both functional and nonfunctional goals. A brief extract on how to deal with uncertainty complements the discussion. Finally, the article highlights a set of open challenges, both for the software engineering and the control theory research communities.

[1]  MengChu Zhou,et al.  Modeling Self-Adaptive Software Systems With Learning Petri Nets , 2014, IEEE Transactions on Systems, Man, and Cybernetics: Systems.

[2]  Chenyang Lu,et al.  Introduction to Control Theory And Its Application to Computing Systems , 2008 .

[3]  Z. Artstein Discrete and Continuous Bang-Bang and Facial Spaces Or: Look for the Extreme Points , 1980 .

[4]  Richard Veras,et al.  When polyhedral transformations meet SIMD code generation , 2013, PLDI.

[5]  Dinakar Dhurjati,et al.  Ensuring code safety without runtime checks for real-time control systems , 2002, CASES '02.

[6]  Yixin Diao,et al.  Feedback Control of Computing Systems , 2004 .

[7]  Johan Tordsson,et al.  PEAS , 2016, ACM Trans. Model. Perform. Evaluation Comput. Syst..

[8]  J. Filar,et al.  Competitive Markov Decision Processes , 1996 .

[9]  Lennart Ljung,et al.  System Identification: Theory for the User , 1987 .

[10]  Mirco Tribastone,et al.  A fluid model for layered queueing networks , 2013, IEEE Transactions on Software Engineering.

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

[12]  Janusz Zalewski,et al.  Pattern-based control systems engineering , 2003 .

[13]  Pravin Varaiya,et al.  Stochastic Systems: Estimation, Identification, and Adaptive Control , 1986 .

[14]  Nelly Bencomo,et al.  A world full of surprises: bayesian theory of surprise to quantify degrees of uncertainty , 2014, ICSE Companion.

[15]  Thomas Vogel,et al.  Model-Driven Engineering of Self-Adaptive Software with EUREMA , 2014, ACM Trans. Auton. Adapt. Syst..

[16]  Woongki Baek,et al.  Green: a framework for supporting energy-conscious programming using controlled approximation , 2010, PLDI '10.

[17]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.

[18]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[19]  Marco C. Campi,et al.  A Sampling-and-Discarding Approach to Chance-Constrained Optimization: Feasibility and Optimality , 2011, J. Optim. Theory Appl..

[20]  Martin Odersky,et al.  Spiral in scala: towards the systematic construction of generators for performance libraries , 2014, GPCE '13.

[21]  Sebastián Uchitel,et al.  Synthesis of live behaviour models , 2010, FSE '10.

[22]  Claus Pahl,et al.  Fuzzy Self-Learning Controllers for Elasticity Management in Dynamic Cloud Architectures , 2016, 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[23]  Paulo Tabuada,et al.  Event-Triggered Real-Time Scheduling of Stabilizing Control Tasks , 2007, IEEE Transactions on Automatic Control.

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

[25]  Amir Pnueli,et al.  Synthesis of Reactive(1) designs , 2006, J. Comput. Syst. Sci..

[26]  W. P. M. H. Heemels,et al.  Analysis of event-driven controllers for linear systems , 2008, Int. J. Control.

[27]  Jan Lunze,et al.  A state-feedback approach to event-based control , 2010, Autom..

[28]  Naijun Zhan,et al.  Formal Modelling, Analysis and Verification of Hybrid Systems , 2013, ICTAC Training School on Software Engineering.

[29]  Taolue Chen,et al.  On the complexity of model checking interval-valued discrete time Markov chains , 2013, Inf. Process. Lett..

[30]  Xiaobo Zhou,et al.  Autonomic Provisioning with Self-Adaptive Neural Fuzzy Control for Percentile-Based Delay Guarantee , 2013, TAAS.

[31]  Anca Muscholl,et al.  Automated Synthesis of Distributed Controllers , 2015, ICALP.

[32]  Jan Jantzen,et al.  Foundations of Fuzzy Control: A Practical Approach , 2013 .

[33]  Rogério de Lemos,et al.  Robustness Evaluation of Controllers in Self-Adaptive Software Systems , 2013, 2013 Sixth Latin-American Symposium on Dependable Computing.

[34]  Jan Maluszy¿ski Verification, Model Checking, and Abstract Interpretation , 2009, Lecture Notes in Computer Science.

[35]  Daniel Liberzon,et al.  Switching in Systems and Control , 2003, Systems & Control: Foundations & Applications.

[36]  Edmund M. Clarke,et al.  Satisfiability modulo ODEs , 2013, 2013 Formal Methods in Computer-Aided Design.

[37]  Earl T. Barr,et al.  Uncertainty, risk, and information value in software requirements and architecture , 2014, ICSE.

[38]  Mi-Ching Tsai,et al.  Robust and Optimal Control , 2014 .

[39]  Jesse H. Poore,et al.  Markov analysis of software specifications , 1993, TSEM.

[40]  Éric Rutten,et al.  Integrating discrete controller synthesis into a reactive programming language compiler , 2013, Discret. Event Dyn. Syst..

[41]  Kang G. Shin,et al.  What does control theory bring to systems research? , 2009, OPSR.

[42]  Viktor Kuncak,et al.  Certifying Solutions for Numerical Constraints , 2012, RV.

[43]  Henry Hoffmann,et al.  Automated design of self-adaptive software with control-theoretical formal guarantees , 2014, Software Engineering & Management.

[44]  Rajeev Alur,et al.  Formal verification of hybrid systems , 2011, 2011 Proceedings of the Ninth ACM International Conference on Embedded Software (EMSOFT).

[45]  Karl Johan,et al.  Computer Control: An Overview , 2002 .

[46]  Thomas Vogel,et al.  Software Engineering Meets Control Theory , 2015, 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems.

[47]  Lionel C. Briand,et al.  Automated Test Suite Generation for Time-Continuous Simulink Models , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

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

[49]  Jing Xu,et al.  On the Use of Fuzzy Modeling in Virtualized Data Center Management , 2007, Fourth International Conference on Autonomic Computing (ICAC'07).

[50]  Simon C. Lambert,et al.  Knowledge-Based Control Systems , 2001, SOFSEM.

[51]  D. Bushaw,et al.  Functional analysis and time optimal control , 1972 .

[52]  Luciano Baresi,et al.  Toward Open-World Software: Issue and Challenges , 2006, Computer.

[53]  Gail E. Kaiser,et al.  A control theory foundation for self-managing computing systems , 2005, IEEE Journal on Selected Areas in Communications.

[54]  Mary Shaw,et al.  Visibility of control in adaptive systems , 2008, ULSSIS '08.

[55]  Karen Rudie,et al.  A survey of modeling and control of hybrid systems , 1997 .

[56]  Maria Prandini,et al.  The scenario approach for systems and control design , 2009, Annu. Rev. Control..

[57]  Naresh K. Sinha,et al.  Modern Control Systems , 1981, IEEE Transactions on Systems, Man, and Cybernetics.

[58]  Henry Hoffmann,et al.  Automated multi-objective control for self-adaptive software design , 2015, ESEC/SIGSOFT FSE.

[59]  Jf Baldwin,et al.  An Introduction to Fuzzy Logic Applications in Intelligent Systems , 1992 .

[60]  Henry Hoffmann,et al.  CoAdapt: Predictable Behavior for Accuracy-Aware Applications Running on Power-Aware Systems , 2014, 2014 26th Euromicro Conference on Real-Time Systems.

[61]  Daniela E. Damian,et al.  ACon: A learning-based approach to deal with uncertainty in contextual requirements at runtime , 2016, Inf. Softw. Technol..

[62]  Jing Xu,et al.  QoS-Driven Cloud Resource Management through Fuzzy Model Predictive Control , 2015, 2015 IEEE International Conference on Autonomic Computing.

[63]  Luciano Baresi,et al.  Toward open-world software: Issues and challenges , 2006, Computer.

[64]  Ricardo G. Sanfelice,et al.  Hybrid Dynamical Systems: Modeling, Stability, and Robustness , 2012 .

[65]  Ian Postlethwaite,et al.  Multivariable Feedback Control: Analysis and Design , 1996 .

[66]  Stephen P. Boyd,et al.  Linear controller design: limits of performance via convex optimization , 1990 .

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

[68]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[69]  Holger Giese,et al.  Living with Uncertainty in the Age of Runtime Models , 2014, Models@run.time@Dagstuhl.

[70]  Joseph L. Hellerstein,et al.  Applying control theory in the real world: experience with building a controller for the .NET thread pool , 2010, PERV.

[71]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[72]  Martin Fränzle,et al.  HySAT: An efficient proof engine for bounded model checking of hybrid systems , 2007, Formal Methods Syst. Des..

[73]  Insup Lee,et al.  Cyber-physical systems: The next computing revolution , 2010, Design Automation Conference.

[74]  Jie Liu,et al.  Cuanta: quantifying effects of shared on-chip resource interference for consolidated virtual machines , 2011, SoCC.

[75]  Alberto Leva,et al.  A dynamic modelling framework for control-based computing system design , 2015 .

[76]  Scott A. Mahlke,et al.  Paraprox: pattern-based approximation for data parallel applications , 2014, ASPLOS.

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

[78]  Christel Baier,et al.  Controller Synthesis for Probabilistic Systems , 2004, IFIP TCS.

[79]  J. Corriou Chapter 12 – Nonlinear Control , 2017 .

[80]  Sam Malek,et al.  Uncertainty in Self-Adaptive Software Systems , 2010, Software Engineering for Self-Adaptive Systems.

[81]  Marko Bacic,et al.  Model predictive control , 2003 .

[82]  Lucas C. Cordeiro,et al.  DSVerifier: A Bounded Model Checking Tool for Digital Systems , 2015, SPIN.

[83]  L. Grüne,et al.  Nonlinear Model Predictive Control : Theory and Algorithms. 2nd Edition , 2011 .

[84]  Carlo Ghezzi,et al.  Self-adaptive software needs quantitative verification at runtime , 2012, CACM.

[85]  Sujata Banerjee,et al.  A simple approximation for modeling nonstationary queues , 1996, Proceedings of IEEE INFOCOM '96. Conference on Computer Communications.

[86]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[87]  Tai C Yang,et al.  Networked control system: a brief survey , 2006 .

[88]  Joseph L. Hellerstein,et al.  Using Control Theory to Achieve Service Level Objectives In Performance Management , 2002, Real-Time Systems.

[89]  Gail E. Kaiser,et al.  Self-managing systems: a control theory foundation , 2005, 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05).

[90]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[91]  Davide Brugali,et al.  Software Engineering for Experimental Robotics , 2007 .

[92]  G. Stein,et al.  Respect the unstable , 2003 .

[93]  Evanghelos Zafiriou,et al.  Robust process control , 1987 .

[94]  Krishnendu Chatterjee,et al.  Measuring and Synthesizing Systems in Probabilistic Environments , 2010, J. ACM.

[95]  Karl Johan Åström,et al.  Adaptive Control , 1989, Embedded Digital Control with Microcontrollers.

[96]  Graham C. Goodwin,et al.  Robust model predictive control: reflections and opportunities , 2014 .

[97]  Qilu Sun,et al.  LPV Model and Its Application in Web Server Performance Control , 2008, 2008 International Conference on Computer Science and Software Engineering.

[98]  Edward D. Lazowska,et al.  Feedback control techniques for performance management of computing systems , 2010 .

[99]  Pravin Varaiya,et al.  What's decidable about hybrid automata? , 1995, STOC '95.

[100]  David Garlan,et al.  Architecture-Based Planning of Software Evolution , 2014, Int. J. Softw. Eng. Knowl. Eng..

[101]  Bran Selic,et al.  Understanding Uncertainty in Cyber-Physical Systems: A Conceptual Model , 2016, ECMFA.

[102]  Lijun Zhang,et al.  PARAM: A Model Checker for Parametric Markov Models , 2010, CAV.

[103]  Joseph L. Hellerstein Engineering autonomic systems , 2009, ICAC '09.

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

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

[106]  Sebastian Junges,et al.  PROPhESY: A PRObabilistic ParamEter SYnthesis Tool , 2015, CAV.

[107]  Alberto L. Sangiovanni-Vincentelli,et al.  Polynomial-Time Verification of PCTL Properties of MDPs with Convex Uncertainties , 2013, CAV.

[108]  James Worrell,et al.  LTL Model Checking of Interval Markov Chains , 2013, TACAS.

[109]  Thaís Vasconcelos Batista,et al.  Managing Dynamic Reconfiguration in Component-Based Systems , 2005, EWSA.

[110]  Edward A. Lee,et al.  Actor-oriented control system design: a responsible framework perspective , 2004, IEEE Transactions on Control Systems Technology.

[111]  Tomás Brázdil,et al.  Controller Synthesis and Verification for Markov Decision Processes with Qualitative Branching Time Objectives , 2008, ICALP.

[112]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[113]  Yudi Wei,et al.  DynaQoS: Model-free self-tuning fuzzy control of virtualized resources for QoS provisioning , 2011, 2011 IEEE Nineteenth IEEE International Workshop on Quality of Service.

[114]  Tore Hägglund,et al.  Advanced PID Control , 2005 .

[115]  T. Henzinger,et al.  Model-Checking ω-Regular Properties of Interval Markov Chains , 2008 .

[116]  Alberto Leva,et al.  Control-Based Operating System Design , 2013, IET Control Engineering Series.

[117]  Jana Kosecka,et al.  Control of Discrete Event Systems , 1992 .

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

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

[120]  Nelly Bencomo,et al.  Relaxing claims: coping with uncertainty while evaluating assumptions at run time , 2012, MODELS'12.

[121]  Steffen Becker,et al.  Quantitative Evaluation of Model-Driven Performance Analysis and Simulation of Component-Based Architectures , 2015, IEEE Transactions on Software Engineering.

[122]  Karl Johan Åström,et al.  Event Based Control , 2008 .

[123]  Takeo Kanade,et al.  Software Engineering for Self-Adaptive Systems II , 2013, Lecture Notes in Computer Science.

[124]  David Garlan,et al.  Reasoning about Human Participation in Self-Adaptive Systems , 2015, 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems.

[125]  Manel Velasco,et al.  Self-triggered networked control systems: An experimental case study , 2010, 2010 IEEE International Conference on Industrial Technology.

[126]  David Garlan,et al.  Handling Uncertainty in Autonomic Systems , 2007 .

[127]  Carlos Bordons Alba,et al.  Model Predictive Control , 2012 .

[128]  David F. Bacon,et al.  Compiling a high-level language for GPUs: (via language support for architectures and compilers) , 2012, PLDI.

[129]  Jerry M. Mendel,et al.  Perceptual Computing: Aiding People in Making Subjective Judgments , 2010 .

[130]  Henry Hoffmann,et al.  Comparison of Decision-Making Strategies for Self-Optimization in Autonomic Computing Systems , 2012, TAAS.

[131]  Martin L. Puterman,et al.  Markov Decision Processes: Discrete Stochastic Dynamic Programming , 1994 .

[132]  Alberto Leva,et al.  Tuning of event-based industrial controllers with simple stability guarantees , 2013 .

[133]  Claus Pahl,et al.  Autonomic resource provisioning for cloud-based software , 2014, SEAMS 2014.

[134]  Joseph L. Hellerstein,et al.  Using Control Theory to Achieve Service Level Objectives In Performance Management , 2001, 2001 IEEE/IFIP International Symposium on Integrated Network Management Proceedings. Integrated Network Management VII. Integrated Management Strategies for the New Millennium (Cat. No.01EX470).

[135]  Carlo Ghezzi,et al.  Self-adaptive software meets control theory: A preliminary approach supporting reliability requirements , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[136]  Edmund M. Clarke,et al.  Bayesian statistical model checking with application to Stateflow/Simulink verification , 2010, Formal Methods in System Design.

[137]  Krishnendu Chatterjee,et al.  Quantitative stochastic parity games , 2004, SODA '04.

[138]  Paulo Tabuada,et al.  An introduction to event-triggered and self-triggered control , 2012, 2012 IEEE 51st IEEE Conference on Decision and Control (CDC).

[139]  Riccardo Scattolini,et al.  Architectures for distributed and hierarchical Model Predictive Control - A review , 2009 .

[140]  Jun Han,et al.  A systematic survey on the design of self-adaptive software systems using control engineering approaches , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[141]  Alberto Bemporad,et al.  Robust model predictive control: A survey , 1998, Robustness in Identification and Control.

[142]  Jan Lunze,et al.  Handbook of hybrid systems control : theory, tools, applications , 2009 .

[143]  Philippe Collet,et al.  ACTRESS: domain-specific modeling of self-adaptive software architectures , 2014, SAC.

[144]  Eric C. Kerrigan,et al.  Predictive Control Using an FPGA With Application to Aircraft Control , 2014, IEEE Transactions on Control Systems Technology.

[145]  William S. Levine,et al.  The Control Systems Handbook , 2009 .

[146]  M. Hoagland,et al.  Feedback Systems An Introduction for Scientists and Engineers SECOND EDITION , 2015 .

[147]  Henry Hoffmann,et al.  Dynamic knobs for responsive power-aware computing , 2011, ASPLOS XVI.

[148]  Karl-Erik Årzén,et al.  Brownout: building more robust cloud applications , 2014, ICSE.

[149]  Sebastián Uchitel,et al.  MORPH: a reference architecture for configuration and behaviour self-adaptation , 2015, CTSE@SIGSOFT FSE.

[150]  Eric C. Kerrigan Co-design of hardware and algorithms for real-time optimization , 2014, 2014 European Control Conference (ECC).

[151]  Carlo Ghezzi,et al.  Run-time efficient probabilistic model checking , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[153]  Marta Z. Kwiatkowska,et al.  Automated Verification and Strategy Synthesis for Probabilistic Systems , 2013, ATVA.

[154]  Jesper Andersson,et al.  Knowledge evolution in autonomic software product lines , 2011, SPLC '11.

[155]  Valeriy Vyatkin,et al.  Software Engineering in Industrial Automation: State-of-the-Art Review , 2013, IEEE Transactions on Industrial Informatics.

[156]  Hausi A. Müller,et al.  A framework for evaluating quality-driven self-adaptive software systems , 2011, SEAMS '11.

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

[158]  P. Varaiya,et al.  What ' s Decidable about Hybrid Automata ? 1 , 1995 .

[159]  Paola Inverardi,et al.  Software Architecture for Correct Components Assembly , 2003, SFM.

[160]  Richard N. Taylor,et al.  Towards architecture-based self-healing systems , 2002, WOSS '02.

[161]  Krishnendu Chatterjee,et al.  Simple Stochastic Parity Games , 2003, CSL.

[162]  Kai-Yuan Cai,et al.  Optimal software testing and adaptive software testing in the context of software cybernetics , 2002, Inf. Softw. Technol..

[163]  Jan M. Maciejowski,et al.  Predictive control : with constraints , 2002 .

[164]  Carlo Ghezzi,et al.  Model evolution by run-time parameter adaptation , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[165]  Alex Simpkins,et al.  System Identification: Theory for the User, 2nd Edition (Ljung, L.; 1999) [On the Shelf] , 2012, IEEE Robotics & Automation Magazine.

[166]  Sebastián Uchitel,et al.  Synthesizing nonanomalous event-based controllers for liveness goals , 2013, TSEM.

[167]  Martin Odersky,et al.  Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs , 2010, GPCE '10.

[168]  Viktor Kuncak,et al.  Sound compilation of reals , 2013, POPL.

[169]  Fan Wu,et al.  Genetic improvement for adaptive software engineering (keynote) , 2014, SEAMS 2014.

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

[171]  John Mylopoulos,et al.  System Identification for Adaptive Software Systems: A Requirements Engineering Perspective , 2011, ER.