Académique Documents
Professionnel Documents
Culture Documents
Introduction/Plan
But de la mta-modlisation
Dfinir des langages de modlisation ou des langages de manire gnrale 4 niveaux de (mta)modlisation
Langage de dfinition de mta-modles Langage de modlisation Modlisation ressources, donnes, gestion d'une entreprise Langage de contraintes sur modles Standard pour changes de modles et mta-modles entre outils
3
MOF
Utilis pour dfinir des mta-modles Entit/classe, relation/association, type de donnes, rfrence, package ... 4
Le niveau M3 est le MOF Dernier niveau, il est mta-circulaire : il peut se dfinir lui mme
Le MOF est pour l'OMG le mta-mta-modle unique servant de base la dfinition de tous les mta-modles
M2
MtaModle GestionEntreprise
MtaModle SystmesTechniques
M1
Modle 1
Modle 2
Modle 3
Modle 4
M0
Systme d'Information
Facturation
Systme Embarqu
Systme Tlcom
Hirarchie 4 niveaux existe en dehors du MOF et d'UML, dans d'autres espaces technologiques que celui de l'OMG
Langage de programmation
M0 : l'excution d'un programme M1 : le programme M2 : la grammaire du langage dans lequel est crit le programme M3 : le concept de grammaire EBNF M0 : donnes du systme M1 : donnes modlises en XML M2 : DTD / Schema XML M3 : le langage XML 7
XML
Mta-modlisation UML
Mta-modlisation UML
Il faut galement ajouter des contraintes OCL pour prciser les contraintes entre les lments d'une pice
9
M1 : spcification du systme
context Mur inv: fenetre -> union(porte) -> size() <= 1 -- un mur a soit une fentre soit une porte (soit rien)
context Piece inv: mur.fenetre -> size() = 2 -- 2 murs de la pice ont une fentre mur.porte -> size() = 1 -- 1 mur de la pice a une porte
10
Mta-modlisation UML
Les 2 diagrammes de ce modle de niveau M1 sont des diagrammes UML valides Les contraintes sur les lments des diagrammes UML et leurs relations sont dfinies dans le mta-modle UML : niveau M2
Un diagramme UML (de classes, d'tats ...) doit tre conforme au mta-modle UML Diagramme de classe spcifiant la structure de tous types de diagrammes UML
Mta-modle UML
Diagramme de classe car c'est le diagramme UML permettant de dfinir des lments/concepts (via des classes) et leurs relations (via des associations) 11
12
context Class inv: attributes -> forAll ( a1, a2 | a1 <> a2 implies a1.name <> a2.name) 2 attributs d'une mme classe n'ont pas le mme nom
context StateMachine inv: transition -> forAll ( t | self.state -> includesAll(t.state)) Une transition d'un diagramme d'tat connecte 2 tats de ce diagramme d'tat
13
Est une instance d'un lment du mta-modle (d'un mtalment) En respectant les contraintes dfinies dans le mta-modle
14
UML Superstructure Specification, v2.1.1 Figure 15.2 - State Machines, page 521
15
The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.
The connection points of a state machine are pseudostates of kind entry point or exit point.
16
UML Superstructure Specification, v2.1.1 Figure 7.10 - Features diagram of the Kernel package, page 30
17
Mta-modlisation UML
Niveau M3
Via le mta-modle UML Ou plus prcisment : via la partie du mta-modle UML spcifiant les diagrammes de classes
18
19
Mta-modlisation UML
Hirarchie de modlisation
conforme
Niveau M3
conforme
Niveau M2
Niveau M1
conforme
Niveau M0
conforme
21
Qui dfinit la structure gnrale des diagrammes d'instances Ce diagramme de classe est un mta-modle pour le diagramme d'instance Diagramme de classe est conforme galement au mta-modle UML Mta-modle UML conforme Un diagramme d'instance 22 conforme Un diagramme de classe conforme
Hirarchie de modlisation
Architecture 4 niveaux
Conceptuellement pertinente Certains niveaux sont difficiles placer les uns par rapport aux autres Cas du diagramme d'instance
En pratique
Diagramme d'instance de l'application : niveau M1 Mta-modle UML : niveau M2 Diagramme de classe de l'application : niveau M1 ou M2 ?
M1 normalement car modlise l'application et conforme au mta-modle de niveau M2 Mais devrait tre M2 rapport au diagramme d'instance qui est de niveau M1
Conclusion
Pas toujours facile ni forcment pertinent de chercher placer absolument les modles tel ou tel niveau L'important est de savoir quel rle (modle / mta-modle) joue un modle dans une relation de conformit
23
Syntaxe
Syntaxe textuelle
Ensemble de mots-cl et de mots respectant des contraintes dfini selon des rgles prcises
Notions de syntaxe et de grammaire dans les langages Exemple pour langage Java : public class MaClasse implements MonInterface { ... } Grammaire Java pour la dclaration d'une classe : class_declaration ::= { modifier } "class" identifier [ "extends" class_name ] [ "implements" interface_name 24 { "," interface_name } ] "{" { field_declaration } "}"
Syntaxe
Syntaxe graphique
Notation graphique, chaque type d'lment a une forme graphique particulire Exemple : relations entre classes/interfaces dans les diagrammes de classe UML
Trait normal : association Flche, trait pointill : dpendance Flche en forme de triangle, trait en pointill : implmentation Flche en forme de triangle, trait plein : spcialisation
25
Syntaxe abstraite/concrte
Syntaxe
Abstraite
Les lments et leurs relations sans une notation spcialise Correspond ce qui est dfini au niveau du mta-modle, des instances de mta-lments Syntaxe graphique ou textuelle dfinie pour un type de modle Plusieurs syntaxes concrtes possibles pour une mme syntaxe abstraite
Concrte
26
Syntaxe
2 diagrammes UML (classes et tats) avec syntaxes graphiques spcifiques ces types de diagrammes Diagramme d'instance (conforme au mta-modle) prcisant les instances particulires de classes, d'associations, d'tats... Diagramme dfini via syntaxe concrte : diagramme d'tats de l'exemple Diagramme dfini via syntaxe abstraite : diagramme d'instances conforme au mta-modle UML 27
28
Dfinition de mta-modles
But : dfinir un type de modle avec tous ses types d'lments et leurs contraintes de relation Plusieurs approches possibles
Dfinir un mta-modle nouveau partir de rien, sans base de dpart
Modifier un mta-modle existant : ajout, suppression, modification d'lments et des contraintes sur leurs relations Spcialiser un mta-modle existant en rajoutant des lments et des contraintes (sans en enlever)
29
Profils UML
Et des contraintes sur leurs relations entre eux et avec les lments d'UML
Ajouts de contraintes sur lments existants d'UML Ajouts de contraintes sur relations existantes entre les lments d'UML Aucune suppression de contraintes ou d'lments
Profil : mcanisme d'extension d'UML pour l'adapter un contexte mtier ou technique particulier
Profil pour composants EJB Profil pour gestion banquaire Profil pour architecture logicielle ...
30
Strotype
Extension, spcialisation d'un lment du mta-modle
Classe, association, attribut, opration ... Le nom d'un strotype est indiqu entre << ... >> Il existe dj des strotypes dfinis dans UML
<< interface >> : une interface est un classifier particulier (sans attribut)
Pour marquer des attributs d'une classe pour prciser une contrainte ou un rle particulier
31
Profils UML
Sur ces strotypes, tagged values Sur des lments du mta-modle existant Sur les relations entre les lments
Un profil UML est dfini sous la forme d'un package strotyp << profile >> Exemple de profil : architecture logicielle
Des composants client et serveur Un client est associ un serveur via une interface de service par l'intermdiaire d'un proxy
32
Profil dfini
nomm ClientProxyServer Dfinit trois strotypes
Trois classes jouant un rle particulier : extensions de la mta-classe Class du mta-modle UML
33
Navigation sur le mta-modle UML (simplifi) en considrant que la mta-classe Class a trois spcialisations (Server, Client, Proxy) Un proxy associ un client doit implmenter une des interfaces dont dpend le client et un proxy implmentant une interface d'un client doit avoir une association avec ce client context Client inv: let proxies = self.associationEnd.association.associationEnd.class -> select ( c | c.oclIsTypeOf(Proxy)) in let interfaces = self.dependsOn in interfaces -> forAll ( i | proxies.implements -> includes (i) and proxies -> forAll ( p | p.implements -> includes (i) implies p.hasClassRefWith(self)))
34
35
MOF
E-MOF et C-MOF peuvent se dfinir mutuellement et chacun eux-mmes Mta-modle = ensemble d'instances de mta-lments du 36 MOF associes entre elles
37
Ecore
Ecore
38
Ecore
39
40