You are on page 1of 37

UML - p.

1
UML 2.0
UML - p. 2
Généralités
• UML (Unified Modeling Language) est né de la
fusion des trois méthodes de la modélisation
objet au milieu des années 1990 :
– OMT de James Rumbaugh (General Electric) :
aspects statique, dynamique et fonctionnel d’un
système
– OOD de Grady Booch, (Department of Defense) :
concept de paquetage (package)
– OOSE d’Ivar Jacobson (Ericsson) : cas d’utilisation,
ou use cases
UML - p. 3
Généralités
• Un modèle est une représentation abstraite et
simplifiée (i.e. qui exclut certains détails),
d’une entité (phénomène, processus, système,
etc.)
• Cycle de vie d’un logiciel
• UML est un langage (graphique) applicable aux
différentes étapes du cycle de vie
• UML définit un métalangage
• UML comporte treize types de diagrammes
UML - p. 4
Généralités
Diagrammes structurels ou diagrammes statiques
• diagramme de classes (Class diagram)
• diagramme d’objets (Object diagram)
• diagramme de composants (Component diagram)
• diagramme de déploiement (Deployment diagram)
• diagramme de paquetages (Package diagram)
• diagramme de structures composites (Composite
structure diagram)
UML - p. 5
Généralités
Diagrammes comportementaux ou diagrammes
dynamiques
• diagramme de cas d’utilisation (Use case diagram)
• diagramme d’activités (Activity diagram)
• diagramme d’états-transitions (State machine diagram)
• diagramme de séquence (Sequence diagram)
• diagramme de communication (Communication diagram)
• diagramme global d’interaction (Interaction overview
diagram)
• diagramme de temps (Timing diagram)
UML - p. 6
Généralités
• Les plus utiles sont :
– Diagrammes de classes
– Diagrammes d’objets
– Diagrammes d’états-transitions
– Diagrammes les diagrammes d’activités
– Diagrammes de cas d’utilisation
– Diagrammes de séquence
UML - p. 7
Généralités
• Présenter un modèle UML
– Langage courant + Document formalisé
– Présentation stratégique : buts de l’outil
– Explication des choix de la modélisation formelle
– Modèle formel : succession d’aspects du système
– Ordre possible : cas d’utilisation, diagramme
d’activités, diagramme de séquence, diagramme de
classes …
UML - p. 8
Compléments
• Classeur
– Les paquetages et les relations de généralisation ne peuvent
avoir d’instance
– Les éléments de modélisation pouvant en avoir sont
représentés dans des classeurs
– Un classeur se représente par un rectangle, en traits pleins,
contenant éventuellement des compartiments
– Décrit un élément doté d’une identité, d’une structure ou
d’un état, d’un comportement
– Participe à des relations d’association, de généralisation, de
dépendance et de contrainte
– Exemple : les classes, les interfaces, les signaux, les nœuds,
les composants, les acteurs, les cas d’utilisation …
UML - p. 9
Compléments
• Stéréotype
– Annotation s’appliquant sur un élément de modèle
– Caractériser des variétés d’un même concept
– Représenté par une chaînes de caractères entre
guillemets (<< >>)
– Exemples : << use case >> , << interface >>
UML - p. 10
Compléments
• Note
– Contient une information textuelle comme un
commentaire, un corps de méthode ou une
contrainte
UML - p. 11
Diagramme de cas d’utilisation
• Représente la structure des grandes
fonctionnalités nécessaires aux utilisateurs du
système
• Vision orientée utilisateur : Acteur
• Premier diagramme du modèle UML
UML - p. 12
Cas d’utilisation
• Acteur : rôle joué par une personne, un processus,
une chose qui interagit avec le système
classeur stéréotypé <<actor>>
UML - p. 13
Cas d’utilisation
• Cas d’utilisation : fonctionnalité visible de
l’extérieur, service rendu par le système
Nom du cas
Verbe à l’infinitif
UML - p. 14
Cas d’utilisation
• Diagramme de cas d’utilisation
UML - p. 15
Cas d’utilisation
• Relations entre acteurs et cas d’utilisation
Association avec multiplicité (trait continu)
UML - p. 16
Cas d’utilisation
• Relations entre cas d’utilisation : 3 types
Généralisation Inclusion Extension
UML - p. 17
Cas d’utilisation
• Relation d’inclusion
– Stéréotype << include >>
– Le cas A inclut le comportement du cas B
– Lorsque A est sollicité, B l’est obligatoirement,
comme une partie de A
– Factoriser une partie commune à d’autres cas
d’utilisation
– Décomposer un cas complexe en sous-cas plus
simples
UML - p. 18
Cas d’utilisation
• Décomposition
UML - p. 19
Cas d’utilisation
• Relation d’extension
– Stéréotype << extend >>
– Le cas A étend le cas B lorsque A peut être appelé
au cours de l’exécution du cas d’utilisation B
– L’extension est optionnelle
– Point d’extension : un nom qui figure dans un
compartiment du cas étendu (rubrique point
d’extension) associé à une contrainte indiquant le
moment où l’extension intervient
– La condition est exprimée sous la forme d’une note
UML - p. 20
Cas d’utilisation
• Relation de généralisation
– A est une généralisation d’un cas B si B est un cas
particulier de A
– La relation de généralisation/spécialisation est
présente dans la plupart des diagrammes UML
– Elle se traduit par le concept d’héritage dans les
langages orientés objet
UML - p. 21
Cas d’utilisation
• Exemple
UML - p. 22
Cas d’utilisation
• Relations entre acteurs : la généralisation
UML - p. 23
Diagramme de séquence
• Messages échangés entre des lignes de vie,
présentés dans un ordre chronologique
Diagramme de séquence d’un système de pilotage
UML - p. 24
Diagramme de séquence
• Un message définit une communication
particulière entre des lignes de vie
– Envoi d’un signal
– Invocation d’une opération
– Création ou destruction d’une instance
– …
UML - p. 25
Diagramme de séquence
• Messages asynchrones
– Envoi non bloquant
– L’émetteur ne sait pas si le message arrivera à destination
– Un signal est, par définition, un message asynchrone
UML - p. 26
Diagramme de séquence
• Messages synchrones
– Invocation d’une opération asynchrone ou synchrone
– Le plus utilisé en programmation objet
– Synchrone : l’émetteur reste bloqué le temps de l’opération
UML - p. 27
Diagramme de séquence
• Création / destruction d’une instance
UML - p. 28
Diagramme de séquence
• Distinction entre événements et messages
UML - p. 29
Diagramme de séquence
• Syntaxe des messages et des réponses
– Dans la plupart des cas, la réception d’un message est suivie
de l’exécution d’une méthode d’une classe qui peut recevoir
des arguments
UML - p. 30
Diagramme de séquence
• Exécution de méthode et objet actif
– Un objet actif initie et contrôle le flux d’activités
– La ligne pointillée verticale d’un objet actif est remplacée
par un double trait vertical
UML - p. 31
• Exemple :
MVC
UML - p. 32
• Exemple : Pattern Visitor
UML - p. 33
• Exemple : Pattern Visitor
UML - p. 34
• Exemple :
Thread
UML - p. 35
Compléments
• Paquetage
– Regroupement d’éléments (classes, cas d’utilisation,
interfaces, diagrammes …)
UML - p. 36
Compléments
• Espaces de noms
– Ce sont des paquetages, des classeurs, …
– On peut déterminer un élément nommé de façon unique par
son nom qualifié
– Nom qualifié : série des noms des paquetages ou des autres
espaces de noms depuis la racine jusqu’à l’élément en
question
– Exemple : si un paquetage B est inclus dans un paquetage A
et contient une classe X, il faut écrire A::B::X pour pouvoir
utiliser la classe X en dehors du contexte du paquetage B
UML - p. 37
Références
• http://laurent-audibert.developpez.com/Cours-
UML/html/index.html