Vous êtes sur la page 1sur 48

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
1
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Exemples : Quelques diagrammes

Système
cas d'utilisation (VEGA2)
: acteur (intéragissant
avec VEGA2)
Cas d’utilisation message

une fonctionnalité attendue du système


message
(VEGA2) par les différents acteurs. message

Diagramme de Classes message

objet 1

lien exprimant que "objet 2 est une sorte de objet 1" Diagramme de séquence
Chaque cas d'utilisation apparaît comme un scénario,
lien exprimant que "objet 2 décrit par un ou plusieurs diagrammes de séquence.
objet 2 a une relation avec objet 4" objet 4

Un diagramme de séquences montre les interactions


lien exprimant que entre les acteurs et le système selon un point de vue
"objet 2 est temporel pour accomplir une fonctionnalité attendue du
composé de objet 3"
système (un cas d ’utilisation). C’est une ensemble de
objet 3
messages échangés entre les acteurs et le système,
ordonnés chronologiquement.
2
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Modèle Statique (rappels)

• Diagramme de classes
• Diagramme d’objets

3
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Gestion des commandes client


(diagramme de classes 1)

client commande article


nom num code
prénom date
1 Passe une> 0 .. * adresse livraison * comporte> 1 .. * désignation
adresse prix-U
téléphone CalculMontant () rayon
code postal ajout article ss-rayon
Passe commande () modifier ()
paie commande (cmd) paye Ligne-Cmd

quantité

4
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Gestion des commandes client

(diagramme de classes et d’objets)


article
client commande comporte>
1 Passe une> 0 .. * 1 .. *
*
Ligne-Cmd

Photosmart500 :
1:
lignecmd article
RAM
1: 512MO :article
CMD003 lignecmd

:commande 2:
lignecmd
CMD007 Compaq
:commande 1:
tabletPC :article
lignecmd

Pierre Dupond
:client CMD015
1: Dell Lat400
:commande lignecmd
:article
Jacky Durand
:client Hervé Latour
:client Toshiba
5 SD300 :article
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Gestion des commandes client


(diagramme de classes et d’objets)

e article
m client commande comporte>
m
a e 1 Passe une> 0 .. *
r 1 .. *
i ag ass Association *
D cl Ligne-Cmd

de Classe Conceptualise

e 1:
Photosmart50 Illustre
m lignecmd 0 :article
RAM 512MO
m
a s :article
r
1:

ag j e t
CMD003 lignecmd

i
D ’ ob
:commande
CMD007
2:
lignecmd
Compaq

1:
:commande lignecmd tabletPC :article
Pierre
Objet Dupond :client Lien CMD015
:commande
1:
lignecmd
Dell
Jacky Lat400
Durand :client Hervé :article
Latour :client Toshiba SD300
:article

6
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Gestion des commandes client


(diagramme de classes 2)

client commande article


nom num code
date
prénom
1 Passe une> 0 .. * adresse livraison * comporte> 1 .. * désignation
adresse prix-U
téléphone CalculMontant () rayon
code postal ajout article ss-rayon
Passe commande () modifier ()
paie commande (cmd) paye Ligne-Cmd

quantité Ne respecte
pas les
formes
normales

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)

7
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Gestion des commandes client


(diagramme de classes 2)
client commande article
nom num code
prénom date désignation
1 0 .. * adresse livraison * comporte> 1 .. * prix-U
adresse
téléphone Passe une>
Faut il définir l’appartenance
CalculMontant du
() rayon
code postal ajout article ss-rayon
sous
Passe commande () rayon au rayon ??()
modifier
paie commande (cmd) paye Ligne-Cmd
comporte *
quantité

Sous rayon
1 contient>
Rayon
emplacement Implantation

Rôle dans l’association

8
Michel Tollenaere U.M.L. partie 2
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

Partage de propriétés et de comporte *


comportements

Rayon Sous rayon


Nom Rayon 1 contient>
emplacement emplacement
* Implantation
1 nom

9
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Gestion des commandes client


