A Syntactic-Semantic Approach to Incremental Verification

Software verification of evolving systems is challenging mainstream methodologies and tools. Formal verification techniques often conflict with the time constraints imposed by change management practices for evolving systems. Since changes in these systems are often local to restricted parts, an incremental verification approach could be beneficial. This paper introduces SiDECAR, a general framework for the definition of verification procedures, which are made incremental by the framework itself. Verification procedures are driven by the syntactic structure (defined by a grammar) of the system and encoded as semantic attributes associated with the grammar. Incrementality is achieved by coupling the evaluation of semantic attributes with an incremental parsing technique. We show the application of SiDECAR to the definition of two verification procedures: probabilistic verification of reliability requirements and verification of safety properties.

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

[2]  Robert W. Floyd,et al.  Syntactic Analysis and Operator Precedence , 1963, JACM.

[3]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

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

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

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

[7]  Hoang Pham,et al.  System Software Reliability , 1999 .

[8]  Luciano Baresi,et al.  Toward Open-World Software: Issue and Challenges , 2006, Computer.

[9]  A. Prasad Sistla,et al.  Hybrid and incremental modelchecking techniques , 1996, CSUR.

[10]  Koen De Bosschere An Operator Precedence Parser for Standard Prolog Text , 1996, Softw. Pract. Exp..

[11]  Carlo Ghezzi,et al.  Incremental Parsing , 1979, TOPL.

[12]  Görel Hedin,et al.  Reference Attributed Grammars , 2000, Informatica.

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

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

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

[16]  Carlo Ghezzi,et al.  A compositional method for reliability analysis of workflows affected by multiple failure modes , 2011, CBSE '11.

[17]  Alastair F. Donaldson,et al.  Software Model Checking , 2014, Computing Handbook, 3rd ed..

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

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

[20]  Andrei P. Ershov,et al.  On the Partial Computation Principle , 1977, Inf. Process. Lett..

[21]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

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

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

[24]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[25]  Thomas A. Henzinger,et al.  The software model checker Blast , 2007, International Journal on Software Tools for Technology Transfer.

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

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

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

[29]  Stefano Crespi-Reghizzi,et al.  Operator Precedence and the Visibly Pushdown Property , 2010, LATA.

[30]  Marta Z. Kwiatkowska,et al.  PRISM: Probabilistic Symbolic Model Checker , 2002, Computer Performance Evaluation / TOOLS.

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

[32]  Shing-Chi Cheung,et al.  Checking safety properties using compositional reachability analysis , 1999, TSEM.

[33]  Armin Biere,et al.  Bounded model checking , 2003, Adv. Comput..

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

[35]  Matteo Pradella,et al.  PAPAGENO: A Parallel Parser Generator for Operator Precedence Grammars , 2012, SLE.

[36]  Ceriel J. H. Jacobs,et al.  Parsing Techniques - A Practical Guide , 2007, Monographs in Computer Science.

[37]  Luciano Baresi,et al.  Toward open-world software: Issues and challenges , 2006, Computer.

[38]  Koen De Bosschere An operator precedence parser for standard Prolog text , 1996 .