Vous êtes sur la page 1sur 82

Modlisation avec UML

Modlisation avec UML

Modlisation avec UML

Modlisation avec UML

Robert Ogor

Vue gnrale du cours


1) Introduction au langage de modlisation UML
points de vue et diagrammes
cas d'utilisation, analyse, conception, implmentation
2) Le diagramme des cas dutilisations
acteur
cas d'utilisation et scnario
3) Notion de classes et objets et leur diagramme
introduction aux classes, aux objets
notion de relation, de composition et d'hritage
recherche d'un diagramme de classes partir du cahier des charges
4) Modle dynamique
diagramme de squences, de collaboration, d'
tat et d'
activit
ralisation des cas d'
utilisation par les diagrammes de squences
ralisation des cas d'
utilisation par les diagrammes de collaboration
5) Conception
diagramme de dploiement et de composants
6) Le langage de contrainte OCL

Robert Ogor

mai 2003

Modlisation avec UML


Modlisation avec UML

1) Introduction au langage de
modlisation UML

Robert Ogor

Modlisation avec UML

Unified Modeling language


OMT-2
James
Rumbaugh
OOPSLA 95

Booch93

OOSE

Grady Booch

Ivar Jacobson

Partenaires Divers

UML 0.8

Task Force
WWW Juin96

UML 0.9

Propos un standard OMG fin1997

Standard OMG, ADTF fin1997

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

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

Quapporte la modlisation
objet
Plus grande indpendance du modle par
rapport aux fonctionnalits demandes.

Des fonctionnalits peuvent tre rajoutes ou


modifies, le modle objet ne change pas.

Plus proche du monde rel.

Robert Ogor

Modlisation avec UML

Les objectifs dUML


Reprsenter des systmes entiers
Etablir un couplage explicite entre les concepts et les
artefacts excutables
Prendre en compte les facteurs dchelle
Crer un langage de modlisation utilisable la fois
par les humains et les machines
Recherche dun langage commun :
Utilisable par toutes les mthodes
Adapt toutes les phases du dveloppement
Compatible avec toutes les techniques de ralisation
Robert Ogor

mai 2003

Modlisation avec UML


Modlisation avec UML

UML un langage
UML n est

pas une mthode

UML est un langage de modlisation objet


UML a t adopt par

toutes les mthodes

objet

UML est dans le domaine public, cest une


norme

Robert Ogor

Modlisation avec UML

10

UML un langage pour


visualiser

chaque symbole graphique a une smantique

spcifier

de manire prcise et complte, sans ambigut,

construire

les classes, les relations SQL peuvent tre gnres


automatiquement

documenter

les diffrents diagrammes, notes, contraintes,

exigences seront prsents dans un document.

Robert Ogor

mai 2003

Modlisation avec UML


Modlisation avec UML

11

UML et les domaines


dutilisation
Systmes d'information des entreprises
Les Banques et les services financiers
Tlcommunications
Transport
Dfense et arospatiale
Scientifique
Applications distribues par le WEB

Robert Ogor

Modlisation avec UML

12

Les trois lments de base en


UML
1) les blocs de base pour construire

les entits utilises


la notion de relation
les diagrammes

Entits structurelles
Entits de comportement
Entits de regroupement
Entit d'
annotation

2) les rgles observer pour utiliser ces blocs de base

rgles smantiques
rgles de prsentation

3) les mcanismes communs

spcification
prsentation
extension des modles

Robert Ogor

mai 2003

Modlisation avec UML


Modlisation avec UML

13

Les entits structurelles


Chien
race
age
couleur

Comparable
Interface

observateur

emprunte

Collaboration

Cas dutilisation

aboyer()
mordre ()
obir ()
Classe
Noyau

Producteur
suspend()
run()

Serveur

Nud
Composant

Classe Active

Robert Ogor

Modlisation avec UML

14

Les entits de comportement


appel

emprunt

Message

Etat

Les entits de groupement

Le livre a t
emprunt

Accs BD

Note
Paquetage

Les entits de notation

Robert Ogor

mai 2003

Modlisation avec UML


Modlisation avec UML

15

Modlisation avec UML

16

Les relations
dpendance

association

hritage

ralisation

Robert Ogor

Strotypes et icnes associes


<<contrle>>
Gestion Commande
gestion Commande

<<entit>>
Stockage Commande
stockage Commande

<<frontire>>
Rception Commande
rception Commande
Robert Ogor

mai 2003

Modlisation avec UML


Modlisation avec UML

17

Les 9 diagrammes en UML


Diagrammes

Cas
d'utilisation

Classes

Objets

EtatsTransitions

Squences

Dploiement

Activit

Composants

Collaboration

Robert Ogor

Modlisation avec UML

18

5 faons de voir un systme


(4+1 vues de Kruchten)
Aspect statique :
classes et objets
paquetages

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

Modlisation avec UML


Modlisation avec UML

19

Point de vue des


cas dutilisation
Vue du systme par ses utilisateurs finaux
Regroupe le comportement du systme selon
Priorit: critique, important, accessoire
Risques circonscrire
Options disponibles
Couverture de larchitecture
Autres objectifs tactiques et contraintes

Robert Ogor

Modlisation avec UML

20

Point de vue logique


Dcomposition oriente-objet
Dcomposition en objets et classes
Regroupement en paquetages.
Connexions par hritage, association, etc.
Accent sur labstraction, lencapsulation, luniformit.
Ralisation des scnarios des cas d'utilisation.

Robert Ogor

10

mai 2003

Modlisation avec UML


Modlisation avec UML

21

Point de vue processus


Dcomposition en tches et processus
Regroupement des groupes de processus
Communication
Information sur les caractristiques suivantes
Disponibilit, fiabilit
Intgrit, performance
Contrle

Robert Ogor

