Unified Modeling Language: History and Usage in Software

Unified Modeling Language (UML)

The Unified Modeling Language (UML) is a non-proprietary, third-generation modeling language. UML is not a development methodology; that is, it does not tell you what to do first and then, or how to design your system. Instead, it helps you visualize your design and facilitates communication between objects.

Essentially, UML allows developers to view the products of their work on standardized charts. Along with graphical notation, UML also specifies meanings, i.e., semantics. It is independent of notation processes, although the Rational Unified Process (RUP) was specifically developed using UML.

It is important to distinguish between a UML model and a UML diagram (or set of diagrams). The latter is a graphical representation of information, but the former can exist independently. The XMI (XML Metadata Interchange), in its current version, provides for the exchange of models but not diagrams.

Note: Diagrams are a means used to visualize the building blocks of UML. They use graphical representations of a set of elements that let you see the system from different perspectives.

Although UML defines a precise language, it does not hinder future improvements in modeling concepts. The development of UML was based on older, striking object-oriented techniques, but many others will influence the language in future releases. Many advanced modeling techniques can be defined using UML as a basis and can be extended without the need to redefine its internal structure.

UML is the basis for many development tools, including visual modeling, simulation, and development environments. In short, integration tools and standards for implementation based on UML are available to anyone.

UML has integrated many ideas and events, and this integration accelerates the use of object-oriented software development.

History

UML originated from the compilation of “best engineering practices” that proved successful in modeling large, complex systems. It succeeded the concepts of Booch, OMT (Rumbaugh), and OOSE (Jacobson), merging them into a single, common, and widely used modeling language. UML was intended as a standard modeling language for concurrent and distributed systems.

UML is not yet an industry standard, but that goal is taking shape under the auspices of the Object Management Group (OMG). The OMG requested information about object-oriented methodologies that could create a rigorous software modeling language. Many industry leaders responded, hoping to help create the standard.

Efforts to create UML began in October 1994, when Rumbaugh joined Booch at Rational. To unify the Booch and OMT methods, after a year’s work, draft version 0.8 of the Unified Process was launched in October 1995. At the same time, Jacobson joined Rational, and the scope of the UML project was expanded to incorporate the OOSE method. Version 0.9 of UML was born in June 1996.

Many contributed to the construction of UML, but the main actors in the process were Grady Booch, James Rumbaugh, and Ivar Jacobson. These three researchers are called the “Three Amigos.” During the definition process of UML, an attempt was made to make the most of the features of existing notations, mainly the techniques previously proposed by the Three Amigos (these techniques were known as the Booch Method, OMT, and OOSE). The notation defined for UML is a union of several existing notations, with some elements removed and others added to make it more expressive.

Finally, in 1997, UML was adopted as a standard by the OMG (Object Management Group), an international consortium of companies that sets and validates standards in the field of object orientation (www.omg.org).

UML is a visual language for modeling object-oriented systems. This means that UML is a language consisting of graphics (visuals) used for modeling, allowing the representation of concepts from the object-orientation paradigm. (Book Review and Principles of System Design with UML – Posted by: André Tárcio)