À propos d'UML
Introduction
Ce chapitre est consacré, d’une part, à la genèse d’UML et, d’autre part, à deux approches connexes à UML :
-
Le Processus Unifié, processus de développement et d’évolution de logiciels ;
-
L’architecture MDA (Model-Driven Architecture ou architecture guidée par les modèles) destinée à la réalisation de systèmes en faisant abstraction de la plateforme physique et de ses aspects technologiques.
La genèse d’UML
UML est basé sur l’approche par objets. Celle-ci vit le jour bien avant UML dans le domaine des langages de programmation. Simula, le tout premier langage à objets, est né dans les années 1960. Ce langage connut beaucoup de successeurs comme Smalltalk, C++, Java ou encore récemment C#.
Avec un langage de programmation, la description des objets est réalisée de façon formelle selon une syntaxe rigoureuse. Cette syntaxe présente l’inconvénient de ne pas être lisible par des non-programmeurs et d’être assez lente à déchiffrer même pour des programmeurs. Les humains, à la différence des machines, préfèrent les langages graphiques pour représenter des abstractions car ils peuvent ainsi les maîtriser plus facilement et plus rapidement, et obtenir une vue d’ensemble d’un système en un temps beaucoup plus court.
Dans les années 1980 et au début des années 1990, les notations graphiques se multiplièrent, chacune utilisant bien souvent sa propre notation. En 1994, Jim Rumbaugh et Grady Booch décidèrent de se regrouper pour unifier leurs notations. Celles-ci provenaient de leurs méthodes : OMT pour Jim Rumbaugh et la méthode Booch pour Grady Booch. En 1995, Yvar Jacobson décida de rejoindre l’équipe dite des Trois Amigos. Cette équipe travailla alors au sein de Rational Software.
La version 1.0 d’UML fut publiée en 1997. Le travail d’évolution de la notation était alors devenu trop important pour trois personnes. Les Trois Amigos demandèrent ainsi l’aide de l’Object Management Group (OMG), un consortium de 800 sociétés et universités travaillant dans le domaine des technologies de l’objet. La notation...
Le Processus Unifié
Le Processus Unifié est un processus de réalisation ou d’évolution de logiciels entièrement basé sur UML, d’où l’intérêt de le mettre en œuvre dans cet ouvrage. Le Processus Unifié est constitué d’un ensemble de directives afin de produire un logiciel à partir des exigences. Chaque directive définit qui fait quoi et à quel moment. Un processus permet donc de structurer les différentes étapes d’un projet informatique.
Les trois auteurs du Processus Unifié sont les mêmes que ceux d’UML. Toutefois, l’utilisation d’UML n’impose pas celle du Processus Unifié. Un projet employant UML peut employer un autre processus que le Processus Unifié, ou ne pas en utiliser du tout.
Le Processus Unifié est piloté par les cas d’utilisation. Ceux-ci sont utilisés pour décrire les exigences du projet. Ils sont décrits à l’aide d’une représentation spécifique au Processus Unifié, plus riche que celle contenue dans UML.
Le Processus Unifié est incrémental. Un projet est divisé en une suite d’itérations. Chaque itération est une brique ajoutée à l’itération précédente qui doit donc avoir été préalablement réalisée. Quand la dernière itération est réalisée, c’est le projet dans son intégralité qui est alors achevé.
Le Processus Unifié est itératif en ce sens que chaque itération est réalisée avec les mêmes activités. À l’issue de chaque itération, une livraison partielle de l’itération est évaluée.
Les auteurs du Processus Unifié...
L’architecture guidée par les modèles : MDA
MDA (Model-Driven Architecture) est une proposition de l’OMG dont l’objectif est la conception de systèmes basée sur la seule modélisation du domaine, en faisant abstraction des aspects technologiques. À partir de cette modélisation, MDA propose d’obtenir par transformation les éléments techniques capables de fonctionner au sein d’une plateforme logicielle comme Java ou .NET.
Dans MDA, le modèle des objets du domaine s’appelle PIM (Platform-Independent Model ou modèle indépendant de la plateforme). Le PIM est constitué d’un ensemble d’éléments dont la conception doit se faire indépendamment de tout langage de programmation ou de technologie. Ce modèle est ensuite transformé manuellement ou automatiquement en un modèle spécifique à une plateforme et à un langage de programmation. Un tel modèle spécifique s’appelle PSM (Platform-Specific Model ou modèle spécifique à la plateforme).
Le lien avec UML réside au niveau du PIM. En effet, UML est un très bon candidat comme langage à ce niveau. UML possède l’avantage de décrire finement des objets tout en restant indépendant des technologies.