Software Engineering for Self-Adaptive Systems III. Assurances

The important concern for modern software systems is to become more cost-effective, while being versatile, flexible, resilient, dependable, energy-efficient, customisable, configurable and self-optimising when reacting to run-time changes that may occur within the system itself, its environment or requirements. One of the most promising approaches to achieving such properties is to equip software systems with self-managing capabilities using self-adaptation mechanisms. Despite recent advances in this area, one key aspect of selfadaptive systems that remains to be tackled in depth is the provision of assurances, i.e., the collection, analysis and synthesis of evidence that the system satisfies its stated functional and non-functional requirements during its operation in the presence of self-adaptation. The provision of assurances for self-adaptive systems is challenging since run-time changes introduce a high degree of uncertainty. This paper on research challenges complements previous roadmap papers on software engineering for selfadaptive systems covering a different set of topics, which are related to assurances, namely, perpetual assurances, composition and decomposition of assurances, and assurances obtained from control theory. This research challenges paper is one of the many results of the Dagstuhl Seminar 13511 on Software Engineering for Self-Adaptive Systems: Assurances which took place in December 2013. c © Springer International Publishing AG 2017 R. de Lemos et al. (Eds.): Self-Adaptive Systems III, LNCS 9640, pp. 3–30, 2017. https://doi.org/10.1007/978-3-319-74183-3_1 4 R. de Lemos et al.

[1]  Nelly Bencomo,et al.  RELAX: Incorporating Uncertainty into the Specification of Self-Adaptive Systems , 2009, 2009 17th IEEE International Requirements Engineering Conference.

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

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

[4]  Ji Zhang,et al.  Using temporal logic to specify adaptive program semantics , 2006, J. Syst. Softw..

[5]  S. Shankar Sastry,et al.  Synthesis for Human-in-the-Loop Control Systems , 2014, TACAS.

[6]  Hongyang Qu,et al.  Assume-Guarantee Verification for Probabilistic Systems , 2010, TACAS.

[7]  Danny Weyns,et al.  A Classification Framework of Uncertainty in Architecture-Based Self-Adaptive Systems with Multiple Quality Requirements , 2015 .

[8]  Marta Z. Kwiatkowska Quantitative verification: models techniques and tools , 2007, ESEC-FSE '07.

[9]  Julie A. McCann,et al.  A survey of autonomic computing—degrees, models, and applications , 2008, CSUR.

[10]  Myra B. Cohen,et al.  Challenges in Composing and Decomposing Assurances for Self-Adaptive Systems , 2013, Software Engineering for Self-Adaptive Systems.

[11]  David Garlan,et al.  Stitch: A language for architecture-based self-adaptation , 2012, J. Syst. Softw..

[12]  Yingxu Wang,et al.  A framework for testing distributed software components , 2005, Canadian Conference on Electrical and Computer Engineering, 2005..

[13]  Jian Lu,et al.  Probabilistic Alternating-time Temporal Logic and Model Checking Algorithm , 2007, Fourth International Conference on Fuzzy Systems and Knowledge Discovery (FSKD 2007).

[14]  Bradley R. Schmerl,et al.  Architecture-based self-protection: composing and reasoning about denial-of-service mitigations , 2014, HotSoS '14.

[15]  Yixiang Chen,et al.  Probabilistic Model Checking of Pipe protocol , 2015, 2015 International Symposium on Theoretical Aspects of Software Engineering.

[16]  Marta Z. Kwiatkowska,et al.  Automated Verification Techniques for Probabilistic Systems , 2011, SFM.

[17]  Toshio Fukuda,et al.  Hierarchical intelligent control for robotic motion , 1994, IEEE Trans. Neural Networks.

[18]  Franz Wotawa,et al.  Adaptive Autonomous Systems - From the System's Architecture to Testing , 2011, ISoLA Workshops.

[19]  David Garlan,et al.  Stochastic game analysis and latency awareness for proactive self-adaptation , 2014, SEAMS 2014.

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

[21]  William W. Streilein,et al.  Survey of Cyber Moving Target Techniques , 2013 .

[22]  Ioannis Konstantinou,et al.  Dependable Horizontal Scaling Based on Probabilistic Model Checking , 2015, 2015 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.