Modlisation avec UML

22

Point de vue implantation


Dcomposition en modules et niveaux
Regroupement de modules en paquetages
Organisation des sous-systmes en niveaux pour :
Rduire le couplage et la visibilit
Augmenter la robustesse

Information sur les caractristiques suivantes :


Facilit de dveloppement
Potentiel de rutilisation
Gestion de configuration
Robert Ogor

11

mai 2003

Modlisation avec UML


Modlisation avec UML

23

Point de vue dploiement


Dcomposition en nuds dexcution
Rle dun nud
Inter-connectivit, topologie
Information sur les caractristiques suivantes :
Performance, disponibilit
Installation, maintenance

Robert Ogor

Modlisation avec UML

24

Les trois composantes dune


modlisation
Modle Fonctionnel
Que fait le systme
Aspect fonctionnel :
diagrammes des cas d'
utilisation

Aspect dynamique :
diagrammes d'
interaction
(squences, collaboration),
d'
tats-transitions et d'
activit
Squencement des actions
dans le systme

Modle structurel (objet)


Sur quoi le systme agit
Modle temporel

Aspect statique :
diagramme de
classes et d'
objets

Robert Ogor

12

mai 2003

Modlisation avec UML


Modlisation avec UML

Phases de la modlisation
Expression des besoins
Analyse

25

Cahier des
charges

S accorder sur ce qui doit tre fait dans le systme

Comprendre les besoins et les dcrire dans le systme

Conception
Implmentation
Test

S accorder sur la manire dont le systme doit tre construit

Codage du rsultat de la conception

Le systme est-il conforme au cahier des charges ?


Code
excutable

Robert Ogor

Modlisation avec UML

26

Rle de l'
expression des
besoins

Permettre une meilleure comprhension du


systme

Comprendre et structurer les besoins du client

clarifier, filtrer et organiser les besoins, ne pas chercher lexhaustivit

Une fois identifis et structurs, ces besoins :

dfinissent le contour du systme modliser (ils prcisent le but


atteindre),
permettent d'identifier les fonctionnalits principales (critiques) du
systme.

Robert Ogor

13

mai 2003

Modlisation avec UML


Modlisation avec UML

27

Expression des besoins


Comprendre le contexte du systme en

dfinissant un modle du domaine et du mtier


Recenser les besoins fonctionnels et les dfinir
par des cas d'
utilisations
Noter les contraintes, exigences non
fonctionnelles.

Le modle du domaine regroupe les objets qui se situent


dans le contexte du systme :
- entits existantes ou vnements qui s'
y produisent.
Robert Ogor

Modlisation avec UML

28

Exigences non fonctionnelles


Contraintes de concurrence
Contraintes de temps de rponse
Contraintes de distribution
Contraintes de performance
Contraintes de rpartition

Robert Ogor

14

mai 2003

Modlisation avec UML


Modlisation avec UML

30

Dpendances entre phases de


modlisation
modle cas
d'
utilisation

vrifi par

Modle
de test

spcifi par
implment par

ralis par

Modle
d'
analyse

Modle
d'
implmentation
Modle de
conception

Robert Ogor

Modlisation avec UML

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.

Cependant pour rester comprhensible par les clients ou utilisateurs, il


n'
intervient que des entits du domaine (mtier) considr.

Elle sert d'interface, avec l'expression des besoins, aux dialogues

et

aux contrats avec les clients et les utilisateurs.

L'analyse doit servir de support pour la conception, l'implmentation et


la maintenance.

Robert Ogor

15

mai 2003

Modlisation avec UML


Modlisation avec UML

32

Expression des besoins :


vue oriente utilisateur
Dialogue clients et
futurs utilisateurs

Cahier des
charges

Cas
dutilisation

Systme

Scnarios
d'
utilisation

Dfinition
des
fonctionnalits
du systme

Robert Ogor

Modlisation avec UML

33

Analyse du systme
Cahier des
charges

Systme

Cas
dutilisation

Propagation des
vnements
dans le systme

Diagramme
de
classes

Diagramme de collaboration ou de squences

Diagramme
d'tats-transitions
Robert Ogor

16

mai 2003

Modlisation avec UML


Modlisation avec UML

34

La notation graphique
BUT :

Modliser les objets, les relations entre objets,


les interactions avec le systme.

Servir de support de communication entre


l'
analyste, le client, et les utilisateurs.

Robert Ogor

Modlisation avec UML

35

Cahier des charges : gestion de


bibliothque
Un grant de bibliothque dsire automatiser la gestion des prts.
Il commande un logiciel permettant aux utilisateurs de connatre les livres

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

nouveaux livres. Il leur est possible de connatre l'


ensemble des prts
raliss dans la bibliothque.

Robert Ogor

17

mai 2003

Modlisation avec UML


Modlisation avec UML

36

2) Le diagramme des Use Cases


ou des cas d utilisation

Ce que doit faire le systme


sans spcifier comment il le fait

Robert Ogor

Modlisation avec UML

37

But des Use Cases


Les cas d'
utilisation reprsentent les
fonctionnalits que le systme doit savoir faire.
Systme

Chaque cas d'


utilisation peut tre complt par
un ensemble d'
interactions successives d'
une
entit en dehors du systme (lutilisateur) avec le
systme lui mme.
Les Uses Cases permettent :
De connatre le comportement du systme sans spcifier comment ce
comportement sera ralis.
De dfinir les limites prcises du systme
Au dveloppeur de bien comprendre l'
attente des utilisateurs et les
experts du domaine.
De plus les Use Cases sont :
Des instruments de validation et de test du systme en cours et en fin
de construction.
Robert Ogor

18

mai 2003

Modlisation avec UML


Modlisation avec UML

38

Modle des cas d'


