Qu’est-ce qu’un diagramme de classes ?
Le diagramme de classes UML est une notation graphique utilisée pour construire et visualiser des systèmes orientés objet. Un diagramme de classes dans le langage de modélisation unifié ( UML ) est un type de diagramme de structure statique qui décrit la structure d’un système en montrant :
- Des classes,
- leurs attributs (ou Propriétés),
- opérations (ou méthodes),
- et les relations entre les objets.
Qu’est-ce qu’une classe ?
Une classe est un plan pour un objet. Les objets et les classes vont de pair. On ne peut pas parler de l’un sans parler de l’autre. Et tout l’intérêt de la conception orientée objet ne concerne pas les objets, mais les classes, car nous utilisons des classes pour créer des objets. Ainsi, une classe décrit ce que sera un objet, mais ce n’est pas l’objet lui-même.
En fait, les classes décrivent le type des objets, tandis que les objets sont des instances utilisables des classes. Chaque objet a été construit à partir du même ensemble de plans et contient donc les mêmes composants (propriétés et méthodes). La signification standard est qu’un objet est une instance d’une classe et d’un objet — Les objets ont des états et des comportements.
Exemple
Un chien a des états – couleur, nom, race ainsi que des comportements – remuer, aboyer, manger. Un objet est une instance d’une classe.

Notation de classe UML
Une classe représente un concept qui encapsule l’état ( attributs ) et le comportement ( opérations ). Chaque attribut a un type. Chaque opération a une signature . Le nom de la classe est la seule information obligatoire .

Nom du cours:
- Le nom de la classe apparaît dans la première partition.
Attributs de classe :
- Les attributs sont affichés dans la deuxième partition.
- Le type d’attribut est affiché après les deux-points.
- Les attributs sont mappés sur des variables membres (membres de données) dans le code.
Opérations de classe (méthodes) :
- Les opérations sont présentées dans la troisième partition. Ce sont des services que la classe fournit.
- Le type de retour d’une méthode est affiché après les deux-points à la fin de la signature de la méthode.
- Le type de retour des paramètres de méthode est affiché après les deux-points suivant le nom du paramètre. Mappage des opérations sur les méthodes de classe dans le code

Visibilité de classe
Les symboles +, — et # devant un attribut et un nom d’opération dans une classe indiquent la visibilité de l’attribut et de l’opération.

- + désigne des attributs publics ou des opérations
- – désigne des attributs ou des opérations privées
- # indique des attributs ou des opérations protégés
Directionnalité des paramètres
Chaque paramètre d’une opération (méthode) peut être noté in, out ou inout qui spécifie sa direction par rapport à l’appelant. Cette directionnalité est indiquée avant le nom du paramètre.

Perspectives du diagramme de classes
Le choix de la perspective dépend de l’état d’avancement du processus de développement. Lors de la formulation d’un modèle de domaine , par exemple, vous dépasserez rarement la perspective conceptuelle . Les modèles d’analyse présentent généralement un mélange de perspectives conceptuelles et de spécifications . Le développement du modèle de conception commencera généralement par mettre fortement l’accent sur la perspective de la spécification et évoluera vers la perspective de la mise en œuvre .
Un diagramme peut être interprété de plusieurs points de vue :
- Conceptuel : représente les concepts du domaine
- Spécification : l’accent est mis sur les interfaces des types de données abstraits (ADT) dans le logiciel
- Implémentation : décrit comment les classes vont implémenter leurs interfaces
La perspective affecte la quantité de détails à fournir et les types de relations qui méritent d’être présentées. Comme nous l’avons mentionné ci-dessus, le nom de la classe est la seule information obligatoire.

Un diagramme de classes est une technique de modélisation centrale qui s’applique à presque toutes les méthodes orientées objet. Ce diagramme décrit les types d’objets dans le système et les différents types de relations statiques qui existent entre eux.
Des relations
Il existe trois principaux types de relations qui sont importantes :
- Association — représente les relations entre les instances de types (une personne travaille pour une entreprise, une entreprise a plusieurs bureaux.
- Héritage - l’ajout le plus évident aux diagrammes ER à utiliser dans OO. Il a une correspondance immédiate avec l’héritage dans la conception OO.
- Agrégation — Agrégation, une forme de composition d’objets dans la conception orientée objet.

Exemple de diagramme de classes : interface graphique
Un diagramme de classes peut également avoir des notes attachées aux classes ou aux relations.

Outil logiciel UML gratuit
Dans cet article, je présente deux outils UML :
- Visual Paradigm Community Editon (GRATUIT) est un outil UML de bureau avec des capacités de modélisation de fonctionnalités. (mise à jour possible vers les éditions commerciales)
- Visual Paradigm Online pour uml général et autres schémas de dessin.
30 exemples de diagrammes de classes
- Exemples et modèles de diagramme de classes gratuits modifiables dans un logiciel de diagramme de classes en ligne : Visual Paradigm Online.
- Utilisez les modèles comme point de départ pour créer votre propre diagramme de classes.
- ( Cliquez pour modifier instantanément les exemples de diagramme de classes )
Pour votre commodité, les exemples suivants sont configurés dans Visual Paradigm Online. Vous pouvez l’essayer tout de suite sans configuration ni installation, amusez-vous !

Un réseau local basé sur Token Ring



Sortie de fichier (utilisation de la généralisation)

Téléphone (utilisation de l’association)

Modèles de conception GoF – Proxy

Modèles de conception GoF – poids mouche

Modèles de conception GoF – Façade

GoF Design Patterns — Décorateur

Modèles de conception GoF – Composite

Modèles de conception GoF — Pont

Modèles de conception GoF – Adaptateur

Modèles de conception GoF – Singleton

Modèles de conception GoF – Prototype

Modèles de conception GoF – Méthode d’usine

Modèles de conception GoF — Générateur

Modèles de conception GoF — Usine abstraite

Modèles de conception GoF — Visiteur

Modèles de conception GoF – Méthode de modèle

Modèles de conception GoF – Stratégie

Modèles de conception GoF – État

Modèles de conception GoF — Observateur

Modèles de conception GoF — Memento

Modèles de conception GoF – Médiateur

Modèles de conception GoF – Itérateur

Modèles de conception GoF — Interprète

Modèles de conception GoF – Commande

Modèles de conception du GoF — Chaîne de responsabilité

Diagramme de classes — Processus de commande

Diagramme de classes — Classes et packages Contraintes

Diagramme de classe – Classe dans un package (compagnie aérienne)



Classe d’association et auto-association



Autres lectures recommandées
- Tutoriel de diagramme de classes UML — Visual Paradigm
- Comment dessiner un diagramme de classes ? — Paradigme visuel
Cette publication est également disponible en Deutsch, English, Español, فارسی, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 : liste des langues séparées par une virgule, 繁體中文 : dernière langue.