Diagramme de classes

De Wiki SIO EDM
Aller à : navigation, rechercher
Exemple de diagramme de classes

Le diagramme de classes est une forme de schématisation normalisée d'un programme orienté objet. Il permet de visualiser les différentes classes (avec ses attributs et ses méthodes) et les relations entre elles à l'instar du Modèle Entité Association qui permet de schématiser la structure d'une base de données.


Schématisation d'une classe

Modèle 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


Syntaxe

La syntaxe d'un attribut est la suivante :

Visibilité nomAttribut : typeAttribut ;

La syntaxe d'une méthode est la suivante :

Visibilité nomFonction(nomParamètreN : typeParamètreN) : typeRetour


Le nom ne doit pas comporter d'espaces, de signes de ponctuation ou d'accents. Pour remplacer les espaces, plusieurs conventions existent : on peut utiliser le symbole _ ou changer la première lettre du mot en majuscule (exemple : nom de l'objet peut s'écrire nomObjet ou nom_objet).

Visibilité

La notion de visibilité indique qui peut avoir accès à l'attribut.

Elle ne peut prendre que 4 valeurs possibles :

Caractère Rôle Mot-clé Description
+ accès public public Toutes les autres classes ont accès à cet attribut.
# accès protégé protected Seules la classe elle-même et les classes filles (héritage) ont accès à cet attribut.
~ accès package package Classe visible uniquement dans le package.
- accès privé private Seule la classe elle-même a accès à cet attribut.

Afin de respecter le principe fondamental d'encapsulation, tous les attributs devraient être privés.

Relations entre les classes

Héritage

T' hérite de T

L'héritage est représenté par une flèche allant d'une classe (la classe fille) vers une autre classe (la classe mère). Cela signifie que la classe source hérite de tous les attributs et méthodes, qu'ils soient publics, protégés ou privés, de la classe cible. Cependant, elle ne peut pas utiliser directement les attributs et méthodes privés (que ce soit en lecture ou en écriture), sauf par l'intermédiaire d'une méthode héritée (publique ou protégée).


Association

Navigabilité des associations
1 - bidirectionnelle
2 - mono-directionnelle
3 - interdit l'association

L'association fonctionne de la même manière que dans le MEA. Elle est représentée par une liaison entre deux classes (elle peut porter un nom) accompagnée de multiplicités (équivalent des cardinalités) de chaque côté de l'association. Une association bidirectionnelle se traduit par des multiplicités *..n des deux côtés montrant que chacune des classes peut recevoir plusieurs instances de l'autre. Une association mono-directionnelle se traduit par une multiplicité 1..1 de l'un des côtés de l'association. Cela signifie que la source de cette multiplicité ne reçoit qu'une seule instance de la classe cible.


Agrégation

Agrégation

L'agrégation est représentée par une association avec un losange vide de l'un des côtés. Il s'agit d'une précision sur la nature d'une association qui n'a de sens que dans un contexte donné. Cela veut dire que la source de l'agrégation ne dépend pas entièrement de la classe cible. C'est-à-dire que la suppression de la classe cible n'entraîne pas la suppression de la classe source, car celle-ci n'a pas besoin de la classe cible pour exister contrairement à la composition.


Composition

Composition

La composition est représentée par une association avec un losange plein de l'un des côtés. Cela signifie que la classe source est composée de la classe cible. La suppression de la classe source entraînerait la suppression de la classe cible car elles dépendent l'une de l'autre. La composition permettrait de traduire le lien identifiant dans le MEA ou bien une table dans la base de données avec une clé primaire double dont l'une des deux serait aussi clé étrangère.


--Jcipolato (discussion) 22 décembre 2016 à 21:12 (CEST)