Sémantique d' UML, MOF

48
Sémantique d' UML, MOF Laurent Henocque http: //laurent . henocque .free. fr/ Enseignant Chercheur ESIL/INFO France http: //laurent . henocque .perso. esil . univmed . fr/ mis à jour en Novembre 2007

description

Sémantique d' UML, MOF. Laurent Henocque http://laurent.henocque.free.fr/ Enseignant Chercheur ESIL/INFO France http://laurent.henocque.perso.esil.univmed.fr/ mis à jour en Novembre 2007. Licence Creative Commons. - PowerPoint PPT Presentation

Transcript of Sémantique d' UML, MOF

Page 1: Sémantique d' UML, MOF

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 Novembre 2007

Page 2: Sémantique d' UML, MOF

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

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

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

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

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

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

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

4 niveaux de modélisation

Page 10: Sémantique d' UML, MOF

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

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

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

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

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

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

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

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

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

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

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

Le méta modèle UML

Comprendre la spécification de la méthode UML

Page 22: Sémantique d' UML, MOF

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

Fragment du méta modèle UML : les classes

Page 24: Sémantique d' UML, MOF

Le Métamodèle = syntaxe des modèles

Page 25: Sémantique d' UML, MOF

Organisation du méta modèle : les Packages

Page 26: Sémantique d' UML, MOF

Packages fondamentaux de "Foundation"

• Structure statique des modèles

Page 27: Sémantique d' UML, MOF

Core : Backbone 1

Page 28: Sémantique d' UML, MOF

Core : Backbone 2

Page 29: Sémantique d' UML, MOF

Core : Associations 1

Page 30: Sémantique d' UML, MOF

Core : Associations 2

Page 31: Sémantique d' UML, MOF

Core : Dépendances

Page 32: Sémantique d' UML, MOF

Core : Classifieurs

Page 33: Sémantique d' UML, MOF

Core : Elements auxiliaires

Page 34: Sémantique d' UML, MOF

OCL : Règles de bonne formation

Page 35: Sémantique d' UML, MOF

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

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

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

< 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

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

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

< 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

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

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èle entier)

Page 44: Sémantique d' UML, MOF

AssociationClass

• C'est une association qui est aussi une classe : elle possède ses propres "features".

Page 45: Sémantique d' UML, MOF

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

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

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

Attribute

• Etc ...