utilisations
Un diagramme de cas dutilisation dfinit :
le systme
les acteurs
les cas d'utilisations
les liens entre acteurs et cas d'utilisations

Un modle de cas d'utilisation se dfinit par :

des diagrammes de cas dutilisation


une description textuelle des scnarios d'utilisation
une description de ces scnarios par :
les diagrammes de squences
les diagrammes de collaboration

Robert Ogor

Modlisation avec UML

39

Les Acteurs
Un acteur reprsente une personne ou un priphrique qui joue un

rle (interagit) avec le systme.


Relation entre acteurs : gnralisation (hritage)

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

Modlisation avec UML


Modlisation avec UML

40

Les cas dutilisation (use-case)

Un cas dutilisation est un moyen de reprsenter les diffrentes possibilits


d'
utiliser un systme.
Il exprime toujours une suite d'
interactions entre un acteur et l'
application.
Il dfinit une fonctionnalit utilisable par un acteur.

Emprunter
Regarder la liste
des livres
Rserver

Robert Ogor

Modlisation avec UML

41

Organisation des Use Cases :


include
La relation "include" prcise qu'un cas dutilisation contient
le comportement dfini dans un autre cas dutilisation.

Cette

relation permet de mettre en commun des


comportements communs plusieurs cas d'
utilisation..

Emprunt

<<include>>
Identification
abonn
<<include>>

Rservation

Robert Ogor

20

mai 2003

Modlisation avec UML


Modlisation avec UML

42

Organisation des Use Cases :


extend

La relation "extend" prcise qu'un cas dutilisation peut dans certains


cas augmenter le comportement d'
un autre cas d'
utilisation.

Une condition devra valider cette augmentation.


Le point d'utilisation de cette augmentation peut tre dfini dans
un "point d'
extension".

Rservation
Extensionpoints
avant le choix du livre

Regarder liste des


livres
<<extend>>
avant le choix du livre

Dans cet exemple, le cas d'utilisation "Regarder la liste des livres"

augmente le cas d'


utilisation d'
une rservation, avant le choix du livre,
si l'
utilisateur en fait la demande.

Robert Ogor

Modlisation avec UML

43

Organisation des Use Cases :


gnralisation
Cette relation "est un" introduit la notion dhritage.
Les cas d'utilisation "Vrification par mot passe" et

"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

Modlisation avec UML


Modlisation avec UML

44

Modlisation dun systme:


obtenir les cas d'
utilisation
Identifier les acteurs qui utilisent, qui grent, qui

excutent des fonctions spcifiques.


Organiser les acteurs par relation dhritage.
Pour chaque acteur, rechercher les cas dutilisation
avec le systme. En particulier, ceux qui modifient
ltat du systme ou qui attendent une rponse du
systme.
Ne pas oublier les variantes dinteractions (cas
derreur, cas interdits).
Organiser ces interactions par hritage, par
utilisation et par extension.

Robert Ogor

Modlisation avec UML

45

Le systme

Le systme dfinit l'application informatique, il ne contient


donc pas les acteurs, mais les cas d'
utilisation et leur
associations
Gestion de bibliothque
Rserver un livre
Connatre les livres emprunts

Connatre les livres prsents


Ajouter de nouveaux livres
Remettre un livre
Raliser un emprunt

Robert Ogor

22

mai 2003

Modlisation avec UML


Modlisation avec UML

46

Les diagrammes de cas dutilisation


Bibliothque
Rserver un livre
Client

Acteurs

Cas
d utilisation

Connatre les livres emprunts

Connatre les livres prsents

Ajouter de nouveaux livres


Remettre un livre
Employ
Raliser un emprunt

Robert Ogor

Modlisation avec UML

47

Les diagrammes de cas dutilisation


Bibliothque
Connatre les livres emprunts
<< include >>
Rserver un livre
Extension point
avant la rservation

<<include>>
Identification

Client
<<extends>>
Connatre les livres prsents

Ajouter de nouveaux livres

Identification
par carte
Identification
par mot de passe

Remettre un livre
Employ
Raliser un emprunt

Robert Ogor

23

mai 2003

Modlisation avec UML


Modlisation avec UML

48

Scnarios d'
un cas d'
utilisation
La description dun cas dutilisation se fait par des scnarios

qui dfinissent la suite logique des interactions qui


constituent ce cas.
On peut dfinir des scnarios simples ou des scnarios plus
dtaills faisant intervenir les variantes, les cas d'
erreurs,
etc.
Cette description se fait de manire simple, par un texte
comprhensible par les personnes du domaine de
l'
application.
Elle prcise ce que fait l'acteur et ce que fait le systme
La description dtaille pourra prciser les contraintes de
l'
acteur et celles du systme.
Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

50

Scnarios d'
un cas d'
utilisation
Rservation d'
un livre

description dtaille

Pr-conditions: Le client doit tre inscrit la bibliothque


Le client ne doit pas avoir atteint le nombre maximum de
rservation
Un exemplaire du livre doit tre enregistr

Post-conditions: (Si l'


opration s'
est bien droule)
Le client a une rservation supplmentaire
Le nombre d'
exemplaires disponibles du livre est
dcrment de 1

Robert Ogor

Modlisation avec UML

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

en (6) le client demande connatre les livres prsents

variante 2

en (4) le client n'


est pas reconnu, dans ce cas, tant qu'
il n'
est pas
reconnu, on lui redemande de s'
authentifier

variante 3

en (4) le client est reconnu, mais le mot de passe est incorrect,


il peut avoir 5 essais, par la suite le client sera interdit pendant 1 heure.

variante 4

en (4) le client n'


a plus le droit de rserver

variante 5

en (7) le livre n'


est pas libre

Robert Ogor

25

mai 2003

Modlisation avec UML


Modlisation avec UML

52

Scnario par diagramme de


squences

Suite aux descriptions textuelles, le scnario peut tre


