Lightweight String Reasoning for OCL

Models play a key role in assuring software quality in the model-driven approach. Precise models usually require the definition of OCL expressions to specify model constraints that cannot be expressed graphically. Techniques that check the satisfiability of such models and find corresponding instances of them are important in various activities, such as model-based testing and validation. Several tools to check model satisfiability have been developed but to our knowledge, none of them yet supports the analysis of OCL expressions including operations on Strings in general terms. As, in contrast, many industrial models do contain such operations, there is evidently a gap. There has been much research on formal reasoning on strings in general, but so far the results could not be included into model finding approaches. For model finding, string reasoning only contributes a sub-problem, therefore, a string reasoning approach for model finding should not add up front too much computational complexity to the global model finding problem. We present such a lightweight approach based on constraint satisfaction problems and constraint rewriting. Our approach efficiently solves several common kinds of string constraints and it is integrated into the EMFtoCSP model finder.

[1]  Yves Le Traon,et al.  Barriers to systematic model transformation testing , 2010, Commun. ACM.

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

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

[4]  Thom W. Frühwirth,et al.  Constraint Handling Rules , 2009, Constraint Programming.

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

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

[7]  Antonio Vallecillo,et al.  Objects, Models, Components, Patterns , 2011, Lecture Notes in Computer Science.

[8]  Michael D. Ernst,et al.  HAMPI: a solver for string constraints , 2009, ISSTA.

[9]  Lionel C. Briand,et al.  A Search-Based OCL Constraint Solver for Model-Based Test Data Generation , 2011, 2011 11th International Conference on Quality Software.

[10]  Matti Nykänen,et al.  Reasoning about Strings in Databases , 1999, J. Comput. Syst. Sci..

[11]  Keith Golden,et al.  Constraint Reasoning over Strings , 2003, CP.

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

[13]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[14]  Christina L. Hennessey ACM Digital Library , 2012 .

[15]  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).

[16]  Juan de Lara,et al.  Verification and validation of declarative model-to-model transformations through invariants , 2010, J. Syst. Softw..

[17]  Margus Veanes,et al.  An Evaluation of Automata Algorithms for String Analysis , 2011, VMCAI.

[18]  Nikolaj Bjørner,et al.  Path Feasibility Analysis for String-Manipulating Programs , 2009, TACAS.

[19]  Martin Gogolla,et al.  On validation of ATL transformation rules by transformation models , 2011, MoDeVVa.

[20]  Perdita Stevens A Simple Game-Theoretic Approach to Checkonly QVT Relations , 2009, ICMT@TOOLS.

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

[22]  Francesca Rossi,et al.  Principles and Practice of Constraint Programming – CP 2003 , 2003, Lecture Notes in Computer Science.

[23]  Andreas Podelski,et al.  Constraint Programming: Basics and Trends , 1995, Lecture Notes in Computer Science.

[24]  Gilles Motet,et al.  A UML model consistency verification approach based on meta-modeling formalization , 2006, SAC.

[25]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[26]  Gabriele Taentzer,et al.  Translation of Restricted OCL Constraints into Graph Constraints for Generating Meta Model Instances by Graph Grammars , 2008, GT-VMT@ETAPS.

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

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

[29]  Margus Veanes,et al.  Rex: Symbolic Regular Expression Explorer , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[30]  Arend Rensink Model Driven Architecture - Foundations and Applications, 5th European Conference, ECMDA-FA 2009, Enschede, The Netherlands, June 23-26, 2009. Proceedings , 2009, ECMDA-FA.

[31]  Tom Schrijvers,et al.  Under Consideration for Publication in Theory and Practice of Logic Programming as Time Goes By: Constraint Handling Rules , 2022 .

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

[33]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

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

[35]  Benoit Baudry,et al.  Automatic Model Generation Strategies for Model Transformation Testing , 2009, ICMT@TOOLS.