UML – why use it?

December 10, 2008

In the last post I wrote about my experience with UML as a requirements gathering technique. Today’s entry is all about UML again but in a more general context. I’ll explain why, in my opinion, UML is a useful tool in a software developer’s toolbox.

Right now the Unified Modeling Language (UML) mostly serves as a communication aid between people involved in software development. It tries hard not to be ambiguous (often the case with spoken language) and to be easy to understand. The OCL constraint language may be employed to restrict diagrams further. Maintainability of diagrams depends on the software you use, but there are some nice drawing tools out there such as, for example, Poseidon for UML which we use in Extrasys. For a well maintained list of UML tools refer to Wikipedia’s UML tools list.

Covering most of the diagrammatic needs of developers, UML may be used at all stages of the software development process – from requirements gathering to deployment, from structure visualisation to showing interactions between software elements.

Another important feature of the UML is its popularity in the software industry. Huge numbers of practitioners give another benefit – easiness in communication with your colleagues and clients. When a new person joins your team or when you are agreeing on functional requirements with your client, if they know UML you ‘speak’ the same language and it saves everyone time.

UML is also flexible in that it allows you to create diagrams at the level of abstraction you choose to be appropriate at the time, and if you have diagrams at different levels these may be linked together in a drill-down hierarchy of abstraction.

And last but not least, aside from being a very powerful communication tool the UML encourages automatic code generation from the model. It is available in most tools and for most languages. Some tools keep diagrams in synch with the code, applying reverse engineering techniques so code changes will be reflected on the diagram. This functionality is called round-trip engineering; and if you are shopping for a modelling tool this should be an important factor when making your decision.

I’ll write more about code generation and Model Driven Architecture, which is a hot topic among software architects, as and when I investigate the subject further.

Advertisement

One Response to “UML – why use it?”


  1. [...] by drmiw on 10/12/2008 In his ITsudo blog Michal Pawlowski, Extrasys’s Senior Software Developer, explains why the Unified Modeling [...]

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 )

Connecting to %s