Petit outil UML

Publié le 06/09/2008

Je vous ai parlé de MeriseAcide, un petit outil bien cool qui permet de générer des graph “merise” avec une syntaxe simple. En me basant sur cette idée, et sur une page que j’ai lut ici http://www.ffnn.nl/pages/articles/media/uml-diagrams-using-graphviz-dot.php je me suis codé un petit script Perl qui génère un diagramme uml rapidement.

Le script est absolument imaintenable, j’en suis conscient, l’idée était de voir ce que pouvait donner graphiz avec un parsing Perl… Bref. Voici un exemple de code que j’envois à mon script:

#declarations
[Person::Base]
//Personne de base
+ login(): bool
+ logout(): void
+ pasword: string

[Person::Physique]
//Personne physique, existante
//peut donc avoir un nom et un prénom...
+ name: string
+ surname: string
+ birthdate: timestamp
+ mail: string

[Person::Morale]
//Entreprise, société, association...
+ name: string
+ siret: string


[Auth::Connection]
//Classe de connection
+ login(username: string, password: string) : bool
+ logout: void;


[Auth::CredentialHandler]
//classe de gestion de droit
+ path: string
+ level: int
+ assert(): void (tringger exception)
+ test(): bool

#héritage et associations...
Physique-> Base
Morale -> Base

#la classe de base peut implémenter une connection ou 
#un handler de droit...
Base --> Connection
Base --> CredentialHandler

Mon script s’utilise de cette manière: gtu.pl fichier.gtu [type]… type étant “png, pdf ou svg”. Si vous utilisez png ou pdf, mon script tente d’ouvrire le fichier avec “eog” et “evince”. Dans tous les cas, un fichier est créé dans le répertoire où se trouve votre fichier source .gtu.

Voici un exemple de ce que j’ai généré en png avec ./gtu.pl base.gtu png:

Marrant n’est-ce pas ? Bref, si vous voulez jouer avec mon script, il est ici: http://www.metal3d.org/tools/gtu.pl, copiez le quelque part, rendez-le exécutable chmod +x gtu.pl et amusez vous :)

comments powered by Disqus