UML Distilled Cover

About a year ago I took a class entitled Advanced Object Oriented Software Development, a significant portion of which was spent drawing UML (Unified Modeling Language) diagrams for the software we were designing. I needed to get up to speed with UML in short order and the materials given by our professor were painfully obtuse. To the rescue came this fantastic book UML Distilled, the contents of which are indeed true to the title. It takes a very large and dense subject like UML and distils it down to the essential aspects. If you are a working software developer and want to start utilizing UML in the design of your projects, then this is the book you should get.

Now, anyone who has some serious experience in software development is probably familiar with the name Martin Fowler. He is probably best known for his contributions to the classic book Refactoring: Improving the Design of Existing Code. In UML Distilled, Fowler is true to form and not only gives the low down on UML itself, but keeps the material very interesting and compelling thanks to his own invaluable opinions and experience throughout. Now, whether you agree with all of Fowler’s opinions is besides the point, for me I really appreciate such anecodes as they get me to think about my own opinions. It also helps to make the book an enjoyable and entertaining read, which is quite a feat when considering that it is a book about UML, which typically is a pretty dry subject.

Why learn UML?

So, regardless of your experience, whether you are already using UML regularly or simply wanting to learn more, this is a book you will want on your shelf. However, maybe you’re wondering why you would even want to know anything about UML, let alone use it from day-to-day. I’ll admit UML is not for everyone, however speaking from my experience, it has proven be a very useful tool in my toolbox.

As a programmer, I do find it very helpful to draw diagrams when I’m thinking through and planning my software designs. This is especially the case when I’m documenting a design in order to communicate it to others. This is really where the strength of UML comes in, because instead of working with some adhoc design notations, you instead work from a standard which is industry-wide.

This in turn has two far-reaching benefits:

  1. There will be a consistency and unity in your own designs that will make them more future-proof. If you don’t look at a design for 6 months and then need to reference it, you can quickly get back up to speed.
  2. The use of an industry standard means that your designs now can be widely shared and understood. Even many managers have an understanding of UML (or they can be easily taught) and so even they will have the ability to understand the designs.

Now of course, the benefits don’t stop there but for me those two alone made it worth the investment of learning UML. With UML Distilled coming in at a consise 160 or pages, it really won’t take long to be able to start using UML and realizing it’s benefits.