Object-Oriented Analysis and Design with Applications, 3rd Edition
- By Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, Kelli A. Houston
- Published Apr 30, 2007 by Addison-Wesley Professional. Part of the Addison-Wesley Object Technology Series series.
- Copyright 2007
- Dimensions: 7x9-1/4
- Pages: 720
- Edition: 3rd
- ISBN-10: 0-201-89551-X
- ISBN-13: 978-0-201-89551-3
- eBook (Watermarked)
- ISBN-10: 0-321-50937-4
- ISBN-13: 978-0-321-50937-6
Register your product to gain access to bonus material or receive a coupon.
Product Author Bios
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.
Object-Oriented Design with Applications has long been the essential reference to object-oriented technology, which, in turn, has evolved to join the mainstream of industrial-strength software development. In this third edition--the first revision in 13 years--readers can learn to apply object-oriented methods using new paradigms such as Java, the Unified Modeling Language (UML) 2.0, and .NET.
The authors draw upon their rich and varied experience to offer improved methods for object development and numerous examples that tackle the complex problems faced by software engineers, including systems architecture, data acquisition, cryptoanalysis, control systems, and Web development. They illustrate essential concepts, explain the method, and show successful applications in a variety of fields. You'll also find pragmatic advice on a host of issues, including classification, implementation strategies, and cost-effective project management.
New to this new edition are
- An introduction to the new UML 2.0, from the notation's most fundamental and advanced elements with an emphasis on key changes
- New domains and contexts
- A greatly enhanced focus on modeling--as eagerly requested by readers--with five chapters that each delve into one phase of the overall development lifecycle.
- Fresh approaches to reasoning about complex systems
- An examination of the conceptual foundation of the widely misunderstood fundamental elements of the object model, such as abstraction, encapsulation, modularity, and hierarchy
- How to allocate the resources of a team of developers and mange the risks associated with developing complex software systems
- An appendix on object-oriented programming languages
This is the seminal text for anyone who wishes to use object-oriented technology to manage the complexity inherent in many kinds of systems.
About the Authors
Section I: Concepts
Chapter 1: Complexity
Chapter 2: The Object Model
Chapter 3: Classes and Objects
Chapter 4: Classification
Section II: Method
Chapter 5: Notation
Chapter 6: Process
Chapter 7: Pragmatics
Chapter 8: System Architecture: Satellite-Based Navigation
Chapter 9: Control System: Traffic Management
Chapter 10: Artificial Intelligence: Cryptanalysis
Chapter 11: Data Acquisition: Weather Monitoring Station
Chapter 12: Web Application: Vacation Tracking System
Appendix A: Object-Oriented Programming Languages
Appendix B: Further Reading
71 of 75 people found the following review helpful
A book on *using* OOP,
This review is from: Object-Oriented Analysis and Design with Applications (2nd Edition) (Hardcover)After reading some of the less flattering reviews of this book, it seems that many reviewers were expecting a book on object-oriented programming in general. If you want to learn how program, this is not the book for you. This book is about *using* object-oriented techniques to architect systems. The content you should take away from it is entirely independent of any particular language.
Some of the steps in becoming a good OOP programmer/architect are listed below (1 & 2 are often combined):
1. learn an OO language
Step three is where this book and, for example, books on object-oriented design patterns (GoF) come in. Just because because you know what classes and inheritance are does not mean you will use them effectively. I cannot emphasise the importance of step 3 enough when architecting applications. If you are a coder, simply knowing OOP is fine, as an architect it is simply not enough.
In... Read more
50 of 53 people found the following review helpful
A beacon of light in a world of darkness,
This review is from: Object-Oriented Analysis and Design with Applications (2nd Edition) (Hardcover)After reading the other reviews I have a few comments.
1. In 1994 when this book was published Java was in development and had no ways near the popularity it has today. (According to Cay Hortsmann Java did not burst onto the scene until late 1995)
2. Bertrand Meyer's book is great and contains valuable wisdom, but all of its examples are in Eiffel. While Eiffel is a great language what are my chances finding a job writing Eiffel.
But really all of the above comments are pointless. The fact of the matter is that the concepts in an Object-Oriented book should be language independent. However, to be most effective authors reinforce abstract ideas by including concrete examples. Which means the author must pick a language or write in pseudo code. Booch's book is a valuable reference to be used in learning how to apply Object-Oriented concepts to the analysis and design portion of the software development process. It is up to you to know your own problem domain or... Read more
14 of 14 people found the following review helpful
Required reading for C++ developers,
This review is from: Object-Oriented Analysis and Design with Applications (2nd Edition) (Hardcover)
I bought this book due to a positive comment in B. Stroustrup's "The C++ Programming Language" bibliography. I was not dissapointed. This book covers everything from terminology, to useful notations, to actual application of techniques.
I teach C++ as part of my job, and have found many design books to be shallow works which cover proprietary notations, with a few cookbook recipes thrown in. These books commonly show a lack of real development experience, and are more theory than practice.
This is not the case with this book, which combines work from many different sources. It also consistently includes references to alternative opinions when covering controversial material.
Mr. Booch stresses the need for intelligent, and sometimes ad hoc decisions which are based on good design principles, and are refined as a project evolves. But he doesn't stop there. He explains useful techniques and thought processes which are the primary tools of good OO A&D.
This... Read more
› See all 42 customer reviews...
Online Sample Chapter
Table of Contents
About the Authors xxi
Section I: Concepts 1
Chapter 1: Complexity 3
1.1 The Structure of Complex Systems 4
1.2 The Inherent Complexity of Software 7
1.3 The Five Attributes of a Complex System 12
1.4 Organized and Disorganized Complexity 14
1.5 Bringing Order to Chaos 18
1.6 On Designing Complex Systems 24
Chapter 2: The Object Model 29
2.1 The Evolution of the Object Model 29
2.2 Foundations of the Object Model 37
2.3 Elements of the Object Model 43
2.4 Applying the Object Model 71
Chapter 3: Classes and Objects 75
3.1 The Nature of an Object 75
3.2 Relationships among Objects 88
3.3 The Nature of a Class 92
3.4 Relationships among Classes 96
3.5 The Interplay of Classes and Objects 111
3.6 On Building Quality Classes and Objects 112
Chapter 4: Classification 121
4.1 The Importance of Proper Classification 121
4.2 Identifying Classes and Objects 126
4.3 Key Abstractions and Mechanisms 138
Section II: Method 145
Chapter 5: Notation 147
5.1 The Unified Modeling Language 147
5.2 Package Diagrams 155
5.3 Component Diagrams 163
5.4 Deployment Diagrams 171
5.5 Use Case Diagrams 175
5.6 Activity Diagrams 185
5.7 Class Diagrams 192
5.8 Sequence Diagrams 206
5.9 Interaction Overview Diagrams 213
5.10 Composite Structure Diagrams 215
5.11 State Machine Diagrams 218
5.12 Timing Diagrams 231
5.13 Object Diagrams 235
5.14 Communication Diagrams 238
Chapter 6: Process 247
6.1 First Principles 248
6.2 The Macro Process: The Software Development Lifecycle 256
6.3 The Micro Process: The Analysis and Design Process 272
Chapter 7: Pragmatics 303
7.1 Management and Planning 304
7.2 Staffing 308
7.3 Release Management 312
7.4 Reuse 314
7.5 Quality Assurance and Metrics 316
7.6 Documentation 320
7.7 Tools 322
7.8 Special Topics 324
7.9 The Benefits and Risks of Object-Oriented Development 326
Section III: Applications 331
Chapter 8: System Architecture: Satellite-Based Navigation 333
8.1 Inception 334
8.2 Elaboration 347
8.3 Construction 370
8.4 Post-Transition 371
Chapter 9: Control System: Traffic Management 375
9.1 Inception 376
9.2 Elaboration 385
9.3 Construction 396
9.4 Post-Transition 411
Chapter 10: Artificial Intelligence: Cryptanalysis 413
10.1 Inception 414
10.2 Elaboration 421
10.3 Construction 427
10.4 Post-Transition 446
Chapter 11: Data Acquisition: Weather Monitoring Station 449
11.1 Inception 450
11.2 Elaboration 463
11.3 Construction 474
11.4 Post-Transition 487
Chapter 12: Web Application: Vacation Tracking System 489
12.1 Inception 490
12.2 Elaboration 494
12.3 Construction 506
12.4 Transition and Post-Transition 534
Appendix A: Object-Oriented Programming Languages 537
A.1 Language Evolution 537
A.2 Smalltalk 541
A.3 C++ 546
A.4 Java 551
Appendix B: Further Reading 557
Classified Bibliography 603
Downloadable Sample Chapter
This book includes free shipping!
This book includes free shipping!
Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.