Académique Documents
Professionnel Documents
Culture Documents
Objet, Classe, Attribut, Mthode Lien, Association, Cardinalit Gnralisation, Composition, Aggrgation, Classe associative, Association qualifie
Concepts de base
UML est bas sur diffrents concepts de base :
Objet, Classe Lien, Association Contrainte
jmfavre@imag.f r
Diagrammes de Classes
Mthodes
nom paramtre type du rsultat
Conventions :
{ solde > dcouvertMax }
jmfavre@imag.f r
Contraintes
Diagrammes de Classes 3
les noms de classes commencent par une majuscule les noms d attributs et de mthodes commencent par une minuscule
jmfavre@imag.f r
Diagrammes de Classes
leCompteDePaul
APourCompte>
paul : Client
c1 : Compte
: Compte
APourCompte>
pierre : Client
APou rCom pte >
c2 : Compte
c3 : Compte
Convention :
les noms d objets commencent par une minuscule et sont souligns
jmfavre@imag.f r
Conventions :
Diagrammes de Classes 5
jmfavre@imag.f r
les noms des liens sont des formes verbales et commencent par une majuscule > indique le sens de la lecture (ex: paul APourCompte c1 )
Diagrammes de Classes
Rles
Chacun des deux objets joue un rle diffrent dans le lien
APourCompte>
pierre : Client
titulaire
compte
c1 : Compte
Client
Compte
pierre assume le rle de titulaire pour le compte c1 c1 assume le rle de compte pour pierre Conventions :
choisir un groupe nominal pour dsigner un rle si un nom de rle est omis, le nom de la classe fait office de nom
jmfavre@imag.f r
APourCompte>
paul : Client
c1 : Compte
APourCompte>
pierre : Client
AP ou rC om pte >
c2 : Compte
marie : Client
c3 : Compte
Diagrammes de Classes
jmfavre@imag.f r
Client
titulaire
Compte
APourCompte >
paul : Client
c1 : Compte
APourCompte >
pierre : Client
APourC ompte >
c2 : Compte
marie : Client
c3 : Compte
jmfavre@imag.f r
Diagrammes de Classes
jmfavre@imag.f r
Diagrammes de Classes 10
APourCompte>
0..* comptes
Client
titulaire
Compte
Client
titulairePrincipal
paul.comptes = {c1} pierre.comptes = {c2,c3} marie.comptes = {} c1.titulaire = paul c2.titulaire = pierre c3.titulaire = pierre
jmfavre@imag.f r
APourCompte>
paul : Client
c1 : Compte
APourCompte>
pierre : Client
AP ou rC om pte >
c2 : Compte
marie : Client
c3 : Compte
dcrire les contraintes en langue naturelle (ou en OCL le langage de contrainte dUML)
jmfavre@imag.f r
(1) Un client ne peut pas tre la fois titulaire principal et co-titulaire d un mme compte. (2) Les titulaires d un compte sont le titulaire principal et les co-titulaires le cas chant
Diagrammes de Classes 12
Diagrammes de Classes 11
Diagramme de classes
Client 1..4
titulaires
Diagrammes dobjets
EstAcceptPar>
0..*
1..*
1..*
: CarteBleue
signataire titulaires
: Distributeur
1 signataire
0..* Consortium
fred : Client
c4 : Compte
: Banque
: Consortium
0..*
virementPossible
: CarteBleue
signataire
0..*
0..1
1 0..*
paul : Client
titulaires
c1 : Compte
: Banque
EstAcceptPar>
Distributeur
titulaires
1..*
(1) Le signataire de la carte bleue associe un compte est l un des titulaires de ce compte. (2) Une carte bleue est accepte au moins dans tous les distributeurs appartenant aux consortiums de la banque correspondant au compte associ la carte bleue. (3) Un virement est possible entre deux comptes distincts si les banques correspondantes appartiennent un mme consortium. jmfavre@imag.f r Diagrammes de Classes 13
pierre : Client
tit ula ire s
c2 : Compte
: Consortium
titulaires
marie : Client
signataire
c3 : Compte : CarteBleue
EstAcceptPar>
: Banque
sophie : Client
EstAcceptPar>
: Distributeur
jmfavre@imag.f r
Diagrammes de Classes 14
1..*
1..*
signataire
0..* Consortium
CarteBleue
Un diagramme dobjets
dcrit un tat possible un instant t, un cas particulier doit tre conforme au modle de classes
0..1
virementPossible
1 0..*
EstAcceptPar >
Distributeur 1..*
s : i g n a t a i r e
t i t t i u l t u a l i r a i e r s e s
...
jmfavre@imag.f r
Diagrammes de Classes 15
jmfavre@imag.f r
t1
t2
3 Diagrammes de Classes 16
Gnralisation / Spcialisation
Une classe peut tre la gnralisation dune ou plusieurs autres classes. Ces classes sont alors des spcialisations de cette classe.
Personne
Hritage
Les sous-classes hritent des proprits des super-classes (attributs, mthodes, associations, contraintes)
Compte solde crditer() dbiter() * Banque CompteEpargne {solde > -5000} solde tauxIntrt crditer() dbiter() calculIntrts () {solde > -5000 et tauxIntrt < 100}
Diagrammes de Classes 18
"Super classe"
Compte
Banque
Homme
Femme
"Sous classes"
Compte Epargne
jmfavre@imag.f r
Diagrammes de Classes 17
jmfavre@imag.f r
Vision ensembliste
Vision ensembliste : tout objet dune sous-classe appartient galement la super-classe => inclusion des ensembles dobjets
Compte
c3 c2 ce2 ce1 c2 c1
o1
Association
rle cardinalit
Gnralisation
o1
o3 o4 o2
o1
o2 o2 o5
o3
Compte Epargne
ce3
Compte
CompteEpargne
Objets
Diagrammes de Classes 19
jmfavre@imag.f r
Liens
Inclusion ensembliste
Diagrammes de Classes 20
jmfavre@imag.f r
Exemple
subordonns * 1..* employs 0..1 parents mre 0..1 0..2
paul
Exemple
poux pre
pouse mre
mari e
Personne
directeur 0..1
Socit
pre 0..1
parents
Personne
sexe enfants * 0..1
pouse 0..1
enfants
joe
enfants parents
(1) Le directeur de tout employ est employ dans la mme socit. (2) Dans toute socit il y a au moins une personne qui n est dirige par personne (le directeur de la socit). (3) Une personne ne peut pas tre directeur d elle mme ...
jmfavre@imag.f r
poux
Diagrammes de Classes 21
jmfavre@imag.f r
Diagrammes de Classes 22
Rappels
UML est un ensemble de notations De nombreuses utilisations possibles Notation simple vs. complexe Notation plus ou moins formelle Notation extensible
jmfavre@imag.f r
Diagrammes de Classes 24
Savoir s'adapter
S'adapter au niveau d'abstraction au domaine d'application ses collgues aux outils utiliss
pour crire des diagrammes UML, pour gnrer du code, des schmas de bases de donnes, etc. ...
+ # -
visible visible dans la classe et ses sous-classes visible dans la classe uniquement
N'a pas de sens dans un modle abstrait Utile lors de la conception. N'utiliser que lorsque ncessaire.
jmfavre@imag.f r
Diagrammes de Classes 25
Diagrammes de Classes 26
Dclaration d'attributs
[ visibilit ] nom [card] [ : type ] [ = valeur-initiale ] [ { props... } ] exemples: age - age : Integer = 0 # age [0..1] : Integer # numsecu : Integer {frozen} # motsCls [*] : String {addOnly} Adapter le niveau de dtail au niveau d'abstraction
jmfavre@imag.f r
Dclaration d'oprations
[ visibilit ] nom [ ( params ) ] [ : type ] [ { props... } ] params := [ in | out| inout ] nom [ : type] [ =defaut ] [{ props... } ] exemples: getAge() + getAge() : Integer - updateAge( in date : Date ) : Boolean + getAge() : Integer {isQuery} Adapter le niveau de dtail au niveau d'abstraction
jmfavre@imag.f r
Diagrammes de Classes 27
Diagrammes de Classes 28
Navigation
Association unidirectionnelle On ne peut naviguer que dans un sens
Composition
Notion intuitive de "composants" et de "composites"
Voiture
titulaire
Pneu Jante
Roue
Client
Compte
Ce dtail nest a priori utile que lors de la conception En cas de doute ne pas mettre de flche !!! ,
jmfavre@imag.f r
Diagrammes de Classes 29
Diagrammes de Classes 30
Composition
Contraintes lies la composition : 1. Un objet composant ne peut tre que dans un seul objet composite 2. Un objet composant nexiste pas sans son objet composite 3. Si un objet composite est dtruit, ses composants aussi
1
Composition
Contraintes: 1. Un objet composant ne peut tre que dans un seul objet composite 2. Un objet composant nexiste pas sans son objet composite 3. Si un objet composite est dtruit, ses composants aussi
1..* 1..*
Voiture
Pneu Jante
Roue
Document
Chapitre
0..*
Section Figure
0..1
jmfavre@imag.f r
Diagrammes de Classes 31
jmfavre@imag.f r
Diagrammes de Classes 32
Composition
1 1..* 1..*
Composition
Document
Chapitre
0..* 1..*
: section
Section
Polygone 3..* x y Point 1 Cercle rayon
Figure
jmfavre@imag.f r
jmfavre@imag.f r
Diagrammes de Classes 34
Volant Roue
* 1
0..1
Voiture
4 *
*
siges
Sige
Voiture
0..1
Constructeur
Volant
* 1 *
Roue 4
Diagrammes de Classes 36
Exemple
Polygone
succ 1
Aggregation
aggregation = cas particulier dassociation + contraintes dcrivant la notion d'appartenance... ?
* Point x y
initial 1 pointsLis *
3..*
Figure
Point
deplacer() supprimer()
*
deplacer() supprimer()
Partage possible Pas de concensus sur la signification exacte de l'aggrgation Utiliser avec prcautions (ou ne pas utiliser...)
jmfavre@imag.f r
jmfavre@imag.f r
Diagrammes de Classes 37
Diagrammes de Classes 38
Classes associatives
employ
Classes associatives
socit 0..2
Pour associer des attributs et/ou des mthodes aux associations => classes associatives
employ socit 0..2
Personne
Socit
Emploi
salaire augmenter()
e1 salaire = 10000
Personne
Socit
Emploi
salaire
employ
s1
e2 salaire = 2000
employ
augmenter()
pierre
s1 e3
Le salaire est une information correspondant ni une personne, ni une socit, mais un emploi (un couple personne -socit).
Diagrammes de Classes 40
Diagrammes de Classes 39
jmfavre@imag.f r
Classes associatives
employ
Classes associatives
socit 0..2
Pour une association donne, deux objets ne peuvent tre connects que par un seul lien correspondant cette association.
Emploi>
Personne
Socit
e1 p1 s1
Emploi
salaire
p1
Emploi>
s1 Ci-dessus, une personne peut avoir deux emplois, mais pas dans la m me socit
e1 p1 e2 s1
Cette contrainte reste vraie dans le cas o lassociation est dcrite partir d une classe associative.
: Emploi salaire = 10000
employ
0..2
p1
: Emploi salaire = 2000 jmfavre@imag.f r
s1
Personne
1
Emploi
salaire
socit
Socit
1
Ci-dessus, une personne peut avoir deux emplois dans la mme socit
Diagrammes de Classes 41
jmfavre@imag.f r
Diagrammes de Classes 42
Classes associatives
Classes associatives
Les classes associatives sont des associations mais aussi des classes. Elles ont donc les mmes proprits et peuvent par exemple tre lies par des associations.
employ socit
Virement
montant
Ou ?
*
Virement
montant * * 1 compteCrdit
Personne
compteDbit
compteDbit 1
Socit
Emploi compte
salaire augmenter()
subordonns responsable
compte
0..1
compteCrdit
jmfavre@imag.f r
Diagrammes de Classes 43
jmfavre@imag.f r
Diagrammes de Classes 44
ClasseA
roleA {frozen}
<AssociationX
0..*
ClasseB AssociationX
RelevDe Compte
lignes * {ordered,addOnly}
Ligne Opration
attributZ
) Classe associative
Navigation
Diagrammes de Classes 45
jmfavre@imag.f r
Diagrammes de Classes 46
Exemple
Graphe
Associations qualifies
Un qualifieur est un attribut ou un ensemble d'attributs dont la valeur sert dterminer l'ensemble des instances associes une instance via une association.
*
{frozen}
Polygone
1 *
Noeud
preds
* succs
Arc Repertoire
2..* {ordered}
nom
0..1
Fichier
{ordered,frozen}
Points
0..1 *
Poignes
Diagrammes de Classes 47
jmfavre@imag.f r
Diagrammes de Classes 48
0..1
Personne
0..1
Compte
Banque
* Client
ncpt
clients *
Personne
ncpt nl : NumLigne nc : NumCol 1
Echiquier Personne
*
Case
1
Banque
*
Banque
*
jmfavre@imag.f r
Client *
ncpt
Personne
* *
Diagrammes de Classes 49
jmfavre@imag.f r
Banque
titre
Employe
Diagrammes de Classes 50
Exemple
*
membres
Hritage et redfinition
Une sous classe peut redfinir une proprit, condition toutefois de rester compatible avec la dfinition originale
Figure surface() dplacer()
Association1901
titre:Titre
Personne
* 1
membres
membres
a1
jmfavre@imag.f r
Hritage multiple
Une classe peut hriter de plusieurs super-classes
Appareil
Chauffage
Appareil lectrique
PoelA Mazout
Chauffage lectrique
FourA MicroOndes
Diagrammes de Classes 53
jmfavre@imag.f r
Diagrammes de Classes 54
Exemple
enfants
Hritage multiple une classe peut hriter de plusieurs classes Classification simple un objet est instance dune seule classe Classification statique un objet est cr partir dune classe donne et nen change pas
Personne
mre 0..1
pre
Femme
Homme
jmfavre@imag.f r
Diagrammes de Classes 55
jmfavre@imag.f r
Diagrammes de Classes 56
Exemple
Compte solde crditer() dbiter()
destinataire 1 {montant<0} 1 {addOnly,ordered} *
Dbit
Crdit
{montant>0}
Retrait Virement
Retrait Espce
Retrait Guichet
jmfavre@imag.f r
Retrait * Distributeur
Distributeur
Diagrammes de Classes 57
10