Archyno
UMLFondamentaux

Qu'est-ce que UML ?

Une introduction utilisable au langage de modélisation unifié : ce qu'il est, les quatorze diagrammes qu'il définit, comment ils s'articulent et lequel choisir. Sans plus de leçon d'histoire que nécessaire.

14 min de lectureUML 2.5.11 sur 35

La réponse courte

  • UML est un langage visuel au sens fixé, maintenu par l'OMG. La version courante est UML 2.5.1, publiée en 2017.
  • Quatorze types de diagrammes, sept de structure et sept de comportement - et les diagrammes sont des vues sur un seul modèle, pas des dessins indépendants.
  • Vous n'êtes pas obligé de tout utiliser. Dessiner un seul diagramme de séquence pour trancher qui appelle qui est un usage parfaitement légitime d'UML, et sans doute le plus utile.
  • Apprenez d'abord correctement le diagramme de classes et celui de séquence : à eux deux, ils couvrent l'essentiel de ce qu'on vous mettra sous les yeux.
La taxonomie des diagrammes UML 2.5.1. Diagramme se divise en diagramme de structure et diagramme de comportement. Le diagramme de structure compte sept sortes : classes, composants, structure composite, déploiement, objets, paquetages et profil. Le diagramme de comportement compte activité, états, cas d'utilisation et diagramme d'interaction ; le diagramme d'interaction compte à son tour communication, vue d'ensemble des interactions, séquence et temps. Quatorze sortes de diagrammes au total.
La taxonomie des diagrammes UML 2.5.1. Quatorze sortes concrètes de diagrammes, et les deux catégories abstraites qui les organisent. Le triangle creux est la flèche de généralisation propre à UML : un diagramme de séquence est bel et bien une sorte de diagramme d'interaction.

01Ce qu'UML est réellement#

UML est un langage visuel de description des systèmes logiciels. Il vous donne un jeu fixe de formes, de traits et de règles pour qu'un diagramme que vous dessinez signifie la même chose pour quelqu'un qui n'était pas dans la pièce où il a été tracé.

C'est toute la proposition de valeur, et il vaut mieux le dire franchement. Une boîte avec un nom dedans, ce n'est pas UML. Une boîte à trois compartiments, un triangle creux pointant vers une autre boîte et un 1..*au bout d'un trait, c'est UML, et cela dit quelque chose de précis : ce type hérite de celui-là, et une instance du premier est associée à au moins une du second. Quiconque connaît la notation lit cela à l'identique. Voilà ce que vous achetez.

Le langage est maintenu par l'Object Management Group. La version courante est UML 2.5.1, publiée en 2017. Elle descend du travail que Grady Booch, James Rumbaugh et Ivar Jacobson ont fusionné chez Rational au milieu des années quatre-vingt-dix, quand le domaine comptait une cinquantaine de notations concurrentes et aucun moyen de lire la conception d'autrui. L'OMG a adopté UML 1.1 en 1997. La version 2.5 a surtout été un nettoyage : la spécification s'était scindée en volumes « infrastructure » et « superstructure » où peu de gens se retrouvaient, et 2.5 les a repliés en un seul document.

02Structure et comportement : la coupure qui organise tout#

Chaque diagramme UML répond à l'une de deux questions. Les diagrammes de structurerépondent à « de quoi ce système est-il fait ? » : les parties, les types, les machines, et leur agencement. Ils décrivent des choses vraies indépendamment du temps.

Les diagrammes de comportementrépondent à « que fait ce système ? » : les flux, les messages, les états, et l'ordre dans lequel les choses arrivent. Ils décrivent des choses qui ne sont vraies qu'à un instant.

Un diagramme de classes vous dit qu'un Paymenta un montant et un statut. Un diagramme d'états-transitions vous dit qu'un paiement passe de Authorized à Capturedmais jamais l'inverse. Aucun ne peut exprimer ce que dit l'autre, et la plupart des vraies questions réclament un de chaque. Si vous vous surprenez à vouloir montrer une séquence sur un diagramme de classes, c'est le signal qu'il faut dessiner un second diagramme plutôt que de surcharger le premier.

