Vous êtes sur la page 1sur 63

1

Introduction UML 2
Eric Cariou
Master Technologies de l'nternet 1
re
anne
Universit de Pau et des Pays de l'Adour
UFR Sciences Pau Dpartement Informatique
Eric.Cariou@univ-pau.fr
2

Ce cours est bas initialement sur un cours de


Laurence Duchien : http://www.lifl.fr/~duchien/
3
Introduction

UML : Unified Modelin !anuae

Normalis par l'OMG (Object Management Group)

http://www.omg.org/spec/UML/

Dernire version : 2.4.1 (Aot 2011)

Notation standard pour la modlisation


d'applications base d'objets (et de composants
depuis la version 2)

Mais utilisable dans de nombreux autres contextes de


conception ou spcification

Exemple : schma de BDD

Langage utilisant une notation graphique


4
Modles

Un modle est une reprsentation partielle de la ralit

Abstraction de ce qui est intressant pour un contexte donn

Vue subjective et simplifie d'un systme

Avec UML, on va s'intresser principalement aux modles


d'applications informatiques

Un modle UML = des diagrammes UML

Utilit des modles

Faciliter la comprhension d'un systme

Permettre galement la communication avec le client

Vision de communication, de documentation

Dfinir voire simuler le fonctionnement d'un systme

Dans ce cas, on se doit d'tre le plus prcis possible dans le contenu


des modles pour s'approcher du code

Vision de dveloppement, de production


5
Historique

UML hrite principalement des mthodes objets de Booch


(Booch), OMT (Rumbaugh) et OOSE (Jacobson)

Mais intgre galement d'autres approches, comme les machines


tats de Harel

But initial

Dfinir un processus/mthode de dveloppement complet (de


l'analyse l'implmentation) orient objet

Problme

Pas de notation, langage pour crire les modles ou les artefacts


dfinis par ce processus devenu le but final d'UML

UML n'est donc pas une mthode ou un processus

UML propose un ensemble de notations pour que chacun ait sa


disposition les lments ncessaires la conception d'une
application
6
UML processus de dveloppement

UML indpendant du processus de conception et de


dveloppement : ne dcrit pas comment il fonctionne

Exemple de processus de conception et de


dveloppement

Processus itratif et incrmental

Dfinition du cahier des charges

Elaboration du logiciel : cycle de vie itrer


1. Analyse
2. Spcification
3. mplmentation
4. Test

Chaque itration permet l'ajout de fonctionnalits en les dfinissant,


les ralisant, les testant et les intgrant

Arrt du processus itratif lorsque le logiciel produit rpond


compltement au cahier des charges
7
UML processus de dveloppement

UML fournit une notation/syntaxe pour les diagrammes et


modles dfinis pendant tout le cycle de dveloppement

UML permet de dfinir des modles de niveaux diffrents

Analyse

Conception

Spcification d'implmentation

....

l faut prciser quel niveau correspond un modle

On peut raffiner un modle pour le spcifier chaque


niveau
8
Les diagrammes UML

13 diagrammes diffrents

Diagrammes structurels

De classes (class diagram)

D'objets (object diagram)

De composants (component diagram)

De structure composite (composite structure diagram)

De dploiement (deployment diagram)

De paquetages (package diagram)

Diagrammes de comportement

De cas d'utilisation (use case diagram)

D'activit (activity diagram)

D'tats-transition (state diagram)

Diagrammes d'interaction

De squence (sequence diagram)

Vue gnrale d'interaction (interaction overview diagram)

De communication (communication diagram)

De temps (timing diagram)


9
Les diagrammes UML

Ces diagrammes permettent de dfinir une


application selon plusieurs points de vue

