Use Good tools
For most of the last ten years I’ve been suffering with Rational Rose or related UML modelling tool, all of which seemed to miss the point completely “A picture can replace a thousand words”.. but with UML you needed two thousand words to explain the interpretation of UML in the context.
Two tools have changed that for me:
1) Sparx Enterprise Architect is an Excellent UML modelling tool, covering the full life-cycle with very good forward/reverse engineering of code and database schemas. The great thing about EA is that it generates web-documentation with all the appropriate hyperlinks.. but the best thing is that it is priced so you can put it on everybody’s desk.
2) Microsoft Visual Studio Domain Specific Language SDK for very specific models that generate very specific code fragments
The key point to the article (that I agree with) is not to waste time with modelling constructs that are meaningless (containment is largely meaningless & ternary associations have always been). State transition diagrams outside real-time systems or parsers are a common sign of ‘analysis paralysis’, but a DSL state-model for code generation is a RAD tool.