Le comportement comporte un niveau d'imbrication supplémentaire. Quatre des sept diagrammes de comportement - séquence, communication, temps et global d'interaction - sont tous des diagrammes d'interaction, quatre rendus différents d'une même idée sous-jacente : des participants qui échangent des messages. Ils sont interchangeables en principe. En pratique les diagrammes de séquence dominent, parce qu'un axe temporel vertical est ce qu'il y a de plus facile à lire au monde.

03Les quatorze diagrammes, une ligne chacun#

Voici tout le langage, au niveau « en ai-je besoin aujourd'hui ? ». Suivez un lien quand la réponse est oui.

Structure - de quoi le système est fait

  • Classes

    Les types, leurs attributs et opérations, et comment ils se relient. Celui que tout le monde dessine.

  • Composants

    Les parties remplaçables et les interfaces qu'elles fournissent et requièrent.

  • Déploiement

    Quel artefact tourne sur quel noeud, et ce que sont ces noeuds.

  • Objets

    Un instantané concret d'instances, pour vérifier un modèle de classes.

  • Paquetages

    Comment le modèle est groupé, et quel groupe a le droit de dépendre de quel autre.

  • Structure composite

    L'intérieur d'un classificateur : ses parties, ses ports et son câblage interne.

  • Profils

    Comment étendre UML lui-même par des stéréotypes, quand le vocabulaire standard ne suffit plus.

Comportement - ce que le système fait

  • Cas d'utilisation

    Qui utilise le système et pour quoi faire. Le périmètre, pas la conception.

  • Activités

    Le flux, les décisions et ce qui se produit en parallèle. Un processus, précisément.

  • États-transitions

    Les états dans lesquels un objet peut se trouver, et les événements qui l'y font passer.

  • Séquence

    Les messages entre participants, dans l'ordre, dans le temps. Le diagramme de comportement le plus utilisé.

  • Communication

    La même interaction qu'un diagramme de séquence, disposée pour montrer qui parle à qui.

  • Temps

    L'état face à un axe temporel, quand l'échéance est l'enjeu.

  • Global d'interaction

    Un diagramme d'activités dont les noeuds sont des interactions. La carte au-dessus des séquences.

En pratique, une bonne majorité de l'UML réel se résume à quatre d'entre eux : classes, séquence, cas d'utilisation et activités. Les dix autres existent parce que quelqu'un en a eu besoin, et trois ou quatre sont réellement excellents quand la situation l'exige : un diagramme d'états pour un cycle de vie, un diagramme de déploiement pour une revue d'infrastructure. Le reste, vous pouvez le lire quand vous le croisez et ne jamais le dessiner.

04Quel diagramme dessiner ?#

Partez de la question, pas du diagramme. L'erreur consiste à choisir d'abord un type de diagramme puis à décider quoi mettre dessus : c'est ainsi qu'on se retrouve avec un diagramme de classes de deux cents boîtes que personne n'a jamais lu.

05Ce qu'UML n'est pas#

Ce n'est pas un processus.UML ne dit rien sur le moment où modéliser, sur la quantité à modéliser, ni sur qui valide. C'est une notation. Des méthodes comme RUP ont été bâties autour et sont fréquemment confondues avec lui ; vous pouvez employer UML dans n'importe quel processus, y compris aucun.

Ce n'est pas un langage de programmation.Les modèles UML peuvent être assez détaillés pour engendrer du code, et certains outils font exactement cela. La plupart des équipes ne le font pas, et ne devraient pas. La génération de code aller-retour complète est la raison la plus courante de l'effondrement des démarches UML : le modèle devient une seconde copie, moins bonne, du source, que personne ne met à jour.

Ce n'est pas tout ou rien.Rien n'oblige à utiliser les quatorze diagrammes, ni à modéliser chaque classe. Dessiner un seul diagramme de séquence pour trancher un débat sur qui appelle qui est un usage parfaitement légitime d'UML, et probablement le plus précieux.

Ce n'est pas la même chose qu'ArchiMate.Les deux sont des langages de modélisation et se recouvrent assez pour prêter à confusion. UML modélise le logiciel : classes, composants, messages. ArchiMate modélise l'entreprise autour : processus métier, capacités, couches applicative et technologique. Une grande organisation a typiquement besoin des deux, à des altitudes différentes.

06Jusqu'où modéliser#

La réponse honnête : bien moins que ne l'encourage l'outillage. Un modèle gagne sa place quand il est lu plus souvent qu'il n'est modifié. Trois choses produisent cela de façon fiable.

