Aller au contenu

UML : introduction

UML (Unified Modeling Language) est un langage graphique standardisé pour décrire un logiciel : sa structure, son comportement, ses interactions. Il ne dépend d’aucun langage de programmation. Dans cette rubrique, il sert surtout à modéliser les données et la conception d’une application, en parallèle de Merise. Les exemples suivent le fil rouge d’une petite boutique (clients, commandes, articles).

Usage Diagramme
Décrire les objets du domaine et leurs liens (et donc la base de données) Diagramme de classes
Recenser ce que les utilisateurs peuvent faire Diagramme de cas d’utilisation
Décrire l’ordre des échanges entre objets ou services Diagramme de séquence
Décrire un processus (étapes, décisions) Diagramme d’activité
Décrire le cycle de vie d’un objet (statuts) Diagramme d’états
Décrire l’architecture et le déploiement Diagrammes de composants et de déploiement

UML sert à communiquer : on dessine le minimum nécessaire pour qu’une équipe se comprenne. Un schéma qu’on ne relit pas ne sert à rien.

UML 2 définit 14 diagrammes, en deux familles :

Famille Diagrammes Exemple
Structure (ce que le système est) Classes, objets, composants, déploiement, paquets, structure composite, profils Classes d’une boutique
Comportement (ce que le système fait) Cas d’utilisation, activité, états, séquence, communication, global d’interaction, temps Passer une commande

En pratique, cinq diagrammes couvrent l’essentiel :

Diagramme Question Page
Cas d’utilisation Qui fait quoi avec le système ? Cas d’utilisation
Classes Quelles données et quels objets ? Quels liens ? Diagramme de classes
Séquence Dans quel ordre les objets s’appellent-ils ? Séquence
Activité Quelles sont les étapes d’un processus ? Activité et états
États Quels statuts un objet traverse-t-il ? Activité et états

Pour une base relationnelle, le diagramme de classes joue le rôle du MCD de Merise :

Merise UML (diagramme de classes)
Entité Classe
Propriété Attribut
Association Association
Cardinalités (min,max) du côté de l’entité Multiplicités min..max placées à côté de la classe opposée
Association porteuse de propriétés Classe d’association
Généralisation Héritage

La traduction du diagramme de classes en tables est décrite dans Des classes à la base de données.

  1. Cas d’utilisation : ce que l’application doit permettre.
  2. Diagramme de classes : le vocabulaire et les données du domaine.
  3. Diagrammes de séquence pour les scénarios importants (passer une commande, payer).
  4. Diagramme d’états pour les objets à statut (commande).
  5. Base de données : tables dérivées des classes (MPD).
  6. Code : classes en TypeScript ou autre langage (POO : classes et objets).
Niveau Contenu Usage
Esquisse Quelques boîtes et flèches, au tableau Réfléchir, discuter
Conception Classes, attributs principaux, relations, multiplicités Document d’équipe
Détaillé Types, visibilités, méthodes, contraintes Génération de code, spécification

Choisir le niveau le plus léger qui suffit. Un diagramme exhaustif est coûteux à maintenir et se périme.

  • Un diagramme = un message : titre clair, un sujet, pas plus de 7 à 10 éléments principaux.
  • Nommer précisément (noms métier, au singulier pour les classes).
  • Écrire les diagrammes en texte (PlantUML, Mermaid) pour les versionner avec le code (Outils et PlantUML).
  • Mettre à jour le diagramme dans le même commit que le code concerné.
  • Ne pas modéliser ce qui est évident ni ce qui change tous les jours.
  • Partir du domaine (vocabulaire des utilisateurs), pas des écrans ni du code.
Symptôme Piste
Diagrammes illisibles Trop d’éléments : découper par thème
Le diagramme ne correspond plus au code Le générer à partir du texte, le versionner, le mettre à jour avec le code
Désaccords sur un schéma Revenir au vocabulaire des utilisateurs, écrire des règles en phrases
Hésitation entre Merise et UML Les deux donnent les mêmes tables : choisir celui de l’équipe ; UML s’impose si le projet est orienté objet
Trop de diagrammes à maintenir N’en garder que quelques-uns, utiles et vivants

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »

Aucune propre à Ubuntu. Pour dessiner des diagrammes depuis un terminal Ubuntu, PlantUML s’installe avec apt (voir Outils et PlantUML).