Formal verification of static software models in MDE: A systematic review

Abstract Context Model-driven Engineering (MDE) promotes the utilization of models as primary artifacts in all software engineering activities. Therefore, mechanisms to ensure model correctness become crucial, specially when applying MDE to the development of software, where software is the result of a chain of (semi)automatic model transformations that refine initial abstract models to lower level ones from which the final code is eventually generated. Clearly, in this context, an error in the model/s is propagated to the code endangering the soundness of the resulting software. Formal verification of software models is a promising approach that advocates the employment of formal methods to achieve model correctness, and it has received a considerable amount of attention in the last few years. Objective The objective of this paper is to analyze the state of the art in the field of formal verification of models, restricting the analysis to those approaches applied over static software models complemented or not with constraints expressed in textual languages, typically the Object Constraint Language (OCL). Method We have conducted a Systematic Literature Review (SLR) of the published works in this field, describing their main characteristics. Results The study is based on a set of 48 resources that have been grouped in 18 different approaches according to their affinity. For each of them we have analyzed, among other issues, the formalism used, the support given to OCL, the correctness properties addressed or the feedback yielded by the verification process. Conclusions One of the most important conclusions obtained is that current model verification approaches are strongly influenced by the support given to OCL. Another important finding is that in general, current verification tools present important flaws like the lack of integration into the model designer tool chain or the lack of efficiency when verifying large, real-life models.

[1]  Diego Calvanese,et al.  Reasoning over Extended ER Models , 2007, ER.

[2]  Martin Gogolla,et al.  Proving and Visualizing OCL Invariant Independence by Automatically Generated Test Cases , 2010, TAP@TOOLS.

[3]  Diego Calvanese,et al.  Full Satisfiability of UML Class Diagrams , 2010, ER.

[4]  Martin Gogolla,et al.  Strengthening SAT-Based Validation of UML/OCL Models by Representing Collections as Relations , 2012, ECMFA.

[5]  Diego Calvanese,et al.  Reasoning on UML class diagrams , 2005, Artif. Intell..

[6]  Ernest Teniente,et al.  SVTe: a tool to validate database schemas giving explanations , 2008, DBTest '08.

[7]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[8]  Michele Missikoff,et al.  Integrity Constraints Representation in Object-Oriented Databases , 1992, CIKM.

[9]  W. Penuel,et al.  Expanding Implementation Research 1 Expanding the Scope of Implementation Research in Education to Inform Design , 2009 .

[10]  Maurizio Lenzerini,et al.  On The Satisfiability of Dependency Constraints in Entity-Relationship Schemata , 1987, VLDB.

[11]  Martin Gogolla,et al.  Validating UML and OCL models in USE by automatic snapshot generation , 2005, Software & Systems Modeling.

[12]  Diego Calvanese,et al.  OCL-Lite: A Decidable (Yet Expressive) Fragment of OCL , 2012, Description Logics.

[13]  Achim D. Brucker,et al.  An MDA Framework Supporting OCL , 2006, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[14]  M. Alam,et al.  An Accessible Formal Specification of the UML and OCL Meta-Model in Isabelle/HOL , 2007, 2007 IEEE International Multitopic Conference.

[15]  Jordi Cabot,et al.  Lightweight String Reasoning for OCL , 2012, ECMFA.

[16]  U. Keller,et al.  Translating the Object Constraint Language into First-order Predicate Logic , 2001 .

[17]  Toni Mancini,et al.  Finite Model Reasoning on UML Class Diagrams Via Constraint Programming , 2007, AI*IA.

[18]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[19]  Toni Mancini,et al.  Finite model reasoning on UML class diagrams via constraint programming , 2007, Intelligenza Artificiale.

[20]  Diego Calvanese,et al.  Reasoning on UML Class Diagrams is EXPTIME-hard , 2003, Description Logics.

[21]  Roger Duke,et al.  Object-Z: a specification language advocated for the description of standards , 1995 .

[22]  Diego Calvanese,et al.  Checking Full Satisfiability of Conceptual Models , 2010, Description Logics.

[23]  Mira Balaban,et al.  A UML-Based Method for Deciding Finite Satisfiability in Description Logics , 2008, Description Logics.

[24]  Martin Gogolla,et al.  USE: A UML-based specification environment for validating UML and OCL , 2007, Sci. Comput. Program..

[25]  Ernest Teniente,et al.  Checking query containment with the CQC method , 2005, Data Knowl. Eng..

[26]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[27]  Achim D. Brucker,et al.  HOL-OCL: A Formal Proof Environment for UML/OCL , 2008, FASE.