reprsent en utilisant un diagramme de squences.
Le diagramme de squences permet :

de visualiser laspect temporel des interactions


de connatre le sens des interactions (acteur vers systme ou contraire)
Client

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

Modlisation avec UML

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

Refus trop de livres rservs

Robert Ogor

26

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

55

Diagramme de squences Use


Case Retirer de l'
argent
Afficher message d accueil
Client

:Distributeur de billets

Insre la carte
Demande de mot de passe
Entre mot de passe

Retirer
l argent

Demande type opration


Entre demande retrait
Demande somme
Entre somme
Distribue l'
argent
Demande prendre les billets
Prendre les billets
Imprimer le reu
Ejecter la carte
Demande de prendre la carte
Prendre la carte
Afficher message d accueil

Robert Ogor

27

mai 2003

Modlisation avec UML


Modlisation avec UML

56

3) Concepts objets et
diagrammes de classes

Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

58

La classe et ses membres


Personne
nom : String
ge : Integer
adresse : String
mot de passe : String
nbre livres emprunts : Integer

0<= nbre livres emprunts <=5

<<constructeur>>
Personne(nom:String, ge : Integer
adresse:String, motDePasse:String)
<<caractristiques>>
changerAdresse (String)
<<authentification>>
vrifierMotDePasse(String) : Boolean
changerMotDePasse(old:String,
new:String)
Robert Ogor

Modlisation avec UML

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

nom = Alain Dupont


age = 45
adresse = France
mot de passe = 4RSA67
nbre livres emprunts = 4

Attributs

Comportement

:Personne

: Personne
Andr Rou
25
France
6FT34
0

Robert Ogor

29

mai 2003

Modlisation avec UML


Modlisation avec UML

60

Protection des attributs et des


oprations : principe de l'
encapsulation
Peut-on accder tous les attributs ou toutes les
mthodes d'
un objet ? NON
La classe dfinit ce qui est accessible.
C'
est le principe de l'
encapsulation.
Un objet complexe ne peut tre utilis qu'
au travers de ce
qui est accessible.
Exemple :
On ne peut utiliser une voiture qu' travers son volant,
son frein, son acclrateur, etc.
Laccs au carburateur est impossible sauf par les
mthodes qui le font de manire cohrente (mthode
acclrer de lacclrateur).
Robert Ogor

Modlisation avec UML

61

Protection des attributs et des


oprations : usage et notation

Les attributs sont en gnral inaccessibles (secret).


Ils sont alors qualifis de :

"protected" (notation UML : # )


ou "private" (notation UML: - )

Leur lecture ou modification n'est possible qu'au travers de


certaines oprations (accesseurs : changerAdresse(),
obtenirAge(), etc.)

Les oprations sont en gnral accessibles


(publiques) :

Elles sont alors qualifies de :


"public" (notation UML: + )

Certaines oprations peuvent cependant tre prives


et certains attributs peuvent tre publics (non
souhaitable / principe dencapsulation)

Robert Ogor

30

mai 2003

Modlisation avec UML


Modlisation avec UML

62

Protection des attributs et des


oprations : notation UML
CLASSE

Personne

+ : attribut public
# : attribut protected
- : attribut private

- nom
- ge
- adresse

# changerAdresse()
# obtenirRue()
+ obtenirAge()

+ : opration public
# : opration protected
- : opration private

Robert Ogor

Modlisation avec UML

63

Attributs et oprations de classe


Personne

Le nombre de livres empruntables n'


est pas
une caractristique d'Alain Dupont (objet).
C'
est une caractristique valable pour
l'
ensemble des personnes (la classe).

- nom
- age
- adresse
- mot de passe
- nbreLivresEmprunts
- nbreLivresEmpruntables = 5

une_personne:Personne
+ changerAdresse()
+ obtenirAge()
+ obtenirAdresse()
+ vrifierMotDePasse()

nom = Alain Dupont


age = 45
adresse = France
mot de passe = 4RSA67
nbreLivresEmprunts= 4

+ getNbLivresEmpruntables()

La mthode getNbLivresEmpruntables() utilise la valeur


nbreLivresEmpruntables connue par la classe. Cette mthode peut tre
applique directement la classe Personne et bien sr aussi aux objets
instances de Personne.
Robert Ogor

31

mai 2003

Modlisation avec UML


Modlisation avec UML

64

Attributs et oprations de classe


Notation UML
CLASSE

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

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

66

Modle du type abstrait Pile

PileEntier
- contenu
- hauteur
- taille
+empiler (valeur : Integer)
+dpiler ()
+elementSommet () : Integer
+nombreElements : Integer
+estVide : Boolean

Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

69

Association entre classes


Nom dassociation
Livre

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

Modlisation avec UML


Modlisation avec UML

70

Multiplicit, nom dassociation, nom


de rle
nom de rle
Socit
nom
adresse

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

Modlisation avec UML

71

Lien entre objets

constructeur : Socit
nom : Peugeot
adresse : Sochaux

emploie
contrematre : Personne
employeur

employ

nom = Dupont

Robert Ogor

35

mai 2003

Modlisation avec UML


Modlisation avec UML

72

Lien entre objets

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

Modlisation avec UML

73

Classe dassociation
Socit
Nom
adresse

Personne

emploie

0..1

Nom
adresse
grade
salaire

Emploi
grade
salaire

Classe dassociation

Robert Ogor

36

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

75

Contraintes sur les associations

CompteChque

appartient

Personne

{or}
Socit

1
Confrence
1

assiste

{sous-ensemble} Personne
organise

Robert Ogor

37

mai 2003

Modlisation avec UML


Modlisation avec UML

77

Attribut driv
Personne
Nom
adresse
grade
dateNaissance
/age

{Contexte Personne
Inv : age = dateCourante - dateNaissance }

Attribut driv

Robert Ogor

Modlisation avec UML

78

Les associations ternaires


Cours

Cours

Enseignant

Salle
Elve

Robert Ogor

38

mai 2003

Modlisation avec UML


Modlisation avec UML

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.

Rgles permettant de choisir une agrgation :


Est ce une partie de?
Les oprations appliques l'
ensemble sont
elles appliques l'
lment?
Les changements d'
tats sont-ils lis ?

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

Modlisation avec UML

80

Composition : agrgation forte


La composition est une agrgation forte qui lie les cycles de vie
entre le compos (ensemble) et les composants (lements).
Le choix entre composition et agrgation peut tre laiss la phase
de conception.

Document

* Paragraphe

Voiture

Phrase

Roue

Carrosserie

1 Moteur

2-5

Porte

Habitacle

Robert Ogor

39

mai 2003

Modlisation avec UML


Modlisation avec UML

81

Association, agrgation ou
composition ?
1.

Rgles obligatoires pour l'


agrgation :

2.

Est ce une partie de?


Les oprations appliques au compos sont elles appliques au composant?
Les changements d'
tats sont-ils lis ?

Rgles obligatoires pour la composition :

La suppression du compos entrane t-elle la suppression des composants ?


Les attributs du compos sont-ils utiliss dans les composants ?
Les composants sont des instances du compos ?
Un composant ne peut pas tre en relation avec d'
autres classes externes au
compos.

???

Magasin

gre
*

Client

gre

Magasin

Client
Magasin

gre

Client

Robert Ogor

Modlisation avec UML

82

Composition
Fentre
scollbar

Ascenceur

1 contrle 1 contenu
Bordure
Panel
Fentre
scollbar [2]: Ascenceur
contrle : Bordure
contenu : Panel

Robert Ogor

40

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

Elments sur une association


1
Polygone
+contenu

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

Modlisation avec UML


Modlisation avec UML

85

3) Concepts objets et diagrammes