(diagramme de classes 2)
article
Implantation code
désignation
Nom prix-U
emplacement rayon
Généralisation
ss-rayon
Héritage de
propriétés
comporte *

Rayon Sous rayon


Nom Rayon 1 contient>
emplacement emplacement
* Implantation
1 nom

10
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Gestion des commandes client


(diagramme de classes 1)

client commande article


nom num code
prénom date
1 Passe une> 0 .. * adresse livraison * comporte> 1 .. * désignation
adresse prix-U
téléphone CalculMontant () rayon
code postal ajout article ss-rayon
Passe commande () modifier ()
paie commande (cmd) paye Ligne-Cmd

quantité
Comportement Quand peut on
des objets
ajouter un article ?
Etat des
commandes ?

Nécessité de définir et spécifier un modèle


dynamique
11
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Modèle Dynamique

• Diagramme d’état-transition
• Diagramme de séquences

12
Michel Tollenaere U.M.L. partie 2
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

13
Michel Tollenaere U.M.L. partie 2
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)

14
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Diagramme d’état-transition de la
classe « commande »

commande
num
date
Confirmée adresse livraison
En préparation Confirmatio
n client [Si do / préparer CalculMontant ()
état do / ajout article solvable] ajout article
initial livraison
modifier ()
paye
Livraison
Pas de
effectuée
confirmation
client après 1 Livrée
mois paiement Payée 10 ans après
do / attente effectué paiement
paiement état
final

état
final

15
Michel Tollenaere U.M.L. partie 2
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

16
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Une meilleure implémentation


dans MS-Access

17
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Une meilleure implémentation


dans MS-Access

18
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Diagramme d’état-transition
Exemple

personne En activité
Plus de 60 ans
société do: travailler
nom
prénom est
* employée 0..1 n° SIREN
age
par> nom
Perte
adresse
C.A.
d ’emploi A la retraite
téléphone Embauche
Implantation
code postal

Plus de 60 ans
Au chômage

Diagramme de classes Diagramme d ’états-transitions

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é.

19
Michel Tollenaere U.M.L. partie 2
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
20
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Diagramme de Séquences

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

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.
21
Michel Tollenaere U.M.L. partie 2
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
3 : message de création
Objet 3
Evénement /
4 : message
Communication 5 : message
entre objets
6 : [condition B] message

7 : message réflexif
Période
d’activité 9 : message asynchrone 8 : message de destruction
de l’objet :
ligne de vie

22
Michel Tollenaere U.M.L. partie 2
Diagramme de Séquences UML 2 version 2.0 du 21 novembre 2009

(principes généraux)
Objet 1 Objet 2

1 : [condition A]
message 2 : message synchrone
3 : message de création
Objet 3

5: 4:
message message

6 : [condition B] message

7 : message
réflexif
9 : message 8 : message de destruction
asynchrone

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)

23
Michel Tollenaere U.M.L. partie 2
Diagramme de Séquences UML 2 version 2.0 du 21 novembre 2009

(principes)
Objet 1 Objet 2

1 : [condition A]
message 2 : message synchrone
3 : message de création
Objet 3

5: 4:
message message

6 : [condition B] message

7 : message
réflexif
9 : message 8 : message de destruction
asynchrone

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
24
Michel Tollenaere U.M.L. partie 2
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
Ligne de vie 3 : message de création
Objet 3
de l’objet
5: 4:
message message

6 : [condition B] message

7 : message
réflexif
9 : message 8 : message de destruction
asynchrone

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 »)

25
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

me Diagramme de Séquences
g r am
e Dia
pl e d
u 1
e m ea
Ex
Niv
Ligne
Appelant téléphonique Appelé

décroche

tonalité

numérotation

indication de sonnerie sonnerie

décroche

allô

26
Michel Tollenaere U.M.L. partie 2
ram UML 2 version 2.0 du 21 novembre 2009

Diag
le de 2
em p
ea u
Ex Niv

27
Michel Tollenaere U.M.L. partie 2
ram UML 2 version 2.0 du 21 novembre 2009

Diag
le de 2
em p
ea u
Ex Niv

