Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > UML tools for python

Reply
Thread Tools

UML tools for python

 
 
Andy Bulka
Guest
Posts: n/a
 
      12-30-2003
Whilst almost responding to the 'dream project' thread I decided that
this post warranted its own thread. What about a solid UML tool with
round trip functionality for the Python Community?

Some attempts at reverse engineering python are
PyReverse http://www.logilab.org/projects/pyreverse/
PyUt http://pyut.sourceforge.net/
PyNSource http://www.atug.com/andypatterns/pynsource.htm
Boa Constructor http://sourceforge.net/projects/boa-constructor/
IDLE's class browser
PythonWin 's class browser
all of which have their problems and limitations.

E.g. PyUt will hang if it cannot __import__ successfully and its GUI
has no zoom nor scroll etc. PyReverse is hard to use, misses a lot of
basic information and then what do you do with the XML files? - who
will read these? I have to edit them manually to import them into
Enterprise Architect
http://www.sparxsystems.com.au
and the last time I tried, you couldn't import into
Poseidon http://www.gentleware.com/products/index.php4
community edition, which is the better descendant of the free Argo.

Some Java-centric UML tools I believe do export python, though this is
usually very simple and usually broken. For example
Object Domain http://www.objectdomain.com/products/od/overview.do
claims to import python code, but the last I looked, this particular
functionality was fragile.

Potential powerful technology that could be used is
Bicycle Repair Man http://bicyclerepair.sourceforge.net/
a refactoring tool for Python which could be combined with some sort
of Java GUI (with zoom and all those niceties) - since the hard bit of
the problem is parsing python reliably and knowing how to change it /
regenerate it nicely. Bicycle Repair Man already treads deeply in
this territory. Also
PyChecker http://pychecker.sf.net/
walks similar territory.

Ideal tools would look and behave something like
ModelMaker (for Delphi) http://www.modelmakertools.com/
TogetherJ http://www.togethersoft.com/products/index.jsp
where you can work in code or in diagrams and the two are seamlessly
kept in synch. Its truly cool, and I wish I could do these sorts of
things in Python.

Does anybody know of any other work being done in this area?

Do we think that having a solid UML tool with full round trip
facilities plus gorgeous GUI - build specifically for Python is a
worthy goal? Is anybody going to bother to build such a tool for
free?

Andy Bulka
http://www.atug.com/andypatterns
 
Reply With Quote
 
 
 
 
Mathias Waack
Guest
Posts: n/a
 
      12-31-2003
Andy Bulka wrote:

> Do we think that having a solid UML tool with full round trip
> facilities plus gorgeous GUI - build specifically for Python is a
> worthy goal? Is anybody going to bother to build such a tool for
> free?


I'm also looking for such a tool - without much success. But before
someone starts a new project he should better look for ongoing
projects and join one of them. Its better to have only a few living
projects then some dozens of dead projects (the latter seems to be
the common case for most of the open source projects).

Mathias
 
Reply With Quote
 
 
 
 
Rimidalv
Guest
Posts: n/a
 
      01-01-2004
Andy Bulka wrote:
> Whilst almost responding to the 'dream project' thread I decided that
> this post warranted its own thread. What about a solid UML tool with
> round trip functionality for the Python Community?
>
> Some attempts at reverse engineering python are
> PyReverse http://www.logilab.org/projects/pyreverse/
> PyUt http://pyut.sourceforge.net/
> PyNSource http://www.atug.com/andypatterns/pynsource.htm
> Boa Constructor http://sourceforge.net/projects/boa-constructor/
> IDLE's class browser
> PythonWin 's class browser
> all of which have their problems and limitations.
>
> E.g. PyUt will hang if it cannot __import__ successfully and its GUI
> has no zoom nor scroll etc. PyReverse is hard to use, misses a lot of
> basic information and then what do you do with the XML files? - who
> will read these? I have to edit them manually to import them into
> Enterprise Architect
> http://www.sparxsystems.com.au
> and the last time I tried, you couldn't import into
> Poseidon http://www.gentleware.com/products/index.php4
> community edition, which is the better descendant of the free Argo.
>
> Some Java-centric UML tools I believe do export python, though this is
> usually very simple and usually broken. For example
> Object Domain http://www.objectdomain.com/products/od/overview.do
> claims to import python code, but the last I looked, this particular
> functionality was fragile.
>
> Potential powerful technology that could be used is
> Bicycle Repair Man http://bicyclerepair.sourceforge.net/
> a refactoring tool for Python which could be combined with some sort
> of Java GUI (with zoom and all those niceties) - since the hard bit of
> the problem is parsing python reliably and knowing how to change it /
> regenerate it nicely. Bicycle Repair Man already treads deeply in
> this territory. Also
> PyChecker http://pychecker.sf.net/
> walks similar territory.
>
> Ideal tools would look and behave something like
> ModelMaker (for Delphi) http://www.modelmakertools.com/
> TogetherJ http://www.togethersoft.com/products/index.jsp
> where you can work in code or in diagrams and the two are seamlessly
> kept in synch. Its truly cool, and I wish I could do these sorts of
> things in Python.
>
> Does anybody know of any other work being done in this area?
>
> Do we think that having a solid UML tool with full round trip
> facilities plus gorgeous GUI - build specifically for Python is a
> worthy goal? Is anybody going to bother to build such a tool for
> free?
>
> Andy Bulka
> http://www.atug.com/andypatterns

