I. Présentation générale▲
I-A. Licence▲
Dans sa version CE (Community Edition), Poseidon est fourni avec une licence par défaut, qui autorise l'utilisation du logiciel à des fins commerciales et pour tout type de projet. Le fichier d'autorisation est présent à la racine du répertoire d'installation (license-keys.txt) et contient un code de hachage.
I-B. Informations▲
La société allemande Gentleware propose ce modélisateur depuis 2000, et a continué de faire évoluer le logiciel en fonction des différentes normes UML successives et spécifications de technologies annexes (XMI) devenues des standards. De par son étroite relation avec l'OMG, Gentleware propose une solution annoncée compatible avec la norme UML 2.0, qui ne sortira que courant 2004.
Nous allons donc faire un tour d'horizon de cet outil de plus en plus utilisé.
I-C. Installation▲
Pour se procurer Poseidon UML, il suffit de le télécharger sur le site de l'éditeur Gentleware (Exécutable Windows, Linux, ZIP Multiplateforme…
Grâce à son exécution dans une machine virtuelle Java, il est portable sur de nombreuses plates-formes (Win95/98/Me/XP/NT/2000, Linux, Unix, MacOsX).
Son téléchargement pour Windows ou Linux (17 Mo) ne vous prendra que quelques minutes en ADSL, mais sera un petit sacrifice en 56 ko :-(.
Pour l'installer, il suffit de décompresser l'archive ZIP/RAR. Il ne vous reste plus qu'à lancer l'application grâce au script présent dans /INSTALL_POSEIDON/bin/ (startPoseidon.bat, startPoseidon.sh, startPoseidonMac.sh). Un assistant d'authentification vous proposera une licence par défaut à utiliser : il vous suffit de valider.
II. Caractéristiques▲
II-A. Interface et ergonomie▲
On avait pu remarquer dans les précédentes versions du logiciel, une certaine lourdeur de l'interface graphique, des ralentissements, des attentes parfois un peu longues. Ces aléas semblent avoir été améliorés dès la version 1.5 et 1.6.
Pour cette version 2.x, l'ergonomie a été revue, notamment du côté des diagrammes (1). Un nouveau look and feel très agréable est ainsi apparu, mais peut parfois paraître obsolète.
On note également l'utilité de :
- La BirdView (2)(vue d'oiseau), qui permet de naviguer plus facilement dans les diagrammes plus complexes ;
- L'ajout des boutons Redo/Undo et Drag and Drop ;
- Modules d'internationalisation (français, anglais, chinois, allemand…) ;
- Éditeur de documentation/JavaDoc particulièrement intéressant (3).
Côté ergonomie, on peut donc saluer Gentleware qui prouve que l'on peut faire de superbes GUI en Java.
II-B. Diagrammes et norme UML▲
Du côté des diagrammes, Poseidon supporte les 9 diagrammes de la norme UML. Néanmoins, les diagrammes d'objets, de composants et de déploiement sont tous rassemblés dans un seul éditeur (« Deployment diagram »), car les éléments de notation graphique sont similaires. Le puriste d'UML trouvera le procédé anormal, mais le professionnel qui connaît l'utilité de chaque diagramme et les désavantages de la notation (trop lourde) ne sera pas réellement choqué du rassemblement.
Sinon pas de remarques particulières pour les diagrammes de cas d'utilisation (Use case), de classes, de séquence, d'activité, je n'ai rien remarqué de particulier. Avis aux testeurs : n'hésitez pas à nous faire connaître vos avis. Les éditeurs d'éléments sont clairs et respectent le paradigme UML (exemple ci-dessous de l'éditeur de classe).
Une autre norme désormais intrinsèque aux outils UML est la possibilité de sauvegarder les diagrammes au format standard XMI (XML MetaData Interchange)XMI 1.2, Ici aussi, Poseidon a opté pour le support de la dernière version, mais accepte de charger également les anciennes versions 1.0 et 1.1.
Vous pouvez donc utiliser les diagrammes réalisés avec Together ou Rational avec Poseidon et inversement.
II-C. Génération de code et reverse engineering▲
Souvent la question essentielle des comparatifs est « quel outil fait quoi », alors qu'à ce stade de maturité de tous les outils UML, la réelle question est « qui le fait le mieux ». La génération de code est un des points essentiels à aborder. Une étude exhaustive de la génération d'un projet industriel en Java ne peut être effectuée dans cet article, car trop fastidieuse et trop longue pour cet article qui se veut de « découverte ».
Ainsi j'ai généré le code Java du projet (package de.amg.statauto) fourni avec Poseidon C.E, en parcourant quelques modélisations hypothétiquement délicates. Rien à signaler, les règles hiérarchiques (héritage extends, implémentation implements), les associations et agrégations sont correctement générées. Pour la génération de code, pas de longueur observée : le code généré est lisible malgré quelques tags javadoc parfois lourds. On regrette qu'une checkbox « Generate Documentation into code » n'existe pas dans les menus de génération.
Dans sa version CE, Poseidon ne génère que du code Java. Mais selon la version de Poseidon un support de C#, SQL DDL, Perl, CORBA IDL, Delphi, ANSI C, C++, XML, PHP4, VB.NET est proposé. Gentleware distribue également une version « Embedded Edition » destinée aux applications embarquées, et propose un framework de développement de générateur de code pour ceux qui souhaitent élargir cette gamme.
II-D. Fonctions utiles▲
De nombreux petits « plus » viennent enrichir cette nouvelle version, notamment le ZoomFactor, l'accès à une croix de suppression lors de la pression de la touche CTRL sur un objet sélectionné (4).
Un regret subsiste : l'impossibilité d'accéder à la fonction d'impression directe et de mise en page des diagrammes dans la version gratuite « Community Edition ».
On se console volontiers de cet aléa lorsque l'on voit la diversité (5) des formats d'exportation disponibles (GIF, PNG, PS, EPS, SVG, JPG).
Un aspect très pratique est la possibilité de visualiser le code (Java) qui sera éventuellement généré (6). L' interaction directe avec le module de rédaction de commentaires/javadoc est tout aussi appréciable. Lors de la création de méthodes (possibilité de créer les accesseurs et mutateurs automatiquement), on peut saisir des blocs de code directement dans le visualisateur de code (avec analyseur syntaxique).
Exemple :
**
*
Represents ...
*
*
@param
_memberNumber
*/
public
void
setMemberNumber
(
String _memberNumber )
{
System.out.println
(
"affectation du numéro de membre"
) // code rajouté dans l'éditeur de source
if
(
_memberNumber !=
""
) // code rajouté dans l'éditeur de source
memberNumber =
_memberNumber;
}
// end setMemberNumber
II-E. Les aspects négatifs▲
Comme cité précédemment, Poseidon est réalisé en Java, et il sera nécessaire de vous équiper d'un minimum de RAM (min 128 Mo) et d'un JDK récent (1.4 min).
On aurait également aimé que d'autres modules soient intégrés en standard dans la version CE, comme l'importation en « reverse-engineering » d'un *.jar, ou encore l'impression directe d'un diagramme que l'on ne peut contourner que par l'export en image puis impression de cette image.
Un autre point négatif est que Gentleware impose, lors de la mise à jour de la version 2.0, le passage à une version payante. Ainsi certaines fonctionnalités de la version CE deviennent inaccessibles dès que vous effectuez un Update, vous obligeant à réinstaller une version antérieure du produit. Espérons que la société allemande révisera cette façon de voir le concept de mise à jour, et dans sa politique commerciale future, laissera une version communautaire de cet outil, car il ne faut pas oublier que c'est cette version « freeware » qui l'a rendue plus populaire.
III. Conclusion▲
En conclusion, Poseidon CE est un outil de génie conceptuel à essayer absolument, et il n'a pas à rougir devant les majors des produits « commerciaux ».
Gentleware nous offre un produit d'excellente qualité pour beaucoup de plates-formes, Windows 98/Me/NT/2000/XP et Linux. La version « Standard Edition » payante n'apporte pas beaucoup de nouvelles fonctionnalités, alors que la version « Enterprise Edition » prévue pour mars 2004 paraît très intéressante. Plugins et supports additionnels sont proposés par Gentleware, mais sont payants ; il est néanmoins possible d'essayer certaines versions de Poseidon comme la « Standard Edition » ou la « Professional Edition », avec des licences temporaires.
Souhaitons simplement que la prochaine version de Poseidon intègre pleinement la norme UML 2.0, le nombre d'outils l'ayant implémenté étant pour le moment très réduit.
Bref, l'architecte d'applications professionnelles tout comme l'analyste programmeur ou l'étudiant ruiné trouveront leur compte dans cet excellent outil.
IV. Quelques Liens▲
- Gentleware - http://www.gentleware.com/
- Poseidon for UML 2.x - http://www.gentleware.com/products/
- NetBeans - http://www.netbeans.org/
- UML 2.0 - https://uml.developpez.com/faq/faqumldeux/
- OMG XMI 1.2 - http://www.omg.org/technology/documents/formal/xmi.htm
- Les autres outils pour UML - https://uml.developpez.com/outils/