Académique Documents
Professionnel Documents
Culture Documents
Robert Ogor
Robert Ogor
mai 2003
1) Introduction au langage de
modlisation UML
Robert Ogor
Booch93
OOSE
Grady Booch
Ivar Jacobson
Partenaires Divers
UML 0.8
Task Force
WWW Juin96
UML 0.9
UML 1.2
UML 1.0
1998
UML 1.1
2001
2003
UML 1.3
UML 1.4
UML 1.5
2005
UML 2.0
Robert Ogor
mai 2003
Pourquoi modliser
Un modle est une simplification de la ralit qui permet de
mieux comprendre le systme dvelopper.
Il permet
- De visualiser le systme comme il est ou comme il devrait
l'
tre.
- De valider le modle vis vis des clients
- De spcifier les structures de donnes et le comportement du
systme.
- De fournir un guide pour la construction du systme.
- De documenter le systme et les dcisions prises.
Robert Ogor
Les principes de la
modlisation
1) Le modle doit tre connect au monde rel
2) Un modle peut tre exprim avec diffrents
niveaux de prcision
3) Un simple modle n'
est pas suffisant, il y a
plusieurs faons de voir un systme.
plan de masse
vue de face, de cot,
plan des niveaux
plan lectrique
plan de plomberie
plan des calculs de construction
Robert Ogor
mai 2003
Quapporte la modlisation
objet
Plus grande indpendance du modle par
rapport aux fonctionnalits demandes.
Robert Ogor
mai 2003
UML un langage
UML n est
objet
Robert Ogor
10
spcifier
construire
documenter
Robert Ogor
mai 2003
11
Robert Ogor
12
Entits structurelles
Entits de comportement
Entits de regroupement
Entit d'
annotation
rgles smantiques
rgles de prsentation
spcification
prsentation
extension des modles
Robert Ogor
mai 2003
13
Comparable
Interface
observateur
emprunte
Collaboration
Cas dutilisation
aboyer()
mordre ()
obir ()
Classe
Noyau
Producteur
suspend()
run()
Serveur
Nud
Composant
Classe Active
Robert Ogor
14
emprunt
Message
Etat
Le livre a t
emprunt
Accs BD
Note
Paquetage
Robert Ogor
mai 2003
15
16
Les relations
dpendance
association
hritage
ralisation
Robert Ogor
<<entit>>
Stockage Commande
stockage Commande
<<frontire>>
Rception Commande
rception Commande
Robert Ogor
mai 2003
17
Cas
d'utilisation
Classes
Objets
EtatsTransitions
Squences
Dploiement
Activit
Composants
Collaboration
Robert Ogor
18
Aspect dynamique :
d'
interaction
(squences, collaboration),
d'
tats-transitions et d'
activit
Aspect statique :
les paquetages
les mthodes
les threads
Vue implantation
Vue logique
Vue des cas
d'
utilisation
Vue des processus
Aspect paralllisme :
threads
processus
tches
interactions
Vue de dploiement
Aspect fonctionnel :
Cas d'
utilisations
acteurs
classes
collaboration
Aspect rpartition :
diagramme de
dploiement
nuds, modules
Robert Ogor
mai 2003
19
Robert Ogor
20
Robert Ogor
10
mai 2003
21
Robert Ogor
22
11
mai 2003
23
Robert Ogor
24
Aspect dynamique :
diagrammes d'
interaction
(squences, collaboration),
d'
tats-transitions et d'
activit
Squencement des actions
dans le systme
Aspect statique :
diagramme de
classes et d'
objets
Robert Ogor
12
mai 2003
Phases de la modlisation
Expression des besoins
Analyse
25
Cahier des
charges
Conception
Implmentation
Test
Robert Ogor
26
Rle de l'
expression des
besoins
Robert Ogor
13
mai 2003
27
28
Robert Ogor
14
mai 2003
30
vrifi par
Modle
de test
spcifi par
implment par
ralis par
Modle
d'
analyse
Modle
d'
implmentation
Modle de
conception
Robert Ogor
31
Lanalyse
Le but de lanalyse est de traduire dans un langage proche de celui des
informaticiens les modles exprims dans l'
expression des besoins.
et
Robert Ogor
15
mai 2003
32
Cahier des
charges
Cas
dutilisation
Systme
Scnarios
d'
utilisation
Dfinition
des
fonctionnalits
du systme
Robert Ogor
33
Analyse du systme
Cahier des
charges
Systme
Cas
dutilisation
Propagation des
vnements
dans le systme
Diagramme
de
classes
Diagramme
d'tats-transitions
Robert Ogor
16
mai 2003
34
La notation graphique
BUT :
Robert Ogor
35
prsents, d'
en rserver jusqu'
2. L'
adhrent peut connatre la liste des
livres qu'
il a emprunts ou rservs.
L'adhrent possde un mot de passe qui lui est donn son inscription.
L'emprunt est toujours ralis par les employs qui travaillent
la
bibliothque. Aprs avoir identifi l'
emprunteur, ils savent si le prt est
possible (nombre max de prts = 5), et s'
il a la priorit (il est celui qui a
rserv le livre).
Ce sont les employs qui mettent en bibliothque les livres rendus et les
Robert Ogor
17
mai 2003
36
Robert Ogor
37
18
mai 2003
38
Robert Ogor
39
Les Acteurs
Un acteur reprsente une personne ou un priphrique qui joue un
abonn
abonn
Hritage
relation entre acteurs
un bibliothcaire est un abonn
bibliothcaire
un administrateur est un bibliothcaire
un administrateur est un abonn
Acteur
bibliothcaire
administrateur
Robert Ogor
19
mai 2003
40
Emprunter
Regarder la liste
des livres
Rserver
Robert Ogor
41
Cette
Emprunt
<<include>>
Identification
abonn
<<include>>
Rservation
Robert Ogor
20
mai 2003
42
Rservation
Extensionpoints
avant le choix du livre
Robert Ogor
43
"Vrification par
carte" sont des spcialisations du cas d'
utilisation "Identification
abonn".
Autrement dit : si l'
on dit que l'
on fait une "Identification abonn", ce
peut tre une "Vrification par carte" ou une "Vrification par mot
hritage
passe".
Vrification par
mot passe
Identification
abonn
Vrification par
carte
Robert Ogor
21
mai 2003
44
Robert Ogor
45
Le systme
Robert Ogor
22
mai 2003
46
Acteurs
Cas
d utilisation
Robert Ogor
47
<<include>>
Identification
Client
<<extends>>
Connatre les livres prsents
Identification
par carte
Identification
par mot de passe
Remettre un livre
Employ
Raliser un emprunt
Robert Ogor
23
mai 2003
48
Scnarios d'
un cas d'
utilisation
La description dun cas dutilisation se fait par des scnarios
49
Scnarios d'
un cas d'
utilisation
Rservation d'
un livre
description simplifie
Le client se prsente devant un terminal:
(1) Le systme affiche un message d accueil.
(2) Le client choisit lopration rservation parmi les diffrentes oprations
proposes.
(3) Le systme lui demande de s'
authentifier.
(4) Le client donne son identification (nom, mot de passe).
(5) Le systme lui demande de choisir un livre.
(6) Le client prcise le livre qu'
il dsire.
(7) Le systme lui prcise si un exemplaire du livre lui est rserv.
Robert Ogor
24
mai 2003
50
Scnarios d'
un cas d'
utilisation
Rservation d'
un livre
description dtaille
Robert Ogor
51
Scnarios d'
un cas d'
utilisation
Rservation d'
un livre
1.
2.
3.
4.
5.
6.
7.
Cas normal
description dtaille
(1) Le systme affiche un message d accueil sur le terminal avec un choix d'
oprations
(2) Le client choisit lopration rservation parmi les diffrentes oprations proposes.
(3) Le systme lui demande de s'
authentifier.
(4) Le client donne son identification (nom, mot de passe).
(5) Le systme demande le titre du livre en donnant la possibilit de choisir dans une
liste.
(6) Le client prcise le livre qu'
il dsire.
(7) Le systme lui prcise que un exemplaire du livre lui est rserv.
variante 1
variante 2
variante 3
variante 4
variante 5
Robert Ogor
25
mai 2003
52
Rserver un livre
:Systme de prts
Afficher message d accueil
Choix de l opration rservation
Demande d identification du client
Identification du client
Demande identification du livre
Identification du livre
Message le livre est rserv
temps
Robert Ogor
53
Variation du scnario
:Systme de prts
Client
Afficher message d accueil
Choix de l opration rservation
Demande d identification du client
Identification du client
Rserver un livre
Robert Ogor
26
mai 2003
Cas d utilisation:
Distributeur de billets
Distributeur de billets
54
Cas
dutilisation
Effectuer un virement
Client
Retirer l argent
Banque
Acteur
client
Consulter un compte
Grer le distributeur
Acteurs
gestionnaires
Effectuer la Maintenance
Employ
Robert Ogor
55
:Distributeur de billets
Insre la carte
Demande de mot de passe
Entre mot de passe
Retirer
l argent
Robert Ogor
27
mai 2003
56
3) Concepts objets et
diagrammes de classes
Robert Ogor
57
La classe
CLASSE
Personne
Caractristiques
attributs
donnes membres
informations
proprits
nom
age
adresse
mot de passe
nbre livres emprunts
changerAdresse()
donnerAge()
donnerAdresse()
vrifierMotDePasse()
Famille d'
objets ayant
mmes caractristiques
et mme comportement
Comportement
oprations
mthodes
fonctions
procdures
messages
services
CLASSE
Personne
Robert Ogor
28
mai 2003
58
<<constructeur>>
Personne(nom:String, ge : Integer
adresse:String, motDePasse:String)
<<caractristiques>>
changerAdresse (String)
<<authentification>>
vrifierMotDePasse(String) : Boolean
changerMotDePasse(old:String,
new:String)
Robert Ogor
La classe et lobjet
59
instance de
un objet
CLASSE
:Personne
Personne
nom
age
adresse
mot de passe
nbre livres emprunts
changerAdresse()
obtenirAge()
obtenirAdresse()
vrifierMotDePasse()
Attributs
Comportement
:Personne
: Personne
Andr Rou
25
France
6FT34
0
Robert Ogor
29
mai 2003
60
61
Robert Ogor
30
mai 2003
62
Personne
+ : attribut public
# : attribut protected
- : attribut private
- nom
- ge
- adresse
# changerAdresse()
# obtenirRue()
+ obtenirAge()
+ : opration public
# : opration protected
- : opration private
Robert Ogor
63
- nom
- age
- adresse
- mot de passe
- nbreLivresEmprunts
- nbreLivresEmpruntables = 5
une_personne:Personne
+ changerAdresse()
+ obtenirAge()
+ obtenirAdresse()
+ vrifierMotDePasse()
+ getNbLivresEmpruntables()
31
mai 2003
64
Personne
+ : attribut public
# : attribut protected
- : attribut private
: attribut de classe
- nom
- ge
- adresse
- nombrePersonne
# changerAdresse()
# obtenirRue()
+ obtenirAge()
+obtenirNombrePersonne()
+ : opration public
# : opration protected
- : opration private
: opration de classe
Robert Ogor
65
La rification
entit physique
Chien
Mariage
race
age
couleur
poux
pouse
date
vnement
aboyer()
mordre ()
obir ()
seMarier ()
divorcer ()
Cours
Appartenir
relation
propritaire
date
voiture
situation
professeur
salle
lves
assister ()
quitter ()
vendre ()
acheter ()
prter ()
Robert Ogor
32
mai 2003
66
PileEntier
- contenu
- hauteur
- taille
+empiler (valeur : Integer)
+dpiler ()
+elementSommet () : Integer
+nombreElements : Integer
+estVide : Boolean
Robert Ogor
67
Surcharge et polymorphisme
Personne
Fichier
nom : String
taille : Integer
propritaire : String
nom : String
age : Integer
adresse : String
imprimer()
changerAdresse(sonAdresse : String)
obtenirAge() : entier
obtenirAdresse() : String
imprimer()
imprimer(nombreLignes : entier)
notions : polymorphisme
surcharge
signature
Robert Ogor
33
mai 2003
68
Classes paramtrables
Element
taille : Integer
Pile
+Pile()
+empiler(valeur : Element)
+dpiler () : Element
+nombreElements() : Integer
+estVide (): Boolean
+estPleine() : Boolean
return
nombreElements() ==taille
<<bind>>(Personne, 100)
Pile
<Integer,34>
Pile
<Point,20>
Guichet
Robert Ogor
69
Sens de lecture
du nom dassociation
aPourAuteur
titre
unLivre : Livre
Auteur
nom
aPourAuteur
titre = La peste
unHomme : Auteur
nom = Camus
Robert Ogor
34
mai 2003
70
Personne
employeur
0..1
employ
emploie
estEmploye
1 (par dfaut)
1 (explicite)
0..1
multiplicit
nom
adresse
grade
ouvrier
patron
patron
0..1
*
dirige
0 ou 1
nom dassociation
0 ou plusieurs
1..*
1 ou plusieurs
intervalle
6..28
Robert Ogor
71
constructeur : Socit
nom : Peugeot
adresse : Sochaux
emploie
contrematre : Personne
employeur
employ
nom = Dupont
Robert Ogor
35
mai 2003
72
estEmploye
emploie
constructeur :
Socit
Nom : Peugeot
adresse : Sochaux
leDirecteur : Personne
employeur
patron
nom = Madec
e
m
p
l
o
i
e
unContrematre : Personne
nom = Simon
d
i
r
i
g
e
ouvrier
unCadre : Personne
nom = Dupont
ouvrier
Robert Ogor
73
Classe dassociation
Socit
Nom
adresse
Personne
emploie
0..1
Nom
adresse
grade
salaire
Emploi
grade
salaire
Classe dassociation
Robert Ogor
36
mai 2003
74
Qualificateurs : restriction de la
cardinalit
Banque
gre
*
gre
Banque
numroCompte
CompteBancaire
numroCompte
CompteBancaire
gre
Rpertoire 1
Rpertoire
nom
gre
Fichier
nom
Fichier
Robert Ogor
75
CompteChque
appartient
Personne
{or}
Socit
1
Confrence
1
assiste
{sous-ensemble} Personne
organise
Robert Ogor
37
mai 2003
77
Attribut driv
Personne
Nom
adresse
grade
dateNaissance
/age
{Contexte Personne
Inv : age = dateCourante - dateNaissance }
Attribut driv
Robert Ogor
78
Cours
Enseignant
Salle
Elve
Robert Ogor
38
mai 2003
Agrgation
3..*
Polygone
79
Point
{ordonns}
C'
est une association qui exprime un
couplage fort li une relation de
subordination, elle est asymtrique du
type ensemble/lment.
Titre
1..*
Destinataire
E-mail
Texte
1..*
1
attach
Mais
un lment agrg peut tre li d'
autres classes
la suppression de l'
ensemble n'
entrane pas celle de l'
lment
Fichier
*
Polycopi
Robert Ogor
80
Document
* Paragraphe
Voiture
Phrase
Roue
Carrosserie
1 Moteur
2-5
Porte
Habitacle
Robert Ogor
39
mai 2003
81
Association, agrgation ou
composition ?
1.
2.
???
Magasin
gre
*
Client
gre
Magasin
Client
Magasin
gre
Client
Robert Ogor
82
Composition
Fentre
scollbar
Ascenceur
1 contrle 1 contenu
Bordure
Panel
Fentre
scollbar [2]: Ascenceur
contrle : Bordure
contenu : Panel
Robert Ogor
40
mai 2003
83
Navigabilit
Par dfaut une association est bidirectionnelle.
Il est possible de rduire la porte en la rendant unidirectionnelle.
En gnral, ce choix se fait dans la phase de conception.
Agenda
Runion
*
aLieu
TrancheHoraire
fin
Flche de navigabilit :
Association unidirectionnelle
dbut
Date
Robert Ogor
navigabilit
cardinalit
ordonnancement
rle
84
{ordered} 3..*
Point
nom dassociation
agrgation
montre
composition
- support
visibilit
numro
qualificateur
Canevas
{frozen}
changeable
Prsentation
couleur
texture
densit
Robert Ogor
41
mai 2003
85
Hritage
Robert Ogor
86
PRINCIPE
Ne pas modifier les classes dj crites cela modifierait
l'
utilisation qui en est faite.
Robert Ogor
42
mai 2003
87
Hritage : adaptation
Hrite
MoyenTransport
vitesseLimite
dsignation
prixHT
anneConstruction
prixTTC()
obtenirVitesse()
changerPrix()
obtenirAge()
est un
est une sorte de
Camion
nombreEssieux
capacit
charge
estPlein()
Tramway
nombrePassagers
niveauBruit
nombrePassagers()
prixTTC()
Voiture
nombrePortes
couleur
VoitureDiesel
VoitureEssence
typeInjecteur
nombreBougies
redfinition
Robert Ogor
88
PRINCIPE
Lorsque plusieurs classes ont des caractristiques et des
comportements communs la cration d'
une classe
anctre permet de regrouper ce qui est commun.
Cette classe anctre peut correspondre une classe
concrte ou une classe abstraite
Robert Ogor
43
mai 2003
89
Hritage : gnralisation
Factorisation des proprits
Permanent
Vacataire
numroBureau
spcialit
nombreCours
nom
numroScu
nombreVacation
nombreCours
spcialit
nom
numroScu
Robert Ogor
90
Hritage : gnralisation
Factorisation des proprits
Enseignant
nombreCours
Spcialit
nom
numroScu
Permanent
numroBureau
Vacataire
nombreVacation
Robert Ogor
44
mai 2003
91
Hritage : gnralisation
Factorisation des proprits
Avocat
nombreAffaires
adresseCabinet
nom
numroScu
Enseignant
Vendeur
anciennet
nomDuStand
nom
numroScu
nombreCours
Spcialit
nom
numroScu
Permanent
Vacataire
numroBureau
nombreVacation
Robert Ogor
92
Hritage : gnralisation
Factorisation des proprits
Personne
nom
numroSecu
{disjoint,incomplete}
Avocat
nombreAffaires
adresseCabinet
Enseignant
Vendeur
anciennet
nomDuStand
nombreCours
spcialit
{disjoint,complete}
Permanent
numroBureau
Vacataire
nombreVacation
Robert Ogor
45
mai 2003
93
Vhicule marin
Voiture amphibie
Voiture
Bateau
Vhicule
Vhicule marin
Vhicule terrestre
Voiture amphibie
Voiture
Bateau
Robert Ogor
Notation UML :
nom de classe italique
ou strotype <<abstract>>
Classe abstraite
Un mdia peut tre transport, dupliqu, affich.
Le transport et la duplication sont indpendants
du type du mdia (copie de fichiers).
Par contre, tout mdia peut tre affich et ce n'
est
pas la mme chose pour l'
audio, la vido, le
graphisme, le texte.
Un mdia ne peut pas dfinir comment s'
afficher
tant qu'
il ne sait pas ce qu'
il est.
Il n'
y a pas d'
instance de la
classe mdia .
Un mdia nexiste quen
tant que livre, chanson,
graphique ou vido.
94
Livre
Mdia
auteur
titre
date cration
transporter()
dupliquer()
afficher()
Chanson
dure
afficher()
afficher()
Graphique
largeur
hauteur
Vido
dure
afficher()
afficher()
Robert Ogor
46
mai 2003
Classe abstraite
0_dimension
Point
afficher
Figure
couleur
position
trait
bouger
tourner
afficher
1_dimension
2_dimensions
orientation
remplissage
orientation
agrandir
remplir
afficher
agrandir
afficher
afficher
Ligne
afficher
95
Arc
rayon
angleArc
angleDpart
afficher
Polygone
Courbe
afficher
afficher
Robert Ogor
96
PRINCIPE
Un objet d'
une classe donne pourra toujours faire
rfrence des objets de ses sous classes
(polymorphisme ).
Une opration excute par un objet sera celle que
connat l'
objet dont il fait rfrence (liaison dynamique).
Robert Ogor
47
mai 2003
97
Redfinition et
liaison dynamique
Personne
nom
numroSecu
changerAdresse()
Vendeur
Enseignant
anciennet
nombreCours
spcialit
Avocat
nombreAffaires
adresse
cabinet
changerAdresse()
nomDuStand
changerAdresse()
Permanent
numroBureau
Redfinition
Vacataire
nombreVacation
Robert Ogor
98
Enseignant
Avocat
Permanent
Vacataire
Conformante
Robert Ogor
48
mai 2003
99
Conformante
Premire dfinition :
Exemple
Utilisation
Robert Ogor
100
Exemple de conformante
void acheterMaison(Personne acheteur)
{
Le paramtre peut tre
abstrait ou concret
acheteur.changerAdresse();
};
Personne jean;
Avocat pierre;
Vacataire paul;
acheterMaison(jean) ; // licite car jean est une Personne
acheterMaison(pierre) ; // licite car pierre est conformant Personne
acheterMaison(paul) ; // licite car paul est conformant Personne
Robert Ogor
49
mai 2003
101
nom
numroSecu
changerAdresse()
Avocat
nombreAffaires
adresseCabinet
Enseignant
changerAdresse()
nombre_cours
spcialit
acheterMaison(jean) ;
acheterMaison(pierre) ;
acheterMaison(paul) ;
changerAdresse()
Vacataire
Quelle mthode ?
nombreVacation
Robert Ogor
102
Media
auteur
titre
date cration
transporter()
dupliquer()
afficher()
Vido lesVisiteurs;
Chanson letItBe;
Livre laPeste;
Livre
acheteruvre (lesVisiteurs);
acheteruvre (letItBe);
acheteruvre (laPeste);
Chanson
dure
afficher()
afficher()
Graphique
largeur
hauteur
Vido
dure
afficher()
afficher()
Robert Ogor
50
mai 2003
103
Les Interfaces
Une interface permet de dcrire le comportement d'une entit
Robert Ogor
104
Interface
<<interface>>
Dplaable
opration,
mthode,
service
sans corps
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()
TYPE
CLASSE + INTERFACE
Robert Ogor
51
mai 2003
105
Implmentation d'
interface
<<interface>>
Dplaable
Savoir Faire
dfini
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()
Polygone
sommets
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()
primtre ()
Implmente
=
obligation de programmation
Sait Faire
fourni
Personne
nom
numeroScu
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()
sonNom()
sonNumero()
Robert Ogor
106
Implmentation et dpendance
Transporteur
Polygone
sommets
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()
primtre ()
Dplaable
Savoir Faire
implmente
exige (dpendance)
Robert Ogor
52
mai 2003
Interface
107
Exemple :
Une table de hascode exige que ses lments
soient "comparables" et soient "hashables", c'
est
dire que l'
lment connaisse une fonction de
hascode.
<<interface>>
Comparable
estEgal()
estDiffrent()
estPlusPetit()
estPlusGrand()
Exige ce comportement
<<uses>>
<<interface>>
Hashable
TableHashCode
hashcode()
implmente
1
String
contient
estEgal()
hashcode()
Robert Ogor
108
<<interface>>
Hashable
estEgal()
estDiffrent()
estPlusPetit()
estPlusGrand()
hashcode()
Exige ce comportement
Hashable
String
estEgal()
hashcode()
contient
TableHashCode
Comparable
Robert Ogor
53
mai 2003
Utilisation dinterface
void manipuler(Dplaable element)
{
element.avancer(8);
element.monter(4);
};
Personne jean;
Polygone poly;
109
<<interface>>
Dplaable
Polygone
Personne
Personne et Polygone
savent faire les oprations
dfinies dans Dplaable
obj. manipuler(jean) ;
obj. manipuler(poly) ;
Robert Ogor
110
Les Paquetages
Une application est constitue de plusieurs classes, des dizaines
Robert Ogor
54
mai 2003
Association entre
paquetage
Editeur
112
<<import>>
<<access>>
Diagram
Elements
Domain
Element
<<import>>
<<import>>
Partie
Graphique
partie
Motif
<<import>>
Gestion
Graphique
Motif
Partie
Window
<<import>>
Microsoft
Window
Robert Ogor
113
paquetage : import et
access
java
Editeur
<<access>>
event : java::awt::ActionEvent
awt
event
Simulateur
ActionEvent
<<import>>
event :
ActionEvent
Robert Ogor
55
mai 2003
115
Diagrammes de classes de la
gestion de bibliothque,
recherche partir du cahier des
charges.
Recherche par responsabilit
Robert Ogor
116
Robert Ogor
56
mai 2003
117
L'adhrent possde un mot de passe qui lui est donn son inscription.
L'emprunt est toujours ralis par les employs qui travaillent
la
bibliothque. Aprs avoir identifi l'
emprunteur, ils savent si le prt est
possible (nombre max de prts = 5), et s'
il a la priorit (il est celui qui a
rserv le livre).
Ce sont les employs qui mettent en bibliothque les livres rendus et les
nouveaux livres. Il leur est possible de connatre l'
ensemble des prts
raliss dans la bibliothque
118
Robert Ogor
57
mai 2003
119
Robert Ogor
120
prsents, d'
en rserver jusqu 2. L'
adhrent peut connatre la liste des
livres qu'
il a emprunts ou rservs.
Ladhrent possde un mot de passe qui lui est donn son inscription.
L'emprunt est toujours ralis par les employs qui travaillent la
Ce sont les employs qui mettent en bibliothque les livres rendus et les
58
mai 2003
121
Les associations
1
1.*
Bibliothque
employeur
prteur
1
est inscrit
emploie
contient
connat
1..*
1..* employ
0..2
Bibiothcaire
Livre
0..5
a rserv 1
a emprunt 1
livreEmprunt
1.* emprunteur
Adhrent
lecteur
1..*
a ralis
0..*
Prt
Robert Ogor
122
1.*
Bibliothque
employeur
prteur
1
emploie
1
est inscrit
contient
1..*
connait
employ
1..*
Bibiothcaire
adresse
nom
anciennet
0..2
Livre
titre
0..5
numero
a rserv 1
a emprunt 1
livreEmprunt
lecteur
1.* emprunteur
Adhrent
nom
numro
adresse
1..*
1
a ralis
0..*
Prt
dateDebut
dateFin
Robert Ogor
59
mai 2003
123
1.*
Bibliothque
employeur
emploie
1..*
prteur
1
employ
Bibiothcaire
anciennet
connait
1
est inscrit
contient
1..*
0..2
a rserv 1
Livre
titre
0..5 a emprunt 1
numero livreEmprunt
lecteur
1..*
1.* emprunteur
Adhrent
numro
Prt
1
a ralis
0..* dateDebut
dateFin
Personne
nom
adresse
Robert Ogor
127
4) Modle dynamique
Diagramme de squence
Diagramme de collaboration
Diagramme dtats
Robert Ogor
60
mai 2003
128
Modle dynamique :
Le modle dynamique montre le comportement
du systme et l'volution des objets dans le
temps.
Systme
Robert Ogor
129
Robert Ogor
61
mai 2003
130
Cas
d'utilisation
Scnarios
d'utilisation
Diagramme
de
classes
Conception
Diagramme de
collaboration
Diagramme de
squences
Diagramme
d'tats
Robert Ogor
131
appel mthode
asynchrone
signal externe
par acteur
exception
horloge
Robert Ogor
62
mai 2003
132
retour d'
appel
asynchrone
<=UML1.3
>=UML1.4
minut
Robert Ogor
133
Diagramme de collaboration ou
diagramme de squences
la ralisation d'
un cas d'
utilisation ou la
ralisation dune opration.
Met en vidence l'expditeur et le rcepteur de
l'
vnement.
Chaque vnement reu par un objet devra se
traduire par une opration pour le grer dans le
diagramme de classes.
Robert Ogor
63
mai 2003
134
Diagramme de squence
Met en vidence l'aspect temporel (haut vers le bas)
Un objet a une ligne de vie reprsente par une ligne
verticale en pointill.
Une flche reue par un objet se traduit par lexcution
dune opration.
La dure de vie de lopration est symbolise par un
rectangle.
Certains objets vivent pendant tout le diagramme, d'
autres
sont activs et/ou meurent pendant la squence.
Il est possible de dfinir des choix et des itrations.
Robert Ogor
135
o1:C1
opration()
Objets existants
o4:C4
Cration de l'
objet
[x>0] cration (x)
Branche de
contrle
objet3:C3
faire (z)
faire (w)
appel
retour
Synchro de
contrle
concurrent
Destruction de l'
objet
onRefait ( )
Appel au mme objet
Mlange de
contrle
L'
objet continue vivre
Robert Ogor
64
mai 2003
Rserver un livre
136
Diagramme de squence :
Rserver un Livre
Client
:Systme de prts
l:Livre
:Bibliothque
a:Adhrent
reserverLivre(nom,
motPasse,nomLivre)
a=authentifierAdherent(nom, motPasse)
a=trouverAdherent(nom)
b=authentifier(motPasse)
[a] b2=peutReserver()
[b2] l=trouverLivre(nomLivre)
[l]b3=reserver(l,a)
b3=reserver(a)
reserver(l)
Robert Ogor
137
prteur
authentifierAdherent()
trouverAdherent()
trouverLivre()
reserver()
est inscrit
1..* emprunteur
1 contient
1..*
0..2
Livre
titre
numero
a rserv
Adhrent
livresRservs
0..5
a emprunt
livresEmprunts
reserver()
SystmePrt
numro
lecteur
authentifier()
peutReserver()
reserver()
reserverLivre()
Personne
nom
adresse
Robert Ogor
65
mai 2003
140
Les Diagrammes de
collaborations entre classes
Robert Ogor
141
Diagramme de collaborations
Le diagramme de collaborations sous une forme distincte du diagramme de
squences reprsente les interactions entre classes en mettant moins en
vidence l'
aspect temporel.
L'aspect temporel n'est pas compltement cach car chaque message est
numrot.
1
Le flot de donnes intervenant
dans ces interactions peut
tre prcis.
Systme
2
4
Robert Ogor
66
mai 2003
142
Diagramme de collaboration
Rserver un livre
message
ordre
paramtres
reserverLivre(nom,
motPasse, nomLivre)
: Systme
Prt
: Bibliothque
sens de l'
appel
2 : [a] b2=peutReserver(motPasse)
objet
4.1 : reserver(a)
l: Livre
Robert Ogor
144
Diagrammes de classes de la
gestion de bibliothque,
recherche partir des cas
d'
utilisation
Robert Ogor
67
mai 2003
145
rception Commande
classe entit
La classe qui mmorise et gre des donnes, par exemples
les livres prsents, les prts effectues, nous la reprsentons
par par l'
icne suivante
stockage Commande
classe contrle
La classe qui ralise le contrle ncessaire pour interprter le
scnario dcrivant un cas d'
utilisation
gestion Commande
Robert Ogor
147
gestion rservations
abonn
Utilisateurs
IU rservation
Livres
Robert Ogor
68
mai 2003
151
d'
instances et des interactions avec les autres objets. Il
s'
agit de ne conserver que les tats significatifs.
La rponse d'un objet un vnement dpend de l'tat
dans lequel cet objet se trouve.
Livre
estPrt
estRserv
Livre
libre
emprunt
Livre
rserv
Livre
prt
152
Evnement
achat
poubelle
Etat
Livre
libre
libration
l'
intervalle de temps qui
s'
coule entre
l'
vnement d'
entre et
celui de dpart.
livre rendu
emprunt
rservation
Livre
rserv
emprunt
Livre
prt
Robert Ogor
69
mai 2003
153
Robert Ogor
154
vnement
Connect
Dconnect
Robert Ogor
70
mai 2003
155
ETAT n
entry / action en entre de l'
tat
do : activit pendant l'
tat
vnement 1 / action1
vnement 1 / action1
.
exit / action en sortie d'
tat
Robert Ogor
156
Garde
garde
premier chiffre
chiffre[!dernier]
Composant chiffre [dernier && faux numro]
Message enregistr
do : jouer message
raccroche
raccroche
Connectant
do : trouver connexion
71
mai 2003
157
garde
Dpart de la bibliothque
[nbreEmprunt =0]
adhrent
rservation[nbreRservation =1]
Annulation
rservation
Rendre un livre
[nbreRservation <2]
Emprunt[nbreEmprunt =4]
Emprunt
[nbreEmprunt =4]
Rendre un livre
[nbreRservation =2]
Emprunt [nbreEmprunt =4]
Rservation[nbreRservation =2]
Robert Ogor
173
5) Conception
composants et dploiement
Robert Ogor
72
mai 2003
174
La notion de composant
Dans le monde du btiment, le modle de l architecte (logique) permet de
visualiser, spcifier et documenter sur papier les caractristiques de la future
construction :
place des murs, des fentres, etc
Lors de la construction, on utilise des composants fentres, portes, murs. Ce
sont des choses physiques qui existent dans le monde rel.
Ils rendent des services mais dfinissent leurs exigences (taille, espace, etc.).
De mme, dans un systme informatique, le modle logique dans une
application permet de visualiser, spcifier et documenter la structure et le
comportement des entits qui collaborent.
La construction va s appuyer sur des composants qui existent dans le monde
des ordinateurs : librairies, fichiers, tables, documents excutables, etc
Un composant dfinit les services qu'
il rend et aussi les services dont il est en
attente pour pouvoir fonctionner.
Robert Ogor
175
composant
COM+
Hello.class
beans
Java
Hello.java
Hello.html
Hello.jpg
dpendance
Robert Ogor
73
mai 2003
176
Interface et composant
Un composant offre une interface, mais exige la
disposition de certains services
<<Interface>>
ImageObserver
Image.java
Component.java
imageUpdate(): Boolean
dpendance
ralisation
Image.java
Component.java
ImageObserver
Component.java
Robert Ogor
177
Les diagrammes de
composants
Robert Ogor
74
mai 2003
Les diagrammes de
composants
178
Robert Ogor
179
Les diagrammes de
composants
<<base donne>>
tickets
lecteurCartes
Contrle
achat
Vendeur
ticket
venteIndividuel
InterfaceUsager
usager
status
InterfacedeContrle
venteGroupe
InterfaceEmploy
administrateur
employ
Robert Ogor
75
mai 2003
180
181
Les diagrammes de
dploiement
Robert Ogor
Les diagrammes de
dploiement
Ce modle dfinit le diagramme de l'architecture
matrielle du systme ou de l'
application.
Robert Ogor
76
mai 2003
182
Les diagrammes de
dploiement
processeur
distributeur
processeur
ordinateur
central
Liaison TCP/IP
Liaison parallle
Ecran
imprimante
Liaison TCP/IP
Liaison USB
processeur
banque
Distributeur
de billets
lecteur
de carte
Robert Ogor
183
Les diagrammes de
dploiement de l'
application
Serveur
stockage
documents
Liaison TCP/IP
Serveur
gestion Personnes
Liaison TCP/IP
Liaison TCP/IP
Liaison parallle
Serveur accs
et application
imprimante
Liaison srie
protocole HTTP
lecteur
de carte
Client internet
Robert Ogor
77
mai 2003
184
Les diagrammes de
dploiement de l'
application
Serveur stockage documents
document
Livre
Revues
BandeDessines
Rsum
Robert Ogor
185
Conception
Conception
conception
systme
conception
objet
d'
abord un niveau gnral puis un niveau de plus en plus dtaill.
Robert Ogor
78
mai 2003
186
187
Conception systme
conception
systme
Structure du
logiciel
Diagramme
des
composants
Modle
structurel
Diagramme
de
classes
Structure du
matriel
Diagramme
de
dploiement
Robert Ogor
Conception objet
conception
objet
Modle
structurel
Diagramme de
classes
analyse
Modle
dynamique
Diagramme
dtat
Ajoute,complte ou modifie
les mthodes
les classes
les attributs
Diagramme de
classes conception
Transformation
ou adaptation
Robert Ogor
79
mai 2003
188
Conception
Gestion rservations
+1
Gestion Utilisateurs
1
1
1
+*
Utilisateurs
Rservations
Gestion LIvres
IU rservation
abonn
1
#adresse
#age
#nbreReservation
#nbrePret
#motPasse
chancier
Livres
189
Conception du diagramme de
classes
1
Bibliothque
1
*
Utilisateurs
Rservations
1
IU rservation
Livres
abonn
chancier
Les diffrentes classes de contrle sont regroupes dans une seule que l'
on
appelle Bibliothque.
Cette solution n'
est pas possible si les livres et les utilisateurs sont sur des
serveurs diffrents
Classe frontire (interface utilisateur).
Classe entit (base des livres, base des utilisateurs )
Robert Ogor
80
mai 2003
190
Utilisateurs
1
Choix de conception :
Utilisateurs est une table dans une
base de donnes
Ce choix est guid par la persistance.
Gestion Utilisateurs
Utilisateurs
Gestion Utilisateurs
Bibliothque
1
Utilisateurs
Robert Ogor
223
Conclusions
Mthode pour apprhender la ralisation dun
systme informatique
Diagrammes qui permettent daider la rflexion,
de permettre la discussion (clients, dveloppeurs)
Pas de solution unique mais un ensemble de
solutions plus ou moins acceptables suivant les
contraintes du client et les logiciels et matriels
disponibles
Une solution acceptable sera obtenue avec des
itrations successives.
Robert Ogor
81
mai 2003
224
Bibliographie
Livres
Robert Ogor
225
http://st-www.cs.uiuc.edu/users/patterns/patterns.html,
Patterns info: http://c2.com/ppr/index.html
Rational doc: http://www.rational.com/uml/documentation.html
Rational CASE tools: http://www.rational.com/products/rose/seed
UML 1.4 RTF: www.celigent.com/omg/umlrtf
OMG UML Tutorials: www.celigent.com/omg/umlrtf/tutorials.htm
UML 2.0 Working Group:
www.celigent.com/omg/adptf/wgs/uml2wg.htm
82
mai 2003