0% ont trouvé ce document utile (0 vote)
264 vues339 pages

Introduction au Génie Logiciel et UML

Transféré par

Montasser Taktak
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
264 vues339 pages

Introduction au Génie Logiciel et UML

Transféré par

Montasser Taktak
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

1

Gnie logiciel
UML : Unified Modeling Language
A. Madani (madaniabdellah@[Link])
2
Gnie Logiciel
UML

ntroduction

Cycle de vie dun logiciel

Historique dUML

Diagrammes UML

Diagrammes de classes et d'objets

Diagrammes des cas d'utilisation

Autres diagrammes

Passage vers le code

De UML vers Java

UML et les bases de donnes

Langage de contraintes : OCL

tudes de cas

De lanalyse des besoins au code


3
Cycle de vie dun logiciel
A. Madani (abdellah_madani@[Link])
3

Processus (ensemble dactivits) ncessaire


au dveloppement et la maintenance dun
logiciel

Compos de plusieurs phases autonomes


mais dpendantes (interdpendantes).

Chaque tape se termine par la remise de un


ou plusieurs documents valid conjointement
par lutilisateur et le dveloppeur.
4
Cycle de vie dun logiciel
A. Madani (abdellah_madani@[Link])
4
tapes ncessaires la ralisation dun logiciel:

Analyse

Conception

Codage (mplmentation)

Tests

Livraison

