Use temporary models such as diagrams on white boards
Digital photographs of white boards can be shared on a wiki. (See www.twiki.org)
UML Case Tools
You can also do agile modeling with UML case tools like Rational Rose, Together, or one that comes with a popular IDE such as Eclipse or Visual Studio.
Choose a tool that can read your code and reverse engineer it to create diagrams from your code.
Switch back and forth from diagramming to reverse engineering.
If behavior is designed during dynamic modeling, it is the static models, such as the class diagrams, which give the overall structure to our software, and allow us to divide the work into manageable and maintainable chunks.
Static UML models include
class,
package,
and deployment diagrams.
The Importance of Object Design Skill over UML Notation Skill
UML is only an ancillary tool to object design. The real skill is the design, not the diagramming.
Seeking a software design job because you are good at making UML diagrams is like seeking a career as a novelist because you have good penmanship.
Other Object Design Techniques: CRC Cards
An alternative to UML Object Design is the Class, Responsibility, Collaboration Cards popularized by Kent Beck in eXtreme Programming.
There are some brief examples in the text, but you should get a book on eXtreme Programming or go to a Web site if you are interested.
CRC Cards
Introduction
Why do objects exist?
To perform an activity to help fulfill a system’s purpose
UML interaction diagrams are used to illustrate how objects interact via messages.
They are used for dynamic object modeling.
Interaction Diagrams provide a thoughtful, cohesive, common starting point for inspiration during programming