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?
Re: Is UML on the way out?
Re: Is UML on the way out?
Re: Is UML on the way out?
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?
- 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?
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?
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?
Re: Is UML on the way out?
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?
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)

