Choix d’un outil de modélisation UML

Issu d’un travail de veille technologique des élèves du module CASI (Conception d’Application pour les Système d’Information) de TELECOM Lille en 2013, module que je coordonne, ce comparatif a l’originalité de proposer une  aide au choix de modeleur UML selon le profil de l’utilisateur.

Merci à Y. BENNANI DOUBLI, L. BLYWEERT, R. LOISELEUX pour leur travail.

UML – Unified Modeling Language

UML est un langage graphique permettant de représentation des concepts de la programmation orientée objet grâce à des diagrammes spécifiques. C’est un langage de modélisation unifié, fruit d’un consensus entre industriels du logiciel et le monde de la recherche.

OMG’s Unified Modeling Language® (UML®) * permet de spécifier, visualiser et documenter les modèles de systèmes logiciels. Grâce aux outils de modélisation UML (ou modeleur UML), vous pouvez analyser les besoins utilisateurs et concevoir vos futures applications en les représentant grâce aux 13 digrammes UML 2.0. UML permet de modéliser n’importe quel type d’applications, déployées sur n’importe quel type d’infrastructure (matériel, système d’exploitation, langage de programmation et réseau). Enfin, UML s’adapte naturellement aux langages de programmation orientés-objet manipulant par exemple des classes, des méthodes… mais il peut être utilisé pour modéliser d’autres langages et environnements non-objets, notamment grâce à son mécanisme d’extension :  les profiles UML.

Critères de choix d’un modeleur UML

Parmi l’offre abondante d’outils de modélisation UML, le choix de l’un d’entre-eux est difficile car ils semblent tous offrir les mêmes services. Le premier critère à respecter est le respect du standard UML. Ces outils introduisent des notations particulières non conformes à UML 2.0 et très peu supportent l’ensemble des différents types de diagrammes définis par le standard. Beaucoup en revanche incluent des outils de génération de code dans différents langages de code (java, C, C++, etc.), des fonctions de reporting et d’autres services qui peuvent être intéressants suivant l’usage visé.

Comparatif des modeleurs UML selon le profil utilisateur

Profil débutant

