The UML meta model is an enormous tomb of a specification. All this is required to define a set of rules for what can and cannot be drawn in a UML diagram? Well, it does much more than that. There are semantics defined for every single element in the language. These semantics are by no means simplistic. Which would make sense my most people cringe at the thought of the UML meta model, or even the UML itself.
But these detailed explanations need not be daunting and boring. One approach I take is to learn one aspect of the UML form an end user perspective. This means reading documentation (not the UML specification) and creating sample diagrams in this one area; say, for example, activity diagrams. Once you have mastered the end user perspective, you can then dive into the specification. After I did this, the specification revealed several insights to my sample models. Not only that, but also made me think twice about code I had written, or code I had been planning to write.
Learning the entire UML specification upfront with no real high level modeling experience is an unrealistic goal. Rather, learn some general UML concepts and use the specification to solidify ideas and to enlighten, rather than frustrate.
IMHO, the real challenge in using UML is learning how to apply the notation and realizing that the true purpose of the notation is communication - with other people, not computers.
ReplyDeleteDelving into the spec to study some bordercase or little known option, may be interesting intellectually but it doesn't really help with the above.
I do my share of struggling through the spec when I'm working on my own UML sequence diagram editor (here's a 30 sec demo) and I find the spec rather lacking in the semantics department. The only thing it does well is define UML's abstract syntax. But its semantics are underspecified and sometimes even ambiguous, and the main concrete syntax (i.e. the graphical notation) is incomplete.
(oh, should you give my tool a try let me know what you think of it, I'm always glad to get feedback!)
yanic,
ReplyDeleteI agree that ultimate purpose of UML modeling is communication with people. I also agree with the argument that the specification can be ambiguous. The prospect of UML as a computer to computer dialect is a speculation and nothing more.
Btw, nice sequence diagram editor.