UML Distilled

A Brief Guide to the Standard Object Modeling Language

by Martin Fowler


The UML appeared in 1997 to eliminate the bedlam that had overtaken graphical modeling languages in the object-oriented world. Before the UML there were a host of such languages, differing in all sorts of annoying ways. Now the UML is pretty much the only game in town, which makes life much simpler for many people involved in OO software development

This book was the first book on the UML, and I wrote it as a short overview of the language. My aim was to target that fraction of the UML that was the most useful and explain it briefly. My proudest thing about this book is that it's under half an inch thick - which was very unusual for OO modeling books at that time. I was also pleased when it won a productivity award from Software Development magazine.

The book has chapters for all the major diagram types in the UML, together with an intro and some general guidance on software process and how it fits in with the UML. I also put in a lot of tips on how to use the UML well and introduce a number of principles and techniques for good OO development.

In September 2003, the 3rd edition of this book came out. This edition was mainly put together to bring the book into line with the latest UML 2 standard. I've further taken the opportunity to completely rewrite most of the book, clarifying explanation from my experiences and from review comments from others. I've added chapters for the new diagram types that were added in UML 2. However by slimming down the discussion on process, and removing the final code example chapter, I've actually managed to reduce the page count of the book. (It looks thicker because AW printed it on thicker paper.)


Further Reading

Supplementary Articles

Some extra material about the UML on my site, including the summary of the changes in UML 1.x from the book.

Errata for Second Edition


Third Edition: Korean, Chinese (Simplified and Traditional), Indonesian, Japanese, Russian, Portuguese, Bulgarian, Italian, French, Serbian, Czech, Italian, Estonian, and German. Second Edition: Japanese, German, Dutch, Polish, Russian, Portugese, Korean, Chinese. First Edition: French, Spanish