Article de reference

Langage de modélisation unifié

Le langage de modélisation unifié ( UML ) est un langage de modélisation visuel orienté objet à usage général qui permet de visualiser l'architecture et la conception d'un systè...

langage de modélisation visuel orienté objet à usage général qui permet de visualiser l'architecture et la conception d'un système, à l'instar d'un plan . UML définit une notation pour 14 types de diagrammes qui se concentrent sur des aspects tels que le comportement, l'interaction et la structure.

UML possède un métamodèle défini par la spécification OMG UML. Ce métamodèle définit les éléments d'un modèle orienté objet, tels que les classes et les propriétés. Il est fondamentalement identique au métamodèle de la programmation orientée objet (POO), mais en POO, il est principalement utilisé à l'exécution pour inspecter et modifier dynamiquement le modèle objet d'une application. Le métamodèle UML fournit un cadre mathématique et formel aux représentations graphiques utilisées dans le langage de modélisation pour décrire un système en cours d'élaboration.

UML a été créé lors de la conférence OOPSLA '95 dans le but de définir un langage standard pour la programmation orientée objet . À l'origine, Grady Booch et James Rumbaugh ont fusionné leurs modèles en un modèle unifié. Par la suite, Rational Software, la société de Booch , a racheté Objectory, la société d'Ivar Jacobson, et a intégré leur modèle à UML. À l'époque, Rational et Objectory étaient deux des acteurs majeurs du petit monde des fournisseurs indépendants d'outils et de méthodes orientés objet. L' Object Management Group (OMG) a ensuite pris en charge UML.

La création d'UML était motivée par la volonté d'uniformiser la diversité des systèmes de notation et des approches de conception logicielle alors en vigueur. En 1997, UML a été adopté comme norme par l' Object Management Group (OMG), qui en assure la gestion depuis. En 2005, l' Organisation internationale de normalisation (ISO) et la Commission électrotechnique internationale (CEI) ont également publié la norme ISO/CEI 19501. Depuis, cette norme est régulièrement mise à jour afin d'intégrer les dernières versions d'UML.

La plupart des développeurs n'utilisent pas UML à proprement parler, mais produisent plutôt des diagrammes plus informels, souvent dessinés à la main. Ces diagrammes incluent cependant fréquemment des éléments d'UML.

le développement logiciel (dans tous les secteurs et domaines) , mais également dans d'autres domaines, notamment pour les processus métier , les fonctions système , les schémas de bases de données , les flux de travail dans les systèmes juridiques, l'électronique médicale , les systèmes de santé et la conception matérielle . L'OMG utilise UML pour définir d'autres produits OMG tels que le cadre d'architecture unifiée (UAF) et le langage de modélisation des systèmes ( SysML ) v1.

UML est conçu pour être utilisé avec de nombreuses méthodes de développement logiciel orientées objet, tant actuelles qu'avec celles utilisées lors de sa création – notamment OMT , la méthode Booch , Objectory et surtout RUP , avec lequel il était initialement prévu d'être utilisé lorsque les travaux ont débuté chez Rational Software. Bien qu'initialement destiné à la documentation de conception orientée objet, UML a été utilisé avec succès dans d'autres contextes, tels que la modélisation des processus métier.

Comme UML n'est pas intrinsèquement lié à un langage de programmation particulier , il peut être utilisé pour modéliser un système indépendamment du langage. Certains outils UML génèrent du code source à partir d'un modèle UML.

Diagrammes

Description des composants d'un système de réservation de voyages

Les diagrammes UML permettent de visualiser des aspects du système tels que :

En plus des éléments syntaxiques (notationnels) à la sémantique bien définie, les diagrammes UML permettent également des commentaires (notes) libres qui expliquent des aspects tels que l'utilisation, les contraintes et les intentions.

Partage

Les modèles UML peuvent être échangés entre les outils UML via le format d'échange de métadonnées XML (XMI).

notation de cardinalité

