UML tools for python

Andy Bulka abulka at netspace.net.au
Tue Dec 30 18:43:25 EST 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




More information about the Python-list mailing list