Spécification formelle à objets en UML/OCL et B : une approche transformationnelle
Institution:
Versailles-St Quentin en YvelinesDisciplines:
Directors:
Abstract EN:
The object-oriented development is today widely used in systems construction. It is mainly based on the use of semi-formal notations. In particular the UML provides a standardized framework for object modelling using various diagrams (classes, state-transitions, etc. ) and by the means of the OCL. The object-oriented notations have established advantages: semantic richness, re-use of components, graphic and synthetic view, high level of abstraction. However, these notations miss of formalization and lack of solid bases for the verification and validation of the applications. To overcome this problem we propose to use the formal methods, in particular the B method. The aim of this thesis is to study and implement techniques which facilitate the use of the UML/OCL notation together with the B formal method, in order to define a precise and rigorous semantics for the object models, as well as to provide proof tools. First, we define derivation schemes from the UML class and state-transition diagrams into a B specification. Then, we propose transformation rules from the Object Constraint Language (OCL) into B formal expressions: we define a morphism between the meta-models of both languages. A prototype tool to automatically apply our rules is proposed. The use of the UML facilitates the construction of a B formal specification. The UML/OCL view describes the future system synthetically and intuitively, allowing a good understanding and documentation of the constructed models. The B formal specification allows the UML/OCL model to be analyzed and proved using automated tools. It ensures the consistency of the specification and facilitates errors detection and correction by means of proof obligations. However, the construction of a reusable object model remains difficult: at each step of the development process the appropriate classes must be identified and structured, their relationships must be established, and their states and operations correctly specified. In order to facilitate this task, we propose to use patterns to specify systems using UML and B. To validate this approach, we develop the object-oriented formal specification of an access control system by applying derivation schemes and by using patterns.
Abstract FR:
Le développement à objets est aujourd'hui amplement utilisé en conception de systèmes. Il est basé principalement sur l'utilisation de notations semi-formelles. En particulier la notation UML fournit un cadre normalisé pour la modélisation objet à l'aide de divers diagrammes (de classes, d'états-transitions, etc. ) et du langage de contraintes OCL. Les notations à objets présentent des avantages confirmés : richesse sémantique, réutilisation de composants, vue graphique et synthétique, pouvoir d'abstraction. Cependant, ces notations manquent de formalisation des différents concepts, ainsi que de bases solides pour la vérification et la validation des applications. Pour pallier à ce problème nous proposons d'utiliser les méthodes formelles, en particulier la méthode B. L'objectif de cette thèse est d'étudier et de mettre en œuvre des techniques qui facilitent l'utilisation conjointe de la notation à objets UML/OCL et de la méthode formelle B, afin de définir une sémantique précise, solide et rigoureuse pour les modèles objet, ainsi que de fournir des outils de preuve des spécifications. Dans une première étape, nous définissons des schémas de dérivation des diagrammes de classes et d'états-transitions UML en une spécification B. Ensuite nous proposons des règles de transformation d'expressions OCL en expressions formelles B : nous définissons un morphisme de transformation entre les méta-modèles des deux langages. Un outil prototype permettant l'application automatisée de nos règles est implémenté. L'utilisation d'UML est une démarche qui facilite la construction d'une spécification B. La vue UML/OCL décrit le futur système et son invariant (les données et leurs propriétés) de manière synthétique et intuitive permettant une bonne compréhension et documentation du modèle construit. La spécification formelle B permet l'analyse et la preuve d'un modèle UML/OCL à l'aide d'outils automatisés. Par le biais des preuves, elle garantit la consistance de la spécification et facilite la détection et correction des erreurs. Cependant, concevoir un modèle objet réutilisable demeure un problème difficile : à chaque étape du processus de développement, il faut déterminer les classes appropriées, les décomposer, établir les relations entre elles, spécifier correctement leurs états et leurs méthodes. Afin de faciliter cette tâche, nous proposons d'utiliser les patterns pour spécifier des systèmes en UML et en B. Pour valider cette approche, nous construisons la spécification formelle à objets d'un système de contrôle d'accès par application des schémas de dérivation et par utilisation de patterns.