This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Feature

Open source UML editors lag proprietary leader

By Irfan Habib on August 29, 2005 (8:00:00 AM)

Share    Print    Comments   

Normally when one decides to contribute to an open source project, the first step is to download the sources and study them. This can be a tedious job, especially if the project is large. It would be more useful if the project leaders would provide a graphical representation of the project, which would enable current contributors to keep an overview of the developing software, and would help potential contributors to see how each part of the software is interconnected with other parts. Most commercial software developers provide such graphical representation, and do so in a standard manner, with the Unified Modeling Language (UML). However, only a minuscule number of projects in SourceForge.net (which boasts of being the largest open source projects repository) describe their software in UML. Part of the reason may be that OSS UML editors are not up to the job.

UML defines diagrams that can describe nearly every aspect of software, from class structures to individual procedural activities to collaboration amongst classes, and even how software eventually is to be deployed.

We will explore the features of the most popular UML editors, looking at four important factors: user interface look and feel, support for code generation and code import, conformance with the latest UML standard, and integration with the environment. We'll compare them with the commercial product Rational Rose, which is the de facto UML editor of choice by commercial software developers.

Rational Rose

Why is Rational Rose the standard for comparison? First, it not only provides an intuitive interface to do UML modeling, it also provides facilities to translate those models to actual source code. A developer, besides being able to conceptualize a whole project in form of class diagrams, can create source code directly, which enhances productivity and saves a lot of the developer's time.

Rational Rose supports code generation for popular programming frameworks on Microsoft Windows, including Microsoft Visual BASIC 6 and Visual C++ 6 (ATL and MFC), the .NET Framework, and even for J2EE and J2SE. It also integrates in their respective IDEs.

Rational Rose can also help refactor or reverse-engineer legacy code, as it allows a developer to import source code written in the above frameworks, make changes to the UML models, and then re-generate the source code. Add a few touches to the generated source, and violà, the new software is ready! It can also reverse-engineer XML document type definitions (DTD) and generate them.

How well do open source UML editors stack up against that intimidating list of capabilities?

Umbrello

Umbrello UML Modeler, which comes with the KDE Desktop, is one of the most feature-rich open source UML editors. It supports almost the entire UML 2.0 specification, the latest revision of the UML standard. It supports code generation for ActionScript, Ada, C++, CORBA IDL, Java, JavaScript, PHP, Perl, Python, SQL, and XMLSchema; however, only the code generation for C++, Java, and Python is truly useful, as these are the only languages which can be used for serious software. It has support for reverse-engineering and code import only for C++ code. The software's user interface is similar to Rational Rose's.

Unlike most open source software, Umbrello comes with complete documentation called the Umbrello handbook. One thing Umbrello lacks, however, is integration with KDE. It has no support for TrollTech Qt, or any KDE technology like Kparts. It does not integrate into KDevelop, which is the standard IDE for KDE. It is a standalone program, and has its own format for saving UML models, which is not compatible with the formats of other open source UML editors or Rational Rose, which is a huge drawback.

ArgoUML

ArgoUML is a Java-based UML editor, so it doesn't target any single desktop environment or platform. ArgoUML is available on every platform for which there is the Java Runtime Environment. The interface of ArgoUML is similar to that of Rational Rose or Umbrello.

One useful feature of ArgoUML is critiques -- the software can offer critiques to your UML diagrams in relation to design issues, which result in better quality diagrams.

ArgoUML support almost the entire UML 2.0 specification. It supports only code generation for Java; it has no import facilities. It also lacks any kind of documentation.

However, ArgoUML is a fast-developing project, and a plethora of plugins and extensions exist for it. For example, there's a plugin for OpenOffice.org that enables you to link UML diagrams to OpenOffice.org documents and easily create documentation for software, and an extension that lets you generate C# code from ArgoUML.

Gaphor and MonoUML

The Gaphor Project plans to be to the GNOME desktop what Umbrello is to KDE. It is in active but early development; it has not yet hit a 1.0 release milestone. Gaphor is the only tool developed for the GNOME desktop that supports most of the UML 2.0 specification, but it has no code generation or import support so far.

MonoUML is part of the Mono framework, and also under active development. It has code generation facilities for C#, reverse engineering facilities, and, in the future, expects to have full integration to the Mono framework.

Conclusion

Besides these four, there are other open source UML editors, but these are the most promising. Open source UML editors, which today try to mimic Rational Rose, need to distinguish themselves by supporting open source technologies such as code generation for GTK, TrollTech Qt, and Kparts, and offer integration with their respective desktop environments. Only with such features will OSS UML editors become widely used in OSS software development. When that happens, open source developers' productivity will increase, as will the quality of their software.

