Vous êtes sur la page 1sur 52

Diagramme de classes

Alors que le diagramme de cas dutilisation montre le systme du


point de vue des acteurs, le diagramme de classes en montre la
structure interne.

C'est une collection d'lments de modlisation statiques (classes,


paquetages...), qui montre la structure d'un modle.

Il fait abstraction des aspects dynamiques et temporels. Pour un


modle complexe, plusieurs diagrammes de classes doivent tre
construits.

Il permet de donner une vue statique du systme en terme de :


Classes
Relations entre classes
Associations
agrgation/composition
Hritage
Dpendance 1
Concept de classe
Une classe est un concept qui reprsente :
des lments concrets (ex : des avions)
des lments abstraits (ex : des commandes de marchandises ou
services)
des composants dune application (ex : les boutons des botes de
dialogue)

Une Classe reprsente un ensemble dobjets ayant les mmes


proprits (attributs) et le mme comportement (oprations).

Un objet est une instance de classe.

Remarque
Pour ne pas alourdir le modle, on peut ne pas visualiser les attributs
et/ou les oprations 2
Concept de classe
Reprsentation graphique
les classes sont reprsentes par des rectangles contenant :
un compartiment pour le nom de la classe
un compartiment pour les attributs de la classe
un compartiment pour les oprations de la classe

3
Attributs
Un attribut doit (gnralement) avoir une valeur atomique
(dictionnaire de donnes)
un client a un nom, un prnom, une adresse, un code client,

Syntaxe
Visibilit nom_attribut:type[= valeur initiale]
O Visibilit est :
+ (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.

4
Attributs
Lorsquun attribut peut tre driv ou calcul partir d'autres attributs,
il doit tre prcd de /.
Exemple
Rectangles
- Largeur : float = 10
- Longueur : float
- /Surface : float

Attribut de classe
Toutes les instances de la classe possde la mme valeur pour cet
attribut.

5
Les mthodes
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 , Payer .

Syntaxe
Visibilit opration([arguments:type]):type de rsultat
Visibilit de lopration (-, +, #)
Nom de lopration
Liste des arguments avec leurs types
Le type du rsultat retourn

6
Les mthodes
Mthode de classe
Ne peut manipuler que des attributs de classe et ses
propres paramtres. Laccs une mthode de classe
ne ncessite pas lexistence dune instance de cette
classe.
Graphiquement, une mthode de classe est souligne.

Mthodes et classes abstraites


Lorsquon connat son entte mais pas la dfinition.
Classe est abstraite : contient au moins une mthode
abstraite ou lorsquune classe mre contient une
mthode abstraite.
On ne peut instancier une classe abstraite
7
Interface
Toutes ses mthodes sont abstraites.
Une interface se note en UML avec le strotype
<<interface>> ou par le symbole

Forme

8
Encapsulation

Donnes } Partie statique, passive


Partie cache, prive

Traitement
} Partie dynamique, comportement
Partie visible, publique
Interface avec lextrieur

User

9
Les relations
Il existe plusieurs types de relations entre classes : association,
dpendance et gnralisation/spcialisation.

Association
Relation entre une, deux ou plusieurs classes.
Une association porte un nom (signification)
Elle est reprsente par une ligne.

Les associations sont caractrises par :


Nom de l'association
Sens de lecture
Cardinalits
Rles
Visibilit des rles
Navigabilit
10
Nom et sens de lecture
Le nom dcrit la nature (signification) de lassociation
Le sens de lecture montre la direction de lecture de lassociation
Nous pouvons prciser un sens de lecture avec ou et un rle aux
extrmits d'un lien.
Le nom qui dsigne l'association est plac au milieu du lien :

Rle
Dcrit le rle dune classe dans une association

11
Les relations
Rle : dfinit les responsabilits.

Le rle est utile dans deux cas :


Lorsquon a plusieurs associations entre deux classes avec des
Pilote Personne
rles diffrents.
Avion

Passager

Personne
0..4
femme
Pour une relation rflexive
(Indispensable )
0..1
mari 12
Les relations
Multiplicit ou cardinalit
La multiplicit dfinit le nombre dinstances d'une classe qui peut
tre mise en relation avec une seule instance de la classe associe.
La multiplicit est note sur le rle.

13
Les relations
Classes-association
Les attributs dune classe dpendent fonctionnellement de
lidentifiant de la classe.
Parfois, un attribut dpend fonctionnellement de 2 identifiants,
appartenant 2 classes diffrentes.

Dans ce cas, lassociation est dite "porteuse dattributs"


Une telle association est appele classe-association.

14
Les relations
Classes-association
Toute classe-association peut tre remplace par une classe
intermdiaire et qui sert de pivot pour une paire dassociation.

15
Associations
degr dune association = nombre de classes participantes

association binaire : relie 2 classes


