Skip to content

Guide UML Diagrammes de classe

Thotify

Introduction

Les diagrammes UML (Unified Modeling Language) sont des représentations graphiques des objets issus de la programmation orientée objet. Ils permettent de visualiser les liens entre les classes, leurs définitions ainsi que leur structure, incluant leurs attributs et leurs méthodes. Grâce à la lecture des diagrammes UML, la compréhension de l’architecture du code devient plus accessible. À l’instar de Merise, UML utilise un système de relations et de cardinalités qui met en évidence les points les plus critiques de l’architecture.

De bons diagrammes UML permettent non seulement de faire évoluer le code de manière précise lors des interventions, mais aussi d’illustrer les interactions du code à des clients ou des personnes non techniques.

illustration non uml

Ainsi avec de simples informations renseignées on peut atteindre un certains niveau d’illustration. Bien qu’UML de ressemble pas à l’image illustré ci dessus, il permettra d’illustrer aussi clairement le liens entre plusieurs classes et la maniere dont elles sont caractérisées

Les attributs de classe

  • Public (+)
  • Private (-)
  • Protected (#)
  • Package (~)
  • Derived (/)
  • Static (underlined)
exemple de diagramme

Les attributs sont typables tous commes les méthodes que l’on peut observer dans la partie basse de chaque classes tel que start() concernant les méthodes, il peut arriver que certaines soit écrite en PascalCase, mais cela est propre au langage illustré et non pas à l’UML

Tous les types de relations entre classes

img relations classes

Relations UML – Fiche récapitulative

RelationDéfinitionLien de connaissanceRemplaçableContexte d’utilisation
AssociationUne classe est liée à une autre, elles peuvent se connaître mutuellement ou non.Unidirectionnel ou bidirectionnelOuiQuand deux classes ont une relation logique (ex : un Client possède une Commande)
HéritageUne classe enfant hérite des attributs/méthodes d’une classe parent. (Le parent n’est pas conscient de ses enfants)Enfant → ParentNonPour représenter une hiérarchie (ex : Chien hérite de Animal)
RéalisationUne classe implémente les méthodes d’une interface.Classe → InterfaceOuiLorsqu’on veut coder sur des interfaces pour séparer contrat et implémentation (ex : ServiceEmail réalise INotification)
DépendanceUne classe utilise temporairement une autre (via paramètre, retour de méthode, variable locale, etc.).Faible, unidirectionnelOuiQuand une classe utilise brièvement une autre sans la stocker (ex : un Contrôleur appelle un Service)
AgrégationUne classe contient une autre classe sans en être responsable de son cycle de vie.OuiOuiQuand une classe regroupe des objets existants sans en avoir la propriété (ex : une Classe agrège des Élèves)
CompositionUne classe contient une autre classe et en est responsable de son cycle de vie.OuiNonQuand une classe ne peut pas exister sans l’autre (ex : une Maison contient des Pièces)

Toutes les cardinalités

img cardinalités classes

Exemple concret & vue d’ensemble

UML Complet

sources:

tutoriel - visual paradigm

tutoriel - geeksforgeeks

explication approfondies des relations

Aller plus loin & entrainnement (patterns)