Geeks With Blogs
Ulterior Motive Lounge UML Comics and more from Martin L. Shoemaker (The UML Guy),
Offering UML Instruction and Consulting for your projects and teams.
 
The packages remind me of how Mindmap "folds" detail when you want to get a higher level look at things.
One thing that I may have been assuming, incorrectly, is that these drawings are the end product. If the presentation is hard copy, you would have to have multiple sheets to display "drill-down" views.

Does UML provide an interactive presentation?

(If I remember correctly, isn't the purpose of UML to get the idea on paper without worrying about learning a new presentation language?)

Cheers,

Mitch
 
I found these to be great questions, so great I had to answer at length; and by the time I was done, I decided Mitch's questions were potentially useful to a wider audience. So I decided to turn my answer into a post, as follows.
 
Mitch,
 
People who dig Mindmap already have a good visual way of thinking that helps a lot with UML. Similar goals, similar solutions.
 
And you've given me a good chance to trot out one of my old reliable discourses: UML with a tool is not about drawing pretty pictures; it's about editing an underlying model, using the pretty pictures as your user interface. With a good tool (and some are definitely not so good in this regard), every time you draw something on a diagram, you're creating or modifying some content in an underlying model of your system; and when you change that content in one diagram, you're automatically changing it in whatever diagrams it appears in, because the diagrams are just views into the model.
 
In the examples above, if I changed "Accountant" to "Geek" in the first diagram, the name would automatically change in the second diagram, because in both diagrams the Actor is a picture of the Accountant/Geek element of the model. Way back in Episode 2, I drew an arrow from Accountant to File Payment; and with a good UML tool, I could optionally show or hide that arrow in either of today's diagrams, because the model "knows" there's an arrow between them. In fact, with most good UML tools, simply dropping both Accountant and File Payment on the same diagram would automatically show the arrow; and with particularly good ones, I could drop Accountant on the diagram and then give a command that says, "Add to this diagram everything that's related to Accountant." So the model knows and can present anything you created in any diagram.
 
A typical UML tool has a palette of diagram-specific shapes that you can drag and drop onto a given diagram; and then a good UML tool -- including mine (though I won't try to persuade you that it's good, clearly it does what I think a good tool should, or I would fix it!) -- has a tree view of things you've already drawn, and can drag onto any diagram as well. That tree view is a Package-based hierarchical view of your model, i.e., the thing you're really creating.
 
Now a powerful UML tool necessarily takes some learning. Some UML proponents (especially Agile UML proponents) prefer pen and paper or marker and whiteboard because they don't want a tool getting in the way of communication. But as you point out, that gets complex if you want to do stuff like drill-down views.
 
I like to teach starting with pen and paper. You have enough to learn with a new notation; a new tool on top of that is a lot of learning curve. But I recommend learning and using a good UML tool for anything major. Pen and paper is good for quick sketches, but not for complex discussions. It's also hard work if you want to get the diagrams "presentation ready". I already know UML pretty well; but despite my promises to Editor Bill, it still seems to take me 2 to 4 hours to do one episode of the Lounge. I'm using the Tablet PC equivalent of pen and paper: Windows Journal (a.k.a. the killer Tablet PC app that Microsoft doesn't realize they have). While the UML tools I have are great UML tools, they're lousy cartooning tools. So I draw the strips by hand in Journal, relying a lot on copy-and-paste and resize and drag-and-drop. But even with those features -- features you won't find on any whiteboard! -- it takes a long time to make these episodes ready for The Reader. Some people will say, "Oh, just use Visio for the presentation-ready version when you need it." Fine for them, but I would rather use a more powerful tool that understands my model. (And yes, the high-end version of Visio does support UML natively. And badly. Sorry, Microsoft, but that's the truth. Rosario will be better.)
 
When I work as a modeling consultant, I try to give my clients the best of both worlds: I am their UML tool. They talk to me, I draw what they tell me, and they tell me when I get it wrong -- often without me even having to teach them UML! I know the tool really well, so they don't have to; and I'm skilled at listening to what they say and quickly determining how best to draw it. It takes some practice, but I've had plenty of that.
 
I should add a little bit about how Tablet UML differs from some other good UML tools, including Enterprise Architect from Sparx Systems, a really good tool especially for the low price. With Tablet UML, there's a tool palette, but it's almost an afterthought. With Tablet UML, you use the Tablet PC pen, and you just draw. If you're on a Class Diagram and you draw a circle, it knows you mean an Interface, and it adds an Interface to the model and cleans up the circle. If you're on a Use Case Diagram and you draw an ellipse (i.e., a wide circle), it knows you mean a Use Case, and it adds a Use Case to the model and cleans up the ellipse; but if you draw a circle, it knows you mean the head of an Actor, and so it adds the Actor to the model and draws the rest of the stick figure. A rectangle on a Class Diagram becomes a class, but a rectangle on a Sequence Diagram becomes an object, complete with lifeline! And so on. I call it "The UML Tool You Don't Have To Learn". That's a bit of marketing hype, because you do have to learn how to move stuff in the model, edit contents, etc.; but when it comes to drawing, it lets you just draw, and it understands what you mean in UML terms.
 
And finally: yes, Mitch, a good UML tool provides an interactive presentation. All of them are interactive in the tool itself, of course; but some of them -- including both Enterprise Architect and Tablet UML -- will also export models as fully navigable HTML mini-sites, including diagrams with drill-down. So you can put your ideas together and put them on a site for feedback if you're working with remote clients.
 
Thanks, Mitch, for some great questions! I think I'll have to turn this into a post!
 
 I should add that because Mitch is my most frequent commenter (narrowly edging out Editor Bill), I'll be adding him to the Lounge as a guest star next week, along with first commenter @coreyhaines. Plus the return of @crazeegeekchick! (All assuming I survive Ann Arbor Day of .NET, of course...)
Posted on Saturday, November 15, 2008 4:58 PM Ulterior Motive Lounge | Back to top


Comments on this post: Ulterior Motive Lounge Q&A 1: Mitch Asks About Interactive UML

# re: Ulterior Motive Lounge Q&A 1: Mitch Asks About Interactive UML
Requesting Gravatar...
Above, you are mentioning Tablet UML:
"Tablet UML differs from some other good UML tool"

May I ask what happened on it and why you mentioned it?

In my eyes, Tablet UML unfortunately seems to be absolutely dead: No update, no support, no website... no sign of life at all anymore.

So I was surprised that you dared to mention this tool -which seems to be dead since at least two years- at all, in a post which seems to be very actual.
Left by Frank on Dec 13, 2008 6:09 AM

Your comment:
 (will show your gravatar)


Copyright © Martin L. Shoemaker | Powered by: GeeksWithBlogs.net