Is UML on the way out?

Do *you* use UML?

One of the presenters at QCon (I think it was John Davies) asked the audience whether they used UML 2.0 and only a couple of people raised their hands. I wasn't one of them - I briefly looked at UML 2.0 a while back but I didn't feel compelled enough to use it. This got me thinking, how widespread is the use of UML nowadays?

From my own perspective, here's where I tend to use UML within the context of a bespoke software project.

  • Use case diagram : A high level view of the system functionality and scope.
  • Activity diagrams : A high level view of the business process that is being realised by the software. This is useful for showing parallelism.
  • Class and sequence diagrams : Information about architectural patterns and blueprints (e.g. describing a common implementation pattern). These are typically used by the development team.
  • Component and deployment diagrams : Details about deployable components and how instances of those components will be/are deployed on pieces of hardware.

As I've mentioned before, I tend to go with a just enough approach to the software architecture document, but I do definitely find that UML is useful because you don't have to think about the notation. Having said that, I do use Visio-style block diagrams for representing things like the logical and physical/infrastructure architecture (you can see a simplified version of such a diagram on page 3 in this presentation). I do this for two reasons. First of all, I don't think that UML provides an easy to understand notation for this sort of thing and second, these high-level architecture diagrams are typically distributed to a wider audience, some of who aren't technical and don't understand UML.

So then, is UML on the way out? I'd be interested in your thoughts on the following.

  • What notation do you use for your architecture and design diagrams?
  • Is a standard diagramming notation important to you?
  • How does your audience influence how you create diagrams?
  • If you do use UML, what's your UML tool of choice?


Re: Is UML on the way out?

I am using SysML (wich is based on UML 2.0) and my favorite tool is Sparx Systems Enterprise Architect. But for talking with business stakeholders I'm starting to use sketches in the way Dan Roam is describing in his great book: "The Back of the Napkin".

Re: Is UML on the way out?

I've been using Enterprise Architect (Sparx System) as well. Although recently I've been forced into using Select Component Architect which fares poorly when compared with EA. I find that the UML is used poorly in many places, with little control on how and when it should be used. One of my bug bears is that the UML notation is needlessly complicated and people can waste considerable amounts of time getting things perfect. Simplicity is one of the most important concepts in communicating architecture and unfortunately in many organisations I find that the UML (in the wrong hands) can lead to complexity where none need exist ! Don't get me wrong this isn't and argument against UML but I find that its inherent richness is a classic case of "too much rope and you can hang yourself"

Re: Is UML on the way out?

I'm a fan of UML as a sketch, it's a useful tool for communicating ideas and concepts in a reasonably well understood and 'standard' way. I can't see the point in syntactically correct UML, you may as well just write the code. Boxes and lines are pretty much all you need in my opinion

Re: Is UML on the way out?

+1 for UML as a sketch, but perhaps more specifically, I think Scott Ambler's Agile Modeling is a great way to think about how UML can be used well, without much overhead or pain.

As for your questions:
# We use UML, but jumpstart the process by using a standard template that identifies the simple diagram types we tend to use, and minimizes the total number of UML element types.

# A standard diagramming notation is important to me, because an architecture document, lightweight or not, will have a reasonably diverse audience. That being said, I think the diagram needs to be simply built, and easy to understand regardless of one's experience with UML.

# Absolutely. If your diagrams are only readable to the most "elite" of architects, you've failed on your goal of communicating a design.

# "Enterprise Architect" The project templating offerings are great, and the ability to export a suite of diagrams to .rtf files is great for communicating with a diverse audience.

Re: Is UML on the way out?

I use Magic Draw and UML as a way to share with all the development team
- the architecture of the solution (deployment diagram)
- the domain (class diagram)
- the GUI/action chains(state diagram)
I put all the pictures on a Trac wiki and that helps a lot to set a common ground/knowledge of what we are doing/how.
That works perfectly, expecially if the team is distributed as we are.

Re: Is UML on the way out?

UML is a good way to visualise a system. I'm amazed that there aren't better tools to reverse engineer code into UML diagrams.

Re: Is UML on the way out?

