UML2 - Grenoble INP

Download Report

Transcript UML2 - Grenoble INP

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
(VEGA2)
cas d'utilisation
: acteur (intéragissant
avec VEGA2)
Cas d’utilisation
message
une fonctionnalité attendue du système
(VEGA2) par les différents acteurs.
message
message
Diagramme de Classes
message
objet 1
Diagramme de séquence
lien exprimant que "objet 2 est une sorte de objet 1"
lien exprimant que "objet 2
a une relation avec objet 4"
objet 2
lien exprimant que
"objet 2 est
composé de objet 3"
objet 3
2
Michel Tollenaere
U.M.L. partie 2
Chaque cas d'utilisation apparaît comme un scénario,
décrit par un ou plusieurs diagrammes de séquence.
objet 4
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.
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)
commande
client
nom
prénom
adresse
téléphone
code postal
1 Passe une>
Passe commande ()
paie commande (cmd)
num
date
0 .. * adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
article
*
comporte>
Ligne-Cmd
quantité
4
Michel Tollenaere
U.M.L. partie 2
code
1 .. * désignation
prix-U
rayon
ss-rayon
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes et d’objets)
article
client
commande
1
Passe une>
comporte>
0 .. *
1 .. *
*
Ligne-Cmd
Photosmart500
:article
1:
lignecmd
1:
lignecmd
CMD003
:commande
2:
lignecmd
CMD007
:commande
Pierre Dupond
:client
1:
lignecmd
CMD015
:commande
Jacky Durand
:client
5
Michel Tollenaere
RAM 512MO
:article
U.M.L. partie 2
Hervé Latour
:client
1:
lignecmd
Compaq tabletPC
:article
Dell Lat400
:article
Toshiba SD300
:article
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes et d’objets)
client
commande
1
Passe une>
0 .. *
Association
article
comporte>
1 .. *
*
Ligne-Cmd
Classe
Conceptualise
2:
lignecmd
CMD007
:commande
Pierre Dupond
:client
Jacky Durand
:client
6
Michel Tollenaere
U.M.L. partie 2
RAM 512MO
:article
1:
lignecmd
CMD003
:commande
Objet
Illustre
Photosmart50
0 :article
1:
lignecmd
1:
lignecmd
CMD015
:commande
Hervé Latour
:client
1:
lignecmd
Compaq
tabletPC :article
Dell Lat400
:article
Toshiba SD300
:article
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 2)
commande
client
nom
prénom
adresse
téléphone
code postal
1 Passe une>
Passe commande ()
paie commande (cmd)
num
date
0 .. * adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
article
*
comporte>
code
1 .. * désignation
prix-U
rayon
ss-rayon
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)
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)
commande
client
nom
prénom
adresse
téléphone
code postal
num
date
0 .. * adresse livraison
1
article
*
comporte>
code
désignation
1 .. * prix-U
Passe une>
CalculMontant
()
Faut il définir l’appartenance
du
ajout article
modifier
sous
??()
Passe commande
() rayon au rayon
paye
paie commande (cmd)
rayon
ss-rayon
Ligne-Cmd
comporte *
quantité
Sous rayon
Rayon
emplacement
1
contient>
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
comportements
Rayon
Sous rayon
Nom
emplacement
1
9
Michel Tollenaere
comporte *
U.M.L. partie 2
*
Rayon
emplacement
nom
1
contient>
Implantation
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 2)
article
code
désignation
prix-U
Implantation
Nom
emplacement
Généralisation
Héritage de
propriétés
Rayon
comporte *
Sous rayon
Nom
emplacement
1
10
Michel Tollenaere
rayon
ss-rayon
U.M.L. partie 2
*
Rayon
emplacement
nom
1
contient>
Implantation
UML 2 version 2.0 du 21 novembre 2009
Gestion des commandes client
(diagramme de classes 1)
commande
client
nom
prénom
adresse
téléphone
code postal
1 Passe une>
Passe commande ()
paie commande (cmd)
num
date
0 .. * adresse livraison
CalculMontant ()
ajout article
modifier ()
paye
article
*
comporte>
Ligne-Cmd
quantité
Nécessité de définir et spécifier un modèle
dynamique
11
Michel Tollenaere
U.M.L. partie 2
code
1 .. * désignation
prix-U
rayon
ss-rayon
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
En préparation
do / ajout article
état
initial
Pas de
confirmation
client après 1
mois
Confirmation
client [Si
solvable]
15
Michel Tollenaere
U.M.L. partie 2
Confirmée
CalculMontant ()
ajout article
modifier ()
paye
do / préparer
livraison
Livraison
effectuée
Livrée
do / attente
paiement
état
final
num
date
adresse livraison
paiement
effectué
Payée
10 ans après
paiement
état
final
Une implémentation
dans MS-Access
UML 2 version 2.0 du 21 novembre 2009
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
nom
prénom
age
adresse
téléphone
code postal
En activité
société
est
* employée 0..1
par>
n° SIREN
Perte
nom
C.A.
d ’emploi
Implantation
Plus de 60 ans
do: travailler
Au chômage
Diagramme de classes
A la retraite
Embauche
Plus de 60 ans
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
Evénement /
Communication
entre objets
5 : message
4 : message
6 : [condition B] message
7 : message réflexif
Période
d’activité
de l’objet :
ligne de vie
9 : message asynchrone
22
Michel Tollenaere
U.M.L. partie 2
8 : message de destruction
Objet 3
Diagramme de Séquences
(principes généraux)
Objet 1
1 : [condition A]
message
UML 2 version 2.0 du 21 novembre 2009
Objet 2
2 : message synchrone
3 : message de création
5:
message
Objet 3
4:
message
6 : [condition B] message
9 : message
asynchrone
7 : message
réflexif
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)
23
Michel Tollenaere
U.M.L. partie 2
Diagramme de Séquences
(principes)
Objet 1
1 : [condition A]
message
UML 2 version 2.0 du 21 novembre 2009
Objet 2
2 : message synchrone
3 : message de création
5:
message
Objet 3
4:
message
6 : [condition B] message
9 : message
asynchrone
7 : message
réflexif
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)
24
Michel Tollenaere
Possibilité de compléments d ’informations sous forme de texte libre ou de pseudocode à côté du diagramme
U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
(principes généraux)
Objet 1
1 : [condition A]
message
Objet 2
2 : message synchrone
Ligne de vie
de l’objet
3 : message de création
5:
message
Objet 3
4:
message
6 : [condition B] message
9 : message
asynchrone
7 : message
réflexif
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 »)
25
Michel Tollenaere
U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Séquences
Ligne
téléphonique
Appelant
Appelé
décroche
tonalité
numérotation
indication de sonnerie
sonnerie
décroche
allô
26
Michel Tollenaere
U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009
27
Michel Tollenaere
U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009
28
Michel Tollenaere
U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009
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
31
Michel Tollenaere
Ou visualisation des plannings de techniciens libres
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’ellemê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
Chat
Sous-classe
35
Michel Tollenaere
U.M.L. partie 2
Spécialisation
Chien
COHERENCE
Raton laveur
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
Tapis
Véhicule
MULTIPLE
Super-classe
Super-classe
Terrestre
Fusion de plusieurs classes
en une seule classe
37
Michel Tollenaere
U.M.L. partie 2
Aérien
Tapis volant
Sous-classe
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
DISCRIMINANT
Véhicule
Motorisation
A voile
A moteur
38
Michel Tollenaere
U.M.L. partie 2
DISCRIMINANT
Milieu
Terrestre
Marin
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
Pétrolette
40
Michel Tollenaere
U.M.L. partie 2
Marin
Mélange des
deux dimensions
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Cours
Complète
Incomplète
{Incomplète}
Maths
41
Michel Tollenaere
U.M.L. partie 2
Français
Géographie
UML 2 version 2.0 du 21 novembre 2009
GENERALISATION
Vue partielle
Cours
Maths
42
Michel Tollenaere
U.M.L. partie 2
...
Géographie
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
Principe : 1 classe = 1 table
1 association n - m = 1 table
Implantation
Nom
emplacement
Table Implantation
ID-implant : entier
Nom : string
Emplacement : string
Table Rayon
Rayon
Sous rayon
1
*
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 »
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
les classes
1 association n - m = 1 table
Nom
emplacement
Implantation
Nom
emplacement
type : {rayon ; ss-rayon}
Rayon
Sous rayon
*
1
1
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
45
Michel Tollenaere
U.M.L. partie 2
UML 2 version 2.0 du 21 novembre 2009
Diagramme de Classes
Métier
<<rep>>
CdC
structure
<<rep>>
schema
<<rep>>
Spec de test
<<rep>>
plan CIM
<<rep>>
EM
Carte electronique
sous-ensemble
Micro-processeur
etiquette
composant
comp. mécanique
Accessoires
CIP
étiquette vierge
comp. électronique
Documentation
comp. interne
<<rep>>
plan mécanique
comp. externe
comp. externe
conditionnement
<<rep>>
CdC
46
Michel Tollenaere
soft
comp. interne
U.M.L. partie 2
<<rep>>
plan CIP
<<rep>>
plan-mécanique
<<rep>>
notice
<<rep>>
caractéristiques
<<rep>>
plan
<<rep>>
Master
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
prix-U
rayon
ss-rayon
Nom
emplacement
cas d'utilisation
comporte
Acteur 2
Rayon
Sous rayon
Nom
emplacement
é
t
a
t
i
n
i
t
i
a
l
48
Michel Tollenaere
U.M.L. partie 2
En
préparati
on
do / ajout
article
Pas
de
confir
matio
n
client
après
1é
moist
a
t
f
i
n
a
l
Confi
rmati
on
client
Livrée
do /
attente
paiement
1
Confirmé
e
do /
préparer
livraison
paiem
ent
effect
ué
Pa
yée
10
ans
après
paiem
ent
é
t
a
t
f
i
n
a
l
Rayon
* emplacement
nom
contient>
1
Implantation
*