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).
À quoi sert UML
Section intitulée « À quoi sert UML »| 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.
Les familles de diagrammes
Section intitulée « Les familles de diagrammes »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 |
Les cinq diagrammes les plus utiles
Section intitulée « Les cinq diagrammes les plus utiles »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 |
UML et bases de données
Section intitulée « UML et bases de données »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.
Du besoin au code : un parcours
Section intitulée « Du besoin au code : un parcours »- Cas d’utilisation : ce que l’application doit permettre.
- Diagramme de classes : le vocabulaire et les données du domaine.
- Diagrammes de séquence pour les scénarios importants (passer une commande, payer).
- Diagramme d’états pour les objets à statut (commande).
- Base de données : tables dérivées des classes (MPD).
- Code : classes en TypeScript ou autre langage (POO : classes et objets).
Niveaux de détail
Section intitulée « Niveaux de détail »| 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.
Bonnes pratiques
Section intitulée « Bonnes pratiques »- 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.
Dépannage
Section intitulée « Dépannage »| 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).
Pour aller plus loin
Section intitulée « Pour aller plus loin »- UML (OMG), UML (Wikipédia)
- Suite : Diagramme de classes