Share    Print    Comments   

Comments

on Open source UML editors lag proprietary leader

Note: Comments are owned by the poster. We are not responsible for their content.

Serious languages - flame war

Posted by: Jacqui Caren on August 29, 2005 05:30 PM
"as these are the only languages which can be used for serious software"

Would you care to elaborate?

Having seen perl used for business critical projects with initial phase budgets of 50 million UKP, I wonder what criteria constitutes "serious".

#

Re:Serious languages - flame war

Posted by: Anonymous Coward on August 29, 2005 08:29 PM
Let's keep the entire quote. Look, you've already spawned two more threads that ran with the same fragment.

It supports code generation for ActionScript, Ada, C++, CORBA IDL, Java, JavaScript, PHP, Perl, Python, SQL, and XMLSchema; however, only the code generation for C++, Java, and Python is truly useful, as these are the only languages which can be used for serious software.

OK, he's wrong about Ada, but that's not very fashionable for new projects. SQL, CORBA IDL, and XMLSchema are industrial strength but they're not general purpose programming languages. JavaScript is not a serious programming language, I'll agree with the author on that. ActionScript is MacroMedia's version of JS, for use with Flash.

As for Perl and PHP, hmm... you could argue it either way. Think of a complex enterprise application which will eventually have 100,000's of LOC and will be maintained for many years... Perl or PHP wouldn't be my choice for the core piece, but they certainly would be excellent choices for the web portal side of it and other server-side, text-intensive tasks.

#

Re:Serious languages - flame war

Posted by: Anonymous Coward on September 01, 2005 03:21 AM
If you knew anything about Perl you wouldn't even compare it to the other languages together with PHP (not even PHP5, although I recognize that now it's a fully-fledged language).

You've probably seen the messy scripts that lurk around the internet since the old Perl4 days. You've probably never even met a good Perl programmer, just the regular Joe that wanted to know what this CGI/Perl was all about and downloaded some crap from Matt's Script Archive.

#

Re(1):Serious languages - flame war

Posted by: Anonymous [ip: 67.70.246.100] on September 14, 2007 07:40 PM
Every language have their strengh
Low constraint language like bash saved me a lot of development time and automate a lot of thing.
Perl is strong for parsing complex file and automate what bash cannot do.
JAVA and c++ allow to develop complex software with good design, c++ is sometimes faster, closer to the low level libraries, Java run on several platform and have a strong standard API.

Php is free, server side and a fast language, allowing quick developments with a lot of support from different open source projects.

You make me laugh fighting that language is better than the other.
You should use what fit your real needs and your knowledge.

If the only tool you have in your box is a hammer, all the problems are a nail.
Get more tools.
[Modified by: Anonymous on September 14, 2007 07:41 PM]

#

Funny

Posted by: Anonymous Coward on August 29, 2005 05:38 PM
" only the code generation for C++, Java, and Python is truly useful, as these are the only languages which can be used for serious software. "

Nice try.

the reason why UML is hardly used in Open Source projects is that UML is not useful for real professionals who work on a system level. UML is fine for business application, large groups etc. but it just is too much overload.

guess why software development models like the V-model are hardly used in OSS projects? Because it is too much bloath which decreases productivity.

#

Re:Funny

Posted by: Anonymous Coward on September 01, 2005 05:14 PM
agreed, had to work with UML for some comp sci classes. Had to use "rational rose" which I will forever call Rat rose.

#

another writer with a hangover ?

Posted by: Anonymous Coward on August 29, 2005 06:10 PM
Oh come on, seriously, if you Mr. writer have ever used UML for anything more than a hello world, you know that for a vast majority of projects over at sf.net that would be a needless overhead. Just use doxygen, for god's sake.

Other than that, your lack of knowledge or seriousness over languages used for serious application development shows enough to dismiss anything you write later on.

#

What about 'dia' and 'autodia'?

Posted by: Anonymous Coward on August 29, 2005 06:15 PM
Dia is a fine UML modeler
<a href="http://www.gnome.org/projects/dia/" title="gnome.org">http://www.gnome.org/projects/dia/</a gnome.org>

It can be used with autoDia
<a href="http://droogs.org/autodia/" title="droogs.org">http://droogs.org/autodia/</a droogs.org>

#

Habib need to get out more