de classes

Hritage

Robert Ogor

Modlisation avec UML

86

Hritage : buts et principes 1/3


Nouvelles classes drives de
classes existantes
BUT
Permettre une rutilisation optimale des classes dj
crites, utilises et valides
rutilisation de la structure des donnes hrites
rutilisation du code des services hrits

PRINCIPE
Ne pas modifier les classes dj crites cela modifierait
l'
utilisation qui en est faite.

ne pas hsiter crer des classes, extensions d'autres dj


valides

Robert Ogor

42

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

88

Hritage : buts et principes 2/3


Ajout dune classe de base (analyse)
BUT 2
Permettre une factorisation des caractristiques et des
comportements communs plusieurs classes

mise en commun des structure des donnes


mise en commun du code des services

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

Modlisation avec UML


Modlisation avec UML

89

Hritage : gnralisation
Factorisation des proprits

Permanent

Vacataire

numroBureau
spcialit
nombreCours
nom
numroScu

nombreVacation
nombreCours
spcialit
nom
numroScu

Robert Ogor

Modlisation avec UML

90

Hritage : gnralisation
Factorisation des proprits

Enseignant
nombreCours
Spcialit
nom
numroScu

Permanent
numroBureau

Vacataire
nombreVacation

Robert Ogor

44

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

93

Hritage multiple et rpt


Vhicule
{overlapping}
Vhicule terrestre

Vhicule marin

Voiture amphibie

Voiture

Bateau

Vhicule
Vhicule marin

Vhicule terrestre
Voiture amphibie
Voiture

Bateau

Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

96

Hritage : buts et principes 3/3


Polymorphisme
BUT 3
Crer des sous-types (sous-classes). Une sous-classe
sera du mme type que la classe dont elle hrite
(super-classe).
Ceci permet de mettre en uvre le polymorphisme et la
liaison dynamique

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

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

98

Hritage et sous typage


Personne
Vendeur

Enseignant

Avocat

Permanent
Vacataire

Un objet Personne peut dsigner


une instance des classes :
Personne
Avocat
Vendeur
Enseignant
Vacataire
Permanent

Conformante

Un objet Enseignant peut dsigner


une instance des classes :
Enseignant
Vacataire
Permanent
Il ne peut pas dsigner une instance
des classes :
Personne
Avocat
Vendeur

Robert Ogor

48

mai 2003

Modlisation avec UML


Modlisation avec UML

99

Conformante
Premire dfinition :

Se dit dune classe plus spcialise

Exemple

Un Enseignant est conformant une Personne

Utilisation

Un objet conformant un autre peut tre utilis sa


place sans pour autant dclencher d'
erreur de type

tant plus spcialis, il hrite de tous les services


fournis par sa super-classe...

Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

101

Conformante et liaison dynamique


Personne

void acheterMaison(Personne acheteur)


{
acheteur.changerAdresse();
};
Personne jean;
Avocat pierre;
Vacataire paul;

nom
numroSecu
changerAdresse()

Avocat
nombreAffaires
adresseCabinet

Enseignant

changerAdresse()

nombre_cours
spcialit

acheterMaison(jean) ;
acheterMaison(pierre) ;
acheterMaison(paul) ;

changerAdresse()

Vacataire
Quelle mthode ?

nombreVacation

Robert Ogor

Modlisation avec UML

102

Liaison dynamique et classe


abstraite
void acheteruvre ( Media achat )
{
achat.afficher();
};

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

Modlisation avec UML


Modlisation avec UML

103

Les Interfaces
Une interface permet de dcrire le comportement d'une entit

(classe, paquetage ou composant ), c'


est dire un savoir faire sous
la forme dune liste doprations.

Une interface ne peut donner lieu aucune implmentation.


Une interface est quivalente une classe abstraite sans attributs o
toutes les mthodes sont abstraites.