Try Dia http://www.lysator.liu.se/~alla/dia/
also autodia http://droogs.org/autodia/
and if you Google a little i guess that you can find dia2code (sorry
couldn't find url)


 
Reply With Quote
 
Yermat
Guest
Posts: n/a
 
      01-02-2004
"Rimidalv" <> a écrit dans le message de
news:mailman.15.1072980620.12720.python-...
> Andy Bulka wrote:
> > > [...]

> > Andy Bulka
> > http://www.atug.com/andypatterns

> Try Dia http://www.lysator.liu.se/~alla/dia/
> also autodia http://droogs.org/autodia/
> and if you Google a little i guess that you can find dia2code (sorry
> couldn't find url)


Right but there is nothing where you can edit both code and diagram...
The question is which good editor to extend ?
ArgoUml seems good but do you know another one that is quite complete ?
Which one is easiest to extend ?
A program in java should it be extend in Jython ?
Cheers,
Yermat


 
Reply With Quote
 
Alexandre Fayolle
Guest
Posts: n/a
 
      01-05-2004
Le 30-12-2003, Andy Bulka <> a écrit*:
> Whilst almost responding to the 'dream project' thread I decided that
> this post warranted its own thread. What about a solid UML tool with
> round trip functionality for the Python Community?
>
> Some attempts at reverse engineering python are
> PyReverse http://www.logilab.org/projects/pyreverse/

<snip>
> PyReverse is hard to use, misses a lot of
> basic information and then what do you do with the XML files? - who
> will read these? I have to edit them manually to import them into
> Enterprise Architect


Well, I think the first thing you could do if you have specific problems
with any of the tools you mention is getting in touch with the
developers, and try to talk with them. Since we've never heard of your
problems with pyreverse, there's hardly any chance that we will do
anything for you. Logilab's python-project mailing list is waiting for
your posts (http://lists.logilab.org/mailman/lis...ython-projects to
subscribe)



> Do we think that having a solid UML tool with full round trip
> facilities plus gorgeous GUI - build specifically for Python is a
> worthy goal? Is anybody going to bother to build such a tool for
> free?


Now, let's be reasonable. If this what you want (what you really really
want), since this is the OS world, your options are:
* code it yourself and share it with others
* code it with some other people, and share it with others
* commission (i.e. pay) someone else to code it for you, and share it
with others
* wait until someone codes it and shares it with you.

But just saying "all existing tools suck, we (i.e., I) need someone to
build some cool free tool with <big list of features>" won't get you
anywhere.

Happy new year

--
Alexandre Fayolle
LOGILAB, Paris (France).
http://www.logilab.com http://www.logilab.fr http://www.logilab.org
Développement logiciel avancé - Intelligence Artificielle - Formations
 
Reply With Quote
 
Andy Bulka
Guest
Posts: n/a
 
      01-06-2004
Alexandre Fayolle <> wrote in message
> Well, I think the first thing you could do if you have specific problems
> with any of the tools you mention is getting in touch with the
> developers, and try to talk with them. Since we've never heard of your
> problems with pyreverse, there's hardly any chance that we will do
> anything for you.


I *have* reported numerous problems with pyreverse to your mailing
list. Why do you say I haven't? Specifically:

Jun 2003 DOCTYPE XMI directive and MSXML3 parser
Feb 2003 Running the latest version locks up when no -d option
Feb 2003 Pyreverse 0.4.2 requires logilab.common and
optik.OptionParser ?
Dec 2002 Fwd: [Gentleware #12069] Poseidon - version 1.5 XMI import
prob.

and many more before that. And I appreciate you guys responding -
great!

> But just saying "all existing tools suck, we (i.e., I) need someone to
> build some cool free tool with <big list of features>" won't get you
> anywhere.


The purpose of my post was not an idle 'newbie' post - I have been
watching this area for a number of years and have provided the urls in
this thread - partly as a service to the python community and also,
yes, as a bit of a complaint about the limitations of each of the
existing tools.

As for contributing something myself:

- A source forge project I set up quite a while ago but its just an
idea at this stage http://sourceforge.net/projects/pyidea/

- A robust python parser written by me which doesn't rely on the
fragility of __import__ see PyNSource
http://www.atug.com/andypatterns/pynsource.htm

- A Delphi (windows only) GUI front end to PyReverse currently
unreleased

- My post in this thread researching and listing all UML tools for
python that I know. Hopefully people will get ideas from this.

Anyway - ideally I was hoping for a robust discussion by senior Python
people on what they may be using with regards to UML and what their
feelings are about the situation. UML is very important yet there is
no GUI driven two-way tool for python programmers. Surely serious,
larger scale, software development in Python would want to be using
UML as part of the process?

Andy Bulka
http://www.atug.com/andypatterns
 
Reply With Quote
 
Alexandre Fayolle
Guest
Posts: n/a
 
      01-06-2004
Le 06-01-2004, Andy Bulka <> a écrit*:

> I *have* reported numerous problems with pyreverse to your mailing
> list. Why do you say I haven't? Specifically:
>
> Jun 2003 DOCTYPE XMI directive and MSXML3 parser
> Feb 2003 Running the latest version locks up when no -d option
> Feb 2003 Pyreverse 0.4.2 requires logilab.common and
> optik.OptionParser ?
> Dec 2002 Fwd: [Gentleware #12069] Poseidon - version 1.5 XMI import
> prob.
>
> and many more before that. And I appreciate you guys responding -
> great.


Whoops. I realize I had not checked the mailing lists archives
correctly. I apologize.


> Anyway - ideally I was hoping for a robust discussion by senior Python
> people on what they may be using with regards to UML and what their
> feelings are about the situation. UML is very important yet there is
> no GUI driven two-way tool for python programmers. Surely serious,
> larger scale, software development in Python would want to be using
> UML as part of the process?


Well, not necessarily. Of course I can only speek for myself (and a bit
for my company), but my prefered UML modelling tool is a whiteboard,
used in conjunction with Agile Modelling practices
(http://www.agilemodeling.com). And even then I tend to model lightly,
because the projects on which I work are generally fast moving targets,
which means that heavy up front modelling often results in waisted effort.
We found that on demand modelling sessions on the whiteboard to answer
specific questions provided the best results. The code we produce ends
up being refactored very often as requirements change anyway, and
maintaining up to date models costs us too much time.

--
Alexandre Fayolle
LOGILAB, Paris (France).
http://www.logilab.com http://www.logilab.fr http://www.logilab.org
Développement logiciel avancé - Intelligence Artificielle - Formations
 
Reply With Quote
 
Andy Bulka
Guest
Posts: n/a
 
      01-07-2004
Alexandre Fayolle <> wrote in message
> Well, not necessarily. Of course I can only speek for myself (and a bit
> for my company), but my prefered UML modelling tool is a whiteboard,
> used in conjunction with Agile Modelling practices
> (http://www.agilemodeling.com). And even then I tend to model lightly,
> because the projects on which I work are generally fast moving targets,
> which means that heavy up front modelling often results in waisted effort.


Thanks for sharing how you work with regards to UML.

I too use many Agile and XP practices - UML tends to get used in
initial designs and in especially when communicating between
programmers. Some long term documentation of important sub-systems
exists in UML too.

> We found that on demand modelling sessions on the whiteboard to answer
> specific questions provided the best results. The code we produce ends
> up being refactored very often as requirements change anyway, and
> maintaining up to date models costs us too much time.


If we had two-way tools for Python, then maintaining your models would
not take up any time!

For example, when I used to use Delphi (object pascal) a lot, I had a
two way tool called ModelMaker http://www.modelmakertools.com. I used
to do some modelling in UML, then switch to coding and compiling, then
back to UML, then back to coding and refactoring. Delphi + ModelMaker
cooperated seamlessly so that the UML was always up to date, as was
the code. It was a dream come true. I always had UML diagrams of
everything, and they never went out of date.

TogetherJ http://www.togethersoft.com/products/index.jsp also works
like this.

P.S. Ideally such a tool would be free, but I would happily pay for
such a tool too. E.g. If Borland built something like PyBuilder - a
rock and roll solid IDE with GUI layout tools, refactoring support and
UML - I would certainly lay down my cash.

Andy Bulka
http://www.atug.com/andypatterns
 
Reply With Quote
 
matuschka matuschka is offline
Junior Member
Join Date: Mar 2008
Posts: 2
 
      03-13-2008
Tyr Eclipse-PyUML. It can

* create UML class diagrams
* read and write/modify Python Code (Roundtrip)
* does live validation to inform the user how the diagram will be transformed to code
* UML Views

It is located at

http://sourceforge.net/projects/eclipse-pyuml

Comments welcome!
Martin
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
free tools for UML-like visualisation? AK Java 2 05-09-2006 10:55 AM
[OT] "UML for Java Programmers" or "UML Distilled" Rogue Chameleon Java 0 10-18-2004 02:27 PM
[OT] UML question / UML newsgroup Stefan Siegl Java 0 09-06-2004 08:40 AM
UML Modeling tools shalafi ASP .Net 4 06-24-2004 10:38 AM
UML -> Java Tools hh Java 3 08-01-2003 02:24 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57