UML (informatique)
Le Langage de Modélisation Unifié, de l'anglais Unified Modeling Language (UML), est un langage de modélisation graphique à base de pictogrammes conçu comme une méthode normalisée de visualisation dans les domaines du développement logiciel et en conception orientée objet.
L'UML est une synthèse de langages de modélisation objet antérieurs : Booch, OMT, OOSE. Principalement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML est à présent un standard adopté par l'Object Management Group (OMG). UML 1.0 a été normalisé en ; UML 2.0 a été adopté par l'OMG en . La dernière version de la spécification validée par l'OMG est UML 2.5.1 (2017).
Utilisation
UML est destiné à faciliter la conception des documents nécessaires au développement d'un logiciel orienté objet, comme standard de modélisation de l'architecture logicielle. Les différents éléments représentables sont :
- activité d'un objet/logiciel ;
- acteurs ;
- processus ;
- schéma de base de données ;
- composants logiciels ;
- réutilisation de composants.
Il est également possible de générer automatiquement tout ou partie du code, par exemple en langage Java, à partir des documents réalisés.
Histoire

Formalisme
UML est un langage de modélisation. La version actuelle, UML 2.5, propose 14 types de diagrammes dont sept structurels et sept comportementaux. À titre de comparaison, UML 1.3 comportait 25 types de diagrammes.
UML n'étant pas une méthode, l'utilisation des diagrammes est laissée à l'appréciation de chacun. Le diagramme de classes est généralement considéré comme l'élément central d'UML. Des méthodes, telles que le processus unifié proposé par les créateurs originels de UML, utilisent plus systématiquement l'ensemble des diagrammes et axent l'analyse sur les cas d'utilisation (« use case ») pour développer par itérations successives un modèle d'analyse, un modèle de conception, et d'autres modèles. D'autres approches se contentent de modéliser seulement partiellement un système, par exemple certaines parties critiques qui sont difficiles à déduire du code.
UML se décompose en plusieurs parties :
- Les vues : ce sont les observables du système. Elles décrivent le système d'un point de vue donné, qui peut être organisationnel, dynamique, temporel, architectural, géographique, logique, etc. En combinant toutes ces vues, il est possible de définir (ou retrouver) le système complet.
- Les diagrammes : ce sont des ensembles d'éléments graphiques. Ils décrivent le contenu des vues, qui sont des notions abstraites. Ils peuvent faire partie de plusieurs vues.
- Les modèles d'élément : ce sont les éléments graphiques des diagrammes.
Vues

