Challenges in Composing and Decomposing Assurances for Self-Adaptive Systems

Self-adaptive software systems adapt to changes in the environment, in the system itself, in their requirements, or in their business objectives. Typically, these systems attempt to maintain system goals at run time and often provide assurance that they will meet their goals under dynamic and uncertain circumstances. While significant research has focused on ways to engineer self-adaptive capabilities into both new and legacy software systems, less work has been conducted on how to assure that self-adaptation maintains system goals. For traditional, especially safety-critical software systems, assurance techniques decompose assurances into sub-goals and evidence that can be provided by parts of the system. Existing approaches also exist for composing assurances, in terms of composing multiple goals and composing assurances in systems of systems. While some of these techniques may be applied to self-adaptive systems, we argue that several significant challenges remain in applying them to self-adaptive systems in this chapter. We discuss how existing assurance techniques can be applied to composing and decomposing assurances for self-adaptive systems, highlight the challenges in applying them, summarize existing research to address some of these challenges, and identify gaps and opportunities to be addressed by future research.

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

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

[3]  Yuriy Brun,et al.  Entrusting Private Computation and Data to Untrusted Networks , 2013, IEEE Transactions on Dependable and Secure Computing.

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

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

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

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

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

[9]  Bradley R. Schmerl,et al.  Using Architectural Style as a Basis for System Self-repair , 2002, WICSA.

[10]  Iain Bate,et al.  Architectural considerations in the certification of modular systems , 2002, Reliab. Eng. Syst. Saf..

[11]  Axel van Lamsweerde,et al.  Goal-Oriented Requirements Engineering: A Guided Tour , 2001, RE.

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

[13]  Kester Clegg,et al.  Using a Software Safety Argument Pattern Catalogue: Two Case Studies , 2011, SAFECOMP.

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

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

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

[17]  Samuel Kounev,et al.  Modeling run-time adaptation at the system architecture level in dynamic service-oriented environments , 2013, Service Oriented Computing and Applications.

[18]  Yuriy Brun,et al.  Path finding in the tile assembly model , 2009, Theor. Comput. Sci..

[19]  Franco Zambonelli,et al.  A taxonomy of architectural patterns for self-adaptive systems , 2013, C3S2E '13.

[20]  Yuriy Brun,et al.  Fault and adversary tolerance as an emergent property of distributed systems' software architectures , 2007, EFTS '07.

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

[22]  Tim Kelly,et al.  The Goal Structuring Notation – A Safety Argument Notation , 2004 .

[23]  Myra B. Cohen,et al.  Failure Avoidance in Configurable Systems through Feature Locality , 2013, Assurances for Self-Adaptive Systems.

[24]  Bradley R. Schmerl,et al.  Diagnosing unobserved components in self-adaptive systems , 2014, SEAMS 2014.

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

[26]  Raian Ali,et al.  Optimizing Monitoring Requirements in Self-adaptive Systems , 2012, BMMDS/EMMSAD.

[27]  Bernhard Schätz,et al.  Towards Modular Certification using Integrated Model-Based Safety Cases , 2013 .

[28]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[29]  Yuriy Brun,et al.  Smart Redundancy for Distributed Computation , 2011, 2011 31st International Conference on Distributed Computing Systems.

[30]  Uwe Aßmann,et al.  Towards Systematic Model-based Testing of Self-adaptive Software , 2013 .

[31]  Nelly Bencomo,et al.  A Goal-Based Modeling Approach to Develop Requirements of an Adaptive System with Environmental Uncertainty , 2009, MoDELS.

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

[33]  Marin Litoiu,et al.  Mitigating DoS Attacks Using Performance Model-Driven Adaptive Algorithms , 2014, TAAS.

[34]  John A. McDermid,et al.  Safety Case Construction and Reuse Using Patterns , 1997, SAFECOMP.

[35]  Bradley R. Schmerl,et al.  Architecture-based self-adaptation in the presence of multiple objectives , 2006, SEAMS '06.

[36]  Betty H. C. Cheng,et al.  Towards run-time adaptation of test cases for self-adaptive systems in the face of uncertainty , 2014, SEAMS 2014.

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

[38]  Michael L. Fredman,et al.  The AETG System: An Approach to Testing Based on Combinatiorial Design , 1997, IEEE Trans. Software Eng..

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

[40]  Bradley R. Schmerl,et al.  Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure , 2004, Computer.

[41]  Akinori Yonezawa,et al.  Reflection in an object-oriented concurrent language , 1988, OOPSLA '88.

[42]  Yuriy Brun,et al.  Keeping Data Private while Computing in the Cloud , 2012, 2012 IEEE Fifth International Conference on Cloud Computing.

[43]  Yuriy Brun,et al.  An Architectural Style for Solving Computationally Intensive Problems on Large Networks , 2007, International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07).

[44]  Pierre-Yves Schobbens,et al.  Model Checking Adaptive Software with Featured Transition Systems , 2013, Assurances for Self-Adaptive Systems.

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

[46]  Bradley R. Schmerl,et al.  Diagnosing architectural run-time failures , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[47]  Yuriy Brun,et al.  Self-Adapting Reliability in Distributed Software Systems , 2015, IEEE Transactions on Software Engineering.

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

[49]  Danny Weyns,et al.  A survey of formal methods in self-adaptive systems , 2012, C3S2E '12.

[50]  NICHOLAS R. JENNINGS,et al.  An agent-based approach for building complex software systems , 2001, CACM.

[51]  Myra B. Cohen,et al.  Constructing Interaction Test Suites for Highly-Configurable Systems in the Presence of Constraints: A Greedy Approach , 2008, IEEE Transactions on Software Engineering.

[52]  John Mylopoulos,et al.  Awareness requirements for adaptive systems , 2011, SEAMS '11.