UML (informatique)

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Unified Modeling Language)
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir UML.
Logo d'UML

Le UML est le résultat de la fusion de précédents langages de modélisation objet : 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).

Utilité d'UML[modifier | modifier le code]

UML est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires au bon développement d'un logiciel orienté objet. UML offre un standard de modélisation, pour représenter 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

Grâce aux outils de modélisation UML, il est également possible de générer automatiquement une partie de code, par exemple en langage Java, à partir des divers documents réalisés.

Histoire[modifier | modifier le code]

Historique d'UML.
Historique
Date Description
Au début des années 1980 Les objets commencent à quitter les laboratoires de recherche et à faire leurs premiers pas dans le monde réel; entre autres, le langage de programmation Smalltalk, stabilisé, devient une plate-forme utilisable et le C++ voit le jour.

Les méthodes objets commencent à émerger pour remplacer les méthodes structurée et fonctionnelles, trop liés à la machine.

1989 à 1994 Le nombre de méthodes orientées objet passe de dix (10) à plus de cinquante (50); toutes ces méthodes ont de nombreux points communs (objets, méthodes, paramètres, etc.).

Ces méthodes s’orientant sur l’abstraction des composants matériels, se basent sur des notions de classe, d’association, de partition en sous-système et autour de l’étude de l’interaction entre utilisateur et le système. Les principaux auteurs de ces méthodes sont James Rumbaugh, Grady Booch et Ivar Jacobson. Parmi ces méthodes, deux se sont principalement établies: la méthode de Booch et la méthode OMT (Object Modeling Technique). Une deuxième version des méthodes de Booch et OMT ont fait leur apparition Booch’93 et OMT-2. Ces méthodes sont fortement semblables, en effet Booch’93 se concentre plus sur la construction tandis que OMT-2 se concentre sur l’analyse et l’abstraction.

1989 et 1991 Publication de deux (2) ouvrages, par Sally Shlaer (en) et Steve Mellor, sur l'analyse et la conception qui débouchent sur une approche qu'ils nomment conception récursive.
1989 à 1990 Développement à Portland, par la communauté Smalltalk, de la conception pilotée par les responsabilités et les cartes CRC (Class-Responsability-Collaboration).
1991 à 1996 James Rumbaugh dirige aux laboratoires de recherche de General Electric une équipe de recherche qui publie un ouvrage très apprécié sur OMT.
1991 Publication d'ouvrages, par Peter Coad et Ed. Yourdon, qui développent les approches « allégées » et « orientées prototypes ».
1992 et 1995 Publication des livres d'Ivar Jacobson fondés sur son expérience des commutateurs téléphoniques chez Ericsson. Le premier introduit le concept de cas d'utilisation (use-case).
1994 à 1996 Grady Booch effectue un travail important chez Rational Software en développant des systèmes en Ada.
1994 Le nombre important de méthodes et les différences entre celles-ci, se réduisant, font reculer la technologie objet au point que Jim Rumbaugh et Grady Booch s’unissent afin d’unifier leur travaux; ils proposent ainsi « Unified Method ».
1994 Les livres de Jim Odell, écrits avec James Martin, se fondent sur sa longue expérience des systèmes d'information et du génie logiciel et sont, parmi tous ces ouvrages, les plus conceptuels.
1994-10 Début des travaux de la méthode unifiée (unified method (UM)).

James Rumbaugh rejoint Grady Booch chez Rational Software.

1995 Ivar Jacobson, créateur des use cases, rejoint Jim Rumbaugh et Grady Booch.
1995 Les auteurs de la méthode unifiée (UM) publient le document intitulé Unified Method V0.8.
1995-10 Ivar Jacobson arrive chez Rational Software.
1995-10 UML 0.8 inclut OOD/Booch '93 de Grady Booch et OMT de Jim Rumbaugh.
1996 Publication d'une nouvelle révision du document, Unified Method V0.9, suite aux commentaires des utilisateurs.

