martinfowler.com logo Home Blog Articles Books About Me Contact Me ThoughtWorks

UmlAsSketch uml Reactions

In this UmlMode developers use the UML to help communicate some aspects of a system. As with blueprints you can use sketches a forward engineering or reverse engineering direction. Forward-engineering draws a UML diagram before you write code, while reverse-engineering builds UML from existing code in order to help understand it.

The essence of sketching is selectivity. With forward sketching you rough out some issues in code you are about to write, usually discussing them with a group of people with your team. Your aim is to use the sketches to help communicate ideas and alternatives about what you're about to do. You don't talk about all the code you are going to work on, just important issues that you want to run past your colleagues first, or sections of the design that you want to visualize before you begin programming. Sessions like this can be very short, a ten minute session to discuss a few hours of programming or a day to discuss a two week iteration.

With reverse engineering you use sketches to explain how some part of a system works. You don't show every class, just those that are interesting and worth talking about before you dig into the code.

Since sketching is pretty informal and dynamic you need to do them quickly and collaboratively, so a common medium is a white board. Sketches are also useful in documents, in which case the focus is communication rather than completeness. The tools used for sketching are lightweight drawing tools and often people aren't too particular about keeping to every strict rule of the UML. Most UML diagrams shown in books, such as mine, are sketches. Their emphasis is on selective communication rather than complete specification. Hence my sound-bite "comprehensiveness is the enemy of comprehensibility"


Links
home
bliki
feed 
Translations
Japanese
Spanish
Korean
Chinese
Thai
Categories
agile
design
dsl
leisure
refactoring
ruby
thoughtWorks
tools
uml
writing
Blog Roll
ThoughtBlogs
TW Alumni
Nicholas Carr
Steve Cook
Brian Foote
Simon Harris
Gregor Hohpe
/\ndy Hunt
Ralph Johnson
Patrick Logan
David Ing
Brian Marick
Jeremy Miller
Jimmy Nilsson
Samuel Pepys
Keith Ray
Johanna Rothman
Kathy Sierra
Dave Thomas

© Copyright Martin Fowler, all rights reserved