# Modélisation UML/Le diagramme de classes
## Définitions du diagramme de classes

Définition : Classification qui représente un ensemble d’objets partageant les mêmes spécifications de propriétés, de contraintes et de sémantique.
Le diagramme de classe est un diagramme faisant partie des diagrammes structurels et est un des diagrammes d’UML le plus utilisé du fait de sa notation syntaxique riche. Il représente la structure d’une application orientée objet en montrant les classes et les relations qui s’établissent entre elles.

## Représentation d'une classe

Les classes sont schématisées par une boite rectangulaire à trois sections, la première avec le nom de la classe et ses propriétés, la seconde avec les attributs et la troisième avec les opérations. Une classe peut aussi être représentée seulement en un seul rectangle. Voici le schéma d’un objet de la classe Étudiant :

## Représentation des relations entre classes

Il y a quatre types de relation entre classes :
* L’héritage ou généralisation
* La réalisation
* L’association
* La dépendance
Définition Association : Relation qui peut s’établir entre instances de classes.
Exemple de relations entre classes :
Comme nous pouvons le constater l’association est composée des informations suivantes :
* Le nom de l’association apporte une précision sémantique et facilite la lecture du diagramme : « une course est réalisée par un chauffeur ».
* Le rôle apporte également une précision sémantique à la lecture du diagramme et permet d’identifier la fonction des classes participantes à l’association. On lit ainsi « un chauffeur indépendant est propriétaire d’au moins un taxi », ce qui est plus précis que : « un chauffeur indépendant possède au moins un véhicule ».
* La multiplicité est implicitement une règle de gestion qui permet de préciser le nombre d’instances impliquées dans la relation (attention, contrairement aux notations d’autres méthodologies, le positionnement des multiplicités est inversé). Notations possibles des multiplicités :
| Multiplicité | Signification |
| 1 | Exactement 1 |
| 5 | Exactement 5 |
| * | Plusieurs incluant la possibilité d’aucun |
| 0..* | Idem |
| 0..1 | Au plus un, ce qui signifie également optionnellement |
| 1..* | Au moins un |
| 1..5 | Entre un et cinq |
L’agrégation et la composition sont deux précisions supplémentaires de l’association qui introduisent la notion de « est composé de ». Cette notion est purement sémantique dans le cas de l’agrégation et introduit une règle de gestion dans le cas de la composition.

## Le diagramme de classe en analyse

Le diagramme de classe en analyse permet de définir toute la structure conceptuelle d’une application et d’en faire ressortir toutes les contraintes ou règles de gestion. Le travail d’analyse réalisé sur un diagramme de classe est important car il apporte énormément de sens dans la définition des concepts utilisés par l’application et notamment en formalisant précisément les relations entre classes. L’analyste se concentre en conséquence sur les impacts sémantiques de ce qu’il est en train de décrire et doit maitriser les notations d’UML.

## Le diagramme de classe en conception

La conception doit compléter le modèle d’analyse de façon à préciser les techniques qui doivent être employées pour le codage. Le diagramme de classe représente alors directement la structure du code qui doit être réalisé ; c’est pourquoi ce diagramme prend une place prépondérante dans la phase de conception.
Le conception des attributs et des opérations est une première tâche de conception, qui consiste à définir précisément les visibilités, les types, les cardinalités, les paramètres, les propriétés et les contraintes.

## Utilisation du diagramme de classe

Le diagramme de classe est le plus à même de formaliser la structure objet des développements logiciels et, par nature, de centraliser l’information collectée sur le modèle pendant toutes les phases d’analyse et de conception. La modélisation autour du diagramme de classe est donc incontournable tant dans le domaine du développement spécifique que dans les travaux d’ingénierie système.
| Le diagramme de cas d'utilisation | Le diagramme de collaboration |