Maintenance
5
Cycle de vie dun logiciel
Modle en Cascade (Waterall!
Analyse
Conception
Implmentation
Tests
Maintenance
5
A. Madani (abdellah_madani@[Link])
"
Cycle de vie dun logiciel
#nalyse

Elle a pour but de dgager le problme


tudier.

Le rsultat de l'analyse est le cahier de


charges (exprim dans une langue naturelle)
contenant les besoins du futur systme.

Cette spcification est informelle.

3 phases:(Faisabilit, Spcifications des


besoins, Organisation du projet)
6
A. Madani (abdellah_madani@[Link])
$
Cycle de vie dun logiciel
aisa%ilit
A. Madani (abdellah_madani@[Link])
7

Premire tape du cycle de vie dun logiciel

Rpondre deux questions :

Est-ce que le logiciel est ralisable ?

Est-ce que le dveloppement propos vaut la


peine dtre mis en ouvre ?
>> tudier le march pour dterminer sil
existe un march potentiel pour le produit.
&
Cycle de vie dun logiciel
'(ci)ication des %esoins
A. Madani (abdellah_madani@[Link])
8

Permet de dfinir ce que doit faire le logiciel et


non comment il le fait

Quatre types de spcifications

Spcifications gnrales

Spcifications fonctionnelles

Spcifications dinterface

Spcifications techniques
*
Cycle de vie dun logiciel
'(ci)ication des %esoins
A. Madani (abdellah_madani@[Link])
9
La spcification gnrale consiste identifier :

Objectifs atteindre

Contraintes (utilisation du matriel et outils


existants)

Rgles de gestion respecter


1+
Cycle de vie dun logiciel
'(ci)ication des %esoins
A. Madani (abdellah_madani@[Link])
10
Spcification fonctionnelles est la description des
fonctionnalits du futur logiciel de manire
dtaille que possible
Spcification dinterface dcrit les interfaces du
logiciel avec le monde extrieur : homme
(HM), autres logiciel (Middleware), machines
11
Cycle de vie dun logiciel
'(ci)ication des %esoins
A. Madani (abdellah_madani@[Link])
11
Spcification technique :(tude de lexistant)

Moyens daccs (local, distant, nternet, .)

Temps de rponse acceptable (gestion des GAB,


gestion des emplois de temps, .)

Plateforme (Windows, Unix, .)

Quantit dinformations stocker (choix du


SGBDR, .)
12
Cycle de vie dun logiciel
,rganisation du (ro-et
A. Madani (abdellah_madani@[Link])
12

Appele aussi Planification et gestion de projet

Permet de dterminer la manire de dvelopper le


logiciel

La phase de planification permet de :

dcouper le projet en tches

dcrire leur enchane!ent dans le temps,

affecter " chacune une dure et un effort


13
Cycle de vie dun logiciel
,rganisation du (ro-et
A. Madani (abdellah_madani@[Link])
13
Plusieurs tapes :

Analyse des cots: estimation du prix du projet

Planification: calendrier pour le dveloppement


(jours ouvrables, jours fris, nombre dheures de
travail par jours, .)

Rpartition des tches: distribuer les tches et les


sous tches (affectation des ressources aux
tches)
14
Cycle de vie dun logiciel
Conce(tion

Permet de fournir une description fonctionnelle


(formelle) du systme en utilisant une
mthode.

Les mthodes proposent des formalismes


(dans la plupart des temps graphiques) pour
concevoir le systme.

Deux types de conception :

Conception gnrale

Conception dtaille
14
A. Madani (abdellah_madani@[Link])
15
Cycle de vie dun logiciel
Conce(tion gnrale
A. Madani (abdellah_madani@[Link])
15

Appele aussi : 'Conception architecturale

Se focaliser sur larchitecture gnrale du


systme : dcomposition du systme en sous
systme
Exemple, pour la gestion scolaire :

Estudiantine (tudiants, notes, prof, filires, .)

Administrative (personnel administratif, .)

Bibliothque (Ouvrages, auteurs, adhrents, .)


1"
Cycle de vie dun logiciel
Conce(tion dtaille
A. Madani (abdellah_madani@[Link])
16

Produire une description externe de chacune


des procdures, fonctions et des structures de
donnes (conception classique)

Produire de manire prcise les contenus des


objets en terme de proprits et de mthodes
(conception Oriente Objet)
1$
Cycle de vie dun logiciel
i.([Link] (/alisation!

Des programmes seront labors afin de


mettre en ouvre des solutions techniques
prcdemment retenues

Plusieurs types langages sont utiliss:

Langages classiques (C, Pascal, Fortran, .)

Langages orients objets (C++, Java, C#, .)


17
A. Madani (abdellah_madani@[Link])
1&
Cycle de vie dun logiciel
Codage et 0ests
A. Madani (abdellah_madani@[Link])
18
On distingue plusieurs types de tests :

Test unitaire: tester les parties du logiciel par les dveloppeurs

Test dintgration: tester pendant lintgration des modules

Test systme: tester dans un environnement proche celui de


production

Test alpha: tests faits par le client sur le site de dveloppement

Test bta: tests faits par le client sur le site de production

Test de rgression: enregistrer les rsultats des tests et les


comparer avec ceux des anciens versions pour dterminer si la
nouvelle na pas apport de dgradation de performance.
1*
Cycle de vie dun logiciel
Livraison
A. Madani (abdellah_madani@[Link])
19

Fournir au client une solution logiciel qui


fonctionne correctement.

Plusieurs tches :

nstallation: rendre le logiciel oprationnel sur le


site du client

Formation: enseigner aux utilisateurs se servir


de ce logiciel

Assistance: rpondre aux questions de lutilisateur


2+
Cycle de vie dun logiciel
Maintenance
A. Madani (abdellah_madani@[Link])
20

Mettre jour et amliorer le logiciel

La maintenance comprend :

Corrective : correction des erreurs et anomalies

Adaptative : adaptation de nouveaux


environnements

volutive ou Perfective : ajout de nouvelles


fonctionnalits
21
Cycle de vie dun logiciel
[Link]
A. Madani (abdellah_madani@[Link])
21

Cahier des charges : description des fonctionnalits


dsires (dcrites par lutilisateur)

Spcifications : dcrit ce que doit remplir le logiciel


(dcrites par le dveloppeurs) :

Modle Objet : Classes et objets

Scnarios des cas dutilisation : diffrents enchanements


possibles du point de vue de lutilisateur

HM : propositions des interfaces homme-machines

.
22
Cycle de vie dun logiciel
[Link]
A. Madani (abdellah_madani@[Link])
22

Calendrier du projet: indique les tches, les


dlais et les ressources

Plan de test: indique les procdures de tests


appliquer

Manuel dutilisateur: mode demploi du logiciel


dans sa version finale
23
Cycle de vie dun logiciel
[Link]
A. Madani (abdellah_madani@[Link])
23

Code source: code complet du produit fini

Rapport des tests: dcrit les tests effectus et


les ractions du systme

Rapport des dfauts: dcrit les comportements


du systme qui nont pas satisfait le client.
24
2istori3ue
Deux approches

Approche fonctionnelle

1960 fin 1970

l'important c'est les traitements

Sparation nette des donnes et traitements

Approche objet

1980 dbut 1990 : premires gnration

L'important c'est l'objet

Objet = donnes + traitements


25
2istori3ue
Dbut des annes 1990

les premiers processus de dveloppement ##


apparaissent

prolifration des mthodes et notations taient la


cause de grande confusion :

mthode ##$ de Grady Booch (1991)

mthode #%& de James Rumbaugh (1991)

mthode ##'( de var Jacobson (1991)

mthode ##)*##$ de +oad and ,ourdon (1992)

mthode de 'chlaer and %ellor (1992)

Etc.
2"
2istori3ue
Fin 1994

J. Rumbaugh rejoint G. Booch chez Rational Software

OMT + OOD -nified %ethod (oct 1995)


Fin 1995

. Jacobson les rejoint chez Rational Software

Unified Method + OOSE -%. 0/9 (juin 1996)


Dbut 1997

Partenaires divers : Microsoft, Oracle, BM, HP et autres leaders


collaborent

-%. 1/0 (jan 199)


Fin 1997

lOMG (Object Management Group) retient -%. 1/1 comme


nor!e de !odlisation
2$
2istori3ue
Les versions se succdent :

Dbut 1998

UML 1.2

En 1998

UML 1.3

En 2001

UML1.4

En 2003

UML 1.5

En 2005

UML 2.0
2&
4uest ce 3ue UML 5
UML(-nified %odeling .anguage0 un
langage de !odlisation unifi

.angage = syntaxe + smantique :

syntaxe : notations graphiques consistant


essentiellement en des reprsentations
conceptuelles d'un systme

smantique : sens prcis pour chaque notation


2*
4uest ce 3ue UML 5

-%. est caractris par 1

un travail d'expert

utilise lapproche oriente objet

normalis, riche

Formel : sa notation limite les ambigut et les


incomprhensions

langage ouvert

NDPENDANT du langage de programmation

Domaine d'application : permet de modliser n'importe quel


systme

Support par plusieurs outils (AGL) : Objecteering, Open


tools, Rational Rose, PowerAMC, WinDesign, .
3+
4uest ce 3ue UML 5
Attention
UML est un langage (et non pas une mthode)
qui :

permet de reprsenter les modles

ne dfinit pas le processus d'laboration des


modles.
31
Diagrammes d'UML
$iagra!!e
Classes
+o!posants $ploie!ent +olla2oration
Etats Transitions Squence
#2jets
Cas d utilisation
+as d 3utilisation +lasses 4tats &ransitions '5uence
(st sorte de
)cti6it
UML1.1 comprend 9 de diagrammes :
32
Diagrammes d'UML
UML dfinit deux types de diagrammes, structurels
(statiques) et comportementaux (dynamiques)

%odlisation de la structure

diagramme de classes

diagramme dobjets

diagramme de composants

diagramme de dploiement

%odlisation du co!porte!ent

diagramme de cas d'utilisation

diagramme dtats

diagramme dactivits

diagramme de collaboration

diagramme de squence
33
Diagramme dUML
Les diagramme dUML peuvent tre utiliss pour
reprsenter diffrents points de vues :

7ue e8terne : vue du systme par ses utilisateurs


finaux

7ue logi5ue stati5ue : structure des objets et leurs


relations

7ue logi5ue d9na!i5ue : comportement du


systme

7ue d3i!pl!entation : composants logiciels

7ue de dploie!ent : rpartition des composants


34
Diagramme dUML
Composants
Dploiement
Cas dutilisation
Activits
tats transitions
Collaboration
Squence
6ue 7.([Link]
(co.(osants logiciels!
6ue d([Link]
([Link]
di.(lantation!
6ue logi3ue dyna.i3ue
(Co.([Link]!
Vue logique statique
(Structure des objets)
6ue e9terne
()onctions syst.e!
Objets
Classes
35
UML
!iag"amme# de cla##e# et
d$objet#
3"
1iagra..e de classes

Permet de donner une vue statique du systme en


terme de :

Classes d'objets

Relations entre classes

Associations

agrgation/composition

hritage

La description du diagramme de classes est centre


sur trois concepts :

Le concept dobjets

Le concept de classes dobjets comprenant des attributs et


des oprations

Les diffrents types de relations entre classes.


3$
Conce(t d:o%-et
#2jet = un concept, abstraction ou une chose
autonome qui a un sens dans le contexte du
systme modliser

une personne : le client El Alami M.

un o2jet concret : le livre intitul nitiation .

un o2jet a2strait : le compte bancaire n


1915233C

.
3&
Conce(t d:o%-et
Remarque

Un objet doit :

tre autonome

Avoir une signification dans le systme

En relation avec d'autres objets

Ne pas confondre "autonomie" avec


"indpendance"!!

Exemples

Gestion de stock : Clients, Commandes, Articles, .

Gestion scolaire : tudiants, Modules, Filires, .


3*
Conce(t d:attri%ut

Un attribut est une proprit, caractristique


dun objet. Par exemple :

un client a un no!, un prno!, une adresse, un


code client, .

un compte bancaire a un nu!ro, un solde, .

Un attribut doit (gnralement) avoir une


6aleur ato!i5ue
4+
Conce(t d:attri%ut
La description dun attribut comporte :
7isi2ilit attri2ut1t9pe:; 6aleur initiale<
O :

Visibilit :

+ (publique, public) : visible par tous

- (prive, private) : visible seulement dans la classe

# (protge, protected) : visible seulement dans la classe


et dans les sous-classes de la classe.

Nom dattribut

Type de lattribut

Valeur initiale (facultative)


41
Conce(t d:attri%ut
Le type dun attribut peut tre :

Un type de base : entier, rel, .

Une expression complexe : tableaux,


enregistrements, .

Une classe
Exemples dattributs :

% couleu" : enum&'ouge( )e"t( *leu+

, b : boolean - ."ai

% /lient : 0e"#onne
42
Conce(t d:attri%ut
Lorsquun attribut peut tre driv ou calcul
partir d'autres attributs, il est prcd dun *.
Par exemple, une classe Rectangle peut
contenir les attributs suivants :

longueur : rel,

largeur : rel,

/surface : rel.
Rectangl es
-
-
-
Largeur
Longueur
/Surface
: fl oat
: fl oat
: fl oat
= 10
43
Conce(t d:attri%ut
On distingue deux types d'attributs :

Attribut d'instance :

Chaque instance de la classe possde une valeur


particulire pour cet attribut

Notation : 7isi2ilit attri2ut1t9pe:; 6aleur initiale<

Attribut de classe

Toutes les instances de la classe possde la mme valeur


pour cet attribut

Notation : 7isi2ilit attri2ut1t9pe:; 6aleur initiale<

quivalent en C++, Java : static


44
Conce(t d:attri%ut
#prations d=instances
#prations de classes
Wi ndow
-
-
-
-
tai l l e
vi si bi l i t
tai l l e_defaut
tai l l e_max
: Rectangle
: bool ean
: Rectangle
: Rectangle
= (100,100)
= true
+
+
+
+
+
<<Constructor>> Wi ndow ()
affi cher ()
cacher ()
getTai l l e_max ()
getTai l l e_defaut ()
: voi d
: voi d
: Rectangl e
: Rectangl e
)ttri2uts d=instances
)ttri2uts de classes
45
Concet d'oration et mt!ode
Une opration est :

un service offert par la classe

une fonction ou une transformation qui peut


tre applique aux objets dune classe.

permet de dcrire le comportement dun


objet. Par exemple, Embaucher ,
Licencier et Payer sont des
oprations de la classe Socit .
4"
Concet d'oration et mt!ode
Une mthode est

limplmentation dun service offert par la


classe (opration).

de diffrents types :

accesseurs (get...): renvoie une information sur


l'tat d'un objet (fonction)

modifieurs (set...): modifie l'tat de l'objet


(procdure)

constructeurs: initialise une nouvelle instance


4$
Concet d'oration et mt!ode
La description dune opration comporte :
7isi2ilit opration>:argu!ents1t9pe:;6aleur
initiale<<01t9pe de rsultat

Visibilit de lopration (-, +, #)

Nom de lopration

Liste des arguments avec leurs types et


ventuellement leurs valeurs par dfaut

Le type du rsultat retourn


4&
Concet d'oration et mt!ode
Exemples d'oprations :
Compte
-
-
-
NCompte
Sol de
Cl i ent
: Stri ng
: fl oat
: Personne
+
+
+
+
<<Constructor>> Compte ()
Deposer (fl oat somme)
Reti rer (fl oat somme)
Avoi rSol de ()
: voi d
: fl oat
: Stri ng
4*
Conce(t de classes do%-ets

+lasse = ensemble dobjets ayant les mmes


proprits (attributs) et le mme comportement
(oprations)

tous les clients sont dcrits par un no!, un prno!, . et


peuvent !archer, parler,courir, .

tous les comptes bancaires ont un nu!ro, un solde, .


et sur lesquels on peut dposer ou retirer l'argent, ou les
consulter

Un objet est instance dune classe, et le fait de


crer un objet d'une classe est dite instanciation.
5+
Conce(t de classes do%-ets
+lasse reprsente par un rectangle trois
parties :

Partie 1 : Nom de la classe

Partie 2 : Attributs (proprits, champs)

Partie 3 : Mthodes (fonctions, oprations)


51
Conce(t de classes do%-ets
Compte
-
-
#
NCompte
Sol de
Cl i ent
: Stri ng
: fl oat
: Personne
= 100
+
+
+
+
<<Constructor>> Compte ()
Deposer (fl oat somme)
Reti rer (fl oat somme)
Avoi rSol de ()
: voi d
: fl oat
: Stri ng
52
Conce(t de classe d:o%-ets
On peut ne pas visualiser les attributs et/ou les
oprations, afin de ne pas alourdir
inutilement le schma.
?o! de la classe
)ttri2uts
#prations
?o! de la classe
)ttri2uts
?o! de la classe ?o! de la classe
#prations
53
8nca(sulation; visi%ilit et inter)ace

Encapsulation est le mcanisme de


regrouper les attributs et les oprations au
sein dune mme entit (classe)

Ce regroupant permet dempcher daccder


directement aux donnes par un autre moyen
que les services proposs (oprations)

Ces services offerts aux utilisateurs


dfinissent ce que lon appelle linterface de
la classe.
54
8nca(sulation; visi%ilit et inter)ace
Donnes
"raitement
}
}
Partie statique, passive
Partie cache, prive
Partie dynamique, comportementale
Partie visible, publique
nterface avec lextrieur
User
55
Mt<odes et classes a%straites

Une mthode est dite abstraite si on connat


son entte, mais pas la manire dont elle
peut tre ralise

Une classe est dite abstraite lorsquelle


dfinit au moins une mthode abstraite
@or!eAo!tri5ue
Ba2stractC
D
D
a2s
ord
1 int
1 int
E
E
E
E
Ba2stractCsurface >0
get)2s >0
get#rd >0
/// >0
1 dou2le
1 int
1 int
5"
Classe = 7nter)ace >

Une interface est une classe spciale dont


toutes les mthodes sont abstraites

Une interface se note en UML avec le


strotype <<interface>> ou symbole
@or!e
5$
?ac@age

Un package permet de regrouper des


classes, des interfaces et des packages.

Les classes, les interfaces et les packages


ne peuvent quun seul package dans lequel
ils sont regroups
5&
?ac@age

Un package est reprsent par un rectangle


possdant un onglet dans lequel est inscrit le
nom du package
5*
7.(ort des (ac@ages

La relation dimport permet une classe dun


package dutiliser les classes dun autre
package.

La relation est monodirectionnelle : elle


comporte un package source et un package
cible.
"+
7.(ort de (ac@ages

La relation dimport sexprime avec une


flche en pointill

Dans lexemple, la classe 'Afficheur a besoin


des classes du package 'Dessin
"1
#ssociations

Relation existant entre une, deux ou


plusieurs classes.

Une association porte un nom (signification)

Reprsente par une ligne rectiligne


"2
#ssociations
Remarques

une association fonctionne (gnralement)


dans les 2 sens (bidirectionnelle)

termes associs : Nom, Sens de lecture,


degr (arit), Multiplicit, Rle, navigabilit et
le qualificateur
"3
#ssociations
#om et sens de lecture

Dcrit la nature (signification) de lassociation

Montre la direction de lecture de lassociation


"4
#ssociations
$%le dune association
Dcrit le rle dune classe dans une association
"5
#ssociations
/Ale dune association
Utile surtout dans deux cas :

Lorsquon a plusieurs associations entre deux


classes avec des rles diffrents

une relation rflexive : relation entre deux


instances dune mme classe
0..4
femme
0..1
mari
Personne
Pi l ote
Passager
Avi on
Personne
""
#ssociations
Classe association
Une association peut avoir des attributs = classeDassociation
"$
#ssociations
Classe association

Les classes association sont utiles quand il y


a des attributs qui sont pertinents
lassociation, mais aucune des classes
impliques.
1..*
0..1
Personne Entrepri se
Empl oi
-
-
Pri ode
Sal ai re
: i nt
: fl oat
"&
#ssociations

degr dune association = nombre de classes participantes

Association unaire : relie 2 instances d'une classe

association binaire : relie 2 classes

association ternaire : relie 3 classes

association n-aire : relie n classes


"*
#ssociations
Multiplicit = nombre de participations dune classe dans une
association

indique chaque extrmit dune association

sous la forme min..max

min, max = 0, 1, *

Exemple gnral

Exemple concret
$+
#ssociations

Exemple ternaire

Pour un couple dinstances de la classe A et de la classe B,


il a au min! r1 instances de la classe " et au max! r2 instances,

#
$1
#ssociations
otation abrge des multiplicits !
1 $!!$ %exactement $&
* '!!( %' ou plusieurs&
n n !! n %exactement n&
1//F 1 ou plusieurs (1 ou plus)
0//1 0 ou 1 (au plus un)
1//100 entre 1 et 100
2G4G5 2, 4 ou 5
$2
#ssociation
Baviga%ilit

Une association est par dfaut


bidirectionnelle.

Cependant, il peut tre utile de se limiter


une seule direction association navigable
1..*
1
Commandes
Cl i ents
$3
#ssociation
Baviga%ilit (89e.(le!

Spcification : on doit tre en mesure de savoir le


client qui a fait la commande et non toutes les
commandes dun client

Conception :

mplmentation : la classe commande doit avoir un


champ faisant rfrence la classe client
1..*
1
Commandes
Cl i ents
$4
#ssociation
Baviga%ilit (89ercice!
Un tudiant peut avoir jusqu 5 copies
dexamens. un tudiant sont associes ses
copies dexamens, mais on ne doit pas
autoriser laccs lauteur de la copie
(notamment avant la correction des copies)
$5
4uali)ication d:une association

La qualification dune association permet de


restreindre la multiplicit dune association.

La qualification se reprsente par un


rectangle plac au niveau de la classe
source du qualificatif.
$"
4uali)ication d:une association
Exemple : une banque contient plusieurs
comptes, d'o le diagramme :
Han5ue +o!pte
1 1//F
Han5ue
+o!pte
?+o!pte
1 1
Par contre, si on connat le NCompte, il y a un
et un seul compte, on obtient alors :
$$
4uali)ication d:une association
Exercice

Un avion est compos de plusieurs siges,


mais dans une range il y a seulement
quatre siges.
$&
#grgation
Type particulier dassociation dans laquelle :

Classe agrgat (compos), classes agrge


(composant)

Entre les deux, il existe une relation de type est


compos de
"grgat "grge
$*
#grgation

Les parties (les composants) sont sparables


de Lagrgat (le tout)

La suppression dune quipe nimplique pas


la suppression des personnes qui la
composent
&+
#grgation
1..*
* 0..*
0..*
1..1
0..1
1..1
0..1
Desti natai re Fi chi er
Ti tre
Texte
E-Mai l
ci , on expri me qu'un fi chi er peut tre attach un emai l (ou a
pl usi eurs, ou mme aucun) et qu'un emai l peut (ou non)
attacher (conteni r une copi e) une ou pl usi eurs fi chi ers.
Un agrgat (compos) peut tre multiple.
&1
Co.(osition

La composition est un cas particulier dune


agrgation dans laquelle la vie des
composants (lment) est lie celle de
lagrgat (compos) : si lagrgat est dtruit
(ou dplac), ses composants le sont aussi.

Dun autre ct, et contrairement


lagrgation, une instance de composant ne
peut tre lie qua un seul agrgat.

La composition se reprsente par un losange


noir (plein).
&2
Co.(osition

la suppression dun ob)et a*r*at entra+ne la suppression des


ob)ets a*r*s
&3
Co.(osition

Un document est compos de plusieurs


paragraphes, qui, son tour, est compos de
plusieurs phrases

Remarquer la propagation des oprations


(copie, suppression,.)
&4
Gnralisation C '(cialisation et
<ritage

La gnralisation est la relation entre une


classe et une ou plusieurs de ses versions
raffines.

On appelle la classe dont on tire les


prcisions la super-classe et les autres
classes les sous-classes.

Cest une relation de type est un (is a) ou


est une sorte de .

La notation utilise pour la gnralisation est


le triangle
&5
Gnralisation C '(cialisation et <ritage

gnraliser = mettre en facteur des classes super-classe

spcialiser = dcrire de nouveaux dtails sous-classes

comparable une association de type est un, is a, kind of

une sous-classe hrite des attributs et oprations de sa super-classe


(classe mre)
&"
Gnralisation C '(cialisation et
<ritage
La classe spcialise (sous-classe)

hrite les mthodes et les attributs de la


classe gnrale (super-classe)

peut ajouter ses propres attributs et


mthodes.

peut redfinir le comportement dune


mthode.
&$
Gnralisation C '(cialisation et
<ritage
Compte
-
-
NCompte
Sol de
: Stri ng
: fl oat
+
+
+
+
<<Constructor>> Compte ()
Dposer (fl oat Somme)
Reti rer (fl oat Somme)
Avoi rSol de ()
: voi d
: fl oat
: Stri ng
CompteEpargne
- Taux : fl oat
+ Avoi rSol de () : Stri ng
&&
Gnralisation C '(cialisation et
<ritage
Remarques

La gnralisation et la spcialisation sont


deux faons pour voir la mme relation, top-
down (spcialisation) ou bottom-up
(gnralisation).

L'hritage est limplmentation de la relation


de la gnralisation/spcialisation.

Une classe peut hriter de plusieurs classes,


on parle alors dun hritage multiple.
&*
Gnralisation C '(cialisation et
<ritage
Spcialisation
Gnralisation
Super classe, classe mre
Sous classes
Classes filles
Classes drives
Personnes
-
-
Code
Nom
: i nt
: Stri ng
+
+
+
<<Constructor>> Personnes (i nt Code, Stri ng Nom)
getNom ()
getnf ()
: Stri ng
: Stri ng
Etudi ants
- Sal ai re : fl oat
+
+
+
<<Constructor>> Etudi ants (i nt Code, Stri ng Nom, fl oat Sal ai re)
getnf ()
getSal ai re ()
: Stri ng
: fl oat
Empl oyes
- Fi l i ere : Stri ng
+
+
+
<<Constructor>> Empl oyes (i nt Code, Stri ng Nom, Stri ng Fi l i ere)
getnf ()
getFi l i ere ()
: Stri ng
: Stri ng
*+
Gnralisation C '(cialisation

une classe peut hriter de plusieurs super-classes


= hritage !ultiple
*1
Gnralisation C '(cialisation

pol9!orphis!e = oprations de mme nom, pol9!orphis!e


= comportement spcifique
*2
Contraintes sur les associations

Concepts avancs des associations

Permettent dimposer des rgles respecter


lors du passage limplmentation

l est possible dattribuer toutes sortes de


contraintes une association

Les contraintes sont reprsentes entre


accolades et peuvent tre exprimes dans
nimporte quel langage (y compris OCL)
*3
Contraintes sur les associations
Les contraintes (prdfinies) souvent utilises :

{ordonn}

{sous ensemble}

{xor}

{addOnly}

{frozen}
*4
Contraintes sur les associations
contrainte DordonnE
ndique que les objets seront ordonns
chaque opration de cration, modification,
suppression, .
1
0..*
{Ordonn}
Personne
Compte
Les comptes dune personne sont ordonns
*5
Contraintes sur les associations
contrainte DsousFense.%leE

ndique quune collection est incluse dans


une autre

Ncessite la prsence dau moins deux


relations
1..*
1..*
{sous-ensembl e}
Ecol e
Personnes
Les personnes qui jouent le rle de dlgu font partie des personnes
qui jouent le rle de parents dlves
Parent dlve
Dlgu
*"
Contraintes sur les associations
contrainte D9orE
ndique que parmi un groupe dassociations,
une seule est valide la fois
1
{xor}
1
1
1
PC Portabl e
Batteri e
Secteur
Un PC Portable est aliment soit partir
dune batterie, soit partir dun secteur
*$
Contraintes sur les associations
contrainte Dadd,nlyE
La contrainte prdfinie {addOnly} autorise
lajout de nouveaux objets, mais pas leur
suppression ni leur mise jour.
1
1//F
1
0//F
Personne .iste
(nfants
Badd#nl9C
*&
Contraintes sur les associations
contrainte D)roGenE
La contrainte prdfinie {frozen} interdit lajout,
la suppression ou la mise jour des liens
dun objet vers les objets de la classe
associe, aprs linitialisation du premier.
2
parent
0//F
enfant
Personne
BfroIenC
**
Contraintes sur les associations
89ercices
Modliser sous forme de diagrammes de
classes :
1. Le prsident dun comit doit tre membre
du comit
2. Une personne qui soumit un article un
journal ne peut pas valuer son propre
article
1++
Contraintes sur les associations
89ercices
Modliser sous forme de diagrammes de
classes :
1. Un vhicule est compos dau moins 2
roues. Le nombre de roues dun vhicule ne
peut pas varier
2. Les employs de lhtel nont pas le droit de
prendre une chambre dans le mme htel.
1+1
Contraintes sur les associations
89ercices
Une personne

Est ne dans un pays (ce pays ne peut tre


modifie)

A visit un certain nombre de pays, dans un


ordre donn, et que le nombre de pays
visits ne peut que crotre

Aimerait encore visiter toute une liste de


pays, et que cette liste est ordonne.
1+2
89e.(le de diagra..e de classes
(1istri%uteur #uto.ati3ue de Han3ue I 1#H!
1+3
1iagra..e do%-ets

Reprsente les objets (instances de classes)


et les liens (instances de relations) un
instant donn

Peut tre utilis pour :

llustrer le modle de classes en montrant un


exemple qui explique le modle

Prciser certains aspects du systme

Exprimer une exception en modlisant des cas


particuliers

Etc.
1+4
1iagra..e do%-ets

Le nom dun objet est soulign

Nom : Classe

Nom

:Classe
1+5
1iagra..e do%-ets
Exemple :

Une entreprise emploie au moins deux


personnes

Une personne travaille dans au plus deux


entreprises
1+"
1iagra..e do%-ets
89e.(le
1(ntreprise
p11Personne p21Personne p31Personne
e11(ntreprise
1Personne
p41Personne
0//2
2//F
(ntreprise
Personne
1+$
8ta(es (our ta%lir un diagra..e
A partir dune description du systme :
1/ Jdentifier un premier ensemble de classes candidates
2/ Jdentifier les associations et les attri2uts
3/ Jdentifier les gnralisations
4/ .ister les traitements, choisir les oprations
5/ 7rifier le modle obtenu
6/ Jtrer jusqu satisfaction .
a! ,upprimer les transiti#its
b! ,assurer que le sc-ma rpond la demande
1+&
UML
!iag"amme# de ca#
d1utili#ation
1+*
1iagra..e des cas dutilisation

Dcrit, sous forme dactions et de ractions,


le comportement dun systme du point de
vue dun utilisateur.

Permet de dfinir les limites du systme et


ses relations avec lenvironnement.
11+
1iagra..e de cas d:utilisation

Sert modliser les aspects dynamiques


d'un systme (Contrairement aux
diagrammes de classes).

Fait ressortir les acteurs et les fonctions


offertes par le systme.

Utilis pour modliser les exigences


(besoins) du client
111
1iagra..es des cas d:utilisation
Comportent plusieurs lments :

Acteurs

Cas d'utilisation

Relations de dpendances, de
gnralisations et d'associations
112
#cteurs

UML nemploi pas le terme dutilisateur mais


dacteur.

Le terme acteur ne dsigne pas seulement


des utilisateurs humains mais galement les
autres systmes (machines, programmes, .)

Un acteur est un rle jou par une entit


externe qui agit sur le systme (Comptabilit,
service commercial, .), en changeant de
linformation (en entre et en sortie)
113
#cteurs
Remarques

La mme personne physique peut jouer le


rle de plusieurs acteurs (Chef dagence est
un client de la banque).

Dautres part, plusieurs personnes peuvent


jouer le mme rle, et donc agir comme un
mme acteur (plusieurs personnes peuvent
jouer le rle dadministrateur).
114
#cteurs
Peut tre reprsent de deux manires
diffrentes :

Petit personnage (stick man)

Classe strotype
Nom Acteur
KK)cteurLL
?o! )cteur
115
#cteurs
Les acteurs peuvent tre de trois types :

Humains : utilisateurs du logiciel travers


son interface graphique, par exemple.

Logiciels : disponibles qui communiquent


avec le systme grce une interface
logicielle (AP, ODBC, .)

Matriels : exploitant les donnes du systme


ou qui sont pilots par le systme
(mprimante, robots, automates, .)
11"
#cteurs
Secrtai re
Etudi ant
'9stM!e de Aestion
'colaire
<<acteur>>
mpri mante
<<acteur>>
Site Web de l 'tabl i ssement
11$
#cteurs
Mais du point de vue systme on distingue
deux types :

Acteurs principaux : utilisent les fonctions


principales du systme. Par exemple, le
client pour un distributeur de billets.

Acteurs secondaires : effectuent des tches


administratives ou de maintenance. Par
exemple, la personne qui recharge la caisse
contenue dans le distributeur.
11&
#cteurs
Un acteur peut tre une
spcialisation d'un autre
acteur dj dfini.
Dans ce cas, on utilise la
relation de
gnralisation/spcialisation.
Acteur gnral
Acteur spci al i s
11*
Cas d:utilisation

ntroduit par var Jacobson en 1992 dans sa


mthode Object-Oriented Software
Engineering (OOSE).

Technique de description du systme tudi


privilgiant le point de vue de l'utilisateur.

Repris par UML dans la but de :

Effectuer une bonne dlimitation du systme

Amliorer la comprhension de son


fonctionnement interne
12+
Cas d:utilisation
Les cas dutilisations

Permettent de modliser les attentes (besoins) des


utilisateurs

Reprsentent les fonctionnalits du systme

Suite dvnements, initie par des acteurs, qui


correspond une utilisation particulire du systme

Limage dune fonctionnalit du systme,


dclenche en rponse la stimulation dun acteur
externe.
121
Cas d:utilisation
Un cas d'utilisation est reprsent par une
ellipse en trait plein, contenant son nom.
Nom Cas Uti l i sati on
122
'tructuration des cas d:utilisation
Aprs avoir identifi les acteurs et les cas
d'utilisation, il est utile de restructurer
l'ensemble des cas d'utilisation que l'on a fait
apparatre afin de rechercher les :

Comportements partags

Cas particuliers, exceptions, variantes

Gnralisations/spcialisations.
123
'tructuration des cas d:utilisation
UML dfinit trois types de relations
standardises entre cas d'utilisation :

Une relation d'inclusion, formalise par la


dpendance include

Une relation d'extension, formalise par la


dpendance extend

Une relation de gnralisation/spcialisation


124
/elation d:inclusion
Lors de la description des cas d'utilisation, il
apparat qu'il existe des sous-ensembles
communs plusieurs cas d'utilisation, il
convient donc de factoriser ces
fonctionnalits en crant de nouveaux cas
d'utilisation qui sont utiliss par les cas
d'utilisation qui les avaient en commun.
125
/elation d:inclusion

A inclut B : le cas A inclut obligatoirement le


comportement dfinit par le cas B; permet de
factoriser des fonctionnalits partages

Le cas d'utilisation point par la flche (dans


notre cas B) est une sous partie de l'autre
cas d'utilisation (A, dans notre exemple).
<<i ncl ude>>
A
B
12"
/elation d:inclusion
<<i ncl ude>>
<<i ncl ude>>
<<i ncl ude>>
<<i ncl ude>>
Reti rer de l 'argent
Dposer de l 'argent
Effectuer des vi rements
Consul ter sol de
S'authenti fi er
Les cas d'utilisation "Dposer de
l'argent", "Retirer de l'argent",
"Effectuer des virements" et "Consulter
solde" incorporent de faon explicite le
cas d'utilisation "S'authentifier", un
endroit spcifi dans leurs
enchanements.
12$
/elation d:inclusion
On utilise cette relation pour viter de dcrire
plusieurs fois un mme enchanement
d'actions. Ainsi, on est amen factoriser un
comportement commun plusieurs cas
d'utilisation dans un cas d'utilisation part.
12&
/elation d:inclusion
Remarques

La relation include na pour seul objectif que de


factoriser une partie de la description dun cas
dutilisation qui serait commune dautres cas
dutilisation.

Le cas dutilisation inclus dans les autres cas


dutilisation nest pas proprement parl un vrai cas
dutilisation car il na pas dacteur dclencheur ou
receveur dvnement. l est juste un artifice pour
faire de la rutilisation dune portion de texte.
12*
/elation d:inclusion
Rsum

Une instance du cas source inclut


obligatoirement le comportement dcrit par le
cas dutilisation destination

Permet de dcomposer des comportements


et de dfinir les comportements partages
entre plusieurs cas dutilisation
~> Factoriser
13+
/elation d:e9tension
La relation strotype extend permet
d'tendre les interactions et donc les
fonctions dcrites dans les cas d'utilisation,
mais sous certaines contraintes.
131
/elation d:e9tension

Le CU source (B) ajoute, sous certaines conditions,


son comportement au CU destination (A)

En dautres termes, le CU B peut tre appel au


cours de lexcution du CU A

Le comportement ajout sinsre au niveau dun


point dextension dfinit dans le CU destination
<<extend>>
B
A
Poi nt d'i nserti on
132
/elation d:e9tension

Le cas d'utilisation de destination peut


fonctionner tout seul, mais il peut galement
tre complt par un autre cas d'utilisation,
sous certaines conditions.

On utilise principalement cette relation pour


sparer le comportement optionnel (les
variantes) du comportement obligatoire.
133
/elation d:e9tension
Exemple :
Au moment de l'authentification, il se peut que
le guichet retient la carte.
<<extend>>
Reteni r l a carte
S'authenti fi er
134
/elations dinclusion 6' d:e9tension

La relation extend" montre une possibilit


d'excution d'interactions qui augmenteront
les fonctionnalits du cas tendu, mais de
faon optionnelle, non obligatoire,

La relation "include" suppose une obligation


d'excution des interactions dans le cas de
base.
135
/elation d:<ritage

l peut galement exister une relation


d'hritage entre cas d'utilisation.

Cette relation exprime une relation de


spcialisation/gnralisation au sens
classique.
13"
/elation d:<ritage I 89e.(le
Dans un systme d'agence de voyage, un acteur
"Touriste" peut participer un cas d'utilisation
de base qui est "Rserver voyage", qui
suppose par exemple, des interactions
basiques au comptoir de l'agence. Une
rservation peut tre ralise par tlphone ou
par nternet.
13$
/elation d:<ritage I 89e.(le

On voit qu'il ne s'agit pas d'une relation "extend", car


la rservation par nternet n'tend pas les interactions
ni les fonctionnalits du cas d'utilisation "Rserver
voyage".

Les deux cas d'utilisation "Rservation voyage" et


"Rserver voyage par nternet" sont lis : la
rservation par nternet est un cas particulier de
rservation.

De faon gnrale en objet, une situation de cas


particulier se traduit par une relation de
gnralisation/spcialisation.
13&
/elation d:<ritage I 89e.(le
Reserver voyage
Rserver voyage par tl phone
Rserver voyage par nternet
13*
'tructuration entre cas dutilisation
Rsum
Les cas peuvent tre structures par des relations :

A inclut B : le cas A inclut obligatoirement le


comportement dfinit par le cas B; permet de
factoriser des fonctionnalits partages

A tend B : le cas A est une extension optionnelle


du cas B un certain point de son excution.

A gnralise B : le cas B est un cas particulier du


cas A.
14+
/elations entre cas dutilisation I
89e.(le
Un client peut effectuer un retrait 2ancaire. Le
retrait peut tre effectu sur place ou par
Jnternet. Le client doit Ntre identifi (en
fournissant son code daccs) pour effectuer
un retrait, mais si le !ontant dpasse
500$O, la 6rification du solde de son
co!pte est ralise.
141
/elations entre cas dutilisation
<<i ncl ude>>
<<extend>>
Vi rement
Vi rement par nternet
Vi rement sur pl ace
denti fi cati on
Vri fi cati on sol de compte
Cl i ent di stant
Cl i ent l ocal
Montant > 500 DH
142
1escri(tion des cas dutilisation

Le diagramme de cas dutilisation dcrit les


grandes fonctions dun systme du point de
vue des acteurs.

Mais il nexpose pas de faon dtaille le


dialogue entre les acteurs et les cas
dutilisation.

ncessit de dcrire ce dialogue


143
1escri(tion des cas dutilisation
Deux faons sont couramment utilises pour
dcrire les cas dutilisation :

Description textuelle

Description laide dun diagramme de


squence (voir chapitre suivant)
144
1escri(tion des cas dutilisation
(descri(tion te9tuelle!

dentification

Nom du cas : retrait dargent

Objectif : dtaille les tapes permettant un


guichetier deffectuer des oprations de retrait par
un client

Acteurs : Guichetier (Principal), Systme central


(Secondaire)
145
1escri(tion des cas dutilisation
(descri(tion te9tuelle!

Scnarios

Scnario nominal
1. Le Guichetier saisit le numro de compte client
2. Lapplication valide le compte auprs du SC
3. Lapplication demande le type dopration au Guichetier
4. Le Guichetier slectionne un retrait de 200 DH
5. Le systme interroge le SC pour sassurer que le compte
est suffisamment approvisionn.
6. Le SC effectue le dbit du compte
7. Le systme notifie au guichetier quil peut dlivrer le
montant demand
14"
1escri(tion des cas dutilisation
(descri(tion te9tuelle!

Scnarios

Scnario alternatif (exception)


1. En (5) : si le compte nest pas suffisamment
approvisionn ..
14$
1escri(tion des cas dutilisation
(descri(tion (ar diagra..e de s3uence!
'aisie du nu!ro de co!pte client
$e!ande de 6alidit de co!pte
#P
$e!ande t9pe opration
Qetrait>so!!e0
+o!pte suffisa!!ent appro6iosionn
$2iter le co!pte
+o!pte d2it
)utorisation de dli6rer so!!e
7rfification
Guichetier Systme Central
Systme
14&
7ntrJts des cas dutilisation
Les CU obligent les utilisateurs :

Dfinir la manire dont ils voudraient interagir


avec le systme

Prciser quelles informations ils entendent


changer avec le systme

Dcrire ce qui doit tre fait pour obtenir le


rsultat escompt
14*
1iagra..e des cas d:utilisation

Le diagramme des cas d'utilisation regroupe dans


un mme schma les acteurs et les cas d'utilisation
en les reliant par des relations. Le systme tant
dlimit par un cadre rectangulaire.

La reprsentation de base d'un cas d'utilisation est


une ellipse contenant le nom du cas. L'interaction
entre un acteur et un cas d'utilisation se reprsente
comme une association. Elle peut comporter des
multiplicits comme toute association entre classes.
15+
1iagra..e des cas d:utilisation
<<i ncl ude>>
<<i ncl ude>>
<<i ncl ude>>
<<i ncl ude>>
<<extend>>
Cl i ent
Agent
Techni ci en
Dposer de l 'argent
Reti rer de l 'argent
Consul ter l e sol de
Effectuer des vi rements entre comptes
Ravi tai l l er
Rparer
S'authenti fi er
Reteni r l a carte
Fourni r un l ogi n et un mot
de passe
151
Kta(es de construction du diagra..e
des cas d:utilisation
Pour modliser le diagramme des cas d'utilisation, il faut :

dentifier les acteurs qui entourent le systme. Certains acteurs


utilisent le systme pour accomplir des tches (acteurs
principaux), d'autres effectuent des tches de maintenance ou
d'administration (acteurs secondaires).

Organiser les acteurs selon une hirarchisation de


gnralisation/spcialisation

ntgrer les acteurs au diagramme en spcifiant les cas


d'utilisation auxquels ils se rapportent

Structurer les cas d'utilisation pour faire apparatre les


comportement partags (relation d'inclusion), les cas particuliers
(gnralisation/spcialisation) ou options (relation d'extension)
152
UML
Diagrammes de squences
153
1iagra..e de s3uences

Reprsenter les interactions entre objets en


prcisant la chronologie des changes de
messages

Reprsente une instance dun cas dutilisation (les


scnarios possible dun cas dutilisation donn)

Montre sous forme de scnarios, la chronologie des


envoies de messages issus dun cas dutilisation

Le diagramme de squence fait ressortir :

Les acteurs

Les objets

Les messages
154
1iagra..e de s3uences
Message_1
Message_2
Obj et_1 Obj et_2 Obj et_3
Li gne de vi e de
l 'obj et
155
1iagra..e de s3uences

Un objet est reprsent par un rectangle et


une ligne verticale (ligne de vie de lobjet)

Les objets communiquent en changeant des


messages reprsents par des flches
orientes de lmetteur au rcepteur

Lordonnancement verticale des messages


indique la chronologie
15"
1iagra..e de s3uences

Un message reu par un objet dclenche


lexcution dun opration

Un message envoy par objet correspond :

Demander un service dun autre objet

Renvoyer le rsultat dun opration


15$
1iagra..e de s3uences I 89e.(le
Compte
-
-
NCompte
Sol de
: Stri ng
: fl oat
+
+
+
+
<<Constructor>> Compte (i nt n, fl oat s)
dposer (fl oat somme)
reti rer (fl oat somme)
consul ter ()
: voi d
: fl oat
: fl oat
Le client demande un service (dposer de largent) lobjet Compte
Le compte reoit le message et dclenche lopration de mme nom
Le compte retourne le rsultat (le solde actuel)
15&
1iagra..e de s3uences
Plusieurs concepts additionnels :

Priode dactivit

Types de messages

Cration et destruction dobjets

Structures de contrles
15*
?riode dactivit

Correspond au temps pendant lequel un


objet fait une action

Reprsente par une bande rectangulaire


superpose la ligne de vie de lobjet
Message_1
Obj et_1 Obj et_2
1"+
Messages

Traduisent les interactions (change


dinformations) entre objets

Reprsents par des flches orientes de


lmetteur au rcepteur

Plusieurs types :

Message simple

Message minut (Timeout)

Message synchrone

Message asynchrone

Message rcursif
1"1
Message si.(le
Message pour lequel on ne spcifie aucune
information denvoi ou de rception
Message_1
Obj et_1 Obj et_2
1"2
Message .inut ([Link]!

Bloque lexpditeur pendant un temps donn,


en attendant la prise en compte du message
par le rcepteur

Aprs le dlai, lexpditeur est libr et peut


envoyer
Message_1 (20 secondes)
Obj et_1 Obj et_2
1"3
Message .inut ([Link]! I
89e.(le
La porte dun ascenseur souvre pendant un
certain dlai avant dtre referme.
ouvri r (2 secondes)
fermer
Ascenseur Porte
1"4
Message sync<rone (a((el de (rocdure!

Bloque lexpditeur jusqu la prise en


compte du message par le rcepteur

Le contrle est pass de lmetteur au


rcepteur qui devient son tour metteur
(actif)
Message_1
Obj et_1 Obj et_2
1"5
Message sync<rone (a((el de (rocdure!
I 89e.(le
Communication client serveur : Sockets
Sol l i tati on
Acceptati on
Requte
Rponse
Cl i ent Serveur
1""
Message async<rone

Ninterrompt pas lexcution de lexpditeur

Lexpditeur peut mettre sans attendre la


rponse du rcepteur
Message_1
Obj et_1 Obj et_2
1"$
Message rcursi)

Appel aussi message rflexive

Message envoy dun objet vers lui-mme.


Message_1
Obj et_1
1"&
Message rcursi) I 89e.(le
Lorsque le client introduit sa carte de guichet,
ce dernier vrifie la validit de la carte avant
de demander le code daccs
ntrodui re carte
Vri fi cati on val i di t
Demande code accs
Cl i ent GAB
1"*
Cration et destruction do%-ets
Un message peut crer ou dtruire un objet
Message_1
Message_2
Obj et_1
Obj et_2
Obj et_3
Cration dobjet
Destruction dobjet
Objet cr au cours de lexcution du scnario
Objet dtruit dans un scnario
1$+
0raduction des .essages

Envoyer un message cest demander un


service dun autre objet (sauf le cas dun
message de retour).

Les messages sont traduits par des


oprations dans la classe de lobjet ayant
reu le message
1$1
0raduction des .essages
class 7oiture
class 7oiture{
Public void demarrer(){}
}
class +onducteurB
class +onducteurB
private Voiture voiture;
public void conduire(){
[Link]();
}
}
R
R
!ain>'tring:< arg0B
!ain>'tring:< arg0B
[Link]();
}
1$2
'tructures de contrAle
Le diagramme de squences peut inclure un
certain nombre de structures

Branchements (tests)

Rptitions (itrations, boucles)


1$3
Les test (%ranc<[Link]!
La condition prcde le message et elle est
dlimite par des crochets
[condi ti on]: Message
Obj et_1 Obj et_2 Obj et_3
1$4
Les test (%ranc<[Link]! I 89e.(le
Pour accder au centre de recherche, lutilisateur
doit prsenter son badge. Sil a droit daccs, un
voyant vert est allum et la porte souvre
Prsente son badge
[OK]voyant vert
Vri fi er droi t d'accs
ouvri r porte
Uti l i steur Systme
1$5
Les %oucles (r(titions!
La boucle se note comme le test, mais la
condition est prcde dun astrisque
[condi ti on]: Message
Obj et_1 Obj et_2 Obj et_3
*
1$"
[Link]

Permet de dcomposer une interaction


complexe en fragments simples

Reprsent par un rectangle dont le coin


suprieur gauche contient un pentagone

Dans le pentagone figure le type du fragment

loop : boucle

alt : alternative

ref : rfrence

.
1$$
[Link]
Tant que x>0 faire
Si x>0 alors
Si x<0 alors
1$&
UML
Diagrammes de collaboration
1$*
1iagra..e de colla%oration

Reprsente les interactions entre objets et


relations structurelles permettant celles-ci.

Permettent la description:

Du comportement collectif dun ensemble dobjets

Des connexions entre ces objets

Des messages changs par les objets

nteraction ralise par un groupe dobjets


qui collaborent en changeant des messages
1&+
1iagra..es de colla%oration

Reprsentation graphique de lvolution dun


ensemble dobjets pour effectuer une action

Diffrences avec diagrammes de squence

pas daxe temporel

temps modlis par numrotation


1&1
1iagra..es de colla%oration
lments dune interaction

Instances

qui collaborent avec d'autres objets en changeant des


informations

Reprsents par

liens

qui sont des supports de messages

Reprsents comme des associations

messages

dclenchant les oprations

ndiqus par des flches


:Cl asse Obj et:Cl asse
1&2
1iagra..es de colla%oration

Exemple : Appel tlphonique


I#((elant
ILigne I#((el
1L 1croc<er
2L 0onalit
3L [Link]
4L1aL 0onalit sonnerie
"L1aL #rrJt tonalit
4L1%L 'onnerie
5L 1croc<er
"L1%L #rrJt sonnerie
1&3
1iagra..es de colla%oration

Aspect temporel

modlis par numrotation des messages

Type et Smantique des numrotations

1, 2, 3, 4 : ?u!rotation si!ple

s5uence!ent des messages

1, 1.1, 1.2, 1.2.1, 1.2.2, 1.2.3 : $ot notation

squencement + un point : ne peut tre termin que si ses


sous points le sont aussi

1, 1.1a, 1.1b, 1.2, 1.3 : $ot notation E concurrence

idem dot notation, mais les points 1.1a et 1.1b peuvent tre
effectus en parallle
1&4
1iagra..es de colla%oration

Mmes types contraintes que pour les


diagrammes de squence

tration : *[condition]

Conditions : [condition]

Exemple : rservation darticles


I'toc@ I6endeur
2L vri)ier(n; ite.!
3L Mdis(oni%leNrserver(n; ite.!
IClient
1L co..ander(n; ite.!
4L livrer(n; ite.!
1&5
1iagra..es de colla%oration

Les o2jets cres ou dtruits au cours dune


interaction peuvent respecti6e!ent porter
les contraintes :

{Nouveau}

{Dtruit}
<<{Dtrui t}>>
Obj et_1
<<{Nouveau}>>
Obj et_2
1&"
1iagra..es de colla%oration
Conclusion

Reprsentation spatiale

Aspect temporel plus difficile suivre que pour les


Diagramme de squence

Dure dexcution dune contrainte difficile valuer

Diagramme niveau instance

Limite : taille des diagrammes

Plus dinstances peuvent tre reprsentes sur un mme


diagramme que pour les diagrammes de squence
1&$
89e.(le I #scenseur ('3uence!

1&&
89e.(le I #scenseur (Colla%oration!
1&*
UML
Diagramme tat-transition
1*+
1iagra..e tatFtransition
Le diagramme tat-transition :

Fait partie des modles dynamiques

Dcrit l'enchanement de tous les tats d'un


objet

Propre une classe donne. l dcrit :

Les tats des objets de cette classe

Les vnements auxquels ils ragissent

Les transitions qu'ils effectuent


1*1
1iagra..e tatFtransition
Le diagramme tat-transition manipule
plusieurs concepts :

tat

Transition

vnement

Garde

.
1*2
Ktat

L'tat d'un objet est dfini par l'ensemble des


valeurs de ses attributs (fentre affiche,
fentre cache, .)

Un tat dpend de l'tat prcdent et de


l'vnement survenu

Un tat est reprsent par un rectangle aux


coins arrondis
Affi che
Fentre
-
-
D
Vi si bl e
: i nt
: bool ean = True
1*3
0ransition

C'est le passage d'un tat un autre

Peut tre nomm par un vnement

Reprsent par une flche oriente de l'tat


source vers l'tat cible
Rdui re
Restaure
Rdui te
1*4
[Link]

Fait (externe) survenu qui dclenche une


transition (changement d'tats)

Peut tre rflexif et conduire au mme tat

Conduit l'appel d'une mthode de la classe


de l'objet

Peut possder des attributs :

paramtres ports par des vnements

Reprsents entre parenthses


89e.(le
1*5
Soit le diagramme dtats/transitions de lobjet 'Fentre
1*"
Gardiens

Conditions ou fonctions boolennes


associes une transition

Une transition garde ne peut tre effectue


que si le gardien est vrifi

Un gardien est reprsent entre crochets


Evnement [Condi ti on]
Etat1
Etat2
1*$
[Link].e et e9e.(le
Evnement [Condi ti on]
Etat1
Etat2
Pri se foncti on [Date embauche chue]
Empl oy recrut
Empl oy en acti vi t
1*&
#ctions et activits

Un objet qui reoit un vnement dclenche


une ou plusieurs oprations

On distingue deux types d'oprations :

Action : associe un tat ou une transition

Activit : associe un tat


1**
#ctivit

Opration d'une certaine dure, qui est


excute tant que lobjet se trouve dans ltat

Associe un tat d'un objet

Reprsente dans l'tat prcde par la


notation "do/"
2++
#ction

Opration instantane non interrompue

Peut tre associe aussi bien l'tat d'un


objet qu'a une transition

Elle peut intervenir soit

En entre de l'tat (prfixe : "entry/")

En sortie de l'tat (prfixe : "exit/")

En rponse un vnement (prfixe :"evt/")

Au cours d'une transition (prfixe : "evt/")


2+1
[Link].e et e9e.(le
Evnement [Cond]/ Acti on
Etat_1
entry / Acti on_1
do / Acti on_2
Evnement() / Acti on_3
exi t / Acti on_4
Etat 2
entry / Act1
do / Act2
Evnement() / Act3
exi t / Act4
Embauch
entry / Si gner contrat
do / Assurer foncti on
Arri ve proposi ti on() / Rponde l a proposi ti on
Mutati on() / Changer d'affectati on
exi t / Rompre contrat de travai l
2+2
89ercice
Modliser ltat de saisie dun mot de passe :

Au dbut, la zone de saisie est masque

chaque saisie dun caractre, il stock

La touche F1 permet dafficher laide

Le bouton dannuler permet de fermer la


fentre

la fin de la saisie (validation) le mot de


passe est test (valide ou invalide)
2+3
Ktat initial et tats )inau9
Un diagramme tat-transition

Dbute toujours par un tat initial

Se termine par un ou plusieurs tats finaux (sauf


o le diagramme reprsente une boucle)
Etat_1
Etat_2
2+4
89e.(le (eu de signalisation!
Vert
Orange
Rouge
Feu
-
-
D
Coul eur
: i nt
: {Vert, Orange, Rouge}
2+5
?oint de dcision

Permettent de reprsenter des partages de


transitions ou des alternatives pour le
franchissement dune transition

On utilise deux mcanismes :

Points de jonction (petit cercle plein) : pour


partager des segments de transition

Points de choix (losange) : pour choisir une ou


une autre transition
2+"
?oint de -onction
?oints de c<oi9
2+$
2+&
Ktat co.(osite

Un tat composite (#tat simple) est


dcompos en deux ou plusieurs sous tats

Cette dcomposition est rcursive

Un tat composite est reprsent comme un


tat simple, sauf que les sous tats sont
contenus dans le compartiment infrieur.
2+*
89e.(le
21+
2istori3ue

On reprsente le pseudo tat historique par


un H cercl

Une transition ayant pour cible ltat


historique est quivalente une transition
ayant pour cible le dernier tat visit dans la
rgion contenant le H

H* (historique profond) est un tat valable


pour tous les niveaux
Concurrences

Pour reprsenter la concurrences dans un


diagramme dtats/transitions, on utilise :

tats concurrents

Transitions concurrentes
211
212
Ktats concurrents

tat composite pour reprsenter lexcution


de plusieurs automates sexcutant
indpendamment

On utilise un sparateur en pointills

Lobjet peut tre simultanment dans


plusieurs tats concurrents
213
Ktats concurrents
214
0ransitions concurrentes

Deux transitions particulires : fork et join

La transition fork correspond la cration de


deux tats concurrents

La transition join permet de supprimer la


concurrences (barre de synchronisation)

Pour pouvoir franchir la barre de


synchronisation, toutes les tches
concurrentes doivent tre acheves
215
0ransitions concurrentes
21"
UML
Diagramme d'activits
21$
7ntroduction

Variante des diagrammes d'tat-transition

Permet de dcrire le flot de contrle entre les


oprations :

Choix

Squences

trations

Paralllisme

Au niveau macroscopique : dcrit les


enchanements des oprations

Au niveau microscopique : dcrit l'algorithme d'une


action du diagramme d'tats
21&
Conce(ts de %ase
Plusieurs concepts sont manipuls :

tat

Activit

2"an#ition (#34uentielle( alte"nati.e# ou


conditionnelle)

56nch"oni#ation (di#jonction et conjonction#


d$acti.it3#)

7t3"ation

58imlane#
21*
Co.([Link] conditionnel

Appel aussi le branchement

Symbolise une transition entrante garde par


une condition et plusieurs transitions
sortantes mutuellement exclusives
22+
Co.([Link] conditionnel I 89e.(le
[Pri x<=Somme di sponi bl e]
[El se]
Demander l 'addi ti on
Rgl er l a note
Fai re l a vai ssel l e
221
'ync<ronisation

Fusion (conjonction) : plusieurs transitions


entrantes et une seule sortante

Comportement parallle :

La barre de synchronisation permet d'ouvrir et de


fermer les branches parallles au sein d'un flot
d'excution

Les transitions partantes d'une barre ont lieu en


mme temps

La barre n'est franchie qu'aprs ralisation de


toutes les transitions qui s'y rattachent
222
'ync<ronisation I 89e.(le
Barre de synchronisation
Fusion (conjonction)
Dserrer l e frei n mai n
Appuyer sur l 'embrayage
Encl encher l a 1re vi tesse
Rel cher l 'embrayage
Comportement parallle
Disjonction
223
7tration I 89e.(le
[s'il reste des arti cl es]
[pl us d'arti cl e]
Recevoi r commande
Vri fi er arti cl e
Commander arti cl e
224
'[Link]

Extension des diagrammes d'activits


permettant de reprsenter l'organisation.

Reprsente le lieu, le responsable des


activits.
225
/su. notation
22"
89e.(le rca(itulati)
22$
89e.(le rca(itulati)
[El se]
[El se]
[Val i de]
[Di sponi bl e]
Rcepti on commande
Vri fi er carte crdi t
Annul er commande
Vri fi er di sponi bi l i t produi t
Prparer commande
Dbi ter carte crdi t
Expdi er commande Poster facture
22&
&'ercice (
Reprsenter les tats suivants sous forme de
diagramme d'activit :

Vrification commande

Enregistrement commande

Rejet commande

nformer erreur au client


22*
&'ercice ( ) solution
[oui ] [non]
Vri fi er commande
Enregi strement commande Rej et commande
nformer erreur au cl i ent
Val i de
23+
&'ercice *
Dans le domaine de gestion de stock, on
considre les tats suivants indiquant le flot
de contrle de rception d'une livraison :
Rception livraison, contrle qualit, contrle
quantit et enregistrement livraison.
Proposez un diagramme d'activit reprsentant
ce flot d'information
231
&'ercice * ) solution
232
&'ercice +
Construire un diagramme dactivit pour
modliser le processus de commander dun
produit. Le processus concerne les acteurs
suivants:

+o!pta2le : enregistrement commande,


envoie la facture et enregistrement paiement
du client

+lient : paiement de la facture


233
&'ercice + ) solution
234
&'ercice ,
Construire un diagramme dactivit pour modliser le
processus de commander dun produit. Le
processus concerne les acteurs suivants:

+lient: qui commande un produit et qui paie la


facture

+aisse: qui encaisse largent du client

7ente: qui soccupe de traiter et de facturer la


commande du client

(ntrepSt: qui est responsable de sortir les articles


et dexpdier la commande.
235
&'ercice , ) solution
23"
UML
Diagrammes de Composants et de
Dploiement
23$
1iag de Co.(osantsC 1([Link]
Permettent de modliser les aspects physiques
dun systme orient-objet

Diagramme de Composants : se focalise sur


lorganisation et les dpendances entre un
ensemble de composants

Diagrammes de Dploiement : se focalise


sur la configuration en temps d'excution des
nouds de traitement et de composants qui
sont actifs
23&
1iagra..e de co.(osants

Dans le monde de btiment, tout ce qui est


propos par larchitecte (plan) constitue une
vue logique : visualiser, spcifier,
documenter

Lors de la construction, on utilise des


composants physiques du monde rel : murs,
fentres, portes, .
23*
1iagra..e de co.(osants

De mme, tout ce que nous avons vu jusqu


prsent constitue le modle logique :
visualiser, spcifier et documenter la
structure et le comportement des objets

La construction va sappuyer sur les


composants du monde rel de lordinateur :
fichiers, tables, librairies, .
24+
1iagra..e de co.(osants

Permet de dcrire l'architecture physique et statique d'une


application en terme de composants :

code source,

bibliothques,

excutables,

l montre la mise en oeuvre physique des modles de la vue


logique dans l'environnement de dveloppement

Permet de spcifier :

Composants

nterfaces

Relations (dpendance, gnralisation, association, ralisation).


241
Co.(osant

Un composant est une partie physique et


remplaable dun systme qui sait faire et
fournit la ralisation dun ensemble
dinterface

Les composants peuvent tre organiss en


paquetages
242
Co.(osant

?o! du co!posant :

Permet de distinguer un composant des autres composants

l peut tre un nom simple ou un nom compos qui indique le paquetage


auquel appartient le composant

'trot9pes : spcifient un composant qui dsigne:

e9ecutable : un programme pouvant sexcuter sur un noud

lib"a"6 : une bibliothque statique ou dynamique

table : une table de base de donnes

file : un fichier contenant du code source ou des donnes

document : un document
+o!ponent1
Nom du composant
243
Conce(ts

Jnterface :

Est une collection doprations utilises pour


spcifier les services dune classe ou dun
composant

Qelations a6ec les interfaces

Qalisation :

Dfinie entre linterface et le composant qui fournit les


services pour les autres composants

Cette interface est appele inte"face e9:o"t3e

$pendance :

Dfinie entre linterface et le composant qui utilise les


services fournis par un autre composant

Cette interface est appele inte"face im:o"t3e .


244
7nter)ace
+o!ponent2 +o!ponent1
Jnterface1
+o!ponent2
+o!ponent1
Attributs
T Jnterface U
Jnterface1
Oprations
dpendance
ralisation
245
$elations entre les comosants

$pendance :

Cela signifie quun des lments dun composant


a besoin des services que les lment de lautre
composant ralisent

Notation UML
+o!ponent1 +o!ponent2
24"
$elations entre les comosants

+ontenance :

Un composant peut tre contenu dans un autre


composant

Notation UML
+o!ponent 1
+o!ponent 2 +o!ponent 2
24$
'yst.e 6ente
(diagra..e de classes!
utilise
.igne de 6ente
F3uantit I integer
Pset4uantit(7n 3uantitIinteger!
7ente
F1ate I unde)ined
F2eure I unde)ined
Pinitier?[Link](7n .ontantIreal!
%agasin
Pno. I string
Padresse I string
Paie!ent
[Link] I real
[Link] I string
contenu dans
1LLQ
1
1 Q
enregistre
est paye par
1
1
1
Catalogue
P,%tenir'(ec(7n [Link])ined!I'(ci)ication?roduit
[Link]
F1escri(tion I string
F?ri9 I real
Pget1escrit(tion(7n [Link])ined!Istring
Pget?ri9(7n [Link])ined!Ireal
1
1LLQ
Q
Contient
24&
1iagra..e de co.(osants
(89e.(le!

Systme Vente
RRe9ecuta%leSS
72MTCaisier
RRutilitySS
Catalogue?roduits
RRe9ecuta%leSS
[Link]?roduits
RRinter)aceSS
7nter)ace?roduit
7nter)aceCatalogue
RRe9ecuta%leSS
Gestion d:autorisation
7nter)ace#utorisation
RRe9ecuta%leSS
Gestion?[Link]
7nter)ace?[Link]
RRli%rarySS
Uava'Oing
Gestion d:7.(Ats
7nter)ace7.(Ats
24*
1iagra..e de d([Link]

Montre la configuration des nouds de excution et


des composants quy rsident

Montre les relations physiques entre les


composants logiciels et matriels dun systme

Permet de spcifier

Nouds

Relations : (dpendance, associations)


25+
#/ud

Est un lment physique qui existe pendant


lexcution et reprsente une ressource
informatique dans la plupart de cas il sagit dun
lment matriel

En gnral un noud possde sa propre mmoire


et une capacit de traitement

Lensemble de composants qui est associ aux


nouds est appel unit3 de "3:a"tition

Les nouds prennent en charge lexcution des


composants.
251
BVud

?o! du nVud :

Permet de distinguer un noud des autres nouds

Le nom peut tre compos du nom de paquetage qui contient


le noud

'trot9pes : un noud peut possder un strotype qui permet de


le distinguer des autres types de ressources (permettant de
spcifier le types de ressources)

/0U : une unit de calcul

memo"6 : une unit de stockage

[Link] : un dispositif tel quun capteur


?Vud 1
Nom du noud
252
/elations entre nVuds et co.(osants

$pendance :

Montre la capacit dun noud de supporter un composant

Peut tre galement exprime entre les composants rsidant dans un


mme noud

Notation UML
?Vud 1
+o!posant 2
+o!posant1
Client
01M 01M
253
/elations entre deu9 nVuds

Association

ndiquent une voie physique entre deux nouds

Exemple:

Une connexion Ethernet

Un bus de communication

Notation UML
?Vud 1 ?Vud 2
TCP / IP
(
(223
254
1iagra..e de d([Link]
(89e.(le!

Systme Vente
'erveur de Calcul
7nter)ace#utorisation 7nter)ace7.(Ats
7nter)ace?[Link]
RRe9ecuta%leSS
Gestion d:autorisation
RRe9ecuta%leSS
[Link]?roduits
RRe9ecuta%leSS
Gestion?[Link]
Gestion d:7.(Ats
6entes
RRe9ecuta%leSS
72MTCaisier
RRli%rarySS
Uava'Oing
'erveur de 1onnes
7nter)aceCatalogue
RRutilitySS
Catalogue?roduits
LAN
1
1LLQ
LAN
1
1
255
1iagra..e de d([Link]
4ase de Donnes
Client
01M 01M
TCP / IP
(
(223
Ser5eur
6rdonnanceur
77utilit899
4ase de
Donnes
interface
25"
1iagra..e de d([Link]
25$
Corres(ondance UML et
Uava
madaniabdellah@[Link]
25&
0raduction dune classe

La classe est le concept fondamental de


toute technologie objet.

Le mot-cl correspondant existe bien sr


galement en Java.

De plus, chaque classe UML devient par


dfaut un fichier .java.
25*
0raduction dune classe
class Personne{
.
.
..
}
Personne
2"+
0raduction dune classe

Une classe a2straite est simplement une


classe qui ne sinstancie pas directement
mais qui reprsente une pure abstraction afin
de factoriser des proprits.

Elle se note avec Ba2stractC en UML et se


traduit par le mot-cl a2stract en Java.
2"1
0raduction dune classe
abstract class Personne{
..
..
..
}
Personne
Ba2stractC
2"2
0raduction dune classe

Une interface est une classe spciale dont


toutes les mthodes sont abstraites

Une interface se note en UML avec le


symbole

En java, elle traduite par le mot cl 'interface


2"3
0raduction dune classe
interface Forme {
.
.
.
}
@or!e
2"4
0raduction des attri%uts

Les attributs UML deviennent simplement


des attributs en Java

Leur type est soit un type primitif (int, etc.),


soit une classe.

La visibilit des attributs est montre


graphiquement en UML en les faisant
prcder par + pour public, # pour protg
(protected), - pour priv (private).

Les attributs de classe en UML deviennent


des membres statiques en Java (static).
2"5
0raduction des o(rations

Les oprations UML deviennent trs


directement des mthodes en Java.

Leur visibilit est dfinie graphiquement avec


les mmes conventions que les attributs.

Les oprations de classe deviennent des


mthodes statiques (static).

Les oprations abstraites (en itali4ue#) se


traduisent par le mot-cl abstract en Java.
2""
0raduction des o(rations
class Personne {
private int code;
private String nom;
private static int nombre;
public Personne() {
}
public static int getNombre(){
}
public String getnf(){
}
}
2"$
0raduction des relations
Les relations UML entre concepts statiques
sont trs riches. On peut distinguer les
relations de :

Gnralisation (hritage)

Ralisation

Association, avec ses variantes : agrgation


et composition.
2"&
0raduction des relations
(La gnralisation!

Le concept UML de gnralisation se traduit


directement par le mcanisme de lhritage
dans les langages objets.

Java, contrairement C++ interdit lhritage


multiple entre classes.
2"*
0raduction des relations
(La gnralisation!
Class Personne{
.
.
.
}
Class Employe extends
Personne{
.
.
.
}
Personne
(!plo9e
2$+
0raduction des relations
(La ralisation !

Une classe UML peut implmenter plusieurs


interfaces.

Contrairement C++, le langage Java


propose directement ce mcanisme.
2$1
0raduction des relations
(/alisation!
interface A{
.
.
}
interface B{
.
.
}
class C implements A, B {
.
.
}
+
)
H
2$2
0raduction des relations
(Les associations!

Les associations navigables UML se


traduisent par du code Java qui dpend de :

la multiplicit de lextrmit concerne (pointe


par la flche)

mais aussi de lexistence ou pas dune contrainte


{ordered} ou dun qualificatif.

Nous allons voir tout cela du plus simple au


plus complexe :

Une association navigable avec une multiplicit 1

Une association navigable avec une multiplicit *


2$3
0raduction des relations
(Les associations!

Une association navigable avec une


multiplicit 1 se traduit par une variable
dinstance de type rfrence vers une
instance de classe.

Une multiplicit * va se traduire par un


attribut de type collection de rfrences
dobjets au lieu dune simple rfrence sur un
objet.
2$4
0raduction des relations
(Les associations!
La difficult consiste choisir la bonne collection
parmi les trs nombreuses classes de base que
propose Java.

Bien quil soit possible de crer des tableaux


dobjets, ce nest pas forcment la bonne solution.

En pratique, on prfre plutt recourir des


collections, parmi lesquelles les plus utilises sont :
A""a6Li#t( 5o"tedLi#t et ;a#h2able.

Utilisez A""a6Li#t si vous devez respecter un ordre et


rcuprer les objets partir dun indice entier

Utilisez ;a#h2able si vous souhaitez rcuprer les objets


partir dune cl arbitraire.
2$5
0raduction des relations
(Les associations!
2$"
0raduction des relations
(Les associations!

Une association bidirectionnelle se traduit


simplement par une paire de rfrences, une
dans chaque classe implique dans
lassociation.

Les noms des rles aux extrmits dune


association servent nommer les variables
de type rfrence.
2$$
0raduction des relations
(Les associations!
2$&
0raduction des relations
(Les associations!
2$*
0raduction des relations
(La classe association!

Elle possde tout la fois les caractristiques


dune association et dune classe et peut
donc porter des attributs qui se valorisent
pour chaque lien.

Ce concept UML avanc nexiste pas dans


les langages de programmation objet, il faut
donc le traduire en le transformant en classe
normale, et en ajoutant des variables de type
rfrence.
2&+
0raduction des relations
(La classe association!
2&1 a%della<[Link]<ooL)r 2&1
UML
De UML vers le modle relationnel
2&2 a%della<[Link]<ooL)r 2&2
1e UML vers le .odle relationnel

Cette partie traite le passage de la


conception faite par UML vers le modle
relationnel

La traduction concerne

Classes, instances, attributs

Relations entres classes :

Associations,

Agrgation,

Composition,

Gnralisation spcialisation
2&3 a%della<[Link]<ooL)r 2&3
Classe en /elationnel

Dans le cas gnral une classe est traduite


par une table

Chaque objet est conserv dans une ligne de


la table

Un champ jouant le rle de cl primaire est


ajout mme s'il n'existait pas dans la classe
2&4 a%della<[Link]<ooL)r 2&4
0raduction d:une classe

(n Qelationnel
Compte(?+o!pte, Solde)

(n 'W.
Create table Compte(
NCompte smallint,
Solde decimal,
Primary key PK_Compte (NCompte)
)
Compte
-
-
NCompte
Sol de
: i nt
: fl oat
+
+
+
+
<<Constructor>> Compte (i nt NCompte, fl oat Sol de)
deposer (fl oat Sol de)
reti rer (fl oat Sol de)
avoi rSol de ()
: voi d
: fl oat
: Stri ng
2&5 a%della<[Link]<ooL)r 2&5
GnralisationCs(cialisation en
/elationnel
Plusieurs mthodes de traduction en
Relationnel :

Reprsenter toutes les classes dune


arborescence dhritage par une seule table
relationnelle

Reprsenter chaque classe par une table


2&" a%della<[Link]<ooL)r 2&"
GnralisationCs(cialisation en
/elationnel

La solution la plus simple est de modliser


toute une hirarchie de classes dans une
mme table

Chaque classe ajoutant ses propres attributs


comme de nouveaux champs.

l nous suffit alors dajouter un champ


contenant le type de linstance pour pouvoir
charger les champs correspondants.
2&$ a%della<[Link]<ooL)r 2&$
GnralisationCs(cialisation en
/elationnel
2&& a%della<[Link]<ooL)r 2&&
#ssociations en /elationnel
(#ssociation unFXFun!
Deux solutions sont possibles :

une cl trangre dans chacune des tables


associes

la fusion des deux tables dans une seule


2&* a%della<[Link]<ooL)r 2&*
#ssociations en /elationnel
(#ssociation unFXFun!

1
re
Solution

Pays(JdPa9s, NomP,#dCapitale)

Capitales(Jd+apitale, NomC, #dPays)

2
ime
Solution

Pays(JdPa9s, NomP, NomC)


2*+ a%della<[Link]<ooL)r 2*+
#ssociations en /elationnel
(#ssociation unFXFun!

1
re
Solution
create table Pays(dPays integer primary key,
.
dCapitale integer foreign key references capitales
(dCapitale))
et
create table Capitales(dCapitale integer primary key,
.,
dPays integer foreign key refernces pays(dPays))

2
ime
Solution
Pays(dPays integer primary key,
NomP varchar(20),
NomC varchar(20))
2*1 a%della<[Link]<ooL)r 2*1
#ssociations en /elationnel
(#ssociation unFXF(lusieurs!
Une seule solution est possible :

migration de la cl du ct de 1 vers la table


du ct de plusieurs

La cl migre jouera le rle de cl trangre


2*2 a%della<[Link]<ooL)r 2*2
#ssociations en /elationnel
(#ssociation unFXF(lusieurs!

En Relationnel

Dept(Jd$ept, Nomdept)

Emp(Jd(!p, NomEmp, #dDept)

En SQL

Create table dept(.)

Create table emp(dEmp integer primary key,


NomEmp varchar(20),
dDept integer foreign key references Dept(dDept)
)
2*3 a%della<[Link]<ooL)r 2*3
#ssociations en /elationnel
(#ssociation (lusieursFXF(lusieurs!

Lassociation est traduite par une table dont


la cl primaire est la concatnation des cls
primaires des tables associes

La table rsultante aura :

Une seule cl primaire

Deux cls trangres


2*4 a%della<[Link]<ooL)r 2*4
0raduction des associations en
/elationnel
(#ssociation (lusieursFXF(lusieurs!
En Relationnel

Articles(Qef, Des, PU)

Commandes(?H+, DateC, Client)

Dtails(#?H+G XQef, Qt)


2*5 a%della<[Link]<ooL)r 2*5
0raduction des associations en
/elationnel
(#ssociation (lusieursFXF(lusieurs! (n 'W.
1. create table Article(Ref integer primary key, .)
2. create table Cde(NBC integer primary key, .)
3. create table Detail(NBC integer, Ref integer,.,
constraint PK primary key(NBC, Ref),
constraint FK1 foreign key(NBC) references cdes(NBC),
Constraint FK1 foreign key(NBC) references cdes(NBC))
2*"
,CL
2*$
Contraintes

Une contrainte est une condition ou une


restriction smantique exprime sous forme
dinstructions dans un langage textuel qui
peut tre naturel ou formel

Elle doit tre applique lors de


limplmentation

Reprsente sous forme dune chane place


entre accolades({})
2*&
Contraintes

Nous avons vu comment exprimer certaines


contraintes avec UML

{ordered}

{subset}

{frozen}

{xor}

.
2**
Contraintes Y 89e.(le F

Dans cet exemple, on exprime le fait quun


'solde doit rester toujours positif (utilisation
dun langage formel).
3++
Contraintes Y 89e.(le F

Dans cet exemple, on exprime un contrainte


avec un langage textuel non formel
3+1
7ntroduction

OCL est un langage de contraintes associ


UML

l peut tre utilis pour contraindre nimporte


quel diagramme
3+2
Conte9te

Une contrainte est toujours associe un lment


du modle

Cet lment constitue le contexte de la contrainte

Deux manires pour exprimer le contexte dune


contrainte :

En crivant la contrainte entre {} dans une note (voir


exemple prcdent)

En utilisant le mot cl 'context dans un document


accompagnant le modle
3+3
Conte9te

Syntaxe
conte8t Kl!entL
O : <lment> : peut tre une classe, un attribut,
une opration, etc.

Pour faire rfrence un lment dune


classe, il faut utiliser les '::
3+4
Conte9te

Le contexte de la classe 'Compte


conte8t +o!pte

Le contexte de lopration getSolde() de la


classe Compte
conte8t +o!pte11get'olde>01Qeal

Le contexte de lopration deposer() de la


classe Compte
conte8t +o!pte11deposer>so!!e1Qeal0
3+5
7nvariants

Un invariant exprime une contraintes sur un


objet ou un groupe dobjets qui doit tre
respecte en permanence

Syntaxe :
in6 1 Ke8pressionYlogi5ueL

Lexpression logique doit tre toujours vraie


3+"
7nvariants

Exemple :
Le solde dun compte doit tre toujours positif
conte8t +o!pte
in6 1 soldeL0
3+$
?rconditions et (ostconditions

Une prcondition permet de spcifier une


condition qui doit tre vrifie avant lappel
dune opration.

Une postcondition permet de spcifier une


condition qui doit tre vrifie aprs lappel
dune opration.
3+&
?rconditions et (ostconditions

Dans lexpression de la contrainte de la


postcondition, deux lments particuliers sont
utiliss :

result : la valeur retourne par lopration

Kattri2utLZpre : la valeur de lattribut avant


lappel de lopration
3+*
?rconditions et (ostconditions

Syntaxe de la prcondition
pre 1 Ke8pression logi5ueL

Syntaxe de la postcondition
post 1 Ke8pression logi5ueL
31+
?rconditions et (ostconditions

Exemples :
conte8t +o!pte11de2iter>so!!e 1 Qeal0
pre 1 so!!eL0
post 1 solde;soldeZpreDso!!e
conte8t +o!pte11get'olde>01Qeal
post 1 result;solde
311
/sultat dune o(ration

Lexpression de contrainte '2od9 permet


dfinir directement le rsultat dune
opration

Syntaxe :
2od9 1 Kre5uNteL
<requte> : expression qui retourne le rsultat
dont le type est compatible avec le type de
retour de lopration
312
/sultat dune o(ration

Exemple
La mthode getSolde() de la classe 'Compte
retourne le solde actuel
conte8t +o!pte11get'olde>01Qeal
2od9 1 solde
313
1)inition des attri%uts et de .t<odes

Motivation :

une sous expression peut tre utilise plusieurs fois dans


une expression

Deux expressions de contraintes :

let : permet de dclarer et dinitialiser un attribut qui peut


tre utilis dans lexpression qui suit le mot cl in

def : fait la mme chose que let.


314
1)inition des attri%uts et de .t<odes

Syntaxes :
let KdclarationL;Kre5uNteL in Ke8pressionL
Lattribut dclar recevra le rsultat de la
<requte> dans toute l<expression>
def 1 KdclarationL;Kre5uNteL
315
1)inition des attri%uts et de .t<odes

Exemples
1/ conte8t Personne
in6 1 let argent;co!pte/soldeDLsu!>0 in
ageL;18 i!plies argentL0
2/ conte8t Personne
def 1 argent 1 Qeal ; co!pte/soldeD
Lsu!>0
3/ conte8t Personne
in6 1 ageL;18 i!plies argentL0
31"
7nitialisation et volution des attri%uts

Le type de contrainte init permet de prciser


la valeur initiale dun attribut ou dune
terminaison dassociation

La valeur dun attribut driv est dfinie par la


contrainte deri6e.

Syntaxes :
init 1 Kre5uNteL
deri6e 1 Kre5uNteL
31$
7nitialisation et volution des attri%uts

Exemple
Quand on cre une personne, la valeur initiale
de lattribut mari est faux, et la personne ne
possde pas demployeur.
conte8t Personne11!ari1Hoolean
init 1 false
conte8t Personne11e!plo9eur1'et>'ocit0
init 1 setBC
31&
7nitialisation et volution des
attri%uts

Exemple

Lge dune personne est la diffrence entre


la date courante et la date de naissance de la
personne.
conte8t Personne11age1Jnteger
deri6e 1 $ate11current>0 [ dateYdeYnaissance
31*
0y(es et o(ration ,CL
Le langage OCL possde un certain nombre de
types prdfinis et doprations prdfinies
sur ces types :

Boolean

nteger

Real

String
32+
0y(es et o(ration ,CL
Type oprateurs
Boolean And, or, xor, not, implies, [Link]
nteger +,-, *, /, abs(), .
Real +,-, *, /, abs(), floor(), .
String Concat(), size(), substring(), .
321
0y(es et o(ration ,CL
a b a and b a or b a xor b a implies b
V V V V F V
V F F V V F
F V F V V V
F F F F F V
322
0y(es et o(ration ,CL
not
V F
F V
f <exp_log0>
Then <exp_log1>
Else <exp_log2>
Endif
323
Collections

Le langage OCL manipule plusieurs


collections :

Set : collection non ordonne dlments uniques

orderedSet : collection ordonne dlments


uniques

Bag : collection non ordonne dlments

Sequence : collection ordonne dlments


324
Collections
Collection lments ordonnes lments uniques
Set Non Oui
OrderedSet Oui Oui
Bag Non Non
Sequence Oui Non
325
4uel3ues o(rations sur les collections
F ,(ration de %ase F

.a s9nta8e 1 collectionDLoperation>0

siIe>0 : nombre dlments

count>0 : nombre doccurrences

su!>0 : somme des lments

is(!pt9>0 : est vide

not(!pt9>0 : non vide

includes>el0 : appartenance

e8cludes>el0 : non appartenance

includes)ll>col0 : inclusion

e8cludes)ll>col0 : exclusion
32"
4uel3ues o(rations sur les collections
F iltrage F

select>cond0 : retient les lments qui vrifient la condition

reject>cond0 : limine les lments qui vrifient la condition

an9>cond0 : retourne lun des lments qui vrifie la


condition

for)ll>cond0 : true si tous les lments vrifient la


condition

e8ists>cond0 : true si au moins un lment vrifie la


condition

is-ni5ue>e8p0 : true si une et une seule valeur de la


collection qui vrifie la condition
32$
,(ration ense.%liste
F 'et ou ,redered'et F

union>ens0 : union

D : diffrence (ens1 ens2)

including>el0 : ajoute un lment

e8cluding>el0 : retire un lment


32&
#ccs au9 donnes de lo%-et courant

Pour faire rfrence une donne (attribut


ou opration) dun objet dsign par le
contexte :
1. Utiliser le nom de llment
2. Faire prcder le nom de llment du mot cl
'self
32*
#ccs au9 donnes de lo%-et courant

Exemple

Dans le contexte de la classe 'Compte :


+onte8t +o!pte
Jn6 1 solde L 0
+onte8t +o!pte11de2iter>so!!e 1 Qeal0
Pre 1 so!!e L 0
Post 1 self/solde ; self/soldeZpre D so!!e
33+
Bavigation X travers une association

Pour faire rfrence un objet (ou un groupe


dobjets) associ via une association, On
utilise :

Le nom de la classe associe en minuscule

Le nom du rle ct de la classe associe


331
Bavigation X travers une association

Dans le contexte de la classe 'Personne, on


fait rfrence la classe socit avec lune
des deux mthodes :

employeur

socit

De mme pour accder ladresse de la


socit :

[Link]

[Link]
332
Bavigation X travers une association
Lutilisation du rle est indispensable si :
1. l existe plusieurs associations entre lobjet
dsign par le contexte et lobjet auquel on
dsire accder
2. Lassociation est rflexive
333
Bavigation X travers une association

Le type du rsultat dpend de :

la multiplicit de lobjet rfrenc

type de lobjet rfrence proprement dit.

Si lobjet rfrenc est T, alors le rsultat est


de type :

T, si la multiplicit est 0..1 ou 1..1

Set(T), si la multiplicit est *

OrderedSet(T), si la multiplicit est * avec


{ordered}
334
Bavigation X travers une association

Exemple : Type du rsultat


335
Bavigation X travers une association
3uali)ie

Dans une association qualifie, on utilise les


valeurs (les instances) des qualificatifs entre
crochets ([])
conte8t Han5ue
in6 1 self/co!pte:8900</soldeL0
33"
Bavigation vers une classe
association

Dans le contexte de Socit, self/poste/salaire:


salaire de tous les employs

Dans le contexte de Personne,


self/!ariage:epouse</date : dates de mariages
des femmes
33$
Bavigation de(uis une classe association
conte8t Poste
in6 1 self/e!plo9e/ageL21
>ou aussiG self/personne/ageL210
33&
#ccs X une .t<ode red)inie

Une sous classe peut redfinir une mthode


de sa classe mre

Laccs la mthode de la classe parente


est toujours possible et se fait par :
ocl)s&9pe>0
33*
#ccs X une .t<ode red)inie
Dans le contexte de B :

'elf/f>0 : accs f() de B

'elf/ocl)s&9pe>f>00 : accs la
mthode de A

Vous aimerez peut-être aussi