Rating: Summary: : Good introductory book that covers the basics well Review: A good mixture of UML, new additions to UML and how UML integrates into software processes. The topics are at a high level and only get skin deep, so this book is good for practically anyone interested in UML: developers needing to know the new additions to UML, managers with little time that want to learn UML to be able to talk to their developers, and even marketing staff wanting to communicate the needs of their customers with the engineers and product managers. Martin Fowler has done it again with the third edition of the UML Distilled book. Informative, well organized, quick read and more importantly an easy read. He starts with a background on UML and where it came from, and where it is currently heading. He continues with the introduction with going over what a software process is and why it's needed. The importance and the benefits of how UML can assist the software process during all the phases of the process sets the stage for UML throughout the rest of the book. If you are unfamiliar with software processes such as the Rational Unified Process, Fowler's introduction goes a long way and clear things up. "... the creators of the UML see the [UML] diagrams as a secondary; the essence of the UML is the meta model. Diagrams are simply a presentation of the meta-model." Probably the best explanation of UML you can find anywhere. Folwer, from the get go tries to set the stage straight and clear up some of the misconceptions that UML. At the beginning, he focuses on the fact that UML is not the solution to everything a development team faces during a project, but rather a starting point, and "you shouldn't hesitate to use a non-UML diagram if no UML diagram suits your purpose." Starting with the basics of UML, such as class diagrams and sequence diagrams, Fowler delves into the basics of UML and mainly the critical components on UML 1.0. A very controversial topic in UML and mainly the class diagrams are the notion of Aggregation and Composition. Aggregation being the part-of relationship and composition being an object with only one owner are depicted well thru a number of examples. For simplicity, Fowler suggests the aggregation be entirely dropped from diagrams. Associations versus class Properties are another unclear point that is covered well. If you have been working with UML for a while, you have certainly realized that anything that can be presented via Associations can also be presented via the use of Properties. This point of ambiguity could mean the difference between a clean and clear class diagram and a clotted diagram that looks like a web of coupled classes. The author clears the point between the two notions up by specifying a rule of thumb: use attributes for small things such as dates and Boolean types, and use associations between large object types with clear dependencies between the objects. This rule can certainly help when you are trying to do round-trip-engineering, and your reversed engineered class diagram is totally not what you were expecting! Has that ever happened to you? Object Diagrams, Use Cases, State Machines and Activity diagrams mark some of the UML tools that have been around since the earlier versions of UML. Composite Structures, Interaction Overview and Timing Diagrams are new to the UML 2.0. Composite Structures enable the internal structure of a class to be decomposed. It clearly defines and marks what the interfaces are, and what the required external interfaces are for each of the interfaces shown. Interaction Overview diagrams graft together activity diagrams and sequence diagrams. The author does however mention that he has no interest in using the Interaction Overview diagram due to the fact that they are too busy. I agree! Overall, Martin Fowler's UML Distilled book provides a clear, concise and brief but sweet introduction to UML. Each topic is short and gets to the point. Main pitfall of UML are explained well, and the reader upon reading this book can "speak" the UML language.
Rating: Summary: Excellent for Software Engineers Review: Excellent guide for software engineers that need to come up to speed quickly. UML is huge and many may not want to be drowning in the details. This book gives you the basics, and then some. Many areas are covered and it could almost be a concise summary to many aspects of software development in the real world. Definitely will stay on my bookshelf.
Rating: Summary: Good introduction Review: Fowler has done a very good job of introducing UML - this is the book I recommend to beginners. He goes over all the main categories of UML diagrams showing what they mean and usually how they relate to actual code. This is, by intent, a very brief book about a very large topic. Part of its value is in giving the quick tour without dragging the reader through the thousands of pages of OMG specifications. That means a lack of rigor, reinforced by the informal writing style - all very approriate to an introduction. The UML can be intimidating in its mass and in the level of detail it prescribes. Fowler cuts through all that very well. Best of all, he keeps a slightly skeptical tone. The UML is a tool, meant to serve the developer. It is not intended to take over the development process, so don't let it. There are just two things I wish this book decribed better. First is the unification problem. The UML offers dozen or so different representations of different aspects of a program's structure and behavior. The question is, how do I get all those representations to relate to each other so it's clear that they describe the same thing? The complete answer may be too long for this book, but this isn't a book about complete answers. A few more clues would have strengthened the discussion. Second is the discussion of state diagrams. It's a concept that beginners seem to stumble over: what do states really model? The best answer I know is that it describes situations where one input elicits different responses at different times, in different operating modes. The number keys on an ATM keypad are an example: first they represent the PIN, then they choose the banking operation to perform, then they may represent the numeric dollar amount of a transaction. Fowler just says to use state diagrams for "interesting behavior." It's a good intro to UML with a good (though aging) bibliography. It should not be your only book on UML, but never meant to be. Beginners get a gentle start to a tough topic. Seasoned users can jog their memories on fine points of notations they haven't used in a while. This book really is for everyone.
Rating: Summary: Iterative and incremental introduction to the language Review: I think that to fully understand the existence of this book we have to refer the foreword (in the 1st edition) by the three amigos. There, it is said: "We believe that the availability of a standard modeling language will encourage more developers to model their software systems before building them", and "The creation of the UML was itself an iterative and incremental process very similar to the modeling of a large software system", and last "Creating and agreeing on a standard modeling language is a significant challenge by itself". So in that period, early 1997, the focus was on the unification of the many languages used to visually express designs. On the other side there was another important aim to achieve: "educating the development community, and presenting the UML in a manner that is both accessible and in the context of a software development process". So Booch, Jacobson, and Rumbaugh had to introduce the software community to their achievement, the UML (the Unified Process had to come a bit later), in an iterative and incremental way (a first step before they gave birth to their books) and they had to choose someone with "insight and wisdom" for this job. Their choice fell on Martin Fowler.
I read the first edition of this book one year after its publication (may 1997) when I had already been teaching OOAD methods (mainly Yourdon-Coad and Booch) in my country for a few years. I immediately felt at home with the UML (1.0, and soon after with 1.1), because Mr. Fowler expressed in a simple and effective way in his short guide, first book on the language, the key concepts of the notation along with its semantics, keeping the promises he made at the beginning of the book. The first iteration of the language was successfully delivered to me `in time and budget', and I could introduce the notation in my courses with a great effect. Interesting parts of the book are the overview of the process (chapter 2) and the presentation of either refactoring and patterns.
Few months ago, the company I'm working for needed, for one of its departments, a revision to the process and a widespread use of a visual language. The choice fell on a light iterative process based on UML and I was chosen as trainer/mentor. The starting point to UML was this book (the italian translation), in its 2nd (on UML 1.3) and 3rd edition (on UML 2.0).
The book proved useful particularly for the quick introduction to the basic concepts of the language.
UML 2 was not exploited because of the lack of tools that use it, so it was not a priority in the training.
Today, with so many books on UML in the arena, this is still one of the main to and through the language, so thank you Martin (Grady, Ivar, and Jim) for your job (not forgetting the giants whose shoulders they're standing on).
Rating: Summary: The figure 5.1 Review: I've read a review here, which says that "UML Distilled" 3rd edition has a lot of errors and mention missing figure 5.1 as an example. So I bought "UML Weekend Crash Course" instead, and was very disappointed with it. Then I finally bought this book, and I love it. It describes everything in a clear and simple way. And, by the way, the figure 5.1 is there on page 67, exactly where it should be.
Rating: Summary: The figure 5.1 Review: I've read a review here, which says that "UML Distilled" 3rd edition has a lot of errors and mention missing figure 5.1 as an example. So I bought "UML Weekend Crash Course" instead, and was very disappointed with it. Then I finally bought this book, and I love it. It describes everything in a clear and simple way. And, by the way, the figure 5.1 is there on page 67, exactly where it should be.
Rating: Summary: Rather too compressed Review: If you are familiar with the principles of object oriented programming but you are not familiar with UML standards of OMG, and if your time is short and a condensed reader's digest is what you need, then this is the book for you... and even then, only as a starting point. If you want to do anything serious with UML you shall need more. I have given this 4 stars for what the book is; for many readers' requirements it is worth much less.
Rating: Summary: Good introduction to UML 2 Review: Martin Fowler does it again. This is a very good introduction to UML 2. But, I wish Fowler had included more details on Class diagrams and Sequence diagrams in particular ,with real world examples.
Still, a great introductory book.
Rating: Summary: All the UML the average person needs Review: More books should be like "UML Distilled:" concise and readable. Martin Fowler and Kendall Scott select the parts of UML that you need, and present them in an easy to read style. More valuable than a mere description of the modeling language, however, is the author's insight and experience in how to use this technique to communicate and document design. Quite simply, UML is the technique that developers use to communicate their object-oriented software design and planning. A picture is worth a thousand words, and UML makes sure that everybody can read your paintings. If you're not familiar with object-oriented programming, then you may want to start here. Chapters 1 and 2 give a brief history of UML, and a quick overview of a generic software process, touching on techniques such as agile methodologies, refactoring, patterns, and test. Chapters 3 through 5 get started on UML with use cases, class diagrams, and interaction diagrams. Throughout, Fowler gives details on how and when he uses these -- and more importantly, when he doesn't. Despite the conversational tone, this book is designed as a reference. The authors go so far as to tell you to skip chapter six until you need it. Such helpful pointers are a godsend to mere mortals trying to accomplish something. This chapter focuses on more advanced elements within object diagrams, probably the most heavily used diagram type. Chapter 7 focuses on packages, which are used to describe high level relationships within the system. Again, Fowler's advice is welcome on how to best use these diagrams in the real world. Chapter 8 examines the state diagrams, providing a standard way to use and document these designs. Chapter 9 centers on activity diagrams, which standardize and update traditional flow charts. He touches on deployment and component diagrams, but wisely leaves the details to others. There are lots of books on UML. Unfortunately, most are unapproachable due to their didactic tone, detail, and sheer volume. "UML Distilled," on the other hand, focuses on key knowledge, conversational tone, and brevity to emphasize the day to day use of UML. Many people simply will never need another book on UML.
Rating: Summary: exactly what I wanted Review: Now this is what I am talking about. It really follows the 20-80 rule. I am sick and tired of reading books which start from the basics as if I am a complete idiot and then form the story in a roundabout manner. You can always get the basics of anything from the internet for free, and as engineers, as most of us are, I presume, we can pick up any new technology fast. So what we need is this kind of books. The author has done a great job. He shows us the 20 percent of what we will use for 80 percent of the time. Only suggestion: give and illustrate more examples.
|