Achieving Adaptation for Adaptive Systems via Runtime Verification: A Model-Driven Approach

Self-adaptive systems (SASs) are capable of adjusting its behavior in response to meaningful changes in the operational con-text and itself. The adaptation needs to be performed automatically through self-managed reactions and decision-making processes at runtime. To support this kind of automatic behavior, SASs must be endowed by a rich runtime support that can detect requirements violations and reason about adaptation decisions. Requirements Engineering for SASs primarily aims to model adaptation logic and mechanisms. Requirements models will guide the design decisions and runtime behaviors of sys-tem-to-be. This paper proposes a model-driven approach for achieving adaptation against non-functional requirements (NFRs), i.e. reliability and performances. The approach begins with the models in RE stage and provides runtime support for self-adaptation. We capture adaptation mechanisms as graphical elements in the goal model. By assigning reliability and performance attributes to related system tasks, we derive the tagged sequential diagram for specifying the reliability and performances of system behaviors. To formalize system behavior, we transform the requirements model to the corresponding behavior model, expressed by Label Transition Systems (LTS). To analyze the reliability requirements and performance requirements, we merged the sequential diagram and LTS to a variable Discrete-Time Markov Chains (DTMC) and a variable Continuous-Time Markov Chains (CTMC) respectively. Adaptation candidates are characterized by the variable states. The optimal decision is derived by verifying the concerned NFRs and reducing the decision space. Our approach is implemented through the demonstration of a mobile information system.

[1]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .

[2]  Raian Ali,et al.  Location-Based Software Modeling and Analysis: Tropos-Based Approach , 2008, ER.

[3]  Andrew Hinton,et al.  PRISM: A Tool for Automatic Verification of Probabilistic Systems , 2006, TACAS.

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

[5]  Valérie Issarny,et al.  Formal Methods for Eternal Networked Software Systems , 2011, Lecture Notes in Computer Science.

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

[7]  Christel Baier,et al.  Principles of model checking , 2008 .

[8]  Eila Niemelä,et al.  Survey of reliability and availability prediction methods from the viewpoint of software architecture , 2007, Software & Systems Modeling.

[9]  Carlo Ghezzi,et al.  Model-based verification of quantitative non-functional properties for software product lines , 2013, Inf. Softw. Technol..

[10]  Roger C. Cheung,et al.  A User-Oriented Software Reliability Model , 1978, IEEE Transactions on Software Engineering.

[11]  John Mylopoulos,et al.  Self-Repair through Reconfiguration: A Requirements Engineering Approach , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[12]  Anna Perini,et al.  Towards a Requirements Modeling Language for Self-Adaptive Systems , 2012, REFSQ.

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

[14]  Raian Ali,et al.  A goal-based framework for contextual requirements modeling and analysis , 2010, Requirements Engineering.

[15]  Yijun Yu,et al.  Monitoring and diagnosing software requirements , 2009, Automated Software Engineering.

[16]  Anthony Finkelstein,et al.  A framework for requirements engineering for context-aware services , 2001, ICSE 2001.

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

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

[19]  Luciano Baresi,et al.  Adaptive Goals for Self-Adaptive Service Compositions , 2010, 2010 IEEE International Conference on Web Services.

[20]  Danny Weyns,et al.  Guaranteeing robustness in a mobile learning Application using formally verified MAPE loops , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[21]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[22]  Heather Goldsby,et al.  AMOEBA-RT: Run-Time Verification of Adaptive Software , 2008, MoDELS.

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

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

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

[26]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[27]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[28]  Zhi Jin,et al.  A Systematic Literature Review of Requirements Modeling and Analysis for Self-adaptive Systems , 2014, REFSQ.

[29]  Nelly Bencomo,et al.  Requirements-Aware Systems: A Research Agenda for RE for Self-adaptive Systems , 2010, 2010 18th IEEE International Requirements Engineering Conference.

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

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

[32]  Marta Z. Kwiatkowska,et al.  PRISM 2.0: a tool for probabilistic model checking , 2004, First International Conference on the Quantitative Evaluation of Systems, 2004. QEST 2004. Proceedings..

[33]  Carlo Ghezzi,et al.  Reasoning on Non-Functional Requirements for Integrated Services , 2009, 2009 17th IEEE International Requirements Engineering Conference.

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

[35]  Yongwang Zhao,et al.  Development of global specification for dynamically adaptive software , 2013, Computing.

[36]  Zhi Jin,et al.  Modeling and Specifying Parametric Adaptation Mechanism for Self-Adaptive Systems , 2014, APRES.

[37]  Christel Baier,et al.  Model-Checking Algorithms for Continuous-Time Markov Chains , 2002, IEEE Trans. Software Eng..

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

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

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