473,765 Members | 2,061 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

UML tools for python

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
Jul 18 '05 #1
7 4447
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
Jul 18 '05 #2
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)
Jul 18 '05 #3
"Rimidalv" <ma**********@n m.ru> a écrit dans le message de
news:ma******** *************** **************@ python.org...
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
Jul 18 '05 #4
Le 30-12-2003, Andy Bulka <ab****@netspac e.net.au> 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
Jul 18 '05 #5
Alexandre Fayolle <al*@calvin.fay auffre.org> 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.OptionPar ser ?
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
Jul 18 '05 #6
Le 06-01-2004, Andy Bulka <ab****@netspac e.net.au> 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.OptionPar ser ?
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
Jul 18 '05 #7
Alexandre Fayolle <al*@calvin.fay auffre.org> 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
Jul 18 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
1763
by: John Benson | last post by:
Hi, I've been experimenting with Lua on my Tandem Himalaya K100 system (a decade-old 4-CPU fault-tolerant server from Tandem/Compaq/HP) because it looked like it was simpler to port than Python. Since I've only got 128 MB per CPU and the system is already loaded with SQL and transaction processing monitor software, it's small footprint was also very attractive. Anyway that's how I got interested in Lua. There has already been some...
81
4730
by: julio | last post by:
Sorry but there is no another way, c# .net and mono are going to rip python, not because python is a bad lenguage, but because is to darn old and it refuses to innovate things, to fix wrong things, just because retarded backwards compatibility and because the python comunity and developers refuses to consider tools as being almost as important as the language itself. What does c# .net has that python doesnt ? (significant features) --...
63
5176
by: Davor | last post by:
Is it possible to write purely procedural code in Python, or the OO constructs in both language and supporting libraries have got so embedded that it's impossible to avoid them? Also, is anyone aware of any scripting language that could be considered as "Python minus OO stuff"? (As you can see I'm completely new to Python and initially believed it's a nice&simple scripting language before seeing all this OO stuff that was added in over...
0
2540
by: fqueirolo | last post by:
Hello all I am trying to install boost.python on my XP box. Boost: 1.33.0 Python: 2.4.2 (Final) MinGw: 4.1.1 I try: D:\Dev\boost_1_33_0\libs\python\build>bjam "--prefix=D:\Dev\boosttarget" "-sTOOLS=mingw"
8
1633
by: Nikola | last post by:
I'm currently learning Python for my own use. I'm considering installing it on a work laptop, knowing that it is non-licensed, distributable software. However, does it access communication ports? I know the company checks their ports regularly for activity. I won't be doing anything very serious; I'm just trying out Python, learning the basics from 'Learning Python' by O'Reilly.
30
2791
by: Stuart Turner | last post by:
Hi Everyone, I'm working hard trying to get Python 'accepted' in the organisation I work for. I'm making some good in-roads. One chap sent me the text below on his views of Python. I wondered if anyone from the group could give me some advice on how to respond / if they had been in a similar position. Any help appreciated, Thanks in advance,
0
977
by: Olivier Langlois | last post by:
Hi, I have tried to install MySQL-python-1.2.1_p2 under Windows XP with Python 2.4.3 and I get some problems. 1- I get this warning when I run setup.py build: C:\tools\Python\lib\distutils\extension.py:133: UserWarning: Unknown Extension options: 'mysql_root' warnings.warn(msg)
0
986
by: George Trojan | last post by:
Is there a known problem with ctypes module on AIX? Google did not help me to find anything. Here is part of the output from "make": building '_ctypes' extension xlc_r -q64 -DNDEBUG -O -I. -I/gpfs/m2/home/wx22gt/tools/src/Python-2.5-cc/./Include -Ibuild/temp.aix-5.3-2.5/libffi/include -Ibuild/temp.aix-5.3-2.5/libffi -I/gpfs/m2/home/wx22gt/tools/src/Python-2.5-cc/Modules/_ctypes/libffi/src -I/u/wx22gt/tools/Python-2.5-cc/include...
0
1341
by: Basha J P M | last post by:
I am beginner in python. I am working through the tutorial examples from http://www.swig.org/ and have run into some problems. I took the following command instructions from the tutorial on swig.org: http://www.swig.org/tutorial.html I have written example.c and example.i as described in the above tutorial. My first attempt at compiling the libraries was this:
0
9568
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9404
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10168
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9959
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9837
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8833
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7381
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
2
3532
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2806
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.