Et toujours, Objecteering/UML, basé sur la démarche MDA, vous propose ses générateurs de code C++, Java, Visual Basic, son module metric pour l'audit de modèle, et une intégration avec Eclipse.
À noter que la "personal edition" est gratuite pour usage non commercial.
NdM : côté logiciels libres, Umbrello UML Modeller 1.3.1 et Gaphor 0.7 sont parus en novembre. Liste des fonctionnalités
- Modélisation graphique des 9 diagrammes UML
- Vérification continue ou manuelle des modèles
- Import de modèles depuis Rational Rose
- Import/Export de modèles au format XMI (XML Metadata Interchange) de l'OMG (Object Management Group)
- Génération documentaire en RTF ou HTML
- Modélisation UML des exigences
- Génération de code C++, Java et Visual Basic
- capacité de round-trip (cohérence bi-directionnelle code-modèle)
- Perspective Eclipse ®
- Modélisation et exécution de tests pour java et EJB (junit et cactus)
- Génération CORBA et SQL
- Modélisation de profils UML
- Reverse de composants COM
- Vérification de la qualité de modèles (metrics)
- Échanges de projets entre utilisateurs
- Travail en équipe, multi-projets et multis-reférentiels
- Plugins vers plusieurs outils de contrôles de version tiers
Aller plus loin
- Objecteering (248 clics)
- Page de téléchargement (101 clics)
- Présentation de la version personnelle (37 clics)
- Umbrello UML Modeller (79 clics)
- Gaphor (78 clics)
- ArgoUML (87 clics)
# Enfin !
Posté par chl (site web personnel) . Évalué à 9.
# A quand une version open source ?
Posté par michael_acreall . Évalué à 10.
Code propriétaire.
Utilisation de Ilog views (sur Linux c'est un peu fastidieux).
Difficile de lire le code XMI d'autre modeleur (Mais parait que tout va changer avec UML 2.0 (TM))
On ne peut pas exporter les documents au format OpenOffice (c'est Word ou rtf)
La démarche MDA (TM) suppose de tout gérer dans le "repository" du logiciel et il devient fastidieux de gérer la conf dans Subversion (il y a des plugins pour cvs).
Pas de génération pour python (d'ailleurs si quelqu'un connait un modeleur pour python?)
Par contre le support technique est à la hauteur, et je trouve le modeleur facile à utiliser même s'il n'est pas beau graphiquement.
Les alternatives libres les plus intéressentes que j'ai trouvées sont:
ArgoUML (http://www.argouml.tigris.org(...)) ecrit en java
Umbrello (http://www.umbrello.org(...)) écrit en C++ et utilisant QT
Mais hélas, ils leurs manquent des diagrammes et/ou sont instables.
Peut être que lorsque l'OMG aura sorti un "shema" pour XMI et non une DTD on verra fleurir d'autres alternatives (avec UML 2, l'OMG devrait utiliser SVG pour décrire graphiquement les diagrammes, pour l'instant chaque éditeur fait ce qu'il veut).
[^] # Re: A quand une version open source ?
Posté par vieuxshell (site web personnel) . Évalué à 5.
Même sur des babasses de courses (UW160, 2Go Ram, 3GhzHT) ca rame severe.
Message à caractere informatif: ceci n'est pas un troll.
[^] # Re: A quand une version open source ?
Posté par Stéphane Traumat (site web personnel) . Évalué à 2.
http://about.me/straumat
[^] # Re: A quand une version open source ?
Posté par vieuxshell (site web personnel) . Évalué à -2.
[^] # Re: A quand une version open source ?
Posté par Dian Blue . Évalué à 1.
Les temps d'ouverture de mes fameux diagramme de séquence sont devenus énorme (plus d'une minute), pour rajouter une invocation, il fallait parfois plus de 30 seconde pour la dessiner...
Depuis, je tempère mes commentaires sur la rapidité de Together...
De plus, je regrette que leur politique (suite à leur rachat par Borland) est changée... Avant, les licences éducation/universités étaient gratuites... Depuis, c'est devenu prohibitif... Du coup, on a cessé de l'utiliser...
[^] # Re: A quand une version open source ?
Posté par Pierre Tramonson . Évalué à 2.
(testé sur un 1.6GHz, 1Go RAM, avec des diagrammes d'une vingtaine de classes)
Quelle est la taille de ton diagramme ?
[^] # Re: A quand une version open source ?
Posté par vieuxshell (site web personnel) . Évalué à 1.
~10 classes sur 4 diagrammes.
~15 use cases et 5 acteurs sur 4 diagrammes.
Donc c'est pour ca que je trouve un peut abusé la lenteur du truc (quand y part pas en sucette)
# Le Langage J
Posté par niol (site web personnel) . Évalué à 8.
- Transformations de diagrammes
- Générations de fichiers (documentation, code...)
Ce langage manipule le métamodèle UML du logiciel : c'est le modèle qui dit par exemple qu'une classe a des attributs, des opérations, qu'un classe se trouve dans un package...
http://www.objecteering.com/pdf/doc/us/Metamodel.pdf(...)
On peut ainsi très facilement rajouter une option de menu qui va (ceci est un exemple), pour chaque classe, générer automatiquement les méthodes get et set de chacun des attributs.
Ceci est d'une énorme utilité lorsque l'ont fait des gros modèles. C'est un peu comme d'avoir un sed pour manipuler des fichiers.
Mais on peu aussi faire des choses beaucoup plus compliquées. J'ai vu un plugin qui permettait d'assister au déploiement d'une application CORBA en générant Makefiles et fichiers xml du middleware, avec de jolies interfaces graphiques.
Bon, par contre, c'est pas libre du tout, et tout ce dont je parle ne fait pas partie de la version gratuite (c'est "profile construction" dans le tableau des fonctionalités) http://www.objecteering.com/packaging.php(...) ). En plus, le logiciel n'était (il y a six mois) pas vraiment stable, ni sous Windows, et encore moins sous Linux. Mais même sans beaucoup de stabilité, c'était pour moi le meilleur outil UML, et de loin.
Niveau modélisation, tout est dit plus haut : la vérification de cohérence est pas mal du tout.
Y'a l'équivalent chez les concurants (libres ou non)?
[^] # Re: Le Langage J
Posté par Pierre Tramo . Évalué à 2.
Pour information, les générateurs de codes sont écris en J, ce qui permet à l'utilisateur de les dériver pour "sous-classer" un générateur pour ses propres besoins.
> En plus, le logiciel n'était (il y a six mois) pas vraiment stable, ni sous Windows, et encore moins sous Linux.
Pour utiliser quotidiennement cette 5.3.0 depuis, piou, au moins, il y a eut de très gros progrès de ce point de vue là.
> Y'a l'équivalent chez les concurants (libres ou non)?
Tous outils avancé supporte ce genre de choses. Que ce soit en VBA dans rational rose, ou en Java via l'openAPI de together, chacun de ces outils supporte ce type d'extensions. Et je ne parle pas des outils basés sur le MOF tel arcstyler où on peut aller encore plus loin en modifiant le métamodèle ou en en créant un nouveau.
# UML?
Posté par fielog . Évalué à 7.
Juste une question qui utilise cet outil réelement et en dehors d'un cadre professionnel ?
Pourtant il peu être un formidable outil pour les développeur de libre .
-------
FredP
[^] # Re: UML?
Posté par malin nicolas . Évalué à 6.
tu vas voir sur le site de www.neogia.org
C'est un PGI donc les couches métiers sont générées à partir de diagrammes de classe UML
http://nereide.biz/article.php3?id_article=23(...) pour le français :)
[^] # Re: UML?
Posté par governator . Évalué à 5.
http://uml.sourceforge.net/developers/umbrello-class-diagram.png(...)
A noter également le plugin Omondo pour Eclipse qui est gratuit (mais pas libre malheureusement)
http://www.omondo.com/download/index.html(...)
[^] # Re: UML?
Posté par vieuxshell (site web personnel) . Évalué à 4.
aussi bien professionellement que pour le "loisir"
Bon j'ai pas encore grand chose à montrer donc ca sera "sur parole".
Professionnellement parlant je trouve les Use Case tres interessants pour modeliser un problème et le présenter à l'utilisateur.
Ca permet de se mettre facilement d'accord sur le fonctionnement de l'appli.
Ah mon avis UML permet de mettre facilement l'utilisateur final au centre des préoccupations.
[^] # Re: UML?
Posté par Sylvain Sauvage . Évalué à 6.
- phénomène « use the code, Luke » (manque de documentation, c'est pas drôle de faire la documentation) ;
- le fait que, pour un projet donné, 90% du boulot est fait par 10% des développeurs (formation d'un noyau d'experts, rétention d'information pour conserver le statut d'expert).
et sûrement d'autres...
[^] # Re: UML?
Posté par Fabien Penso (site web personnel, Mastodon) . Évalué à 3.
A quoi sert UML ? En gros ça sert à une personne qui ne connaitrait pas ton projet de le reprendre plus facilement, d'avoir une abstraction du code et de pouvoir rapidement voir le projet à un niveau global. Très pratique dans une boite si il faut te virer, ou autre. Ca sert aussi évidemment à communiquer entre développeurs.
Ceux qui font un projet libre pensent sans doute qu'ils seront toujours les mainteneurs du truc, et qu'il n'y a donc pas besoin de modélisation globale.
De plus, je ne pense pas que ce soit de la rétention volontaire d'informations, je pense que ces développeurs n'utilisent pas UML même pour leur usage personnel (en gros ce n'est pas j'utilise mais je ne donne pas). La plupart doivent se contenter de faire des boites sur un coin de table pour avoir une idée de leur truc, sans le formaliser sur leur ordinateur.
[^] # Re: UML?
Posté par Gabriel . Évalué à 2.
Le code reste le plus souvent le référent dans tout ce qui est documentation, puisque ça au moins c'est synchronisé par rapport au résultat final.
[^] # Re: UML?
Posté par vieuxshell (site web personnel) . Évalué à 2.
Si tu prend la peine de faire un modèle UML de ton appli avant de la codé, on peut imaginé que tu essaye d'en avoir une vision globale.
Parc conséquent, quelque soit l'implémentation, ton modele devrait rester tres proche de ton implémenation (si ce sont les noms de méthodes qui changent ca ne me parait pas trop désynchronisé).
Il faut évidemmment que chaque "boulversement architectural" de l'appli passent par une modification du modele.
[^] # Re: UML?
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: UML?
Posté par thecat . Évalué à 2.
Le but effectivement c'est d'avoir une synchro parfaite intégré dans un editeur et qui permetrait de manipuler ton application "par le haut" avec les diagrames UML ou "par le bas" avec le code source.
Mais bon je n'ai pas encore rencontré l'outil miracle. Bien sûr il y a Eclipse mais pour Java seulement je crois.
[^] # Re: UML?
Posté par Gabriel . Évalué à 3.
Bin oui.. Tu représentes une classe incluse dans une autre par une association ou par un attribut par exemple. De l'uml au langage c'est pas bidirectionnel. De plus, pour le diagramme de classe ça va encore mais moins bien pour les diagrammes dynamiques qui montrent d'état du système ou la communication des classes ou des instances.
Donc en général l'uml peut être utilisé comme une doc ou un croquis, mais - je maintiens, désolé, que le manque de synchronisation code/doc n'aide pas la doc - d'où le pas en avant qu'a été la javadoc.
Autre piste la génération de code à partir d'uml : andromda par ex. C'est une approche d'architecte du projet, tu pars de tes schémas, qui font référence et génèrent un squelette de code, que tu modifies, implémentes, etc.
[^] # Re: UML?
Posté par Jiba (site web personnel) . Évalué à 1.
- Parce que j'ai aussi vite fait de coder que de faire un schéma UML ! (précision : je programme en Python, ce qui explique peut-être la vitesse à laquelle je code).
- De plus, il est facile de voir si un programme est "bon" : il suffit de l'exécuter ; alors qu'il est beaucoup plus difficile de voir une erreur de conception dans un diagramme UML... les rares fois où j'ai commencé par faire la conception en UML puis j'ai codé ensuite, je me suis rendu compte que la conception était foireuse au moment de la coder, pas avant !
- UML correspond en gros aux langages Java/C++, mais d'autres langages ont des possibilités qui ne peuvent pas être représentés en UML (en Python : les closures, les générateurs, la création dynamique de classe ou de fonction, l'ajout d'attributs abitraires dans un objet sans que ce soit prévu au niveau de la classe,...). Après tout UML n'est qu'un langage et il n'a rien d'universel...
Lorsque jutilise UML, c'est uniquement APRES avoir fait le code, par exemple pour illustrer une publi.
[^] # Re: UML?
Posté par Pierre Tramo . Évalué à 1.
C++ est farci de particularité qui posent problèmes. En fait, le seul langage intégralement mappable sur UML doit être IDL...
[^] # Re: UML?
Posté par vieuxshell (site web personnel) . Évalué à 2.
> Parce que j'ai aussi vite fait de coder que de faire un schéma UML
Ca ne permet pas forcément d'accelerer le codage mais d'avoir une architecture mieux foutue (enfin ca dépend du modele) et donc plus évolutive.
> De plus, il est facile de voir si un programme est "bon" : il suffit de l'exécuter ;
C'est quand même un peut réducteur non ?
> UML correspond en gros aux langages Java/C++, mais d'autres langages ont des possibilités qui ne peuvent pas être représentés en UML
Encore une fois, UML (ou tout langage de modélisation) n'a pas qu'une vocation de génération de code. A la limite, quand tu fait ton modele, tu peut même te foutre completement du langage qui va permetre de réaliser l'appli.
[^] # Re: UML?
Posté par Jiba (site web personnel) . Évalué à 3.
Comment implémenter en Java un modèle avec de l'héritage multiple ?
Comment implémenter en Javascript (un langage objet à base de prototype) un modèle avec des classes ?
Comment écrire en UML un modèle avec des classes générées dynamiquement et des des objets de même classe ayant des attributs différents (comme le permet Python par exemple) ?
Comment écrire en UML un modèle tirant parti des possibilités de polymorphisme multiple des multi-méthodes de CLOS ?
Un langage de programmation ça comprend une partie modélisation et une partie algo. UML ne comprend que la partie modélisation, mais ça ne le rend pas universel pour autant : il existe plusieurs façons de modéliser !
[^] # Re: UML?
Posté par TImaniac (site web personnel) . Évalué à 3.
Tu rafines ton modèle pour obtenir un modèle d'implémentation qui tient compte de ces problèmes techniques.
Comment implémenter en Javascript (un langage objet à base de prototype) un modèle avec des classes ?
UML explicite clairement qu'il défini un langage pour parler de concepts objets à base de classes. Si tu prends une fourchette pour manger ta soupe on peut rien faire pour toi :)
Comment écrire en UML un modèle avec des classes générées dynamiquement et des des objets de même classe ayant des attributs différents (comme le permet Python par exemple) ?
Celà n'apporte rien en soit au concept objet, et la manière de représenter ce genre de pratique est de définir un méta-modèle, le python te permettant des alors des raccourci d'implémentation : mais ton méta-modèle est tout à fait représentable en UML.
UML n'est peut être pas parfait et ne permet peut être pas de tout représenté mais il a le mérite d'exister, d'être reconnu, et a un champ d'application assez large pour être qualifié d'universel. Et c'est tout ce qui compte.
[^] # Re: UML?
Posté par Jean-Noël Avila . Évalué à 1.
> Comment implémenter en Java un modèle avec de l'héritage multiple ?
UML est plus large que les langages de développement, il est donc normal de réduire son champ de possibilité, si on sait que le modèle doit être codé dans une langage donné
> Comment implémenter en Javascript (un langage objet à base de prototype) un modèle avec des classes ?
UML le permet. Le modèle ne laisse pas présager des particularités du langage. Et permet même de se créer des patrons spécifiques à celui-ci.
> Comment écrire en UML un modèle avec des classes générées dynamiquement et des des objets de même classe ayant des attributs différents (comme le permet Python par exemple) ?
UML le permet encore. Même si la plupart des introductions à UML sont focalisées sur le couple C++/java et restreignent la vision d'origine d'UML, le langage embrasse les concepts de l'objet, et permet d'exprimer de nombreuses autres méthodes.
> Comment écrire en UML un modèle tirant parti des possibilités de polymorphisme multiple des multi-méthodes de CLOS ?
Connais pas. Mais encore une fois, UML se veut un cadre de base et des règles d'extension permettant de se faire comprendre des autres et si possible, des machines. Donc, il doit bien exister ce qu'il faut pour modéliser un système objet.
[^] # Re: UML?
Posté par TImaniac (site web personnel) . Évalué à 4.
Pareil pour la documentation, c'est de la perte de temps ;)
alors qu'il est beaucoup plus difficile de voir une erreur de conception dans un diagramme UML
UML a été conçu sur la base d'un constat : 80% des êtres humains ont une bien meilleur apréhension spatiale d'un concept, d'où l'idée de diagrammes visuels : à priori compréhensible même par un non-spécialiste en informatique, en faisant un schéma il y a beaucoup plus de chance que quelqu'un d'autre comprenne ta conception et y détecte des incohérences/erreurs. Evidemment si tu prends pas la peine de prendre du recul et de juger ta conception avant de coder...
UML est universel au sens où il est censé être compréhensible par le maximum de développeurs/concepteurs/architectes voir autre-ingénieur et même client.
Pourle problème du mapping avec Python : ce que cites n'apporte pas grand chose au niveau de la conception objet, sauf peut être la génération de code/classe : mais ceci est tout à fait possible en Java par exemple : en UML tu passes au métamodèle et zou. Effectivement celà ne va pas se mapper directement sur du code mais le concept est représenté et la génération dynamique de code est censé être un moyen technique, pas un concept, d'où son absence en UML.
[^] # Re: UML?
Posté par Stéphane Traumat (site web personnel) . Évalué à 4.
http://about.me/straumat
[^] # Re: UML?
Posté par Gabriel . Évalué à 2.
[^] # Re: UML?
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: UML?
Posté par _alex . Évalué à 1.
Je pense qu'il y a aussi un facteur dans le choix d'utiliser UML ou non : c'est le nombre de personnes impliquées dans le projet, et le fait de reprendre du code.
Si on code tout seul dans son coin, voir à quelques personnes; ce que va apporté UML c'est du recul; mais quelques dessins non "standards" peuvent tout aussi bien faire l'affaire, cela dépend du contexte.
Par contre les petites dessins, il y a de forte chance que personne ne les comprennent en dehors de l'équipe sans un texte à coté.
Perso, je n'aime pas trop utiliser ce genre d'outils pour générer mon code, si un IDE intégrait la modification aussi par le haut et par le bas, la oui, je prends. (Note: les quelques fois ou j'ai utiliser Objecteering en version d'essais sous Windows, il plantait sans sauvegarde de mes fichiers)
[^] # Re: UML?
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: UML?
Posté par Gabriel . Évalué à 3.
# précision !
Posté par TazForEver . Évalué à 5.
Avec un titre comme ça, ça aurait éviter à pas mal de monde de cliquer sur cette news.
[^] # Re: précision !
Posté par Pierre Tramo (site web personnel) . Évalué à -1.
Toutafé, ça doit faire au moins, oulah 5 personnes...
[^] # Re: précision !
Posté par Pierre Tramo . Évalué à -1.
[^] # Re: précision !
Posté par Pierre Tramo . Évalué à 0.
# Ah l'UML !
Posté par neveruml . Évalué à 0.
Vous en connaissez beaucoup vous des projets libres qui utilisent de l'UML ? Il y en a très très peu, et pourtant, ils sont Oh combien plus stable que objecteering (en esperant qu'ils ont quand meme utilisé UML pour faire objecteering). Le probleme c'est qu'un joli diagramme UML ne fait pas un bon programme, loin de là. Ca fait juste un argument commercial pour faire croire que le projet est structuré.
Et il se vend ce logiciel ? Parce que bon pour l'avoir dejà utilisé, j'ai jamais vu un logiciel qui plantait autant, qui etait aussi mal foutu (desactiver le Verr-Num pour taper des chiffres, et j'en passe et des meilleures) et aussi moche.
Ils ressortent objecteering sous Linux ... ca me fait bien rire, c'etait pas fait pour ca l'UML non, c'etait pas fait justement pour que le projet soit bien concu dès le départ et qu'il n'y ait pas besoin de le recommencer deux fois ?
Ceux qui veulent faire de l'UML à tout prix ne sont pas de vrais concepteur. Ce sont des theoriciens de l'informatique, mais on n'est pas pret d'avoir un programme qui fonctionne avec ca. Il y a un moment il faut savoir mettre les mains dans le cambouis et coder pour de bon.
/neveruml
[^] # Re: Ah l'UML !
Posté par TImaniac (site web personnel) . Évalué à 4.
Ah oui pour le coup de l'argument commercial : bah oué, un programme avec des diagrammes UML est toujours plus facile à comprendre que le même programme sans le diagramme.
[^] # Re: Ah l'UML !
Posté par Stéphane Traumat (site web personnel) . Évalué à 4.
Je rappellerai l'adage qui dit qu'un schéma est plus parlant qu'un long discours... c'est pareil, mieux vaut un beau diagramme états/transition qu'un texte de 3 pages
http://about.me/straumat
[^] # Re: Ah l'UML !
Posté par TImaniac (site web personnel) . Évalué à 4.
[^] # Re: Ah l'UML !
Posté par Stéphane Traumat (site web personnel) . Évalué à 5.
ce n'est pas parce qu'une technique n'est pas très utilisé qu'elle n'est pas bonne... faut peut etre juste laisser un peu de temps aux choses pour se mettre en place.
http://about.me/straumat
[^] # Re: Ah l'UML !
Posté par Jiba (site web personnel) . Évalué à 2.
[^] # Re: Ah l'UML !
Posté par Stéphane Traumat (site web personnel) . Évalué à 2.
Le problème n'est pas vraiment différent, ce sont des outils "externes" au développement de l'application qui sont très utile pour améliorer la qualité des logiciels.
http://about.me/straumat
[^] # Re: Ah l'UML !
Posté par TImaniac (site web personnel) . Évalué à 2.
# Testé il y a peu
Posté par Miguel Moquillon (site web personnel) . Évalué à 1.
Dommage ... J'avais bien apprécié la version antérieure (qui en version Personal semble plus complet que celle actuelle).
Dommage aussi cette limitation de la distrib supportée : RedHat 9 !
# Un truc a noter
Posté par Olivier MARTIN . Évalué à 0.
[^] # Re: Un truc a noter
Posté par belette . Évalué à 1.
[url] ?
# UML et Eiffel
Posté par Guillaume Vauvert (site web personnel) . Évalué à 2.
Guillaume
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.