Posted by: Anonymous Coward on August 29, 2005 07:59 PM
What the heck does Habib mean by "C++, Java and Python . . .
are the only languages which can be used for serious software."
Talk about
clueless bigotry! Habib, you need to be whacked a few times with the clue stick.


The strange irony of the UML scene presented is how brittle the design of most of
these projects are. A least three of the projects are inexplicably, intrinsically tangled up with
some particular desktop or computing environment. You would think that a crew who fancied themselves
as OOP hotshots in need of a UML diagrams would actually have a notion of what good Object Oriented
Design entails.


Abstraction and loose coupling are two attributes of OOD which these bumpkins
have completely overlooked. Locking a design to a particular desktop is such a heinous miscue given
all that we have learned about what good OO design entails.
And whadda ya bet that these cowboys have book shelves loaded up with
tomes on the latest "design patterns" and advanced OO techniques. As for Argo lacking any
documentation, well . . . what can one say--I'm speechless. And ironically Argo is the oldest of all the
projects mentioned!

#

Re:Habib need to get out more

Posted by: Anonymous Coward on August 30, 2005 02:36 AM
"A least three of the projects are inexplicably, intrinsically tangled up with some particular desktop or computing environment. You would think that a crew who fancied themselves as OOP hotshots in need of a UML diagrams would actually have a notion of what good Object Oriented Design entails."

Well that's exactly what's needed, a platform specific tool which allows a developer to describe the application in a grpahical manner, enabling him to better visualize the application he is developing.

Rational Rose, is also a Windows-Platform specific tool, and is a success by all standards!. Platform generic tools would be worthless. I would rather use plain old flowcharts instead of procure a tool which allows me to do modelling in a platform generic manner

#

I Agree: Open Source UML is far behind

Posted by: Anonymous Coward on August 29, 2005 09:02 PM
The author is correct with his opinion that open source editors lag Rational Rose,

however I resent the fact that he left out Dia, which is an excellent diagramming tool

#

Why no Rational Rose Linux Port

Posted by: Anonymous Coward on August 29, 2005 09:06 PM
Raitonal has been acquired by IBM, which is a 'staunch' open source supporter, however WHY HASNT IT RELEASED A Linux port of Rational ROSE???

 

#

Re:Why no Rational Rose Linux Port

Posted by: Anonymous Coward on August 29, 2005 09:50 PM
Because Linux users are all freeloaders? Not really, I would guess it's probably the same reasoning why they won't do a Notes client - whatever that may be!

#

Re:Why no Rational Rose Linux Port

Posted by: hanelyp on August 30, 2005 12:02 AM
IBM is in open source for it's own purposes, which is fine as long as it plays by the rules. If it hasn't released a Linux port of Rational ROSE, it's most likely because IBM see's little to gain by that action.

#

Re:Why no Rational Rose Linux Port

Posted by: Anonymous Coward on August 30, 2005 12:03 AM
They're doing better than just porting the Windows product to Linux. They're redeveloping it on an open source, multi-OS platform. The next generation of Rose is built on top of Eclipse.

#

Re:Why no Rational Rose Linux Port

Posted by: Anonymous Coward on August 30, 2005 06:20 AM
There IS a Rose port to Linux and it looks like you can still get it from IBM: <a href="http://www-130.ibm.com/developerworks/rational/products/rose" title="ibm.com">http://www-130.ibm.com/developerworks/rational/pr<nobr>o<wbr></nobr> ducts/rose</a ibm.com>

the problem is its not FREE software.

#

Re:Why no Rational Rose Linux Port

Posted by: Anonymous Coward on August 30, 2005 06:27 PM
AFAIK, the current batch of Rational tools that IBM publishes are based on Eclipse and should run under Linux.

#

UML editor

