Towards a Verification Flow Across Abstraction Levels Verifying Implementations Against Their Formal Specification

The use of formal models to describe early versions of the structure and the behavior of a system has become common practice in industry. UML and OCL are the de-facto specification languages for these tasks. They allow for capturing system properties and module behavior in an abstract but still formal fashion. At the same time, this enables designers to detect errors or inconsistencies in the initial phases of the design flow—even if the implementation has not already started. Corresponding tools for verification of formal models got established in the recent past. However, verification results are usually not reused in later design steps anymore. In fact, similar verification tasks are applied again, e.g., after the implementation has been completed. This is a waste of computational and human effort. In this paper, we address this problem by proposing a method which checks a given implementation of a system against its corresponding formal method. This allows for transferring verification results already obtained from the formal model to the implementation and, eventually, motivates a new design flow which addresses verification across abstraction levels. This paper describes the applied techniques as well as their orchestration. Afterwards, the applicability of the proposed methodology is demonstrated by means of examples as well as a case study from an industrial context.

[1]  Robert Wille,et al.  Verifying dynamic aspects of UML models , 2011, 2011 Design, Automation & Test in Europe.

[2]  Pablo Gonzalez-de-Aledo,et al.  FramewORk for Embedded System verification , 2015, TACAS 2015.

[3]  Robert Wille,et al.  Completeness-Driven Development , 2012, ICGT.

[4]  Robert Wille,et al.  Contradiction Analysis for Inconsistent Formal Models , 2015, 2015 IEEE 18th International Symposium on Design and Diagnostics of Electronic Circuits & Systems.

[5]  Martin Gogolla,et al.  Extracting frame conditions from operation contracts , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[6]  Koushik Sen,et al.  DART: directed automated random testing , 2005, PLDI '05.

[7]  Shinpei Hayashi,et al.  Generating Assertion Code from OCL: A Transformational Approach Based on Similarities of Implementation Languages , 2009, MoDELS.

[8]  Martin Gogolla,et al.  Consistency, Independence and Consequences in UML and OCL Models , 2009, TAP@TOOLS.

[9]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[10]  Jordi Cabot,et al.  Verification of UML/OCL Class Diagrams using Constraint Programming , 1899, 2008 IEEE International Conference on Software Testing Verification and Validation Workshop.

[11]  Rolf Drechsler,et al.  Proving transaction and system-level properties of untimed SystemC TLM designs , 2010, Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010).

[12]  Koushik Sen,et al.  CUTE: a concolic unit testing engine for C , 2005, ESEC/FSE-13.

[13]  Rolf Drechsler,et al.  Verifying SystemC using an intermediate verification language and symbolic simulation , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[14]  Rolf Drechsler,et al.  Scalable fault localization for SystemC TLM designs , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[15]  Jordi Cabot,et al.  Verifying UML/OCL Operation Contracts , 2009, IFM.

[16]  Daniel Kroening,et al.  CBMC - C Bounded Model Checker - (Competition Contribution) , 2014, TACAS.

[17]  Martin Gogolla,et al.  From Application Models to Filmstrip Models: An Approach to Automatic Validation of Model Dynamics , 2014, Modellierung.

[18]  Robert Wille,et al.  Validating SystemC implementations against their formal specifications , 2014, 2014 27th Symposium on Integrated Circuits and Systems Design (SBCCI).

[19]  Robert Wille,et al.  Keynote: Formal specification level: Towards verification-driven design based on natural language processing , 2012, FDL 2012.

[20]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[21]  Robert Wille,et al.  Ground setting properties for an efficient translation of OCL in SMT-based model finding , 2016, MoDELS.

[22]  George Candea,et al.  Parallel symbolic execution for automated real-world software testing , 2011, EuroSys '11.

[23]  Robert Wille,et al.  Analyzing Inconsistencies in UML/OCL Models , 2016, J. Circuits Syst. Comput..

[24]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[25]  Shane Sendall,et al.  Using OCL and UML to Specify System Behavior , 2002, Object Modeling with the OCL.

[26]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[27]  Felix Sheng-Ho Chang,et al.  Finding Minimal Unsatisfiable Cores of Declarative Specifications , 2008, FM.

[28]  Rolf Drechsler,et al.  Towards analyzing functional coverage in SystemC TLM property checking , 2010, 2010 IEEE International High Level Design Validation and Test Workshop (HLDVT).

[29]  Wolfgang Müller,et al.  UML for SOC Design , 2005 .

[30]  Pablo Sánchez Espeso,et al.  An Approach to Static-Dynamic Software Analysis , 2015, FTSCS.

[31]  Rolf Drechsler,et al.  Coverage of OCL Operation Specifications and Invariants , 2015, TAP@STAF.

[32]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[33]  Harry Foster,et al.  Applied Assertion-Based Verification: An Industry Perspective , 2009, Found. Trends Electron. Des. Autom..

[34]  Rolf Drechsler,et al.  Debugging at the Electronic System Level , 2010 .

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

[36]  Robert Wille,et al.  Verification-Driven Design Across Abstraction Levels: A Case Study , 2015, 2015 Euromicro Conference on Digital System Design.

[37]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[38]  Robert Wille,et al.  Formal Specification Level: Towards verification-driven design based on natural language processing , 2012, Proceeding of the 2012 Forum on Specification and Design Languages.

[39]  Robert Wille,et al.  Coverage-Driven Stimuli Generation , 2012, 2012 15th Euromicro Conference on Digital System Design.

[40]  Martin Gogolla,et al.  Verifying UML/OCL models using Boolean satisfiability , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

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

[42]  Diego Calvanese,et al.  OCL-Lite: Finite reasoning on UML/OCL conceptual schemas , 2012, Data Knowl. Eng..

[43]  Martin Gogolla,et al.  Assisted generation of frame conditions for formal models , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[44]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[45]  Robert Wille,et al.  Debugging of inconsistent UML/OCL models , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[46]  Martin Gogolla,et al.  Expressing UML Class Diagrams Properties with OCL , 2002, Object Modeling with the OCL.

[47]  Aart Middeldorp,et al.  Satisfiability of Non-linear (Ir)rational Arithmetic , 2010, LPAR.

[48]  Rolf Drechsler,et al.  Automatic TLM Fault Localization for SystemC , 2012, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[49]  Robert Wille,et al.  Checking concurrent behavior in UML/OCL models , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[50]  Alexandre Mota,et al.  Integrating UML and Formal Methods , 2007, SBMF.

[51]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.

[52]  Robert Wille,et al.  Encoding OCL Data Types for SAT-Based Verification of UML/OCL Models , 2011, TAP@TOOLS.

[53]  Pablo de la Fuente,et al.  UML Automatic Verification Tool with Formal Methods , 2005, VLFM.

[54]  Pablo González de Aledo Marugán,et al.  FramewORk for Embedded System verification - (Competition Contribution) , 2015, TACAS.