Une image vaut mille mots. C'est pourquoi le langage UML (Unified Modeling Language) a été créé : pour fournir un langage visuel commun dans le monde complexe du développement logiciel, qui soit également compréhensible pour les utilisateurs professionnels et tous ceux qui souhaitent appréhender un système. Ce guide couvre tout ce que vous devez savoir sur l'UML. Même si vous avez découvert l'UML lors d'une formation initiale et que vous ne l'avez pas beaucoup utilisé depuis, il reste un moyen pratique de maintenir la clarté des systèmes complexes, en particulier lorsqu'il est utilisé comme une documentation vivante plutôt que comme un livrable ponctuel.
Qu'est-ce que le langage UML ?
Le langage UML (Unified Modeling Language) a été créé pour forger un langage de modélisation visuelle commun, riche sur les plans sémantique et syntaxique, destiné à l'architecture, la conception et la mise en œuvre de systèmes logiciels complexes, tant au niveau structurel que comportemental.
Il est analogue aux plans utilisés dans d'autres domaines et se compose de différents types de diagrammes. Globalement, les diagrammes UML décrivent les limites, la structure et le comportement du système ainsi que des objets qui le composent. Lorsque vous écrivez du code, une application compte des milliers de lignes et il est difficile de suivre les relations et les hiérarchies au sein d'un système logiciel. Les diagrammes UML divisent ce système logiciel en composants et sous-composants.
Il existe quatre catégories de modèles de résolution de problèmes : les langages impératifs, fonctionnels, déclaratifs et orientés objet. Dans les langages orientés objet, les algorithmes sont exprimés en définissant des « objets » et en faisant interagir ces objets entre eux. Ces objets sont des éléments à manipuler et existent dans le monde réel. Il peut s'agir de bâtiments, de widgets sur un bureau ou d'êtres humains.
Les langages orientés objet dominent le monde de la programmation car ils modélisent des objets du monde réel. Le langage UML est une combinaison de plusieurs notations orientées objet : la conception orientée objet, la technique de modélisation d'objets et l'ingénierie logicielle orientée objet.
Le langage UML s'appuie sur les forces de ces trois approches pour présenter une méthodologie plus cohérente et plus facile à utiliser. L'UML représente les meilleures pratiques pour la création et la documentation de différents aspects de la modélisation de logiciels et de systèmes d'entreprise. L'UML étant standardisé, il peut être appliqué à l'ensemble des langages de programmation et des processus de développement, ce qui le rend largement lisible par la plupart des développeurs de logiciels.
En pratique, l'UML est également une forme de documentation visuelle qui permet de réduire le temps passé à réexpliquer un système. Cette documentation peut aider les ingénieurs de plusieurs manières, qu'il s'agisse de l'intégration de nouveaux employés ou de la présentation d'un aperçu rapide du système aux parties prenantes, afin que les développeurs ne perdent pas de temps en réunion.
Histoire et origines du langage UML
Grady Booch, James Rumbaugh et Ivar Jacobson, également connus sous le nom de « Trois Amigos » du génie logiciel, se sont associés pour apporter de la clarté aux programmeurs en créant de nouvelles normes.
Les efforts de ce groupe ont abouti à la publication des documents UML 0.9 et 0.91 en 1996. Il est rapidement apparu que plusieurs organisations, dont Microsoft, Oracle et IBM, considéraient l'UML comme un élément crucial pour leur propre développement commercial. En collaboration avec de nombreuses autres personnes et entreprises, elles ont mis en place des ressources permettant de développer un langage de modélisation complet. Les Trois Amigos ont publié The Unified Modeling Language User Guide en 1999 et une mise à jour en 2005, qui inclut UML 2.0.
Le rôle de l'Object Management Group (OMG) dans l'UML
Selon leur site Web, l'Object Management Group® (OMG®) est un consortium international de normes technologiques à but non lucratif et à adhésion ouverte, fondé en 1989. Les normes de l'OMG sont guidées par des fournisseurs, des utilisateurs finaux, des institutions académiques et des agences gouvernementales. Les groupes de travail de l'OMG développent des normes d'intégration d'entreprise pour un large éventail de technologies et un éventail encore plus large d'industries. Les normes de modélisation de l'OMG, notamment l'UML et la Model Driven Architecture® (MDA®), permettent une conception visuelle, une exécution et une maintenance performantes des logiciels et d'autres processus.
L'OMG supervise la définition et la maintenance des spécifications UML. Cette supervision donne aux ingénieurs et aux programmeurs la possibilité d'utiliser un seul langage à des fins multiples durant toutes les phases du cycle de vie des logiciels, pour toutes les tailles de système.
L'OMG définit l'objectif de l'UML comme suit :
-
Fournir aux architectes système, aux ingénieurs logiciels et aux développeurs de logiciels des outils d'analyse, de conception et de mise en œuvre de systèmes informatiques, ainsi que de modélisation de processus métiers et similaires.
-
Faire progresser l'état de l'industrie en permettant l'interopérabilité des outils de modélisation visuelle d'objets. Cependant, pour permettre un échange significatif d'informations de modèle entre les outils, un accord sur la sémantique et la notation est nécessaire.
L'UML répond aux exigences suivantes :
-
Établir une définition formelle d'un méta-modèle commun basé sur la Meta-Object Facility (MOF) qui spécifie la syntaxe abstraite de l'UML. La syntaxe abstraite définit l'ensemble des concepts de modélisation UML, leurs attributs et leurs relations, ainsi que les règles de combinaison de ces concepts pour construire des modèles UML partiels ou complets.
-
Fournir une explication détaillée de la sémantique de chaque concept de modélisation UML. La sémantique définit, de manière indépendante de la technologie, comment les concepts UML doivent être traduits par les ordinateurs.
-
Spécifier les éléments de notation lisibles par l'homme pour représenter les concepts de modélisation UML individuels, ainsi que les règles pour les combiner en une variété de types de diagrammes différents correspondant aux différents aspects des systèmes modélisés.
-
Définir les manières dont les outils UML peuvent être rendus conformes à cette spécification. Ceci est soutenu (dans une spécification distincte) par une spécification basée sur XML des formats d'échange de modèles correspondants (XMI) qui doivent être implémentés par les outils conformes.
Types de diagrammes UML
L'UML utilise des éléments et les associe de différentes manières pour former des diagrammes statiques (qui représentent les aspects structurels d'un système) et des diagrammes comportementaux (qui représentent les aspects dynamiques d'un système). Pour les non-initiés, il peut sembler qu'il existe un nombre infini de diagrammes UML, mais en réalité, les normes UML identifient 14 types de diagrammes divisés en deux groupes, définis ci-dessous.
Diagrammes UML structurels
-
Diagramme de classes : C'est le diagramme UML le plus couramment utilisé et le fondement principal de toute solution orientée objet. Il montre les classes au sein d'un système, les attributs et les opérations, ainsi que la relation entre chaque classe. Les classes sont regroupées pour créer des diagrammes de classes lors de la modélisation de grands systèmes. Une classe est représentée par un rectangle qui contient trois compartiments superposés verticalement : le compartiment supérieur contient le nom de la classe et est obligatoire, tandis que les deux compartiments inférieurs donnent des détails sur les attributs de la classe et ses opérations ou comportements.
-
Diagramme de composants : Un diagramme de composants est éminemment une version plus spécialisée du diagramme de classes ; les mêmes règles de notation s'appliquent aux deux. Un diagramme de composants décompose un système complexe en composants plus petits et visualise la relation entre ces composants.
-
Diagramme de structure composite : Ces types de diagrammes sont essentiellement les plans de la structure interne d'un classificateur. Ils peuvent également être utilisés pour montrer le comportement d'une collaboration ou les interactions du classificateur avec son environnement à travers des ports. Ils peuvent facilement représenter les composants internes de n'importe quel matériel pour en comprendre plus sereinement le fonctionnement interne.
-
Diagramme de déploiement : Ces diagrammes sont particulièrement utiles aux ingénieurs système et montrent généralement les performances, l'évolutivité, la maintenabilité et la portabilité. Lorsque les composants matériels sont affichés les uns par rapport aux autres, il est plus facile de suivre l'ensemble de votre réseau matériel et de s'assurer que tous les éléments sont pris en compte lors d'un déploiement.
-
Diagramme d'objets : Les diagrammes d'objets montrent des exemples de structures de données à un moment précis. Vous pouvez utiliser un diagramme de classes pour montrer une structure, puis utiliser des diagrammes d'objets comme cas de test pour vérifier l'exhaustivité de votre diagramme de classes. Vous pouvez également créer un diagramme d'objets pour découvrir des informations sur les éléments de modèle et leurs liens.
-
Diagramme de paquetages : Les diagrammes de paquetages sont utilisés pour montrer les dépendances entre les différents paquetages d'un système. Un paquetage, représenté sous la forme d'un dossier, organise les éléments de modèle, tels que les cas d'utilisation ou les classes, en groupes. Il existe deux types particuliers de dépendances définies entre les paquetages : l'importation de paquetage et la fusion de paquetage.
-
Diagrammes de profil : Les diagrammes de profil font également partie de la norme UML et sont principalement utilisés lorsque vous devez adapter l'UML à un domaine particulier. Récemment ajoutés à UML 2.0, les diagrammes de profil sont uniques et rarement utilisés dans les spécifications. Un diagramme de profil est à appréhender comme un mécanisme d'extensibilité permettant de personnaliser les modèles UML pour des domaines et des plateformes spécifiques.
Diagrammes UML comportementaux
-
Diagrammes d'activités : Les diagrammes d'activités sont utilisés comme alternative aux diagrammes d'états-transitions. Les diagrammes d'activités visualisent les étapes exécutées dans un cas d'utilisation ; les activités peuvent être séquentielles, ramifiées ou simultanées. Ce type de diagramme UML est utilisé pour montrer le comportement dynamique d'un système, mais il peut également être utile pour la modélisation des processus métiers.
-
Diagramme de communication : Les diagrammes de communication, que l'on appelait auparavant diagrammes de collaboration, montrent comment les objets sont liés les uns aux autres. Ils modélisent la manière dont les objets s'associent et se connectent via des messages au sein de la conception architecturale d'un système. Ils peuvent également présenter des scénarios alternatifs au sein de cas d'utilisation ou d'opérations qui nécessitent la collaboration de différents objets et interactions.
-
Diagramme global d'interaction : Ce diagramme donne un aperçu du flux de contrôle entre les nœuds en interaction. Ils incluent des nœuds initiaux, des nœuds de fin de flux, des nœuds de fin d'activité, des nœuds de décision, des nœuds de fusion, des nœuds de bifurcation (fork) et des nœuds de jonction.
-
Diagramme de séquence : Un diagramme de séquence, parfois appelé diagramme d'événements ou scénario d'événements, montre l'ordre dans lequel les objets interagissent. De cette façon, vous pouvez représenter visuellement des scénarios d'exécution simples.
-
Diagramme d'états : Les diagrammes d'états, pour faire simple, représentent des états et des transitions. Un état fait référence aux différentes combinaisons d'informations qu'un objet peut détenir, et ce diagramme UML peut visualiser tous les états possibles et la façon dont l'objet passe d'un état à un autre.
-
Diagramme de temps : Souvent décrit comme un diagramme de séquence inversé, un diagramme de temps montre comment les objets interagissent les uns avec les autres sur une période donnée. Utilisez ces diagrammes pour voir combien de temps prend chaque étape d'un processus et identifier les axes d'amélioration.
-
Diagramme de cas d'utilisation : Les diagrammes de cas d'utilisation modélisent la façon dont les utilisateurs, représentés sous forme de figurines appelées « acteurs », interagissent avec le système. Ce type de diagramme UML doit être une vue d'ensemble de haut niveau des relations entre les acteurs et les systèmes, ce qui en fait un excellent outil pour expliquer votre système à un public non technique.
Glossaire des termes UML
Familiarisez-vous avec le vocabulaire UML grâce à cette liste issue du document UML 2.4.1, destinée à aider les personnes non membres de l'OMG à comprendre les termes couramment utilisés.
-
Conformité à la syntaxe abstraite : Les utilisateurs peuvent transférer des modèles d'un outil à un autre, même s'ils utilisent des notations différentes.
-
Common Warehouse Metamodel (CWM) : Interfaces standards utilisées pour permettre l'échange de métadonnées d'entrepôt de données et d'informatique décisionnelle (business intelligence) entre les outils d'entrepôt, les plateformes d'entrepôt et les référentiels de métadonnées d'entrepôt dans des environnements distribués hétérogènes.
-
Conformité à la syntaxe concrète : Les utilisateurs peuvent continuer à utiliser une notation qui leur est familière sur différents outils.
-
Noyau (Core) : Dans le contexte de l'UML, le noyau fait généralement référence au « package principal », qui est un méta-modèle complet particulièrement conçu pour une grande réutilisabilité.
-
Unité de langage : Se compose d'une collection de concepts de modélisation étroitement liés qui permettent aux utilisateurs de représenter des aspects du système étudié selon un paradigme ou un formalisme particulier.
-
Niveau 0 (L0) : Niveau de conformité inférieur pour l'infrastructure UML, une unité de langage unique qui permet de modéliser les types de structures basées sur des classes rencontrées dans les langages de programmation orientés objet les plus populaires.
-
Meta Object Facility (MOF) : Spécification de modélisation de l'OMG qui sert de base aux définitions de méta-modèles dans la famille de langages MDA de l'OMG.
-
Méta-modèle : Définit le langage et les processus à partir desquels un modèle est formé.
-
Constructions de méta-modèles (LM) : Deuxième niveau de conformité dans l'infrastructure UML, une unité de langage supplémentaire pour des structures basées sur des classes plus avancées utilisées pour construire des méta-modèles (à l'aide de CMOF) tels que l'UML lui-même. L'UML ne comporte que deux niveaux de conformité.
-
Model Driven Architecture (MDA) : Approche et plan visant à obtenir un ensemble cohérent de spécifications technologiques axées sur les modèles.
-
Object Constraint Language (OCL) : Langage déclaratif permettant de décrire des règles qui s'appliquent au langage UML (Unified Modeling Language). L'OCL complète l'UML en fournissant des termes et des symboles d'organigramme plus précis que le langage naturel, mais moins difficiles à maîtriser que les mathématiques.
-
Object Management Group (OMG) : Consortium à but non lucratif de spécifications de l'industrie informatique dont les membres définissent et maintiennent la spécification UML.
-
UML 1 : Première version de l'Unified Modeling Language.
-
Unified Modeling Language (UML) : Langage visuel permettant de spécifier, de construire et de documenter les artefacts de systèmes.
-
XMI : Spécification basée sur XML des formats d'échange de modèles correspondants.
Concepts de modélisation spécifiés par l'UML
Le développement de systèmes se concentre sur trois modèles de système globalement différents :
- Fonctionnel : Il s'agit des diagrammes de cas d'utilisation, qui décrivent les fonctionnalités du système du point de vue de l'utilisateur.
- Objet : Il s'agit des diagrammes de classes, qui décrivent la structure du système en termes d'objets, d'attributs, d'associations et d'opérations.
- Dynamique : Les diagrammes d'interaction, les diagrammes d'états-transitions et les diagrammes d'activités sont utilisés pour décrire le comportement interne du système.
Ces modèles de système sont visualisés à travers deux types de diagrammes différents : structurels et comportementaux.
Concepts orientés objet dans l'UML
Les objets en UML sont des entités du monde réel qui existent autour de nous. Dans le développement de logiciels, les objets peuvent être utilisés pour décrire, ou modéliser, le système en cours de création dans des termes pertinents pour le domaine. Les objets permettent également de décomposer des systèmes complexes en composants compréhensibles, ce qui permet de construire un élément à la fois.
Voici quelques concepts fondamentaux d'un monde orienté objet :
- Objets : Représentent une entité et la brique de base
- Classe : Plan d'un objet.
- Abstraction : Comportement d'une entité du monde réel
- Encapsulation : Mécanisme consistant à lier les données entre elles et à les masquer du monde extérieur
- Héritage : Mécanisme consistant à créer de nouvelles classes à partir d'une classe existante
- Polymorphisme : Définit le mécanisme permettant d'exister sous différentes formes
Au sein des équipes modernes, en particulier celles qui pratiquent la méthode Agile, ces concepts orientés objet sont souvent plus faciles à communiquer lorsque les diagrammes sont traités comme une « documentation de base » et mis à jour en même temps que le code, plutôt que créés une seule fois et laissés à l'abandon.
Pourquoi les équipes utilisent encore les diagrammes UML (surtout en mode Agile)
Si vous avez suivi une formation formelle en programmation, vous avez probablement découvert les diagrammes UML à l'école. Mais dans quelle mesure les avez-vous utilisés par la suite ? Étant donné que les diagrammes UML demandent un certain temps de création et deviennent assez rapidement obsolètes dans un environnement Agile, de nombreux développeurs de logiciels les ont oubliés.
Cette préoccupation est légitime : des diagrammes qui n'évoluent pas avec un projet prennent rapidement de la valeur s'ils sont tenus à jour. L'UML peut alors accélérer le développement et clarifier la communication. Bien que de nombreux ingénieurs redoutent les diagrammes, ils s'avèrent utiles dans un environnement de développement Agile. Ils permettent de maintenir la productivité et la concentration du développement. Au lieu de les considérer comme de simples éléments facultatifs, traitez vos diagrammes UML comme des aspects fondamentaux de votre documentation.
Les diagrammes UML peuvent aider les équipes d'ingénierie à :
-
Intégrer rapidement les nouveaux membres de l'équipe ou les développeurs qui changent d'équipe.
-
Naviguer dans le code source.
-
Planifier de nouvelles fonctionnalités avant tout travail de programmation.
-
Communiquer plus facilement avec des publics techniques et non techniques.
Cependant, les diagrammes qui n'évoluent pas avec un projet sont inutiles ; il est donc indispensable de disposer de diagrammes en constante évolution. L'un des moyens utilisés par les équipes pour réduire la charge de maintenance consiste à générer des diagrammes à partir d'entrées plus légères (par exemple, des définitions textuelles) afin que la documentation reste flexible à mesure que le système change. Lucidchart peut générer des diagrammes de séquence UML à partir de balises de texte, ce qui rend la création de diagrammes automatique et adaptative.
Comment créer un diagramme UML
Les diagrammes UML suivent un ensemble spécifique de règles et de formes, et vous pourriez passer un temps considérable à apprendre à concevoir correctement chaque type. Heureusement, nous vous avons facilité la tâche grâce à des tutoriels simples, à commencer par les diagrammes de classes, qui vous guident pas à pas tout au long du processus.
Quel que soit l'outil utilisé, le flux de travail pratique reste le même : choisissez le type de diagramme qui correspond à votre problématique (structure ou comportement), modélisez uniquement ce dont vous avez besoin pour le public visé et revisitez le diagramme à mesure que le code et les exigences évoluent. Que vous planifiiez l'architecture statique d'un nouveau système logiciel ou que vous visualisiez des interactions utilisateur dynamiques, suivez ces étapes pour concevoir un modèle efficace :
1. Définissez votre objectif
Déterminez exactement ce que vous devez visualiser. Demandez-vous si vous devez cartographier la structure statique d'un système (structurel) ou montrer comment les composants interagissent et évoluent au fil du temps (comportemental).
2. Choisissez le bon type de diagramme
En fonction des exigences de votre système, sélectionnez le diagramme UML approprié. Par exemple, utilisez un diagramme de classes pour la structure d'un système orienté objet, un diagramme de séquence pour les interactions ordonnées dans le temps, ou un diagramme de cas d'utilisation pour illustrer les fonctionnalités utilisateur. (Conseil : commencer par l'un des modèles UML prédéfinis de Lucidchart est le moyen le plus rapide de débuter).
3. Activez les bibliothèques de formes UML
L'UML utilisant un vocabulaire visuel strict, vous devez disposer des symboles appropriés. Dans Lucidchart, cliquez sur « Plus de formes » au bas du menu de gauche, recherchez « UML », puis cochez les cases des bibliothèques de formes spécifiques dont vous avez besoin (par exemple, classe UML, état UML, séquence UML).
4. Ajoutez et définissez vos formes
Glissez-déposez des entités, des objets, des nœuds ou des acteurs sur votre zone de travail. Organisez-les de manière logique et double-cliquez à l'intérieur des formes pour ajouter du texte personnalisé, des attributs spécifiques et des opérations à vos objets.
5. Connectez vos composants
Établissez des relations entre vos entités en traçant des lignes entre elles. Personnalisez les extrémités des lignes (pointes de flèches, losanges, etc.) pour refléter fidèlement les relations UML spécifiques, telles que l'héritage, la composition, les dépendances ou les associations de base.
6. Révisez et collaborez
L'UML est conçu pour servir de langage partagé entre les développeurs, les ingénieurs et les parties prenantes de l'entreprise. Une fois votre diagramme ébauché, utilisez les fonctionnalités de collaboration en temps réel de Lucidchart pour inviter votre équipe à examiner l'architecture, laisser des commentaires et finaliser le plan.
Devenez un ambassadeur de l'UML
Parfois, il ne suffit pas que vous soyez convaincu par l'utilisation des diagrammes UML. Après tout, en tant que développeur de logiciels, vous travaillez généralement en équipe, et il est important d'embarquer tout le monde dans l'aventure.
Si votre équipe hésite à intégrer les diagrammes UML dans le processus de développement, proposez de les utiliser pour un seul projet au début. Une fois que votre équipe aura constaté à quel point les diagrammes UML enrichissent la documentation, elle sera plus disposée à en faire une étape indispensable.
De plus, avec Lucidchart, les diagrammes UML ne sont pas une corvée : ils constituent un véritable atout.

Tout ce dont vous avez besoin pour créer un diagramme
Créez gratuitement un diagramme soigné et professionnel avec Lucidchart. Peu importe ce que vous avez en tête, nous disposons des outils nécessaires pour le concevoir. Créez un compte et commencez à créer des diagrammes dès aujourd'hui.
S'inscrire gratuitement


