What is and is not included in the UML specification
A common misconception is that the UML defines the visual representation for each notation element.
The UML defines the underlying metamodel, but only suggests a visual representation. Technically, the visual representations
are customizable. This allows users in very specialized applications to tailor the model to their unique needs. In reality,
most people stick with the suggested visuals since, after all, we are talking about a standard for visual modeling.
The objective of UML is to provide system architects, software engineers, and software developers with tools for analysis,
design, and implementation of software based systems as well as for modeling business and similar processes. The initial
versions of UML (UML 1) originated with three leading object-oriented methods (Booch, OMT, and OOSE), and incorporated a
number of best practices from modeling language design, object-oriented programming, and architectural description languages.
Relative to UML 1, this revision of UML has been enhanced with significantly more precise definitions of its abstract syntax
rules and semantics, a more modular language structure, and a greatly improved capability for modeling large-scale systems.
One of the primary goals of UML is to advance the state of the industry by enabling object visual modeling tool
interoperability. However, to enable meaningful exchange of model information between tools, agreement on semantics and
notation is required. UML meets the following requirements:
A formal definition of a common MOF-based metamodel that specifies the abstract syntax of the UML. The abstract syntax
defines the set of UML modeling concepts, their attributes and their relationships, as well as the rules for combining
these concepts to construct partial or complete UML models.
A detailed explanation of the semantics of each UML modeling concept. The semantics define, in a technologyindependent
manner, how the UML concepts are to be realized by computers.
A specification of the human-readable notation elements for representing the individual UML modeling concepts as well as
rules for combining them into a variety of different diagram types corresponding to different aspects of modeled systems.
A detailed definition of ways in which UML tools can be made compliant with this specification. This is supported (in a
separate specification) with an XML-based specification of corresponding model interchange formats (XMI) that must be
realized by compliant tools.