Comme pour les diagrammes ER de Chen, Bachman et ISO , les modèles de classes sont spécifiés pour utiliser des cardinalités « de type regard croisé » , même si plusieurs auteurs ( Merise [ , Elmasri et Navathe , entre autres ou « de type regard ici » pour les rôles et les cardinalités minimale et maximale. Des recherches récentes (Feinerer et Dullea et al. ) ont montré que la technique « de type regard croisé » utilisée par UML et les diagrammes ER est moins efficace et moins cohérente lorsqu'elle est appliquée à des relations n -aires d'ordre strictement supérieur à 2.

Feinerer affirme : « Des problèmes surviennent si l’on utilise la sémantique de correspondance croisée telle qu’elle est employée pour les associations UML. Hartmann étudie cette situation et montre comment et pourquoi différentes transformations échouent. » et : « Comme nous le verrons dans les pages suivantes, l’interprétation de correspondance croisée introduit plusieurs difficultés qui empêchent l’extension de mécanismes simples des associations binaires aux associations n -aires. »

Artefacts

Composants de manifestation d'artefacts

Un artefact est la « spécification d'une information physique utilisée ou produite par un processus de développement logiciel , ou par le déploiement et l'exploitation d'un système » , y compris les modèles, le code source , les scripts, les exécutables , les tables dans les systèmes de bases de données , les livrables de développement, les documents de conception et les messages électroniques .

Un artefact est l'entité physique déployée sur un nœud . D'autres éléments UML, tels que les classes et les composants, sont d'abord manifestés sous forme d'artefacts, puis des instances de ces artefacts sont déployées. Les artefacts peuvent être composés d'autres artefacts.

Métamodélisation

Illustration de l'installation de méta-objets

L'OMG a développé une architecture de métamodélisation pour définir UML, appelée Meta-Object Facility (MOF). MOF est conçue comme une architecture à quatre couches, comme illustré dans l'image de droite. Elle fournit un méta-méta-modèle au sommet, appelé couche M3. Ce modèle M3 est le langage utilisé par Meta-Object Facility pour construire des métamodèles, appelés modèles M2.

Un exemple de modèle de méta-objet de couche 2 est le métamodèle UML, qui décrit UML lui-même. Ces modèles M2 décrivent des éléments de la couche M1, et donc des modèles M1. Il s'agirait, par exemple, de modèles écrits en UML. Une description d'architecture logicielle pourrait décrire des instances d'exécution du système . La dernière couche est la couche M0 : l'entité du monde réel décrite ou modélisée.

Le métamodèle UML peut être étendu grâce à un mécanisme appelé stéréotypage . Ce mécanisme a été critiqué comme étant insuffisant/non viable par Brian Henderson-Sellers et Cesar Gonzalez-Perez dans « Uses and Abuses of the Stereotype Mechanism in UML 1.x and 2.0 » .

Diagrammes

taxonomie dans l'image.

Hiérarchie des diagrammes UML 2.2, représentée sous forme de diagramme de classes
Hiérarchie des diagrammes UML 2.2, représentée sous forme de diagramme de classes

Diagrammes de structure

Les diagrammes de structure mettent en évidence la structure du système l’architecture logicielle .

Diagrammes de comportement

Les diagrammes de comportement mettent en évidence le comportement d'un système en illustrant les collaborations entre les objets et les changements d'état interne de ces objets. Ils servent à décrire la fonctionnalité d'un système.

Diagramme des composants
  • Diagramme de classes
    Diagramme de classes
  • Diagramme d'activité
    Diagramme d'activité
  • Diagramme de cas d'utilisation
    Diagramme de cas d'utilisation
  • Diagramme de cas d'utilisation
    Diagramme de cas d'utilisation
  • Diagramme de déploiement
    Diagramme de déploiement
  • Adoption

    En 2013, l'UML avait été commercialisé par l'OMG pour de nombreux contextes, mais visait principalement le développement logiciel avec un succès limité.

    Il a parfois été considéré comme une solution miracle en matière de conception , ce qui engendre des problèmes. Le mauvais usage d'UML comprend sa surutilisation (concevoir chaque partie du système avec, ce qui est inutile) et l'hypothèse que les novices peuvent concevoir avec.

    Il est considéré comme un langage volumineux, comportant de nombreuses constructions . Certains (dont Jacobson ) estiment que la taille d'UML entrave son apprentissage et donc son adoption.

    Visual Studio a supprimé la prise en charge d'UML en 2016 en raison de son manque d'utilisation.

    Histoire

    Chronologie et relations des méthodes et notations orientées objet

    UML a évolué depuis la seconde moitié des années 1990 et trouve ses racines dans les méthodes de programmation orientée objet développées à la fin des années 1980 et au début des années 1990. L'image présente une chronologie de l'histoire d'UML et d'autres méthodes et notations de modélisation orientées objet.

    Origine

    Rational Software a recruté James Rumbaugh de General Electric en 1994 et, par la suite, l'entreprise est devenue la source de deux des approches de modélisation orientée objet les plus populaires de l'époque : la technique de modélisation objet (OMT) de Rumbaugh et la méthode de Grady Booch. Ils ont rapidement été rejoints dans leurs efforts par Ivar Jacobson , le créateur de la méthode d'ingénierie logicielle orientée objet (OOSE), qui a intégré Rational en 1995.

    UML 1.x

    UML est initialement basé sur les notations de la méthode Booch , la technique de modélisation objet (OMT) et l'ingénierie logicielle orientée objet (OOSE), qui ont été intégrées dans un seul langage. UML a été développé chez Rational Software en 1994-1995, et son développement ultérieur a été dirigé par cette société jusqu'en 1996.

    Sous la direction technique de Rumbaugh, Jacobson et Booch, un consortium appelé UML Partners a été créé en 1996 afin de finaliser la spécification du langage de modélisation unifié (UML) et de la soumettre à l'Object Management Group (OMG) pour normalisation. Ce partenariat regroupait également d'autres parties intéressées (par exemple HP , DEC , IBM et Microsoft ). Le projet UML 1.0 des UML Partners a été proposé à l'OMG en janvier 1997. Le même mois, les UML Partners ont formé un groupe de travail, présidé par Cris Kobryn et administré par Ed Eykholt, chargé de définir la signification précise des constructions du langage, afin de finaliser la spécification et de l'intégrer aux autres initiatives de normalisation. Le résultat de ces travaux, UML 1.1, a été soumis à l'OMG en août 1997 et adopté par ce dernier en novembre 1997.

    Après la première version, un groupe de travail a été formé pour améliorer le langage, qui a publié plusieurs révisions mineures, 1.3, 1.4 et 1.5.

    Les normes qu’elle a produites (ainsi que la norme originale) ont été jugées ambiguës et incohérentes.

    UML 2

    La révision majeure UML 2.0 a remplacé la version 1.5 en 2005, qui a été développée avec un consortium élargi pour améliorer davantage le langage afin de refléter les nouvelles expériences d'utilisation de ses fonctionnalités.

    Bien que la version 2.1 d'UML n'ait jamais été publiée en tant que spécification officielle, les versions 2.1.1 et 2.1.2 sont apparues en 2007, suivies de la version 2.2 en février 2009. La version 2.3 d'UML a été officiellement publiée en mai 2010. La version 2.4.1 d'UML a été officiellement publiée en août 2011. La version 2.5 d'UML a été publiée en octobre 2012 en tant que version « en cours » et a été officiellement publiée en juin 2015. La version officielle 2.5.1 a été adoptée en décembre 2017.

    La spécification UML 2.x comporte quatre parties :

    • La superstructure qui définit la notation et la sémantique des diagrammes et de leurs éléments modèles
    • L'infrastructure qui définit le métamodèle central sur lequel repose la superstructure
    • Le langage de contraintes d'objets (OCL) permet de définir des règles pour les éléments du modèle.
    • L'échange de diagrammes UML définit comment les mises en page des diagrammes UML 2 sont échangées.

    Jusqu'à UML 2.4.1, les dernières versions de ces normes étaient :

    • Superstructure UML version 2.4.1
    • Infrastructure UML version 2.4.1
    • Version 2.3.1 d'OCL
    • Échange de diagrammes UML version 1.0.

    Depuis la version 2.5, la spécification UML a été simplifiée (sans superstructure ni infrastructure), et les dernières versions de ces normes sont maintenant :

    • Spécification UML 2.5.1
    • Version 2.4 d'OCL

    Il continue d’être mis à jour et amélioré par le groupe de travail de révision, qui résout tout problème lié à la langue.