David Vallner
10/25/2006 3:17:00 AM
Giles Bowkett wrote:
> UML is kind of a priestly language, in that it doesn't really seem as
> if it gets used in the real world a great deal, but in its defense,
> learning UML is pretty good discipline for object-oriented programming
> in any language.
UML does feel overhyped when one is learning about it, and the various
round-trip end-to-end insert-more-buzzwords-here engineering tools are
for projects of a scope most people won't ever see. But it's the whole
missing the forest because there's trees in the way thing. (Or the other
way around ;)
> It's kind of anomalous, because you can't actually
> code in it, yet I think learning UML probably made me a better
> programmer.
>
I wouldn't say it's any anomalous at all. UML only lets you manipulate
the "pure" concepts of a given problem. Conceptual analysis of a problem
is a language-independent activity requiring skill. There are arguably
other ways of doing a conceptual analysis or specification of a problem,
not involving UML, and / or involving executable code (e.g. TDD), but
the UML method enforces a clean layering of the model from its
implementation. Having a method that only lets you manipulate abstract
concepts, and lets you manipulate them very efficiently (the main
diagrams of UML2 are really dead simple) can help your brain fold itself
into the shapes that are needed to understand those abstract concepts
properly.
David Vallner