Let’s UML the World!

March 1, 2012

UML Overview

UML is a modeling language initially designed for object oriented software development. It allows one to specify and document the artifacts of an object-oriented software system (Unified Modeling Language). It includes thirteen types of diagrams that are divided into three groups by the relationships they illustrate: Structure Diagrams, Behavior Diagrams, or Interaction Diagrams (which more detail information in Structure Diagrams) (Introduction to OMG’s Unified Modeling Language).

The Object Management Group, Inc (OMG), a not-for-profit computer industry consortium, created UML. They also develop and release a number of different UML standard extensions for different specialized applications called “UML profiles”. These include physical systems (SysML), software development processes (SPEM), specification and integration of services (SoaML) and even modeling systems with the US Department of Defense Architecture Framework and the UK Ministry of Defense Architecture Framework (UPDM) (Why Not Use UML to Model Everything?).

UML Tools

UML is simply a language. In the same way that a writer uses some sort of tool (i.e. a word processing program, publishing software, web browser, or even pen and paper) to create a book or blog, a modeler needs a modeling tool to develop a model. And in the same way that a writer’s tools have different costs and benefits, UML tools do as well (Why Not Use UML to Model Everything?).

A number of different UML tools are available in the market place in both open source and commercial in nature (List of Unified Modeling Language tools). In addition to stand alone modeling tools, a number of popular integrated development environments (Eclipse, NetBeans, Visual Studio) offer UML modeling tool functionality.

UML in the Real World

UML offers companies and organizations a number of great benefits. First and foremost, it allows a way to complete a detailed design of a complex system before actually developing it. It provides a way for a number of different stakeholders to identify the connections, behavior and re-usability of a system through visual diagrams. It also provides a way for these stakeholders to communicate about the system during design and development. It can even reduce the costs of development with UML to code functionality included in some of these tools.

There are a number of significant draw backs to using UML. There is a significant learning curve due to the complexity and amount of information that using UML requires. If not carefully managed, an organization could spend more time trying to use UML and the associated tool than actually identifying what the system needs to do or how it needs to interact with other systems and users.

In conclusion, using UML can improve the final production of a software system development project. It can decrease the amount of coding required, either through UML to code functionality or design reuse using objects. However, it requires a number of skilled resources to develop the various UML diagrams. Furthermore, the largest benefits are on large projects with a number of stakeholders and integration points with other systems. Using UML should be a decision of what is the right tool for the job at hand, and not something required for every software system.

By: Daniel W. Wilson

Works Cited

“Unified Modeling Language”, FOLDOC, 02/29/2012. http://foldoc.org/UML

“Introduction To OMG’s Unified Modeling Language”, OMG, 02/29/2012. http://www.omg.org/gettingstarted/what_is_uml.htm

“About OMG”, OMG, 02/29/2012. http://www.omg.org/gettingstarted/gettingstartedindex.htm

“Why Not Use UML to Model Everything?” by Fred Cummins on 04/19/2009, The HP Blog Hub Innovation, 02/29/2012. http://h30507.www3.hp.com/t5/The-Next-Big-Thing/Why-Not-Use-UML-to-Model-Everything/ba-p/80648

“List of Unified Modeling Language tools”, Wikipedia, 02/29/2012. http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools

Advertisements

5 Responses to “Let’s UML the World!”

  1. Cheryl Johnson said

    Nice article Daniel. I didn’t know what a UML was before reading the article. I wish we could have covered more topics like this in the program.

  2. Sean Maher said

    UML is valuable from a design perspective when you take a process and turn it into code. As for code re-use that depends on how well your classes are defined (i.e. it seems to be easier to re-use a generic class).

  3. Jason Cromes said

    I’ve only used UML in the past to document databases and, I must say, it’s easy to get caught up in the minutia. Tiny little details in the diagram indicate major operational differences and it can feel like you’ll never have it completely accurate.

    It does have its uses though – specifically in automated tools that reverse engineer a database and create the UML for you. There’s nothing better than automatic documentation…

  4. Mike Gann said

    Based on that title, I immediately imagined a movie trailer along the lines of “In a world where only UML can save us, one ragtag team stands to push back if only they can overcome their to put together the Master UML that can save us all.”

  5. Mike Gann said

    Oh wow, it removed my clever items in brackets. It should be “stands to push back (insert threat here) if only they can overcome (insert personality conflicts here)”

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: