Abstract Graph Transformation - Theory and Practice

The verification of systems with respect to a desired set of behavioural properties is a crucial step in increasing our confidence that these systems will correctly function under all circumstances. Although it would be desirable to verify all (computer) systems that we use in our daily life, the sheer complexity of the verification tasks often limit their application to critical systems. A system is considered critical when its incorrect behaviour can cause severe damage, such as loss of lives or the destruction of valuable equipment. In this thesis, we use graph transformation as our modelling formalism for system specification. Graph transformation (GT) is a Turing-powerful, declarative rule-based formalism, with a mature theoretical foundation and a thriving tool environment. Our work focus on the behavioural analysis of GT systems, where a GT system semantics is represented by a labelled transition system, that can then be analysed by well-established verification methods, such as model checking. A key requirement in this approach is the capability to handle GT systems with (possibly) infinite state spaces. This thesis presents two abstraction techniques that yield a finite over-approximation of the behaviour of infinite-state GT systems, thus enabling verification on the abstract level. The two techniques, called neighbourhood abstraction and pattern abstraction, are discussed under both a theoretical and a practical focus; the former concerning the formal definition and correctness of the abstraction methods, and the latter discussing their implementation in GROOVE, our GT tool set. Experimental results are also given in order to assess the performance of the developed tools.

[1]  Stephan Merz,et al.  Model Checking , 2000 .

[2]  Thomas Noll,et al.  Juggrnaut: Graph Grammar Abstraction for Unbounded Heap Structures , 2010, TTSS.

[3]  Corina S. Pasareanu,et al.  JPF-SE: A Symbolic Execution Extension to Java PathFinder , 2007, TACAS.

[4]  Bastiaan Stephan Graaf,et al.  Model-Driven Evolution of Software Architectures , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[5]  Ivan S. Zapreev Model checking Markov chains : techniques and tools , 2008 .

[6]  Z Zvezdan Protic,et al.  Configuration management for models : generic methods for model comparison and model co-evolution , 2011 .

[7]  Harmen Kastenberg Graph-based software specification and verification , 2008 .

[8]  M. T. de Berg,et al.  Multi-functional geometric data structures , 2003 .

[9]  Matthew B. Dwyer,et al.  Building Your Own Software Model Checker Using the Bogor Extensible Model Checking Framework , 2005, CAV.

[10]  Tom Staijen,et al.  Graph-based Specification and Verification for Aspect-Oriented Languages , 2010 .

[11]  M. G. van der Horst,et al.  Scalable block processing algorithms , 2008 .

[12]  Miguel E. Andrés,et al.  Quantitative Analysis of Information Leakage in Probabilistic and Nondeterministic Systems , 2011, ArXiv.

[13]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[14]  Andrea Corradini,et al.  A Temporal Graph Logic for Verification of Graph Transformation Systems , 2006, WADT.

[15]  Dmitri Jarnikov,et al.  QoS framework for video streaming in home networks , 2007 .

[16]  Magiel Bruntink,et al.  Renovation of idiomatic crosscutting concerns in embedded systems , 2005 .

[17]  Zef Hemel Methods and Techniques for the Design and Implementation of Domain-Specific Languages , 2012 .

[18]  Claude Marché,et al.  The Why/Krakatoa/Caduceus Platform for Deductive Program Verification , 2007, CAV.

[19]  M. T. de Berg,et al.  Algorithms for Fat Objects: Decompositions and Applications , 2004 .

[20]  Arend Rensink,et al.  Pattern-Based Graph Abstraction , 2012, ICGT.

[21]  Corina S. Pasareanu,et al.  Symbolic Execution with Abstract Subsumption Checking , 2006, SPIN.

[22]  Reinhard Wilhelm,et al.  Solving shape-analysis problems in languages with destructive updating , 1998, TOPL.

[23]  Arthur I. Baars,et al.  Embedded Compilers , 2009 .

[24]  Arend Rensink,et al.  Knowledge-Based Graph Exploration Analysis , 2011, AGTIVE.

[25]  Stephanie Kemper,et al.  Modelling and analysis of real-time coordination patterns , 2011 .

[26]  Arend Rensink,et al.  Towards model checking graph grammars , 2003 .

[27]  Taolue Chen Clocks, Dice and Processes , 2009 .

[28]  Mohammad Ali Abam New data structures and algorithms for mobile data , 2007 .

[29]  Adriaan Middelkoop,et al.  Inference of Program Properties with Attribute Grammars, Revisited , 2012 .

[30]  Jan Reineke,et al.  Abstract topology analysis of the join phase of the merge protocol ? , 2010 .

[31]  Hossein Rahmani,et al.  Analysis of protein-protein interaction networks by means of annotated graph mining algorithms , 2012 .

[32]  Damiano Bolzoni,et al.  Revisiting Anomaly-based Network Intrusion Detection Systems , 2009 .

[33]  Bas Basten,et al.  Ambiguity Detection for Programming Language Grammars , 2011 .

[34]  Ncwm Niels Braspenning Model-based integration and testing of high-tech multi-disciplinary systems , 2008 .

[35]  Theo C. Ruys,et al.  MoonWalker: Verification of .NET Programs , 2009, TACAS.

[36]  Thomas Bäck,et al.  Mixed-integer evolution strategies for parameter optimization and their applications to medical image analysis , 2005 .

[37]  Barbara König,et al.  Towards the Verification of Attributed Graph Transformation Systems , 2008, ICGT.

[38]  D. Costa Formal models for component connectors , 2010 .

[39]  Michael Leuschel,et al.  ProB gets Nauty: Effective Symmetry Reduction for B and Z Models , 2008, 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering.

[40]  José Proença,et al.  Synchronous Coordination of Distributed Components , 2011 .

[41]  W. Kuijper Compositional Synthesis of Safety Controllers , 2012 .

[42]  Barbara König,et al.  Counterexample-Guided Abstraction Refinement for the Analysis of Graph Transformation Systems , 2006, TACAS.

[43]  Matthew B. Dwyer,et al.  Space-Reduction Strategies for Model Checking Dynamic Software , 2003, SoftMC@CAV.

[44]  Anton Wijs,et al.  Silent steps in transition systems and Markov chains , 2007 .

[45]  H. Hansen Coalgebraic Modelling : Applications in Automata theory and Modal logic , 2009 .

[46]  Andrea Corradini,et al.  A framework for the verification of infinite-state graph transformation systems , 2008, Inf. Comput..

[47]  Barbara König,et al.  Augur 2 - A New Version of a Tool for the Analysis of Graph Transformation Systems , 2008, GT-VMT@ETAPS.

[48]  R. Boumen,et al.  Integration and test plans for complex manufacturing systems , 2007 .

[49]  Jörg Kreiker Analysis of communication topologies by partner abstraction , 2006 .

[50]  Arash Jalali,et al.  Incremental Pattern Matching in Graph-Based State Space Exploration , 2010, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[51]  Fernando Luís Dotti,et al.  Translating Java Code to Graph Transformation Systems , 2004, ICGT.

[52]  Gürcan Gülesir,et al.  Evolvable Behavior Specifications Using Context-Sensitive Wildcards , 2008 .

[53]  Werner Heijstek,et al.  Architecture design in global and model-centric software development , 2012 .

[54]  J. O. Entzinger,et al.  University of Twente , 2018, The Grants Register 2019.

[55]  J. van den Berg,et al.  Reasoning about Java programs in PVS using JML , 2009 .

[56]  Hendrik Michaël van der Bijl,et al.  On changing models in model-based testing , 2011 .

[57]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[58]  Reinhard Wilhelm,et al.  Static Analysis of Dynamic Communication Systems by Partner Abstraction , 2007, SAS.

[59]  Wolter Pieters,et al.  La volonté machinale: understanding the electronic voting controversy , 2008 .

[60]  Joost-Pieter Katoen,et al.  A Local Greibach Normal Form for Hyperedge Replacement Grammars , 2011, LATA.

[61]  Arend Rensink,et al.  On a Graph-Based Semantics for UML Class and Object Diagrams , 2008, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[62]  Gabriele Taentzer,et al.  AGG: A Graph Transformation Environment for Modeling and Validation of Software , 2003, AGTIVE.

[63]  D. Graaf,et al.  Mining semi-structured data, theoretical and experimental aspects of pattern evaluation , 2008 .

[64]  Ichiro Hasuo,et al.  Tracing Anonymity with Coalgebras , 2008 .

[65]  B. König,et al.  Verifying Finite-State Graph Grammars: An Unfolding-Based Approach , 2004, CONCUR.

[66]  K. Tsirogiannis,et al.  Analysis of flow and visibility on triangulated terrains , 2011 .

[67]  Eduardo Zambon Using Graph Transformations and Graph Abstractions for Software Verification , 2010, ICGT.

[68]  Karina R. Olmos Joffré Strategies for Context Sensitive Program Transformation , 2009 .

[69]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[70]  Nikolay Kavaldjiev,et al.  A run-time reconfigurable Network-on-Chip for streaming DSP applications , 2006 .

[71]  Thomas Noll,et al.  Abstracting Complex Data Structures by Hyperedge Replacement , 2008, ICGT.

[72]  Arend Rensink,et al.  Isomorphism Checking in GROOVE , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[73]  Lennart C. L. Kats,et al.  Building Blocks for Language Workbenches , 2011 .

[74]  Arend Rensink The GROOVE Simulator: A Tool for State Space Generation , 2003, AGTIVE.

[75]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[76]  Saeed Sedghi,et al.  Towards Provably Secure Efficiently Searchable Encryption , 2012 .

[77]  Barbara König,et al.  Augur - A Tool for the Analysis of Graph Transformation Systems , 2005, Bull. EATCS.

[78]  Tim K. Cocx,et al.  Algorithmic tools for data-oriented law enforcement , 2009 .

[79]  Joost Noppen,et al.  Imperfect Information in Software Design Processes , 2007 .

[80]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[81]  Ljp Luc Engelen From napkin sketches to reliable software , 2012 .

[82]  Robert C. Holte,et al.  Speeding up Problem Solving by Abstraction: A Graph Oriented Approach , 1996, Artif. Intell..

[83]  Mari Antonius Cornelis Dekker,et al.  Flexible Access Control for Dynamic Collaborative Environments , 2009 .

[84]  Mohammad Mahdi Jaghoori,et al.  Time At Your Service: Schedulability Analysis of Real-Time and Distributed Services , 2010 .

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

[86]  Emmanuele Zambon,et al.  Towards optimal IT availability planning: methods and tools , 2011 .

[87]  Henrik Barthels,et al.  Juggrnaut - An Abstract JVM , 2011, FoVeOOS.

[88]  Cynthia Kop Higher Order Termination: Automatable Techniques for Proving Termination of Higher-Order Term Rewriting Systems , 2012 .

[89]  Aad Mathssen,et al.  Logical Calculi for Reasoning with Binding , 2008 .

[90]  Brendan D. McKay,et al.  Practical graph isomorphism, II , 2013, J. Symb. Comput..

[91]  Ivan Porres,et al.  Creating and reconciling diagrams after executing model transformations , 2007, Sci. Comput. Program..

[92]  R.S.S. O'Connor,et al.  Incompleteness & completeness : formalizing logic and analysis in type theory , 2005 .

[93]  Arend Rensink,et al.  Graph Abstraction and Abstract Graph Transformation , 2007 .

[94]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 2002, TOPL.

[95]  Marcel Verhoef,et al.  Modeling and validating distributed embedded real-time control systems , 2009 .

[96]  Arend Rensink,et al.  Abstract Graph Transformation , 2006, SVV@ICFEM.

[97]  Cfj Christian Lange,et al.  Assessing and improving the quality of modeling : a series of empirical studies about the UML , 2007 .

[98]  Stefan Edelkamp,et al.  Heuristic Search for the Analysis of Graph Transition Systems , 2006, ICGT.

[99]  EM Elena Bortnik,et al.  Formal methods in support of SMC design , 2008 .

[100]  Martin Campbell-Kelly The early British computer conferences , 1989 .

[101]  B. J. Arnoldus,et al.  An illumination of the template enigma : software code generation with templates , 2011 .

[102]  Sander Vermolen,et al.  Software Language Evolution , 2008, 2008 15th Working Conference on Reverse Engineering.

[103]  Jeroen Doumen,et al.  Searching in encrypted data , 2004 .

[104]  Anton Wijs,et al.  What to do next? Analysing and optimising system behaviour in time , 2007 .

[105]  E Elena Mumford,et al.  Drawing graphs for cartographic applications , 2008 .

[106]  Aah Ammar Osaiweran Formal development of control software in the medical systems domain , 2012 .

[107]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation , 2006, Monographs in Theoretical Computer Science. An EATCS Series.

[108]  U Uzma Khadim,et al.  Process algebras for hybrid systems : comparison and development , 2008 .

[109]  Gheorghe Paun Spiking Neural P Systems: A Tutorial , 2007, Bull. EATCS.

[110]  Scw Bas Ploeger,et al.  Improved verification methods for concurrent systems , 2009 .

[111]  Yanjing Wang,et al.  Epistemic Modelling and Protocol Dynamics , 2010 .

[112]  Eduardo Zambon,et al.  Neighbourhood Abstraction in GROOVE , 2011 .

[113]  Willem Visser,et al.  Addressing dynamic issues of program model checking , 2001, SPIN '01.

[114]  Hasan Sözer,et al.  Architecting Fault-Tolerant Software Systems , 2009 .

[115]  D. E. Nadales Agut,et al.  A Compositional Interchange Format for Hybrid Systems: Design and Implementation , 2012 .

[116]  Matthew J. Parkinson,et al.  jStar: towards practical verification for java , 2008, OOPSLA.

[117]  Arend Rensink,et al.  Canonical Graph Shapes , 2004, ESOP.

[118]  M. J. de Mol,et al.  Reasoning about functional programs : Sparkle, a proof assistant for Clean , 2009 .

[119]  van Mj Muck Weerdenburg,et al.  Efficient rewriting techniques , 2009 .

[120]  Arend Rensink,et al.  Specification and Construction of Control Flow Semantics , 2006, Visual Languages and Human-Centric Computing (VL/HCC'06).

[121]  Sebastiaan Gijsbert Marinus Cornelissen,et al.  Evaluating Dynamic Analysis Techniques for Program Comprehension , 2009 .

[122]  Andrea Corradini,et al.  A Static Analysis Technique for Graph Transformation Systems , 2001, CONCUR.

[123]  de Ism Ivo Jong Integration and test strategies for complex manufacturing machines , 2008 .

[124]  Seyyed Hamed Hashemi,et al.  Studies on verification of wireless sensor networks and abstraction learning for system inference , 2008 .

[125]  Eric Steegmans,et al.  A Java Meta model in detail , 2001 .

[126]  J. K. Berendsen,et al.  Abstraction, prices and probability in model checking timed automata , 2010 .

[127]  M. D. Berg,et al.  Optimal Geometric Data Structures , 2007 .

[128]  Bruno Courcelle,et al.  Graph Rewriting: An Algebraic and Logic Approach , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[129]  Andrea Corradini,et al.  Verifying Red-Black Trees , 2005 .

[130]  Young-Joo Moon,et al.  Stochastic models for quality of service of component connectors , 2011 .

[131]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[132]  A. Rodriguez Yakushev,et al.  Towards Getting Generic Programming Ready for Prime Time , 2009 .

[133]  Paolo Baldan,et al.  Approximating the Behaviour of Graph Transformation Systems , 2002, ICGT.

[134]  Hugo Jonker,et al.  Security matters : privacy in voting and fairness in digital exchange , 2009 .

[135]  S. Griffis EDITOR , 1997, Journal of Navigation.

[136]  Martin R. Neuhäußer,et al.  Model checking nondeterministic and randomly timed systems , 2010 .

[137]  Martin Bravenboer,et al.  Exercises in Free Syntax. Syntax Definition, Parsing, and Assimilation of Language Conglomerates , 2003 .

[138]  Arend Rensink,et al.  Defining Object-Oriented Execution Semantics Using Graph Transformations , 2006, FMOODS.

[139]  Flavio D. Garcia Formal and Computational Cryptography: Protocols, Hashes and Commitments , 2008 .

[140]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[141]  A. Morali,et al.  IT architecture-based confidentiality risk assessment in networks of organizations , 2011 .

[142]  S. Georgievska Probability and Hiding in Concurrent Processes ( thesis abstract ) , 2011 .

[143]  J. Endrullis Termination and Productivity , 2010 .

[144]  Mohammed G. Khatib MEMS-Based Storage Devices : Integration in Energy-Constrained Mobile Systems , 2009 .

[145]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[146]  Lacramioara Astefanoaei,et al.  An executable theory of multi-agent systems refinement , 2011 .

[147]  Arjen van Weelden,et al.  Putting Types To Good Use , 2007 .

[148]  Laura Brandán Briones,et al.  Theories for Model-based Testing: Real-time and Coverage , 2007 .

[149]  Arend Rensink,et al.  A Modal-Logic Based Graph Abstraction , 2008, ICGT.

[150]  C. J. Boogerd,et al.  Focusing Automatic Code Inspections , 2010 .

[151]  J. Kwisthout,et al.  The Computational Complexity of Probabilistic Networks , 2009 .

[152]  de Hayco Jong Flexible heterogeneous software systems , 2007 .

[153]  Fpm Frank Stappers Bridging formal models : an engineering perspective , 2012 .

[154]  van Mf Marcel Amstel,et al.  Assessing and improving the quality of model transformations , 2012 .

[155]  Jasen Markovski,et al.  Real and stochastic time in process algebras for performance evaluation , 2008 .

[156]  Marcin Czenko,et al.  TuLiP : reshaping trust management , 2009 .

[157]  Somayeh Malakuti Khah Olun Abadi Event composition model: achieving naturalness in runtime enforcement , 2011 .

[158]  Farhad Arbab,et al.  Model Checking of Component Connectors , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[159]  Adam Kiezun,et al.  Integrating Refactoring Support into a Java Development Tool , 2001, OOPSLA 2001.

[160]  Arend Rensink,et al.  A Type Graph Model for Java Programs , 2009, FMOODS/FORTE.

[161]  T. van der Storm Component-based configuration, integration and delivery , 2003 .

[162]  Ali Mesbah,et al.  Analysis and Testing of Ajax-based Single-page Web Applications , 2009 .

[163]  Marius Adrian Marin,et al.  An Integrated System to Manage Crosscutting Concerns in Source Code , 2008 .

[164]  Arend Rensink,et al.  Graph Subsumption in Abstract State Space Exploration , 2012, GRAPHITE.

[165]  Kab Kevin Verbeek Algorithms for cartographic visualization , 2012 .

[166]  A Adam Koprowski,et al.  Termination of rewriting and its certification , 2004 .

[167]  Christian Krause,et al.  Reconfigurable Component Connectors , 2011 .

[168]  Pascal Durr,et al.  Resource-based Verification for Robust Composition of Aspects , 2008 .

[169]  Iris Loeb Natural Deduction, Sharing By Presentation , 2007 .

[170]  Michael J. Butler,et al.  Symmetry Reduced Model Checking for B , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[171]  A. L. de Groot,et al.  Practical Automaton proofs in PVS , 2000 .

[172]  R. Bakhshi Gossiping Models : Formal Analysis of Epidemic Protocols , 2011 .

[173]  Tim K. Cocx,et al.  Metrics and visualisation for crime analysis and genomics , 2005 .

[174]  Paolo Baldan,et al.  Static Analysis of Distributed Systems with Mobility Specified by Graph Grammars - A Case Study , 2002 .

[175]  Robert Brijder,et al.  Models of natural computation : gene assembly and membrane systems , 2008 .

[176]  Jan Reineke,et al.  A Graph Transformation Case Study for the Topology Analysis of Dynamic Communication Systems ? , 2010 .

[177]  Trajce Dimkov,et al.  Alignment of organizational security policies: Theory and Practice , 2012 .

[178]  Ernest J. H. Chang,et al.  An improved algorithm for decentralized extrema-finding in circular configurations of processes , 1979, CACM.

[179]  M Muhammad Atif,et al.  Formal modeling and verification of distributed failure detectors , 2011 .

[180]  Georgeta Igna,et al.  Performance analysis of real-time task systems using timed automata , 2013 .

[181]  van Pja Paul Tilburg From computability to executability : a process-theoretic view on automata theory , 2011 .

[182]  T. D. Vu,et al.  Semantics and applications of process and program algebra , 2007 .

[183]  Paolo Baldan,et al.  A Logic for Analyzing Abstractions of Graph Transformation Systems , 2003, SAS.

[184]  Ronald Middelkoop,et al.  Capturing and exploiting abstract views of states in OO verification , 2011 .

[185]  Michael Striewe,et al.  Enabling Graph Transformations on Program Code , 2010 .

[186]  RH Rudolf Mak,et al.  Design and performance analysis of data-independent stream processing systems , 2008 .

[187]  Ileana Buhan,et al.  Cryptographic keys from noisy data, theory and applications , 2008 .

[188]  Arend Rensink,et al.  Graph abstraction and abstract graph transformations (Amended version) , 2012 .

[189]  Tingting Han,et al.  Diagnosis, Synthesis and Analysis of Probabilistic Models , 2009, Ausgezeichnete Informatikdissertationen.

[190]  Jens R. Calamé,et al.  Testing reactive systems with data: enumerative methods and constraint solving , 2008 .