This book is the second O'Reilly UML offering from Sinan Si Alhir, his first being 'UML in a Nutshell'. I found his initial book to be a very unstructured and unfriendly read, and was therefore hoping that things would be a lot better on this second attempt. I certainly wasn't disappointed because Learning UML is a vast improvement, and at last provides the O'Reilly fans amongst us with a UML book worthy of purchase.
Learning UML is aimed at a very wide audience encompassing anybody interested in learning and effectively applying the UML. The book breaks down the monstrous subject of UML into the usual chapter-per-diagram approach that is common across UML books. As expected, the fundamentals are discussed in the first part, and the author does a very good job here using written language in a metaphorical approach to UML. The second part of the book covers Structural Modelling, including Class, Object, Use-Case, Component and Deployment diagrams. The third part covers Behavioural Modelling, including Sequence, Collaboration, State and Activity diagrams. Each diagram chapter gives a good introduction, and gradually leads the reader from the basic concepts through to reasonably complex examples. The chapters conclude with a set of exercises that help the reader apply the concepts covered.
I found that the approach taken throughout this book works reasonably well, with each chapter covering the basics through simple examples before building further with increasingly complex examples. In my opinion, some of the examples covered were over-complex and inappropriate for the books scope. I found that the Author seems to 'over-do-it' in places, bogging the reader down too much.
Overall, although the book has weaknesses, it also provides a good platform for learning UML. If you read through the book in sequence and pursue the examples that are included, I think that you'll gain a great deal from this one. I would happily pay£27 for this relatively small book, simply because I know that it is going to be useful to me during my everyday working. I would certainly recommend this book to anybody, but would probably advise beginners to go for Martin Fowler's 'UML Distilled' first.