UML (Unified Modeling Language)

Contributor(s): Alex Shnitman

UML (Unified Modeling Language) is a standard notation for the modeling of real-world objects as a first step in developing an object-oriented design methodology. Its notation is derived from and unifies the notations of three object-oriented design and analysis methodologies:

  • Grady Booch's methodology for describing a set of objects and their relationships
  • James Rumbaugh's Object-Modeling Technique (OMT)
  • Ivar Jacobson's approach which includes a use case methodology

Other ideas also contributed to UML, which was the result of a work effort by Booch, Rumbaugh, Jacobson, and others to combine their ideas, working under the sponsorship of Rational Software. UML has been fostered and now is an accepted standard of the Object Management Group (OMG), which is also the home of Common Object Request Broker Architecture (CORBA), the leading industry standard for distributed object programming. Vendors of computer-aided software engineering (CASE) products are now supporting UML and it has been endorsed by almost every maker of software development products , including IBM and Microsoft (for its Visual Basic environment).

Martin Fowler, in his book UML Distilled, observes that, although UML is a notation system enabling people to communicate about a model, it is developed from methodologies that also describe the processes in developing and using the model. While there is no one accepted process, the contributors to UML all describe somewhat similar approaches and these are usually described along with tutorials about UML itself.

Among the concepts of modeling that UML specifies how to describe are: class (of objects), object, association, responsibility, activity, interface, use case, package, sequence, collaboration, and state. Fowler's book provides a good introduction to UML. Booch, Rumbaugh, and Jacobson all have or soon will have published the "offficial" set of books on UML.

This was last updated in December 2010

Continue Reading About UML (Unified Modeling Language)

Dig Deeper on Software design and development

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

wow spectacular attributes
I have found UML occasionally useful for modeling the flow of a program, but I have rarely seen it done well for describing user stories (or use cases).  Perhaps it was implementation, team or the particular technology, but the pictures were either so detailed that words would have worked better or so generic that talking about it would paint a clearer picture.  I guess Stick Figure->Register->Create Post is just as clear without the picture to me (and is searchable).  Has anyone else had a different experience with UML user stories?
I remember learning a lot about UML in college.  Occasionally i would use what I learned to help express something in a pictorialformat, but I haven't seen such diagrams used all that much latey.
Useful document.