Posted by: Anonymous Coward on August 29, 2005 10:22 PM
What about Poseidon for UML 3.1 community edition (<a href="http://www.gentleware.com./" title="www.gentleware.com">http://www.gentleware.com./</a www.gentleware.com>

#

Re:UML editor

Posted by: Anonymous Coward on August 30, 2005 02:05 AM
Because Poseidon IS Argo UML, though cleaned up a bit.

#

Re:UML editor

Posted by: Anonymous Coward on September 06, 2005 02:11 AM
poseidon CE is argo uml with most of the stupid usability problems fixed.

#

Get the Point!!!

Posted by: Anonymous Coward on August 30, 2005 02:30 AM
All the 'serious-languages' flame war, misses the point of the writer! The point is this:
Until we don't have 'productivity' tools such as Rational Rose, Linux as a platform will not be taken seriously by ISV's. When no ISV's take notice of Linux, then we will always end up using software's which merely play catch-up with their proprietory counterparts.

Eclipse is a great beginning, but we need more IDE's , UML-code generators, RAD tools, and a lot of Third-party (Ideally Open Sourced) components, upon which ISV's can build on.

#

Re:Get the Point!!!

Posted by: Anonymous Coward on August 30, 2005 03:28 AM
I'm sure all ISVs but MS will gladly use bash, vim, gcc and make as soon as Linux has a market share above 10%. In the server market, this is already the case; and look, all server applications (Oracle etc.) but Microsoft's are available for Linux. It's not a question of tools. It's a question of market share.

#

Rational Software Architect

Posted by: Anonymous Coward on August 30, 2005 03:26 AM
<a href="http://www-306.ibm.com/software/awdtools/architect/swarchitect/" title="ibm.com">RSA</a ibm.com> is based on Eclipse and is replacing Rose. We've looked at it and it is awesome. Btw, have you looked at the Eclipse GMF project. IBM donated loads of stuff from rational for UML 2.0 diagramming. This project looks very good indeed.

Eclipse rocks !! (well, it will when GMF reaches 1.0).

daz

#

Nice, but don't go overboard..

Posted by: Anonymous Coward on August 30, 2005 05:12 AM
Yes, it would be nice if more open-source projects included some form of graphical documentation, rather than just the standard API docs. At work, we have charts on the wall showing the basic structure of the components of our system, and similar visual representations would be useful for complex projects like KDE or Gnome...

Two issues though:

1. UML is over-used. It's a useful tool for providing a graphical representation of a system, but generating code from that representation is rarely anything but problematic, and it's hard to keep code and UML in sync. Complex tools that maintain the state of the model in a database are overkill in almost every case, when a simple diagramming tool is likely sufficient.

2. Rational Rose is the benchmark? Oh dear... certainly, it's the market leader for such tools, but a more sorry excuse for an enterprise tool I'd be hard-pressed to find. A complicated interface, prone to crashing... quite a few people I know favour ArgoUML, rather than using the existing Rose licenses...

#

UML - Ugh...

Posted by: Anonymous Coward on August 30, 2005 05:28 AM
The main purpose of UML is to convince rich project sponsors (military) to pay for software design work at $1000 per page.

If you need to figure out how an existing project works, run the code through Doxygen or an auto flow charter and get on with the job.

#

Re:UML - Ugh...

Posted by: Anonymous Coward on August 31, 2005 11:15 AM
Posseidon baby! Whoo hoo!

<a href="http://www.gentleware.com/" title="gentleware.com">http://www.gentleware.com/</a gentleware.com>

#

What about BOUML?

Posted by: Anonymous Coward on September 01, 2005 11:29 PM
What about BOUML? Aren't we ignoring it?

<a href="http://bouml.free.fr/screenshots.html" title="bouml.free.fr">http://bouml.free.fr/screenshots.html</a bouml.free.fr>

#

Umbrello File Format

Posted by: Anonymous Coward on September 03, 2005 11:32 PM
The Umbrello file format is XMI, the standard for UML. Unfortunatly XMI is a very complex and incomplete standard with lots of different versions making it hard to actually exchange files between different programmes. Nethertheless Umbrello has had a lot of work making it's file format compatible with others programmes and allowing for import of XMI produced by others.

Jonathan Riddell (of Umbrello)

#

Re: Umbrello File Format

Posted by: Anonymous [ip: 130.238.227.184] on August 28, 2007 05:22 PM
Maybe but the editor is so full of bugs and crashes so easily that it is a pain to work with. At least the version I got with Ubuntu. Downloaded the latest and it was full of new totally strange behvaior including some strange bug when selecting stuff and no possibility to move the lines between the boxes which was the greatest thing about the old version...

#

I think it's true. FOSS misses a good case tool.

Posted by: Anonymous Coward on September 05, 2005 06:36 AM
UML is a tool. Like anytool, it is useful in some situations and it is not in others.

I got introduced to it at university and, at first, wanted to destroy it, but after a while using it more and more, I came to find out that it has it's usefulness. While discussing assesments with pear students, I realized how much more productive we got by communicating our initial designs using UML diagrams, even on plain paper.

Some/many open source projects would most certainly gain a lot by producing UML diagrams. It could provide an at-a-glance general idea of the whole project in a matter of a few minutes, instead of going thrue a painful code analysis.

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya