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)