|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
BOUML est une boite à outils UML gratuite récente pour Linux Windows et MacOS X écrite en C++ au dessus de Qt.BOUML est très rapide et peu gourmand en mémoire (voir http://bouml.free.fr/index_benchmark.html), et le reverse Java de l'ensemble des sources d'une JDK (java, javax, com ...) ne lui fait pas peur ! BOUML est composé du modeleur lui meme, et d'une série de programmes externes (appelés plug-out) pouvant etre écrits en C++ ou en Java (pas en Visual Basic, ouf !). N'importe quel utilisateur peux écrire un plug-out réalisant par exemple son design pattern favori, l'API fournie réalisant les échanges nécessaires avec le modeleur. Un plug-out étant un programme comme un autre est bien-sur défini avec BOUML. Les principaux plug-out contenus dans BOUML sont actuellement :
BOUML et sa documentation sont disponibles sur http://bouml.free.fr Joyeuse modélisation |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 4 ![]() |
Hi
I have a little question concerning the code generation of bouml. As I understood the code generation facility in the "Java" tab of an association, there is no possibility to get the opposite roles name, type, multiplicity and so on. Is this right or did I overlook something? I want to know this, because I want to implement e.g. a bidirectional 1:1 association in such a way: Code :
|
||
|
|
00
|
|
|
#4 | |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
Hi
Citation:
Example : bidir_diag.PNG bidir_edit1.PNG bidir_edit2.PNG Bruno |
|
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 4 ![]() |
Citation:
It's right, that in you're example, the members T1.t2 and T2.t1 are correctly generated in each class. But, there's no possibility (if I didn't overlook something) to navigate the association to the other end. If you take a closer look to the example source code from me, you see in the set-method, that one instance of an object automatically registers itself to the associated object. In your case of T1.t2 and T2.t1, my version of the setter-method would look something like this: Code :
And my question is simply: is my assumption right or did I overlook something concerning the code generation? |
|||
|
|
00
|
|
|
#6 |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
Bouml can't itself solve your problem : contrarily to you (I Hope
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 4 ![]() |
For sure it works in such a way, since fujaba (fujaba.de) already has generated source files according to that implementation.
You don't need to know history or constructors or so, since you are working directly on already instantiated objects. |
|
|
00
|
|
|
#8 | |||
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
Citation:
anyway you may change your implementation like this to allow to do the association in any order : Code :
The good news is : Bouml is extensible through the plug-outs, this allows you to write something like a design pattern managing bidirectional relations to automatically add the two setX operations with the definition you want |
|||
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 4 ![]() |
Citation:
Sincerely, Stefan |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 6 ![]() |
Bonjour
j'éprouve quelques difficultés à générer du code java. Et ce, principalement sur les nom des méthodes. Par exemple, pour une attribut toto, je souhaite générer les getter et setter suivants getToto() et setToto(), cad avec la premier lettre de l'attribut en majuscule. est-ce possible ? |
|
|
00
|
|
|
#11 | |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
Bonjour,
Citation:
${name} est remplacé par le nom Uml de l'attribut ${Name} est remplacé par le nom Uml capitalisé de l'attribut ${NAME} est remplacé par le nom Uml en majuscule de l'attribut Note : le nom Uml des opérations est toujours get_toto et set_toto ( de même en C++ et Idl sauf contre ordre), mais le code généré pour Java est bien celui voulut, évidemment tu peux aussi changer le nom Uml en getToto et setToto |
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 6 ![]() |
Ok, c'est parfait !
Une deuxième question pour un pb qui me résiste ... comment changer le nom d'une variable dans mon setter ? Dans la fenêtre Edit de mon opération "+o set_Toto" Dans le permier onglet "UML" Dans la partie "parameters", je vois bien le paramètre généré (direction : in / Name : value / Type : xxx) mais comme la cellule "name" est grisé donc je ne peux pas modifier le nom du paramètre en "toto". Est-ce normal ? je vois bien le lien avec la variable {p0} pour la génération, mais je ne vois pas à quel moment je peux jouer dessus ... j'ai peur (enfin, peur, le mot est un peu fort) de ne pas pouvoir renommer le paramètre, ai-je raison ? en tout ca, bravo pour ton soft. C'est tout simplement géant.
|
|
|
00
|
|
|
#13 | ||
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
Citation:
Note 1: si l'attribut ou le role de la relation sur lequel le setter est défini s'appelle value le parametre s'appelera new_value au lieu de value Note 2 : si l'attribut ou le role de la relation sur lequel le setter est défini sont modifiés les getter/setter sont automatiquement modifiés eux aussi ... sauf que si la modification fait passer leur nom à celui du paramètre ce dernier n'est pas modifié Note 3 : il est bien évident que les getter et setter pouraient tout aussi bien être produits pas un plug-out laissant libre choix sur leur definition, mais dans ce cas il faudrait ne pas oublier de remettre à jour leur definition lorsque l'attribut/role de la relation sur lequel ils portent est modifié. Citation:
|
||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 6 ![]() |
après moultes recherches, je donne ma langue au chat
Ou faut-il modifier ou renseigner le BOUML_ID afin de ne plus avoir l'erreur au démarrage ? Que se passera-t-il si plusieurs personnes utilisent le même ID sur le même projet ? sinon une suggestion : Les fenetres de dialogue s'ouvrent en tant que fenêtres indépendantes. Ne sera-t-il pas possible de les reconsidérer en fenêtres-filles de l'appli ? (pour qu'elles soient automatiquement centrées et que le swap entre applications ALT+TAB ne soient pas trop embettant) Bon, je continue à tester ... ... ca ne plante pas et c'est vraiment agréable à utiliser ! J'ai l'impression que ton soft va gagner à etre connu |
|
|
00
|
|
|
#15 | |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 751 ![]() |
Citation:
Pour le succès de BOUML je suis plus mitigé. Je l'utilise essentiellement pour de la documentation car il est vraiment plus rapide que les autres modeleurs. Par contre je ne serais pas contre plus de docs pour faire des plug-outs et rendre mes modèles réalisés avec BOUML exploitable. |
|
|
|
00
|
|
|
#16 | |||
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
Citation:
Citation:
Citation:
Blague à part BOUML est déjà pas mal utilisé et ceci dans le monde entier, tout OS confondu il est téléchargé plus de 130 fois par jour (280 pour la 2.17), la 2.16 a été prise plus de 7200 fois. BOUML est utilisé dans de nombreuses écoles et universités du monde entier, dans des sociétés y compris le NASA Ames Research Center ... bref je ne suis pas d'accord avec toi yann2 Pour le reste il y a déjà un tutoriel in English décrivant complètement comment trier les éléments dans le browser, je vais le traduire en Français et le mettre parmis les tutoriels de developpez.com. Aujourd'hui je commence à traduire le tutoriel sur Bouml lui même et je ferai d'autres tutoriels au fil de l'eau. Sinon il y a un peu de doc sur les plug-outs dans le chapitre plug-outs de la doc de ref, et l'API des plug-outs est auto documentée, pour en avoir une version HTML tu charges le plug-out empty, tu sauves la chose comme il te le demande, puis tu génères la doc HTML à partir de la racine. Je conviens que ce n'est pas parfait, je fais ce que je peux, j'ai par ailleurs un travail, d'autres occupations personnelles ... et une chatte caline ! |
|||
|
|
00
|
|
|
#17 | |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 751 ![]() |
Citation:
En tout cas merci pour le produit. |
|
|
|
00
|
|
|
#18 |
![]() ![]() Matthieu BrucherDéveloppeur HPC Inscription : juillet 2005 Messages : 9 607 ![]() |
Est-ce qu'il est prévu de passer à une nouvelle version de Qt ?
|
|
|
00
|
|
|
#19 | |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 2 969 ![]() |
Citation:
Il y a deux façon de "passer" à Qt 4 :
Bref le jour ou je passerai Bouml en Qt4 cela me prendra pas mal de temps, cela introduira inevitablement des bugs, le tout pour aucune plus value du point de vue des utilisateurs de Bouml et encore là je suis optimiste et supose que cela ne posera pas des problèmes de compatibilité dans son utilisation... En résume je ne suis donc pas démeusurément pressé de le faire ... Pourquoi cette question ? |
|
|
|
00
|
|
|
#20 |
![]() ![]() Matthieu BrucherDéveloppeur HPC Inscription : juillet 2005 Messages : 9 607 ![]() |
Parce que j'aime énormément le look&feel Qt4
C'est vrai que ce n'est pas compatible, mais beaucoup de choses ont été améliorées - par exemple plus de sécurité pour le travail sur les threads -. Si jamais il faut un coup de main pour le portage - en plus, ça pourrait faire l'objet d'un bon tuto de refactoring et Qt |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com