Professional Documents
Culture Documents
objet, message
Si lobjet est correctement realise, apr`es reception et traitement du message, lobjet aura
change detat.
mon velo
type = randonneur
couleur = blanc
poids = 7kg
plateau = 32
pignon = 28
chBraquet(Plt,Pgn)
freiner()
moi :individu
nom = Terlutte
prenom = Alain
dateN = 13/07/1951
cas dutilisation
La description dynamique commencera par la description des besoins
Syst`eme ` a developper
client
service
maintenance
Commander
boisson
Demander
remboursement
Reparer
Approvisionner
diagramme de collaboration ou diagramme de communication
Diagramme montrant des objets dans une situation de communication particuli`ere
(insistence sur lorganisation des objets).
:utilisateur
panneau
commande
distributeur
1: choixBoisson(petit cafe sucre)
2: PreparerCafe(0.5,0.2)
3: chauerEau()
Ce diagramme se lit :
lutilisateur envoie dabord le message choixBoisson(petit cafe sucre) `a lobjet panneau de
commande, puis lobjet panneau de commande envoie le message preparerCafe(0.5,0.2) `a
lobjet distributeur, enn lobjet distributeur senvoie (realise) le message chauferEau().
Ce diagramme decrit un scenario.
diagramme de sequence
Diagramme proche permettant de decrire une sequence beaucoup plus detaillee. Il nest
pas necessaire dindiquer la chronologie (elle est implicite).
:utilisateur
panneau
commande
distributeur
t
choixBoisson(petit caf e sucre)
preparerCafe(0.5,0.2)
chaufferEau()
UML : les diagrammes
UML propose neuf types de diagrammes pour decrire les vues statiques (structure) et
dynamiques (comportement) dun syst`eme.
diagrammes structurels
diagramme de classes
diagramme dobjets
diagramme de composants
diagramme de deploiement
diagrammes comportementaux
diagramme des cas dutilisation
diagramme etats/transitions
diagramme dactivites
diagramme de sequences
diagramme de collaboration (de communication)
classes
Les objets appartiennent souvent `a des ensembles qui ont les memes caracteristiques.
Une classe est une abstraction decrivant lensemble. Tous les objets dune meme classe
auront les memes attributs (avec des valeurs particuli`eres) et les memes operations (les
memes possibilites de comportement).
Un objet est une instance dune classe.
velo
type
couleur
poids
plateau
pignon
chBraquet(Plt,Pgn)
freiner()
mon velo : velo
type = randonneur
couleur = blanc
poids = 7kg
plateau = 22
pignon = 28
chBraquet(Plt,Pgn)
freiner()
instance de
Selon le contexte, on peut ne pas faire apparatre la description compl`ete dune classe.
classes
On doit parfois faire reference `a une instance quelconque dun objet.
velo
type
couleur
poids
plateau
pignon
chBraquet(Plt,Pgn)
freiner()
: velo
type
couleur
poids
plateau
pignon
chBraquet(Plt,Pgn)
freiner()
instance de
Le rectangle de droite (:classe) represente un objet quelconque de la classe velo.
classes, visibilite des attributs et des operations
Certains attributs peuvent etre inaccessibles `a lutilisateur. Il est frequent de ne pas
donner un acc`es direct aux attributs mais de controler cet acc`es par les operations.
De la meme fa con, certaines operations peuvent etre inaccessibles `a lutilisateur.
+ attribut ou operation public, visisble par tous les objets
# attribut ou operation protege, visible par les objets de la meme classe et ceux des
sous-classes
- attribut ou operation prive, visible par les objets de la meme classe
individu
- nom
- prenom
- dateN
+ poids
+ getNom()
+ setNom(nvnom)
classes, syntaxe simpliee des attributs
Visibilite Nom Attribut : Type = Valeur Initiale
Le type peut etre un type predeni (entier, booleen, chane de caract`eres,...) ou une
classe... un tableau, une enumeration...
Il est possible de denir des attributs derives, cest `a dire calcule `a partir dautres
attributs.
Il est possible de preciser quun attribut nest pas modiable (constante, gel e).
individu
- nom : Cha^ ne
- prenom : Cha^ ne
- dateN : Date
+ poids : R eel
+ sexe : Sexes
+ c elibataire : Booleen = Vrai
+ prenomEnfants [0..*] : Cha^ ne
+ /^ age : R eel
enumeration
Sexes
f eminin
masculin
^age = DateCourante - dateN
classes, syntaxe simpliee des operations
Visibilite Nom Operation ( Arguments ) : Type Retourne
Les arguments forment une liste precisant le nom de largument et son type. On peut
aussi preciser sa direction (in (par defaut), out, inout).
individu
- nom : Cha^ ne
- prenom : Cha^ ne
+ GetNom() : Cha^ ne
+ SetNom ( nvnom : Cha^ ne ) : void
Il est aussi possible davoir des attributs ou des operations de classe, cest `a dire partages
par toutes les instances de la classe. Cela permet, par exemple, des mecanismes pour
denombrer les instances dune classe.
associations
Une association represente une relation entre des classes. La plupart des associations sont
binaires.
Les associations peuvent etre nommees et un triangle peut en preciser le sens de lecture.
cours
intitule
jour
heure
enseignant
nom
prenom
fait
associations
Une association peut etre reexive.
individu
nom
prenom
enfant de
Des classes peuvent etre reliees par plusieurs associations, si elles ont des signications
dierentes.
trajetSNCF
noligne
jour
heure
gare
nom
ville
depart de
arrivee de
associations
Lorsquune association concerne les instances de la classe avec une signication
particuli`ere, il est possible de preciser le role de lassociation `a cette extremite.
cours
intitule
jour
heure
individu
nom
prenom
fait
enseignant
suit
etudiant
individu
nom
prenom
enfant de
parent
enfant
classe-associations
On peut avoir envie daecter des attributs `a une association.
etudiant
nom
prenom
discipline
libell e
date
note
est evalue sur
classe-associations
On peut remplacer cette classe-association par une association.
etudiant
nom
prenom
discipline
libell e
epreuve
date
note
passe
concerne
Le diagramme est souvent plus simple `a lire en faisant cette transformation.
associations
Une association peut relier plus de deux classes.
acheteur
nom
prenom
vendeur
nom
prenom
lieu
rue
ville
<>
associations
De la meme fa con, on peut remplacer lassociation par une classe, surtout quand
lassociation utilise une classe-association qui fait apparatre des attributs.
acheteur
nom
prenom
vendeur
nom
prenom
lieu
rue
ville
contrat
date
navigabilite dans les associations
Par defaut, une association est navigable dans les deux sens.
Une notion de navigabilite peut etre indiquee par une `eche. Elle signie que les instances
dune classe voient les objets instances de lautre classe, mais pas linverse.
Par exemple, pour un forum de discussion,
abonne
nom
prenom
message
texte
voit
signie lanonymat : un abonne peut avoir acc`es aux messages mais on ne peut pas
retrouver labonne `a partir du message.
multiplicite des associations
Chaque extremite dune association peut porter une indication de multiplicite indiquant
combien dobjets dune classe peuvent etre lies `a un objet de lautre classe
cours
intitule
jour
heure
enseignant
nom
prenom
fait 1 0..*
Un cours est fait par un seul enseignant. Un enseignant fait un nombre de cours quon ne
peut pas limiter ; il peut ne pas faire de cours.
multiplicite des associations
La multiplicite peut etre une valeur, un intervalle ou un nombre indetermine (symbole ).
A
2
message1()
create
message2()
destroy
Des messages speciques peuvent creer des instances dobjets ou les detruire.
Les fragments combines
UML 2.0 a introduit les fragments combines dans les diagrammes de sequence. Ils
permettent de decrire les scenarios de fa con plus compacte.
On peut ainsi decrire un scenario contenant des parties optionnelles, des parties
conditionnelles, des parties iterees.
On peut decrire des parties qui doivent absolument se succeder, sexecuter en parall`ele ou
encore des parties qui doivent se derouler sans interruption.
Il existe ainsi 12 operateurs de fragments.
Les fragments combines
:acteur
:class2 :class3
message1()
message2()
message3()
message4()
opt
La partie encadree est optionnelle.
Il est possible que lacteur envoie le message2. Dans ce cas, il faudra le traiter.
Mais il est aussi possible quil envoie directement le message4.
Les fragments combines
:class1 :class2 :class3
message1()
message2()
message3()
message4()
alt
[condition1]
[condition2]
La partie encadree est une alternative `a deux options ; il pourrait y en avoir plus.
Si la condition1 est veriee, on executera cette sous-partie.
Si la condition1 nest pas veriee, on examinera la condition2. On peut utiliser le terme
else pour executer la deuxi`eme sous-partie lorsque la condition1 nest pas veriee.
Les fragments combines
:class1 :class2 :class3
message1()
message2()
message3()
message4()
loop[5]
La partie encadree est repetee 5 fois.
Les fragments combines
:class1 :class2 :class3
message1()
message2()
message3()
message4()
critical
La partie encadree ne peut pas etre interrompue.
diagramme de communication ou diagramme de collaboration
Il decrit les communications entre objets, comme le diagramme de sequence.
Il insiste plus sur les objets, moins sur la chronologie.
Figure 6: exemple de diagramme de communication ou diagramme de collaboration (L.
Audibert)
diagramme des etats et transitions
Il decrit les changements detats dun objet. Une transition est un changement detat,
provoque par un evenement. La transition peut etre gardee par une condition.
On peut lui associer une action. Une action est une operation instantanee, sans
interruption.
On peut associer une activite `a letat. Une activite est une operation que fait lobjet
quand il est dans cet etat. Une activite peut etre interrompue.
etat
activite
etat
activite
transition [condition] / action
Figure 7: exemple de diagramme detats/transitions (L. Audibert)