Unified Modeling Language
Un article de Wikipédia, l'encyclopédie libre.
UML (en anglais Unified Modeling Language, « langage de modélisation unifié ») est un langage graphique de modélisation des données et des traitements. C'est une formalisation très aboutie et non-propriétaire de la modélisation objet utilisée en génie logiciel. L'OMG diffuse depuis Novembre 2007 la version UML 2.1.2, et travaille à présent sur la version 2.2.
UML est l'accomplissement de la fusion des 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 défini par l'OMG.
Sommaire |
[modifier] Le formalisme d'UML
Le modèle UML est composé de 13 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 elles 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 diagramme. Exemple d'élément : cas d'utilisation (CU ou cadut'), classe, association, etc.
[modifier] Mise en œuvre d'une démarche à l'aide d'UML : les 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 : c'est la description du modèle "vue" 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.
[modifier] Les diagrammes
- Les 13 diagrammes UML sont dépendants hiérarchiquement et se complètent
- Diagrammes Structurels ou Diagrammes statiques (cf. Structure Diagram)
- Diagramme de classes (cf. Class diagram) : il représente les classes intervenant dans le système.
- Diagramme d'objets (cf. Object diagram) : il sert à représenter les instances de classes (objets) utilisées dans le système.
- Diagramme de composants (cf. Component diagram) : il permet de montrer les 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 (cf. Deployment diagram) : il sert à représenter les é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 avec eux.
- Diagramme des paquetages (cf. Package Diagram) : un paquetage étant un conteneur logique permettant de regrouper et d'organiser les éléments dans le modèle UML, le Diagramme de paquetage sert à représenter les dépendances entre paquetages, c’est-à-dire les dépendances entre ensembles de définitions.
- Diagramme de structure composite (depuis UML 2.x, cf. Composite Structure Diagram) : permet de décrire sous forme de boîte blanche les relations entre composants d'une classe.
- Diagrammes Comportementaux (cf. Behavior Diagram)
- Diagramme des cas d'utilisation (use-cases) (cf. 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 (cf. 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é (cf. 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.
- Diagramme d'interactions ou Diagrammes dynamiques (cf. Interaction Diagram) :
- Diagramme de séquence (cf. 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 (depuis UML 2.x, cf. Communication Diagram) : représentation simplifiée d'un diagramme de séquence se concentrant sur les échanges de messages entre les objets.
- Diagramme global d'interaction (depuis UML 2.x, cf. Interaction Overview Diagram) : 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 (depuis UML 2.x, cf. Timing Diagram) : permet de décrire les variations d'une donnée au cours du temps.
[modifier] Les modèles d'éléments
- 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".
[modifier] Les modèles d'éléments de type commun
Symbolique des modèles d'éléments :
- Classe (Class)
- Objet (Object)
- Cas d'utilisation (Use case)
- Paquetage (Package)
- Note (Comment)
- Nœud (Node)
- Fourche (Fork)
- Acteur (Actor)
- État (State)
- Activité (Activity)
- É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<--
[modifier] Les modèles d'éléments de type relation
- Dépendance (Dependency)
- Généralisation (Generalization)
- Association (Association)
- Agrégation (Aggregation)
- Composition (Composition)
- Réalisation
- Utilisation
[modifier] Autres éléments descriptifs
- Les stéréotypes peuvent dépendre du langage que l'on souhaite utiliser
- Les archétypes
- Les profils
[modifier] Standardisation et Certification UML
UML n'est pas un standard de fait mais un standard « industriel » de l'OMG (novembre 1997) 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 juillet 2005, 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 (OMG Certified UML Professional), qui recouvre trois niveaux successifs de maîtrise.
[modifier] Exemple de séquence de création des diagrammes
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'objet | Conception Architecturale |
4. Diagramme d'activité | |
5. Diagramme de classe | |
6. Diagramme de communication | |
7. Diagramme de déploiement | |
8. Diagramme de composant |
[modifier] Logiciels de modélisation UML
Il existe de nombreux outils logiciels de modélisation UML. Malheureusement aucun d'entre eux ne respecte strictement aucune 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. Les outils plus réputés, à défaut d'être conformes, sont les outils de Rational, ou Together.
Cet article ou cette section a trop de liens externes.
Les liens externes doivent être des sites de référence dans le domaine du sujet. Il est souhaitable — si cela présente un intérêt — de citer ces liens comme source.
|
[modifier] Logiciels libres
- Acceleo, générateur de code source à partir de modèles UML ;
- AndroMDA, atelier de génération de code à partir de modèles tels UML sous licence BSD ; des générateurs diverses comme J2EE ou .NET sont disponibles ;
- ArgoUML modeleur UML et génération de code sous licence BSD ;
- ATL solution open source pour faire des transformations de modèles vers ou depuis UML (entre autres); ATL est un langage de type QVT ;
- BOUML, un modeleur UML sous GNU GPL pour Windows, Linux, MacOS X et Solaris ;
- Delphia Object Modeler (version personnelle), Outil de modélisation et de prototypage. Diagrammes de classe et d'état. Langage objet intégré. Générateur de Java ;
- Dia, logiciel de diagrammes pour GNOME ;
- Eclipse GMT-UMLX ;
- Eclipse UML2, méta modèle UML2, sans interface graphique ;
- Gaphor un modeleur UML sous GNU GPL ;
- Netbeans [1], de Sun ;
- Neptune outil permettant de vérifier les modèles UML1.x via des règles OCL ;
- Papyrus un modeleur UML2 open source pour la plateforme Eclipse sous licence EPL ;
- PauWare moteur d'exécution Java des State Machine Diagrams et Sequence Diagrams d'UML 2 ;
- Umbrello UML Modeller modeleur UML sous GNU GPL pour KDE.
- Staruml, ne fonctionne que sur Windows ;
- TOPCASED atelier en cours de développement basé sur la plate-forme Eclipse qui propose un éditeur UML2.
- Violet UML modeleur UML, autonome ou plugin pour Eclipse.
[modifier] Logiciels propriétaires
- BLU AGE, un atelier MDA permettant une transformation 100% automatisée de vos diagrammes UML 2.X en applications Java EE et .Net ;
- Enterprise Architect, un outil de modélisation UML ;
- Jude [2], en Java ;
- MagicDraw, un éditeur de diagrammes UML ;
- Objecteering d'Objecteering Software ;
- Omondo EclipseUML, un plugin UML pour Eclipse;
- Poseidon (version commerciale), basé sur ArgoUml (logiciel libre);
- PowerAMC/PowerDesigner [3], de Sybase (un outil de modélisation complet intégrant l'UML en plus des classiques MCD, MPD ...) ;
- Rhapsody de Telelogic pour une modélisation PSM (Platform Specific Model) complète de systèmes ou de logiciels embarqués ;
- Rational Software Architect / Rational Software Modeler (et toujours Rose/XDE), de IBM Software Rational ;
- SDE for Eclipse, un plugin UML pour Eclipse ;
- Telelogic TAU de Telelogic pour la modélisation PIM (Platform Independant Model) de systèmes ou de logiciels, pour la modélisation d'architectures SOA ou l'implémentation d'applications pour architecture SOA ;
- Together, de Borland ;
- Visual Paradigm for UML, de Visual Paradigm Internation Ltd. ;
- Delphia Object Modeler (version commerciale), Outil de modélisation et de prototypage. Diagrammes de classe et d'état. Langage objet intégré. Générateur de Java ;
[modifier] Voir aussi
[modifier] Liens internes
- Unified Process
- QVT
- Ingénierie dirigée par les modèles, (en) MDE
- MDA
- Langage dédié, (en) DSL
- (en) MTL
- ATL
- OCL, (en) OCL
- Transformation
- (en) Transformation de modèles
- Acceleo
- MERISE, Diagramme de Gantt
- Urbanisme (système d'information)
- Modèle (informatique)
- Modeling and Analysis of Real Time and Embedded systems
[modifier] Liens externes
- (en) Catégorie UML de l’annuaire dmoz.
- (en) UML.org
- (en) OMG (Object Management Group)
- (en) UML Jokes
- (en) UML 2.1.2
- Cours d'UML 2.0 en français par Laurent Audibert
- Tutoriel UML en français par Laurent Piechocki
- Tutoriel UML 2.0 - Diagramme de classes et d'architecture
- Introduction à UML en français
- La F.A.Q UML Les réponses à vos questions sur UML & UML 2.0
[modifier] Bibliographie
- Grady Booch, James Rumbaugh, Ivar Jacobson (2000). Le guide de l'utilisateur UML, ISBN 2212091036
- UML 2 et MDE, Ingénierie des modèles avec études de cas (Franck Barbier) ISBN 9782100495269 Études de cas téléchargeables
- UML 2 et les Design Patterns - Craig Larman (3e édition), ISBN 2744070904
- Martin Fowler et al. (2004). UML 2.0, ISBN 2744017132 : initiation aux aspects essentiels de la notation
- UML 2 - Modéliser une application Web - Pascal Roques, Eyrolles 2007, ISBN 2-212-12136-9
- UML 2 par la pratique - Études de cas et exercices corrigés - Pascal Roques, Eyrolles 2006, ISBN 2-212-12014-1