I do sometimes use "mostly UML" diagrams as sketches, but I too don't see the point of syntactically correct UML. In 13+ years I've yet to work in a company where anyone have created fully valid UML diagrams. One of the biggest hindrances for me is that all the tools I've tried have prevented me from bending the rules in ways that matters to me - I often want to add annotations etc. that are not valid but makes sense in my context.

As a result I end up using generic diagramming tools, which makes it far more likely that I will deviate even more. If UML tools are to have a future, they need to provide more value when used to sketch.

I can't see myself ever using a UML tool to generate code. Just won't happen. Going the other way and visualizing code with UML, though, would be valuable if done right - I've yet to see a solution I'd be happy with.

Re: Is UML on the way out?

Whats UML? Don't worry I'm kidding. But in all seriousness since I left uni the only UML diagram I have found useful is a high level class diagram. Even then as Vidar pointed out you always want to bend the rules and turn it into something else.

Re: Is UML on the way out?

I don't believe UML is going out, mayb it's slowing and not everyone uses all the stuff in it. I use it regularly for prototyping or initial design... I use the new netBeans 6 UML modelling tool.. It does what I need UML for. Just some basic idea to the team on how to approach the problem!!

Re: Is UML on the way out?

The only UML diagram I find much use for in real work is the sequence diagram, the one that actually displays the system as it is in life. Writing this sort of diagram actually makes you work through the responsibilities and collaborations between your moving parts.

The all too common class diagram is more like the software dead and pinned out on a dissection board. By itself, it can only be a guess at what the bits actually should do, and could be quite wrong.

As for the other diagrams -- well, the idea is to write code, not draw pretty pictures.

Re: Is UML on the way out?

Let's say it this way. If you don't use UML for the Datamodel-Design of an application theh you are a noob. Beginners in Programming often make the mistakte, that they don't make a design at all. They often start directly with implemenation and run in lot of problems afterwards. UML is not the way out, but RUP(unified process) is!

Re: Is UML on the way out?

Someone who thinks that UML is required for designing the datamodel of an application is the noob. Complex applications needs some level of specs, yes, but UML is not the only alternative, by far. On the contrary I find UML of very little use for specs, because very few of the stakeholders involved tend to understand UML. The worst ones are the ones who think they do.

A spec needs to clearly communicate what it is specifying, and here I find that UML largely either communicate things that are too vague (I've yet to find a case where use case diagrams [as opposed to written use cases which I DO use frequently], have actually been worth the effort for example), or too low level for specifications in most cases (state diagrams for example - they clearly have their place, but more often as documentation than specification, because again most people don't understand them correctly).

Use case diagrams are perhaps the worst ones - I find that invariably when I've had to deal with specs full of use case diagrams, the diagrams cause people to get more confused, not less, about what you are trying to convey. That includes developers, but is most prevalent when dealing with other stakeholders. I can usually convey far more information with a couple of paragraphs of text, and be confident that there is far less room for misinterpretation.

As for specifying the data model itself, I've yet to find a developer that can't just as easily understand a textual description of it. With ORM's becoming more and more commonly used I've also seen an increasing tendency that the developers I work with tend to prefer to see model classes in code rather than diagrams, because it's the same amount of typing (and far less wrestling with poor UML tools), and the latter they can trivially develop in conjunction with a test suite so they know it makes sense. I've also yet to meet in person a developer that didn't strongly hate UML, though probably mostly because the tools they've had to deal with (Rational tools being pretty much at the top of the hate list) are amazingly crappy.

Re: Is UML on the way out?

I wouldn't say it's on the way out, I use UML a lot for software design (mostly for documentation and exploration). The version I'm using is somewhere at 1.5 with the few of the good additions of 2.0 thrown in. I find myself only using three diagram types : class, sequence and statechart diagrams. The tools I use are Visio (with Pavel Hruby's template though!) for class and statechart diagrams. And Trace Modeler for sequence diagrams of course ;o)

Re: Is UML on the way out?

If you're only using UML to sketch your software, why not just use a concept mapping tool like VUE (vue.tufts.edu) ? It's much simpler in the end and gets you just as much if you're only sketching, no?

Re: Is UML on the way out?

