Bonjour,
Je dois réaliser dans le cadre de mon stage chez Code Lutin un outil de
modélisation textuelle de modèles UML.
Voici plus précisément l'intitulé du stage :
Modélisation textuelle de modèle UML et intégration au générateur de
code Eugene :
- Définition d'une représentation textuelle de modèle UML
- Génération des représentations graphiques des représentations textuelles
- Intégration à l'outil de génération de code libre utilisé par
l'entreprise : Eugene
- Développement d'un plugin maven pour intégration à la chaîne de
compilation des projets.
L’intérêt de cet outil serait donc de modéliser rapidement des
diagrammes de classes sans passer par un logiciel de modélisation
graphique (ArgoUML), ainsi que de faciliter la modélisation et
l'évolution des projets sur un svn (commit sur fichier texte et non
binaire).
Dans un premier temps, j'ai donc recherché différents outils de
modélisation textuelle de diagrammes de classes (description textuelle
du diagramme de classes -> image de la représentation du diagramme en
PNG, SVG etc.)
Deux logiciels auront retenu mon attention : ModSL et PlantUML.
Lors de mes tests, je me suis basé sur le diagramme de classe du
logiciel Pollen
sources des test : http://svn.nuiton.org/svn/sandbox/testEugeneUML-YAML/
- ModSL :
Avantages :
- logiciel libre
- développé en Java
- génération d'images PNG
Inconvénients :
- modélisation limitée : un seul type de lien entre les objets
- pas très bien documenté
- plus maintenu depuis 2009
- PlantUML :
Avantages :
- logiciel libre
- projet toujours maintenu
- génération d'images PNG et SVG
- codé en Java
- bien documenté
- possibilité d'optimiser les diagrammes
Inconvénients :
- basé sur Graphviz (codé en C)
J'ai ensuite recherché une syntaxe de modélisation textuelle d'un
diagramme de classe.
Pour cela, je me suis basé sur le langage YAML qui a l'avantage d'avoir
une syntaxe simple et efficace.
Voici deux prototypes de syntaxe de modélisation UML en YAML :
La première syntaxe exploite beaucoup les listes et tableaux du langage
YAML mais a l'inconvénient d’être verbeuse :
voir :
http://svn.nuiton.org/svn/sandbox/testEugeneUML-YAML/testsnakeyaml/uml1.yaml
Cette deuxième syntaxe a l'avantage d’être moins verbeuse :
voir :
http://svn.nuiton.org/svn/sandbox/testEugeneUML-YAML/testsnakeyaml/uml2.yaml
Merci de me donner vos avis sur le projet (plus précisément sur la
syntaxe UML/YAML et les logiciels de modélisation).
Alexis Giraudet
The EUGene team is pleased to announce the eugene-2.6.2 release!
Efficient Universal Generator
Documentation of the project can be found here:
http://maven-site.nuiton.org/eugene
This version improve the simpleBean generator (we can now generate a contract and a default bean implementation,
with also a bean factory to avoid any new instanciation in your code).
You can have a look to project *Tutti* (http://forge.codelutin.com/projects/tutti) which use theses new features.
Changes
-------
Changes in this version include:
New features:
o Can choose a default class to place on generated simple beans (when simple bean has not super bean) Issue: 2644. Thanks to Tony Chemit. Resolved by tchemit.
o Can suffix simple bean generated classes names Issue: 2637. Thanks to Tony Chemit. Resolved by tchemit.
o Can generate beanFactory from simple bean Issue: 2638. Thanks to Tony Chemit. Resolved by tchemit.
o Can generate interface from simple bean Issue: 2639. Thanks to Tony Chemit. Resolved by tchemit.
o Can prefix simple bean generated classes names Issue: 2640. Thanks to Tony Chemit. Resolved by tchemit.
o Can prefix simple bean generated interfaces names Issue: 2641. Thanks to Tony Chemit. Resolved by tchemit.
o Can suffix simple bean generated interfaces names Issue: 2642. Thanks to Tony Chemit. Resolved by tchemit.
o Can choose a default interface to place on generated interface of simple beans (when simple bean has not super bean) Issue: 2643. Thanks to Tony Chemit. Resolved by tchemit.
Fixed Bugs:
o SimpleBean generator does not add abstract modifier if required Issue: 2636. Thanks to Tony Chemit. Resolved by tchemit.
Changes:
o Updates mavenpom to 3.4.8 Issue: 2634. Thanks to Tony Chemit. Resolved by tchemit.
Downloads
---------
For a manual installation, you can download files here:
http://nuiton.org/projects/eugene/files
* eugene-2.6.2-deps.zip - http://nuiton.org/attachments/download/913
* eugene-2.6.2-full.zip - http://nuiton.org/attachments/download/914
Maven artifacts
---------------
Artifacts are deployed in Maven Central Repository
http://repo1.maven.org/maven2/
Find us at
* http://search.maven.org/#artifactdetails|org.nuiton|eugene|2.6.2|jar
Have fun!
-EUGene team