La révision 0.9.1 est la version la plus aboutie de la méthode unifiée (réorientation de la portée de l’effort d’unification). La méthode change de nom et se transforme en UML (Unified Modeling Language for Object-Oriented Development). Un consortium de grandes entreprises se crée (Microsoft, IBM, Oracle, etc.) permettant de faire évoluer la méthode à la version 1.0 d’UML.

1996-06 UML 0.9 inclut OOSE d'Ivar Jacobson.
1996-10 UML 0.91
1997-01 Normalisation de UML 1.0 par l'Object Management Group (OMG).
1997-08 Proposition des spécifications d'UML 1.1 à l'OMG par un groupe de travail d'analystes et de concepteurs dirigé par Cris Kobryn et administré par Ed Eykholt.
1997-11-14 Adoption des spécifications d'UML 1.1 par l'OMG[1].

Différentes améliorations continuent d'être apportées au standard UML, donnant naissance à 4 révisions : UML 1.2, 1.3, 1.4, 1.5. UML 1.5 est la dernière révision avant le passage à la version UML 2.0.

Les standards UML 1.x, encore largement influencés par la notation OMT, est décrié comme manquant d'intégration sémantique.

1998-06 Adoption de UML 1.2 par l'OMG.
1998-10 Adoption de UML 1.3 par l'OMG.
2000-03 Publication de la spécification UML 1.3 complète.
2001-09 UML 1.4.
2003-03-06 UML 1.5 (recommandations)
2003-08 UML 2.0 Superstructure Specification (recommandation)
2003-09-01 UML 2.0 Diagram Interchange Specification (recommandation)
2003-10-14 UML 2.0 OCL Specification
2003-12 UML 2.0 (recommandation)
2005-07 Adoption de UML 2.0 par l'OMG.
2006-04-04 UML 2.0 Diagram Interchange Specification
2006-06-01 UML 2.0 OCL Specification
2006-10-06 UML 2.1.1 - XMI file
2007-02-06 UML 2.1.1 Infrastructure Specification
2007-02-03 UML 2.1.1 Superstructure Specification
2007 UML 1.4.2 devient une spécification ISO (ISO/IEC 19501).
2007-11 Diffusion de UML 2.1.2 par l'OMG.
L'OMG travaille à UML 2.2.
2013-09 Diffusion par l'OMG d'UML 2.5 bêta 2[2].

Le formalisme d'UML[modifier | modifier le code]

UML 2.3 propose 14 types de diagrammes (9 en UML 1.3). UML n'étant pas une méthode, leur utilisation est laissée à l'appréciation de chacun, même si le diagramme de classes est généralement considéré comme l'élément central d'UML ; des méthodologies, telles que l'UnifiedProcess, axent l'analyse en tout premier lieu sur les diagrammes de cas d'utilisation (Use Case). De même, on peut se contenter de modéliser seulement partiellement un système, par exemple certaines parties critiques.

  • UML se décompose en plusieurs sous-ensembles :
    • Les vues : Les vues 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 : Les diagrammes sont des éléments graphiques. Ceux-ci décrivent le contenu des vues, qui sont des notions abstraites. Les diagrammes peuvent faire partie de plusieurs vues.
    • Les modèles d'élément : Les modèles d'élément sont les briques des diagrammes UML, ces modèles sont utilisés dans plusieurs types de diagrammes. Exemple d'élément : cas d'utilisation (CU ou cadut'), classe, association, etc.

Mise en œuvre d'une démarche à l'aide d'UML : les vues[modifier | modifier le code]

Vues d'UML.

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 : 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 : 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 : cette vue définit les dépendances entre les modules.
  • Vue des processus : c'est la vue temporelle et technique, qui met en œuvre les notions de tâches concurrentes, stimuli, contrôle, synchronisation, etc.
  • Vue de déploiement : cette vue décrit la position géographique et l'architecture physique de chaque élément du système (c'est le OÙ).

Nota : le POURQUOI, n'est pas défini dans UML.

Les diagrammes[modifier | modifier le code]

La hiérarchie des diagrammes UML 2.0 sous forme d'un diagramme de classes.

Les 14 diagrammes UML 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.

Diagrammes structurels ou statiques[modifier | modifier le code]

Les diagrammes structurels ou statiques (Structure Diagram) rassemblent :

