StarUML
« StarUML » est historiquement un produit commercial nommé « Agora Plastic » (conception architecture logiciel via UML, génération automatique des codes sources via la méthode MDA, analyse rapide des codes sources, etc...). En 2005, « Agora Plastic » devient un projet open source renommé en « StarUML ». Voir les liens : http://staruml.sourceforge.net/en/roadmap.php et http://staruml.sourceforge.net/en/about-3.php.
Le produit « StarUML » est un outil de modélisation UML (Unified Modeling Language - http://www.projet-plume.org/ressource/uml) open source qui vient se substituer aux outils payants tels que « IBM Rational Rose » ou « Borland Together » et qui a fait l’objet de mon étude sur les logiciels de « conception – implémentation », étude portant sur l’utilisation d’un logiciel ou d’un plug-in « Eclipse » open source pouvant faire de la modélisation UML ainsi que de l’implémentation Java (avec rétro-ingénierie).
Ce logiciel open source est simple d’utilisation et intuitif pour un débutant. « StarUML » est simple d’installation et consomme peu de ressources système (mémoire ~200 Mo et utilisation CPU faible). Il possède également une documentation (en anglais et en coréen - http://staruml.sourceforge.net/en/documentations.php).
Il supporte la norme UML 2.0.
L’outil propose les diagrammes UML nécessaires à une bonne modélisation. Voir le lien suivant : http://sourceforge.net/project/screenshots.php?gro.... Ce lien donne accès aux « screenshots » des divers diagrammes UML.
Cet outil respecte l’approche MDA (Model Driven Architecture) permettant de générer du code à partir de la modélisation UML (diagramme de classes). « StarUML » peut générer du code C, C++, Java et PHP 5 grâce aux divers plugins le composant.
Seule remarque, avant la génération du code, il faut au préalable avoir inclus le profil adéquat (ex : Java) dans les modèles. Pour cela, on utilise le menu « Model » puis « Profiles » puis on choisit le profil que l’on veut. Il existe un profil pour C, C++, Java et EJB (Enterprise JavaBeans).
« StarUML » peut également générer de façon automatique des diagrammes de classes grâce aux 26 patrons de conception qu’il connaît (3 patterns pour EJB et 23 patterns pour GOF (Gang of Four – ensemble de patrons de conception réutilisables, minimisation des interactions entre les diverses classes) présent dans le repository). Pour cela, il faut utiliser le menu « Apply Patterns » et choisir le pattern que l’on désire utiliser.
Dans les fonctionnalités générales, se trouvent les importations (XMI 1.x, projet Rational Rose et Framework comme Java 2 Enterprise 1.4) et les exportations (XMI 1.x, copie des diagrammes UML au format JPEG, JPG, BMP, WMF et EMF).
Au lancement du logiciel, « StarUML » propose 4 approches prédéfinies (ou patrons) de modélisation : Approche par « vue 4+1 », une approche dite « par défaut », une approche « Rational Rose » et une approche « par composants UML ». L’approche « vue 4+1 » est la plus intéressante car elle fait le lien entre la conception UML et l’implémentation via un cycle en « V ». Chaque diagramme UML correspondra à une étape du cycle en « V » (jusqu’au codage).
On notera que l’approche « par défaut » est amplement suffisante pour initialiser un projet. Elle se décompose comme suit : cas d’utilisation, diagramme de séquences, diagramme de classes, diagramme de déploiement et diagramme d’implémentation (ou de composants). Et s'il manque un diagramme, rien n’empêche de le rajouter (menu « Add Diagram » puis choisir le diagramme à rajouter).
L'autre point fort de « StarUML » est l’ingénierie inversée. A partir d’un diagramme de classes, « StarUML » peut générer soit du code C, C++, Java ou PHP 5 et inversement, à partir du code, « StarUML » peut générer un diagramme de classes.
Autre fonctionnalité, « StarUML » génère une documentation UML au format DOC (à partir de la version « MS Word » installée sur le poste du développeur – utilisation d’un modèle nommé).
NOTA : Pour générer du code PHP 5, il faut télécharger le « template » adéquat au préalable (http://staruml.sourceforge.net/en/templates.php). Celui-ci n’étant pas natif à « StarUML », il doit être installé puis reconnu par le logiciel (voir à la fin du lien : http://staruml.sourceforge.net/en/templates.php).
Cette remarque vaut également pour les « templates » de génération de documentation (Ms Excel, Ms Word, Ms Powerpoint) ou de code (« template » = texte). Toutes les générations (documentation, code) et utilisations de « templates » se font à partir du menu « Tools » puis « StarUML generator ».
« StarUML » propose plusieurs modules complémentaires afin de répondre à certaines exigences telles que SPEM (Sofware Process Engineering MetaModel) pour le développement de logiciels, AML (Agent Modeling Language), etc … Pour une liste complète des modules disponibles : http://staruml.sourceforge.net/en/modules.php.
Pour terminer, une fonctionnalité qui semble fort intéressante est la vérification de la cohérence du modèle UML que l’on conçoit (menu « Model » puis « Verify Model »).
« StarUML » supporte les 3 normes OMG (Object Management Group - http://www.omg.org) suivantes : XMI, UML et MDA.
Pour plus de réponse, voir les liens suivants :
- Norme XMI (XML Metadata Interchange) : http://www.omg.org/technology/documents/modeling_s...
- Norme UML : http://www.omg.org/technology/documents/modeling_s...
- Nome MDA : http://www.omg.org/mda/specs.htm
Il est à noter qu’en supportant XMI, “StarUML” supporte également la recommandation XML (Extensible Markup Language - http://www.projet-plume.org/ressource/format-xml) du W3C.
Le logiciel « StarUML » fonctionne à base de « Add-ins ». La liste complète est accessible via le menu « Tools » puis « Add-ins Manager ». Comme « Add-ins », nous trouvons : XMI Add-in, Java Add-in, Standard Add-in, Generator Add-in, etc …
Ce respect des normes de l’OMG et de la recommandation du consortium W3C en fait un produit sérieux et la possibilité d’ajouter des « Add-ins » en fait un produit évolutif.
« StarUML » a été employé dans un certain nombre de cas d’étude en Corée. Pour plus d’information : http://staruml.sourceforge.net/en/case-study.php.
"StarUML" est utilisé par les étudiants de l'université française d'Egypte (UFE - Laboratoire informatique N°4) : http://portal.ufe.edu.eg/spip/Laboratoire-informat...
Pour ma part, j’ai utilisé ce logiciel dans le cadre de mon stage de fin d’études pour la modélisation de la « gestion des profiles » dans le cadre de l’environnement M2M (machine to machine) du projet ITEA2 « UseNet ».
« StarUML » n’existe que dans l’environnement Windows car il utilise les objets « .COM » (Component Object Model Technologie - http://www.microsoft.com/com/default.mspx).
L’importation XMI 1.x ainsi que l’exportation XMI 1.x sont limitées et anciennes. La nouvelle version est XMI 2.x (le format XMI 1.x est différent du format XMI 2.x).
« StarUML » est développé en « Delphi 7 ». De ce fait, il n’est plus actuellement maintenu et devrait être remplacé par le logiciel « SunUML » (http://sourceforge.net/projects/sunuml/). « SunUML » sera basé sur « StarUML » et est en cours de développement (seule la « sourceforge » est mise en place pour l’instant).
La navigation entre les différentes fenêtres (différents diagrammes UML) est fastidieuse et demande un certain temps d’adaptation. On saute d’une fenêtre à une autre, elles ne sont pas toutes affichées à l’écran en même temps.
« StarUML » ne synchronise pas le code source en temps réel, à l’inverse de « EclipseUML » qui le fait (mais il est payant). La génération du code ainsi que la rétro-ingénierie n’est pas très intuitive, il ne suffit pas de cliquer sur le menu. Pour générer du code, il faut au préalable avoir chargé le profile Java. Pour la rétro-ingénierie, il faut copier au préalable les fichiers Java dans un répertoire donné.
Les stéréotypes proposés sont assez limités mais on peut construire ses propres stéréotypes.
« StarUML » peut être déroutant notamment pour la représentation graphique des éléments d’un diagramme de classes. Par exemple, la représentation d’une interface se fait à l’aide d’un rond et non d’une classe.
Commentaires
Responsable thématique précédent
Cette fiche a d'abord été suivie par le responsable thématique Frédéric Camps. Laurent Pérochon l'a reprise en avril 2013.