Unified Modeling Language

The creation of UML was originally motivated by the desire to standardize the disparate notational systems and approaches to software design.

[5]: 536 UML has evolved since the second half of the 1990s and has its roots in the object-oriented programming methods developed in the late 1980s and early 1990s.

It is originally based on the notations of the Booch method, the object-modeling technique (OMT), and object-oriented software engineering (OOSE), which it has integrated into a single language.

They were soon assisted in their efforts by Ivar Jacobson, the creator of the object-oriented software engineering (OOSE) method, who joined them at Rational in 1995.

The partnership also contained additional interested parties (for example HP, DEC, IBM, and Microsoft).

During the same month, the UML Partners formed a group, designed to define the exact meaning of language constructs, chaired by Cris Kobryn and administered by Ed Eykholt, to finalize the specification and integrate it with other standardization efforts.

Recent researchers (Feinerer[14] and Dullea et al. [15]) have shown that the "look-across" technique used by UML and ER diagrams is less effective and less coherent when applied to n-ary relationships of order strictly greater than 2.

", and: "As we will see on the next few pages, the look-across interpretation introduces several difficulties which prevent the extension of simple mechanisms from binary to n-ary associations."

UML 2.0 major revision replaced version 1.5 in 2005, which was developed with an enlarged consortium to improve the language further to reflect new experiences on the usage of its features.

[21] UML offers a way to visualize a system's architectural blueprints in a diagram, including elements such as:[6] Although originally intended for object-oriented design documentation, UML has been extended to a larger set of design documentation (as listed above),[22] and has been found useful in many contexts.

In UML, an artifact[1] is the "specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system.

The Object Management Group (OMG) has developed a metamodeling architecture to define the UML, called the Meta-Object Facility.

This has been criticized as being insufficient/untenable by Brian Henderson-Sellers and Cesar Gonzalez-Perez in "Uses and Abuses of the Stereotype Mechanism in UML 1.x and 2.0".

[29] In 2013, UML had been marketed by OMG for many contexts, but aimed primarily at software development with limited success.

Some people (including Jacobson) feel that UML's size hinders learning and therefore uptake.

[32] MS Visual Studio dropped support for UML in 2016 due to lack of usage.

UML logo
History of object-oriented methods and notation
An example of components in a travel reservation system
Hierarchy of UML 2.2 Diagrams, shown as a class diagram
Hierarchy of UML 2.2 Diagrams, shown as a class diagram
Artifact manifesting components
Illustration of the Meta-Object Facility