Une façon de mettre en œuvre UML est de considérer différentes vues qui peuvent se superposer pour collaborer à la définition du système :
- Vue des cas d'utilisation (use-case view) : c'est la description du modèle vu par les acteurs du système. Elle correspond aux besoins attendus par chaque acteur (c'est le quoi et le qui).
- Vue logique (logical view) : c'est la définition du système vu de l'intérieur. Elle explique comment peuvent être satisfaits les besoins des acteurs (c'est le comment).
- Vue d'implémentation (implementation view) : cette vue définit les dépendances entre les modules.
- Vue des processus (process view) : c'est la vue temporelle et technique, qui met en œuvre les notions de tâches concurrentes, stimuli, contrôle, synchronisation…
- Vue de déploiement (deployment view) : cette vue décrit la position géographique et l'architecture physique de chaque élément du système (c'est le où).
Le pourquoi n'est pas défini dans UML.
En UML 2.5, les diagrammes sont représentés sous deux types de vue : d'un point de vue statique ou structurelle du domaine avec les diagramme de structure (Structure Diagrams).
D'un point de vue dynamique avec les diagrammes de comportement (Behavior Diagrams) et les diagrammes d’interactions (Interaction Diagrams).

Diagrammes

Les diagrammes sont dépendants hiérarchiquement et se complètent, de façon à permettre la modélisation d'un projet tout au long de son cycle de vie. Il en existe quatorze depuis UML 2.3.
Diagrammes de structure ou diagrammes statiques
Les diagrammes de structure (structure diagrams) ou diagrammes statiques (static diagrams) rassemblent :
- Diagramme de classes (class diagram) : représentation des classes intervenant dans le système.
- Diagramme d'objets (object diagram) : représentation des instances de classes (objets) utilisées dans le système.
- Diagramme de composants (component diagram) : représentation des composants du système d'un point de vue physique, tels qu'ils sont mis en œuvre (fichiers, bibliothèques, bases de données…)
- Diagramme de déploiement (deployment diagram) : représentation des éléments matériels (ordinateurs, périphériques, réseaux, systèmes de stockage…) et la manière dont les composants du système sont répartis sur ces éléments matériels et interagissent entre eux.
- Diagramme des paquets (package diagram) : représentation des dépendances entre les paquets (un paquet étant un conteneur logique permettant de regrouper et d'organiser les éléments dans le modèle UML), c'est-à-dire entre les ensembles de définitions.
- Diagramme de structure composite (composite structure diagram) : représentation sous forme de boîte blanche des relations entre composants d'une classe (depuis UML 2.x).
- Diagramme de profils (profile diagram) : spécialisation et personnalisation pour un domaine particulier d'un meta-modèle de référence d'UML (depuis UML 2.2).
Diagrammes de comportement
Les diagrammes de comportement (behavior diagrams) rassemblent :
- Diagramme des cas d'utilisation (use-case diagram) : représentation des possibilités d'interaction entre le système et les acteurs (intervenants extérieurs au système), c'est-à-dire de toutes les fonctionnalités que doit fournir le système.
- Diagramme états-transitions (state machine diagram) : représentation sous forme de machine à états finis du comportement du système ou de ses composants.
- Diagramme d'activité (activity diagram) : représentation sous forme de flux ou d'enchaînement d'activités du comportement du système ou de ses composants.
Diagrammes d'interaction ou diagrammes dynamiques
Les diagrammes d'interaction (interaction diagrams) ou diagrammes dynamiques (dynamic diagrams) rassemblent :
- Diagramme de séquence (sequence diagram) : représentation de façon séquentielle du déroulement des traitements et des interactions entre les éléments du système et/ou de ses acteurs.
- Diagramme de communication (communication diagram) : représentation de façon simplifiée d'un diagramme de séquence se concentrant sur les échanges de messages entre les objets (depuis UML 2.x).
- Diagramme global d'interaction (interaction overview diagram) : représentation des enchaînements possibles entre les scénarios préalablement identifiés sous forme de diagrammes de séquences (variante du diagramme d'activité) (depuis UML 2.x).
- Diagramme de temps (timing diagram) : représentation des variations d'une donnée au cours du temps (depuis UML 2.3).
Modèles d'éléments
- Un stéréotype est une marque de généralisation notée par des guillemets, montrant que l'objet est une variété d'un modèle.
- Un classeur est une annotation qui permet de regrouper des unités ayant le même comportement ou structure. Un classeur se représente par un rectangle conteneur, en traits pleins.
- Un paquet regroupe des diagrammes ou des unités.
- Chaque classe ou objet se définit précisément avec le signe « :: ». Ainsi l'identification d'une classe X en dehors de son paquet ou de son classeur sera définie par « Paquet A::Classeur B::Classe X ».
Modèles d'éléments de type commun

Symbolique des modèles d'éléments :
- Classe (class).
- Objet (object).
- Cas d'utilisation (use case).
- Paquet (package).
- Nœud (node).
- Fourche (fork).
- Acteur (actor).
- État (state).
- Activité (activity).
- État initial (initial state).
- État final (final state).
- Interface (interface).
- O←--- sens du flux de l'interface.
- O)----- est un raccourci pour la superposition de ---→O et O←---.
Modèles d'éléments de type relation
- Dépendance (dependency).
- Généralisation (generalisation).
- Association (association).
- Agrégation (aggregation).
- Composition (composition).
- Réalisation.
- Utilisation.
Autres modèles d'éléments
- Les stéréotypes peuvent dépendre du langage utilisé.
- Les archétypes.
- Les profils.
Normalisation et certification
UML n'est pas une norme en droit mais un simple standard « industriel » (ou norme de fait), parce que promu par l'OMG () au même titre que CORBA et en raison de son succès. Depuis , la première version 2.x de UML est validée par l'OMG.
Par ailleurs, depuis 2003, l'OMG a mis en place un programme de certification à la pratique et la connaissance d'UML OCUP qui recouvre trois niveaux de maîtrise.
Exemple de séquence de création des diagrammes
Logiciels de modélisation UML

S'il existe de nombreux logiciels de modélisation UML, aucun ne respecte entièrement chacune des versions de UML, particulièrement UML 2, et beaucoup introduisent des notations non conformes. En revanche, de nombreux logiciels comportent des modules de génération de code, particulièrement à partir du diagramme de classes, qui est celui qui se prête le mieux à une telle automatisation.
Notes et références
Voir aussi
Bibliographie
- Grady Booch, James Rumbaugh, Ivar Jacobson, Le guide de l'utilisateur UML, 2000 (ISBN 2-212-09103-6)
- Laurent Audibert, UML 2, De l'apprentissage à la pratique (cours et exercices), Ellipses, 2009 (ISBN 978-2729852696)
- Franck Barbier, UML 2 et MDE, Ingénierie des modèles avec études de cas, 2009 (ISBN 978-2-10-049526-9)
- Craig Larman, UML 2 et les design patterns, Analyse et conception orientées objet et développement itératif (3e édition), Pearson Education, 2005 (ISBN 2-7440-7090-4)
- Martin Fowler et al., UML 2.0, Initiation aux aspects essentiels de la notation, 2004 (ISBN 2-7440-1713-2)
- Pascal Roques, UML 2, Modéliser une application Web, Eyrolles, 2007 (ISBN 2-212-12136-9)
- Pascal Roques, UML 2 par la pratique, Études de cas et exercices corrigés, Eyrolles, 2006 (ISBN 2-212-12014-1)
- Jim Conallen, Concevoir des applications web avec UML, Eyrolles, , 288 p. (ISBN 978-2-212-09172-4)
Articles connexes
- Unified Process
- Ingénierie dirigée par les modèles
- Model Driven Architecture
- ATLAS Transformation Language
- Object Constraint Language
- Transformation de modèles
- Modeling and Analysis of Real Time and Embedded systems