Title: UML2 : Les diagrammes
1UML2 Les diagrammes
- Laurent Henocque
- http//laurent.henocque.free.fr/
- Enseignant Chercheur ESIL/INFO France
- http//laurent.henocque.perso.esil.univmed.fr/
- mis à jour en Novembre 2008
2Licence 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.
3Ré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
4Autres 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/um
l2_tutorial/index.html
5Objectifs
- Présenter les différents diagrammes UML2.0
6UML Diagrammes de Classes
7Préambule
- UML propose des artéfacts particuliers pour les
diagrammes. - Toutefois, ces propositions sont seulement
suggérées, ne sont pas obligatoires, et ne font
en aucun cas partie de la norme - Un diagramme à la mode OOA (nuages) peut donc
constituer un document UML valide, selon des
conventions prédéfinies
8Diagrammes de Classes
- les diagrammes de classes, ou de structure,
définissent les constructions élémentaires d'un
modèle types, classes, relations utiles pour le
reste (pose des contraintes)
9Elements graphiques des diagrammes statiques
10Exemple
11Exemples de Classes
12Classes héritage
13Classes associations
14Classe notation simple
- Une classe définit un "type", ensemble d'objets
pouvant exister à l'exécution du programme
Voiture
Bateau
Véhicule
15Encapsulation
16Classe syntaxe détaillée
17Attribut multivalué
18Attribut dérivé
19Classes Abstraites
20Héritage
21Heritage ??
22Polymorphisme
23Généralisation
Super-classe
Animal
Généralisation
Spécialisation
Chat
Chien
Raton laveur
COHERENCE
Sous-classe
24Héritage multiple
MULTIPLE
Véhicule
Tapis
Super-classe
Super-classe
Aérien
Terrestre
Tapis volant
Fusion de plusieurs classes en une seule classe
Sous-classe
25Généralisations Multiples
Véhicule
DISCRIMINANT
DISCRIMINANT
Motorisation
Milieu
A voile
Terrestre
A moteur
Marin
26Obligation d'Héritage de toutes les dimensions
Véhicule
Motorisation
Milieu
Inclusif
A voile
Terrestre
A moteur
Marin
Pétrolette
Nécessaire
27Exemple
28Core Backbone Simplifié
29Classification (Distilled)
30Dérivation (Distilled)
31Exemple Espresso Compilateur
- http//types.bu.edu/Espresso/report/Espresso.html
32Types fondamentaux
33Exemple log4j
34Stéréotypes et Variations
35Instances
36Stéréotypes dans les classes
37Le stéréotype "utility"
38Templates
39SP CPP
40UML Packages
41Diagrammes de Packages
- Utilisés pour séparer le modèle en conteneurs
logiques, et décrire leurs interactions à un haut
niveau
42Exemple de Packages
43Packages
44Packages
45Stéréotypes de Packages
46(No Transcript)
47Packages (Distilled)
48UML Associations
49Association
50Lien
51Nommage d'Association
52Rôles
53Nécessité des noms de Rôles
54Cardinalités
55Navigabilité
56Agregation
57Relation de Composition
58Composition Vue Interne
59Agrégation et composition (Distilled)
60Associations qualifiées
61Association qualifiée (Distilled)
62Relation N-aire
63Classe d'association
64Classe d'association (Distilled)
65Classe d'association 2
66Association dérivée
67Relation de dépendance
- Une dépendance traduit lexistence dun lien
fugitif entre deux classes, par exemple lors de
la création dun objet, ou dun passage de
paramètre
68DernierDiagrammeClasses (Distilled)
69UML Contraintes Exprimées dans le modèle
70Contraintes
71Contraintes
72Contraintes
73Contraintes Exercice tout peut être décrit
dans le modèle?
74UML Interfaces
75Interfaces
76Interfaces
77Réalisation d'Interfaces
78Interfaces (Distilled)
79Interfaces (Distilled)
80UML Composants Déploiement
81Diagrammes Objet (d'instances)
- Les diagrammes objet illustrent les interactions
concrètes entre instances de classes (les liens y
sont des instances des relations)
82Composants et Composites
83Liens internes entre composants
84Instances
- Les instances ne sont pas utilisées dans les
diagrammes de classes, mais apparaissent dans les
cas d'utilisation, et les diagrammes de trace
d'événements (activity diagrams)
85Instances
86Diagramme de collaboration
87Exemple
88Diagrammes de Structure Composite
- Les diagrammes de structure composite donnent le
moyen de stratifier la structure et de se
concentrer sur des détails internes concernant
les associations. - Un tel diagramme décrit la structure interne d'un
classifieur.
89Exemples
90Collaborations
91Diagrammes de Composants
- Les diagrammes de composants sont utilisés pour
modéliser des structures à plus haut niveau, ou
plus complexes, qui déclarent des interfaces
précises. La plupart du temps, un composant fait
intervenir plusieurs classes
92Exemples
93Deployment Diagrams
- Les diagrammes de déploiement décrivent la
disposition concrète des éléments du modèle dans
le monde physique
94Exemples
95Exemples
96Modules
97Composants
98Ex Composants ArgoUML
99Déploiement
100Deploiement (Distilled)
101UML Etats
102Diagrammes de machines d'états finis
- Les diagrammes d'état finis décrivent les états
stables d'une classe, et les transitions quoi s'y
appliquent
103Exemple
104Exemples
105Exemples
106Exemple
107Exemple
108Jonction
109Historique
110Concurrence
111Diagrammes de Communication
- Les diagrammes de communication décrivent le
réseau et le séquencement de messages entre
objets pendant l'exécution d'une collaboration
112(No Transcript)
113(No Transcript)
114Transition
115Transition Gardée
116Etats Composites
117Abstraction des Etats Composites
118Entry / Exit / On / Do
119Transitions Boucles
120Parallélisme
121Synchronisation
122Exemple Etats
123Etats (Distilled)
124Etats (Distilled)
125Etats (Distilled)
126UML Activités
127Activity Diagrams
- Les diagrammes d'activité ont un large champ
d'utilisation. A plus haut niveau, ils peuvent
servir à capturer les points de décision et le
contrôle dans un process. Ils peuvent aussi
servir à documenter un algorithme.
128Exemple
129Exemple
130Exemple
131Exemple
132Expansion regions
133Exemple exceptions, régions interruptibles
134Parameter sets
135Transition entre Activités
136Couloirs d'Activités
137Transition Gardée
138(No Transcript)
139Machineà Café
140Synchronisation
141UML Séquences
142Diagrammes de Séquence
- Les diagrammes de séquence sont des diagrammes de
communication dans lesquels la dimension
verticale est utilisée pour matérialiser
l'écoulement du temps
143Exemples
144Exemples
145Temps concret
146Boucles
147Sections critiques
148Décomposition
149Invariants
150Séquences
151Activation
152Messages de Séquences
153Diagramme deSéquence
154Sequence (Distilled)
155Sequence (Distilled)
156Sequence (Distilled)
157UML Collaborations
158Collaborations
159Collaborations
160Collaborations
161Collaboration au Niveau Classe
162Collaboration (Distilled)
163Collaborations et Packages
164UML Use Cases
165Diagrammes de Cas d'Utilisation
- Ces diagrammes modélisent des interactions entre
les utilisateurs et le système. Ils définissent
le comportement, les conditions et contraintes
sous la forme de scripts ou de scénarios
166Exemples
167Exemples
168Exemples
169Use Cases dans l'analyse
170Use Cases
171Use Case
172Use Case
173Stéréotypes de Use Cases
174Relations de Use Case (Distilled)
175Use Case Points d'extension (Distilled)
176UML Diagrammes de Timing
177Timing Diagrams
- Ces diagrammes combinent les diagrammes de
séquence et d'état pour proposer un point de vue
sur l'évolution de l'état d'un objet au fil du
temps, et sur les messages qui modifient cet état.
178(No Transcript)
179(No Transcript)
180UML Diagrammes d'"interaction overview"
181Interaction Overview Diagrams
- Ces diagrammes utilisent diagrammes d'activité et
de séquence pour décrire comment des fragments
d'interaction (décrits par des diagrammes de
séquence) sont combinés par des points de
décision et des flux
182(No Transcript)
183UML 2.0 Elements nouveaux
184Métamodèle
- Diagrammes de collaboration -gt diagrammes de
communication - Diagrammes de d'interaction hybrides (overview of
interaction) - Diagrammes temporels (timing diagrams)
- Diagrammes de structure composite
185Diagrammes de classe
- Les attributs et les associations
unidirectionnelles sont devenues deux notations
équivalentes pour le même concept de "propriété"
(property). - Les multiplicités discontinues ont été
abandonnées (2,7) - Diverses propriétés et mots clef ont été
abandonnées ("frozen", ltltparametergtgt, ltltlocalgtgt)
186Diagrammes de séquence
- Nouvelle notation dite de "cadre d'interaction"
(interaction frame) pour les sections itératives,
conditionnelles de l'exécution, et divers modes
de contrôle - Cela permet de décrire des algorithmes de façon
réaliste dans les diagrammes de séquence
187Diagrammes de Séquence
188Diagrammes de séquence (2)
- Les marqueurs d'itération et les gardes des
messages ont été supprimés (ils servaient
précisément à décrire des algorithmes) - Les têtes de lignes de vie ne sont plus des
instances, mais des "participants"
189Diagrammes de classe
- Les stéréotypes sont plus précisément définis.
Les chaînes entre guillemets sont des "mots clef"
(keyword), dont certains seulement sont des
stéréotypes - La classification multiple utilise des ensembles
de classification ("classification sets") pour
grouper les généralisations
190Interfaces
- Les classes peuvent requérir des interfaces, et
pas seulement les proposer
191Diagrammes de composants
- Les composants n'ont plus une icône spécifique,
mais deviennent un stéréotype comme les autres - (la différence entre classe et composant n'avait
jamais été claire)
192Structure composite
- La structure composite permet de décomposer
récursivement une classe dans sa structure
interne, notamment pour faire apparaître les
éléments de la classe liés aux interfaces
193Exemple de Structure Composite
194Classe Active
- Une classe active décrit des instances dont
chacune possède son propre thread de contrôle.
195Diagrammes d'état
- UML 2.0 supprime la distinction entre actions et
activités. - Une activité est simplement indiquée par une
clause dans un état "do/" - (ou "do-activity/")
196Diagrammes d'activité
- Ces diagrammes ne sont plus un cas particulier
des diagrammes d'état - Suppression de l'obligation de faire correspondre
chaque "fork" à un "join" - Ces diagrammes sont mieux compris comme des
diagrammes de flot de jetons (de type réseau de
Petri)
197Diagrammes d'activité
198Diagrammes d'activité
- Nombreuses nouvelles notations
- signaux de temps et d'acceptation
- paramètres
- spécifications de join
- pins (puces)
- transformations de flot
- rateaux de sous diagrammes (subdiagram rakes)
- régions d'expansion
- terminaisons de flots
199Diagrammes d'activité
- Les flots entrants multiples étaient traités
comme un "merge" implicite en UML 1.x (sans
synchronisation) - Ils deviennent un "join" implicite (avec
synchronisation) - Recommandation utiliser des join ou merge
explicites!
200Diagrammes d'activité
- Les lignes de vie (life lines ou swim lanes)
devinennent multi dimensionnelles, - elles sont appelées des partitions
201Fin du document