association ternaire : relie 3 classes
association n-aire : relie n classes

16
Navigabilit
Une association est par dfaut bidirectionnelle.

Commandes Clients
1..*
1

Cependant, il peut tre utile de se limiter une seule direction, on


parle d'association navigable.

17
Navigabilit
Spcification : on doit tre en mesure de savoir le client qui a fait la
commande et non toutes les commandes dun client
Conception :

Commandes Clients
1..*
1

Implmentation : la classe commande doit avoir un champ faisant


rfrence la classe client.
Les instances de commande voient celles de clients mais les
instances de clients ne voient pas celles de commande.
18
Agrgation et Composition
Une association simple entre deux classes reprsente une relation
structurelle entre pairs de classes de mme niveau conceptuel
aucune des deux classes n'est plus importante que l'autre.

Lorsque l'on souhaite modliser une relation tout/partie o une


classe constitue un lment plus grand (compos d'lments plus
petits), il faut utiliser une agrgation ou composition.
Agrgation
Type particulier dassociation dans laquelle :
Il y a une classe agrgat (compos) et une classes agrge (composant)
Entre les deux, il existe une relation de type "est compos de"
Elle permet de modliser des relations de type matre et esclaves.

Elle reprsente une relation dinclusion structurelle ou


comportementale dun lment dans un ensemble.
Graphiquement, on ajoute un losange du ct de lagrgat.

Agrgat Agrge

20
Agrgation
C'est une relation dans laquelle, les parties (les composants) sont
sparables de Lagrgat (le tout).

Exemple
La suppression dune quipe nimplique pas la suppression des
personnes qui la composent

21
Agrgation
Cas particulier : associations rflexives
On peut avoir des cas dagrgation rflexive ds que lon modlise des
relations hirarchiques ou des liens de parent par exemple.

22
Composition
La composition est un cas particulier dune agrgation dans laquelle
la vie des composants 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).

23
Gnralisation / Spcialisation et hritage

24
Relation de dpendance
Relation smantique (non structurelle) entre deux lments
selon laquelle un changement apport l'un peut affecter la
smantique de l'autre.

Une relation de dpendance dfinit une relation unidirection

Elle indique que la modification de la cible implique une


modification de la source.

Elle est reprsente par un trait discontinu ventuellement


orient et strotype.

25
Types de classes
Classe active
Une classe active initie et contrle le flux dactivits.
Graphiquement, une classe active est reprsente comme une classe
standard dont les lignes verticales du cadre sont doubles.
Nous trouvons deux types de strotypes <<processus>> ou <<
thread>>.

Les interfaces

26
Types de classes
La ralisation
Cette relation nest utilise que pour les interfaces.
Une ralisation est une relation entre une classe et une interface. Elle
montre que la classe ralise les oprations offertes par l'interface.

27
Types de classes
Les classes utilitaires
classe dont les attributs et les oprations sont visibles de tous et sont
static.

strotype <<utilitaire>>.

28
Les Contraintes
Dfinition
Expressions qui montrent des conditions smantiques ou une restriction
sur la proprit dun lment de modlisation.
Objectifs : imposer des rgles respecter lors du passage
limplmentation.
Les contraintes sont reprsentes entre accolades et peuvent tre
exprimes dans nimporte quel langage.

Langage naturel
La contrainte est reprsente entre { }
Mathmatique (exemple : {x = 1})
langage de programmation (exemple : {x == 1})
OCL : Object-Constraint Language
(p. ex. : Container : {self.size <= self.capacity}) 29
Contraintes sur les associations
Quelques Contraintes prdfinies :
{ordonn}
{sous ensemble}
{xor}
{addOnly}
{frozen}

30
contrainte {ordonn}
Indique que les objets seront ordonns chaque opration de cration,
modification, suppression, Personne Compte
1 0..*
{Ordonn}

Cela veut dire que les comptes dune personne sont ordonns

Contrainte {sous-ensemble}
Indique quune collection est incluse dans une autre
Ncessite la prsence dau moins deux relations
Ecole Parent dlve Personnes
1..*
{sous-ensemble}
Dlgu
1..*

Les personnes qui jouent le rle de dlgu font partie des personnes
31
qui jouent le rle de parents dlves
Contraintes
contrainte {xor}
Parmi un groupe dassociations, une seule est valide la fois.

Un PC Portable est aliment soit partir dune batterie, soit partir


dun secteur Batterie

PC Portable 1
{xor}

1 Secteur

32
Contraintes
La contrainte {addOnly}
Autorise lajout de nouveaux objets, mais pas leur suppression ni leur
mise jour.

Personne Liste
1..*
1

0..*
{addOnly}

Enfants

33
Contrainte {frozen}
Interdit lajout, la suppression ou la mise jour des
liens dun objet vers les objets de la classe associe,
aprs linitialisation du premier. Personne
{frozen} 0..*
enfant
2
parent

