Which are your favorite UML tools?

H

hg

Anastasios said:
Hello,

I'm working on the light-weight MDA tool pyswarm,
http://pyswarm.sourceforge.net/ (it is about a code-generator for
Python/PostgreSQL-based software. I plan to add support of UML CASE tools
other than the one supported currently.

I would like to learn which UML tools you use (if any), preferrably if it
comes to modeling a Python application. So I'm asking you to tell me the
name of your favorite UML CASE tool(s).

Please also provide the version of the tool you use (and perhaps also the
URL of the project/vendor). If this is not of general interest for this
list you can also reply directly to my email address.

Thank you in advance.

Best regards
Anastasios

umbrello seems to finally have python import support ....

hg
 
A

Anastasios Hatzis

Hello,

I'm working on the light-weight MDA tool pyswarm,
http://pyswarm.sourceforge.net/ (it is about a code-generator for
Python/PostgreSQL-based software. I plan to add support of UML CASE tools
other than the one supported currently.

I would like to learn which UML tools you use (if any), preferrably if it
comes to modeling a Python application. So I'm asking you to tell me the name
of your favorite UML CASE tool(s).

Please also provide the version of the tool you use (and perhaps also the URL
of the project/vendor). If this is not of general interest for this list you
can also reply directly to my email address.

Thank you in advance.

Best regards
Anastasios
 
B

Bruno Desthuilliers

Anastasios Hatzis a écrit :
Hello,

I'm working on the light-weight MDA tool pyswarm,
http://pyswarm.sourceforge.net/ (it is about a code-generator for
Python/PostgreSQL-based software. I plan to add support of UML CASE tools
other than the one supported currently.

I would like to learn which UML tools you use (if any),

Any piece of paper and anything that can be used to write on it.
preferrably if it
comes to modeling a Python application.

I stll wait for UML to be able to describe common hi-level dynamic
languages idioms and patterns without requiring more space and time than
source code.
 
R

Russell E. Owen

Bruno Desthuilliers said:
Anastasios Hatzis a écrit :

Any piece of paper and anything that can be used to write on it.


I stll wait for UML to be able to describe common hi-level dynamic
languages idioms and patterns without requiring more space and time than
source code.

I am inclined to agree, though my experience is limited. I work on a
project that is trying to model all its software using Enterprise
Architect. EA has some nice features, but overall I find it clumsy and
frustrating.

Some problems are intrinsic to UML (for instance it has no concept of
linking use case information to other elements). And I don't know of any
way to model functions (only classes).

Others are EA's fault. For instance it is very slow and clumsy to add or
edit lists of items (such as class methods or database fields). Also,
shared development is a pain because there is no concurrent version
control (it uses CVS to keep track of revisions, but not in a concurrent
way; checking out a package locks out everybody else).

I tried using a competing product but the interporability was terrible.
Which brings up another point: it is likely the original poster would
need to do a lot of work for each CASE tool supported.

-- Russell
 
M

Marc 'BlackJack' Rintsch

Russell E. Owen said:
Some problems are intrinsic to UML (for instance it has no concept of
linking use case information to other elements). And I don't know of any
way to model functions (only classes).

Just model modules as classes and functions as static methods of the
module's class. Modules are objects too and can be seen as singletons.

Ciao,
Marc 'BlackJack' Rintsch
 
A

Anastasios Hatzis

Anastasios Hatzis a écrit :

Any piece of paper and anything that can be used to write on it.

Maybe importing paper-based UML into a MDA tool would be easier than the XMI
interoperability nightmare I'm facing ;)
I stll wait for UML to be able to describe common hi-level dynamic
languages idioms and patterns without requiring more space and time than
source code.

Do you have an example for what you mean? As I understand Python itself is
already pretty abstract compared to other languages and platforms where UML
and also MDA are -for good reasons- popular. I think it depends on the
complexity of a Python software if it would be worth to add another
abstraction layer. UML and especially MDA are adding their own complexity
which has to be compensated by the benefits of the additional abstraction.

BTW, I don't know if UML is the appropriate notation (or model level) to
describe high level dynamic languages' idioms and patterns. Two days ago I
learned of a research project that uses Essential Meta Object Facility (MOF
is the meta-meta model of UML) to model their own Python language with
extensions or modifications of regular Python to build domain specific
languages. Modules in these special Python dialects can be compiled and
executed by a normal Python interpreter. I was pretty impressed although I
didn't understand all the details how it works. These things are beyound my
current skills. :)

Best regards,
Anastasios
 
A

Anastasios Hatzis

I am inclined to agree, though my experience is limited. I work on a
project that is trying to model all its software using Enterprise
Architect. EA has some nice features, but overall I find it clumsy and
frustrating.

Some problems are intrinsic to UML (for instance it has no concept of
linking use case information to other elements). And I don't know of any
way to model functions (only classes).

Others are EA's fault. For instance it is very slow and clumsy to add or
edit lists of items (such as class methods or database fields). Also,
shared development is a pain because there is no concurrent version
control (it uses CVS to keep track of revisions, but not in a concurrent
way; checking out a package locks out everybody else).

Version control of UML models is a tough issue, given the dependencies between
models and thinking of visualization of differences between two models. So
far my tool only uses one model in one single XMI file, but I have to change
this especially since I want to ease the re-use of components between
projects.
I tried using a competing product but the interporability was terrible.
Which brings up another point: it is likely the original poster would
need to do a lot of work for each CASE tool supported.

Unfortunetaly you are too right! :)) Interoperability via XMI is a nightmare I
don't want to dream anymore. For example, in the recent years it would have
been much easier to use MagicDraw's OpenAPI with Jython to access models
instead of importing its XMI files. The one thing is that MOF, UML and XMI
are developing way too fast, so there are many tools but chance is little
that they are based on the same standard versions. Additionally I don't know
one tool which fully implements the corresponding standard specifications.
Not a big surprise since the specifications are really complex and extensive.
So, supporting one specific XMI format of one UML tool is not that
complicated (especially since not all features are needed). But I have still
a hard time thinking about an appropriate mapping between all these different
standard versions and the differences how they are implemented in the tools.
Especially since I want to keep these differences away from the normal tool
user. Maybe it will be possible, at least as some compromise. The future will
show.

Best regards,
Anastasios
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top