You are on page 1of 104

Unified Modeling Language

Modlisation Objet
Pr. Omar El Beqqali

Omar.el-beqqali@insa-lyon.fr
omarelbeqqali@gmail.com
www.elbeqqali.net
O. El Beqqali 1
Plan
- Diagramme de collaboration
Le processus de dveloppement du logiciel - Diagramme de classes.
Les enjeux du Gnie Logiciel. - Diagramme d'objets
Le processus de dveloppement du logiciel. - Diagrammes d'tats-transitions
(GL) - Diagramme d'activits

Le langage de modlisation unifi UML - Diagramme de composants.

Prsentation gnrale. - Diagramme de dploiement.

Mthodologie Objet en spcification et en conception UML & Bases de donnes


Concepts fondamentaux. Gnration du code (mapping)
Diagrammes UML Rtro-ingnierie (reverse engineering)
-Diagramme des cas d'utilisation
Apports UML 2.0
-Diagramme de squences.
( 4 nouveaux diagrammes)
Mise en uvre d'UML : tude de cas
O. El Beqqali 2
Travail de recherche :
outils du march de modlisation
objet UML (synthse, aspect
comparatif, tude cas)

O. El Beqqali 3
Spcification et conception du logiciel.
Mthodologie Objet : UML.
Objectifs

Comprendre les enjeux du Gnie Logiciel.


Comprendre l'importance des activits de
spcification et de conception (G.L)
Connatre la notation UML.
Savoir comment utiliser UML pour spcifier et
concevoir un logiciel.
Mettre en uvre UML (cas)

O. El Beqqali 4
La modlisation

Elle est essentielle pour :


-Comprendre le fonctionnement dun systme
-Matriser la complexit
-Faciliter la communication au sein de lquipe

Et particulirement en gnie logiciel :


-tre un facteur de rduction des cots et des dlais,
-tre un facteur daccroissement de la qualit du produit,
-Permettre dassurer une maintenance facile et efficace,
-Permettre de contrler lavancement dun projet.
O. El Beqqali 5
Modles et techniques utiliss par les
mthodes objets

Les mthodes de modlisation classiques sont bases sur :


Un modle de donnes et un modle des traitements spars
Une modlisation de flots de donnes
Insatisfaisantes pour modliser des systmes objet

Aucune mthode ne couvre toutes les tapes du cycle de dveloppement

Triple perception du systme dinformation


Dimension statique: objets
Dimension dynamique: vnements/tats
Dimension fonctionnelle : flux/processus

O. El Beqqali 6
Conception par objets
Dmarche itrative plus que descendante (cycle itratif)
Grandes tapes
Identifier les entits du domaine
Structurer le domaine en analysant les proprits de ces
entits et leurs relations
Identifier les oprations que savent effectuer ces entits
Dcrire prcisment ces oprations en les reliant des
messages
Dcrire le lancement du programme

O. El Beqqali 7
Avantages de la conception objet

Avantages de lutilisation de lapproche objet au


niveau conceptuel
Rduction de la distance entre langage utilisateur et
langage conceptuel
Regroupement de lanalyse des donnes et des
traitements
Simplification des transformations entre niveau
conceptuel et niveau physique
Abstraction forte
Orient vers la rutilisation : notion de composants,
modularit, extensibilit, adaptabilit, souplesse.
O. El Beqqali 8
Le cycle de vie Objet
(G.L)

Un cycle itratif : ce cycle sappuie sur lanalyse


des risques (adquat pour la conception objet)

Validation des besoins

Tests de Expression des besoins


vrification

Implmentation Spcifications
fonctionnelles

Conception
Analyse

O. El Beqqali 9
Mthodes objets (historique)
OOD Object Oriented Design (G. Booch) 1991
HOOD Hierarchical Object Oriented Design (Delatte & al.) 1993
OOA Object oriented analysis (Schlaer ,Mellor) 1988, 92
OOA/OOD (Coad & Yourdon) 1991
OMT Object Modeling Technique 1991
OOSE Object oriented software engineering (Jacobson & al.) 1992
OOM Object oriented Merise (Bouzeghoub & Rochfeld) 1993
Fusion (Coleman & al.) 1994

Thorie dveloppe par Ivar JACOBSON


Reprise par de nombreuses mthodes : OMT, ROOM, Fusion, Booch, ..
Elle repose sur une analyse centre utilisateur pour dterminer les besoins du
systme.
O. El Beqqali 10
Historique UML
Dfinition par une commission de
UML 2.0
rvision
Soumission lOMG UML 1.x 1999-2002

UML 1.2 Juin 1998


Standardisation par lOMG
Soumission lOMG Novembre 1997
UML 1.1 Septembre 1997
Soumission lOMG UML 1.0 Janvier 1997

UML 0.9 Juin 1996

Mthode unifie 0.8 Octobre 1995

Booch93 OMT-2

Autres mthodes Booch91 OMT-1 OOSE Partenaires

1997: prsentation de UML l'OMG (Object Management Group),


