UML Books Review Introduction My M.Sc. Project was with the Core Development Group of the Electrical Division of Caradon plc. The main task was to write and deliver a two-day seminar to the group companies that included introducing the UML with its benefits and how to apply the key elements of the language. From the UML tools on the market, I was required to prepare a short list for further consideration (leading into a more detailed study later). Another requirement was to review and recommend UML books for those Caradon engineers wanting to take UML further. Finally, I had to publish my findings on a web site hosted by the CDG for the group companies. Here, my book reviews are presented. As each book has its merits no order of preference is given. Instead, the order is roughly according to the price descending. Object Oriented Modeling and Design - James Rumbaugh, 1991, Prentice Hall A landmark in OO literature: always was and always will be. Taking things from step zero to discussing very advanced issues. The notation used is the one where UML has borrowed most of its elements (especially the class diagrams). The process it describes has become the typical process for OO development (especially 2nd generation OMT as described through a series of articles in JOOP by Rumbaugh). In all, a book that leaves nothing uncovered from notation to process and more importantly in depth discussions on OO concepts and techniques that will always be true. Finally, this is one of the few books that discuss how to implement an OO design into a non-OO language such as C, Pascal, Fortran etc. Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns - Bruce Douglass, 1999, Addison-Wesley Everything I have said for RT UML holds for this book also: a MUST HAVE for embedded developers. This book adds to the previous one from Douglass a lot of material (it definitely includes the material presented in that one) but the main advantage for me is the plethora of design patterns for real-time described. Since this is a very large book, it does not prove as easy to read through, but the additional material is definitely worth it. Finally, another plus point is that the accompanying CD includes a lightweight demo of Rhapsody - the tool from I-Logix that amongst other things claims full code generation. The UML Reference Manual - James Rumbaugh, 1999, Addison-Wesley This book is by no means an introductory text. It assumes you already know UML. I do not think it would be of any value to managers or students. It is also of little value to developers that are happy downloading the 808 page UML specification and crunching through it. For the power UML engineer that needs to refer to the UML constructs, elements and semantics and discover new ones quickly when designing systems, this book will come in very handy indeed. Unlike other (valuable) UML books, this one will come down from the bookshelf often. Objects, Components, and Frameworks With UML : The Catalysis Approach - Desmond D'Souza, 1999, Addison-Wesley Catalysis as a method is very powerful no doubt. Catalysis the book is a different story. I consider myself lucky in the respect that I had a subset of the method taught to me by people that have had some input to the Catalysis method (from University of Brighton, UK). I was also impressed by a keynote from D'Souza and so bought the book. My main complaint is: WHRE IS A RUNNING THROUGH EXAMPLE? A case study is desperately needed and it could easily replace some of the other material in the book. I know that if one can apply the techniques described in this book (not necessarily the full set) better more robust software will be the result. It is a shame that you need loads of time to get through the book. Given the choice I would have still bought this book but I believe there is area for improvement in the book not the method. The UML User Guide - Grady Booch, 1999, Addison-Wesley My feelings on this book are mixed. It is a large book for what it offers (almost 500 pages that take a lot of time to read) but it does provide a thorough introduction to UML. It also discusses some advanced modeling concepts and constructs (sections 3 & 5) but it leaves the reader wanting to look elsewhere for how to apply these. There is an irritating duplication of material in different parts of the book, but I liked the appendices that included some of the standard elements of UML and a very brief summary of the Rational Unified Process. If you have the (a lot of) time to read the book or you are one of the many fans of Booch's writings, then this book will be of value. UML Toolkit - Hans-Eric Eriksson, 1998, Addison-Wesley When considering which UML book to buy it should be obvious that some complement each other depending on the skill level (novice, experienced) and background of the reader (student, software/embedded engineer, manager). However, having read more than 10 books on UML, I suggest that if you must only buy one book make it this one. There is no other book that provides an introduction into all of these topics: OO, UML notation and the real-time extensions, process for UML, design patterns, discussion on UML tools and a complete case study with implementation in Java. In addition, the accompanying CD amongst other things includes a demo version of Rational Rose 4.0. My only wish is that a second/updated version of the book comes out (covering UML 1.3, providing Rose 98i and correcting some of the inevitable mistakes that one finds in detailed books). Using UML, Software Engineering with Objects and Components - Rob Pooley, 1998, Addison-Wesley This book touches on all the right subjects but does not go -in my opinion- deep into any. I like the sequence in which the information is organised and presented. It is nice to include case studies, but I am not sure about the completeness of the case studies or if, in fact, these can be implemented from the design provided. It is a novelty to provide discussion topics very often throughout the text, but it would have been better, if not essential, to discuss the issues in the text or direct us to some other resource where the discussions take place. All in all, there are other books that do the job better of introducing UML or discussing advanced issues, but this text is probably the best to be used on an undergraduate course. Its value to software engineers in the industry, though, is questionable. Real Time UML, Developing Efficient Objects for Embedded Systems - Bruce Douglass, 1998, Addison-Wesley Simply stated the first book to devote itself to UML for real-time systems and the only author that does it. Although my background is not in the embedded world, this book introduced me to real-time systems, discussed the advantages in taking the OO approach to developing embedded systems and then explained the UML notation with the real-time extensions and a process for applying it. A MUST HAVE for every embedded developer. UML Distilled (2nd Ed), A Brief Guide to the Standard Object Modeling Language- Martin Fowler, 1999, Addison-Wesley I read the first edition of this book 'ages' ago and I was left very impressed and satisfied. Not only does it provide the briefest guide to UML that exists, but it is also very well written. With this book, one does not need to read a single sentence twice; one reads, comprehends and remembers the material on a single reading pass. I recommend this book to managers, developers and students alike that wish to be introduced to the UML. Furthermore, this is the only book covering the OMG UML 1.3, but I am sure the rest will follow suit soon. [Note: the three amigos' books cover UML 1.3, but they were written before the approval of the OMG for version 1.3] The Rational Unified Process, An Introduction - Philippe Kruchten, 1998, Addison-Wesley Having heard about the Rational Unified Process (RUP) and having seen diagrams that depict the process with all the funny terminology, I wanted to find out more without wasting too much time. This book delivered my wish. After reading just this book on the RUP you will have no better or worst understanding of UML (as it does not touch the subject) and you will not be able to apply a process to a real project (more reading elsewhere is required for that). Having said that, an understanding of the process and its terminology along with whether it would be applicable to your projects will be formed. If you are looking for a 'helicopter' view on the RUP and nothing more, read this book. UML in a nutshell - Sinan Si Alhir, 1998, Addison-Wesley 'UML in a nutshell' is a book I do not like. The terminology used deviates from what is commonly used in all other books on the subject. I disagree with the sequence in which the author presents the material and find his introduction to OO one of the worst ones I have ever come across. Trying to capture all of the UML in such a small book resulted in the book containing information that is only mentioned and not explored, leaving the reader confused rather than enthused. Finally, what does not help at all is the heavy use of bullet points throughout the book, which is a characteristic of the bad style this book is written in. I apologise to the author, maybe he is brilliant at what he does for a living (one never knows), but a technical writer he is not.