Programming Books C Java PHP Python Learn more Browse Programming Books
Object-Oriented Analysis and Design with Applications and over one million other books are available for Amazon Kindle. Learn more
  • List Price: $74.99
  • Save: $53.99 (72%)
Rented from apex_media
To Rent, select Shipping State from options above
Due Date: Dec 23, 2014
FREE return shipping at the end of the semester. Access codes and supplements are not guaranteed with rentals.
Used: Good | Details
Sold by Al in MA
Condition: Used: Good
Comment: The only thing that keeps this from being "excellent" is the former owner's name on the top of the pages in marker.
Access codes and supplements are not guaranteed with used items.
Add to Cart
  • List Price: $74.99
  • Save: $16.03 (21%)
Only 2 left in stock (more on the way).
Ships from and sold by
Gift-wrap available.
Add to Cart
Trade in your item
Get a $14.64
Gift Card.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Object-Oriented Analysis and Design with Applications (3rd Edition) Hardcover – April 30, 2007

ISBN-13: 978-0201895513 ISBN-10: 020189551X Edition: 3rd

Buy New
Price: $58.96
Price: $21.00
31 New from $35.00 23 Used from $29.85
Rent from Amazon Price New from Used from
"Please retry"
"Please retry"
$35.00 $29.85


Frequently Bought Together

Object-Oriented Analysis and Design with Applications (3rd Edition) + Design Patterns: Elements of Reusable Object-Oriented Software + Code Complete: A Practical Handbook of Software Construction, Second Edition
Price for all three: $136.97

Buy the selected items together


Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now

Product Details

  • Hardcover: 720 pages
  • Publisher: Addison-Wesley Professional; 3 edition (April 30, 2007)
  • Language: English
  • ISBN-10: 020189551X
  • ISBN-13: 978-0201895513
  • Product Dimensions: 9.6 x 7.3 x 1.6 inches
  • Shipping Weight: 2.6 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (13 customer reviews)
  • Amazon Best Sellers Rank: #186,094 in Books (See Top 100 in Books)

Editorial Reviews

About the Author

Grady Booch is an IBM fellow and author of six best-selling books on object-oriented programming. He is world-reknowned as an originator of OO and founder of UML.

Robert A. Maksimchuk, as Research Director in the Unisys CTO Office, focuses on emerging modeling technologies to advance the strategic direction of the Unisys 3D-Visual Enterprise modeling framework. Bob brings an abundance of systems engineering, modeling, and object-oriented analysis and design expertise, in numerous industries, to this mission. He is the coauthor of the books UML for Mere Mortals and UML for Database Design, has written various articles, has traveled worldwide as a featured speaker in numerous technology forums, and led workshops and seminars on UML and object-oriented development.

Michael W. Engle is a principal member of the engineering staff with the Lockheed Martin Corporation. He has extensive technical and management experience across the complete system development lifecycle, from project initiation through deployment and support in a variety of application domains. As a systems architect, Mike employs object-oriented analysis nad design techniques in complex systems development.

Dr. Bobbi Young is a Director of Research for the Unisys Chief Technology Office. She has many years of experience in the IT industry working with commercial companies and Department of Defense contractors. Dr. Young has been a consultant mentoring in program management, enterprise architecture, systems engineering, and object-oriented analysis and design. Throughout her career, she has focused on system lifecycle processes and methodologies, and enterprise architecture.

Jim Conallen is a software engineer in IBM Rational's Model Driven Development Strategy team, where he is actively involved in applying the Object Management Group's (OMG) Model Driven Architecture (MDA) initiative to IBM Rational's model tooling.

Kelli A. Houston is a Consulting IT Specialist at IBM Rational. She is the method architect for IBM's internal method authoring method and is part of the team responsible for integrating IBM's methods.

Excerpt. © Reprinted by permission. All rights reserved.

Mankind, under the grace of God, hungers for spiritual peace, esthetic achievements, family security, justice, and liberty, none directly satisfied by industrial productivity. But productivity allows the sharing of the plentiful rather than fighting over scarcity; it provides time for spiritual, esthetic, and family matters. It allows society to delegate special skills to institutions of religion, justice, and the preservation of liberty.
--Harlan Mills, DPMA and Human Productivity