28
Michel Tollenaere U.M.L. partie 2
ram UML 2 version 2.0 du 21 novembre 2009

Diag
le de 2
em p
ea u
Ex Niv
Nouvelle
mission

29
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Les Interfaces Homme-Machine


I.H.M.
• sous Windows
• html
• étendus

30
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Resp de production : supervision d’un process

Ou visualisation des plannings de techniciens libres


31
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

En logistique, les interfaces carto

32
Michel Tollenaere U.M.L. partie 2
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

33
Michel Tollenaere U.M.L. partie 2
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

34
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

GENERALISATION
Super-classe
Animal

Généralisation Spécialisation

Chat Chien Raton laveur

Sous-classe COHERENCE
35
Michel Tollenaere U.M.L. partie 2
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

36
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

GENERALISATION
MULTIPLE
Tapis Véhicule
Super-classe

Super-classe Terrestre Aérien

Tapis volant
Fusion de plusieurs classes
en une seule classe Sous-classe
37
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

GENERALISATION

Véhicule
DISCRIMINANT DISCRIMINANT

Motorisation Milieu

A voile A moteur Terrestre Marin

38
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

GENERALISATION
Champignon

{Exclusif}

Agaricus Boletus

Pied bleu Bolet de loup

39
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

GENERALISATION
Véhicule

Motorisation Milieu
{Inclusif}
A voile A moteur Terrestre Marin

Pétrolette Mélange des


deux dimensions
40
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

GENERALISATION
Complète
Incomplète
Cours

{Incomplète}

Maths Français Géographie

41
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

GENERALISATION
Vue partielle
Cours

Maths Géographie
...

42
Michel Tollenaere U.M.L. partie 2
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
43
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Implantation de l’héritage en relationnel


Implantation Principe : 1 classe = 1 table
1 association n - m = 1 table
Nom
emplacement
Table Implantation
ID-implant : entier
Nom : string
Emplacement : string
Table Rayon
ID-rayon : entier
Nom : string
Rayon Sous rayon Emplacement : string
Table Sous-Rayon
ID-ss-rayon : entier
* Nom : string
1
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 »
44
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Implantation de l ’héritage en relationnel


Implantation
Principe : 1 table pour toutes
Nom les classes
emplacement 1 association n - m = 1 table
Implantation
1
Nom Table Implantation
emplacement ID-implant : entier
type : {rayon ; ss-rayon} Nom : string
Emplacement : string
Type : {rayon ; ss-rayon}
Rayon * Sous rayon Rayon : entier

*
1

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
45
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

Diagramme de Classes structure


<<rep>>
CdC

Métier
<<rep>>
<<rep>>
schema
Spec de test

<<rep>>
plan CIM

<<rep>> Carte electronique Micro-processeur etiquette


sous-ensemble
EM

composant

comp. mécanique Accessoires étiquette vierge


CIP comp. électronique

Documentation soft
comp. interne comp. externe comp. externe comp. interne
conditionnement

<<rep>> <<rep>> <<rep>> <<rep>> <<rep>> <<rep>> <<rep>> <<rep>>


plan mécanique CdC plan CIP plan-mécanique notice caractéristiques plan Master

46
Michel Tollenaere U.M.L. partie 2
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.

47
Michel Tollenaere U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009

cas d'utilisation

Acteur 1
cas d'utilisation

article
Implantation code
désignation
Nom prix-U
cas d'utilisation emplacement
rayon
ss-rayon
comporte
Acteur 2 *

Rayon Sous rayon


contient>
Nom Rayon 1
emplacement * emplacement Implantation
é
t
En
préparati
Confirmé
1 nom
a Confi e
t on rmati
on do /
i do /
n client préparer
i ajout
livraison
t article
i
a
l Pas
de
Livrée 10
confir paiem Pa
é
ans t
matio do / ent yée a
après
n attente effect t
paiem
client paiement ué f
ent
après i
n
1 é a

48
moista l
t

f
i

U.M.L. partie 2
n
a
l

Michel Tollenaere

Vous aimerez peut-être aussi