Model checking manual

How to use and write a model checker with Kermeta

Didier Vojtisek

Build date: 3-November-2010

$LastChangedDate:: 2010-06-02 10:42:20#$

Abstract

This document presents the different concerns about model checking with Kermeta.

Not all aspects of writing or integrating are presented as they may be specific to the user choice or requiring some additional development that aren't available at the time of writing of this document, however the document try to list these potential usage.

The various sample presented in this document are extracted from the model checker written in the context of the Mopcom SoC project.

The document also details how to prepare an uml profile for being used in a checker. In this context, it presents how to optimize the navigation in the uml model thanks to kermeta aspects.

The document is organized as follow. The first chapter explains the base concepts used by a model checker including some specificities of Kermeta. The second chapter show a typical use of a model checker in the end user envrionnment. The third chapter provides some guidelines for writing a model checker. This chapter also presents some limitations when writing a model checker and various leads to get rid of them.


Table of Contents

1. Base concepts
1.1. Constraints
1.2. Invariant constraints used to complement the metamodel structure
1.3. Invariant constraints used to restrict a metamodel for a given intend
2. Using a model checker written in Kermeta
2.1. Get the model to check in the appropriate format
2.2. Integration in a graphical user interface
2.3. Run the checker as a standalone application
3. Writing a checker
3.1. Declaring Metaclasse
3.1.1. General case
3.1.2. ClassDefintion of UML Profiles
3.2. Retrieving the model to check (Model load)
3.2.1. Model load general case
3.2.2. Loading UML model with profiles
3.3. Writing constraint
3.3.1. General case
3.3.2. Constraints on UML profiles
3.3.3. Model checker product lines (ie. Organizing invariant constraints)
3.4. Launching the check and giving feedback on failed constraints
3.4.1. General case
3.4.2. Feedback for constraints on UML Profiles
3.5. Limitations and possible enhancements
3.5.1. Load of large model
3.5.2. Many or complex constraints
3.5.3. Test of model checker themselves
3.5.4. Advanced Model checker product line
3.5.5. Automatic Generation of constraint from a set of sample model

List of Figures

1.1. Restriction of the proposal for model element creation driven by the metamodel structure
2.1. Example : Export from Rhapsody modeler to the XMI format supported by EMF
2.2. Integration example of Mopcom model checkers using popup menu on uml files
3.1. Stereotype declaration and instance as seen in a classical uml modeller
3.2. Stereotype use in a classical uml modeller
3.3. Stereotype declaration and instance as seen from the metamodel point of view (ie. in an "ecore" modeller)