ArgoUML (Editeur : Tigris.org – http://argouml-fr.tigris.org) est un logiciel libre de création de diagrammes UML. Codé en Java, il est édité sous licence EPL (Eclipse Public License). Il est multilingue, supporte la génération de code et la rétro-ingénierie. Son interface est plutôt agréable, facile d’accès et permet une prise en main rapide. Ce logiciel vous permettra de créer 7 types de diagrammes : cas d’utilisation, classes, séquences, états, collaborations, activités et déploiement.

StarUML 2 (Editeur : Plastic Software – http://staruml.io) est un logiciel de modélisation UML disponible en OpenSource. Via cette plateforme, vous serez en mesure de concevoir une dizaine de types de diagrammes. Il vous sera notamment possible de créer de classes, d’objets, d’activités ou bien de séquences compatibles avec le standard UML 2.0. StarUML est écrit technologies Web (HTML5, CSS, JavaScript). Il est facile d’accès.

UMLStudio (Editeur : PRAGSOFT – http://www.pragsoft.com/) est un outil qui permet de modéliser rapidement et intuitivement. Il permet la génération de documentation et de code dans les langages C++, Java… UML Studio est fourni avec PragScript , un moteur de script intégré qui permet aux utilisateurs finaux d’accéder à l’information tenue par l’outil et l’utiliser pour n’importe quel but. Il permet la création de 5 types de diagrammes UML.

Visual Paradigm for UML (Editeur : Visual Paradigm – http://en.wikipedia.org/wiki/Visual_Paradigm_for_UML) permet d’analyser, de dessiner, de coder, de tester et de déployer. Il permet de dessiner 13 types de diagrammes UML (diagramme de classes, diagramme de cas, diagramme de séquence, schéma de communication, diagramme d’état, diagramme d’activité, diagramme de composants, diagramme de déploiement, diagramme de package, diagramme d’objets, diagramme de structure composite, chronogramme, synoptique d’interaction), de générer le code source à partir de diagrammes et d’élaborer la documentation. Il permet également de réaliser le mapping objet-relationnel automatiquement en partant de vos diagrammes de classes. Note : Visual Paradigm for UML existe aussi en ‘Community Edition’, une version gratuite idéale si vous souhaitez tester le logiciel sans utilisation commerciale, avec un seul diagramme et un watermark.

Dia (Editeur : GNOME GNU Network Object Model – https://projects.gnome.org/dia/) est un logiciel libre de création de diagrammes développé en tant que partie du projet GNOME. Dia est conçu de manière modulaire avec plusieurs paquetages de formes pour des besoins différents : diagramme de flux, diagramme de circuit électrique, diagramme UML, etc. Il est distribué selon les termes de la GNU GPL. Il permet la génération de code en langage C, C++, PHP, Python, SQL… et il permet également la création de 12 types de diagrammes.

Violet UML Editor (Editeur : PLUME – http://alexdp.free.fr/violetumleditor/page.php) permet de créer des diagrammes UML de manières très simples. Parmi les 13 diagrammes UML normalisés, 6 sont disponibles dans Violet : cas d’utilisation, classe, objet, état, activité, séquence. Cet outil n’est pas destiné aux gros projets car il est très léger. Sa principale particularité est sa simplicité d’utilisation car il est centré sur l’essentiel. Il peut être utilisé comme une application indépendante ou comme plugin dans Eclipse.

Umbrello (Open source : Eclipse Public License 1.0 – Editeur : L’équipe Umbrello – http://umbrello.kde.org/) intégré à l’environnement de bureau KDE (voir glossaire). Umbrello permet de créer de manière simple et intuitive un très grand nombre de diagrammes. Avec la possibilité de générer neuf types de diagrammes UML (classe, séquence, déploiement, cas d’utilisation…) et de générer du code en Java, C++, PHP, Python, Ruby, SQL et bien d’autres, cet outil est très polyvalent.

Profil Étudiant ou universitaire

BOUML (Editeur : Bruno Pagès
– http://www.developpez.net/forums/d494031/outils/comparatif-logiciels-uml-libres/) est un outil UML 2 libre. Il propose la création de différents diagramme, le reverse engineering et la génération de code C++, Java, Php, Python et IDL. Cet outil est complet et il convient aux étudiants qui débutent en modélisation UML. En effet, il existe de nombreux tutoriels en français. Je vous le conseille car il est très léger, rapide et très ergonomique. (Il est gratuit dans ses versions antérieures à la v.5)

Objecteering (shareware – Editeur : Objecteering Software
– http://archive.modeliosoft.com/fr/about-fr/modelio-academic-program-fr.html) est un outil de modélisation UML avancé, développé et commercialisé par Objecteering Software. Il offre un support complet d’UML v.2. Il est bien connu pour le support étendu MDA * qu’il fournit, ses fonctionnalités de travail en groupe avancées, ses générateurs de code, et ses paradigmes de synchronisation code-modèle. Il existe également un programme universitaire.

Modelio (shareware –  Editeur : Modeliosoft – http://archive.modeliosoft.com/fr/about-fr/modelio-academic-program-fr.html) est un ensemble d’outils pour la modélisation et la génération de rapports, d’architecture ou de code. Il s’appuie sur Objecteering ci-dessus. Modelio est un outil qu’on utilise souvent dans les universités. D’ailleurs il existe un programme académique Modelio qui permet aux universités de bénéficier de ce logiciel gratuitement. Parmi ses nombreuses fonctionnalités, Modelio apporte : la génération de documentation aux formats HTML et Word ; le support intégral d’UML2.

Profil Salarié d’ESN (Entreprise de Services du Numérique)

Together (Shareware* – Editeur : Borland

– http://www.borland.com/products/together/default.aspx) était au départ composé de trois applications distinctes : Together Developer, Together Designer, et Together Architect. Aujourd’hui, elles ont été réunies dans une seule et même application basée sur Eclipse. Together est d’ailleurs, techniquement parlant, un ensemble de plugins Eclipse. Fonctionnalités offertes : intégration de l’IDE Java, modélisation des données, design patterns de base et personnalisés, modélisation de processus, modèle logique et physique des données avec passage de l’un à l’autre, reconnaissance des design patterns dans le code source. (*  Une version d’évaluation limitée dans le temps est proposée)

Suite Rational (Shareware – Editeur : IBM
– http://www-01.ibm.com/software/rational/uml/products/) couvre un nombre assez impressionnant de langages, les fonctionnalités des logiciels IBM en font une référence. Quelques-une des possibilités offertes : conversion dynamique model-to-code et code-to-model ; UML to Java, C#, C++, EJB, WSDL, XSD, CORBA, SQL… ; Java, C++, .NET to UML.

Visual Paradigm for UML présenté dans le profil Débutant est disponible en quatre versions professionnelles (Enterprise, Professional, Standard et Modeler). (* Une version d’évaluation limitée dans le temps est proposée)

Enterprise Architect (Shareware* – Editeur : SPARX SYSTEMS – http://www.sparxsystems.com/products/ea/index.html) est bien plus qu’un modeleur UML. Enterprise Architect permet de s’interfacer avec les outils de développement IDE Visual Studio ou Eclipse, et même avec Subversion. Il est disponible en 6 versions (Corporate, Professional, Desktop, Ultimate, Systems Engineering et Business and Software Engineering). Il permet, entre autres : la génération/importation de code pour les langages les plus courants et les bases de données relationelles, le Model Driven Architecture, le support de la norme XMI, la génération de la documentation RTF/HTML, la modélisation des processus métiers (BPMN)… (* Une version d’évaluation limitée dans le temps est proposée)

Poseidon for UML (Shareware* – Editeur : gentleware – http://www.gentleware.com/new-poseidon-for-uml-8-0.html) est issu du projet ArgoUML, Poseidon for UML est distribué en différentes éditions : la Community Edition pour débuter ou apprendre UML, la Standard Edition qui ajoute la possibilité de réaliser de la rétro-ingénierie depuis Java, la Professional Edition qui inclut un générateur de code et l’intégration dans Eclipse, la Embedded Editition conçue pour développer un système embarqué avec une optimisation du code en C/C++. (* Une version d’évaluation limitée dans le temps est proposée)

MagicDraw (Shareware* – Editeur : No Magic – http://www.nomagic.com/products/magicdraw.html) supporte l’UML, le SysML, le BPMN et l’UPDM, le tout avec une fonctionnalité de travail en équipe. Il est en effet possible de travailler à distance et à plusieurs sur le même projet. Il permet de faire du round-trip avec J2EE, C#, C++, CORBA IDL, .NET, XML, WSDL et les bases de données. Les points positifs sont la matrice de dépendance intégrée permet de visualiser les relations entre les entités d’un système de grande taille, la traçabilité entre les différents niveaux d’abstraction, la possibilité de visualiser simplement toutes les différences entre deux versions d’un diagramme. (* Une version d’évaluation limitée dans le temps est proposée)

PowerAMC (Shareware* – Editeur : Sybase – http://www.sybase.fr/products/modelingdevelopment/poweramc), commercialisé en France sous le nom de PowerAMC, ce logiciel est appelé PowerDesigner dans sa version internationale. Il permet de gérer avec une facilité déconcertante les différents types de modèle : MCD, MLB (Modèle Libre), MOO, MPD, … (* Une version d’évaluation limitée dans le temps est proposée)

Vous cherchez plutôt un plug-in pour Eclipse

Si votre environnement de travail est déjà configuré sous Eclipse, alors une autre alternative s’offre à vous : les plug-in UML pour Eclipse. Notez bien que certains des logiciels présentés ci-dessus s’interfacent très bien avec Eclipse, mais les suivants sont uniquement utilisable avec Eclipse.

 Profil Chercheur

Modelio abordé dans la section Universitaire intègre la modélisation BPMN * , le support de la modélisation des exigences, du dictionnaire, des règles métier et des objectifs. Il propose également une gamme d’outils permettant, entre autres, la mise en œuvre de l’approche MDA (Model driven architecture). Modelio supporte très bien l’UMl 2 et dispose de tous ses diagrammes sauf les diagrammes de temps

Topcased (Editeur : Consortium – http://www.topcased.org/) est un acronyme pour Toolkit in Open Source for Critical Applications & Systems Development (boîte à outils open source pour le développement d’applications critiques et de systèmes). Topcased offre des fonctionnalités pour l’analyse d’exigences, la modélisation, la simulation de modèles, l’implémentation, les tests, la validation, la rétro-ingénierie, la génération de code, de modèles et de documentation et ainsi que la gestion de projet. Ce qui fait de lui un outil très complet et performant. Il est utilisé par de nombre laboratoire de recherche comme par exemple, la Fédération de Recherche en Informatique et Automatique CNRS FR 2238, l’INSA ou l’Institut de Recherche en Informatique de Toulouse.

UML Designer (Editeur : Obeo – http://marketplace.obeonetwork.com/module/uml)  fournit un support natif et complet d’UML 2. Ainsi en s’intégrant dans Eclipse il fournit tous les outils nécessaires pour travailler avec UML 2. Il permet également la création de ses propres diagrammes ce qui est un facteur important pour une utilisation dans le domaine de la recherche.

Visual Paradigm for UML déjà évoqué dans la section Débutant permet de modéliser en utilisant de nombreux standards différents tel que, l’UML 2.4, SoaML, SysML, ERD, DFD, BPMN 2.0, ArchiMate 2.0. Ce qui le rend très utile pour des personnes utilisant plusieurs de ces standards à la fois. Il est également capable de faire de la retro ingénierie sur du Java et gère le roundtrip en Java et C++.

Profil Freelancer

Open ModelSphere (Editeur : Grandite – http://www.modelsphere.org/fr/) est un outil complet de modélisation de processus, de données et UML. Il comporte des modules permettant de valider l’intégrité de votre architecture et la cohérence de ce que vous établissez, cela permet de gagner du temps dans ses projets, ce qui est un des objectifs en tant que freelance. Il propose également des fonctions de rétro-ingénierie et une architecture en plugins ce qui montre sa grande adaptabilité et puissance. C’est un outil conçu en Java donc multiplateforme et sous licence GPL donc gratuit.

Power AMC évoqué dans la section ESN est un outil cher (entre 2000 et 7000 €) mais permet une modélisation extrêmement complète et performante. Même si ce logiciel est plus adapté à un travail de groupe il ouvre la possibilité à un freelance d’avoir un outil des plus performants sur le marché de par ses fonctions d’analyse ou de partage de données. Il permet la modélisation de données, modélisation de processus métier, conception et rétro-conception. Le tout basé sur la méthode Merise, sortant donc du champs d’UML.

Rhapsody (Editeur : Telelogic racheté par IBM
– http://www-01.ibm.com/software/awdtools/rhapsody/), solution IBM, offre une gestion de la retro ingénierie et gère les langages suivant : C, C++, C#, Ada et Java. Il permet également d’utiliser la fonction de roundtrip en liaison avec un IDE associé. Il propose également une gestion des exigences très utilise pour un développement plus rapide des modèles. Rhapsody s’intègre dans différents IDE (Eclipse, VxWorks workbench) ce qui le rend également très versatile.

Violet UML Editor, cité dans le profil Débutant, est un des éditeurs les plus adapté à une utilisation Freelance non spécialiste. Il est en effet très simple d’utilisation et gratuit. Il produit également les diagrammes les plus utilisés.

Travail de recherche – Equipe CARBON – Labo CRIStAL

VisUML : dans le cadre d’une thèse, l’équipe CARBON dont je fais partie, a développé un plugin (100% gratuit) IntelliJ, Android Studio et Eclipse qui permet à un développeur Java de voir en temps réel, dans une page web, le diagramme de classes des classes ouvertes dans IntelliJ, Android Studio ou Eclipse, et d’avoir également le diagramme de séquences de la méthode courante. Ces diagrammes sont donc à jour en permanence ! En rendant le diagramme de classe (bientôt le diagramme de séquence) interactif, il permet de ciblé en un seul clic sur une classe, une méthode ou un attribut affiche/sélectionne automatiquement le code associé dans l’IDE.

Pour information, Mickaël Duruisseau travaille actuellement sur le diagramme de classes (cf. rubrique « prototypes » du site de Mickaël). Le diagramme de séquences actuel fonctionne, mais une nouvelle version est en cours de réécriture totale et sera mis en ligne en mars 2017. Le plugin est en phase de développement permanent, il y aura encore de nombreuses évolutions d’ici la fin 2017.

N’hésitez pas à tester ce plugin (et d’en parler au maximum de gens autour de vous 🙂 ). N’hésitez pas non plus à nous faire remonter les bugs, mais surtout toutes les améliorations que vous aimeriez avoir. Enfin, si vous travaillez sous Eclipse, merci de nous l’indiquer, et de nous dire si vous aimeriez avoir ce plugin sous Eclipse.

Sources et liens utiles


OMG : L’Object Management Group est une association américaine à but non lucratif créée en 1989 dont l’objectif est de standardiser et promouvoir le modèle objet sous toutes ses formes. L’OMG est notamment à la base des standards UML (Unified Modeling Language), MOF (Meta-Object Facility), CORBA (Common Object Request Broker Architecture) et IDL (Interface Definition Language). L’OMG est aussi à l’origine de la recommandation MDA (Model Driven Architecture) ou ingénierie dirigée par les modèles, avec en particulier le langage standardisé de transformation de modèles QVT (Query/View/Transformation).MDA : La MDA, pour Model-Driven Architecture (Architecture basée sur les modèles), a été conçue afin de séparer les contraintes fonctionnelles des contraintes techniques. MDA se présente sous la forme d’un jeu de standards proches (mais non co-dépendants), utilisés pour créer un modèle et l’affiner jusqu’à obtenir, idéalement, un produit fini, comme du code source. En pratique, on rencontre le plus souvent la MDA en définissant une application avec UML et en générant automatiquement l’exécutable lié, grâce à des générateurs Java, C# ou autre… Ainsi, la proposition de MDA est de définir les fonctionnalités système dans un modèle indépendant de la plate-forme (PIM : Platform Independant Model) à l’aide d’un langage de spécification, et de le traduire en un modèle spécifique à une plate-forme (PSM : Platform Spécific Model), pour enfin générer le code compilable (ou compilé) pour cette plate-forme.
Diagramme BPMN : Les diagrammes BPMN (ou « Business Process Modeling Notation ») supportent la modélisation les processus métiers.Un diagramme BPMN s’articule autour de flux d’activités (les « Tasks » et les « SubProcesses »), associés à des éléments de contrôle de flux (les « Events » et les « Gateways »). Il fait ensuite intervenir des éléments de structurations orientés autour des participants au processus (les « Pools » et les « Lanes »), ainsi que des artéfacts produits et consommés par les activités (les « DataObjects »). Le but principal de BPMN est de fournir une notation qui soit réellement compréhensible par tous les utilisateurs de l’entreprise : les analystes métier qui créent les ébauches initiales des procédures ; les développeurs chargés de la mise en place de la technologie qui va exécuter ces procédures ; les utilisateurs de l’entreprise qui vont gérer et appliquer ces procédures.