If you're only using UML to sketch your software, why not just use a concept mapping tool like VUE (vue.tufts.edu) ? It's much simpler in the end and gets you just as much if you're only sketching, no?
Because it doesn't seem to support diagram elements that I'd use while sketching out data models, class hierarchies, interaction, call sequences etc., unless I've missed something (what is it with people who put up a webpage for a visual design tool without plenty of screenshots right there on the main page). Sketching does not automatically imply that I don't want to include lots of information in a structured way that people are used to. It just implies that I may decide to leave out big chunks here and there that would be required to make it valid UML, or take shortcuts using other annotation etc. (And if someone suggests using Visio, I'll scream - Visio is a torture instrument not a diagram editor)

Re: Is UML on the way out?

Every once in a while I need to use UML to try and make sense out of a complex system. I try some UML tool such as Rational, and discover that I have littler or no control over the size of the various diagram elements and can only do simple diagrams. So I give up and go to Visio.

Re: Is UML on the way out?

>> What notation do you use for your >> architecture and design diagrams? UML. >> Is a standard diagramming notation >> important to you? Yes. Standard helps in many ways: rich tooling support (you can draw UML in various tools), information sharing (ship a UML diagram to another and s/he can understand it, pretty much unambiguously, without having you to describe anything, or think about new comers to a project...) >> How does your audience influence how >> you create diagrams? Pretty much - you need to know your audiences/purpose to come up with the appropriate views/diagrams. All of these can be in UML though. >> If you do use UML, what's your UML >> tool of choice? I've used Visio, Rational Rose, and Poseidon. IMO, Visio is most elegant and user-friendly. Of course if you look for stuff like reverse engineering, integration and so on then Rose may be better. But I've never needed such things - just want to quickly draw the diagram then done :)

Re: Is UML on the way out?

We use UML and follow the Model Driven Development paradigm. In this context we generate the bases clases and configuration files for Spring and Hibernate from UML class diagram. We use AndroMDA. With the class diagram represent entities, services and DTOs. This approach can be very productive for a given type of applications.

Re: Is UML on the way out?

I have given up on UML several times in the past, but I keep coming back to it with hope to get it right :) I've tried almost all the darn tools out there except Rational, and have ended up with Altova UModel 2008. Since I use Visual Studio .Net solely, it is working out ok for me..lets just say it's better amongst a bad lot. I think UML just needs the right tool for proper implementation, and that tool ain't out yet. Windows Workflow Foundation cuts through all the bullsplit and makes you put implementation logic in the design itself, but I don't think it is intended for enterprise architecture. Anyway, anyone please lemme know if they have any tool suggestions.

Re: Is UML on the way out?

I'm in the same camp with you - "just enough". I see UML useful sometimes but in very selected cases. No favorites for tool - whatever is available at that time, they all are in someway limited and frustrating today. And what to publish, mostly very little not to confuse the audience. UML is wasted on non-technical level but may have some benefits on other levels. Now, system architects should be above technical details, no building architect cares if you use Black&Decker tools to build, but that's unfortunately is not the common view in IT? UML is not (at least yet) the Rosetta Stone - sometimes something as Orr or fish or .. diagrams work better, depends on audience and what you want to present in architecture. And there have been "case tools" built on those as for UML - none very successful? Just my experience.

Re: Is UML on the way out?

For sketching, yeah UML/MDA is fine, but if you are looking to actually generate something from the models you need to create a domain-specific modeling language. The company I work for offers various product lines; using a domain-specific modeling language is extremely useful for us (tool options: MetaEdit+, DSL Tools, EMF(GMF)

Re: Is UML on the way out?

UML is highly abstract and represents a large amount of theory about systems. Unless you understand UML it will just be a box of shapes which you might apply your own meaning to. UML is not on the way out, instead the developers mind may be on the way out. I use UML to "lead" my coding, then sync the model to my code. This iterative method UML->Code->UML->Code etc allows me get rid of vagueness and correct the model as I code.

Re: Is UML on the way out?/Potential Interview

Hi All,

Just a question to any who is willing to help.

I am an undergraduate student at Bangor University in the UK and I am writing a dissertation paper on an evaluation of UML. I have found what people have written on here most interesting and would relish the opportunity to interview some volunteers for my research regarding their use of UML. If you are interested I would be so grateful!

Sorry for any disruption caused, but if you are able to, please email me at: eeue6f@bangor.ac.uk.

Thanks again!


Add a comment Send a TrackBack