Une classe peut dclarer qu'elle implmente une interface. Elle

doit alors implmenter toutes les oprations de cette interface. Elle


peut ensuite tre utilise partout o ce comportement est exig.

Robert Ogor

Modlisation avec UML

104

Interface
<<interface>>
Dplaable
opration,
mthode,
service
sans corps

saPlace ()
avancer ()
reculer ()
monter ()
descendre ()

Une interface nest PAS une classe


Cest une liste de services

Elle ne peut pas servir crer


un objet

Une interface exprime un savoir faire

TYPE

CLASSE + INTERFACE

Robert Ogor

51

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

106

Implmentation et dpendance
Transporteur

Polygone
sommets
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()
primtre ()

Dplaable

Savoir Faire

implmente

exige (dpendance)

Robert Ogor

52

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

108

Interface : autre reprsentation


<<interface>>
Comparable

<<interface>>
Hashable

estEgal()
estDiffrent()
estPlusPetit()
estPlusGrand()

hashcode()
Exige ce comportement

Hashable
String
estEgal()
hashcode()

contient

TableHashCode

Comparable

Robert Ogor

53

mai 2003

Modlisation avec UML


Modlisation avec UML

Utilisation dinterface
void manipuler(Dplaable element)
{
element.avancer(8);
element.monter(4);
};

Personne jean;
Polygone poly;

109

Une interface sutilise pour


dsigner un objet.
Il dfinit l'
ensemble des
services que doit savoir cet
objet.

<<interface>>
Dplaable

Polygone

Personne

Personne et Polygone
savent faire les oprations
dfinies dans Dplaable

obj. manipuler(jean) ;

// licite car Personne implmente Dplaable

obj. manipuler(poly) ;

// licite car Polygone implmente Dplaable

Robert Ogor

Modlisation avec UML

110

Les Paquetages
Une application est constitue de plusieurs classes, des dizaines

ou des centaines. Il est important de les organiser en groupes (en


fonction de certains critres surtout logiques).
C'
est le paquetage (package) qui permet ce regroupement.

Un paquetage regroupe des classes, des interfaces, des


paquetages.

Il permet d'encapsuler certains lments de la modlisation. Un

lment du paquetage peut tre inaccessible de l'


extrieur du
paquetage, il n'
est alors connu que par les lments du mme
paquetage.
Il met en uvre un espace de nommage

Robert Ogor

54

mai 2003

Modlisation avec UML


Modlisation avec UML

Association entre
paquetage
Editeur

112

access : accs aux lments


publics en appelant l'lment par
son espace de nommage
Controller
<<access>>

<<import>>

<<access>>

Diagram
Elements
Domain
Element

<<import>>

import : accs aux lments


publics en permettant de nommer
l'lment lui mme sans utiliser
l'espace de nommage

<<import>>
Partie
Graphique

partie
Motif

<<import>>

Gestion
Graphique

Motif

Partie
Window

<<import>>

Microsoft
Window

Robert Ogor

Modlisation avec UML

113

paquetage : import et
access

java

Editeur

<<access>>

event : java::awt::ActionEvent

awt
event
Simulateur

ActionEvent

<<import>>

event :
ActionEvent

Robert Ogor

55

mai 2003

Modlisation avec UML


Modlisation avec UML

115

Diagrammes de classes de la
gestion de bibliothque,
recherche partir du cahier des
charges.
Recherche par responsabilit

Robert Ogor

Modlisation avec UML

116

Phases de la modlisation objet


- Identifier les classes candidates.
- Prparer le dictionnaire de donnes : classes retenues.
- Identifier les associations entre classes (en incluant les agrgations).
- Identifier les attributs.
- Organiser et simplifier les classes en utilisant l'
hritage.
- Supprimer les associations inutiles
- Vrifier que le diagramme inclut toutes les demandes du cahier des
charges.
- Itrer et affiner le modle.
- Grouper les classes en modules (paquetages).

Robert Ogor

56

mai 2003

Modlisation avec UML


Modlisation avec UML

117

Identifier les classes : les classes candidates


Un grant de bibliothque dsire automatiser la gestion des prts.
Il commande un logiciel permettant aux utilisateurs de connatre les livres
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
nouveaux livres. Il leur est possible de connatre l'
ensemble des prts
raliss dans la bibliothque

Grant bibliothque gestion prts logiciel utilisateurs


livres
adhrent liste mot de passe inscription emprunt
employs emprunteur ensemble
Robert Ogor

Modlisation avec UML

118

Les classes retenues


Grant
bibliothque
gestion
prts
les prts
logiciel
utilisateurs
livres
adhrent
identifie
liste
mot de passe
Inscription
emprunt
employs
emprunteur
Ensemble

non pertinente, n'


intervient pas
oui responsabilit : grer les livres, adhrents, prts
non vague
oui responsabilit : contenir les infos et actions sur
non vague
(choix entre utilisateur, adhrent, emprunteur )
oui responsabilit : permettre de connatre son tat
oui responsabilit : permettre la personne d'
tre
non implmentation ou conception
non attribut
non action
non action
oui responsabilit : reconnatre qui a fait un prt, etc..
(choix entre utilisateur, adhrent, emprunteur )
non implmentation ou conception

Robert Ogor

57

mai 2003

Modlisation avec UML


Modlisation avec UML

119

Dictionnaire des donnes


bibliothque : organisme grant une collection de
livres qui peuvent tre emprunts par ses
adhrents. Une bibliothque est gre par ses
employs.
prt : un prt est caractris par le numro du
livre, la date, la dure. Il ne peut tre fait que par
un adhrent.
livre ouvrage pouvant tre emprunt.
adhrent personne inscrite la bibliothque.
employ personne travaillant la bibliothque.

Robert Ogor

Modlisation avec UML

120

Chercher les associations


