Efficient Verification-Driven Slicing of UML/OCL Class Diagrams

Model defects are a significant concern in the Model-Driven Development (MDD) paradigm, as model trans-formations and code generation may propagate errors present in the model to other notations where they are harder to detect and trace. Formal verification techniques can check the correctness of a model, but their high computational complexity can limit their scalability. Current approaches to this problem have an exponential worst-case run time. In this paper, we propose a slicing technique which breaks a model into several independent submodels from which irrelevant information can be abstracted to improve the scalability of the verification process. We consider a specific static model (UML class diagrams annotated with unrestricted OCL constraints) and a specific property to verify (satisfiability, i.e., whether it is possible to create objects without violating any constraints). The definition of the slicing procedure ensures that the property under verification is preserved after partitioning. Furthermore, the paper provides an evaluation of experimental results from a real-world case study.

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

[2]  Jordi Conesa,et al.  Pruning Ontologies in the Development of Conceptual Schemas of Information Systems , 2004, ER.

[3]  Bogdan Korel,et al.  Slicing of state-based models , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

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

[5]  Mats Per Erik Heimdahl,et al.  On the effectiveness of slicing hierarchical state machines: a case study , 1998, Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).

[6]  Sarfraz Khurshid,et al.  Testing Software Product Lines Using Incremental Test Generation , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

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

[8]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[9]  Lawrence Chung,et al.  Software architecture analysis: a dynamic slicing approach , 2000 .

[10]  Jaiprakash T. Lallchandani,et al.  A Dynamic Slicing Technique for UML Architectural Models , 2011, IEEE Transactions on Software Engineering.

[11]  Rupinder Singh,et al.  Practical approach for model based slicing , 2013 .

[12]  Albert Hoogewijs,et al.  SVtL: System Verification Through Logic Tool Support for Verifying Sliced Hierarchical Statecharts , 2006, WADT.

[13]  Kevin Lano,et al.  Slicing Techniques for UML Models , 2011, J. Object Technol..

[14]  Sarfraz Khurshid,et al.  Incremental Test Generation for Software Product Lines , 2010, IEEE Transactions on Software Engineering.

[15]  Priyank Kalla,et al.  Guiding CNF-SAT search via efficient constraint partitioning , 2004, ICCAD 2004.

[16]  Sarfraz Khurshid,et al.  Efficient specification-based testing using incremental techniques , 2008 .

[17]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[18]  Sarfraz Khurshid,et al.  Program slicing for declarative models , 2006, SOEN.

[19]  Benoit Combemale,et al.  Towards the use of slicing techniques for an efficient invariant checking , 2015, MODULARITY.

[20]  Ji Wang,et al.  Slicing Hierarchical Automata for Model Checking UML Statecharts , 2002, ICFEM.

[21]  Uffe Kock Wiil,et al.  UMLtoCSP (UOST): a tool for efficient verification of UML/OCL class diagrams through model slicing , 2012, SIGSOFT FSE.

[22]  Ákos Horváth,et al.  Dynamic Backward Slicing of Model Transformations , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[23]  Andrew M. Sutton,et al.  Context-free slicing of UML class models , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

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

[25]  Sarfraz Khurshid,et al.  Constraint Prioritization for Efficient Analysis of Declarative Models , 2008, FM.

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

[27]  Y. Law,et al.  Symmetry Breaking Constraints for Value Symmetries in Constraint Satisfaction , 2006, Constraints.

[28]  Sarfraz Khurshid,et al.  Kato: A Program Slicing Tool for Declarative Specifications , 2007, 29th International Conference on Software Engineering (ICSE'07).

[29]  Kevin Lano Slicing of UML state machines , 2009 .

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

[31]  Uffe Kock Wiil,et al.  UOST: UML/OCL aggressive slicing technique for efficient verification of models , 2010, SAM'10.

[32]  Benoît Combemale,et al.  Kompren: modeling and generating model slicers , 2012, Software & Systems Modeling.

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

[34]  Tony Clark,et al.  A general model-based slicing framework , 2011 .

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

[36]  Jaiprakash T. Lallchandani,et al.  Slicing UML architectural models , 2008, SOEN.

[37]  Ethan K. Jackson,et al.  Components, platforms and possibilities: towards generic automation for MDA , 2010, EMSOFT '10.

[38]  William A. Andersen,et al.  Knowledge Bus: Generating Application-focused Databases from Large Ontologies , 1998, KRDB.

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

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

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

[42]  Nikolai Kosmatov,et al.  Program slicing enhances a verification technique combining static and dynamic analysis , 2012, SAC '12.

[43]  Jianjun Zhao,et al.  Applying slicing technique to software architectures , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[44]  Benoît Combemale,et al.  Modeling model slicers , 2011, MODELS'11.

[45]  Uffe Kock Wiil,et al.  Evaluation of Tools and Slicing Techniques for Efficient Verification of UML/OCL Class Diagrams , 2011, Adv. Softw. Eng..

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

[47]  Martin Gogolla,et al.  Metric-based selective representation of UML diagrams , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[48]  Kevin Knight,et al.  Toward Distributed Use of Large-Scale Ontologies t , 1997 .

[49]  Mark Harman,et al.  Model projection: simplifying models in response to restricting the environment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[50]  Peter Baumgartner,et al.  Model Based Deduction for Database Schema Reasoning , 2004, KI.

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

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

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

[54]  Sarfraz Khurshid,et al.  Generating structurally complex tests from declarative constraints , 2004 .

[55]  Alexander L. Wolf,et al.  Architecture-level dependence analysis in support of software maintenance , 1998, ISAW '98.