Conclusion
Nous avons proposé trois utilisations potentielles de
notre extension mathématique EMOCL : développement
incrémental de diagrammes de classes UML basé sur la technique de
raffinement, validation de diagrammes de classes et utilisation d'EM-OCL en
tant que langage de requêtes.
Conclusion générale
Dans ce mémoire, nous avons proposé une
extension mathématique au langage OCL appelée EM-OCL permettant
de représenter et manipuler les concepts mathématiques suivants :
couple, fonction totale, fonction partielle, fonction injective, fonction
surjective, fonction bijective et relation binaire. Ces concepts sont
modélisés par des classes génériques. Ces classes
sont intégrées d'une façon judicieuse dans la
bibliothèque de classes OCL. Les opérations offertes par ces
classes sont définies formellement en utilisant une spécification
pré/post supportée par OCL et par conséquent par EM-OCL.
Des utilisations potentielles de notre langage EMOCL ont été
exhibées sur des exemples bien ciblés, dans divers domaines :
développement des diagrammes de classes en utilisant la technique de
raffinement, validation de diagrammes de classes et utilisation d'OCL en tant
que langage de requêtes.
Plusieurs outils sont associés au langage OCL. Ils sont
de niveaux différents. Les modéleurs permettent une
vérification syntaxique des contraintes OCL : exemple l'outil OCLE [15].
Les vérificateurs permettent la construction des diagrammes
d'objets et la vérification de leurs conformités aux diagrammes
OCL, exemple l'outil USE [12]. Les générateurs de code permettent
la génération d'un squelette d'application à partir du
modèle UML/OCL. Les contraintes OCL associées aux modèles
seront surveillées à l'exécution et les expressions (type,
initialisation, règle de dérivation) seront respectées,
exemple l'outil Dresden OCL Toolkit [13]. L'outil HOL-OCL[14] représente
un environnement de preuve interactif dédié au langage OCL
implémenté à base de Isabelle/HOL permettant, d'analyser
des systèmes des contraintes OCL, établir des raffinements
formels entre des packages et de vérifier des programmes simples
à base de contraintes OCL.
Quant aux perspectives de ce travail, nous pourrions envisager
les prolongements sui-
vants :
- intégrer notre langage EM-OCL dans l'outil USE afin de
vérifier des propriétés invariantes globales d'un
diagramme de classes UML,
- intégrer notre langage EM-OCL dans l'environnement
HOL-OCL afin d'utiliser le raffinement formel dans le cadre UML.
- proposer des règles de transformation
systématique d'UML/OCL vers Event-B afin d'utiliser le raffinement
formel dans le cadre d'un développement conjoint UML/EMOCL et
Event-B.
|