Supporting Self-Adaptation via Quantitative Verification and Sensitivity Analysis at Run Time

Modern software-intensive systems often interact with an environment whose behavior changes over time, often unpredictably. The occurrence of changes may jeopardize their ability to meet the desired requirements. It is therefore desirable to design software in a way that it can self-adapt to the occurrence of changes with limited, or even without, human intervention. Self-adaptation can be achieved by bringing software models and model checking to run time, to support perpetual automatic reasoning about changes. Once a change is detected, the system itself can predict if requirements violations may occur and enable appropriate counter-actions. However, existing mainstream model checking techniques and tools were not conceived for run-time usage; hence they hardly meet the constraints imposed by on-the-fly analysis in terms of execution time and memory usage. This paper addresses this issue and focuses on perpetual satisfaction of non-functional requirements, such as reliability or energy consumption. Its main contribution is the description of a mathematical framework for run-time efficient probabilistic model checking. Our approach statically generates a set of verification conditions that can be efficiently evaluated at run time as soon as changes occur. The proposed approach also supports sensitivity analysis, which enables reasoning about the effects of changes and can drive effective adaptation strategies.

[1]  Thomas A. Henzinger,et al.  Extreme Model Checking , 2003, Verification: Theory and Practice.

[2]  Sheldon M. Ross,et al.  Stochastic Processes , 2018, Gauge Integral Structures for Stochastic Calculus and Quantum Electrodynamics.

[3]  Carlo Ghezzi,et al.  Incremental Syntactic-Semantic Reliability Analysis of Evolving Structured Workflows , 2014, ISoLA.

[4]  Joost-Pieter Katoen,et al.  Bisimulation Minimisation Mostly Speeds Up Probabilistic Model Checking , 2007, TACAS.

[5]  R. Goldblatt Logics of Time and Computation , 1987 .

[6]  Christel Baier,et al.  Reduction Techniques for Model Checking Markov Decision Processes , 2008, 2008 Fifth International Conference on Quantitative Evaluation of Systems.

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

[8]  Tiziana Margaria,et al.  Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change , 2012, Lecture Notes in Computer Science.

[9]  Marta Z. Kwiatkowska,et al.  Stochastic Model Checking , 2007, SFM.

[10]  Lars Grunske,et al.  Lightweight Adaptive Filtering for Efficient Learning and Updating of Probabilistic Models , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[11]  Kenneth Dixon,et al.  Introduction to Stochastic Modeling , 2011 .

[12]  A. Bojanczyk Complexity of Solving Linear Systems in Different Models of Computation , 1984 .

[13]  Rupak Majumdar,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 1997, Lecture Notes in Computer Science.

[14]  Carlo Ghezzi,et al.  Reliability Analysis of Component-Based Systems with Multiple Failure Modes , 2010, CBSE.

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

[16]  Hongyang Qu,et al.  On Incremental Quantitative Verification for Probabilistic Systems , 2014, HOWARD-60.

[17]  Lars Grunske,et al.  Specification patterns for probabilistic quality properties , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[18]  Carlo Ghezzi,et al.  Managing non-functional uncertainty via model-driven adaptivity , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[19]  Lijun Zhang,et al.  Probabilistic Reachability for Parametric Markov Models , 2009, SPIN.

[20]  Mahesh Viswanathan,et al.  Incremental state-space exploration for programs with dynamically allocated data , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[21]  Michael T. Heath,et al.  Parallel Algorithms for Matrix Computations , 1987 .

[22]  David S. Rosenblum,et al.  Perturbation analysis of stochastic systems with empirical distribution parameters , 2014, ICSE.

[23]  D. Walker,et al.  Patterns and Skeletons for Parallel and Distributed Computing , 2022 .

[24]  Hoang Pham Software Reliability , 1999 .

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

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

[27]  Conrado Daws Symbolic and Parametric Model Checking of Discrete-Time Markov Chains , 2004, ICTAC.

[28]  Gregg Rothermel,et al.  Regression model checking , 2009, 2009 IEEE International Conference on Software Maintenance.

[29]  高等学校計算数学学報編輯委員会編 高等学校計算数学学報 = Numerical mathematics , 1979 .

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

[31]  William Farr,et al.  Software reliability modeling survey , 1996 .

[32]  David Anthony Parker,et al.  Implementation of symbolic model checking for probabilistic systems , 2003 .

[33]  Holger Hermanns,et al.  Discrete-time rewards model-checked (to appear) , 2003 .

[34]  Lothar Thiele,et al.  Low-power wireless bus , 2012, SenSys '12.

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

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

[37]  Marta Z. Kwiatkowska,et al.  Symmetry Reduction for Probabilistic Model Checking , 2006, CAV.

[38]  Swapna S. Gokhale,et al.  Reliability prediction and sensitivity analysis based on software architecture , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

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

[40]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

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

[42]  Carlo Ghezzi,et al.  Mining behavior models from user-intensive web applications , 2014, ICSE.

