Vous êtes sur la page 1sur 28

Diagramme de Classe

Roberton C. Philistin
robertonphilistin@yahoo.fr
37-67-63-45
1
Diagramme de classe
 Schéma utilisé en génie logiciel pour
présenter les classes et les interfaces des
systèmes ainsi que les différentes relations
entre celles-ci.

2
Diagramme de classe
 Ce diagramme fait partie de la partie
sructurelle (statique) d'UML
 il fait abstraction des aspects
temporels et dynamiques.

3
Diagramme de classe
• Le diagramme de classes est considéré
comme le plus important de la
modélisation orientée objet,
• il est le seul obligatoire lors d'une telle
modélisation.

4
Diagramme de classe
• Alors que le diagramme de cas
d'utilisation montre un système du point
de vue des acteurs,
• le diagramme de classes en montre la
structure interne.
• Il permet de fournir une représentation
abstraite des objets du système qui vont
interagir pour réaliser les cas d'utilisation.

5
Diagramme de classe
• Le diagramme de classes modélise les
concepts du domaine d'application ainsi
que les concepts internes créés de toutes
pièces dans le cadre de l'implémentation
d'une application.

6
Diagramme de classe
• Chaque langage de Programmation orienté
objet donne un moyen spécifique d'implémenter
le paradigme objet (pointeurs ou pas, héritage
multiple ou pas, etc.),
• Le diagramme de classes permet de modéliser
les classes du système et leurs relations
indépendamment d'un langage de
programmation particulier.

7
Diagramme de classe
 Une classe est un ensemble de fonctions
(méthodes) et de données (attributs) qui
sont liées ensemble par un champ
sémantique.
 Les classes sont utilisées dans la
programmation orientée objet.

8
Diagramme de classe
 Elles sont finalement instanciées pour créer des
objets
 Une classe est un moule à objet : elle décrit les
caractéristiques des objets,
 Les objets contiennent leurs valeurs propres
pour chacune de ces caractéristiques lorsqu'ils
sont instanciés.

9
Diagramme de classe
 Les classes peuvent être liées entre elles grâce
au mécanisme d'héritage qui permet de mettre
en évidence des relations de parenté.
 D'autres relations sont possibles entre des
classes, chacune de ces relations est
représentée par un symbole spécifique dans le
diagramme de classes.

10
Schéma d'une classe

Une classe est représentée par un


rectangle séparée en trois parties :
 la première partie contient le nom de la
classe
 la seconde contient les attributs de la
classe
 la dernière contient les méthodes de la
classe
11
Schéma d'une classe
Première partie : le nom de la classe
 Il est écrit dans le rectangle du haut.
 Dans une classe classique, le nom est
écrit en romain.

12
Schéma d'une classe
Première partie : le nom de la classe
 Il est écrit dans le rectangle du haut.
 Le nom des classes abstraites est écrit en
italique.

13
Classes abstraites

14
Schéma d'une classe
Première partie : le nom de la classe
 Il est écrit dans le rectangle du haut.
 Les classes template ont, dans leur angle
supérieur droit, un rectangle dont la bordure est
en pointillé et qui contient les types des
paramètres

15
Schéma d'une classe
Seconde partie : les attributs
 La syntaxe d'un attribut est la suivante :
 Visibilité nomAttribut [multiplicité] : typeAttribut =
Initialisation

16
Schéma d'une classe
Visibilité
 La notion de visibilité indique qui peut avoir
accès à l'attribut.
 Elle ne peut prendre que 3 valeurs possibles :
Caractère Rôle Mot clé Description

+ accès public Toutes les autres classes ont accès à cet


public attribut.

# accès protected Seules la classe elle-même et les classes


protégé filles (héritage) ont accès à cet attribut.

- accès privé private Seule la classe elle-même a accès à cet


attribut.

17
Manières de montrer les attributs en UML

• Les attributs d’une classe (aussi appelés


propriétés structurelles en UML) sont
représentés de plusieurs manières :
• En texte, par exemple : ventecourante :Vente
• Au moyen d’une ligne d’association
• Une combinaison des deux

18
Manières de montrer les attributs en UML

JeuxDeDé Dé
de1 : De Valeurface: int
de2 : De getValeurFace() int
jouer() lancer()

19
Manières de montrer les attributs en UML
Register Sale
using the attribute
text notation to ...
currentSale : Sale
indicate Register has
a reference to one ... ...
Sale instance

Register Sale
OBSERVE: this style
visually emphasizes 1
... ...
the connection
currentSale
between these classes ... ...

using the association notation to indicate


Register has a reference to one Sale instance

Register Sale
thorough and
unambiguous, but some 1
currentSale : Sale ...
people dislike the
currentSale
possible redundancy ... ...

20
Relations entre classes
• Association : connexion sémantique entre
deux classes (relation logique),
• Représentée par un simple trait

Personne Travaille Entreprise

21
Relations entre classes
• héritage : principe de
division par généralisation et
Animal
spécialisation, représenté
par un trait reliant les deux
classes et dont l'origine
(classe mère) se distingue
Carnivore
de l'autre l'extrémité (classe
fille) par un triangle

22
Relations entre classes
• héritage : généralisation/spécialisation

23
Relations entre classes
Agrégation : c'est une association (tout/partie,
composé/composant) avec relation de
subordination, représentée par un trait reliant les
deux classes et dont l'origine se distingue de
l'autre l'extrémité (la classe subordonnée) par un
losange

Voiture Pièce

24
Relations entre classes
Composition (agrégation composite) :
agrégation avec cycle de vie dépendant (on dit
que la classe qui représente la partie est détruite
lorsque la classe mère disparaît)

Maison Pièce

25
Relations entre classes
Agrégation et Composition (agrégation
composite)

26
Multiplicité
• multiplicité : sert à compter le nombre
minimum et maximum de possibilités que
chaque classe contient dans la relation liant 2
ou plusieurs classes.

27
Multiplicité
n : exactement "n" (n, entier naturel > 0)
exemples : "1", "7"
n..m : de "n" à "m" (entiers naturels ou
variables, m > n)
exemples : "0..1", "3..n", "1..31"
* : plusieurs (équivalent à "0..n" et "0..*")
n..* : "n" ou plus (n, entier naturel ou variable)
exemples : "0..*", "5..*"

28

Vous aimerez peut-être aussi