[23]  Bradley R. Schmerl,et al.  Architecture-based self-protecting software systems , 2013, QoSA '13.

[24]  William H. Sanders,et al.  The Multiple-Asymmetric-Utility System Model: A Framework for Modeling Cyber-Human Systems , 2011, 2011 Eighth International Conference on Quantitative Evaluation of SysTems.

[25]  Tim Kelly Managing Complex Safety Cases , 2003 .

[26]  Amir Pnueli,et al.  In Transition From Global to Modular Temporal Reasoning about Programs , 1989, Logics and Models of Concurrent Systems.

[27]  Feng Xia,et al.  Feedback scheduling: an event-driven paradigm , 2007, SIGP.

[28]  Radu Calinescu,et al.  Dynamic QoS Management and Optimization in Service-Based Systems , 2011, IEEE Transactions on Software Engineering.

[29]  A. N. Kolmogorov,et al.  Foundations of the theory of probability , 1960 .

[30]  Bradley R. Schmerl,et al.  On Patterns for Decentralized Control in Self-Adaptive Systems , 2010, Software Engineering for Self-Adaptive Systems.

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

[32]  Sebastián Uchitel,et al.  Controller synthesis: From modelling to enactment , 2013, 2013 35th International Conference on Software Engineering (ICSE).

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

[34]  Ji Wu,et al.  Jata: A Language for Distributed Component Testing , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[35]  Mahesh Viswanathan,et al.  Learning continuous time Markov chains from sample executions , 2004, First International Conference on the Quantitative Evaluation of Systems, 2004. QEST 2004. Proceedings..

[36]  Roger B. Myerson,et al.  Game theory - Analysis of Conflict , 1991 .

[37]  Håkan L. S. Younes Ymer: A Statistical Model Checker , 2005, CAV.

[38]  Hausi A. Müller,et al.  DYNAMICO: A Reference Model for Governing Control Objectives and Context Relevance in Self-Adaptive Software Systems , 2010, Software Engineering for Self-Adaptive Systems.

[39]  Jean-Marc Jézéquel,et al.  Perpetual Assurances for Self-Adaptive Systems , 2019, Software Engineering for Self-Adaptive Systems.

[40]  Mahsa Emami-Taba,et al.  Strategy-Aware Mitigation Using Markov Games for Dynamic Application-Layer Attacks , 2015, 2015 IEEE 16th International Symposium on High Assurance Systems Engineering.

[41]  Hongyang Qu,et al.  Incremental quantitative verification for Markov decision processes , 2011, 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN).

[42]  Robert P. Goldman,et al.  Managing Online Self-adaptation in Real-Time Environments , 2001, IWSAS.

[43]  Jesper Andersson,et al.  On decentralized self-adaptation: lessons from the trenches and challenges for the future , 2010, SEAMS '10.

[44]  Luciano Baresi,et al.  Fuzzy Goals for Requirements-Driven Adaptation , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[45]  Giordano Tamburrelli,et al.  Probabilistic Verification at Runtime for Self-Adaptive Systems , 2013, Assurances for Self-Adaptive Systems.

[46]  Andrea Bianco,et al.  Model Checking of Probabalistic and Nondeterministic Systems , 1995, FSTTCS.

[47]  Adam Betts,et al.  Concurrency testing using schedule bounding: an empirical study , 2014, PPoPP '14.

[48]  Martin Gogolla,et al.  Using Models at Runtime to Address Assurance for Self-Adaptive Systems , 2015, Models@run.time@Dagstuhl.

[49]  Ravishankar K. Iyer,et al.  NFTAPE: a framework for assessing dependability in distributed systems with lightweight fault injectors , 2000, Proceedings IEEE International Computer Performance and Dependability Symposium. IPDS 2000.

[50]  Jesper Andersson,et al.  FORMS: Unifying reference model for formal specification of distributed self-adaptive systems , 2012, TAAS.

[51]  Lars Grunske,et al.  An Efficient Method for Architecture-Based Reliability Evaluation for Evolving Systems with Changing Parameters , 2010, 2010 IEEE 21st International Symposium on Software Reliability Engineering.

[52]  Marin Litoiu,et al.  A performance analysis method for autonomic computing systems , 2007, TAAS.

