Lightweight string reasoning in model finding

Models play a key role in assuring software quality in the model-driven approach. Precise models usually require the definition of well-formedness rules to specify constraints that cannot be expressed graphically. The Object Constraint Language (OCL) is a de-facto standard to define such rules. 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 for these activities have been developed, but to our knowledge, none of them supports OCL string operations on scale that is sufficient for, e.g., model-based testing. As, in contrast, many industrial models do contain such operations, there is evidently a gap. We present a lightweight solver that is specifically tailored to generate large solutions for tractable string constraints in model finding, and that is suited to directly express the main operations of the OCL datatype String. It is based on constraint logic programming (CLP) and constraint handling rules, and can be seamlessly combined with other constraint solvers in CLP. We have integrated our solver into the EMFtoCSP model finder, and we show that our implementation efficiently solves several common string constraints on large instances.

[1]  R. Adams Proceedings , 1947 .

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

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

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

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

[6]  Gabriele Taentzer,et al.  Generating Instance Models from Meta Models , 2006, FMOODS.

[7]  V. S. Costa,et al.  Theory and Practice of Logic Programming , 2010 .

[8]  Thom W. Frühwirth Constraint handling rules: the story so far , 2006, PPDP '06.

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

[10]  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.

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

[12]  Westley Weimer,et al.  StrSolve: solving string constraints lazily , 2012, Automated Software Engineering.

[13]  Sanjit A. Seshia,et al.  On the Computational Complexity of Satisfiability Solving for String Theories , 2009, ArXiv.

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

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

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

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

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

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

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

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

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

[23]  Kish Shen,et al.  Under consideration for publication in Theory and Practice of Logic Programming , 2003 .

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

[25]  Toby Walsh,et al.  Handbook of Constraint Programming , 2006, Handbook of Constraint Programming.

[26]  Gabriele Taentzer,et al.  Generating instance models from meta models , 2006, Software & Systems Modeling.

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

[28]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

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

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

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

[32]  Michael D. Ernst,et al.  HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars , 2012, TSEM.

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

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