Unified Modeling Language (UML)

March 2, 2011

By Shane Hill

When I choose this topic, I had never worked with Unified Modeling Language (UML) and thought it sounded like fun to learn a new methodology and toolset. I initially found UML very interesting as it looked like a very quick way to graphically document things like use cases. If you work in an environment where multiple teams are involved and all of them have a different primary language, finding a tool that will allow you to rapidly present your ideas is well worth looking into.

Lets quickly look at a simple use case for a blog administrator:

As you can see, it is very quick to understand what the actor is doing with the system. However, once I read a little more about UML it became very clear that it was not just a quick tool to document use cases. As a matter of fact, as it turns out it is much more than that. UML is formally defined by its owner Object Management Group (OMG) as The OMG’s Unified Modeling Language (UML®) helps you specify, visualize, and document models of software systems, including their structure and design, in a way that meets all of these requirements. (You can use UML for business modeling and modeling of other non-software systems too.) Using any one of the large number of UML-based tools on the market, you can analyze your future application’s requirements and design a solution that meets them, representing the results using UML 2.0’s thirteen standard diagram types. (1)

In order to understand UML, lets take a brief look at its history as well as some details of the current version and lastly some of its uses.

History

I wanted to cover a brief history to illustrate that UML has been around for more than a short time and indeed is evolving.

UML was developed by Grady Booch, Jim Rumbaugh, and Ivar Jacobson of Rational Software Corporation and first released as version 0.9 in 1996 in order to solicit feedback. Around the same time OMG was making push to achieve standardization in the methods marketplace. In 1996 a RFP was issued by OMG and resulted in Rational and several leading technology companies dedicating staff to the development of UML. This resulted in version 1.0 being submitted to the RFP in January 1997, with further developments being undertaken by other parties and version 1.1 released in the fall of 1997. (2) As 1.1 evolved, features we added to enrich the model and address user feedback. Version 2.0 was adopted by OMG in 2005 and the latest version is 2.3 and was released in May of 2010.

Current Version

Now that we have discussed a little of the history, lets look at some of the pros and cons of the current version. This is not intended to be an all inclusive list, but simply some points I found interesting while doing my research.

PROs

· UML supports nested model elements. This means that UML can go from the 10,000 foot level view all the way down to the tactical level of a physical data model.

o Agilemodeling.com has a good overview of implementing a physical data model using UML (3).

· It is not software centric; it can be used to document non-software business functions (4).

· Supports standards that allow tools to create test cases and verification tests from UML models.

CONs

· UML can become bloated and as admitted by Jacobson. A 2.3 compliant implementation cannot use the simple version of a concept without using the complicated version (5).

· UML tools can be expensive and complicated to use and train staff on.

Future

Currently there is a plan underway to simplify the UML specification in order to refractor UML in order to better accommodate different classes of users. A concern realized by Jacobson (and others I assume) is how to accommodate these changes without invalidating existing tools, training or models. (5)

Conclusion

In short UML is one more useful tool in you architectural toolbox. It is not a silver bullet, nor is any one tool. In my opinion from having been on a project that attempted to use it, if you are willing to spend the time and resources to train and properly implement the toolset it can be very useful. If your organization spins around current trends and is under constant change, this may not be the best tool for you to use.

I look forward to hearing from you. Got a success story? Got a horror story? Share it with us, after all that is what a blog is all about!

References

(1) http://www.omg.org/gettingstarted/what_is_uml.htm

(2) http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/history_of_uml.htm

(3) http://www.agilemodeling.com/artifacts/physicalDataModel.htm

(4) http://www.omg.org/gettingstarted/what_is_uml.htm#12DiagramTypes

(5) http://www.drdobbs.com/architecture-and-design/224701702;jsessionid=PEWNS324DEWSTQE1GHRSKHWATMY32JVN?pgno=2

Advertisements

One Response to “Unified Modeling Language (UML)”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: