Efficient re-resolution of SMT specifications for evolving software architectures

We present a generic method for the efficient constraint re-resolution of a component-based software architecture after changes such as addition, removal and modification of components. Given a formal description of an evolving system as a constraint-specification problem, our method identifies and executes the re-resolution steps required to verify the system's compliance with constraints after each change. At each step, satisfiability modulo theory (SMT) techniques determine the satisfiability of component constraints expressed as logical formulae over suitably chosen theories of arithmetic, reusing results obtained in previous steps. We illustrate the application of the approach on a constraint-satisfaction problem arising from cloud-deployed software services. The incremental method is shown to re-resolve system constraints in a fraction of the time taken by standard SMT resolution.

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

[2]  Radu Calinescu,et al.  Formal Methods @ Runtime , 2010, Monterey Workshop.

[3]  David Garlan,et al.  Automated planning for software architecture evolution , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[4]  Nikolaj Bjørner,et al.  Satisfiability modulo theories , 2011, Commun. ACM.

[5]  Radu Calinescu,et al.  Developing self-verifying service-based systems , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

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

[7]  Sérgio Vale Aguiar Campos,et al.  Compositional Reasoning in Model Checking , 1997, COMPOS.

[8]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2021, Handbook of Satisfiability.

[9]  Frank Eliassen,et al.  Using architecture models for runtime adaptability , 2006, IEEE Software.

[10]  Carlo Ghezzi Evolution, Adaptation, and the Quest for Incrementality , 2012, Monterey Workshop.

[11]  Olivier Barais,et al.  Software Architecture Evolution , 2008, Software Evolution.

[12]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[13]  Bernd Fischer,et al.  SMT-Based Bounded Model Checking for Embedded ANSI-C Software , 2012, IEEE Transactions on Software Engineering.

[14]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[15]  John M. Rushby,et al.  Runtime Certification , 2008, RV.

[16]  Radu Mateescu,et al.  CADP 2010: A Toolbox for the Construction and Analysis of Distributed Processes , 2011, TACAS.

[17]  Wolfgang Rautenberg,et al.  A concise introduction to mathematical logic , 2006 .

[18]  Viggo Stoltenberg-hansen,et al.  In: Handbook of Logic in Computer Science , 1995 .

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

[20]  Corina S. Pasareanu,et al.  Learning Assumptions for Compositional Verification , 2003, TACAS.

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

[22]  Colin Blundell,et al.  Assume-guarantee testing , 2006, SAVCBS '05.

[23]  Radu Calinescu,et al.  Emerging Techniques for the Engineering of Self-Adaptive High-Integrity Software , 2013, Assurances for Self-Adaptive Systems.

[24]  Radu Mateescu,et al.  CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes , 2007, CAV.

[25]  Sarfraz Khurshid,et al.  Ranger: Parallel analysis of alloy models by range partitioning , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[26]  Edmund M. Clarke,et al.  Compositional model checking , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[27]  Bradley R. Schmerl,et al.  Evolution styles: Foundations and tool support for software architecture evolution , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[28]  Bradley R. Schmerl,et al.  Using Architectural Models at Runtime: Research Challenges , 2004, EWSA.

[29]  Radu Calinescu,et al.  An incremental verification framework for component-based software systems , 2013, CBSE '13.

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