Un grant de bibliothque dsire automatiser la gestion des prts.
Il commande un logiciel permettant aux utilisateurs de connatre les livres

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

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
Associations sous entendues

Une adhrent est inscrit la bibliothque.


La bibliothque contient des livres
Robert Ogor

58

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

122

Chercher les attributs


1

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

Modlisation avec UML


Modlisation avec UML

123

Gnraliser par hritage


1

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

Modlisation avec UML

127

4) Modle dynamique
Diagramme de squence
Diagramme de collaboration
Diagramme dtats

Robert Ogor

60

mai 2003

Modlisation avec UML


Modlisation avec UML

128

Modle dynamique :
Le modle dynamique montre le comportement
du systme et l'volution des objets dans le
temps.

Systme

Le modle dynamique va identifier les diffrents vnements venant du


monde externe et montrer l'enchanement dans le systme que provoquent
ces vnements externes.
vnement :
Quelque chose qui se produit un moment donn dans le temps, et qui n'a
pas de dure.
exemples :

lutilisateur dcroche son tlphone,


le conducteur appuie sur un bouton.

Robert Ogor

Modlisation avec UML

129

But du modle dynamique


Trouver les relations temporelles et
vnementielles entre les objets.

Dfinir les tats des objets qui dterminent une


raction diffrente face un vnement.

Trouver les actions effectues par les objets suite


la rception dvnements

Robert Ogor

61

mai 2003

Modlisation avec UML


Modlisation avec UML

130

Place du modle dynamique dans le


processus de modlisation
Cahier des
charges

Cas
d'utilisation
Scnarios
d'utilisation

Diagramme
de
classes

Conception

Diagramme de
collaboration

Diagramme de
squences

Diagramme

d'tats

Robert Ogor

Modlisation avec UML

131

Classification des vnements


vnement
synchrone

appel mthode

asynchrone

signal externe
par acteur

exception

horloge

Robert Ogor

62

mai 2003

Modlisation avec UML


Modlisation avec UML

132

Les types de messages


synchrone

Lexpditeur est bloqu pendant le traitement du


message par l'
expditeur.

retour d'
appel

Un message synchrone peut tre un appel de


procdure, le retour peut tre reprsent (optionnel, le
retour est implicite)
L'
expditeur continue son excution pendant le
traitement du message

asynchrone
<=UML1.3
>=UML1.4

minut

Comme le synchrone, mais un chien de garde est


positionn, c'
est dire que l'
expditeur se rveille au
bout d'
un certain temps s'
il ne reoit pas de rponse.

Robert Ogor

Modlisation avec UML

133

Diagramme de collaboration ou
diagramme de squences

Reprsente la collaboration entre objets pour

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

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

135

Contrle et diagrammes de squences


o2:C2

o1:C1
opration()

Objets existants

o4:C4

Cration de l'
objet
[x>0] cration (x)

Branche de
contrle

objet3:C3

[x<0] appel G (x)

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

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

137

Ajout des oprations dans les classes


Bibliothque

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

Modlisation avec UML


Modlisation avec UML

140

Les Diagrammes de
collaborations entre classes

Robert Ogor

Modlisation avec UML

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.

Ce modle explique la coopration entre objets pour la ralisation d'une

fonctionnalit, cette coopration implique les diffrents vnements qui se


propagent d'
un objet l'
autre. Un objet doit avoir une mthode approprie
pour traiter chaque vnement qu'
il reoit (message).

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

Modlisation avec UML


Modlisation avec UML

142

Diagramme de collaboration
Rserver un livre
message

ordre

paramtres

1 a := authentifierAdherent (nom, motPasse)


3 [b2] l := trouverLivre(nomLivre)
4 [l] reserver(l,a)
1.1 a := trouverAdherent (nom,motPasse)

reserverLivre(nom,
motPasse, nomLivre)

: Systme
Prt

: Bibliothque
sens de l'
appel

2 : [a] b2=peutReserver(motPasse)

objet
4.1 : reserver(a)

1.2 b := authentifier (motPasse)


a: Adhrent
4.1.1 : reserver(l)

l: Livre

Robert Ogor

Modlisation avec UML

144

Diagrammes de classes de la
gestion de bibliothque,
recherche partir des cas
d'
utilisation

Robert Ogor

67

mai 2003

Modlisation avec UML


Modlisation avec UML

145

Dfinition de classes d'


analyses
On s'
aperoit que dans l'
analyse d'
un problmes trois types de classes apparaissent
couramment:
classe frontire
La classe qui permet au systme de communiquer avec le monde rel,
elle est la frontire du systme, elle se conoit en gnral par une
interface graphique, nous la reprsentons par l'
icne suivante

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

Modlisation avec UML

147

Ralisation analyse cas


d'
utilisation

gestion rservations

abonn

Utilisateurs

IU rservation
Livres

Robert Ogor

68

mai 2003

Modlisation avec UML


Modlisation avec UML

151

Recherche des Etats

Ltat d'un objet est li aux valeurs de ses variables

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

Un objet passe dans un tat donn par l'


vnement qui modifie
ses variables, et quitte cet tat par un autre vnement qui les
modifie nouveau. Ce sont des transitions d'
tats.
Robert Ogor

Modlisation avec UML

152

Diagramme de transitions dtats


tat initial
tat final

Chaque transition est


provoqu par un
vnement.

Evnement

achat
poubelle

Etat

Livre
libre

Une transition n'a pas


de dure.

La dure d'un tat est

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

Modlisation avec UML


Modlisation avec UML

153

Activit lie un tat


Occup
do : jouer tonalit occup

Dans cet tat, l'


activit de la ligne tlphonique est
d'
mettre une tonalit.
Une activit est une opration associe un tat.
Une activit do se rpte tant quon est dans ltat.

Robert Ogor

Modlisation avec UML