34
laboration dun diagramme de classes
Un diagramme de classes fait abstraction des aspects dynamiques et
temporels.
Pour un modle complexe, plusieurs diagrammes de classes
complmentaires doivent tre construits.

On peut par exemple se focaliser sur :


les classes qui participent un cas d'utilisation
les classes qui composent un paquetage,
la structure hirarchique d'un ensemble de classes.

35
laboration dun diagramme de classes
Une dmarche couramment utilise :
Trouver les classes du domaine tudi. Cette tape empirique se fait
gnralement en collaboration avec un expert du domaine.

Trouver les associations entre les classes. Les associations correspondent souvent
des verbes, ou des phrases verbales.

Trouver les attributs des classes.


Les adjectifs et les valeurs correspondent souvent des valeurs dattributs. Vous
pouvez ajouter des attributs toutes les tapes du cycle de vie dun projet
(implmentation comprise).

Organiser et simplifier le modle en liminant les classes redondantes et en


utilisant lhritage.

Itrer et raffiner le modle. Un modle est rarement correct ds sa premire


construction. La modlisation objet est un processus non pas linaire mais itratif.
36
laboration dun diagramme de classes
Quelques rgles dlaboration
Les rgles de normalisation des modles entit-relation, issues de
lalgbre relationnelle, peuvent tre appliques un modle de
classes UML, mme si UML ne contient aucune prconisation sur ces
rgles.
Ces rgles aident conduire les travaux de modlisation en vitant le
plus possible la redondance de linformation, tout en restant fidle
aux rgles de gestion.

37
laboration dun diagramme de classes
Exemple
Un client paie sa commande par carte de crdit
Il peut effectuer plusieurs commandes mais une commande n'est
effectue que par un seul client.
Une commande contient des produits.
Le client commande des produits pour une certaine quantit et pour
un certains prix (le prix varie suivant la quantit commande).
Un produit n'est fournit que par un fourni sseur ou aucun mais un
fournisseur peut fournir zro ou plusieurs produits.

38
laboration dun diagramme de classes

39
Diagramme dobjets
Reprsente les objets (instances de classes) et les liens
(instances de relations).
Peut tre utilis pour :
Illustrer 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.

Objectifs
Illustrer par un exemple concret un diagramme de classes.
Faciliter la validation dun diagramme de classes complexe en
prsentant une ou plusieurs instanciations de celui-ci.
Un diagramme dobjets peut servir de base un diagramme
dinteraction. 40
Diagramme dobjets
Reprsentation
Le nom dun objet est soulign.
Nom_objet : Classe
Nom_objet
:Classe

41
Exemple
Diagramme dobjets
Entreprise :Entreprise e1:Entreprise

0..2

2..*
:Personne p1:Personne p2:Personne p3:Personne p4:Personne
Personne

Une entreprise emploie au moins deux personnes.


Une personne travaille dans au plus deux entreprises.

42
Diagramme dobjets
Instance d'association
Strotypes
instanceof : l'objet est une instance de la classe lie

instanciate : une classe cre une des instances d'une classe

Become :

copy 43
Diagramme dobjets
Dans un diagramme dobjets, les relations du diagramme
de classes deviennent des liens.

La relation de gnralisation ne possde pas dinstance,


elle nest donc jamais reprsente dans un diagramme
dobjets.

Graphiquement, un lien se reprsente comme une relation,


mais, sil y a un nom, il est soulign, sans reprsenter les
multiplicits.

44
Diagramme dobjets
Une instance de classe-association ne peut tre associe qu une
instance de chacune des classes associes.

Exemple

45
Diagramme dobjets
Relation de dpendance dinstanciation
La relation de dpendance dinstanciation (strotype instanceof )
dcrit la relation entre un classeur et ses instances. Elle relie, en
particulier, les liens aux associations et les objets aux classes.

46
Diagramme dobjets
Utilit
Permet de prciser certains cas dutilisation particulirement
difficiles.
Utile lors de la phase de dbogage de lapplication.

47
Diagramme dobjets
Exemple

48
Diagramme dobjets
Dans un diagramme dobjets, les relations du diagramme de classes
deviennent des liens.
La relation de gnralisation ne possde pas dinstance, elle nest
donc jamais reprsente dans un diagramme dobjets.
Graphiquement, un lien se reprsente comme une relation, mais, sil
y a un nom, il est soulign, sans reprsenter les multiplicits.

conclusion
Pour reprsenter un contexte prcis, un diagramme de classes peut tre
instanci en un autre diagramme appel diagrammes d'objets.

49
Diagramme dobjets
Remarque

Les liens Instances dassociations rflexives peuvent liers deux objet


diffrents ou un objet luis mme.

50
Diagramme dobjets

51
Diagramme dobjets

52

Vous aimerez peut-être aussi