[53]  Gabor Karsai,et al.  Towards Practical Runtime Verification and Validation of Self-Adaptive Software Systems , 2013, Software Engineering for Self-Adaptive Systems.

[54]  Wouter Joosen,et al.  The MACODO middleware for context-driven dynamic agent organizations , 2010, TAAS.

[55]  Marta Z. Kwiatkowska,et al.  PRISM 4.0: Verification of Probabilistic Real-Time Systems , 2011, CAV.

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

[57]  Nelly Bencomo,et al.  Models@run.time , 2014, Lecture Notes in Computer Science.

[58]  Anastasios Gounaris,et al.  Honoring SLAs on cloud computing services: A control perspective , 2009, 2009 European Control Conference (ECC).

[59]  Fan Ye,et al.  Contract-Based Justification for COTS Component within Safety Critical Applications , 2004, SCS.

[60]  Marta Z. Kwiatkowska,et al.  Performance analysis of probabilistic timed automata using digital clocks , 2003, Formal Methods Syst. Des..

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

[62]  Edmund M. Clarke,et al.  Learning Probabilistic Systems from Tree Samples , 2012, 2012 27th Annual IEEE Symposium on Logic in Computer Science.

[63]  Marta Z. Kwiatkowska,et al.  Stochastic Games for Verification of Probabilistic Timed Automata , 2009, FORMATS.

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

[65]  Radu Calinescu,et al.  Using quantitative analysis to implement autonomic IT systems , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[66]  Bradley R. Schmerl,et al.  Evaluating the effectiveness of the Rainbow self-adaptive system , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[67]  Guy A. Dumont,et al.  Concepts, methods and techniques in adaptive control , 2002, Proceedings of the 2002 American Control Conference (IEEE Cat. No.CH37301).

[68]  Taolue Chen,et al.  PRISM-games: A Model Checker for Stochastic Multi-Player Games , 2013, TACAS.

[69]  Ezio Bartocci,et al.  Runtime Verification with State Estimation , 2011, RV.

[70]  Jeff Magee,et al.  FlashMob: distributed adaptive self-assembly , 2011, SEAMS '11.

[71]  Scott A. Smolka,et al.  Stochastic Game-Based Analysis of the DNS Bandwidth Amplification Attack Using Probabilistic Model Checking , 2014, 2014 Tenth European Dependable Computing Conference.

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

[73]  Gabor Karsai,et al.  An Approach to Self-adaptive Software Based on Supervisory Control , 2001, IWSAS.

[74]  Taolue Chen,et al.  Automatic Verification of Competitive Stochastic Systems , 2012, TACAS.

[75]  Thomas A. Henzinger,et al.  Alternating-time temporal logic , 1999 .

[76]  Rami Bahsoon,et al.  A decentralized self-adaptation mechanism for service-based applications in the cloud , 2013, IEEE Transactions on Software Engineering.

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

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

[79]  Stefan Biffl,et al.  Isolated Testing of Software Components in Distributed Software Systems , 2014, SWQD.

[80]  Peter G. Bishop,et al.  Safety and Assurance Cases: Past, Present and Possible Future - an Adelard Perspective , 2010, SSS.

[81]  Nancy A. Lynch,et al.  Probabilistic Simulations for Probabilistic Processes , 1994, Nord. J. Comput..

[82]  Roy M. Chiulli Quantitative Analysis : An Introduction , 2018 .

[83]  Calin Belta,et al.  Incremental synthesis of control policies for heterogeneous multi-agent systems with linear temporal logic specifications , 2013, 2013 IEEE International Conference on Robotics and Automation.

[84]  Danny Weyns,et al.  Tele Assistance: A Self-Adaptive Service-Based System Exemplar , 2015, 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems.

[85]  L. Zadeh Fuzzy sets as a basis for a theory of possibility , 1999 .

[86]  Sam Malek,et al.  A Systematic Survey of Self-Protecting Software Systems , 2014, ACM Trans. Auton. Adapt. Syst..

[87]  Robert LIN,et al.  NOTE ON FUZZY SETS , 2014 .

[88]  Bradley R. Schmerl,et al.  Evolving an adaptive industrial software system to use architecture-based self-adaptation , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).