154

Action lie un vnement


tat

vnement

Connect

raccroche /dconnecter la ligne


action
transition

Dconnect

La transition connect vers dconnect est dclenche par lvnement


extrieur le poste est raccroch , une action est ralise avant dentrer
dans ltat dconnect : la ligne est dconnecte .
Une action n'
a pas de dure, elle est associe un vnement.
Le changement de valeur d'
un attribut est un exemple daction.

Robert Ogor

70

mai 2003

Modlisation avec UML


Modlisation avec UML

155

Les oprations possibles dans


l'
tat et les transitions
vnement [garde] /action

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

Modlisation avec UML

156

Garde
garde

premier chiffre
chiffre[!dernier]
Composant chiffre [dernier && faux numro]

Message enregistr
do : jouer message

chiffre [dernier && bon numro]

raccroche
raccroche

Connectant
do : trouver connexion

Une garde est une condition boolenne qui permet lors de


loccurrence dun vnement daccepter une transition ou
pas.
Robert Ogor

71

mai 2003

Modlisation avec UML


Modlisation avec UML

157

Diagramme dtats : adhrent


inscription

garde

Dpart de la bibliothque
[nbreEmprunt =0]

adhrent
rservation[nbreRservation =1]

Annulation
rservation

Adhrent max rservation

Rendre un livre
[nbreRservation <2]

Emprunt[nbreEmprunt =4]

Emprunt
[nbreEmprunt =4]

Adhrent max prt

Rendre un livre
[nbreRservation =2]
Emprunt [nbreEmprunt =4]

Rservation[nbreRservation =2]
Robert Ogor

Modlisation avec UML

173

5) Conception
composants et dploiement

Robert Ogor

72

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

175

Dfinition des composants


Un composant est une partie physique et

remplaable dun systme qui sait faire et fournit


la ralisation dun ensemble dinterfaces.
Noyau
win32

composant
COM+

Hello.class

beans
Java

Hello.java

Hello.html

Hello.jpg
dpendance
Robert Ogor

73

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

177

Les diagrammes de
composants

Robert Ogor

74

mai 2003

Modlisation avec UML


Modlisation avec UML

Les diagrammes de
composants

178

Ce modle dfinit l'architecture logicielle du systme dans un


environnement de dveloppement donn.

Il est issu de la conception et permet de reprsenter le systme


et les sous systmes du modle physique de l'
architecture
logicielle raliser.

Un systme ou un sous systme dfini un espace de visibilit et


regroupe des classes.

Tout les langages ne supporte pas cette notion de systme mais


elle existe sous forme de "package" en ADA.

Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

180

Modlisation avec UML

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.

Il reprsente les diffrents processeurs,

priphriques et la rpartition du systme sur ces


diffrents lments.

Il montre les liens de communication entre ces


diffrentes entits.

Robert Ogor

76

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

184

Les diagrammes de
dploiement de l'
application
Serveur stockage documents

document
Livre

Revues

BandeDessines
Rsum

Robert Ogor

Modlisation avec UML

185

Conception
Conception

conception
systme

conception
objet

La phase de conception a pour objectif de rechercher comment le

systme va tre ralis, contrairement l'


analyse qui rechercher ce
qui doit tre fait (quoi).

Elle labore les diffrentes parties du systme et leurs interactions

d'
abord un niveau gnral puis un niveau de plus en plus dtaill.

Elle tient compte des contraintes matrielles et logicielles : langages,


bases de donnes, processeurs, priphriques, etc..

C'est une tape o ne peuvent intervenir que des informaticiens


spcialiss dans les diffrentes technologies utilises.

Robert Ogor

78

mai 2003

Modlisation avec UML


Modlisation avec UML

186

Modlisation avec UML

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

Traduit les diffrentes associations

Modle
structurel
Diagramme de
classes
analyse

Modle
dynamique
Diagramme
dtat

Ajoute,complte ou modifie
les mthodes
les classes
les attributs

Transpose le modle dynamique


dans le corps des mthodes

Diagramme de
classes conception
Transformation
ou adaptation

Robert Ogor

79

mai 2003

Modlisation avec UML


Modlisation avec UML

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

Mise en uvre de la navigabilit, choix de qui accde qui.


Mise en uvre de la protection des attributs et des relations
Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

190

Conception : choix de persistance


Gestion Utilisateurs

Utilisateurs
1

Choix de conception :
Utilisateurs est une table dans une
base de donnes
Ce choix est guid par la persistance.

Gestion Utilisateurs

Ou bien, il est dfini, par exemple en


Java, par une liste d'
utilisateurs, au
programmeur d'
assurer la persistance
par des fichiers.

Utilisateurs

Gestion Utilisateurs

Bibliothque
1

Utilisateurs
Robert Ogor

Modlisation avec UML

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

Modlisation avec UML


Modlisation avec UML

224

Bibliographie
Livres

Martin Fowler, Kendall Scott: UML Distilled, Addison-Wesley 2000


Grady Booch, et al: The Unified Modeling Language User Guide, Addison-Wesley
James Rumbaugh, et al: The Unified Modeling Language Reference Manual, AddisonWesley
Ivar Jacobson, et al: Unified Software Development Process, Addison-Wesley
Jos B. Warmer, Anneke G. Kleppe: The Object Constraint Language : Precise
Modeling With UML, Addison-Wesley
Pierre-Alain Muller, Nathalie Gaertner: Modlisation avec UML, Eyrolles

Robert Ogor

Modlisation avec UML

225

Adresses utiles sur le WEB


OMG UML info: http://uml.systemhouse.mci.com
survey of analysis and design methods
http://www.awl.com/cp/awweb.htm

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

OMG UML Resources: www.omg.org/uml/


Robert Ogor

82

mai 2003

Vous aimerez peut-être aussi