UOST: UML/OCL aggressive slicing technique for efficient verification of models

In Model Driven Development (MDD), model errors are a primary concern in development methodology. UML/OCL models have increased both in size and complexity due to its popularity in model design and development. Consequently, the efficiency of the verification process is being affected. The verification of these models is each time more laborious because of their complex design and size thus prolonging the verification process. In this paper, we propose an algorithm of an aggressive slicing technique that works on UML/OCL models (a collection of classes, associations, inheritance hierarchies, and OCL constraints) which improves the efficiency of the verification process. With this technique, the submodels of an original model are computed through partitioning those classes and multiplicities that are not used in written constraints and at the same time, ensuring that the model behavior is not affected. We attempt to quantify the speed-up achieved by adding the slicing technique to two different tools (1) UMLtoCSP and (2) Alloy. The purpose behind showing the results in UMLToCSP and Alloy is to demonstrate that the developed slicing technique is neither tool dependent nor formalism dependent.

[1]  Robert B. France,et al.  Using Alloy and UML/OCL to Specify Run-Time Configuration Management: A Case Study , 2001, pUML.

[2]  Alexander L. Wolf,et al.  Chaining: A Software Architecture Dependence Analysis Technique , 1997 .

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

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

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

[6]  Heung Seok Chae,et al.  Modularization of the UML Metamodel Using Model Slicing , 2008, Fifth International Conference on Information Technology: New Generations (itng 2008).

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

[8]  Pertti Kellomäki Verification of Reactive Systems Using DisCo and PVS , 1997, FME.

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

[10]  Vesa Ojala A Slicer for UML State Machines , 2007 .

[11]  Stuart Anderson,et al.  Diagrams and Programming Languages for Programmable Controllers , 1997, FME.

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

[13]  Jordi Cabot,et al.  UML / OCL Verification In Practice , 2008 .

[14]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[15]  Lu Qi,et al.  Program slicing: Its improved algorithm and application in verification , 1988 .

[16]  Lawrence Chung,et al.  Dynamic software architecture slicing , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

[17]  Giuseppe Visaggio,et al.  Extracting Reusable Funtions by Flow Graph-Based Program Slicing , 1997, IEEE Trans. Software Eng..

[18]  Fubo Zhang,et al.  Program slicing: Its improved algorithm and application in verification , 2008, Journal of Computer Science and Technology.

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

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