UML: Not dead yet

by Robert Cooper

So this has made the rounds on /.

I will say this about UML: some of us are visual people. As the token Left-Handed guy in the software world, I admit, I see the world in somewhat visual terms. I think some UML is valuable. Class diagrams, obviously. Sequence diagrams, sometimes. Use case diagram, rarely. But this goes to a larger issue with UML:

UML is not a process.

Is RUP dying a miserable death? Yes. I admit, I still think Coad is a demi-god in the OOAD world. Actually, even if you "know" the UML "answers" on the IBM cert exams, you are likely overly ceremonial. However, if UML is suffering it is because of this one fact:

People don't pay for tools anymore.

TogetherJ 4.x was amazing. That was the last release before it became redonkulously expensive, but I loved it. Today I use NB. There are a couple of commercial UML tools, but Sun has a free UML tool for NetBeans that round trips. Frankly, the problem with Sun's is the printed output blows, and they certainly don't have the fantastic integrated UML/JavaDoc output that I remember so fondly from Together.

Is UML dead? No. However, I think UML documents have a place in the Agile world that they have lost. The problem is UML-as-Process was never really a great idea. UML-as-documentation in an Agile-Refactoring-CI world: sure. Someone just give us the tooling at a reasonable cost, and UML will come back with a vengeance.

9 Comments

Simon
2008-06-01 02:32:54
I agree entirely. All the full process stuff is largely a waste of time, but as a tool for understanding things, selective use of UML diagrams are pretty damn useful. Entity and sequence diagrams in particular are a great way of explaining a complex business domain, both to train newcomers to a team, and just to keep things clear in the heads of the experienced members.
Yanic
2008-06-01 14:41:29
I agree completely that one of the problems is that people expect all development tools to be free. I've even heard some say they think all UML tools should be free because UML is a commodity.


Well, as far as UML tools go I think you get what you pay for at the moment.


None of the free alternatives had what I was looking for, so I created my own. It only does sequence diagrams (since that was the area in which I found current tools especially lacking), but I think it does it in an innovative way. It is however harder than I thought to find people willing to pay for it, no matter how much time it will save them when compared to other tools.

Paul
2008-06-04 15:05:21
UML is a big part of the Sun Certified Enterprise Architect exam (SCEA) so its still taken seriously by Sun and in the Enterprise in general.
I recently started using StarUML, it supported round tripping in Java, C# and C++; supports all diagrams in UML 2.0, outputs Word documents based on templates and has a decent UI. Its Open Source, the only downside is that it is Windows only at present. Its worth a look.
Garidan
2008-06-05 07:07:50
I found sparxsystems tool a good one, and prices are very low: http://www.sparxsystems.com/products/ea/purchase.html
I see UML for what it is: a language to express ideas.
Sometimes you use it to explain the project to a customer, sometimes to document part of a system.
UML is not dead, but projects are getting smaller and smaller even if many, so time for planning and documenting is often sacrificed.
Customers should ask (and pay) for a documented system, but often they just want a system that works, until time passes, developers change and nobody knows what and how is going on.


eXe
2008-06-11 05:25:14
I don't think so. UML it's pretty alive, and RUP its a process who tells you what stands the diagrams for.
This is important, its key. UML its the basic blue print for software engeenering, i think it's not going to die.
Say so its a little out of scope. Not the whole world works with "agile" development, specially banks.
And you can talk about java, but there are others technologies too, who needs a proper language for ideas interchange.
Personally, i believe that UML its perfect for defining what we are going to do. And in projects that you need to delegate stands the flag.
Taylor
2008-06-16 06:48:13
Peter Coad? I agree 100%. Enjoyed his short book on OOP, very easy to read and understand.
Karl
2008-06-18 17:00:35
Sparx EA rocks. Anyone that even suggests UML is dead is too low level, and should be kept in the dungeon where they belong. But I can understand how a picture representing 1000 lines of code might be over someone's head.


RUP? Yeah, just asking for analysis paralysis.

Stephan
2008-07-29 07:36:53
I don't really think that the price is the reason for not using a UML tool in professional software development - for private and/or non commercial development it might fit. But every half-decent person would agree that if a development staff of certain size can save months of development time with a tool, it's worth any price. For me the main reason of UML seems to die is that the tools (and UML it self for that matter) did not hold what they've promised. Developers expected a new fluffy world of software that almost implemented itself when the UML diagrams where only exact enough. But that didn't happen. It still was work and sometimes even more work than before because they where forced to document what they have just implemented... yuck...


But never the less I'm happy that some one came up with the point! Thanks for sharing that.


Stephan

Peter
2008-08-01 13:46:44
Diagrams are good for simplifying a real system into an abstract representation. The point was to leave stuff out so that you don't get swamped with complexity. Using UML to get down to code level only serves to turn a great design tool into a development tool.


The real challenge for diagramming is being able to view the important aspects while leaving out the detail. Being "complete" in UML often runs contrary to this; you get huge amounts of detail which don't help you design the system.


UML should be used for high level views in my opinion, rather than trying to be complete.