Assuring property conformance of code generators via model checking

Automatic code generation is an essential cornerstone of today’s model-driven approaches to software engineering. Thus a key requirement for the success of this technique is the reliability and correctness of code generators. This article describes how we employ standard model checking-based verification to check that code generator models developed within our code generation framework Genesys conform to (temporal) properties. Genesys is a graphical framework for the high-level construction of code generators on the basis of an extensible library of well-defined building blocks along the lines of the Extreme Model-Driven Development paradigm. We will illustrate our verification approach by examining complex constraints for code generators, which even span entire model hierarchies. We also show how this leads to a knowledge base of rules for code generators, which we constantly extend by e.g. combining constraints to bigger constraints, or by deriving common patterns from structurally similar constraints. In our experience, the development of code generators with Genesys boils down to re-instantiating patterns or slightly modifying the graphical process model, activities which are strongly supported by verification facilities presented in this article.

[1]  George C. Necula,et al.  Translation validation for an optimizing compiler , 2000, PLDI '00.

[2]  Tiziana Margaria,et al.  Business Process Modeling in the jABC , 2009, Handbook of Research on Business Process Modeling.

[3]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[4]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

[5]  Gerhard Goos,et al.  Verification of Compilers , 1999, Correct System Design.

[6]  Ewen Denney,et al.  Extending Source Code Generators for Evidence-Based Software Certification , 2006, Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (isola 2006).

[7]  Tiziana Margaria,et al.  MaTRICS: A service-based management tool for remote intelligent configuration of systems , 2006, Innovations in Systems and Software Engineering.

[8]  Tiziana Margaria,et al.  Model-Driven Development with the jABC , 2006, Haifa Verification Conference.

[9]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[10]  George S. Avrunin,et al.  PROPEL: an approach supporting property elucidation , 2002, ICSE '02.

[11]  Tiziana Margaria,et al.  Test your Strategy: Graphical Construction of Strategies for Connect-Four , 2009, 2009 14th IEEE International Conference on Engineering of Complex Computer Systems.

[12]  Tiziana Margaria,et al.  Verification, Diagnosis and Adaptation: Tool supported enhancement of the model-driven verification process , 2007, ISoLA.

[13]  C. A. R. Hoare,et al.  Verified Software: Theories, Tools, Experiments Vision of a Grand Challenge Project , 2005, VSTTE.

[14]  Alessandro Coglio,et al.  A Constructive Approach to Correctness, Exemplified by a Generator for Certified Java Card Applets , 2005, VSTTE.

[15]  Bernhard Steffen,et al.  Data Flow Analysis as Model Checking , 1990, TACS.

[16]  Tiziana Margaria,et al.  Library-Based Design and Consistency Checking of System-Level Industrial Test Cases , 2001, FASE.

[17]  Norbert E. Fuchs,et al.  Attempto Controlled English - Not Just Another Logic Specification Language , 1998, LOPSTR.

[18]  Tiziana Margaria,et al.  The jABC Approach to Rigorous Collaborative Development of SCM Applications , 2008, ISoLA.

[19]  Robin Milner,et al.  Algebraic laws for nondeterminism and concurrency , 1985, JACM.

[20]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[21]  Tiziana Margaria,et al.  Genesys: service-oriented construction of property conform code generators , 2008, Innovations in Systems and Software Engineering.

[22]  Tiziana Margaria,et al.  Bio-jETI: a service integration, design, and provisioning platform for orchestrated bioinformatics processes , 2008, BMC Bioinformatics.

[23]  Tiziana Margaria,et al.  Data-Flow Analysis as Model Checking Within the jABC , 2006, CC.

[24]  Clemens D. Renner,et al.  Property-driven functional healing : Playing against undesired behavior , 2007 .

[25]  Tiziana Margaria,et al.  Agile IT: Thinking in User-Centric Models , 2008, ISoLA.

[26]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[27]  Bernhard Steffen,et al.  Full Life-Cycle Support for End-to-End Processes , 2007, Computer.

[28]  S. Jorges,et al.  Model Driven Design of Reliable Robot Control Programs Using the jABC , 2007, Fourth IEEE International Workshop on Engineering of Autonomic and Autonomous Systems (EASe'07).

[29]  A Holt Formal verification with natural language specifications: guidelines, experiments and lessons so far , 1999 .

[30]  Ingo Stürmer,et al.  Overview of existing safeguarding techniques for automatically generated code , 2005, ACM SIGSOFT Softw. Eng. Notes.

[31]  Andrew W. Appel,et al.  Foundational proof-carrying code , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[32]  Louise E. Moser,et al.  A graphical interval logic for specifying concurrent systems , 1994, TSEM.

[33]  Tiziana Margaria,et al.  Service-oriented Mediation with jABC/jETI , 2009, Semantic Web Services Challenge.

[34]  C. A. R. Hoare The Verifying Compiler, a Grand Challenge for Computing Research , 2005, VMCAI.

[35]  Wil M. P. van der Aalst,et al.  Handbook of Research on Business Process Modeling , 2009 .

[36]  James F. Allen Maintaining knowledge about temporal intervals , 1983, CACM.

[37]  Bernhard Steffen,et al.  Model-Checking: A Tutorial Introduction , 1999, SAS.

[38]  George C. Necula,et al.  Proof-Carrying Code , 2011, Encyclopedia of Cryptography and Security.

[39]  Tiziana Margaria,et al.  FormulaBuilder: a tool for graph-based modelling and generation of formulae , 2006, ICSE.

[40]  Dexter Kozen,et al.  RESULTS ON THE PROPOSITIONAL’p-CALCULUS , 2001 .

[41]  Tiziana Margaria,et al.  Feature-based Modelling of a Complex, Online-Reconfigurable Decision Support Service , 2005, WWV.