Você está na página 1de 63

Introduction UML 2

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

Ce cours est bas initialement sur un cours de


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

Introduction

UML : Unified Modeling Language

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


3

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

Historique

UML hrite principalement des mthodes objets de Booch


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

But initial

Dfinir un processus/mthode de dveloppement complet (de


l'analyse l'implmentation) orient objet

Problme

Mais intgre galement d'autres approches, comme les machines


tats de Harel

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
5

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.
2.
3.
4.

Analyse
Spcification
Implmentation
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

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

Il faut prciser quel niveau correspond un modle

On peut raffiner un modle pour le spcifier chaque


niveau

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)

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)

Implmentation (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

Plan

Diagrammes fonctionnels

Cas d'utilisation

Diagrammes statiques

Diagrammes dynamiques

Diagrammes d'implmentation

10

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
11

Diagramme de cas d'utilisation

Deux grandes approches

Objectif de l'utilisateur

Interaction du systme

Exemple : utilisation d'une feuille de style dans un


traitement de texte

Interaction 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

12

Diagramme de cas d'utilisation


Catalogue d'articles
Limites du systme
Contrler
la demande

Acteur
Vendeur

Prendre la
commande
Acheteur
Demander
un crdit

Cas d'utilisation

Directeur du magasin

Diffrents liens entre les cas d'utilisation/acteurs :


association

<< extend >>

tend

gnralise

<< include >>

inclut

13

Plan

Diagrammes fonctionnels

Diagrammes statiques

De classes

D'objets

De composants

De structure composite

Diagrammes dynamiques

Diagrammes d'implmentation
14

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

Sous-typage/gnralisation

Un client peut louer un certain nombre de vidos


Un tudiant est une personne

Important : documenter les diagrammes de classes


15

Diagramme de classes

Exemple de 3 usages possibles d'un diagramme de classes

Diagramme conceptuel

Diagramme de spcification

Premire approche du logiciel par la dfinition de ses interfaces


Interface = 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

Concepts mtier du domaine tudi un niveau abstrait


Sans lien avec l'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
16
modliser autre chose que du code objet

Diagramme de classes
Association

Commandes
Attributs

Oprations

date : string
prpay : boolean
nombre : string
prix : float

Client
1

*
Cardinalits

nom : string
adresse : string
montant-crdit() : int

envoyer()
terminer()

Gnralisation
1

Classe
Rle d'association

Articles

Ligne-de-commande
quantit : int
prix : int
est-satisfait : boolean

Client-entreprise

Client-individuel

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

noCarteBleue : int

{ montant-crdit() = 0 }

Produit

Contrainte

Note

17

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


18

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
19

Diagramme de classes
<< interface >>
Vhicule

Voiture

dmarrer()
avancer(int distance)
arrter()

Interface
Conducteur
Implmentation

Voiture

Variante avec classe


abstraite

Nom en italique
Ne peut tre instancie

Dpendance,
utilisation

Agrgation : les lments existent


toujours quand l'association est
dtruite

Moto

4 Roue

Vhicule

Composition : les lments


disparaissent quand l'association
est dtruite

Agrgation

Vhicule
dmarrer()
avancer(int distance)
arrter()

Voiture

20

Diagramme de classes

Dtails sur associations


nom assoc.
A nom rle

Association unidirectionnelle

Exemples de cardinalits d'associations


1
A

Une instance de la classe A est toujours associe avec


une instance de la classe B

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

Une instance de la classe A est associe avec entre


deux et cinq instances de la classe B

1..*
A
0..1
A

*
2..5

21

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

Ici, chaque employ d'une entreprise sont associes les


informations sur son poste

Entreprise 1 employeur

<<enumeration>>
TypeContrat
CDD
CDI

emplois

employs 1..* Personne

Poste
intitul : string
salaire : float
type : TypeContrat

22

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

Entreprise

employ

Personne

{xor}
directeur

Les lments d'une association peuvent tre ordonns


Tche

{ordered}

Sous-tche

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

Association

membres
{subset}

prsident 1

Personne

23

Diagramme de classes

Elments drivs

Banque
/argent : int

Client

nom : string

Exemples

Compte
solde : int
crditer(int)
dbiter(int)

* /banques

Principalement pour attributs et


associations
Se dduisent d'autres parties du
diagramme
Nom de l'lment commence par /
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
24

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

25

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
26

Diagramme d'objets
Point

Point:P1

int X
int Y
2

x = 12
y = 20

contient

*
Rectangle

Diagramme
d'objets

:P2

Nom/identificateur
de l'objet

x = 30
y = 40

Rectangle:

Etat de l'objet
Association
Objet

move(int, int)
:points
Diagramme de
classe

Objets multiples

identificateur de l'objet : NomClasse :NomObjet

27

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 28

Diagramme de composants

Composant

Elment spcifiant ses interactions avec l'extrieur via la


dfinition de ses interfaces fournies et requises

Composant composite

Composant peut tre form de composants internes assembls par leurs


interfaces
Composition hirarchique de composants

Port

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


compatible d'un autre composant : assemblage

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

29

Diagramme de composants

Ensemble de composants connects entre eux


par assemblage ou composition

Port

Interface
fournie

Dlgation

Interface
requise

Composant
interne

Assemblage (liaison entre


une interface requise et
une interface fournie)

30

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)

31

Plan

Diagrammes fonctionnels

Diagrammes statiques

Diagrammes dynamiques

D'tats

De squence

D'activit

De communication

Vue gnrale d'interaction

De temps

Diagramme d'implmentation

32

Diagrammes dynamiques

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

33

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


Etat
initial
[pas tous contrls]/
traiter l'article suivant

/traiter 1er article


[tous contrls &&
Contrle
tous disponibles]

do/contrle
article

[tous contrls && pas tous en stock]

article reu
[pas tous en stock]

Transition

Evnement
Garde

article reu
[tous disponibles]

En attente

Livraison
do/initialiser
la livraison
livr

Livr
Transition

Activit

Etat

34

Diagramme d'tats

Diagrammes d'tats syntaxe

Syntaxe d'une transition

Syntaxe des activits que l'on peut associer un tat

vnement [garde] / 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
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
35
des transitions

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

[pas tous contrls]/


traiter larticle suivant

/traiter 1er article


[tous contrls &&
Contrle
tous disponibles]

do/contrle
article

[tous contrls && pas tous en stock]

article reu
[pas tous en stock]

articles reus
[tous disponibles]

En attente

annul
annul

Livraison
do/initialiser
la livraison
livr

Livr

annul
Annul

36

Diagramme d'tats

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)

Nom du super tat

/traiter 1er article

Contrle
[pas tous contrls]/
traiter larticle suivant

faire/contrle
article

[tous contrls && pas tous en stock]

article reu
[pas tous en stock]

[tous contrls &&


tous disponibles]

articles reus
[tous disponibles]

Actif

Livraison
faire/initialiser
la livraison
livr

En attente
annul
Annul

Livr

37

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
Annul

Autorisation

En attente

[paiement pas OK]

do/contrle
paiement

Contrle

[paiement OK]
Autoris

Livraison

Rejet

Livr
Autorisation

Autoris

tat de fin

Livr

Rejet

38

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

39

Diagramme d'activits

Diagrammes d'activits

A utiliser

Description des comportements parallles

Modlisation de flot de donnes (workflow)


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

Inconvnient

Pour analyser un cas d'utilisation


Pour comprendre un flot de donnes traversant plusieurs cas
d'utilisation

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

40

Diagramme d'activits

Diagrammes d'activits
trouver une
boisson

mettre le filtre
dans la machine

ajouter de leau
dans le rservoir

Test

[pas de caf]

[trouv caf]
mettre du caf
dans le filtre

Garde

prendre
des tasses

Barre de synchronisation

[pas de limonade]
[trouv limonade]
prendre de la
limonade

Activit

mettre en marche
la cafetire
^potcaf.en marche
prparer le caf
lumire teinte

verser le caf

Fin

boire la boisson

41

Diagramme d'activits
service
financier

traitement de la
commande

gestion du stock

rception
de commande
rception
articles

*[pour chaque article


de la commande]

autorisation
de paiement

[non OK]

Contrler la
ligne de cmde

prendre articles
en attente
*[pour chaque article choisi]

[en stock]
[OK]

annuler
commande

complter
la commande

affecter articles
la commande

[besoin rappro]
recommander
larticle

[toutes les lignes de


commandes satisfaites
et paiement autoris]

[tous les articles en


attente pourvus]
livrer la
commande

ajouter la reste
au stock

42

Diagramme de squence

Interaction entre objets

Chaque objet est reprsente par une ligne verticale

Temps s'coule de haut en bas

Prcision des messages changs entre les objets

Permet de spcifier l'ordonnancement temporel


