When Jim Rumbaugh, Ivar Jacobson, and I set out to define the original version of the Unified Modeling Language (UML), we observed then—as we still do now—that the role of the UML was to “visualize, specify, construct, and document the artifacts of a software-intensive system.” Notice our emphasis on visualization: we visualize in order to reason about complex structures and behavior. By choosing the right visualization, we are able to rise above the details of specific implementation languages and other technologies so that we can specify, construct, and document the patterns and the multitude of other design decisions that shape a system’s architecture.

Now, the term “architecture” is an emotionally laden term. To some, it represents ...

Get Visual Modeling with IBM Rational Software Architect and UML: developerWorks Series now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.