This is a multi-part posting discussing the Unified Modeling Language (UML).   The first part will look at the history and drivers that were the catalyst in creating UML.

How did we get to where we are at today?  Understanding the drivers and history behind a subject can help one to get a get a complete understanding of a principle or concept.  This is certainly true in this case.

Why was UML even invented?  It was mainly the wisdom and intuition of a few people in understanding that a standard and organized way for people to communicate when designing systems can only be beneficial.

In the 1980’s and early 90’s there were a myriad of design methodologies.  These came about because of the sudden popularity of object-oriented programming languages (C++. ADA, Smalltalk, etc.).  Naturally there were design methods before this time, even object-oriented ones but the popularity of C++ created the need for a new approach.  Most design methodologies before this were data driven and/or functional in nature.  When programming in an object-oriented language they were found to be not adequate.

Some of the methodologies that became popular were Rumbaugh OMT, Booch, Coad-Yourdan, OOSE from Jacobsen and Shlaer-Mellon to name a few.  All were quite good in certain areas, but seem to not cover the whole design process.  In other words, one had as a strongpoint the requirements gathering where another concentrated on the sequence of events in a system.   Also, each methodology had its own type of notation, often similar but different enough to make it hard for someone knowledgeable in one methodology to have trouble understanding another designer’s work and the associated notation.

At this time developers adapted their favorite method and even adapted these into their own hybrid design methodology, splintering the industry even more.  We then had the so-called “Method Wars” where people argued endlessly the pros and cons of their adapted methodology.  If anyone has ever heard a developer discuss his pet programming language, you will know this group can be quite religious about their beliefs.   On top of this, consultants had bookshelves of books and needed to learn different methodologies dependent on their client’s needs and preferred method of design. 

Finally, around 1994-1995 three design creators, Jim Rumbaugh, Grady Booch and Ivar Jacobson joined forces at a company specializing in design tools called Rational (the distributor of the Rational toolset and now part of IBM).  They became known as the famous “three amigos”.   They declared the “Method Wars” over and soon came out with a first release of the Unified Modeling Language.  While there was still some disagreement, this was overcome when the standards body, Object Management Group (OMG), decided to adapt UML as a standard design modeling language.  Note, the OMG is the same group that came out with many other standards, including CORBA.

Within a short period this became the standard for Object Oriented Design and Analysis (OOD&A) and almost all major players in the industry proclaimed their support for UML.  This has probably single-handedly brought the software development industry further than any other single accomplishment.  Currently the UML standard is version 2.1.1.

– UML introduction and further information can be found here.

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition by Martin Fowler.

Advertisements