des interactions entre les objets

Message = appel de mthode

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

43

Diagramme de squence

Diagramme de squence

:fentre d'entre
d'une commande

:commande

prepare()
Objet

:ligne de
commande

:article

*[pour toute les lignes de


commandes] prepare()

Message
enStock:=controle()

Itration

[enStock]retirer()
Condition

besoinrappro:=
besoinRappro()

Dlgation soi-mme
Ligne de vie
de lobjet

[besoinrappro]new

:article
rapprovis.

44

Diagramme de squence

Diagramme de squence (suite)


Retour

[besoinrappro]new
:article
rapprovis.

[enStock]new
:article
livr
Cration

45

Diagramme de squence

Diagrammes de squence et processus concurrents

Prcise explicitement quand les objets sont actifs (au sens flot
de contrle d'un processus / thread)
:transaction

Message asynchrone

new
Activation,
flot de
contrle

:coordinateur
de transaction
new

:premier
contrleur de
transaction
new

Ligne
de vie

Contrle d'une transaction


bancaire

:second
contrleur de
transaction

ok
Destruction de l'objet
tout est fait ?

ok

tout est fait ?


Valide

Dlgation soi-mme

46

Diagramme de squence

Cadre d'interaction

Cadre qui englobe une partie du diagamme de squence (un


fragment) pour dfinir un fonctionnement non squentiel

Types de cadres

Alt

Loop

Partie optionnelle (if-then) selon une garde

Par

Boucle

Opt

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

Deux parties en parallle

Region

Partie en excution mutuelle (processus / thread)

47

Diagramme de squence

Exemple d'utilisation des cadres

-- tir de [Fowler2004]
procedure distribuer
foreach (ligne)
if (produit.valeur
> $10000
spcial.distribuer
else
standard.distribuer
endif
end for
if (ncessiteConfirmation)
coursier.confirmer
end procedure

48

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

49

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
50
au niveau classe ...

Diagramme de collaboration (instance)


Diagramme de collaboration au niveau instance
:fentre d'entre
de commande
1:prepare()

Objet
Message

Numro de squence

:commande
1.1*[pour toutes les lignes]:prepare()

Dlgation
soi-mme

1.1.2.1: besoinrappro:=
besoinRappro()

1.1.1:enStock:=controle()
1.1.2:[enStock]retirer()

Itration

:article en stock

:ligne de commande
1.1.3:[enStock]new
:article livr

Garde

1.1.2.2:[besoinrappro]new
:article rapprovisionn

51

Diagramme de collaboration (classe)

Diagramme de collaboration au niveau classe

/source

:capteur temprature

Nom de rle
Rle

1 : changement_tat(valeur)

1
Contrleur
1

Utilisation de
collaboration

1.1 valide := vrif(valeur)


Classe

source

Rle jou
par un objet

Observation
observateur

observateur

[valide] *|| 1.2 : mise__jour(valeur)

*
/observateur

:afficheur

:log

Itration en parallle
Diagramme d'instances

Diagramme de collaboration
nomme Observation

Nom d'un rle : /roleName [: className]

52

Diagramme de collaboration

Informations 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) 53

Types 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

54

Diagrammes dynamiques conclusion

Diagrammes d'interaction (squence ou


collaboration)

Diagrammes d'tats

Pour comprendre la coopration entre les objets


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


55

Diagramme de vue globale d'interaction

Sorte de mlange
d'un diagramme de
squence et d'un
diagramme d'activit

56

Diagramme de temps

Evolution de l'tat du systme selon un point de


vue principalement temporel

57

Plan

Diagrammes fonctionnels

Diagrammes statiques

Diagrammes dynamiques

Diagrammes d'implmentation

De paquetages

De dploiement

58

Diagrammes d'implmentation

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
59

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

Idalement, seules les modifications de l'interface de la


classe affectent les autres classes
60

Diagramme de paquetages

Exemple de diagramme de paquetages

Note : les classes contenues dans les packages


ne sont pas reprsentes ici

Interface utilisateur
saisie commandes

Interface utilisateur
Liste diffusion

AWT

Dpendance

Package

Application
saisie commandes

Application
liste de diffusion

Commandes

Clients

61

Diagramme de dploiement

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
Serveur Unix

<< TCP/IP >>


Connexion

base de
donnes

Composant

Noeud

serveur
Client
Interface

PC sous Windows
UI

Dpendance

62

Conclusion 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
Intgration 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

Inconvnients 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
63
application