| FlazX | Browse Computer Book | Community Board | Links | Blog | Login |
|
Object-Oriented Analysis and Design with Applications (3rd Edition)
Google Search |
User review Essential Reading in Object Oriented Analysis and Design (OOAD) This 3rd edition is the eagerly and long awaited update to the 2nd edition which was published in 1994. It provides thorough and practical coverage of concepts, techniques, notations and examples for modern object-oriented analysis and design. The material cov-ered draws upon a solid foundation of theoretical work but is con-sistently pragmatic in approach. This book provides an essential body of knowledge for professionals responsible for the analysis and design of complex systems. As with the second edition, the book is organized into three major sections - Concepts, Method and Applications. Concepts intro-duces the fundamental principles of object-oriented analysis and design (OOAD) such as creating abstractions, objects and classes, and how to address the complexities found in a variety of systems. The Method section focuses on how to analyze and design com-plex systems with an emphasis on using UML 2. This edition follows a similar format and addresses many of the same topics as its predecessor but varies in several areas. Most noticeably, the famous `clouds` and other Booch notations used in the 2nd edition have all been replaced with UML. The UML dia-grams also make frequent use of the newer UML 2 notations such as frames on sequence diagrams and ports on component diagrams. As a whole, the new set of applications nicely cover a variety of challenges found in modern systems design. There are also few-er code examples in this edition. However, as the frequent use of Courier font suggests, the text still sits conceptually just slightly above code level when that is necessary. This book is very well organized, written and edited. For example, in the Methods section, the chapter on Notation doesn't merely plod through the syntax of various shapes and line styles but ex-plains each diagram set with regard to intended use and contribu-tion to object-oriented models. There are also clear and informative distinctions between essential techniques and more advanced concepts. Though some concepts clearly build upon each other, the reader is not forced to read the material in a certain order - e.g., references to material in other chapters are clearly marked and summarized. Diagram styles vary somewhat from chapter to chapter but, as ex-plained in the preface, this is deliberate in order to familiarize the reader with the output of commonly used tools. More extensive or sharply defined distinctions between what is common practice as compared to alternative approaches, including the risks or benefits of either, would have been nice to have but this omission doesn't detract from what is a great book overall. Though intended primarily for developers and architects of soft-ware systems, the material presented would also be highly valuable to analysts in non-engineering roles such as business systems ana-lysts. It is also a worthwhile read for those working on systems without a software emphasis. Analysts, designers and architects of complex systems, will find this text provides broad and deep coverage in the current practice of OOAD. As a result, it should regarded as mandatory reading for professionals in those fields. [,,.] User review Too many words This book's reputation as one of the bibles of OOAD is probably deserved because (to someone relatively new to it) the essentials seem to be thoroughly covered. It just seems too much like wading through muck to find them. The problem begins at the very beginning; on the first pages of the preface. In describing changes between publication of the second edition and this third edition, the author lists `robots are cruising on the surface of Mars` and `Personal hovercraft are available.` Tongue-in-cheek? Unfortunately, no, unless it's firmly planted there. As the book continues, the reader all too often wants to start skimming as paragraph after paragraph, sometimes page after page, of non-essential prattle clouds the essentials. For journeyman designers and developers, sections on the topology of old-fashioned procedural languages, on the importance of documentation, task planning, release planning (twice!) and more may be frustrating drags on learning the essentials of thinking through a good design and taking it to the doorstep of implementation. A highly-simplified greenhouse application is used for examples throughout the first part of the book, leaving too many more-common scenarios unexplored and occasionally trapping skimmers who have not captured every concept in the design of that application along the way. Late chapters illustrate some concepts with (finally!) other applications including an all-important (for many of us) web application as well as applications for satellite tracking, data aquisition for a weather station, artificial intelligence, and a control system for traffic management. Interesting, but again wordy and by the time you get there you're exhausted! I did learn from this book, but I'm still looking for The Book that efficiently teaches OOAD, and I've read four or five already. So far I've learned more from a couple of implementation-level books: Martin Fowler's superb book Refactoring: Improving the Design of Existing Code, and his UML Distilled. These have been very instructive in part because Fowler's style is lean and very clear, un-clouded by distracting non-essentials. I've just ordered Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman. Fingers are crossed, maybe that will be The Book. User review Nothings perfect. Irrespective, this should be on every OO programmers bookshelf. I have read few software engineering books that have been perfect. Some of this book is not perfect. The wisdom in the text, in the white space and beyond, is priceless. It is important to consider that Robert Martin, whose books on the theory and art of object oriented software development, amongst other subjects, are immense. Robert worked with Booch, and his greatness stands on the shoulders of Booch. You may not get everything from a first read of this book, and thats the beauty - it distills so many ideas in some many ways, that every time you read it, you get to share in the vision and deeper ideas behind the concepts. This will always have a space on my shelf. User review Quite simply, a 'most have' for any serious collection. College-level holdings strong in references for object-oriented programmers must have the 3rd updated edition of Object-Oriented Analysis and Design with Applications. It provides software engineers both in the field and at the advanced student level with a key reference to the industry, using numerous examples to illustrate foundation concepts, explain methods, and demonstrate successful applications across fields. New to this edition is a detailed introduction to UML 2.0, a focus on modeling with five chapters emphasizing different phases, advice on allocating team resources, and much more. Quite simply, a 'most have' for any serious collection. Diane C. Donovan California Bookwatch User review copiously explained examples [A review of the 3rd EDITION, 2007.] Booch et al teach Object Oriented analysis at a level separate from and independent of any particular OO language like Java, C++ or C#. The length of the discourse means that if you are uncertain as to how to make your classes, there is ample material here to draw advice from. The early chapters focus on issues like notation. Necessary. But the meat of the text may be when the discussion moves onto the idea of levels of abstraction. Other developers might disagree, but this section seemed crucial to me. It talks about how to focus on behaviour, not representation or implementation. Then, it suggests how to progressively use different levels of abstraction to refine the design. En route, this should yield fruitful objects and systems of subobjects within an object. An entire section, of 5 chapters, is devoted to examples of applications. Worth perusing to make concrete the ideas brought forth earlier in the book. Frankly, the book could have been considerably shortened, by reducing or even eliminating this section. But the authors chose correctly to furnish copiously fleshed out examples, as good pedagogy. The text is also useful in giving a working acquaintance with UML. You might not necessarily know everything in UML by the end of the book. But you will be familiar with its main elements and its utility for describing relationships between coupled objects. Use case diagrams are also heavily invoked. Something else common to much OO design. Other books on Software Engineering | |||||||||||
Google Talk : admin-at-flazx-dot-us