As computer professionals, we strive to build systems that work and are useful; as software engineers, we are faced with the task of creating complex systems in the presence of constrained computing and human resources. Object-oriented (OO) technology has evolved as a means of managing the complexity inherent in many different kinds of systems. The object model has proven to be a very powerful and unifying concept.

Changes to the Second Edition

Since the publication of the second edition of Object-Oriented Analysis andDesign with Applications, we have seen major technological advances. This listincludes some highlights, among many others.

  • High-bandwidth, wireless connectivity to the Internet is widely available.
  • Nanotechnology has emerged and has started to provide valuable products.
  • Our robots are cruising the surface of Mars.
  • Computer-generated special effects have enabled the film industry to recreate any world imaginable with complete realism.
  • Personal hovercraft are available.
  • Mobile phones have become pervasive to the point of being disposable.
  • We have mapped the human genome.
  • Object-oriented technology has become well established in the mainstream of industrial-strength software development.

We have encountered the use of the object-oriented paradigm throughout the world. However, we still encounter many people who have not yet adopted the object paradigm of development. For both of these groups, this revision of this book holds much value.

For the person new to object-oriented analysis and design (OOAD), this book gives the following information:

  • The conceptual underpinnings of and evolutionary perspective on object orientation
  • Examples of how OOAD can be applied across the system development lifecycle
  • An introduction to the standard notation used in system and software development, the Unified Modeling Language (UML 2.0)
  • For the experienced OOAD practitioner, the content herein provides value from a different perspective.
  • UML 2.0 is still new to even experienced practitioners. Here you will see the key changes in the notation.
  • More focus on modeling is provided, per feedback received about the previous edition.
  • You can gain a great appreciation for "why things are the way they are" in the object-oriented world, from the Concepts section of the book. Many people may never have been exposed to this information on the evolution of the OO concepts themselves. Even if you have been, you may not have grasped its significance when you were first learning the OO paradigm.

There are four major differences between this edition and the previous publication.

  1. UML 2.0 has been officially approved. Chapter 5, Notation, will introduce UML 2.0. To enhance the reader's understanding of this notation, we explicitly distinguish between its fundamental and advanced elements.
  2. This edition introduces some new domains and contexts in the Applications chapters. For example, the application domains range broadly across various levels of abstraction from high-level systems architecture to the design details of a Web-based system.
  3. When the previous edition was published, C++ was relatively new, as was the very concept of OO programming. Readers tell us that this emphasis is no longer a primary concern. There is an abundance of OO programming and technique books and training available, not to mention additional programming languages designed for OO development. Therefore, most of the coding discussions have been removed.
  4. Finally, in response to requests received from readers, this edition focuses much more on the modeling aspects of OOAD. The Applications section will show you how to use the UML, with each chapter emphasizing one phase of the overall development lifecycle.


This book provides practical guidance on the analysis and design of object-oriented systems. Its specific goals are the following:

  • To provide a sound understanding of the fundamental concepts and historical evolution of the object model
  • To facilitate a mastery of the notation and process of object-oriented analysis and design
  • To teach the realistic application of object-oriented analysis and design within a variety of problem domains The concepts presented all stand on a solid theoretical foundation, but this is primarily a pragmatic book that addresses the practical needs and concerns of software engineering practitioners, from the architect to the software developer.


This book is written for the computer professional as well as for the student.

  • For the practicing systems and software developer, we show you how to effectively use object-oriented technology to solve real problems.
  • In your role as an analyst or architect, we offer you a path from requirements to implementation, using object-oriented analysis and design. We develop your ability to distinguish "good" object-oriented architectures from "bad" ones and to trade off alternate designs when the perversity of the real world intrudes. Perhaps most important, we offer you fresh approaches to reasoning about complex systems.
  • For the program manager, we provide insight on topics such as allocation of resources of a team of developers, software quality, metrics, and management of the risks associated with complex software systems.
  • For the student, we provide the instruction necessary for you to begin acquiring several important skills in the science and art of developing complex systems.

This book is also suitable for use in undergraduate and graduate courses as well as in professional seminars and individual study. Because it deals primarily with a method of software development, it is most appropriate for courses in software engineering and as a supplement to courses involving specific object-oriented programming languages.


The book is divided into three major sections--Concepts, Method, and Applications--with considerable supplemental material woven throughout.