Fonctionnel (cas d'utilisation)

Statique (classes, objets, structure composite)

Dynamique (squence, tats, activit, interaction,


communication, temps)

mplmentation (composants, dploiement, paquetage)

Les diagrammes seuls ne permettent pas de dfinir


toutes les contraintes de spcification requises

Utilisation du langage textuel de contraintes OCL en


complment

S'applique sur les lments de la plupart des


diagrammes
10
Plan

Diarammes fonctionnels

"as d'utilisation

Diagrammes statiques

Diagrammes dynamiques

Diagrammes d'implmentation
11
Diagramme de cas d'utilisation

Description des interactions type entre un utilisateur et


le systme informatique

Dfinition des cas d'utilisation partir de discussions


avec l'utilisateur sur ses attendus du systme

Enumration des principaux scnarios prvus

Exemple : criture d'un texte avec un traitement de


texte

2 cas d'utilisation : mettre du texte en gras, crer un index

Proprits des cas d'utilisation

Dterminer les fonctions visibles pour un utilisateur

Prendre en compte les objectifs des utilisateurs

De taille quelconque
12
Diagramme de cas d'utilisation

Deux grandes approches

Objectif de l'utilisateur

nteraction du systme

Exemple : utilisation d'une feuille de style dans un


traitement de texte

nteraction du systme : dfinir un style, changer de


style, dplacer un style d'un document vers un autre

Objectif de l'utilisateur : assurer un formatage cohrent,


faire un format de document identique un autre

Les interactions du systme refltent ce que l'utilisateur


peut faire plus que le but rel de l'application

Description d'un cas d'utilisation : de manire


informelle, gnralement en langage naturel
13
Diagramme de cas d'utilisation
Prendre la
commande
Demander
un crdit
Acheteur
!imites du syst#me
"ataloue d'articles
Vendeur
Contrler
la demande
Directeur du magasin
association
tend
gnralise
Diffrents liens entre les cas d'utilisation/acteurs :
"as d'utilisation
Acteur
<< extend >>
<< include >> inclut
14
Plan

Diagrammes fonctionnels

Diarammes statiques

De classes

D'o$%ets

De composants

De structure composite

Diagrammes dynamiques

Diagrammes d'implmentation
15
Diagramme de classes

Dfinition des lments formant une application et de


leurs relations

Structuration statique de l'application

Dfinition des classes existantes

Dfinition de la structure interne des classes (attributs,


oprations)

Dfinition des relations entre les classes

2 principaux types de relations entre classes

Association

Un client peut louer un certain nombre de vidos

Sous-typage/gnralisation

Un tudiant est une personne

mportant : documenter les diagrammes de classes


16
Diagramme de classes

Exemple de 3 usages possibles d'un diagramme de classes

Diagramme conceptuel

Concepts mtier du domaine tudi un niveau abstrait

Sans lien avec l'implmentation

Diagramme de spcification

Premire approche du logiciel par la dfinition de ses interfaces

nterface = type de l'objet, classe = implmentation de l'objet

Un type (ou interface) peut avoir plusieurs ralisations (lies


l'environnement, choix de conception/implmentation...)

Diagramme d'implmentation

Vision bas-niveau de l'implmentation du logiciel

Concepts proches entre diag. classe et langages objet

Classe, interface, mthode, attributs, spcialisation ...

Manque le concept d'association (pouvant se traduire par des attributs)

Mais encore une fois, peut utiliser des diagrammes de classe pour
modliser autre chose que du code objet
17
Diagramme de classes
Commandes

date : string
prpay : boolean
nombre : string
prix : float
envoyer()
terminer()
Client

nom : string
adresse : string
montant-crdit() : int
&
1
Ligne-de-commande
quantit : int
prix : int
est-satisfait : boolean
1
&
Articles
Produit
&
1
Client-entreprise

nom-du-contact : string
montant-crdit() : int
limite-crdit() : int
facture-du-mois(int)
Client-individuel

noCarteBleue : int
Attri$uts
'prations
R(le d'association
Association
"ardinalits
)nralisation
"lasse
{ montant-crdit() = 0 }
"ontrainte
*ote
18
Diagramme de classes

Attributs

lment caractrisant une partie de l'tat d'un objet

Syntaxe UML pour la dfinition d'un attribut :


visibilit nom [multiplicit] : type = init
{proprits}

visibilit : + (public), # (protg) ou (priv)

nom : nom de l'attribut

multiplicit : nombre d'attributs de ce type (tableau : [1..5])

type : type de l'attribut

init : valeur initiale de l'attribut

proprits : proprits, contraintes associes l'attribut


19
Diagramme de classes

Oprations

Processus/fonction qu'une classe sait excuter

Appeles galement mthodes dans les langages objets

Syntaxe UML pour la dfinition d'une opration :


visibilit nom(paramtres) : typeRetourn
{proprits}

visibilit : + (public), # (protg) ou (priv)

nom : nom de l'opration

paramtres : liste des paramtres de l'opration

typeRetourn : type de la valeur retourne par l'opration (si


elle retourne une valeur)

proprits : proprits, contraintes associes l'opration


20
Diagramme de classes
<< interface >>
Vhicule
dmarrer()
avancer(int distance)
arrter()
Voiture
Moto
Roue 4 2
Interface
Implmentation
Aration
Voiture
Vhicule
Conducteur
Dpendance+
utilisation
Agrgation : les lments existent
toujours quand l'association est
dtruite
Composition : les lments
disparaissent quand l'association
est dtruite
,-icule
dmarrer()
avancer(int distance)
arrter()
Voiture

Variante avec classe


abstraite

Nom en italique

Ne peut tre instancie


21
Diagramme de classes
1
Une instance de la classe A est toujours associe avec
une instance de la classe B
Une instance de la classe A est associe avec entre
deux et cinq instances de la classe B
A B
A B
A B
A B
1..*
0..1
*
Une instance de la classe A est toujours associe avec
une ou plusieurs instances de la classe B
Une instance de la classe A est associe avec zro ou
une instance de la classe B
Une instance de la classe A est associe avec zro,
une ou plusieurs instances de la classe B
A B
2..5
A B
nom assoc.
nom rle
Association unidirectionnelle

Dtails sur associations

Exemples de cardinalits d'associations


22
Diagramme de classes

Enumeration

Liste de valeurs manipules comme un type

Classe d'association

A chaque couple des lments de l'association, une instance


d'une autre classe est associe

ci, chaque employ d'une entreprise sont associes les


informations sur son poste
<<enumeration>>
TypeContrat
CDD
CD
Poste

intitul : string
salaire : float
type : TypeContrat
Entreprise Personne
1 employeur emplois employs 1..
*
23
Diagramme de classes

Contraintes sur les associations (en plus des


cardinalits)

Relation d'exclusion entre deux associations : soit l'une soit


l'autre mais pas les deux la fois

Les lments d'une association peuvent tre ordonns


Une association peut tre le sous-ensemble d'une autre


Entreprise Personne
employ
directeur
{xor}
Tche Sous-tche
{ordered} *
Association Personne
membres
prsident 1
{subset}
*
24
Diagramme de classes

Elments drivs

Principalement pour attributs et


associations

Se dduisent d'autres parties du


diagramme

Nom de l'lment commence par /

Exemples

L'ensemble des banques dont on est


client se dduit de ses comptes
banquaires

L'argent gr par une banque est la


somme des soldes de ses comptes

Ces lments drivs peuvent


formellement tre dfinis en OCL
Client
nom : string
Banque
/argent : int
Compte
solde : int
crditer(int)
dbiter(int)
1
*
* /banques
*
1
*
25
Diagramme de classes

Contraintes

Associations, attributs et gnralisations spcifient des


contraintes importantes (relations, cardinalits), mais ils ne
permettent pas de dfinir toutes les contraintes

UML permet d'ajouter des contraintes sur des lments


(classe, attribut, association, ...)

Soit des prdfinies

Exemple : {ordered} et {xor} pour les associations

Soit des spcifiques dfinies par le concepteur

Pas de syntaxe prcise prconise, uniquement l'utilisation de


{ ... }

En pratique, pour tre prcis, on exprimera ces contraintes en OCL

Exemple de contrainte explicite : on indique qu'un client individuel


n'a pas de droit de crdit
26
Diagramme d'objets

Objet = instance d'une classe

Diagramme d'objets : ensemble d'objets respectant


les contraintes du diagramme de classe

Respect des cardinalits

Chaque attribut d'une classe a une valeur affecte dans


chaque instance de cette classe

Diagramme de classes = dfinition d'un cas


gnral

Diagramme d'objets = dfinition d'un cas particulier


de ce cas gnral
27
Diagramme d'objets
Rectangle
move(int, int)
Point
int X
int Y
*
2 contient
Point:P1
x = 12
y = 20
Rectangle:
:P2
x = 30
y = 40
:points
Objets multiples
identificateur de l'objet : NomClasse :NomObjet
'$%et
*om.identificateur
de l'o$%et
Diaramme
d'o$%ets
Diaramme de
classe
Association
/tat de l'o$%et
28
Lien avec langage de programmation

Exemple pour les diagrammes du transparent prcdent, en Java


public class Point {
protected int X, Y;

public Point(int abs,int ord) {
X = abs; Y = ord; }
...
}
public class Rectangle {
protected Point P1, P2;
public Rectangle(Point point1, point2) {
P1 = point1; P2 = point2; }
....
}
...
Point p1 = new Point(12,20);
Rectangle rect = new Rectangle(p1, new Point(30,40));
...

Retrouve mme relations entre classes et instances au niveau


des langages objets

Attention

Encore une fois, diagrammes de classes/objet peuvent tre de tout


niveau (mtier, conception, ...), pas que de la spcification de code
29
Diagramme de composants

Composant

Elment spcifiant ses interactions avec l'extrieur via la


dfinition de ses interfaces fournies et requises

On connecte une interface requise d'un composant l'interface fournie


compatible d'un autre composant : assemblage

Composant composite

Composant peut tre form de composants internes assembls par leurs


interfaces

Composition hirarchique de composants

Port

Point d'interaction du composant

Associ une interface d'oprations (en mode requis ou fourni)

Connecteur

De dlgation : lie un port du composite un port d'un de ses


lments

D'assemblage : lie une interface d'un lment interne avec celle


d'un autre lment interne
30
Diagramme de composants
Interface
fournie
Interface
requise
Port
"omposant
interne
Dlation
Assem$lae 0liaison entre
une interface requise et
une interface fournie1

Ensemble de composants connects entre eux


par assemblage ou composition
31
Diagramme de structure composite

Diagramme conceptuellement assez proche d'un


diagramme de composants

Dfinit l'architecture interne d'une classe

Les lments qui la forment (les parts)

Les interactions entre ces lments (d'une manire proche des


diagrammes de collaboration)
32
Plan

Diagrammes fonctionnels

Diagrammes statiques

Diarammes dynamiques

D'tats

De squence

D'activit

De communication

,ue nrale d'interaction

De temps

Diagramme d'implmentation
33
Diagrammes dnamiques

Dfinition des aspects dynamiques d'une


application, plusieurs points de vue

Diagrammes d'tats

Description du comportement d'un objet ou de l'opration d'un


objet

Extension des diagrammes de Harel

Diagrammes d'activit : diagrammes de flot de donnes

Dfinition des interactions entre des objets

Description de la coopration d'un ensemble d'objets

2 types de diagrammes d'interaction

Diagrammes de squence : mise en avant de l'volution et de


l'enchanement temporel des messages changs

Diagrammes de communication : mise en avant des liens entre les


objets et les messages changs au travers de ces liens
34
Diagramme d'!tats

Diagrammes d'tats : comportement interne d'un objet

La dfinition de tous les tats possibles d'un objet

La dfinition de tous les changement d'tats via des transitions

Associ un objet ou une opration


/tat
initial
do/contrle
article
En attente
do/initialiser
la livraison
Livr
Contrle
Livraison
/traiter 1er article
[pas tous contrls]/
traiter l'article suivant
[tous contrls &&
tous disponibles]
[tous contrls && pas tous en stock]
article reu
[pas tous en stock]
article reu
[tous disponibles]
livr
2ransition
/tat
2ransition
Activit
/vnement
)arde
35
Diagramme d'!tats

Diagrammes d'tats syntaxe

Syntaxe d'une transition


vnement [arde] ! action

Chaque partie est optionnelle

La transition est suivie si l'vnement a t gnr et que la garde est


valide

Excute alors l'action avant de rentrer dans l'tat cibl par la transition

Attention : pas deux transitions possibles partant d'un mme tat

Syntaxe des activits que l'on peut associer un tat

do ! action : action excute dans l'tat

entry ! action : action excute l'entre dans l'tat

exit ! action : action excute la sortie de l'tat

evt ! action : transition interne pour l'occurence de l'vnement evt

Lien avec l'objet associ au diagramme d'tats

Les actions peuvent tre les mthodes de la classe de l'objet

Peut utiliser les attributs de l'objet, par exemple dans les gardes
des transitions
36
Diagramme d'!tats

Diagrammes d'tats : notion d'tat composite

Permet de structurer de manire hirarchique les tats et les


transitions

Exemple d'une commande annule sans super tat


Annul
annul
do/contrle
article
En attente
do/initialiser
la livraison
Livr
Contrle
Livraison
/traiter 1er article
[pas tous contrls]/
traiter l'article suivant
[tous contrls &&
tous disponibles]
article reu
[pas tous en stock]
articles reus
[tous disponibles]
livr
annul
annul
[tous contrls && pas tous en stock]
37
Diagramme d'!tats
*om du super tat
Annul
annul
faire/contrle
article
En attente
faire/initialiser
la livraison
Livr
Contrle
Livraison
/traiter 1er article
[pas tous contrls]/
traiter l'article suivant
[tous contrls &&
tous disponibles]
article reu
[pas tous en stock]
articles reus
[tous disponibles]
livr
[tous contrls && pas tous en stock]
Actif