Modélisez les parties difficiles à tenir en tête. La machine à états du paiement, avec neuf états et deux transitions interdites, vaut un diagramme. Le DTO à trois champs, non.

Modélisez à une seule altitude par diagramme.L'échec le plus courant d'un vrai diagramme de classes est de mélanger concepts du domaine et plomberie du framework sur la même toile. Deux diagrammes, cohérents chacun, valent mieux qu'un seul techniquement complet.

Modélisez ce que vous garderez.Un diagramme dans un jeu de diapositives est un dessin dont la péremption est d'une réunion, et c'est très bien tant que vous savez que c'est cela. Un diagramme dans le dépôt, à côté du code qu'il décrit, est un modèle - et il lui faut un responsable.

À utiliser quand

  • La conception contient une décision sur laquelle des gens raisonnables seraient en désaccord
  • Plus d'une équipe doit s'accorder sur une interface ou un cycle de vie
  • Quelqu'un rejoindra ce code plus tard et en a besoin de la forme
  • Un régulateur, un auditeur ou une revue d'architecture le demandera par écrit

Préférer autre chose quand

  • Le code est plus court et plus clair que ne le serait le diagramme
  • Vous le dessinez pour satisfaire une liste de contrôle que personne ne lit
  • Il ferait doublon avec quelque chose déjà engendré depuis le source
  • La conception change encore tous les jours - attendez qu'elle se stabilise

07Par où commencer#

Si la notation vous est nouvelle, lisez d'abord l'article sur le diagramme de classes. Il porte la plus grande part du vocabulaire d'UML - généralisation, association, multiplicité, composition - et tous les autres diagrammes de structure réutilisent ces marques. Lisez ensuite l'article sur le diagramme de séquence, qui fait le même travail pour le comportement.

Ces deux-là couvrent l'essentiel de ce qu'on vous demandera jamais de lire. Tout le reste de cette série est écrit pour être pris le jour où vous en avez besoin, dans n'importe quel ordre, et chaque article ne suppose que ces deux-là.

En une ligne chacun

  1. 01UML est une notation au sens fixé, maintenue par l'OMG ; la version courante est 2.5.1.
  2. 02Quatorze sortes de diagrammes, réparties en sept de structure et sept de comportement - quatre de ces derniers sont des diagrammes d'interaction.
  3. 03Les diagrammes sont des vues sur un seul modèle, pas des dessins indépendants.
  4. 04Choisissez le diagramme d'après la question à laquelle vous devez répondre, pas d'après une liste.
  5. 05Les diagrammes de classes et de séquence couvrent la grande majorité des usages réels ; apprenez ces deux-là correctement en premier.

08Questions fréquentes#

Combien y a-t-il de diagrammes UML ?

UML 2.5.1 définit quatorze types de diagrammes, répartis en sept diagrammes de structure et sept diagrammes de comportement. La structure couvre les classes, objets, composants, déploiement, paquetages, structure composite et profils ; le comportement couvre les cas d'utilisation, activité, états-transitions, séquence, communication, temps et vue globale d'interaction.

UML est-il encore utilisé ?

Oui, mais de façon sélective. Peu d'équipes dessinent les quatorze types, mais les diagrammes de classes, de séquence, d'activité et de cas d'utilisation restent courants en revue de conception, dans les secteurs régulés, et partout où une architecture doit survivre à ceux qui l'ont écrite.

Quelle est la différence entre diagrammes de structure et de comportement ?

Un diagramme de structure montre de quoi le système est fait et ne change pas dans le temps : classes, composants, noeuds. Un diagramme de comportement montre ce qui se passe, dans quel ordre et sous quelles conditions. Si votre question contient un quand, il vous faut un diagramme de comportement.

Quel diagramme UML apprendre en premier ?

Le diagramme de classes. Il porte l'essentiel du vocabulaire d'UML, et six des autres diagrammes de structure en reprennent directement la notation : bien l'apprendre rend le reste presque gratuit. Le diagramme de séquence est le deuxième naturel.

Faut-il apprendre les quatorze diagrammes UML ?

Non. Quatre portent l'essentiel en pratique : classes, séquence, cas d'utilisation et activité. Pour les autres, savoir les lire quand on en croise un suffit, et c'est un investissement bien moindre que savoir en dessiner un de zéro.

Dans cette série

À lire aussi

Tous les articles