sémantique d' uml, mof laurent henocque enseignant chercheur esil/info france
TRANSCRIPT
![Page 1: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/1.jpg)
Sémantique d' UML, MOF
Laurent Henocquehttp://laurent.henocque.free.fr/
Enseignant Chercheur ESIL/INFO Francehttp://laurent.henocque.perso.esil.univmed.fr/
mis à jour en Octobre 2006
![Page 2: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/2.jpg)
Licence Creative Commons
Cette création est mise à disposition selon le Contrat Paternité-Partage des Conditions Initiales à l'Identique 2.0 France disponible en ligne
http://creativecommons.org/licenses/by-sa/2.0/fr/
ou par courrier postal à Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
![Page 3: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/3.jpg)
Références Normatives
• L'infrastructure UML • http://www.omg.org/cgi-bin/doc?formal/05-07-05 • La superstructure UML • http://www.omg.org/cgi-bin/doc?formal/05-07-04 • OCL • http://www.omg.org/cgi-bin/doc?ptc/05-06-06
![Page 4: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/4.jpg)
Autres références
• Ce support de cours s'appuie sur des exemples concrets mis à disposition librement sur internet par différentes sources– http://www.rational.com– http://www.visualuml.com– http://uml.free.fr– http://http://www.sparxsystems.com.au/
resources/uml2_tutorial/index.html
![Page 5: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/5.jpg)
Objectifs
• Présenter l'organisation d'UML sur la base de couches d'abstractions successives et illustrer l'utilisation bootstrappée de la méthode
![Page 6: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/6.jpg)
Préambule
• UML est un formalisme de modélisation dont la sémantique et la syntaxe sont formellement décrites
• UML permet de décrire des modèles possédant également cette propriété
• La méthode est "bootstrappée" : un fragment essentiel d'UML (le méta méta modèle) est utilisé pour "auto" décrire la méthode (via un méta modèle)
• Seul le méta méta modèle est dépourvu de justifications autres qu'intuitives
![Page 7: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/7.jpg)
Modélisation = Syntaxe
• Une méthode de modélisation permet de définir des syntaxes
• Une syntaxe décrit un ensemble (infini) de constructions possibles
• Par exemple, un modèle décrira que tous les véhicules ont des roues, éventuellement un moteur, de type diesel ou essence, etc...
![Page 8: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/8.jpg)
Modélisation = Syntaxe sous contraintes
• Par un relatif abus de langage, la documentation UML place sous la rubrique sémantique les règles de bonne formation (well formedness rules) qui s'ajoutent aux descriptions essentiellement graphiques
• Dans ce cadre figurent les contraintes additionnelles portant sur le modèle (dites de bonne formation) : par exemple le fait qu'une voiture de plus de 150 chevaux possède exactement des freins à disque ventilés
![Page 9: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/9.jpg)
4 niveaux de modélisation
![Page 10: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/10.jpg)
Niveau 1 : les instances ou objets
• Les instances sont les objets actuellement réalisés lors de l'exécution d'un programme
• Le rôle du modèle est de définir quelles sont les états possibles et admissibles des objets manipulés par l'application à tout moment
![Page 11: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/11.jpg)
Niveau 1 : les données
• Les instances sont les objets réalisés lors de l'exécution d'un programme, ou stockées dans des bases de données
• Imaginons un système de gestion de données boursières. La base conserve les données numériques associées aux actions
Action("Air France", 3.78€)Action("TF1",7.47€)...
![Page 12: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/12.jpg)
Niveau 2 : le modèle
• C'est la description des classes, de leurs relations, et des contraintes qui servent de "modèle" pour la création d'instances du niveau 1
• L'utilisation d'un modèle permet de contrôler la validité des états du système, et de le documenter
![Page 13: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/13.jpg)
Niveau 2 : le modèle
Record{"Action",
Champ(1,"société",String),
Champ(2,"prix",Num)
}
Action("Air France", 3.78€)
Action("TF1",7.47€)
...
![Page 14: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/14.jpg)
Niveau 3 : le méta modèle
• Le méta modèle définit ce qu'il est possible de modéliser.
• C'est un modèle également, décrit avec un fragment d'UML, dont les classes portent les noms de "Class", "Relation", ...
![Page 15: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/15.jpg)
Niveau 3 : le méta modèle
MetaClass{"Record",MetaAttr("NomClasse",String),MetaAttr("Champs",list<Champ>)}
MetaClass{"Champ",Metaattr("num",int),Metaattr("nom",String),Metaattr("type",Type)}
.
Record{"Action",Champ(1,"nom",String),Champ(2,"prix",Num)
}
![Page 16: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/16.jpg)
Niveau 4 : le méta méta modèle
• Le méta méta modèle est le langage de définition du méta modèle.
• Il est donné sans justification par un ensemble réduit de primitives
• Le langage permettant de décrire le méta modèle doit être auto explicatif : un ensemble minimal de primitives capable de "s'autodécrire".
![Page 17: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/17.jpg)
Niveau 4 : le méta méta modèle
• Par exemple une grammaire BNF :
MM->[MC]*MC->"MetaClass" "{" SC "," [MA]*"}"MA->"MetaAttr" "(" SC "," Ident ")"SC -> "\"" Ident "\""
MetaClass{"Record",MetaAttr("NomClasse",String),MetaAttr("Champs",list<Champ>)}
![Page 18: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/18.jpg)
Niveau 4 : méta méta modèle UML
• Dans le cas d'UML, le méta méta modèle est un fragment minimal des diagrammes de classes, complété par le langage de contraintes (logique) OCL
• Un exemple d'un tel méta méta modèle est le langage MML + OCL
![Page 19: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/19.jpg)
MML : Méta Modeling Language
• On décrit UML avec un fragment de celle-ci• Ce fragment doit avoir des propriétés intéressantes
: • c'est le plus petit fragment possible capable de se
décrire lui-même tout en permettant de décrire UML
• MML est un exemple d'une telle tentative• http://www.cs.york.ac.uk/puml/• http://citeseer.ist.psu.edu/674312.html
![Page 20: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/20.jpg)
Méta méta modèle UML : éléments fondamentaux
classeattributs
role role
multiplicitérelation
héritage
agrégation/composition
![Page 21: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/21.jpg)
Le méta modèle UML
Comprendre la spécification de la méthode UML
![Page 22: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/22.jpg)
Le méta Modèle UML
• Le méta modèle décrit donc ce que l'on peut modéliser.
• Il est documenté par UML et forme le manuel de référence d'UML
• UML n'est assortie de recommandations graphiques que pour la forme : la seule loi est celle définie par le méta modèle, indépendamment des artéfacts graphiques choisis
![Page 23: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/23.jpg)
Fragment du méta modèle UML : les classes
![Page 24: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/24.jpg)
Le Métamodèle = syntaxe des modèles
![Page 25: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/25.jpg)
Organisation du méta modèle : les Packages
![Page 26: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/26.jpg)
Packages fondamentaux de "Foundation"
• Structure statique des modèles
![Page 27: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/27.jpg)
Core : Backbone 1
![Page 28: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/28.jpg)
Core : Backbone 2
![Page 29: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/29.jpg)
Core : Associations 1
![Page 30: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/30.jpg)
Core : Associations 2
![Page 31: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/31.jpg)
Core : Dépendances
![Page 32: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/32.jpg)
Core : Classifieurs
![Page 33: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/33.jpg)
Core : Elements auxiliaires
![Page 34: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/34.jpg)
OCL : Règles de bonne formation
![Page 35: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/35.jpg)
Core Semantics : exemple 1
• [2] No Attributes may have the same name within a Classifier.
• (Unicité des noms d'attributs dans un Classifier)
self.feature->
select(a | a.oclIsKindOf(Attribute))->
forAll(p,q | p.name=q.name implies p=q)
![Page 36: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/36.jpg)
Core Semantics : exemple 2
• No BehavioralFeature of the same kind may match the same signature in a Classifier. (Deux "méthodes" ne peuvent avoir la même signature)
self.feature->forAll(f, g |(((f.oclIsKindOf(Operation) and g.oclIsKindOf(Operation)) or(f.oclIsKindOf(Method) and g.oclIsKindOf(Method)) or(f.oclIsKindOf(Reception) and g.oclIsKindOf(Reception))) andf.oclAsType(BehavioralFeature).matchesSignature(g))implies f = g)
![Page 37: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/37.jpg)
Abstraction
• Une abstraction est une relation de dépendance entre deux éléments ou ensembles d'éléments qui représentent le même concept à deux niveaux d'abstraction, ou selon différents points de vue
• Attributs : mapping• Stéréotypes : «derive», «realize», «refine»,
and «trace»
![Page 38: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/38.jpg)
< un extrait de la documentation >
• In the metamodel, an Abstraction is a Dependency in which there is a mapping between the supplier and the client. Depending on the specific stereotype of Abstraction, the mapping may be formal or informal, and it may be unidirectional or bidirectional.
• If an Abstraction element has more than one client element, the supplier element maps into the set of client elements as a group. For example, an analysis-level class might be split into several design-level classes. The situation is similar if there is more than one supplier element.
![Page 39: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/39.jpg)
Artifact
• Un "Artifact" représente un élément physique d'information utilisé ou produit par le processus du développement logiciel
• Par exemple : les modèles, les sources, les scripts et les fichiers binaires exécutables.
• Un "Artifact" peut constituer l'implémentation d'un composant déployable
![Page 40: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/40.jpg)
Artifact
• Un artifact est un classifier muni d'une agrégation optionnelle avec un ou plusieurs composants
• En tant que Classifieurs, les Artéfacts peuvent avoir des attributs qui représentent leurs propriétés ( par exemple l'attribut “read-only” ou l'opération “check in”).
• Associations : implementation le composant déployable implanté par cet artifact
• Les stereotypes de Artifact sont «file», les sous classes de «file» («executable», «source», «library», et «document»), et «table». Ces stereotypes peuvent être sous classés : (e.g., «jarFile» pour les archives Java).
![Page 41: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/41.jpg)
< un extrait de la documentation >
• It should be noted that sometimes Artifacts may need to be linked to Classifiers directly, without introducing a ‘Component.’
• For instance, in the context of code generation, the resulting Artifacts (source code files) are never deployed as Components.
• In that case, a «derive» Dependency can be used between the Classifier(s) and the generated Artifact.
![Page 42: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/42.jpg)
Association
• Une association définit une relation sémantique entre classifieurs. Ses instances (des "Link"s) sont des ensembles de tuples
• Dans le méta modèle, une association est la déclaration d'une relation sémantique entre deux classifieurs, tels que des classes. Une association a au moins deux extrémités (AssociationEnd), chacune connectée à un classifieur
![Page 43: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/43.jpg)
Association (2)
• Attributs : name• Associations : connection• Stéréotypes : implicit• Contraintes standard : xor (une seule association
est réalisée pour chaque instance associée)• Tagged Values : persistence : le lien survit il à la
disparition de ses extrémités• Features héritables : connection• Features non héritables : name (unique), isRoot,
isLeaf, isAbstract (liés au modèles entier)
![Page 44: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/44.jpg)
AssociationClass
• C'est une association qui est aussi une classe : elle possède ses propres "features".
![Page 45: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/45.jpg)
AssociationEnd : Attributs
• aggregation (none, aggregate,composite), • changeability (changeable, frozen, addOnly), • ordering (unordered, ordered), • isNavigable (true, false), • multiplicity• name• targetScope (instance,classifier)• visibility
![Page 46: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/46.jpg)
AssociationEnd
• Une des extrémités d'une association. Elle est reliée à un classifieur, mais porte aussi les informations associées aux rôles (nom, cardinalités, etc)
• Stéréotypes : association (le défaut), global (la cible est une variable globale), local (la cible est une variable locale), parameter (la cible est un paramètre), self (la cible est l'objet support "this")
![Page 47: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/47.jpg)
AssociationEnd : associations
• qualifier : liste d'attributs de qualification• specification : un ou plusieurs qualifieurs
qui définissent l'interface de programmation minimale qui doit être supportée par la cible quand l'association est traversée
• participant : le classifieur cible• extrémité anonyme de composite :
l'association qui possède ce "end"
![Page 48: Sémantique d' UML, MOF Laurent Henocque Enseignant Chercheur ESIL/INFO France](https://reader031.vdocuments.site/reader031/viewer/2022013100/551d9d84497959293b8bfa6f/html5/thumbnails/48.jpg)
Attribute
• Etc ...