UML 1.1 est adopt (http://www.omg.org)
1999: UML 1.3
UML 2.1 O. El Beqqali 11
UML : langage de modlisation
graphique et textuel
UML unifie
Les concepts, quels que soient le domaine dapplication
Les notations et concepts orients objet
UML est indpendant
Du type du systme-logiciel, matriel, organisation..
Du domaine mtier : gestion, ingnierie, finance
UML permet de :
Comprendre et de dcrire les besoins,
Concevoir et construire des solutions,
Documenter un systme tout au long du cycle de dveloppement,
Communiquer entre les membres de lquipe de projet.
O. El Beqqali 12
UML : objectifs

Montrer les limites dun systme et ses fonctions principales


laide des cas dutilisation et des acteurs.
Illustrer les ralisations de Cas d Utilisation laide de
diagrammes dinteraction.
Reprsenter la structure statique dun systme laide de
diagrammes de classes, associations, contraintes.
Modliser la dynamique, le comportement des objets laide de
diagrammes tats/transitions.
Rvler limplantation physique de larchitecture avec des
diagrammes de composants et de dploiement.
Un langage utilisable par lhomme et la machine : permettre la
gnration automatique de code. O. El Beqqali
13
Modlisation en diagrammes

ABSTRACTION
Systme rel Modle

Modle = ensemble dlments de modlisation vus


dans un ensemble de diagrammes
Diagramme
-Support graphique de modlisation, chaque diagramme
propose un point de vue diffrent.
-mise en uvre dun ensemble dlments de visualisation
reprsentant des lments de modlisation (graphe)
O. El Beqqali 14
O. El Beqqali 15
UML : les diagrammes (1)

Modles manipuls au moyen de vues


graphiques : 9 diagrammes (4 autres nouveaux diagrammes en 2004)

Diagrammes des cas dutilisation : Fonctions du systme du


point de vue des utilisateurs

Diagrammes de squence : Reprsentation temporelle des


objets et de leurs interactions

Diagrammes de collaboration :Reprsentation spatiale des


objets, des liens et des interactions

O. El Beqqali 16
UML : les diagrammes (2)

Diagrammes de classes : Structure statique en terme de classes


et relations qui les lient
Diagrammes dobjets : Reprsentation des objets et de leurs
relations (liens)
Diagrammes dtats-transitions : Comportement dune classe
en terme dtats, li au cycle de vie des objets
Diagrammes dactivits : Reprsentation du comportement
dune opration, dun cas dutilisation, ou dun processus
mtier en terme dactions
Diagrammes de composants : Composants physiques dune
application, dpendance entre ces composants
Diagramme de dploiement : Dploiement des composants
sur les dispositifs matriels, modes de connexion..
O. El Beqqali 17
Classification des diagrammes
Lensemble des 9 diagrammes peut tre rparti sur les trois axes de modlisation

Fonctionnel
Diagramme de cas
dutilisation
Statique Dynamique
Diagramme de classes Diagramme dtats
Diagramme dobjets Diagramme dactivits
Diagramme de composants Diagramme de squence
Diagramme de dploiement Diagramme de collaboration

O. El Beqqali 18
Mcanismes de base

Strotype : mcanisme permettant de classer les lments similaires du


modle en familles << strotype>> ou visuel (icne)
quelques strotypes : << besoin >>, << responsabilit >>
Exemple : classes  Fentre, Icne, Bouton
 valeurs communes (afficher/masquer),
 strotype << visuel >>

Contraintes : exprime un lien smantique entre des lments du modle


notation : {}
Note..
Note : commentaire rattach un diagramme

O. El Beqqali 19
O. El Beqqali 20
Cas dutilisation : Introduction

Le concept de cas dutilisation introduit par


Ivar Jacobson dans la mthode Object-
Oriented Software Engineering (OOSE).
Les fonctionnalits du systme sont dcrites
comme un ensemble de cas dutilisation.
Chaque cas reprsente un flot spcifique
dvnements vers le systme..

O. El Beqqali 21
Cas d'utilisation :
Notation (1)

Entit qui agit sur le systme; reprsente un


ensemble cohrent de rles quun utilisateur
peut effectuer.
Acteur

Use Case
Ensemble cohrent de fonctionnalits fournies
par le systme ou un sous-systme en rponse
Cas d'utilisation une action de lutilisateur. Ce ci se traduit par
lchange de messages entre le systme et les
acteurs.

O. El Beqqali 22
Elaboration de CU

questions se poser :
quelles sont les tches de lacteur ?
quelles informations lacteur doit-il crer, sauvegarder, modifier,
dtruire, ou simplement lire ?
lacteur doit-il informer le systme de changements externes ?
On sintresse au domaine du quoi faire, pas du comment (sinon
on rentre dans la phase de conception)
on doit rester au niveau de linteraction acteur/systme
Frontire du systme

Dclenche Cas d'utilisation


Acteur

O. El Beqqali 23
Cas d'utilisation : Dmarche

Recherche des acteurs externes

Pour chaque acteur les cas d'utilisation

Pour chaque cas d'utilisation :


rechercher les interactions
rechercher les objets manipuls

Faire la maquette de chaque cas d'utilisation

O. El Beqqali 24
C.U
caractristiques (1)
Le cas d'utilisation utilise une description textuelle
Le cas d'utilisation est un cadre pour l'laboration des
diffrentes fins possibles pour le cas d'utilisation
L'analyse est complte lorsque tous les cas d'utilisation sont
tudis
Un cas d'utilisation dcrit l'change standard entre un acteur
externe et un systme; dcrit une famille de scnarios (voir
plus loin) incluant les cas d erreur.
L'acteur est l'initiateur de l'change, il peut tre:
Personne
quipement
systme externe
O. El Beqqali 25
Acteur

 Rle jou par une personne ou une chose qui interagit


avec un systme
La mme personne physique peut jouer le rle de plusieurs
acteurs
Plusieurs personnes peuvent jouer le mme rle
Nom de lacteur = Rle jou par lacteur

Dtermination des acteurs ==> prcision des limites du


systme de manire progressive

O. El Beqqali 26
Acteur
Diffrentes catgories dacteurs
Catgories
Acteurs principaux: personnes utilisant le systme ( qui va
servir le systme)
Acteurs secondaires: qui administrent le systme (paramtrent
le systme en lui fournissant les informations ncessaires ou
effectuent des m.a.j).
Exemple : bibliothque => ladministrateur est un A.S, le
membre est un A.P.
Types
Matriel externe: dispositifs matriels faisant partie du domaine
de lapplication.
Humains : utilisateurs du systme.
Logiciels, robots : qui exploitent les donnes du systme.
O. El Beqqali 27
Acteurs et cas dutilisation
systme
acteur
cas dutilisation
Guichetier
Note Opration sur
un guichetier est un employ
compte
de la banque jouant un r le
d'interface ent re le sy stme Lecteur code
informat ique et les clients
qu 'il reoit
prt

Gestionnaire de
prts

Cas dutilisation : description gnrique dune transaction


complte entre l acteur et le systme (claire et prcise).
Remarque : pas d interactions entre acteurs
O. El Beqqali 28
C.U : exemple
Diag. C.U Systme tlphonique

Tlphone
Appeler
Tlphone

Client
Interrompre
Recevoir
Appel Appel

Acteur Oprateur

C.U

O. El Beqqali 29
CU
caractristiques (2)
Identification d'une finalit de l'utilisateur
Un stimulus de dpart
Une pr-condition du systme au dclenchement
Un enchanement d'interactions
Une post-condition du systme la fin du cas
dutilisation
Enchanement dactions effectuer
Une fin normale (conditions dexcution ventuelles)

O. El Beqqali 30
Le cas d'utilisation

Acteur Acteur
Emetteur Use Case Receveur

Pr-condition
Scnario
Post-condition

O. El Beqqali 31
Cas d'utilisation :
Notation (2)
Les relations entre cas dutilisation :
-Extend
-Include

Include Capture comment une ou plusieurs


descriptions dun use case intgrent la
description d'un autre use case.
(quivalent l'agrgation pour les classes, voir plus loin)

Extend Reprsente l'insertion d'un use case dans un


autre use case.quivalent la
gnralisation/spcialisation pour les classes (voir
plus loin).
O. El Beqqali 32
Cas d'utilisation :
La notation (1)
La relation extend :
dnote un comportement optionnel,
indique que tous les UC fils hritent du UC mre (UC
point)
<<extend>>
retrait devises

<<extend>>
Guichetier retrait

retrait Dhs

O. El Beqqali 33
Cas d'utilisation :
La notation (2)
La relation include indique que le UC point par la flche est une
sous partie de lautre UC .
factorisation des UC dont les fonctionnalits servent
frquemment dans des diffrents UC
(comportement communs plusieurs UC).

<<include>>
Retrait Saisie Ncompte
<<include>>
Emprunt
O. El Beqqali 34
Cas dutilisation et scenarii
scnario 2 scnario 3

scnario 1
scnario 4
Cas
Scnario = chemin dans le CU dutilisation

Description du CU
ensemble des scnarii
document avec flot dvnements
du point de vue de lacteur
dtaille ce que le systme doit fournir lutilisateur quand le CU est
excut
flot normal des vnements (80 %) -Nominal-
flots dvnements alternatifs
flots dexceptions (quand le CU ne ne termine pas correctement)

O. El Beqqali 35
Cas d'utilisation/scnario : Exemple

Scnario : Attribution d'une place sur un vol (C.U..)


Un stimulus de dpart : Client prsente sa
rservation
Une pr-condition: Guichet ouvert & rservation
sur un vol
Un enchanement d'interactions: Scenarii
Une post-condition: Place affecte au passager
& Fin-rservation
O. El Beqqali 36
Cas d'utilisation : scenarii
Exemple

Nom du cas d'utilisation:


Attribution d'une place sur un vol

Le passager prsente sa rservation l'htesse


qui lui demande son nom,
le passager fournit l'information,
le systme trouve sa rservation [ou ne la trouve pas
(autre scnario)],
...
le passager accepte la place propose par le systme.
O. El Beqqali 37
CU : scenarii
Exemple : GAB
Opration sur compte
Client
Description gnrale C.U : ce cas dutilisation concerne les oprations
que le client peut raliser sur son compte sur un distributeur bancaire.
Description des scnarios :
Le cas dutilisation commence quand lutilisateur se connecte. Le systme
lui propose :
a/ de retirer du liquide
b/ de dposer un chque
Si le client choisit a/, le systme lui propose divers montants. Lutilisateur
choisit une somme. Le systme vrifie que le compte est suffisamment
approvisionn, et dlivre largent et un reu. Sinon, le systme informe
lutilisateur de lchec de lopration, et lui rend sa carte.

Le cas dutilisation se termine quand lutilisateur retire sa carte bancaire.


O. El Beqqali 38
Cas dutilisation et interactions

Le diagramme des CU prsente une vue du


systme de lextrieur
Une interaction dcrit comment les cas
dutilisation (classes, oprations) sont raliss
comme interactions dans une socit dobjets
(communication entre objets )
Vue dynamique du systme : deux types de
diagrammes dinteraction
diagrammes de collaboration
diagrammes de squences
O. El Beqqali 39
Scnarios - exemples
Cas d'utilisation :

1/ Acheter un produit

2/ Passer les tourniquets du RER

O. El Beqqali 40
Cas d'utilisation:
un besoin

Exemple : activit commerciale

Acheter
un
produit
Vendeur
Acheteur

Catalogue

O. El Beqqali 41
Cas d'utilisation : Le scnario
Exemple Vente

Le scnario est une application


parmi d'autres d'un cas d'utilisation.
Pour dcrire compltement un cas,
plusieurs scnario sont ncessaires.
Il apporte une comprhension
prcise sur une application du cas
d'utilisation
O. El Beqqali 42
Cas d'utilisation : Le scnario
Exemple RER

Passer les tourniquets du RER


Prsenter le ticket au tourniquet
Le tourniquet avale le ticket
Le tourniquet contrle le ticket
le tourniquet redonne le ticket
Passer le tourniquet
..Autres Scnarii ( sans erreur et alternatifs)

O. El Beqqali 43
O. El Beqqali 44
Les diagrammes de squence (1)

Le diagramme de squence montre quels sont


les objets qui participent lexcution du use-
case et quels sont les messages quils changent :
description des interactions entre les objets dun
point de vue temporel.
Chaque bloc ou objet participant dans le
processus est reprsent par une barre verticale.
Remarque : lordre dans lequel apparaissent les barres na pas
dimportance (lisibilit).
O. El Beqqali 45
Diagrammes de squence (2)

Interactions entre objets selon un point de


vue temporel
2 utilisations
Documentation des cas dutilisation
Evnements qui surviennent dans le domaine de
lapplication
Reprsentation prcise des interactions entre objets
Echanges de messages

Remarque : possibilit de reprsentation de la structure de contrle, la cration et


la destruction des objets, la rcursion, les branchements conditionnels.

O. El Beqqali 46
Diagrammes de squence (3)

O. El Beqqali 47
Diagrammes de squence :
exemple : systme de recherche dinformations

Systme
acteur
1 : entrer un mot de passe

3 : demande dinscription 2 : vrifier le mot de passe

4 : demande dinformations

5 : saisie des informations

6 : valider

8 : terminer 7 : traiter les informations


O. El Beqqali 48
Diagrammes de squence :
exemple : systme dappel tlphonique

Description de scnarios typiques et des exceptions

Ligne
tlphonique
: Appelant : Appel
Message synchrone Dcroche

Rponse dun message


Tonalit
synchrone

Numrotation
temps

Indications de sonnerie
*[pas dcroch] Sonnerie

Dcroche

O. El Beqqali 49
Diagrammes de squence
exemple : systme de gestion de comptes bancaires

: Banque Comptes:Compte
: Employ

opration(retrait,montant)

Compte?

compte(noCompte)

ok := retrait(compte,montant)
diminuer(montant)
[ok=True] imprimASigner

[ok=Faux] refus(retraitMax)

:A :B :A :B

P(a,b)

m m=P(a,b)

O. El Beqqali 50
Diagramme de squences
le suivi des vnements (trace event)
Exemple1 (Vente)

Le suivi d'vnements est un diagramme


qui prsente la squence des vnements
d'un scnario ainsi que les objets qui
mettent et reoivent les vnements.
Le temps augmente en partant du haut
vers le bas, mais l'espace entre les
vnements n'est pas proportionnel au
temps.
O. El Beqqali 51
Diagramme de squences :
les fragments (1/2)
Il existe 12 oprateurs dfinis dans la
notation UML 2.0 impliquant Les
fragments combins ( reprsent dans un
rectangle dont le coin suprieur indique le type
de la combinaison, appel oprateur
dinteraction :
LOOP,
ALT,
PAR,
OPT. O. El Beqqali 52
Diagramme de squences :
les fragments (2/2)
Alt : Divise fragment en groupes et dfinit la
condition pour chaque groupe
Opt : Dfinit la condition pour un seul appel -
l'appel ne s'excute que si la condition est
vraie fourni. Equivalent un alt avec une
seule trace.
Par: Dfinit lxuction des appels l'intrieur
du fragment en parallle.
Loop : Dfinit le fonctionnement en boucle
l'intrieur du fragment O. El Beqqali 53
Fragment : exemple

O. El Beqqali 54
O. El Beqqali 55
Diagrammes de collaboration

Reprsente les interactions entre objets et relations


structurelles permettant celles-ci.
Description:
Du comportement collectif dun ensemble dobjets
Des connexions entre ces objets
Des messages changs par les objets
Interaction ralise par un groupe dobjets qui collaborent en
changeant des messages
Temps non reprsent de manire implicite (numrotation
des messages)

O. El Beqqali 56
Les interactions

Elments dune interaction


instances
liens (support messages)
messages dclenchant les oprations
rles jous par les extrmits de liens

Porte ouvrir()
:Cabine
Cabine +ouvrir()
+fermer() :Porte
+tat() Interaction entre 2 objets instances
des classes Cabine et Porte
Modlisation dune cabine dascenseur qui demande une porte de souvrir
O. El Beqqali 57
Diagrammes de collaboration
Reprsentation de lordre des envois de messages pour lexemple
De lascenseur :
: Ascenseur

4: dplacer(haut) 1: monter()

: Cabine 3: fermer()

: Porte
2: allumer()

: Voyant

O. El Beqqali 58
quivalence diagrammes de squence / collaboration

bouton tage bouton contrleur ascenseur portes


Diagramme ascenseur ascenseur ascenseur
user 1
de sequences appui bouton tage
allumer
dplacer
teindre
ouvrir

timer

fermer
F5(Rose)
portes ascenseur

5: ouvrir 7: fermer

3: dplacer
contrleur ascenseur
1:Appui bouton tage ascenseur
user
2: allumer
Diagramme bouton tage
de collaboration 6: timer 4: teindre O. El Beqqali 59
O. El Beqqali 60
Diagrammes de classes
Vue logique / statique / structurelle dun systme :
les classes et leur relations
Dans UML
Classes : structures et comportements
relations : associations, agrgations, dpendances,
gnralisation/spcialisation, noms de rles
contraintes
indicateurs de multiplicit et de navigation
Mais : toujours difficile de dterminer les classes
 il faut des mthodes
Modle du domaine stable
Objets dans les diagrammes de squence et de collaboration,
O. El Beqqali 61
Diagramme de classes et dobjets (1)

Objet : unit atomique forme de lunion dun tat et dun comportement


Etat dun objet: valeurs instantanes de tous ses attributs(ltat dun objet
un moment donn est la consquence des comportements passs).

UneClasse
priv : int Voiture de Toto Voiture de Toto
: Vhicule
public
protg
(Rose) Couleur = rouge Couleur = rouge
Masse = 895 kg Masse = 895 kg
opprivee( ) Puissance = 7 CV Puissance = 7 CV
oppublique( )
opprotge( ) Nom objet : classe
Visibilit et porte des attributs et des oprations :
Public : llment est visible pour tous les clients de la classe
Protg (protected): llment est visible pour les sous-classes de la classe
Priv (private): llment est visible pour la classe seule O. El Beqqali 62
Diagramme de classes et dobjets (2)
Exemple
Exemple
NomObjet Ali

Exemple
NomObjet : NomClasse Ali : tudiant

Exemple :tudiant
:NomClasse

Diagramme dobjets
Diagramme de classes est une instance de :Voiture :Moteur
Voiture Moteur
1 1
1

association lien
4

Roue :Roue :Roue :Roue :Roue

Relations entre classes / Liens entre objets O. El Beqqali 63


Liens et relations
Possibilit de communication entre objets :
interactions entre objets (cf. diagrammes)
 relation entre classes
3 grands types (voir plus loin)
Associations ("est produit par", "est affili ", "se trouve ", "est
conduit par") : dpendance entre classes, communication entre
objets
Ex: un lecteur lit un livre (forme verbale)
Agrgation/composition ("fait partie de") : objets composites /
composants
Ex : un train est compos de wagons
Gnralisation/spcialisation ("est une sorte de") : hritage entre
objets,
Exemple : un chat est une sorte danimal
O. El Beqqali 64
Associations
Connexion bidirectionnelle entre classes
Notation gnrale :
x..y nom association  x..y
Classe 1 Classe 2
rle 1 rle 2
{contrainte}
Nom : forme verbale, sens de lecture avec flche
Rles : forme nominale, identification extrmit association
Multiplicit : 1, 0..1, M..N, *, 0..*, 1..*

Socit 0..* 0..* Personne


travaille pour
employeur employ 0..1 patron
nom emploie  nom
dirige 
*
employs O. El Beqqali 65
Multiplicit des associations

1 Un et un seul

0..1 Zro ou 1

N N(entier naturel)

M..N De M N(entiers naturels)

0..* De zro plusieurs

1..* De 1 plusieurs

O. El Beqqali 66
Classes-Associations

Une classe-association est une association qui est


aussi une classe.
Les classes-associations sont utilises lorsque les
associations doivent porter des informations
Il est toujours possible de se passer des classes-
associations. Company Employee
* 1..*

Job

salary

O. El Beqqali 67
Associations qualifies (1)

Restrictions : slection dun sous-ensemble des objets qui


participent lassociation laide dune cl
:B
:B
A B :B
qualificat if
:B

sans cl avec cl
{Linstance de A , valeur du qualificatif } identifie le sous ensemble des instance de B :A

A qualificatif * B
{sous-ensemble} Banque centrale

No banque

Exemple :
1..* Contient 1 Fichier
Rpertoire
Nom fichier Banque

Remarque : Le rle dun qualificateur est de rduire la cardinalit dune association


et joue le rle semblable une cl primaire dans une BDR. O. El Beqqali 68
Associations qualifies (2)
exemple

ce schma ne permet pas de dire que chaque sige a un numro


qui est unique pour chaque avion.
Avec attribut qualifiant:
un avion contient un
sige pour un numro
donn .

dans un avion, pour une


range donne, il y a 4 siges.

O. El Beqqali 69
Lagrgation

Association non symtrique


Une des extrmits joue un rle prdominant par
rapport lautre
Une classe (B) fait partie dune autre classe (A)

Une agrgation
Agrgat Elment agrg
(A) (B)

* Attache
E-mail Fichier
*
O. El Beqqali 70
Composition dobjets
Cas particulier dagrgation contenance physique
Si destruction objet compos destruction des composants
Fentre Agrgat A Classe B
Exemple

1 0 .. 1 *
Compos Composant
2 1 1
titre contenu
barre_dfilement

Ascenseur En-tte Cadre Fentre

barre_dfilement : ascenseur
titre : en-tte
1 1 contenu : cadre

Bouton Texte
O. El Beqqali 71
La composition

Agrgation forte
Destruction du composite (x est une partie de y?)
=> Destruction automatique de tous ses composants
Composition
Exemple
Livre {ordered} Page

1 1..*

Agrgation
La contrainte { ordered } indique que
1
la collection des pages dun livre est ordonne
Couverture

O. El Beqqali 72
Lhritage
Moyen de raliser la classification ou
lorganisation en classes  vocabulaire rserver
limplantation

Principe de substitution : toutes les proprits de


la classe parent doivent tre valables pour les
classes enfant

Hritages: simple / multiple


O. El Beqqali 73
Diagramme de classes
Gnralisation et spcialisation (1)

Vhicule
Gnralisation :
regroupement, est- {incomplte} Vhicule arien
Vhicule terrestre
un , sorte-de

Voiture Camion Avion Hlico

Spcialisation contraint e
(symtrique gnralisation):
raffinement de classe
Transmission super-classe
- par extension de proprits
(ajouter un attribut)
- par restriction de domaines Continue {disjoint} Discrte
sous-classes
de valeurs dattributs

Variateur Drailleur Bote de vitesse

O. El Beqqali 74
Gnralisation/spcialisation (2)

Relation de classification entre un lment


plus gnral et un lment plus spcifique
est un / est une sorte de ( is a / kind of )
Exemples (hritage) : Oeuvre
+titre
+auteur
Animal

Livre Livre

Chat Chien
Roman

O. El Beqqali 75
Hirarchies de classes
Facture
Contraintes : date
pour
Livraison
{complte}, adresse 1 1..*
{incomplte}, montant
{disjoint}, imprimer()
expdier()

Attributs / oprations
destination {complete}
communs sont
montres au niveau le
plus haut. Facture_export Facture_Maroc
devise_paiement taux_TVA
montant_devise montant_ttc
convertir(devise) calcul_ttc()
La contrainte {complte} indique que la gnralisation est
termine et quil nest plus possible de rajouter des sous- O. El Beqqali 76
classes.
Hritage multiple
V hic ule
Exemple :

Vhic ule terrest re Vhic ule a quatique

{disjoint}

Autom obile Vhi cule am phi bie Bateau

Problme : conflits dhritage (un attribut vitesse_max


en km/h, en Nuds  quhriter ?)
En gnral, trs difficile utiliser : certains langages
ngligent lhritage multiple
O. El Beqqali 77
Paquetages (package)
regroupement logique dlments de diagramme qui
entretiennent entre eux des relations troites
clart / partage du travail dans une quipe
un paquetage possde des lments de modlisation et peut
en importer.
forme gnrale du systme : hirarchie de paquetage +
relations de dpendances entre paquetages (<< importe >>,
<< accde >>)
sous-systme : spcifie le comportement collectivement
offert par ses lments (en terme doprations)

O. El Beqqali 78
Paguetages: un espace de nommage

Client

Facturation:: * 1
Facture Client Socit
1 1
concerner acheter
1 *
Commande Produit

nomDuPackage : : NomDeLaClasse
O. El Beqqali 79
Paquetages : exemple
But : organiser un modle objet

clients Gestion

Gestion
Compte
Entreprise
<< accde >> (from Client)

Banque

Reseaux

lien de dpendance
O. El Beqqali 80
Diagrammes dtats transition Statecharts (1)

 Attach une classe, il doit prsenter une classe par rapport ses tats
possibles et aux transitions qui le font voluer.
Lorsque [vnement] => changement d'tat
L'action peut tre conditionnelle : [condition] action.
 Un tat = image de la conjoncture instantane des valeurs des attributs dun
objet
& Prsence ou non de ses liens dautres objets.
 Une transition reprsente un changement d'tat; elle est dclenche par un
vnement.
- Transitions
 peuvent tre automatiques
 peuvent tre conditionnes
- Evnements
 dclenchent les transitions
O. El Beqqali 81
Construction du diagrammes
tats transition Statecharts (2)

Un Statechart est un graphe orient dont les nuds sont des tats et les arcs
sont des transitions.

Etat initial
EVENEMENT_K (attributs)

ETAT_I ETAT_J

Etat final

une classe => un diagramme tats-


transitions
O. El Beqqali 82
Statecharts (3)

Dans un tat, une activit est une opration squentielle qui se termine d'elle-mme au
bout d'un certain temps, ou opration continue qui dure indfiniment (peut tre
interrompue par l'arrive d'un vnement).

Contrle des oprations:


Une activit est une opration qui ncessite un certain temps dexcution; elle est
associe un tat.
Une action est une opration instantane (ou de dure non significative); elle est
associe un vnement.

Actions associes un tat : ETAT

action dentre : excution instantane de l action lors de lentre dans ltat. faire : activit_1
entre / action_2
action de sortie : excution de l action au moment de quitter ltat. sortie / action_3
vnement / action_4
actions internes : excution dune action sur vnement sans changer dtat.
O. El Beqqali 83
Diagrammes dtats-transitions - Exemple

Incrmenter Crdit(p)
Systme Publiphone
DcrocherCombin
[P. Roques]
attente Pic e [ Crdit>=0,5 ]
Raccroch
racc rocherCombin

taxer Attente
Numro

Racc rocher Combin Communic-


Composer Numro
ation

Attente
Raccrocher Combin Validit
Dbuter Communication

Raccrocher Combin Attente


Dcrochage
Numro Valide O. El Beqqali 84
Diagramme dactivits
On s'intresse plus aux actions qu'aux tats, il montre l'activit et le fonctionnement
d'une opration d'une classe, par exemple.
Exemple : activit de vente par correspondance (VPC)
Client Socit VPC

*Montre le cycle de vie


dune classe donne. commander
produit
grer :Commande
*En gnral divis en commande etat = passe

couloirs d'activit
expdier :Commande
(Swimlanes) produit etat = envoye

recevoir
produit

Dbut
payer
facture
encaisser :Commande

Fin facture etat = regle

O. El Beqqali 85
Diagrammes dactivits : exemple

O. El Beqqali 86
Diagramme de composants (1)

Un diagramme de composant reprsente les


composants logiciels dun systme
Diagramme utilis dans la phase de conception /
ralisation : lments physiques constituant le systme
et leurs relations
Dcrivent les lments physiques et leurs relations
dans lenvironnement de ralisation sous forme de
modules.
Modules : toutes sortes dlments physiques (fichiers
sources/donnes, excutables,bibliothques)
O. El Beqqali 87
Diagramme de composants (2)
Exemple : libGL {v1.2} input .convertrc

library data data

<< link >>


libpng << uses >> << uses >>

convert

library
<< link >>
executable

O. El Beqqali 88
Diagramme de dploiement (1)

Montrent la disposition et lorganisation


physique des diffrents matriels qui entrent
dans la composition d un systme et la
rpartition des programmes excutables sur
ces matriels.
La faon pour dployer les diffrentes
lments dun systme
O. El Beqqali 89
Diagramme de dploiement (2)
:Disque dur
Exemple : Systme RAID

1..n
1
:Station
:Modem 1024 kB / s UltraSPARC
ADSL
RAM >= 1GB
1

1
TCP / IP
1..n

:PC
client ssh 0..n
:PC
client telnet
client NFS
O. El Beqqali 90
Dmarche dapplication D'UML
tape 1 : laboration d'un diagramme de contexte du systme tudier:
Prcision du champ du systme tudier
tape 2 : identification et reprsentation des cas d'utilisation :
Identification des fonctions du systme
tape 3 : description et reprsentation des scnarios:
chaque cas d'utilisation se traduit par un certain nombre de scnarios.
Chaque scnario fait l'objet d'une description textuelle. Chaque scnario est ensuite
dcrit sous forme graphique l'aide du diagramme de squence et/ou diagramme
de collaboration.
tape 4 : identification des objets et classes
tape 5 : laboration du diagramme de classes
tape 6 : laboration du diagramme tat-transition :
pour chaque classe importante c'est dire prsentant un intrt pour le systme
modliser, un diagramme tat-transition est labor.
tape 7 : consolidation et vrification des modles:
Itration des tapes 3, 4, 5 et 6 => niveau suffisant pour la description du systme.
O. El Beqqali 91
UML & Bases de donnes (1)

2 approches

-Assistant de cration de -DataModeler de Rose (seul ou


schmas de BD (Oracle) intgr) , outil de dveloppement
d'applications et de modlisation mtier
< < R e la t io n a lT a b le > >
S A LLE
strotype
0 ..1
+ A c c u e ille

+ A l ie u D a n s 0 ..*
< < R e la t i o n a l T a b le > >
< < R e la t io n a lT a b le > > 0..* 0 ..* COURS < < R e la t io n a lT a b le > >
+ E n s e i g n P a r + E n s e ig n
E TU DIA N T DEB U T : DATE E N S E IG N A N T
+ In s c r i t + S u i vi P a r D IN : D A T E 0..* 0 ..1

O. El Beqqali 92
UML & Bases de donnes (2)

DataModeler de Rose P e rs o n n e
( fr o m R e l a ti o n n e l )
M a tr i c u l e : S M A LL IN T
Nom : V A R C H A R (2 5 5 )
schma de BD A d r e ss e
T le : V
:
A
V
R
A R C H A R (2 5 5 )
C H A R (2 5 5 )

gnr partir < < Id e n ti fy i n g > >


1
1
1
1 < < Id en ti fy i n g > >

dun diagramme de 0 ..*


0 ..*
classes (package) C li e n t
( fr o m R e l a ti o n n e l ) F o u r n i ss e u r
( fr o m R e l a ti o n n e l )
Id C l i : S M A L L IN T
D a te N a s : D A T E I d F o u rn : S M A L L I N T
M a t ri c u l e : S M A L L I N T R a i s_ S o c : V A R C H A R (2 5 5 )
1
M a tri c u l e : S M A L L IN T
1 1
1
< < N o n -I d e n ti f y i n g > > < < N o n -I d e n t i f y i n g > >

1 .. *
1 ..*

P ro d u i t
( fr o m R e l a ti o n n e l )
Com m ande
N u m P ro d : S M A L L I N T
( fr o m R e l a ti o n n e l )
D si g n a t i o n : V A R C H A R ( 2 5 5 )
Id C d e : S M A L L IN T < < Id e n t if y i n g > > P ri x U : S M A L L I N T
< < Id e n ti fy i n g > >
D a te C d e : D A T E I d F o u rn : S M A L L I N T
Id C l i : S M A L L IN T M a t ri c u l e : S M A L L I N T
1
M a t ri c u l e : S M A L L I N T 1
1

0 ..* 0 ..*
L ig n eC o m m a n d e
( fr o m R e l a ti o n n e l )
N u m P ro d : S M A L L I N T
strotype visuel Id C d e : S M A L L IN T

O. El Beqqali 93
Gnration du code / UML
Diffrents types :
objet , bases de donnes
Automatique ?
information dans les modles insuffisante
paramtrage des outils : traduction des associations,
mthodes engendres automatiquement
degr de traduction dpend du langage cible

Modle structurel largement traduit


squelette des classes ( complter)
hritage, associations,
O. El Beqqali 94
Outils
Rational Rose
http://www.rational.com (rachet par IBM)
Entreprise Architect
Star UML,
Together (outil fortement coupl avec Java)
http://www.togethersoft.com
ArgoUML (Open Source)
http://argouml.tigris.org
Power Amc (V 15 )
Poseidon for UML2.0
Altova UMLModel
Objecteering
Visual Paradigm
Eclipse pour UML 2.0
O. El Beqqali 95
.
Traduction en objet (C++)
Eleve Cours
0..* assiste 0..*
annee : date -titre : string
#eleves cours -module : string
#ifndef COURS associer(string)
#define COURS
class Eleve #include "Eleve.h"
class Cours { #include Cours.h"
public:
void associer(un_module : string) ; void Cours::associer(un_module : string)
void set_titre(const string value) ; {
const string get_titre() const ; /* A ECRIRE */
void set_module(const string value) ; }
const string get_module() const ;
protected: void Cours::set_titre(const string value)
Eleve* Eleves ; { titre = value ; }
private: const string Cours::get_titre()
string titre ; { return titre ; }
string module ; void Cours::set_module(const string value)
} { module = value ; }
#endif const string Cours::get_module()
{ return module ; } O. El Beqqali 96
Traduction en relationnel
eleve cours
annee : date
0..* assiste 1 -titre : string
#eleves cours -module : string
associer(string)
CREATE TABLE eleve (
eleve_id NUMBER (5) ,
annee DATE,
PRIMARY KEY (eleve_id)
);

CREATE TABLE cours (


cours_id NUMBER (5) ,
titre CHAR (128) ,
module CHAR(48) ,
PRIMARY KEY (cours_id),
eleve_id NUMBER (5) REFERENCES eleve(eleve_id)
);
O. El Beqqali 97
Rtro-ingnierie
(reverse engineering)

Objectif Faire voluer le modle en mme


temps que limplantation

Implantation

Modle UML

O. El Beqqali 98
UML 2.0 : Nouveauts

UML 1.5 = 9 diagrammes UML 2.0 = 13 diagrammes


Classification (3 catgories):
Les diagrammes de structure
Les diagrammes de comportement
Les diagrammes dinteractions (sous-catgories des diagrammes de
comportement)
Quatre nouveaux diagrammes :
Diagramme de modules ou paquetages (package diagram)
Diagramme de structure composite (composite structure
diagram)
Diagramme global dinteraction (interaction overview)
Diagramme de temps (timing diagram)
Le diagramme de collaboration devient diagramme de communication
O. El Beqqali 99
Ajout de cadres dinteraction sur les diagrammes de squence
Mta-modle d'UML

tats-
transitions

O. El Beqqali 100
Mta-modle d'UML

O. El Beqqali 101
O. El Beqqali 102
Conclusions
Proprits dUML
Unification des concepts de modlisation
Puissance dexpression
Nombreux formalismes (issus de mthodes existantes)
Mcanismes dextension inclus (strotypes)
Description par un mta-modle (syntaxe et smantique des modles)
Compromis formalisation / niveau dabstraction
(impression quUML est une mthode)

UML est devenu un standard international : adopt un peu partout (universel)


les modles sont simples, faciles lire et communiquer
difficult pour des systmes trs complexes, do la ncessit doutils
Les outils puissants sont nombreux (Rose, Rhapsody, Select, Objectoring....)

O. El Beqqali 103
Bibliographie
Prsentation dUML non exhaustive , pour la description exacte de toute la
syntaxe et la smantique :
www.omg.org www.rational.com
A. Muller : Modlisation objet avec UML , Eyrolles, 2000
P. Roques, UML par la pratique , Eyrolles, 2004
J. Rumbaugh, I. Jacobson, and E. Booch, The Unified
Modeling Language Reference Manual . Reading, MA:
Addison-Wesley, 1999.
UML 2 en action : De lanalyse des besoins la conception
J2EE , Pascal ROQUES et Franck VALLEE, ED. Eyrolles
Web.

O. El Beqqali 104

You might also like