UML tools for python

Discussion in 'Python' started by Andy Bulka, Dec 30, 2003.

  1. Andy Bulka

    Andy Bulka Guest

    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
     
    Andy Bulka, Dec 30, 2003
    #1
    1. Advertising

  2. 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
     
    Mathias Waack, Dec 31, 2003
    #2
    1. Advertising

  3. Andy Bulka

    Rimidalv Guest

    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)
     
    Rimidalv, Jan 1, 2004
    #3
  4. Andy Bulka

    Yermat Guest

    "Rimidalv" <> a écrit dans le message de
    news:...
    > 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
     
    Yermat, Jan 2, 2004
    #4
  5. 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/listinfo/python-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
     
    Alexandre Fayolle, Jan 5, 2004
    #5
  6. Andy Bulka

    Andy Bulka Guest

    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
     
    Andy Bulka, Jan 6, 2004
    #6
  7. 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
     
    Alexandre Fayolle, Jan 6, 2004
    #7
  8. Andy Bulka

    Andy Bulka Guest

    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
     
    Andy Bulka, Jan 7, 2004
    #8
  9. Andy Bulka

    matuschka

    Joined:
    Mar 13, 2008
    Messages:
    2
    UML Roundtrip Tool for Python

    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
     
    matuschka, Mar 13, 2008
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. shalafi

    UML Modeling tools

    shalafi, Jun 23, 2004, in forum: ASP .Net
    Replies:
    4
    Views:
    691
    shalafi
    Jun 24, 2004
  2. hh

    UML -> Java Tools

    hh, Jun 30, 2003, in forum: Java
    Replies:
    3
    Views:
    1,179
    Nicolas
    Aug 1, 2003
  3. Stefan Siegl

    [OT] UML question / UML newsgroup

    Stefan Siegl, Sep 6, 2004, in forum: Java
    Replies:
    0
    Views:
    556
    Stefan Siegl
    Sep 6, 2004
  4. Rogue Chameleon
    Replies:
    0
    Views:
    486
    Rogue Chameleon
    Oct 18, 2004
  5. Neil Benn

    UML Tools

    Neil Benn, Jun 4, 2004, in forum: Python
    Replies:
    1
    Views:
    802
    Alan Gauld
    Jun 5, 2004
Loading...

Share This Page