Diagramme d'tats : notion d'tat composite

Exemple d'une commande annule avec super tat

Permet de factoriser la transition associe l'vnement Annuler


et de dfinir 3 tats principaux (Actif, Livr, Annul)
38
Diagramme d'!tats

Diagramme d'tats concurrents

Plusieurs sous-parties parallles au sein d'un composite

Possibilit d'ajouter des lments de synchronisation entre les


sous-parties
[paiement pas OK]
Rejet

Autorisation

do/contrle
paiement
Livr
Autoris
[paiement OK]
Autorisation
Autoris
En attente
Contrle Livraison
Annul
Rejet
Livr
3tat de fin
39
Diagramme d'!tats

Etats historiques

Dans un tat composite, permet de revenir dans l'tat interne qui


tait celui qu'on a quitt en dernier

Deep history (H*) : si dernier tat est un composite, ractive galement


son dernier tat interne et ainsi de suite jusqu'au bout de la hirarchie

Shallow history (H) : ne ractive que le premier niveau (donc si


dernier tat est un composite, prend son tat initial)

Exemple

Hirarchie initiale d'tats actifs : Closed / Baking / 900W

Puis vnements DoorOpen et DoorClosed

Si deep history (comme sur le diag.) : retrouve Closed / Baking / 900W

Si shallow history : Closed / Baking / 600W


