I.3.3. Historique de l'UML
Par rapport à la cinquantaine de méthodes
d'analyse et de conception objet qui existaient au début des
années 90, seulement trois d'entre elles se sont détachées
nettement au bout de quelques années. En effet, la volonté de
converger vers une méthode unifiée était
déjà bien réelle et c'est pour cette raison que les
méthodes OMT, BOOCH et OOSE se sont démarquées des
autres.
OMT (Object Modeling Technique) de James Rumbaugh et BOOCH de
GradyBooch ont été les deux méthodes les plus
diffusées en France et partout ailleurs durant les années 90. Par
ailleurs, OOSE de Ivar Jacobson s'est aussi imposée dans le monde objet
pour la partie formalisation des besoins.
Pour aller plus loin dans le rapprochement, James Rumbaugh et
GradyBooch se sont retrouvés au sein de la société
Rational Software et ont été ensuite rejoints par Ivar Jacobson
en se donnant comme objectif de fusionner leurs méthodes et créer
UML (UnifiedMethodeLanguage).
Il est important de noter que contrairement à ce qui
avait été envisagé au départ, le processus de
développement a été sorti du champ couvert par le projet
de norme. UML est donc une norme du langage de modélisation objet qui a
été publiée, dans sa première version, en novembre
1997 par l'OMG (Object Management Group), instance de normalisation
internationale du domaine de l'objet.
En quelques années, UML s'est imposée comme
standard à utiliser en tant que langage de modélisation objet.
Aujourd'hui, au milieu de la deuxième décennie des années
2000, nous avons déjà une dizaine d'années de recul sur
l'enseignement et la pratique d'UML en entreprise.
Note : Une note correspond à un
commentaire explicatif d'un élément d'UML.
- 15 -
I.3.4. Présentation d'UML
Afin d'assurer un bon niveau de cohérence et
d'homogénéité sur l'ensemble des modèles, UML
propose d'une part un certain nombre de règles d'écriture ou de
représentations graphiques normalisées et d'autre part des
mécanismes ou des concepts communs applicables à l'ensemble de
ces diagrammes dont nous parlerons plus tard. Certains éléments,
comme les stéréotypes, sont spécifiquement prévus
pour assurer une réelle capacité d'adaptation et
d'évolution de la notation notamment pour prendre en compte les
particularités des différentes situations à
modéliser. Les principaux éléments généraux
d'UML que nous présentons sont : le stéréotype, la valeur
marquée, la note, la contrainte, et la relation de dépendance.
En outre UML propose un méta-modèle de tous les
concepts et notations associées utilisés dans les treize
diagrammes de ce langage de modélisation.
Méta-modèle : Le langage de
modélisation UML respecte un certain nombre de règles sur les
concepts manipulés (classes, attributs, opérations, paquetages,
...) ainsi que sur la syntaxe d'écriture et le formalisme de
représentation graphique. L'ensemble de ces règles constitue en
soi un langage de modélisation qui a fait l'objet d'un
méta-modèle UML. L'intérêt de disposer d'un
méta-modèle UML permet de bien maîtriser la structure d'UML
et de faciliter son évolution.
Stéréotype : Un
stéréotype constitue un moyen de classer les
éléments de la modélisation. Un certain nombre de
stéréotypes sont déjà définis dans UML, mais
d'autres valeurs de stéréotypes peuvent être
ajoutées si cela est nécessaire soit à l'évolution
générale d'UML, soit à la prise en compte de situations
particulières propres aux entreprises. Les stéréotypes
peuvent s'appliquer à n' importe quel concept d'UML. Nous nous
utiliserons dans ce travail un certain nombre d'entre eux que nous
présenterons au niveau des diagrammes lorsque leur utilisation nous
paraîtra pertinente.
Valeur marquée : UML permet d'indiquer
des valeurs particulières au niveau des éléments de
modélisation et en particulier pour les attributs de classe. Une valeur
marquée se définit au niveau méta-attribut.
15Joseph Gabay& David Gabay, UML 2. ANALYSE
ET CONCEPTION, Mise en oeuvre avec étude de cas, édition
DUNOD, Paris, 2008, page 17
- 16 -
Contrainte : Une contrainte est une note
ayant une valeur sémantique particulière pour un
élément de la modélisation. Une contrainte s'écrit
entre accolades {}. Dans le cas où la contrainte concerne deux classes
ou plus, celle-ci s'inscrit à l'intérieur d'une note.
a) UML 2
UML se définit comme un langage de modélisation
graphique et textuel destiné à comprendre et décrire des
besoins, spécifier et documenter des systèmes, esquisser des
architectures logicielles, concevoir des solutions et communiquer des points de
vue.
UML unifie à la fois les notations et les concepts
orientés objet. Il ne s'agit pas d'une simple notation graphique, car
les concepts transmis par un diagramme ont une sémantique précise
et sont porteurs de sens au même titre que les mots d'un langage. UML
unifie également les notations nécessaires aux différentes
activités d'un processus de développement et offre, par ce biais,
le moyen d'établir le suivi des décisions prises, depuis
l'expression de besoins jusqu'au codage. Dans ce cadre, un concept appartenant
aux exigences des utilisateurs projette sa réalité dans le
modèle de conception et dans le codage.
Le fil tendu entre les différentes étapes de
construction permet alors de remonter du code aux besoins et d'en comprendre
les tenants et les aboutissants. En d'autres termes, on peut retrouver la
nécessité d'un bloc de code en se référant à
son origine dans le modèle des besoins.
b) Présentation générale des
diagrammes
UML dans sa version 2 propose treize diagrammes qui peuvent
être utilisés dans la description d'un
système15. Ces diagrammes sont regroupés en deux
grands ensembles. Avant de les voir, voyons d'abord quels sont les grands
concepts qui permettront de mieux les comprendre.
1. Concept d'objet : Un objet
représente une entité du monde réel(ou du monde virtuel
pour les objets immatériels) qui se caractérise par un ensemble
de propriétés (attributs), des états significatifs et un
comportement. L'état d'un objet correspond aux valeurs de tous ses
attributs à un instant donné. Les propriétés sont
définies dans la classe d'appartenance de l'objet. Le comportement d'un
objet est caractérisé par l'ensemble des opérations qu'il
peut
- 17 -
exécuter en réaction aux messages provenant des
autres objets. Les opérations sont définies dans la classe
d'appartenance de l'objet.
2. Concept de classe : Une classe
est l'abstraction d'un ensemble d'objets qui possèdent une structure
identique (liste des attributs) et un même comportement (liste des
opérations). Un objet est une instance d'une et une seule classe. Une
classe abstraite est une classe qui n'a pas d'instance. Les concepts de classe
et d'objet sont interdépendants. Nous ne pouvons passer sans parler des
concepts d'attribut et d'opération.
3. Unattribut : est une
propriété élémentaire d'une classe. Pour chaque
objet d'une classe, l'attribut prend une valeur (sauf cas d'attributs multi
values).
4. uneopération : est une fonction
applicable aux objets d'une classe. Une opération permet de
décrire le comportement d'un objet. Une méthode est
l'implémentation d'une opération.
En voici une illustration
5. Concept d'association et d'agrégation
de classes : L'association représente une relation entre
plusieurs classes. Elle correspond à l'abstraction des liens qui
existent entre les objets dans le monde réel. Les multiplicités
(ou cardinalités) et les rôles des objets participant aux
relations complètent la description d'une association.
L'agrégation est une forme particulière d'association entre
plusieurs classes. Elle exprime le fait qu'une classe est composée d'une
ou plusieurs autres classes. La relation composant-composé ou la
relation structurelle représentant l'organigramme d'une entreprise sont
des exemples types de la relation d'agrégation.
6. Concept de généralisation et
spécialisation de classes : La
généralisation de classes consiste à factoriser dans une
classe, appelée superclasse, les attributs et/ou opérations des
classes considérées. Appliquée à l'ensemble des
classes, elle permet de réaliser une hiérarchie des classes. La
spécialisation représente la démarche inverse de la
généralisation puisqu'elle consiste à créer
à partir d'une classe, plusieurs classes spécialisées.
Chaque nouvelle classe créée est dite spécialisée
puisqu'elle comporte en plus des attributs ou
- 18 -
opérations de la superclasse (disponibles par
héritage) des attributs ou opérations qui lui sont propres. Une
classe spécialisée porte aussi le nom de sous-classe. La
spécialisation de classe se construit en deux temps : d'abord par
héritage des opérations et des attributs d'une superclasse et
ensuite par ajout d'opérations et/ou d'attributs spécifiques
à la sous-classe. La généralisation-spécialisation
est un des mécanismes les plus importants de l'approche objet qui
facilite la réutilisation des classes.
7. Concept de polymorphisme : Le
polymorphisme est la capacité donnée à une même
opération de s'exécuter différemment suivant le contexte
de la classe où elle se trouve
8. Concept de persistance : La
persistance est la propriété donnée à un objet de
continuer à exister après la fin de l'exécution du
programme qui l'a créé.
1. Les diagrammes structurels ; Ces
diagrammes, au nombre de six, ont vocation à représenter l'aspect
statique d'un système (classes, objets, composants...).
· Diagramme de classe : Ce diagramme représente
la description statique du système en intégrant dans chaque
classe la partie dédiée aux données et celle
consacrée aux traitements. C'est le diagramme pivot de l'ensemble de la
modélisation d'un système.
· Diagramme d'objet : Le diagramme d'objet permet la
représentation d'instances des classes et des liens entre instances.
· Diagramme de composant (modifié dans UML 2) :
Ce diagramme représente les différents constituants du logiciel
au niveau de l'implémentation d'un système.
· Diagramme de déploiement (modifié dans
UML 2) : Ce diagramme décrit l'architecture technique d'un
système avec une vue centrée sur la répartition des
composants dans la configuration d'exploitation.
· Diagramme de paquetage (nouveau dans UML 2) : Ce
diagramme donne une vue d'ensemble du système structuré en
paquetage. Chaque paquetage représente un ensemble homogène
d'éléments du système (classes, composants...).
· Diagramme de structure composite (nouveau dans UML 2)
: Ce diagramme permet de décrire la structure interne d'un ensemble
complexe composé par exemple de classes ou d'objets et de composants
techniques. Ce diagramme met aussi l'accent sur les liens entre les
sous-ensembles qui collaborent.
- 19 -
2. Les diagrammes de comportement ; Ces
diagrammes représentent la partie dynamique d'un système
réagissant aux événements et permettant de produire les
résultats attendus par les utilisateurs. Sept diagrammes sont
proposés par UML :
? Diagramme des cas d'utilisation : Ce diagramme est
destiné à représenter les besoins des utilisateurs par
rapport au système. Il constitue un des diagrammes les plus structurants
dans l'analyse d'un système. La description textuelle d'un cas
d'utilisation est articulée en six points : y' Objectif
: Décrire succinctement le contexte et les résultats
attendus du cas d'utilisation.
y' Acteurs concernés : Le ou les
acteurs concernés par le cas doivent être identifiés en
précisant globalement leur rôle.
y' Pré conditions : Si certaines
conditions particulières sont requises avant
l'exécution du cas, elles sont à exprimer à
ce niveau.
y' Post-conditions : Par symétrie, si
certaines conditions particulières doivent être réunies
après l'exécution du cas, elles sont à exprimer à
ce niveau. Pour notre part, par souci de simplification nous n'avons pas
traité ce point dans les exercices et études de cas
présentés.
y' Scénario nominal : Il s'agit
là du scénario principal qui doit se dérouler sans
incident et qui permet d'aboutir au résultat souhaité.
y' Scénarios alternatifs : Les autres
scénarios, secondaires ou qui correspondent à la
résolution d'anomalies, sont à décrire à ce
niveau.
? Diagramme d'état-transition (machine d'état)
: Ce diagramme montre les différents états des objets en
réaction aux événements.
? Diagramme d'activités (modifié dans UML 2) :
Ce diagramme donne une vision des enchaînements des activités
propres à une opération ou à un cas d'utilisation. Il
permet aussi de représenter les flots de contrôle et les flots de
données.
? Diagramme de séquence (modifié dans UML 2) :
Ce diagramme permet de décrire les scénarios de chaque cas
d'utilisation en mettant l'accent sur la chronologie des opérations en
interaction avec les objets.
? Diagramme de communication (autrefois appelé
collaboration) : Ce diagramme est une autre représentation des
scénarios des cas d'utilisation qui met plus l'accent sur les objets et
les messages échangés.
16 FABRICE JOUANOT, Base de données et
processus d'information, Ed.Aile des Sciences de l'ingénieur, p.8
17fr.wikipedia.org/wiki/Système_de_gestion_de_base_de_données
- 20 -
? Diagramme global d'interaction (nouveau dans UML 2) : Ce
diagramme fournit une vue générale des interactions
décrites dans le diagramme de séquence et des flots de
contrôle décrits dans le diagramme d'activités.
? Diagramme de temps (nouveau dans UML 2) : Ce diagramme
permet de représenter les états et les interactions d'objets dans
un contexte où le temps a une forte influence sur le comportement du
système à gérer.
Aujourd'hui UML 2 décrit les concepts et le formalisme
de ces treize diagrammes mais ne propose pas de démarche de construction
couvrant l'analyse et la conception d'un système. Ce qui a pour
conséquence par exemple de ne pas disposer d'une vision des interactions
entre les diagrammes.
|