1. Michel Tollenaere U.M.L. partie 2
1
UML 2 version 2.0 du 21 novembre 2009
UML (2)
Rappel sur le modèle statique : classe / objet
Modèle dynamique
• les diagrammes état - transition
• les diagrammes de séquences
IHM (sous Windows, HTML)
Extension du modèle de classes : le concept de
généralisation/spécialisation. Héritage. Polymorphisme.
Implantation de l’héritage en relationnel (SGBD)
Liens entre modèles statique et dynamique :
Cohérence du modèle
2. Michel Tollenaere U.M.L. partie 2
2
UML 2 version 2.0 du 21 novembre 2009
Cas d’utilisation
une fonctionnalité attendue du système
(VEGA2) par les différents acteurs.
cas d'utilisation
: acteur (intéragissant
avec VEGA2)
Système
(VEGA2)
message
message
message
message
Diagramme de séquence
Chaque cas d'utilisation apparaît comme un scénario,
décrit par un ou plusieurs diagrammes de séquence.
Un diagramme de séquences montre les interactions
entre les acteurs et le système selon un point de vue
temporel pour accomplir une fonctionnalité attendue du
système (un cas d ’utilisation). C’est une ensemble de
messages échangés entre les acteurs et le système,
ordonnés chronologiquement.
Diagramme de Classes
objet 1
objet 3
objet 2 objet 4
lien exprimant que
"objet 2 est
composé de objet 3"
lien exprimant que "objet 2
a une relation avec objet 4"
lien exprimant que "objet 2 est une sorte de objet 1"
Exemples : Quelques diagrammes
3. Michel Tollenaere U.M.L. partie 2
3
UML 2 version 2.0 du 21 novembre 2009
Modèle Statique (rappels)
• Diagramme de classes
• Diagramme d’objets
4. Michel Tollenaere U.M.L. partie 2
4
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 1)
commande
client
Passe une>
1 0 .. *
nom
prénom
adresse
téléphone
code postal
Passe commande ()
paie commande (cmd)
num
date
adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
article
code
désignation
prix-U
rayon
ss-rayon
comporte> 1 .. *
*
Ligne-Cmd
quantité
5. Michel Tollenaere U.M.L. partie 2
5
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes et d’objets)
commande
client
Passe une>
1 0 .. *
article
comporte>
1 .. *
*
Ligne-Cmd
CMD015
:commande
CMD007
:commande
CMD003
:commande
Jacky Durand
:client
Pierre Dupond
:client
Hervé Latour
:client
1 :
lignecmd
1 :
lignecmd
1 :
lignecmd
2 :
lignecmd
1 :
lignecmd
Dell Lat400
:article
Compaq tabletPC
:article
RAM 512MO
:article
Photosmart500
:article
Toshiba SD300
:article
6. Michel Tollenaere U.M.L. partie 2
6
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes et d’objets)
commande
client
Passe une>
1 0 .. *
article
comporte>
1 .. *
*
Ligne-Cmd
CMD015
:commande
CMD007
:commande
CMD003
:commande
Jacky Durand
:client
Pierre Dupond
:client
Hervé Latour
:client
1 :
lignecmd
1 :
lignecmd
1 :
lignecmd
2 :
lignecmd
1 :
lignecmd
Dell Lat400
:article
Compaq
tabletPC :article
RAM 512MO
:article
Photosmart50
0 :article
Toshiba SD300
:article
Illustre
Conceptualise
Objet
Classe
Association
7. Michel Tollenaere U.M.L. partie 2
7
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 2)
commande
client
Passe une>
1 0 .. *
nom
prénom
adresse
téléphone
code postal
Passe commande ()
paie commande (cmd)
num
date
adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
article
code
désignation
prix-U
rayon
ss-rayon
comporte> 1 .. *
*
Ligne-Cmd
quantité
On peut affiner le modèle au niveau de l’implantation des articles
(très utile pour définir les tournées de constitution des commandes)
8. Michel Tollenaere U.M.L. partie 2
8
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 2)
commande
client
Passe une>
1 0 .. *
nom
prénom
adresse
téléphone
code postal
Passe commande ()
paie commande (cmd)
num
date
adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
article
code
désignation
prix-U
rayon
ss-rayon
comporte> 1 .. *
*
Ligne-Cmd
quantité
*
contient>
1
Sous rayon
Rayon
emplacement Implantation
comporte
Rôle dans l’association
Faut il définir l’appartenance du
sous rayon au rayon ??
9. Michel Tollenaere U.M.L. partie 2
9
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 2)
article
code
désignation
prix-U
rayon
ss-rayon
*
contient>
1
Sous rayon
Rayon
emplacement
nom
Implantation
comporte
Rayon
Nom
emplacement
*
1
Partage de propriétés et de
comportements
10. Michel Tollenaere U.M.L. partie 2
10
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 2)
article
code
désignation
prix-U
rayon
ss-rayon
*
contient>
1
Sous rayon
Rayon
emplacement
nom
Implantation
comporte
Rayon
Nom
emplacement
*
1
Implantation
Nom
emplacement
Généralisation
Héritage de
propriétés
11. Michel Tollenaere U.M.L. partie 2
11
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 1)
commande
client
Passe une>
1 0 .. *
nom
prénom
adresse
téléphone
code postal
num
date
adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
article
code
désignation
prix-U
rayon
ss-rayon
comporte> 1 .. *
*
Ligne-Cmd
quantité
Passe commande ()
paie commande (cmd)
Nécessité de définir et spécifier un modèle
dynamique
12. Michel Tollenaere U.M.L. partie 2
12
UML 2 version 2.0 du 21 novembre 2009
Modèle Dynamique
• Diagramme d’état-transition
• Diagramme de séquences
13. Michel Tollenaere U.M.L. partie 2
13
UML 2 version 2.0 du 21 novembre 2009
Diagramme d’états-Transition
Description des séquences possibles d’états et d’actions par
lesquels un objet peut passer tout au long de sa vie. Ces
séquences résultent de sa réaction à des événements discrets.
Eléments du diagramme :
• état : situation d’un objet à un moment donné
• transition : connexion entre deux états, permettant le passage
d’un état à l’autre
14. Michel Tollenaere U.M.L. partie 2
14
UML 2 version 2.0 du 21 novembre 2009
Diagramme d’état-transition
• événement : occurrence d’une situation donnée dans le
domaine du système qui déclenche la transition
• garde : condition booléenne qui valide ou non le
déclenchement d’une transition lors de l’occurrence d’un
événement (cas de plusieurs transitions exclusives déclenchées
par le même événement)
• action : opération exécutée pendant que l’objet est dans un état
donné ou lorsque une transition est déclenchée (correspondant à
des opérations déclarées dans la classe de l’objet destinataire).
Une action d’un état est dite « activité » quand l’opération
associée a un temps d’exécution non négligeable (do :
nom_opération) (exemple notification)
15. Michel Tollenaere U.M.L. partie 2
15
UML 2 version 2.0 du 21 novembre 2009
Diagramme d’état-transition de la
classe « commande »
En préparation
do / ajout article
état
initial
état
final
Confirmée
do / préparer
livraison
Livrée
do / attente
paiement
Payée
Confirmation
client [Si
solvable]
Livraison
effectuée
paiement
effectué
10 ans après
paiement
état
final
Pas de
confirmation
client après 1
mois
commande
num
date
adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
16. Michel Tollenaere U.M.L. partie 2
16
UML 2 version 2.0 du 21 novembre 2009
Une implémentation
dans MS-Access
un attribut « Etat »
de type « liste déroulante »
dont le contenu correspond aux
valeurs des états du diagramme
17. Michel Tollenaere U.M.L. partie 2
17
UML 2 version 2.0 du 21 novembre 2009
Une meilleure implémentation
dans MS-Access
18. Michel Tollenaere U.M.L. partie 2
18
UML 2 version 2.0 du 21 novembre 2009
Une meilleure implémentation
dans MS-Access
19. Michel Tollenaere U.M.L. partie 2
19
UML 2 version 2.0 du 21 novembre 2009
Perte
d ’emploi
société
personne
est
employée
par>
0..1
*
nom
prénom
age
adresse
téléphone
code postal
n° SIREN
nom
C.A.
Implantation
Les personnes ne possèdent pas toutes un emploi et se trouvent, à un moment
donné, dans un des états suivants : en activité, au chômage, à la retraite
L’état d ’une personne donnée est déterminé selon son âge et la présence ou
non d’un lien vers une société.
Diagramme d’état-transition
Exemple
Diagramme de classes Diagramme d ’états-transitions
En activité
do: travailler
Au chômage
A la retraite
Embauche
Plus de 60 ans
Plus de 60 ans
20. Michel Tollenaere U.M.L. partie 2
20
UML 2 version 2.0 du 21 novembre 2009
Diagramme d’état-transition
Une classe peut posséder plusieurs diagrammes d’état (selon le
point de vue examiné).
Exemple, pour une personne,
• l’état matrimonial et
• l’état professionnel.
Les diagrammes d’état-transition peuvent être imbriqués et
hiérarchisés.
Exemple : pour une machine, (cf photocopieuse, imprimante)
commandée, livrée, qualifiée, en service, en maintenance, au
rebut, en service est détaillée par les différents éléments du cycle
de fonctionnement
21. Michel Tollenaere U.M.L. partie 2
21
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
Pour chaque cas d’utilisation, un ou plusieurs scénario peut
être détaillé chacun par un diagramme de séquences.
Diagramme de séquence : exprime la séquence des
interactions entre objets du système selon un point de vue
temporel, pour réaliser le cas d’utilisation.
Niveau 1 : diagramme de séquences fonctionnel = =
interactions acteur(s) – système dans le cadre d’un use case
Niveau 2 : diagramme de séquences technique = =
interactions acteur – IHM - objets système ou objets
système/ objets système dans le cadre d’un use case
22. Michel Tollenaere U.M.L. partie 2
22
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
(principes généraux)
Objet 1 Objet 2
1 : [condition A] message
2 : message synchrone
4 : message
6 : [condition B] message
9 : message asynchrone
7 : message réflexif
Evénement /
Communication
entre objets
Objet 3
3 : message de création
5 : message
8 : message de destruction
Période
d’activité
de l’objet :
ligne de vie
23. Michel Tollenaere U.M.L. partie 2
23
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
(principes généraux)
Objet 1 Objet 2
1 : [condition A]
message 2 : message synchrone
4 :
message
6 : [condition B] message
9 : message
asynchrone
7 : message
réflexif
Objet 3
3 : message de création
5 :
message
8 : message de destruction
message synchrone: l’émetteur est bloqué et attend que l’appelé ait fini de traiter le message (message 1)
message asynchrone: l’émetteur n’est pas bloqué et peut continuer son exécution (message 6)
Un message réflexif indique souvent un point d ’entrée dans une activité de plus bas niveau qui s ’exerce
entre objets contenus par l ’objet composite (message 7)
24. Michel Tollenaere U.M.L. partie 2
24
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
(principes)
Objet 1 Objet 2
1 : [condition A]
message 2 : message synchrone
4 :
message
6 : [condition B] message
9 : message
asynchrone
7 : message
réflexif
Objet 3
3 : message de création
5 :
message
8 : message de destruction
Un message dont les délais de transmission sont non négligeables est matérialisé par
une flèche oblique (message 4)
Messages conditionnés : flèches prenant leur origine au même instant avec des
conditions mutuellement exclusives (messages 1 et 6)
Possibilité de compléments d ’informations sous forme de texte libre ou de pseudo-
code à côté du diagramme
25. Michel Tollenaere U.M.L. partie 2
25
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
(principes généraux)
Objet 1 Objet 2
1 : [condition A]
message 2 : message synchrone
4 :
message
6 : [condition B] message
9 : message
asynchrone
7 : message
réflexif
Objet 3
3 : message de création
5 :
message
8 : message de destruction
Période d ’activité : temps pendant lequel un objet effectue une action, directement ou
par l ’intermédiaire d ’un autre objet sous-traitant
Des contraintes temporelles peuvent être exprimées en graduant la ligne de vie (pour
dire par exemple: « 10 secondes plus tard »)
Ligne de vie
de l’objet
26. Michel Tollenaere U.M.L. partie 2
26
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
Appelant
Ligne
téléphonique Appelé
décroche
tonalité
numérotation
sonnerie
indication de sonnerie
décroche
allô
30. Michel Tollenaere U.M.L. partie 2
30
UML 2 version 2.0 du 21 novembre 2009
Les Interfaces Homme-Machine
I.H.M.
• sous Windows
• html
• étendus
31. Michel Tollenaere U.M.L. partie 2
31
UML 2 version 2.0 du 21 novembre 2009
Resp de production : supervision d’un process
Ou visualisation des plannings de techniciens libres
32. Michel Tollenaere U.M.L. partie 2
32
UML 2 version 2.0 du 21 novembre 2009
En logistique, les interfaces carto
33. Michel Tollenaere U.M.L. partie 2
33
UML 2 version 2.0 du 21 novembre 2009
Modèles Statique et Dynamique
• Concept de généralisation et d’héritage
• Implantation de l’héritage en relationnel
• Méta-modélisation UML
34. Michel Tollenaere U.M.L. partie 2
34
UML 2 version 2.0 du 21 novembre 2009
Généralisation :
• Relation non réflexive : une classe ne peut dériver d’elle-
même
• Relation non symétrique : si une une voiture est une sorte de
véhicule, alors le véhicule ne peut pas être une sorte de voiture
• Relation transitive : si voiture est une sorte de véhicule
terrestre qui elle même est une sorte de véhicule alors voiture
est une sorte de véhicule
35. Michel Tollenaere U.M.L. partie 2
35
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Animal
Chat Chien Raton laveur
Généralisation Spécialisation
COHERENCE
Super-classe
Sous-classe
36. Michel Tollenaere U.M.L. partie 2
36
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
CLASSES, PAQUETAGES, CAS D'UTILISATION
EST UN => GENERALISATION
A => COMPOSITION
GENERALISATION => HERITAGE
COUPLAGE FORT ENTRE CLASSES
37. Michel Tollenaere U.M.L. partie 2
37
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Véhicule
Tapis volant
Aérien
Terrestre
Tapis
MULTIPLE
Fusion de plusieurs classes
en une seule classe Sous-classe
Super-classe
Super-classe
38. Michel Tollenaere U.M.L. partie 2
38
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Véhicule
A voile Terrestre
A moteur Marin
Motorisation Milieu
DISCRIMINANT
DISCRIMINANT
39. Michel Tollenaere U.M.L. partie 2
39
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Champignon
Bolet de loup
Boletus
Agaricus
Pied bleu
{Exclusif}
40. Michel Tollenaere U.M.L. partie 2
40
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Véhicule
A voile Terrestre
A moteur Marin
Pétrolette
Motorisation Milieu
{Inclusif}
Mélange des
deux dimensions
41. Michel Tollenaere U.M.L. partie 2
41
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Cours
Maths Français Géographie
{Incomplète}
Complète
Incomplète
42. Michel Tollenaere U.M.L. partie 2
42
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Cours
Maths Géographie
Vue partielle
...
43. Michel Tollenaere U.M.L. partie 2
43
UML 2 version 2.0 du 21 novembre 2009
CLASSE ABSTRAITE
Classe Abstraite
Non instanciable
Sert de Type pour manipuler les objets instances
d'une (ou plusieurs) de leurs sous-classes
Propriété Abstraite définie pour
tous les éléments généralisables
Propriété Abstraite définie aussi pour
une opération
44. Michel Tollenaere U.M.L. partie 2
44
UML 2 version 2.0 du 21 novembre 2009
Implantation de l’héritage en relationnel
Sous rayon
Rayon
*
1
Implantation
Nom
emplacement
Principe : 1 classe = 1 table
1 association n - m = 1 table
Table Implantation
ID-implant : entier
Nom : string
Emplacement : string
Table Rayon
ID-rayon : entier
Nom : string
Emplacement : string
Table Sous-Rayon
ID-ss-rayon : entier
Nom : string
Emplacement : string
Rayon : entier
• On ne factorise pas les attributs (Nom, emplacement)
• Il faudra coder 3 fois les accès communs définis dans la classe « implantation »
45. Michel Tollenaere U.M.L. partie 2
45
UML 2 version 2.0 du 21 novembre 2009
Implantation de l ’héritage en relationnel
Sous rayon
Rayon
*
1
Implantation
Nom
emplacement
Principe : 1 table pour toutes
les classes
1 association n - m = 1 table
Table Implantation
ID-implant : entier
Nom : string
Emplacement : string
Type : {rayon ; ss-rayon}
Rayon : entier
Schéma relationnel plus concis, mais :
• un rayon ou sous rayon peut être constitué d’autres rayons
• aucun contrôle de cohérence sur les compositions récursives
*
1
Implantation
Nom
emplacement
type : {rayon ; ss-rayon}
46. Michel Tollenaere U.M.L. partie 2
46
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Classes
Métier
comp. externe comp. externe
plan CIP
<<rep>>
plan mécanique
<<rep>>
comp. interne
CdC
<<rep>>
structure
schema
<<rep>>
plan CIM
<<rep>>
composant
Spec de test
<<rep>>
Accessoires
sous-ensemble
EM
<<rep>>
comp. mécanique
caractéristiques
<<rep>>
plan-mécanique
<<rep>>
comp. interne
CdC
<<rep>>
CIP
plan
<<rep>>
conditionnement
Master
<<rep>>
soft
étiquette vierge
etiquette
comp. électronique
Micro-processeur
Carte electronique
notice
<<rep>>
Documentation
47. Michel Tollenaere U.M.L. partie 2
47
UML 2 version 2.0 du 21 novembre 2009
UML cohérence des diagrammes
• Use cases
• Diagramme d’état-transition
• Diagramme de séquences
• Diagramme de classes
• Interfaces Homme/Machine.
48. Michel Tollenaere U.M.L. partie 2
48
UML 2 version 2.0 du 21 novembre 2009
cas d'utilisation
cas d'utilisation
cas d'utilisation
Acteur 1
Acteur 2
article
code
désignation
prix-U
rayon
ss-rayon
*
contient>
1
Sous rayon
Rayon
emplacement
nom
Implantation
comporte
Rayon
Nom
emplacement *
1
Implantation
Nom
emplacement
En
préparati
on
do / ajout
article
é
t
a
t
i
n
i
t
i
a
l
é
t
a
t
f
i
n
a
l
Confirmé
e
do /
préparer
livraison
Livrée
do /
attente
paiement
Pa
yée
Confi
rmati
on
client
paiem
ent
effect
ué
10
ans
après
paiem
ent
é
t
a
t
f
i
n
a
l
Pas
de
confir
matio
n
client
après
1
mois