40
Diagramme d'activit!s

Diagrammes d'activits

A utiliser

Pour analyser un cas d'utilisation

Pour comprendre un flot de donnes traversant plusieurs cas


d'utilisation

Description des comportements parallles

Modlisation de flot de donnes (workflow)

Driv de diagrammes d'vnements, de rseaux de Petri, de SDL

nconvnient

Lien entre activit et objet pas dfini clairement

Selon le niveau de modlisation, une activit correspond

Conception : une tche qui est excute soit par un humain ou par
un ordinateur

Spcification/implmentation : une mthode ou le comportement


d'une classe
41
Diagramme d'activit!s

Diagrammes d'activits
trouver une
boisson
prendre de la
limonade
prendre
des tasses
ajouter de l'eau
dans le rservoir
mettre du caf
dans le filtre
mettre le filtre
dans la machine
mettre en marche
la cafetire
verser le caf boire la boisson
[pas de caf] [pas de limonade]
[trouv caf]
[trouv limonade]
prparer le caf
lumire teinte
^potcaf.en marche
Activit
4arre de sync-ronisation
)arde 2est
Fin
42
Diagramme d'activit!s
rception
de commande
annuler
commande
autorisation
de paiement
rception
articles
Contrler la
ligne de cmde
complter
la commande
prendre articles
en attente
affecter articles
la commande
recommander
l'article
livrer la
commande
ajouter la reste
au stock
service
financier
traitement de la
commande
gestion du stock
*[pour chaque article
de la commande]
[non OK]
[OK]
*[pour chaque article choisi]
[en stock]
[toutes les lignes de
commandes satisfaites
et paiement autoris]
[tous les articles en
attente pourvus]
[besoin rappro]
43
Diagramme de s!quence

nteraction entre objets

Chaque objet est reprsente par une ligne verticale

Temps s'coule de haut en bas

Prcision des messages changs entre les objets

Message = appel de mthode

Permet de spcifier l'ordonnancement temporel


des interactions entre les objets

Enchainement / imbrication des appels de mthodes

Nouveaut UML 2 : ajout de cadres pour dfinir


des boucles, des alternatives ...

