• Aucun résultat trouvé

Une introduction à l’Ingénierie Dirigée par les Modèles

2.1.2 Les métamodèles . . . 37 2.1.3 Le métamétamodèle exploité . . . 38 2.1.4 L’architecture à quatre niveaux . . . 38 2.2 Les approches de composition dans l’IDM . . . 38 2.3 Une introduction à l’assistant à la preuve COQ . . . 39

2.3.1 Les termes de base . . . 41 2.3.2 Les définitions . . . 41 2.3.3 Les théorèmes et les preuves . . . 43 2.3.4 Développement réalisé en COQ . . . 46

2.3.5 Types dépendants . . . 47 2.4 La formalisation de l’ingénierie dirigée par les modèles . . . 48 2.4.1 Spécification algébrique . . . 48 2.4.2 Théorie des types . . . 48 2.4.3 Raffinement et théorie des ensembles . . . 50 2.5 Conclusion . . . 50

C

Echapitre présente les concepts fondamentaux essentiels à la compréhension du reste

du manuscrit ainsi que quelques travaux connexes à la formalisation de l’IDM. La première section présente certains concepts de l’IDMet la deuxième section introduit l’uti- lisation de l’assistant à la preuve COQ pour la spécification et la vérification formelle. La

troisième section présente quelques travaux sur la spécification formelle des concepts de l’IDM.

Concepts

2.1

Une introduction à l’Ingénierie Dirigée par les Modèles

La modélisation est une activité importante dans plusieurs domaines scientifiques, elle per- met de représenter un phénomène en reproduisant son fonctionnement pour pouvoir ana- lyser et prédire son comportement. Parmi les exemples les plus connus, le modèle de Bohr [Boh13] en physique qui vise à comprendre la constitution des atomes, le modèle molécu- laire en double hélice de Watson [WC53] pour la structure de l’ADN en biologie et le modèle de M. Minsky [MH88] pour le domaine des sciences cognitives et l’intelligence artificielle qui présente une modélisation de l’esprit comme une architecture d’agents élémentaires hiérar- chisés.

L’Ingénierie Dirigée par les Modèles (IDM) est une initiative de la communauté du gé- nie logiciel développée pour instaurer les règles de la modélisation dans ce domaine. Cette initiative suggère que l’on devrait d’abord développer un modèle du système à l’étude, qui est ensuite transformé en une implémentation réelle (c’est-à-dire une entité logicielle exécu- table) [GDD09].

L’IDMa évolué en tant que changement du paradigme de la technologie orientée objet dans laquelle le principe est que tout est objet. Le paradigme de l’ingénierie des modèles est basé sur le principe que tout est un modèle [Béz05]. La technologie à base d’objet repose sur les notions de classe et d’objet, et les principales relations sont l’instanciation (un objet est une instance d’une classe) et l’héritage (une classe hérite d’une autre classe) comme illustré sur la figure2.1. D’autre types de relations peuvent exister entre les objets comme les liens de composition.

SuperClass Class Instance

inheritsFrom instanceO f

Figure 2.1 — Les notions de base de la technologie objet

L’IDMmanipule les modèles composés d’éléments et de liens entre ces éléments, mais aussi les relations entre le modèle du système à l’étude, le métamodèle et les transformations de modèles. D’une façon similaire aux technologies objets, l’IDMpeut être caractérisée par deux relations principales, à savoir, la représentation (un modèle représente un élément du monde réel, ou du monde virtuel du logiciel) et la conformité (un modèle est conforme à un métamodèle) comme illustré sur la figure2.2.

Metamodel Model System

con f ormsTo representedBy

Figure 2.2 — Les notions de base de l’IDM

2.1. Une introduction à l'Ingénierie Dirigée par les Modèles

2.1.1 Modèles

Les modèles jouent un rôle majeur dans l’IDM. La définition la plus générale dit qu’un modèle est une représentation simplifiée de la réalité [Sel03]. En fait, on peut dire qu’un modèle est un ensemble d’éléments formels (bien définis) qui décrivent quelque chose. Il est développé dans un but précis et qui peut être analysé à l’aide de diverses méthodes [MCF03]. Un modèle dans l’ingénierie doit satisfaire quelques caractéristiques [Sel03] :