Diagrammes comportementaux[modifier | modifier le code]

Les diagrammes comportementaux (Behavior Diagram) rassemblent :

  • Diagramme des cas d'utilisation (use-cases ou Use Case Diagram) : il permet d'identifier les possibilités d'interaction entre le système et les acteurs (intervenants extérieurs au système), c'est-à-dire toutes les fonctionnalités que doit fournir le système.
  • Diagramme états-transitions (State Machine Diagram) : permet de décrire sous forme de machine à états finis le comportement du système ou de ses composants.
  • Diagramme d'activité (Activity Diagram) : permet de décrire sous forme de flux ou d'enchaînement d'activités le comportement du système ou de ses composants.

Diagrammes d'interaction ou dynamiques[modifier | modifier le code]

Les diagrammes d'interaction ou dynamiques (Interaction Diagram) rassemblent :

  • Diagramme de séquence (Sequence Diagram) : représentation 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) : depuis UML 2.x, représentation simplifiée d'un diagramme de séquence se concentrant sur les échanges de messages entre les objets.
  • Diagramme global d'interaction (Interaction Overview Diagram) : depuis UML 2.x, permet de décrire les enchaînements possibles entre les scénarios préalablement identifiés sous forme de diagrammes de séquences (variante du diagramme d'activité).
  • Diagramme de temps (Timing Diagram) : depuis UML 2.3, permet de décrire les variations d'une donnée au cours du temps.

Les éléments de modélisation[modifier | modifier le code]

  • Le Stéréotype est une marque de généralisation notée par des guillemets, cela montre que l'objet est une variété d'un modèle.
  • Le 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 paquetage 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 package ou de son classeur sera définie par « Package A::Classeur B::Classe X ».

Les éléments de modélisation de type commun[modifier | modifier le code]

Modèles d'éléments UML.

Symbolique des modèles d'éléments :

  • Nœud (Node)
  • Fourche (Fork)
  • État initial (Initial state)
  • État terminal (Final state)
  • Interface
    • O←-- sens du flux de l'interface
    • O)----- est un raccourci pour la superposition de →O et O←

Les éléments de modélisation de type relation[modifier | modifier le code]

Autres éléments descriptifs[modifier | modifier le code]

Standardisation et Certification UML[modifier | modifier le code]

UML n'est pas un standard de fait mais un standard « industriel » de l'OMG () au même titre que CORBA par exemple. Ceci étant, vu le succès initial de ce langage, il aurait pu tout aussi bien être simplement « standard de fait ». Depuis , la première version 2.* 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[3] (OMG Certified UML Professional), qui recouvre trois niveaux successifs de maîtrise.

Exemple de séquence de création des diagrammes[modifier | modifier le code]

Diagramme étape du cycle en V
1. Diagramme de cas d'utilisation Spécification, cahier des charges
2. Diagramme de séquence
3. Diagramme d'activité (processus métiers)
4. Diagramme d'activité (cinématique et/ou processus applicatifs)
5. Diagramme de classe Conception Architecturale
6. Diagramme d'objet
7. Diagramme de communication
8. Diagramme de déploiement
9. Diagramme de composant

Logiciels de modélisation UML[modifier | modifier le code]

Article détaillé : Comparaison des logiciels d'UML.
Umbrello, atelier UML de KDE.

Il existe de nombreux outils logiciels de modélisation UML. Malheureusement, aucun d'entre eux ne respecte strictement chacune des versions de UML, particulièrement UML2 : beaucoup de ces outils introduisent des notations particulières non conformes, très peu supportent les différents types de diagrammes définis par le standard. Beaucoup en revanche incluent des outils de génération de squelette 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[modifier | modifier le code]

2.5 Bêta 2 http://www.omg.org/spec/UML/2.5/Beta2/

(en) OMG, « OMG Unified Modeling LanguageTM (OMG UML),Superstructure », OMG,‎ (consulté le 20 novembre 2011)

(en) OMG, « OMG Unified Modeling LanguageTM (OMG UML), Infrastructure », OMG,‎ (consulté le 20 novembre 2011)

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Bibliographie[modifier | modifier le code]