Section I examines the inherent complexity of software and the ways in which complexity manifests itself. We present the object model as a means of helping us manage this complexity. In detail, we examine the fundamental elements of the object model such as: abstraction, encapsulation, modularity, and hierarchy. We address basic questions such as "What is a class?" and "What is an object?"

Because the identification of meaningful classes and objects is the key task in object-oriented development, we spend considerable time studying the nature of classification. In particular, we examine approaches to classification in other disciplines, such as biology, linguistics, and psychology, and then apply these lessons to the problem of discovering classes and objects in software systems.


Section II presents a method for the development of complex systems based on the object model. We first present a graphic notation (i.e., the UML) for object-oriented analysis and design, followed by a generic process framework. We also examine the pragmatics of object-oriented development--in particular, its place in the software development lifecycle and its implications for project management.


Section III offers a collection of five nontrivial examples encompassing a diverse selection of problem domains: system architecture, control systems, cryptanalysis, data acquisition, and Web development. We have chosen these particular problem domains because they are representative of the kinds of complex problems faced by the practicing software engineer. It is easy to show how certain principles apply to simple problems, but because our focus is on building useful systems for the real world, we are more interested in showing how the object model scales up to complex applications. The development of software systems is rarely amenable to cookbook approaches; therefore, we emphasize the incremental development of applications, guided by a number of sound principles and well-formed models.

Supplemental Material

A considerable amount of supplemental material is woven throughout the book. Most chapters have sidebars that provide information on related topics. We include an appendix on object-oriented programming languages that summarizes the features of a few common languages. We also provide a glossary of common terms and an extensive classified bibliography that lists references to source material on the object model.

A Note about Tools

Readers always ask about the tools used to create the diagrams in the book. Primarily, we have used two fine tools for the diagrams: IBM Rational Software Architect and Sparx Systems Enterprise Architect. Why not use just one? The reality of the marketplace is that no tool does everything. The longer you do OOAD, you will eventually find some atypical "corner case" that no tool supports. (In that case, you may have to resort to basic drawing tools to show what you want.) But don't let those rare instances stop you from using robust OOAD tools such as those we mentioned.

Using This Book

This book may be read from cover to cover or it may be used in less structured ways. If you are seeking a deep understanding of the underlying concepts of the object model or the motivation for the principles of object-oriented development, you should start with Chapter 1 a...

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.3 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See all 13 customer reviews
Second half of the book include some examples with explanation.
Jarek Zelinski
A pleasure to read, nothing dry and stuffy and the analogies are spot-on so that even an old structured programming guy can understand and appreciate OO.
R. F. Bower
I was thinking to myself that maybe I didn't read it right, or maybe I accidentally skipped a page (or ten).
Pete D

Most Helpful Customer Reviews

28 of 32 people found the following review helpful By Showbear on May 27, 2008
Format: Hardcover Verified Purchase
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!
Read more ›
1 Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
6 of 6 people found the following review helpful By Amazon Customer on June 8, 2009
Format: Hardcover Verified Purchase
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.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
4 of 4 people found the following review helpful By Pete D on July 15, 2013
Format: Kindle Edition Verified Purchase
It's a good overview of object-oriented analysis and design and its connection to the sometimes esoteric UML diagrams that accompany the process of analyzing and designing object-oriented systems.
I think the book is good for anyone looking to learn the basic reasoning behind object-oriented analysis and design and see some brief examples relating to the theory.

I expected more from a book that comes recommended from so many people. The feeling I had at the end of each chapter is difficult to describe, but most closely resembles that of hopelessness. I was thinking to myself that maybe I didn't read it right, or maybe I accidentally skipped a page (or ten). Overall, I felt like I had learned something, but had no idea how to apply it. The book leaves you with more questions than when you started.

The author specifies many times throughout the book that he truncates or condenses information because it would be too long to fit in the book. This sacrifice of detail comes at a cost; an unnecessary cost considering how much repetitious filler information (borderline double-talk) is included in the book. The book could have been 200 pages shorter if they eliminated the fluff, and 200 times better if they used the space to take an example to completion.

I found myself wanting more information at the end of each chapter. Just when the author starts to get into finer details of an example is the moment when he condenses everything, wraps it up into something ambiguous and indecipherable, and begins on some new example. One specific case I can offer is the part of the book that uses the satellite navigation system example, and the black-box/white-box analysis with use cases and activity diagrams. When I started reading it I thought it was great.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews


What Other Items Do Customers Buy After Viewing This Item?