diagramme de classes (1)
TRANSCRIPT
-
8/3/2019 Diagramme de Classes (1)
1/62
UML
(Diagramme de classes)
Unified Modeling Language
Diagramme de Classes/ UML2 A. Oubelkacem
Universit My Ismail-FS
Dpartement de Math InfoLicence Professionnelle dInformatique LPI AU 2011/2012
LPI
-
8/3/2019 Diagramme de Classes (1)
2/62
2
Sommaire
Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opration) Visibilit et porte des constituants dune classe Association (Nom, rles)
Association rflexive Navigabilit dune association Contraintes sur association Qualificateur dune association
Classe associative Types dassociation (Agrgation, composition, gnralisation /spcialisation)
Classe et opration abstraites
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
3/62
3
Diagramme de classes
Apport en grande partie de la mthode OMT (Rumbaugh)
Sapparente un diagramme entit-association (MERISE). Ilprsente les diffrents objets (classes) du systme ainsi que les
liens entre ces objets (associations)
Diagramme le plus important dans une modlisation objet
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
4/62
4
Diagramme de classes
Objectifs
Dterminer les donnes qui seront manipules par le systmeCes donnes sont organises en classes
Donner la structure statique de ces donnesCe diagramme permet de dcrire la structure interne dechacune des classes
Reprsenter les relations statiques existant entre lesdiffrentes donnes du systmeLa navigation parmi les classes est rendue possible par
lexistence dassociations qui les unissentFaire abstraction des aspects temporels et dynamiques de la modlisation.
Seul laspect statique compte, la dynamique est prise en charge pardautres modles
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
5/62
5
Diagramme de classes(Dfinition)
Le diagramme de classes est un diagramme structurel ne
prsentant que les classes et pas les instances de classe
Il permet de dcrire la structure interne des classes en termedattributs et doprations
Il permet de reprsenter les associations statiques entre lesclasses, mais ne dcrit pas comment les liens effectifs entre lesinstances sont effectus
Le diagramme de classes est un diagramme
entits-associations dcrivant les diffrentes classes,leur structure et les associations statiques les unissant
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
6/62
6
Diagramme de classesExemple
Client CompteCourant
Plan Epargne Actions Actions
achte
possde
souscrit
1 0..1
1
0..1
*
*
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
7/62
7
Classe(Dfinition)
La classe est la fabrique, le moule, partir du quel on fabriqueles instances (les objets)
Seules les caractristiques pertinentes pour le problmetudi entrent dans la composition de la classe
Une classe est une abstraction de choses
du monde rel possdant des caractristiques etdes comportements communs
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
8/62
8
Classe
Chien
courir()
aboyer()
age
pedigree
Personne
se promener()
crier()
age
nationalit
AbstractionAbstraction
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
9/62
9
Classe(Notation)
>Nom paquetage :: Nom classe
Attributs
Oprations
Notation Une classe estreprsente par un
rectangle dcoup en3 parties
Sont prsents :
le nom de la classe la liste de ses
attributs la liste de ses
oprations
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
10/62
10
Nom de la classe
>login :: Code secret
Code
>Compte
N
Crditer()
Dbiter()
>Compte chque
N de compte
Le nom de la classepeut tre prcd
dun strotypequalifiant le type dela classe
Le nom de la classeest prfix par unnom de paquetagesi la classe estexterne au
paquetage courant
Le nom dune classeabstraite est donnen Italique
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
11/62
11
Attribut de la classe(Dfinition et notation)
Lattribut possde un nomunique dans la classe
On peut associer lattributle type des valeurs quil peutprendre
On peut donner une valeurinitiale lattribut
Un attribut est une caractristique intrinsque
partage par tous les objets dune classe
>Nom paquetage :: Nom classe
nomAttribut1 : typeAttribut1 = valeurInitiale1
nomAttributN : typeAttributN = valeurInitialeN
Notation
Diagramme de Classe/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
12/62
12
Attribut de la classeRecommandations pour trouver les attributs
Les 3 rgles dor de lattribut :
Eliminer les attributs caractrisant une autre classeex : lattribut nom client dans la classe compteBancaire
Se mfier des attributs multi-valus, ils cachent souvent eux-mmes une classeex : lattribut enfants dans la classe Personne
Se mfier des attributs structurs, ils cachent souvent eux-mmes une classeex : lattribut Adresse dans une classe Personne
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
13/62
13
Opration de la classe(Dfinition et notation)
Une opration est un service que propose
une classe sur son interface
Lopration possde unnom pas forcmentunique dans la classe
On peut associer lopration ses arguments
On peut associer lopration son type deretour
Notation>
Nom paquetage :: Nom classe
nomOpration1 (nomArg1 : TypeArg1 = valeurParDfaut1, ...)
: typeRetour1
nomOprationN (nomArgN : TypeArgN = valeurParDfautN, ...)
: typeRetourN
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
14/62
14
Opration de la classeRecommandations pour trouver les oprations
Ne donner les informations sur les arguments et le type deretour quen phase de Conception
Lorsquune classe possde de trs nombreuses oprations seposer la question du dcoupage de la classe
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
15/62
15
Exemple de classe
Compte
effectuerVirement()Accesseurs
getSolde()
setSolde()getNumero()setNumero()
numero
solde
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
16/62
16
Nom Classe
+Attribut public#Attribut protg
-Attribut privAttribut de classe/Attribut driv
+Opration publique()#Opration protge()-Opration prive()Opration de classe()
Visibilit et Portedes constituants de la classe
La visibilit prcise lamanire dont un nom peut
tre vu et utilis par lesautres (public, protg,priv)
La porte prcise dansquel contexte un nomprend sa signification(instance ou classe)
Par dfaut, la visibilit estpublique et la porte estdinstance
Notation
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
17/62
17
Association(Dfinition)
Dans le monde rel, les objets sont lis physiquement oufonctionnellement les uns avec les autres
Ces liens entre objets se traduisent au niveau des classes pardes associations
Une association traduit donc une relation structurelle statiqueentre deux ou plusieurs classes
Une association est une abstraction de liens
qui peuvent exister entre les instances de plusieurs classes
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
18/62
18
Association
Chien
courir()
aboyer()
ge
race
Personne
se promener()
crier()
ge
nationalit
Abstraction
Abstraction
Abstraction
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
19/62
19
Association(Notation)
Client Voitureachte
Personne Socitsalari
employeur
Notation
Une association est reprsente au moyen dun trait orient reliantchacune des classes concernes
Il est possible de nommer lassociation et de prciser les rles tenuspar chaque classe
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
20/62
20
Nom de lassociation
Client Voitureachte
Notation
Le nom de lassociation esten gnral une formeverbale active ou passive
qui dcrit globalement le lien
Le nom de lassociation estfacultatif
Le nom doit apparatre surlassociation, mais ne doit
pas tre rattach lune desextrmit
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
21/62
21
Nom de lassociation
Exemple: des postes de travail sont connects un rseau local. Chaque poste
est reli un segment caractris par un indicatif IP, un nom et une longueur
de cble. Le verbe connecter induit une association entre les entits
Poste_travail et Segment.
entit
classe
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
22/62
22
Nom de lassociation
Terminologie
connecter
Le diagramme de classe:
Connexion()
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
23/62
23
Rles de lassociation
salari
Notation
Le rle permet de dcrire, laide dun nom, commentune classe peroit une autre
classe au travers delassociation
Un rle doit figurer
lextrmit de lassociationquil qualifie
Les rles sont facultatifs
Lassociation peut fairefigurer les deux, un seul ouaucun des rles
SocitPersonne
employeur
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
24/62
24
Nom et rles de la classe(Recommandations)
Lutilisation du nom et des rles dune association nest pasexclusif
Cependant, les deux notations sont rarement utilisesconjointement
Lusage du nom et des rles nest pas obligatoire, mais ilsavre indispensable si deux objets sont relis par plusieursassociations ou si une association est rflexive
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
25/62
25
Association rflexive
Client Voitureachte
Une association peut mettreen jeux deux classesdistinctes
Mais, elle peut aussiapparatre sur une seule etmme classeDans ce cas prcis,lassociation est diterflexive
Personne
Vit en couple avec
Exemple dassociation rflexive
Exemple dassociation classique
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
26/62
26
Association rflexive
Association rflexive de un plusieurs
Pour des postes de travail, certains lments sont serveurs et
dautres sont clients. La relation entre les postes clients etserveurs est rflexive, car elle porte sur la mme
classe : Poste_travail.Un poste client est reli
un seul serveur
Un poste serveur relie
zro ou plusieurs postes
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
27/62
27
Association rflexive
Association rflexive de plusieurs un plusieursConsidrons lexemple que laccs certaines units de valeurs (UV) est conditionn par
des pr requis. Les UV elles-mmes pr requises constituent ventuellement un pr requis
pour la prparation dune ou de plusieurs autres UV. Ainsi, pour passer lUV BD objetrelationnelle, il faut avoir les UV BD relationnelle et SQL. Par ailleurs, laccs aux UV
JDBC et Oracle 8 suppose lobtention de lUV BD objet relationnelle.
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
28/62
28
Navigabilit de lassociation
a vu
Chaque personne a accs aux films qu'elle a dj vus,mais partir d'un film, on interdit de retrouver la liste des
personnes l'ayant vu
Notation
FilmPersonne
La navigabilit duneassociation permet dedfinir dans quel sens
lassociation peut treparcourue
La navigabilit duneassociation est modlisepar une flche surlextrmit pouvant treatteinte par navigation
La navigabilit peut tre bi-directionnelle
Labsence de flche sur lesdeux extrmits signifie quelassociation est bi-directionnelle
achte
Lassociation peut tre parcourue dans les deux sens
VoitureClient
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
29/62
29
Navigabilit de lassociation
UML 2 permet dexprimer dans un diagramme que les instances
dune classe ne connaissent pas les instances dune autre bien
qutant relies entre elles dans le cadre de lassociation.
Ex: Considrons lexemple dune association qui relie un tudiant
son professeur prfr.
Par dfaut, une association UML est navigable dans les deux sens.
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
30/62
30
Multiplicits de lassociation
emploie
Une socit emploie de une plusieurs personnes
Une personne est employe par une seule socit
Notation
SocitPersonne
La cardinalit dunensemble est le nombredlments de cet ensemble
La multiplicit est laspcification des valeurs decardinalit admissibles pourun ensemble
La multiplicit est associe une extrmit de
lassociation et indiquecombien dinstances de laclasse considre peuventtre lies une instance delautre classe
achte
Un client achte zro plusieurs voitures
Une voiture peut tre achete par un client au plus
VoitureClient
1 ..* 1
0..**
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
31/62
31
La multiplicit est une spcification respectant les conventionssuivantes :
1 : un et un seul (notation facultative)
0..1 : zro ou unN : exactement N (N: entier naturel)
M..N : de M N (deux entiers naturels)0..* : de zro plusieurs1..* : de un plusieurs
N..* : N ou plus (N: entier naturel)
Multiplicits de lassociation
Cardinalits/multiplicits
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
32/62
32
EXEMPLES
Exemple1: un tudiant est caractris par un numro INSEE et
un nom. Chaque tudiant doit effectuer un seul stage en
entreprise. Un stage est dsign par un numro, un thme et lenom du responsable ; il est suivi par un seul tudiant.
Est effectue par
ASSOCIATION UN UN
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
33/62
33
EXEMPLES
Exemple2: Dans cet exemple un professeur, caractris par un numro, un
nom et un grade, peut tre responsable de plusieurs units de valeurs (UV).
Chaque UV, dsigne par un numro, un titre et une anne de cration, est
place sous la responsabilit dun seul professeur. Il existe des professeurs
qui ne sont responsables daucune UV. Lentit Professeur est dite pre
car un professeur est en relation avec plusieurs UV fils .
ASSOCIATION UN PLUSIEURS
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
34/62
34
EXEMPLES
Exemple3: Dans cet exemple, chaque tudiant met un ou
plusieurs voeux concernant des stages. Un stage peut
nintresser aucun tudiant ou, au contraire, en attirer plusieurs.
ASSOCIATION PLUSIEURS PLUSIEURS sans attribut
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
35/62
35
Contraintes sur association
Dautres types de contraintes existent sur une association :
Des contraintes prdfinies : Les contraintes ensemblistes : {Sous-ensemble} Les contraintes dordonnancement : {Ordonn}
Les contraintes dexclusion : {Ou - exclusif}
Des contraintes spcifiques au moyen du langage OCL (ObjectConstraint Language)
Diagramme de Classes/ UML2 A. OubelkacemLPI
Contraintes ensemblistes sur
-
8/3/2019 Diagramme de Classes (1)
36/62
36
Notation
Ce type de contrainte permet de modliser le cas o un ensembledassociations est inclus dans un autre ensemble dassociation
Prix Personne
{Sous-ensemble}
est nomin
est laurat
Contraintes ensemblistes surassociation
Les personnes laurates dun prix sont obligatoirement choisies parmi celles qui
sont nomines pour ce prix
* *
* 1
Diagramme de Classes/ UML2 A. OubelkacemLPI
Contraintes dordonnancement sur
-
8/3/2019 Diagramme de Classes (1)
37/62
37
Notation
Ce type de contrainte permet de modliser le cas o pour uneinstance donne, lensemble des instances avec lesquelles elle esten relation doit tre ordonn
Grand prix Pilote
{Ordonn}
est dans
les points
Contraintes d ordonnancement surassociation
Lors dun grand prix au maximum 6 pilotes peuvent tre dans les points
Ces 6 pilotes sont classs larrive
0..* 0..6
Diagramme de Classes/ UML2 A. OubelkacemLPI
Contraintes dexclusion sur
-
8/3/2019 Diagramme de Classes (1)
38/62
38
Notation
Ce type de contrainte permet de modliser le cas o pour uneinstance donne dune classe, une seule association prise parmiplusieurs possibles, peut tre valide un instant donn
Socit Personne
{Ou - exclusif}
employ
employeur
Contraintes d exclusion surassociation
Une personne peut tre soit employe par une socit, soit employeurdune socit
Mais une personne ne peut pas tre la fois employeur et employ
0..*
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
39/62
39
Qualificateur = attribut1, , attributN
Classe A Classe BQualificateur
Qualificateur dune association
Le qualificateur est un attribut ou un ensemble dattributspermettant de partitionner lensemble des instances duneclasse qui sont en relation avec une instance donne
Le qualificateur permet de restreindre la multiplicit delassociation
Notation
Diagramme de Classes/ UML2 A. OubelkacemLPI
Qualificateur dassociation
-
8/3/2019 Diagramme de Classes (1)
40/62
40
numro
Universit Salle
1..*
Universit Salle0..1
Une universit possde de une plusieurs salle(s)
Une salle appartient une et une seule universit
Une universit possde au plus une salle ayant ce numro
Une salle appartient une et une seule universit
Qualificateur dassociationExemples
possde
possde
Diagramme de Classes/ UML2 A. OubelkacemLPI
Qualificateur dassociation
-
8/3/2019 Diagramme de Classes (1)
41/62
41
agence
Personne
Compte
bancaire
0..*
PersonneComptebancaire
0..1
Une personne possde de zro plusieurs compte(s) bancaire(s)
Un compte bancaire appartient une et une seule personne
Une personne possde au plus un compte bancaire par agence
Un compte bancaire appartient une et une seule personne
Qualificateur d associationExemples
possde
possde
Diagramme de Classes/ UML2 A. OubelkacemLPI
-
8/3/2019 Diagramme de Classes (1)
42/62
42
Classe associative
Une association peut trematrialise par une classedans une des circonstancessuivantes :
si lassociation estporteuse dattributs si lassociation se
matrialise par un objetconcret dans le monderel
si lassociation est demultiplicit M .. N
Une classe associative est
une classe part entire Elle est modlise par un lienen pointill allant de la classevers lassociation concerne
Classe A Classe B
Classe associative
Notation
Diagramme de Classes/ UML2 A. OubelkacemLPI
Classe associative
-
8/3/2019 Diagramme de Classes (1)
43/62
43
Classe associativeExemples
Socit
Emploi
Personne
nom
prenom
age
nom
numSiret
adresse
fonction
salaire
1..*
Etudiant
Rsultat
Concours
nom cole
datelieu
nom
prnomadresse
note
1..*1..*
Diagramme de Classe/ UML2 A. OubelkacemLPI
Classe associative
-
8/3/2019 Diagramme de Classes (1)
44/62
44
Classe associativeExemples
Exemple: Supposons quun dpartement achte des logiciels. Un logiciel
peut tre achet par un ou plusieurs dpartement(s) diffrentes dates et
diffrents prix. On prcise laide des cardinalits minimales que chaque
dpartement a achet au moins un logiciel et que chaque logiciel a t
achet par au moins un dpartement.
En plaant lattribut dateachat dans Dpartement ou dans Logiciel, nous exprimons deux choses
diffrentes, savoir quun dpartement nachte des logiciels qu une seule date ou quun
logiciel ne peut tre achet qu un seul moment de lanne. Ces deux remarques valent
galement pour lattribut prix.
Diagramme de Classes/ UML2 A. OubelkacemLPI
Classe associative
-
8/3/2019 Diagramme de Classes (1)
45/62
45
Classe associativeExemples
Exemple2: Dans cet exemple des logiciels sont installs sur des serveurs
linitiative de dpartements. On dsire savoir la date laquelle un
dpartement a procd linstallation dun logiciel sur un serveur.
Le diagramme modlise lassociation laide du symbole de lassociation n-aire. La contraintedunicit apparat explicitement (multiplicit 1 du ct Serveur).
Association en losange
Diagramme de Classes/ UML2 A. OubelkacemLPI
Classe associative
-
8/3/2019 Diagramme de Classes (1)
46/62
46
Classe associativeExemples
Exemple2: Dans cet exemple des logiciels sont installs sur des serveurs
sur linitiative de dpartements. On dsire savoir la date laquelle un
dpartement a procd linstallation dun logiciel sur un serveur.
Lexemple dcrit la mme association laide dune classe strotype . La contrainte dunicit napparat plus explicitement.
Association streotyp
Diagramme de Classes/ UML2 A. OubelkacemLPI
Les diffrents types dassociation
-
8/3/2019 Diagramme de Classes (1)
47/62
47
Les diffrents types d association
Il existe plusieurs types dassociation
LagrgationForme spciale dassociation entre un tout et une partie
La compositionForme spciale dagrgation o le cycle de vie de la partie est rgi par
celui du tout LhritageForme spciale dassociation permettant de factoriser lescaractristiques et comportement communs un ensemble de classes
Lassociation simple
Ce sont les associations qui ne se rclament daucune des catgoriesprcdemment cites
Diagramme de Classes/ UML2 A. OubelkacemLPI
Agrgation
-
8/3/2019 Diagramme de Classes (1)
48/62
48
Agrgation
Personne Universittudie
1..* 0..*
Une agrgation est une association non symtrique dans laquellelune des deux classes joue un rle prpondrant
Une agrgation est une relation tout-partie entre un agrgat (le tout)et un composant (la partie)
Lagrgation est reprsente par un losange blanc du ct de lagrgat Le composant peut appartenir simultanment plusieurs agrgats Le cycle de vie des composants nest pas tributaire de celui de
lagrgat
Une personne peut tudier dans aucune plusieurs universits
Une universit peut accueillir de une plusieurs personnes
Arrt Circuit Autobus1..*
1Diagramme de Classes/ UML2 A. OubelkacemLPI
Agrgation
-
8/3/2019 Diagramme de Classes (1)
49/62
49
Agrgation
Exemple : lexistence dun copropritaire na de sens que silimmeuble existe. Il ne sagit pas ici dune relation
composite/composant. La suppression dun objet de type immeuble
nentranera pas forcment la destruction de ses copropritaires (pour
ceux qui sont copropritaires dans dautres immeubles).
Diagramme de Classes/ UML2 A. OubelkacemLPI
Composition
-
8/3/2019 Diagramme de Classes (1)
50/62
50
Composition
Une composition est une agrgation part entire La composition est reprsente par un losange noir du ct de lagrgat Le composant ne peut pas appartenir simultanment plusieurs
agrgats (multiplicit 1 ou 0..1 ct agrgat) Le cycle de vie des composants est tributaire de celui de lagrgat Si la multiplicit est 0..1 ct agrgat, le composant peut ne pas tre
associ lagrgat immdiatement, mais une fois lassociation effectu lecomposant vit et meurt avec lagrgat
1..*Universit Salle
possde
Une universit est compose de une plusieurs salles
Une salle nappartient qu une et une seule universit
Voiture Rouepossde
Diagramme de Classes/ UML2 A. OubelkacemLPI
Composition
-
8/3/2019 Diagramme de Classes (1)
51/62
51
Composition
Exemple: lexemple concerne la Modlisation d un ordinateur qui est compos dun
cran, dun ou de plusieurs disques et de diffrents priphriques en utilisant une
agrgation de composition. Les composants (objets des classes Ecran, Disque et
Periphrique) et les composites (objets de la classe Ordinateur) sont ici considrscomme des pices relles. La destruction dun ordinateur entranera la destruction de
ses composants.
Diagramme de Classes/ UML2 A. OubelkacemLPI
Composition : abus de langage !
-
8/3/2019 Diagramme de Classes (1)
52/62
52
Composition : abus de langage !
Attention : on parle trs souvent de composition pour dsigner
une simple association entre deux classes. Cela ce traduit parlexistence dun attribut qui rfrence une (des) instance(s)dune autre classe.
Personne Compte*
Une personne possde des comptes mais nest pas compose de comptes
Diagramme de Classes/ UML2 A. OubelkacemLPI
Gnralisation / Spcialisation
-
8/3/2019 Diagramme de Classes (1)
53/62
53
Gnralisation / Spcialisation
Super-classe
Sous-classe
Spcialisation
Gnralisation
Notation
La gnralisation /spcialisation est une relationde classification entre uneclasse plus gnrale et une
classe plus spcialise
On lappelle aussi relationdhritage ou relation est-
une-sorte-de
La gnralisation estreprsente au moyen dune
flche pointant de la classe laplus spcialise vers laclasse la plus gnrale
Diagramme de Classes/ UML2 A. OubelkacemLPI
Gnralisation / SpcialisationE l
-
8/3/2019 Diagramme de Classes (1)
54/62
54
Exemple
Exemple :
La classe Compte est unegnralisation des sous-classes CompteASeuil et CompteRemunere .
La classe
CompteASeuil est unespcialisation de la classeCompte.
Compte
numrosolde
dbiter
CompteASeuil
seuil
CompteRmunr
taux
Diagramme de Classes/ UML2 A. OubelkacemLPI
Gnralisation / SpcialisationE l dh it
-
8/3/2019 Diagramme de Classes (1)
55/62
55
Exemple dhritage
Dposer montant
Retirer montant
Compte courantNumroSoldeDevise
Calculer les intrts
Ligne de crditDposer montant
Retirer montant
Compte d'pargneNumroSoldeDevise
Calculer les intrts
Montant max de retrait mensuel
Obtenir titulaire Obtenir titulaireImprimer extrait hebdomadaire Imprimer extrait mensuel
Compte courant etCompte dpargne
comme classesspares
Compte courant
Ligne de crdit
Compte d'pargne
Montant max de retrait mensuel
Imprimer extrait hebdomadaire Imprimer extrait mensuel
Dposer montant
Compte
NumroSoldeDevise
Obtenir titulaireRetirer montantCalculer les intrts
Classes avec
hritage
Diagramme de Classes/ UML2 A. OubelkacemLPI
Classe et opration abstraites
-
8/3/2019 Diagramme de Classes (1)
56/62
56
p
Une classe abstraite est uneclasse pour laquelle il nest paspossible de crer dinstancesdirectement
Son nom est crit en italique
Une opration abstraite duneclasse A est une opration ne
possdant pas dimplmentationdans A mais qui doitobligatoirement tre implmentedans les sous-classes de ASa signature est crite en italique
Toute classe contenant au moinsune opration abstraite estabstraite
Forme gomtrique
Rectangle
Dessiner()
Dessiner()
Rond
Dessiner()
Diagramme de Classes/ UML2 A. OubelkacemLPI
Discriminant sur relation dhritage
-
8/3/2019 Diagramme de Classes (1)
57/62
57
g
Personne
La spcialisation dunesuper-classe peut avoir lieuselon diffrents critressimultans
Chacun de ces critres estreprsent par une chanede caractres et sappelle
un discriminant
Le discriminant estpositionn ct de la
sous-arborescence quilqualifie
Homme Femme Etudiant Employ
sexe travail
Diagramme de Classes/ UML2 A. OubelkacemLPI
Contraintes sur gnralisation /spcialisation
-
8/3/2019 Diagramme de Classes (1)
58/62
58
spcialisation
Il est possible dexprimer deux types de contraintes prdfinies sur les
sous-classes dune gnralisation:
La contrainte de compltudePrcise ltat davancement de la classification propose par lagnralisation / spcialisation
La contrainte de chevauchementContrainte ensembliste sur les instances de la sous-classe vis--visdes instances de la super-classe
Diagramme de Classes/ UML2 A. OubelkacemLPI
Contrainte de compltude surrelation dhritage
-
8/3/2019 Diagramme de Classes (1)
59/62
59
relation d hritage
Personne
La contrainte de compltudepermet dindiquer si lagnralisation peut tretendue ou non
{complte} indique que lonne peut plus ajouter de classe larborescence
{incomplte} indique quelarborescence peut trecomplte ultrieurement
{complte}
Homme Femme
Mammifre
{incomplte}
Chat LoupChien
Diagramme de Classes/ UML2 A. OubelkacemLPI
Contrainte de chevauchement surrelation dhritage
-
8/3/2019 Diagramme de Classes (1)
60/62
60
relation d hritage
Personne
La contrainte dechevauchement apporte desprcisions sur la nature desinstances de la super-classe
{disjoint} indique quelensemble des instances dessous-classes forment unepartition de la super-classe
{chevauchement} indiquequil peut exister desinstances qui soient la foisinstance de deux sous-classes
{disjoint}
Homme Femme
Vhicule
{chevauchement}
MarinTerrestre
Diagramme de Classes/ UML2 A. OubelkacemLPI
Diagramme de classes(Recommandations)
-
8/3/2019 Diagramme de Classes (1)
61/62
61
(Recommandations)
Toujours garder lesprit quun diagramme de classe proposeune vision statique des donnes du problme
Les associations dun diagramme de classes sont statiques,
mais la cration des liens entre objets est dynamique
Ne jamais hsiter donner les multiplicits
Diagramme de Classes/ UML2 A. Oubelkacem
LPI
Diagramme de classes(Recommandations)
-
8/3/2019 Diagramme de Classes (1)
62/62
62
(Recommandations)
Dans la mesure du possible, viter les discriminants dans lesassociations de type gnralisation / spcialisation
viter lutilisation des contraintes de chevauchement dans les
associations de type gnralisation / spcialisation
Privilgier la dlgation lhritage
Diagramme de Classes/ UML2 A. Oubelkacem
LPI