Ingénierie des Modèles Méta-modélisation Eric Cariou Université de Pau et des Pays de l’Adour Département Informatique Eric. carlou@univ-pau. r Introduction/Plan But de la méta-modélisation or7 Sni* to View Définir des langages de modelisation ou des langages de manière générale Architecture MOF 4 niveaux de (méta)modélisation Architecture 4 niveaux généralisable en dehors du MOF méta-modèle Le niveau MB est le MOF Dernier niveau, il est méta-circulaire : il peut se définir lui même Le MOF est — pour l’OMG – le méta-méta-modèle unique ervant de base à la définition de tous les méta-modèles 4 niveaux du MOF MOF MétaModèle GestionEntreprise Ml Modèle 1 MO Système d’Information Modèle 2 Facturation PAG » rif 7 le comportement d’une porte ou d’une fenêtre (ouverte, fermée) On peut abstraire le comportement des portes et des fenêtres en spécifiant les opérations d’ouverture fermeture dans une interface Le diagramme d’état est associé à cette interface Il faut également ajouter des contraintes OCI_ pour préciser les contraintes entre les éléments d’une pièce Ml : spécification du Système ontext Mur inv: fenetre union(porte) size() size() = 2 2 murs de la pièce ont une fenêtre mur. orte 1 1 mur de la pièce a une porte 10 Méta-modélisation UMI- Les 2 diagrammes de ce modèle de niveau Ml sont des diagrammes I_JML valides Les contraintes sur les éléments des diagrammes IJML et leurs relations son nGF3CF7 Qu’est ce que le méta-modèle I_JML ? un diagramme de classe UMI_ (avec contraintes OCL) Comment spécifier les contraintes d’un diagramme de classe ? Via le méta modèle LJML Ou plus précisement : via la partie du méta-modèle UMI_ pécifiant les diagrammes de classes Méta-méta-modèle LIML copie partielle du méta-modèle UMI_ niveau M3 14 M3 : Méta-méta-modèle IJML (simplifié) 15 Méta-méta-modèle LIML doit aussi être clairement défini Qu’est ce que le méta-méta-modèle IJML ? Monlnterface { .
Grammaire Java pour déclaration de classe class_declaration { modifier } « class » identifier [ « extendsi’ class_name ] [ « implements » interface_name { interface_name } I « ( » { field_declaration } 18 Syntaxe Syntaxe graphique Notation graphique, chaque élément a une forme graphique articulière Exemple : associations entre classes/interfaces sur les diagrammes de classe IJML Trait normal : association Flèche, trait pointillé : dépendance Bèche en forme de triangle, trait en ointillé implémentation 22 Spécification de méta-modèles But : définir un type de modèle avec tous ces types d’éléments et leurs contraintes Trois approches possibles Définir un méta modèle nouveau à partir de rien Modifier un méta-modèle existant : ajout, suppression, modification d’éléments et des contraintes sur leurs relations Correspond au MOB, décomposé en 2 parties E-MOF : essential MOE les méta-éléments de base réutilisés tel quel dans tous les méta-modèles MOF : un méta-modèle partlculier défini via E-MOF Spécialiser un méta-modèle existant en rajoutant des éléments et des contraintes (sans en enlever) Serveur BDD (unique} IPadd: IP 25 profils UMI- profil LJMI_ est composé de 3 types d’éléments Des stéréotypes Des tagged value Des contraintes (exprimables en OCL) Sur ces stéréotypes, tagged value Sur des éléments du méta-modèle existant