Le langage UML (Unified Modeling Language) est un langage graphique de modélisation initialement conçu pour représenter, spécifier, concevoir et documenter les artefacts de systèmes logiciels. Adopté par l’Object Management Group (OMG) en tant que standard, il est devenu une référence incontournable dans le domaine du génie logiciel. Sa richesse et sa puissance d’expression le rendent également éligible pour la modélisation de concepts et de processus « métier » (« business modeling ») et pour l’ingénierie de systèmes non logiciels. UML résulte de l’unification de techniques ayant fait leurs preuves pour l’analyse et la conception de grands logiciels et de systèmes complexes.
UML intègre neuf types de diagrammes destinés à la caractérisation du système modélisé et à la représentation des éléments qui le constituent :
-
les diagrammes de cas d’utilisation permettent de décrire les fonctionnalités du système et de représenter les différents types de sollicitations auxquelles il doit pouvoir répondre ;
-
les diagrammes de classes sont destinés à décrire les propriétés structurelles des objets du monde réel, les concepts spécifiques du domaine considéré ou encore les notions abstraites que le système doit appréhender. Ce sont les diagrammes le plus fréquemment utilisés en modélisation orientée objet. En phase de conception du logiciel, ils sont exploités pour décrire l’architecture statique du système et les interdépendances entres ses constituants ;
-
les diagrammes d’objets offrent un moyen de représenter les objets (c’est‐à‐dire les instances des classes figurant dans les diagrammes de classes) ainsi que leurs relations ;
-
les diagrammes de collaboration permettent de formaliser les scénarios de mise en œuvre du système et de montrer comment les objets sont mis en jeu pour réaliser les cas d’utilisation. Ils décrivent les interactions entre les objets ;
-
les diagrammes de séquence, comme les diagrammes de collaboration, décrivent les interactions entre objets. Ils mettent l'accent sur l'ordre chronologique dans lequel s'effectuent les échanges de messages entre objets ;
-
les diagrammes d’états (ou diagrammes états-transitions) apportent le complément nécessaire à la formalisation des aspects dynamiques : ils répondent au besoin de modéliser les processus d’exécution et les comportements des objets en réaction aux stimuli auxquels ils sont soumis ;
-
les diagrammes d’activités sont également dédiés à la représentation de l’exécution d’un processus : ils constituent une variante des diagrammes d’états ;
-
les diagrammes de composants sont destinés à la description des éléments de configuration qui constituent le logiciel (binaires exécutables, bibliothèques, unités de compilation, etc.) et à la formalisation de leurs dépendances ;
-
les diagrammes de déploiement permettent, enfin, de représenter l’implantation des différents programmes et composants logiciels sur l’architecture physique du système.
À travers quelques exemples simples, le présent article décrit la syntaxe du langage UML pour chacun de ces diagrammes et tente de délimiter leurs champs d’application dans un processus de développement de logiciel.