3 Abstraction :Un modèle est toujours une simplification du système qu’il représente.

3 La compréhensibilité :Il ne suffit pas de donner l’abstraction, il faut aussi présenter tout ce qui concerne le modèle et permet de le comprendre (par exemple, en utilisant une notation).

3 Correction et précision Un modèle doit fournir une représentation fidèle du système modélisé et un niveau de détail adéquat pour l’exploitation souhaitée.

3 Prédictibilité : Nous devrions être en mesure d’utiliser un modèle pour prédire cor- rectement les propriétés intéressantes mais non triviales du système modélisé, que ce soit par l’expérimentation (comme par la simulation (exécution)) ou à travers un certain type d’analyses formelles.

3 Peu coûteux :Un modèle doit être nettement moins cher à construire et à analyser que le système modélisé.

Les modèles respectent des contraintes décrites par un métamodèle. Nous présentons dans ce qui suit la notion du métamodèle.

2.1.2 Les métamodèles

Les métamodèles sont les éléments de structuration de modèles. Ils permettent de définir de façon précise les différents formalismes qui permettent d’élaborer des modèles. C’est par leur intermédiaire que la pérennité des modèles est assurée. Conscient de la difficulté in- hérente à la définition de formalismes de modélisation, l’OMGa en premier lieu défini le standard MOF (Meta Object Facility), qui apporte le support de définition des formalismes de modélisation sous la forme de métamodèles [BS11] qu’il a par la suite enrichi avec le standardOCL[OMG12] qui permet d’exprimer des contraintes sur les modèles comme des prédicats logiques. Un métamodèle définit la structure, les entités ainsi que les propriétés de leurs relations et de leurs règles de cohérence que doit avoir tout modèle conforme à ce méta- modèle. Autrement dit, tout modèle doit respecter la structure définie par son métamodèle. Par exemple, le métamodèleUML1[PMV03] spécifie que les modèlesUMLpeuvent conte- nir des paquetages, les paquetages des classes, les classes des attributs et des opérations, etc [BS11].

Un métamodèle respecte des contraintes décrites dans un métamétamodèle.

1http://www.uml.org/

Concepts

2.1.3 Le métamétamodèle exploité

Notons que la relation qui existe entre le standard MOF et les métamodèles est exactement la même que celle qui existe entre un métamodèle et ses modèles instances. MOF définit la structure que doit avoir tout métamodèle, il est naturel de vouloir représenter un métamo- dèle sous forme de diagramme de classes. Son diagramme de classes est appelé aussi bien métamétamodèle que modèle MOF [BS11].

2.1.4 L’architecture à quatre niveaux

À partir de ces définitions, nous pouvons représenter l’architecture à quatre niveauxMDA

(Model Driven Architecture) proposée par le standardOMG. La figure2.3 illustre cette ar- chitecture. Elle comporte : le niveau M0 contenant les entités à modéliser, ici les applications informatiques, le niveau M1 contenant les différents modèles de l’application informatique, le niveau M2 contenant les différents métamodèles qui ont été utilisés, et le niveau M3 conte- nant le métamétamodèle qui a permis de définir uniformément les métamodèles [BS11]. Pour rendre l’IDMplus populaire dans la communauté du génie logiciel, la théorie sous-

M1 M0 M2 M3 metamodel (UML, SPEM...) model (UML models...) "real" world metameta model (MOF)

Figure 2.3 — L’architecture à quatre niveaux du MDA

jacente doit être précise et facile à comprendre. Par conséquent, des définitions précises des modèles sont nécessaires et doivent être faites dans un cadre théorique cohérent. Cela im- plique un développement de la théorie de l’IDMqui doit être suffisamment complète pour répondre à tous les phénomènes liés aux langages et métamodèles utilisés dans l’IDM(par exemple, OWL2, XML3et UML4).