More than 300,000 developers have benefited from past editions of UML Distilled . This third edition is the best resource for quick, no-nonsense insights into understanding and using UML 2.0 and prior versions of the UML. Some readers will want to quickly get up to speed with the UML 2.0 and learn the essentials of the UML. Others will use this book as a handy, quick reference to the most common parts of the UML. The author delivers on both of these promises in a short, concise, and focused presentation. This book describes all the major UML diagram types, what they're used for, and the basic notation involved in creating and deciphering them. These diagrams include class, sequence, object, package, deployment, use case, state machine, activity, communication, composite structure, component, interaction overview, and timing diagrams. The examples are clear and the explanations cut to the fundamental design logic. Includes a quick reference to the most useful parts of the UML notation and a useful summary of diagram types that were added to the UML 2.0. If you are like most developers, you don't have time to keep up with all the new innovations in software engineering. This new edition of Fowler's classic work gets you acquainted with some of the best thinking about efficient object-oriented software design using the UML--in a convenient format that will be essential to anyone who designs software professionally.
Martin Fowler (b. 1963) is a software engineer, Chief Scientist at ThoughtWorks, and an outspoken advocate for best practices in enterprise software design, particularly in regard to agile software development methodologies, including extreme programming.
Using UML for "sketching" really resonates with me. It's nice when someone famous tells you it's ok to keep doing what you are doing. Fowler's treatment of the various diagrams are for and how to apply them is great and concise. A must read.
خیلی کتاب با ارزش و زیباییه. مثل بقیه کتابهای فاولر با دید عمل گرایانه و با تکیه بر تجربیات واقعی نوشته شده. خواندنش رو به تمام مهندسین نرم افزار پیشنهاد میکنم. خیلی هم کم حجم و فشرده است. با وجود اینکه هدفش آشنایی باUML هست ولی در کنارش اصول طراحی هم تا حدی بیان میشه و مثالهاش واقعی هستند.
UML Distilled 3rd edition is what I read most recently. It's a very light read that I would say is a practical reference book for the most industry-practical UML diagrams.
It is not a good source to learn UML, you're probably better of reading "Learning UML 2.0" or a similar more UML-focused book.
UML Distilled is a mostly chaotic and unordered review and thoughts of Fowler about the usage of the specific patterns. It doesn't go through the structure, behavioural and then interaction diagrams.
It starts with Class Diagrams: essential (structure), moves to sequence diagrams, then back to class diagrams advanced concepts and so on
In terms of "depth" based on how much information is perceived, I wouldn't recommend reading the book in the order it's presented. As mentioned earlier, structural, behavioural and interaction diagrams in this order, are in my opinion the correct way to review them.
Overall it's not a UML "guide" book, as it's falsely, in my opinion, advertised.
It's useful for reference and it draws few comparisons between UML 1.0 and 2.0, which are sometimes easy to forget if you lean more towards a specific version when working with a specific set of people who are more used to the former or later.
It could use a better organization and could be followed and/or complimented well by "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development", as a more directed approach to applying the patterns.
Using this more as a reference book, then a full blown read from start to finish. That said, the writing could be a lot better. As a IT professional, this book could be better at explaining all aspects of a given UML diagram. The book reads more like the information came from a software developer's brain that a layman (or someone who is not a software developer writing code).
Considering this is one of the top recommended UML books, I high higher hopes for the book. It is disappointing it is written in this way.
The lack of design documentation in today's software development culture has become one of the reasons of technical debt. Reading books that helps to share the views on higher level as well as in the implementation perspective is a must. Also to share technical perspectives in the planning phases, the understanding of UML is very important!
The content of the books has been good to help me be more Object Oriented thinker and a better Technical Leader.
Everything is great and Fowler's advice throughout the book is incredibly useful for when applying UML to the real world, however I feel like this book is missing a section/chapter with a project where we can follow a back-to-back system design from a world-class software engineer such as the author.
The bibliography is really great though and the book really does serve well as a reference book for later on.
Ottimo per avere un'infarinatura, ma su alcuni dei diagrammi più utilizzati è troppo sintetico e approssimativo. Nonostante condivida il messaggio di fondo, per cui lo scopo principale di un diagramma sia quello di rendere visualmente e al primo impatto il funzionamento di un processo o di un progetto, avrei gradito un approccio più sistematico ed esaustivo almeno per gli elementi base comuni a tutti i diagrammi.
Before reading this book, I was often at lost when using UML in software design. In the past, I put much emphasis on elaborate UML before writing code, while often got bogged down. UML distilled told me to use UML sparingly, which shed light on what UML's role really is. Not too much, not too complex. That's it!
This is my "little UML book", the big one being https://www.goodreads.com/book/show/8... A few months ago I had to plow through [Larman]. Now I needed a quick refresher course. For this [Fowler] is great. He throws in some things in to think about. If you are new in UML/ Object Oriented analysis/design, don't start here. A little book doesn't mean it is easier.
Nice quick overview on UML to gain more insight into modeling the software development process. Don’t know if I would recommend this book though over the other way more useful books if you’re a software engineer
Really good book! Martin Fowler knows the subject very well and describe it clearly. It can be used as a reference book cause it contains a lot of diagrams about UML. Also the small size makes the book more attractive cause it has only the necessary things.
This is more of a handbook to me. Since I've already been through Dennis and Larman, Fowler seems to be a good quick reference. I don't think this book fits beginners well. However, it is a good complement to other beginner's book. It is worth to have this book around.
I re-read this classic after first reading it almost 10 years ago, and as I've grown as a software engineer, this book only becomes more wonderful. I think UML was Fowler's excuse for writing this book, because it's about so much more. Highly recommended to all software engineers.
Leave a feeling that some information and diagrams were added as a waste of timeZ Since I why the arbor still choose to describe them while it will be enough to concentrate on Class, Sequence, State, Activity, Use Case diagrams?
The book is an excellent introduction to designing UML diagrams. There are no boring details and all the information is satisfying that you learn enough about UML. Also, the comments of the author about the UML diagrams and how he uses them are excellent.
This is a fairly short (160 page) gallop through UML2. It's short and to the point, and mostly this gets across the gist of what you need to know. There are times where it strays a bit too far into terseness, and some of the text really needs to be broken up with specific examples closer to the descriptions. Particularly, the text sometimes ploughs on with some quite dense descriptions and no visual example, or has a reference to a diagram several pages away, neither of which make for easy reading.
Conversely, Fowler is refreshingly pragmatic, and there's a great quote in chapter 2 that sums up the pragmatic approach: "Be prepared to break the rules of the UML at any time if it helps you communicate better. The biggest risk with using the UML in analysis is that you draw diagrams that the domain experts don't fully understand. A diagram that isn't understood by the people who know the domain is worse than useless; all it does is breed a false sense of confidence for the development team". Contrast this with 'Domain-Driven Design: Tackling Complexity in the Heart of Software', where UML class diagrams are promoted as a communication medium with non-technical customers, mainly to ease the path towards maintenance of a single model, an approach I'm still pretty sceptical about. He also includes examples of non-standard notation which can be used to bend the usage of certain models beyond their normative use (eg, using message passing on class diagrams)
While Fowler's text can be a bit dense at times, he is also not afraid to point out area where the UML 2 definition is weak - typically in barely perceptible differences between symbols which imply huge differences in meaning - for example, the difference between a "stick" arrowhead and a "filled" arrowhead on a sequence diagram (this type of thing is a particular bugbear of mine - the different meaning of the various permutations of solid & dotted lines and closed & open arrowheads on class diagrams being another example: this may be self-evident to aficionados, but it's very non-intuitive to any non-experts sharing the diagrams. Still, can't blame the book for that!)
All in all, a good book if you're looking to expand your familiarity with UML, but I'm not sure that I would want to learn from it as a first book. Overall, I think UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition) edges it, though that does have the advantage of 3x the page-count to get the information across.
Um ótimo livro para quem não gosta de UML entender o valor da linguagem de modelagem no dia-a-dia do desenvolvimento de software.
Martin Fowler divide a aplicação da linguagem em 3 níveis: esboço, projeto e linguagem de programação. O uso em esboço é quando aplicamos as notações da UML para descrever problemas e relações de entidades de software de uma forma abstrata, ajudando na comunicação e interpretação. Em projeto é quando usamos a UML para projetar todo o sistema antes do desenvolvimento. E em linguagem de programação é quando usamos o projeto para um gerador de código.
Acredito que existe muito valor no uso da UML para o esboço de novas implementações e na engenharia reversa para interpretação de código legado. Quanto ao uso em projeto e linguagem de programação esse valor se perde e, dado o tipo dos problemas que resolvemos e as aplicações que desenvolvemos no dia-a-dia, o seu valor acaba se perdendo e gerando burocracias.
Fowler ainda faz uma relação no livro do uso da UML em métodos de desenvolvimento tradicionais e ágeis, algo que gostei muito de visualizar. Recomendo a leitura deste livro para qualquer engenheiro de software.
As a Business Analyst, and as a Professor of Business Analysis, I am frequently reading books about business analysis tools and techniques. I am very interested in using more UML in my work, so I thought that this would be a good book for me to read. Unfortunately, I didn't think that this book was all that great--at least not for a business analyst.
This book is probably far more useful to a systems designer or developer because most of the diagrams are described in terms of how they could be used for coding a software solution. Even though I am more than capable of following the code, I found it to be too much for business analysis. The discussion of the diagrams that are more frequently used for business analysts (e.g., use case, activity, state, and even class) are either too focused on coding or lacking in general.
If you're a designer or developer of software solutions, I think that this book could be a good overview for you. If, on the other hand, you're a business analyst, this book will not help you all that much.
A good overview of UML. UML does not seem to be a large benefit to the software development process in itself, but its value stems from the value of modeling ideas on paper before sinking time into coding. Some of the techniques in this book are good to know about to help you think about your software and how your programs interact with other components of your system. UML formalizes the annotation, which is nice, but I think the thought process that goes into the diagrams more valuable. There are probably places that require you to make diagrams/schematics like this as part of the engineering process. If you are in such a place, I would recommend this book as a primer. (I would probably also recommend working somewhere else.)
Got a copy of the 3rd edition which focus on UML 2.0 version and read it completely! The book is excellently written, concise in a manner which provides lot of valuable information in short words. Along with clarifying various subtle differences in UML elements and concepts, author also gives useful insights to realizing/implementing these in programming languages(eg: Page 111 discusses 3 ways to realize state diagrams including state pattern). Also author discuss various related Object oriented concepts which is always under debate in the OO community and provides his strong opinions. As author mentions in the beginning, this is an opinionated book, but I found it rather helpful as the book reflects the knowledge and long working experiences from "Martin Fowler" itself!
So far, I am enjoying this book quite a bit (as much as a technical book can be enjoyed). It opts for brevity and serves as a highlight of the most useful UML practices instead of exhaustively describing the UML spec in detail. If you need the full gory details of UML, use another book, but if you want the "real" story of how UML is really used and get a good overview and feel - this is the book to use...
I purchased another modeling book and found it to be too advanced so I decided to hunt down A more introductory one. This book turned out to be a fantastic introduction to the various models, with solid examples on how to use them.
The author seemed interesting to read, and held my attention throughout. This won't be the last UML book I pick up, but I'm glad I took the time to go through it. It is another one that will be around as a reference for a while.
I've always been a bit uneasy about UML—it seems to me a sort of hallmark of that über-strict, institutionalized OOP that I feel the need to avoid. The table of contents (available on Amazon) makes me think that some of these strategies might actually be useful, though. Maybe worth a skim, at least.