[43]  Emal Pasarly Time , 2011, Encyclopedia of Evolutionary Psychological Science.

[44]  Hongyang Qu,et al.  Incremental Runtime Verification of Probabilistic Systems , 2012, RV.

[45]  Joost-Pieter Katoen,et al.  How Fast and Fat Is Your Probabilistic Model Checker? An Experimental Performance Comparison , 2007, Haifa Verification Conference.

[46]  Adnan Aziz,et al.  It Usually Works: The Temporal Logic of Stochastic Systems , 1995, CAV.

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

[48]  Joost-Pieter Katoen,et al.  A Markov reward model checker , 2005, Second International Conference on the Quantitative Evaluation of Systems (QEST'05).

[49]  Christel Baier,et al.  Partial Order Reduction for Probabilistic Branching Time , 2006, QAPL.

[50]  Gordon S. Blair,et al.  Models@ run.time , 2009, Computer.

[51]  Katerina Goseva-Popstojanova,et al.  Large empirical case study of architecture-based software reliability , 2005, 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05).

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

[53]  Katerina Goseva-Popstojanova,et al.  Architecture-based approach to reliability assessment of software systems , 2001, Perform. Evaluation.

[54]  Mihalis Yannakakis,et al.  The complexity of probabilistic verification , 1995, JACM.

[55]  J. F. C. Kingman,et al.  Dynamic Probabilistic Systems. Volume 1: Markov Models. Volume 2: Semi‐Markov and Decision Processes , 1972 .

[56]  Dai Pan,et al.  Architecture-based software reliability modeling , 2006, J. Syst. Softw..

[57]  Carlo Ghezzi,et al.  Predicting Performance Properties for Open Systems with KAMI , 2009, QoSA.

[58]  Carlo Ghezzi,et al.  Reliability-driven dynamic binding via feedback control , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[59]  Joost-Pieter Katoen,et al.  Discrete-Time Rewards Model-Checked , 2003, FORMATS.

[60]  Vidyadhar G. Kulkarni,et al.  Introduction to modeling and analysis of stochastic systems , 2011 .

[61]  Bengt Jonsson,et al.  A logic for reasoning about time and reliability , 1990, Formal Aspects of Computing.

[62]  Timothy A. Davis,et al.  Direct methods for sparse linear systems , 2006, Fundamentals of algorithms.

[63]  Lijun Zhang,et al.  Synthesis for PCTL in Parametric Markov Decision Processes , 2011, NASA Formal Methods.

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

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

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

[67]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[68]  H. Piaggio Mathematical Analysis , 1955, Nature.

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

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

[71]  F. R. Gantmakher The Theory of Matrices , 1984 .

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

[73]  Davide Brunelli,et al.  Wireless Sensor Networks , 2012, Lecture Notes in Computer Science.

[74]  Heiko Koziolek,et al.  A Large-Scale Industrial Case Study on Architecture-Based Software Reliability Analysis , 2010, 2010 IEEE 21st International Symposium on Software Reliability Engineering.

[75]  Carlo Ghezzi,et al.  Further steps towards efficient runtime verification: Handling probabilistic cost models , 2012, 2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA).

[76]  S. Althoen,et al.  Gauss-Jordan reduction: a brief history , 1987 .

[77]  Laurent Fribourg,et al.  An Inverse Method for Policy-Iteration Based Algorithms , 2009, INFINITY.

[78]  Lothar Thiele,et al.  Efficient network flooding and time synchronization with Glossy , 2011, Proceedings of the 10th ACM/IEEE International Conference on Information Processing in Sensor Networks.

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

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

[81]  Marta Z. Kwiatkowska Quantitative verification: models, techniques and tools , 2007, ESEC/SIGSOFT FSE.

[82]  Stephen A. Edwards,et al.  Incremental Algorithms for Inter-procedural Analysis of Safety Properties , 2005, CAV.

[83]  Lothar Thiele,et al.  On Modeling Low-Power Wireless Protocols Based on Synchronous Packet Transmissions , 2013, 2013 IEEE 21st International Symposium on Modelling, Analysis and Simulation of Computer and Telecommunication Systems.

[84]  Carlo Ghezzi,et al.  A Syntactic-Semantic Approach to Incremental Verification , 2013, ArXiv.

[85]  Lijun Zhang,et al.  Model Repair for Markov Decision Processes , 2013, 2013 International Symposium on Theoretical Aspects of Software Engineering.

[86]  Scott A. Smolka,et al.  Incremental Model Checking in the Modal Mu-Calculus , 1994, CAV.

[87]  C. Pollard,et al.  Center for the Study of Language and Information , 2022 .

[88]  Vincenzo Grassi,et al.  A Modeling Approach to Analyze the Impact of Error Propagation on Reliability of Component-Based Systems , 2007, CBSE.

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

[90]  Yousef Saad,et al.  Iterative methods for sparse linear systems , 2003 .

[91]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[92]  Kathi Fisler,et al.  Foundations of incremental aspect model-checking , 2007, TSEM.