Architecture and Design: Unified Modeling Language (UML)
Intro
"The Unified Modeling Language (UML) is a language for specifying, constructing, visualizing, and documenting the artifacts of a software-intensive system.
First and foremost, the Unified Modeling Language fuses the concepts of Booch, OMT, and OOSE.
The result is a single, common, and widely usable modeling language for users of these and other methods.
Second, the Unified Modeling Language pushes the envelope of what can be done with existing methods.
As an example, the UML authors targeted the modeling of concurrent, distributed systems to assure the UML adequately addresses these domains.
Third, the Unified Modeling Language focuses on a standard modeling language, not a standard process.
Although the UML must be applied in the context of a process, it is our experience
that different organizations and problem domains require different processes.
(For example, the development process for shrink-wrapped software is an interesting one,
but building shrink-wrapped software is vastly different from building hard-real-time avionics systems upon which lives depend.)
Therefore, the efforts concentrated first on a common metamodel (which unifies semantics)
and second on a common notation (which provides a human rendering of these semantics).
The UML authors promote a development process that is use-case driven, architecture centric, and iterative and incremental.
The UML specifies a modeling language that incorporates the object-oriented community's consensus on core modeling concepts.
It allows deviations to be expressed in terms of its extension mechanisms." (from UML Summary, Version 1.3)