Though some people don’t like the UML, its value as a
modeling notation cannot be overlooked. Although I’m not a strict UML purist,
neither believing in UmlAsBlueprint
or UmlAsProgrammingLanguage
instead opting for UmlAsSketch.
Here are some great (free) resources for getting up to speed
on the UML:
Online study aids:
- Scott Ambler’s guide: http://www.agilemodeling.com/essays/umlDiagrams.htm
Scott’s guide is really great, and he in fact covers a TON of diagram types (including ERDs, Data Flow Diagrams, etc.) - Borland’s UML 2 study guide: http://bdn.borland.com/article/0,1410,31863,00.html
- Sparx System UML tutorial: http://sparxsystems.com.au/resources/tutorial/index.html
- Embarcadero’s UML site: http://www.embarcadero.com/support/uml_central.html
- Martin Fowler’s UML bliki: http://www.martinfowler.com/bliki/uml.html
- Conrad Bock’s UML 2 articles: http://www.conradbock.org/bockonline.html#UML2.0
Resources:
- Visio shapes and templates for UML 2.0: http://www.phruby.com/stencildownload.html
- Download the complete UML 2.0 spec (boring, but maybe
helpful): http://www.uml.org/
Books
The best, UML-only book for sure is Martin Fowler’s UML
Distilled, 3rd ed. Subtitled “A Brief Guide to the Standard Object
Modeling Language,” it weighs in at a mere 192 pages (including index,
bibliography, blah blah blah).
If you really want to understand the value of UML in context
(as well as development process, object-oriented analysis and design, and
more), I must recommend Craig Larman’s Applying
UML and Patterns, 3rd ed. See what I wrote about it here
and see why David Hayden calls it the
best development book he bought in 2004, period.
Ezequiel Cuellar’s Notes on Applying UML and Patterns
were very helpful for a review:
- Section 1 – Development Process
- Section 2 – Requirements Modeling
- Section 3 – Architecture
- Section 4 – Static Modeling
- Section 5 – Dynamic Modeling
- Section 6 – Design and Implementation Techniques
Also check out David Hayden’s blog post
series.
Certifications
What would a modeling language be without certifications?
There are two vendors offering UML certs. The OMG, the group that develops the
UML, has their cert which you can learn about at http://www.omg.org/uml-certification/index.htm.
IBM also has a single test dedicated to it, Test 486:
Object-Oriented Analysis and Design with UML http://www-03.ibm.com/certify/tests/edu486.shtml.
In passing the IBM 486 exam, I studied the two books UML
Distilled (Fowler) and Applying UML and Patterns (Larman). Your mileage may
vary.
With the two tools listed below you can automate in a build the creatation of UML class diagrams that are in sync with the build. Note the assembly2xmi is a windows forms app, but you could decompile it and make it a console app.
http://voxel.dl.sourceforge.net/sourceforge/uml2svg/uml2svg-0.14.zip
http://www.agilefactor.com/software/AssemblyMetadata2XMI.zip
I don’t know what your signal:noise ratio is with UML and what diagrams you use, but I find even the trimmed down standard 13 (or whatever the number is now) to be too much. I use it for class diagrams mostly (although VS2005 gives this to me in a much richer form as a result of the class designer) and will create a package, deployment, component and use case diagram. Sometimes I’ll do an activity or interaction diagram and if there’s a lot of state changes in a system I’ll put together a state diagram for communication purposes. Other than that, I never seem to need or want to create the other diagram types.