Sidebars xi
Preface xiii
Acknowledgments xix
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
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
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
4.1 The Importance of Proper
Classification 121
4.2 Identifying Classes and Objects
126
4.3 Key Abstractions and Mechanisms
138
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
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
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
8.1 Inception
334
8.2 Elaboration
347
8.3 Construction
370
8.4 Post-Transition 371
9.1 Inception
376
9.2 Elaboration
385
9.3 Construction
396
9.4 Post-Transition 411
10.1 Inception
414
10.2 Elaboration
421
10.3 Construction
427
10.4 Post-Transition 446
11.1 Inception
450
11.2 Elaboration
463
11.3 Construction
474
11.4 Post-Transition
487
12.1 Inception
490
12.2 Elaboration
494
12.3 Construction
506
12.4 Transition and Post-Transition
534
A.1 Language Evolution
537
A.2 Smalltalk
541
A.3 C++ 546
A.4 Java 551
Object-oriented technology has evolved as a means of managing the complexity inherent in many different kinds of systems, and the object model has proven to be a very powerful and unifying concept. This book provides practical guidance on the analysis and design of object-oriented (OOAD) systems. It provides a sound understanding of the fundamental concepts and historical evolution of the object model, facilitates a mastery of the notation (UML 2.0) and process of OOAD, and teaches how to effectively use OO technology to solve real problems. In addition, the guide offers a collection of five nontrivial examples encompassing a diverse selection of problem domains. The book also includes supplemental material throughout the text including an appendix on OO programming languages, summary of features on a few common languages including C++ and Java, and a glossary of common terms. Appropriate for newcomers to OO and those with experience, this is a pragmatic book that addresses the practical needs and concerns of software engineers.
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.
Ask a Question About this Product More... |