Mais peut vite devenir assez peu lisible en pratique


44
Diagramme de s!quence

Diagramme de squence
:fentre d'entre
d'une commande
:commande
:ligne de
commande
:article
prepare()
*[pour toute les lignes de
commandes] prepare()
enStock:=controle()
[enStock]retirer()
besoinrappro:=
besoinRappro()
[besoinrappro]new
:article
rapprovis.
'$%et
Messae
Itration
"ondition
Dlation 5 soi6m7me
!ine de vie
de l8o$%et
45
Diagramme de s!quence

Diagramme de squence (suite)


[besoinrappro]new
:article
rapprovis.
[enStock]new
:article
livr
"ration
Retour
46
Diagramme de s!quence

Diagrammes de squence et processus concurrents

Prcise explicitement quand les objets sont actifs (au sens flot
de contrle d'un processus / thread)
:transaction
:coordinateur
de transaction :premier
contrleur de
transaction
:second
contrleur de
transaction
new
new
new
ok
ok
tout est fait ?
tout est fait ?
Valide
Activation+
flot de
contr(le
Messae async-rone
Dlation 5 soi6m7me
Destruction de l'o$%et
Contrle d'une transaction
bancaire
!ine
de vie
47
Diagramme de s!quence

Cadre d'interaction

Cadre qui englobe une partie du diagamme de squence (un


fragment) pour dfinir un fonctionnement non squentiel

Types de cadres

Alt

Alternative (if-then-else) entre deux parties selon une garde

Loop

Boucle

Opt

Partie optionnelle (if-then) selon une garde

Par

Deux parties en parallle

Region

Partie en excution mutuelle (processus / thread)


48
Diagramme de s!quence

Exemple d'utilisation des cadres


"" tir de [#o$ler%&&']
procedure distribuer
(oreac) (line)
i( (produit.valeur
* +,&&&&
spcial.distribuer
else
standard.distribuer
endi(
end (or
i( (ncessite-on(irmation)
coursier.con(irmer
end procedure
49
Diagrammes de collaboration

Diagramme d'interaction quivalent au diagramme


de squence

Met en avant la vue structurelle au lieu de temporelle

UML 1.X : deux types de diagrammes de collaboration

Au niveau classe (spcification)

Au niveau instance

Notion de rle : un lment a une fonction particulire

Deux niveaux / tapes

Dfinition du diagramme de collaboration qui reprsente une


interaction

L'utilisation d'une collaboration pour montrer l'interaction


d'lments dans un diagramme de classes ou d'objets

Ces lments sont lis un rle de la collaboration


50
Diagramme de communication

Diagramme de communication

Nouveau nom du (des ?) diagramme de collaboration en UML 2

Du ? Des ?

Le diagramme de collaboration au niveau classe semble avoir


disparu ...

Dans ce cours, ce diagramme l sera tout de mme prsent (d'o


la conservation du nom diagramme de collaboration dans les
transparents qui suivent)

Diagramme de collaboration au niveau instance = diagramme de


communication

Diagramme de collaboration au niveau classe = ???

Diagramme de squence vs collaboration

Le diagramme de squence n'existe qu'au niveau instance

Au lieu de supprimer le diagramme de collaboration au niveau


classe, il aurait mieux vallu ajouter un diagramme de squence
au niveau classe ...
51
Diagramme de collaboration "instance#
Diagramme de collaboration au niveau instance
:fentre d'entre
de commande
:commande
:ligne de commande
:article livr
:article en stock
:article rapprovisionn
1:prepare()
1.1*[pour toutes les lignes]:prepare()
1.1.1:enStock:=controle()
1.1.2:[enStock]retirer()
1.1.2.1: besoinrappro:=
besoinRappro()
1.1.2.2:[besoinrappro]new
1.1.3:[enStock]new
'$%et
Messae
*umro de squence
Dlation
5 soi6m7me
Itration
)arde
52
Diagramme de collaboration "classe#

Diagramme de collaboration au niveau classe


Nom d'un rle : /roleName [: className]
/source
Contrleur
/observateur
1 : changement_tat(valeur)
[valide] *|| 1.2 : mise__jour(valeur)
1
1
1
*
:capteur temprature
Observation
:afficheur :log
source
observateur
Diaramme de colla$oration
nomme 9'$servation ;
Diaramme d'instances
observateur
*om de r(le
R(le
"lasse
Itration en parall#le
Utilisation de
colla$oration
R(le %ou
par un o$%et
1.1 valide := vrif(valeur)
53
Diagramme de collaboration

nformations portes sur les messages :


[pr "/"] [["["cond"]"] [sq] ["*"["||"]["["iter"]"]]
":"] [r ":="] msg"("[par]")"

pr : numro des messages prdcesseurs

cond : condition, garde d'envoi du message

sq : numro de squence du message

* : itration, || : en parallle

iter : dtaille l'itration

r : stocke la valeur de retour du message

msg : nom de l'opration appeler

par : paramtres de l'opration

Exemples

[heure = midi] 1 : manger()

3 / *||[i := 1..5] : fermer()


1.3, 2.1 / [t < 10s] 2.5 : age := demanderAge(nom)
54
$pes de messages

4 types de messages utilisables dans diagramme


de collaboration et de squence
Appel de procdure, flot de contrle
imbriqu
Flot de contrle plat (message
gnralement asynchrone)
Message asynchrone
Retour d'appel de procdure
55
Diagrammes dnamiques % conclusion

Diagrammes d'interaction (squence ou


collaboration)

Pour comprendre la coopration entre les objets

Diagrammes d'tats

Pour comprendre le comportement interne d'un objet

Diagrammes d'activits

Pour analyser un cas d'utilisation

Pour comprendre un flot de donnes traversant


plusieurs cas d'utilisation

Pour comprendre les applications multi-activits


56
Diagramme de vue globale d'interaction

Sorte de mlange
d'un diagramme de
squence et d'un
diagramme d'activit
57
Diagramme de temps

Evolution de l'tat du systme selon un point de


vue principalement temporel
58
Plan

Diagrammes fonctionnels

Diagrammes statiques

Diagrammes dynamiques

Diarammes d'implmentation

De paquetaes

De dploiement
59
Diagrammes d'impl!mentation

Mise en place de l'application sur un


environnement

Diagramme de paquetages

Description de l'organisation du code des


applications

Utile au programmeur

Diagramme de dploiement

Description du dploiement sur un rseau

Aspects lis la topologie, l'intgration des


systmes et aux communications
60
Diagramme de paquetages

Regrouper les classes dans des "packages

Disposer d'heuristiques pour regrouper les classes

Heuristique la plus utilise : la dpendance entre les classes

Une dpendance existe entre 2 lments si le changement


de dfinition d'un lment peut modifier un changement dans
l'autre lment

Dpendances entre classes

Envoi d'un message (appel de mthode)

Une classe fait partie des donnes d'une autre classe

Une classe mentionne une autre classe comme un paramtre


d'une opration

dalement, seules les modifications de l'interface de la


classe affectent les autres classes
61
Diagramme de paquetages

Exemple de diagramme de paquetages

Note : les classes contenues dans les packages


ne sont pas reprsentes ici
Clients Commandes
Application
saisie commandes
nterface utilisateur
saisie commandes
AWT
nterface utilisateur
Liste diffusion
Application
liste de diffusion
Dpendance
Pac<ae
62
Diagramme de d!ploiement

Diagramme de dploiement

Relation entre le logiciel et le matriel

Placement des composants et objets dans le systme rparti

Noeud = unit informatique (priphrique, capteur, mainframe,


PC,...)

Connexion

Composant = module physique de code


"omposant
U
Client
serveur
base de
donnes
PC sous Windows
Serveur Unix
<< TCP/P >>
*oeud
"onne=ion
Interface
Dpendance
63
&onclusion sur UML

Avantages d'UML

Un certain concensus autour de l'utilisation d'UML : standard de


fait dans l'industrie

Notation avec une syntaxe trs riche, tout en restant intuitive

ntgration dans des ateliers de gnie logiciel avec production


de squelettes de codes et autres transformations automatiques
des modles

Langage de contraintes OCL pour spcifications prcises


utiliser en complment

nconvnients d'UML

Notation majoritairement graphique pouvant se rvler


insuffisante ou trop charge d'un point de vue expressivit

Smantique floue ou mal dfinie pour certains types de


diagrammes

Lien parfois difficile entre les vues et diagrammes d'une mme


application

Vous aimerez peut-être aussi