[28]  Diego Calvanese,et al.  Towards Implementing Finite Model Reasoning in Description Logics , 2004, Description Logics.

[29]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[30]  Achim D. Brucker,et al.  A Formal Proof Environment for uml/ocl , 2008 .

[31]  Emina Torlak,et al.  Kodkod: A Relational Model Finder , 2007, TACAS.

[32]  Achim D. Brucker,et al.  The HOL-OCL Book , 2006 .

[33]  Lukman Ab. Rahim Mapping from OCL/UML metamodel to PVS metamodel , 2008, 2008 International Symposium on Information Technology.

[34]  Richard F. Paige,et al.  Eclipse Development Tools for Epsilon , 2006 .

[35]  Manuel Clavel,et al.  Checking Unsatisfiability for OCL Constraints , 2010, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[36]  Achim D. Brucker,et al.  Efficient analysis of pattern-based constraint specifications , 2010, Software & Systems Modeling.

[37]  Indrakshi Ray,et al.  UML2Alloy: a challenging model transformation , 2007, MODELS'07.

[38]  Anna Formica Satisfiability of object-oriented database constraints with set and bag attributes , 2003, Inf. Syst..

[39]  Uffe Kock Wiil,et al.  Verification-driven slicing of UML/OCL models , 2010, ASE.

[40]  Ernest Teniente,et al.  Decidable Reasoning in UML Schemas with Constraints , 2008, JISBD.

[41]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[42]  Indrakshi Ray,et al.  On challenges of model transformation from UML to Alloy , 2008, Software & Systems Modeling.

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

[44]  Marcin Szlenk Formal Semantics and Reasoning about UML Class Diagram , 2006, 2006 International Conference on Dependability of Computer Systems.

[45]  Ernest Teniente,et al.  Reasoning on UML Class Diagrams with OCL Constraints , 2006, ER.

[46]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[47]  Martin Gogolla,et al.  Extensive Validation of OCL Models by Integrating SAT Solving into USE , 2011, TOOLS.

[48]  Diego Calvanese,et al.  Finite Model Reasoning in Description Logics , 1996, KR.

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

[50]  Jordi Cabot,et al.  EMFtoCSP: A tool for the lightweight verification of EMF models , 2012, 2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA).

[51]  Catriel Beeri,et al.  A Formal Approach to Object-Oriented Databases , 1990, Data Knowl. Eng..

[52]  Ernest Teniente,et al.  AuRUS: Automated Reasoning on UML/OCL Schemas , 2010, ER.

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

[54]  Peter W. O'Hearn,et al.  Verified Software: A Grand Challenge , 2006, Computer.

[55]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[56]  Jordi Cabot Sagrera,et al.  Verification of UML/OCL Class Diagrams Using Constraint Programming , 2008 .

[57]  Ernest Teniente,et al.  Verification and Validation of UML Conceptual Schemas with OCL Constraints , 2012, TSEM.

[58]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[59]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[60]  Jordi Cabot,et al.  UMLtoCSP: a tool for the formal verification of UML/OCL models using constraint programming , 2007, ASE.

[61]  Mira Balaban,et al.  Efficient Reasoning About Finite Satisfiability of UML Class Diagrams with Constrained Generalization Sets , 2007, ECMDA-FA.

[62]  Ernest Teniente,et al.  Providing Explanations for Database Schema Validation , 2008, DEXA.

[63]  Krysia Broda,et al.  Mapping UML Models incorporating OCL Constraints into Object-Z , 2003 .

[64]  Toni Mancini,et al.  Finite Satisfiability of UML Class Diagrams by Constraint Programming , 2004, Description Logics.

[65]  Anna Formica,et al.  Finite Satisfiability of Integrity Constraints in Object-Oriented Database Schemas , 2002, IEEE Trans. Knowl. Data Eng..

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

[67]  David A. Carrington,et al.  A Formal Mapping between UML Models and Object-Z Specifications , 2000, ZB.

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

[69]  José Ambrosio Toval Álvarez,et al.  A systematic review of UML model consistency management , 2009, Inf. Softw. Technol..

[70]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[71]  Andrea Calì,et al.  A Formal Framework for Reasoning on UML Class Diagrams , 2002, ISMIS.

[72]  Diego Calvanese,et al.  Complexity of Reasoning in Entity Relationship Models , 2007, Description Logics.

[73]  Martin Gogolla,et al.  From UML and OCL to relational logic and back , 2012, MODELS'12.

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

[75]  Parastoo Mohagheghi,et al.  Definitions and approaches to model quality in model-based software development - A review of literature , 2009, Inf. Softw. Technol..