Foreword
Preface
Part Ⅰ Introduction
Chapter 1 What Does It Mean to Be Object Oriented,Anyway?
1.1 Encapsulation
1.2 Information/Implementation Hiding
1.3 State Retention
1.4 Object Identity
1.5 Messages
1.6 Classes
1.7 Inheritance
1.8 Polymorphism
1.9 Genericity
1.10 Summary
1.11 Exercises
1.12 Answers
Chapter 2 A Brief History of Object Orientation
2.1 Where Did Object Orientation Come From?
2.2 Object Orientation Comes of Age
2.3 Object Orientation As an Engineering Discipline
2.4 What's Object Orientation Good For?
2.5 Summary
2.6 Exercises
2.7 Answers
Part Ⅱ The Unified Modeling Language
Chapter 3 Basic Expression of Classes,Attributes,and Operations
3.1 The Class
3.2 Attributes
3.3 Operations
3.4 Overloaded Operations
3.5 Visibility of Attributes and Operations
3.6 Class Attributes and Operations
3.7 Abstract Operations and Classes
3.8 The Utility
3.9 Parameterized Classes
3.10 Summary
3.11 Exercises
3.12 Answers
Chapter 4 Class Diagrams
4.1 The Generalization Construct
4.2 The Association Construct
4.3 Whole/Part Association
4.4 Summary
4.5 Exercises
4.6 Answers
Chapter 5 Object-Interaction Diagrams
5.1 The Collaboration Diagrams
5.2 The Sequence Diagrams
5.3 Asynchronous Messages and Concurrent Execution
5.4 Summary
5.5 Exercises
5.6 Answers
Chapter 6 State Diagrams
6.1 Basic State Diagrams
6.2 Nested States
6.3 Concurrent States and Synchronization
6.4 Transient States from Message-Result Arguments
6.5 Continuously Variable Attributes
6.6 Summary
6.7 Exercises
6.8 Answers
Chapter 7 Architecture and Interface Diagrams
7.1 Depicting System Architecture
7.2 Depicting the human Interface
7.3 Summary
7.4 Exercises
7.5 Answers
Part Ⅲ The Principles of Object-Oriented Design
Chapter 8 Encapsulation and Connascence
8.1 Encapsulation Structure
8.2 Connascence
8.3 Summary
8.4 Exercises
8.5 Answers
Chapter 9 Domains,Encumbrance,and Cohesion
9.1 Domains of Object Classes
9.2 Encumbrance
9.3 Class Cohesion:A Class and Its Features
9.4 Summary
9.5 Exercises
9.6 Answers
Chapter 10 State-Space and Behavior
10.1 State-Space and Behavior of a Class
10.2 The State-Space of a Subclass
10.3 The Behavior of a Subclass
10.4 The Class Invariant as a Restriction on a State-Space
10.5 Preconditions and Postconditions
10.6 Summary
10.7 Exercises
10.8 Answers
Chapter 11 Type Conformance and Closed Behavior
11.1 Class versus Type
11.2 The Principle of Type Conformance
11.3 The Principle of Closed Behavior
11.4 Summary
11.5 Exercises
11.6 Answers
Chapter 12 The Perils of Inheritance and Polymorphism
12.1 Abuses of Inheritance
12.2 The Danger of Polymorphism
12.3 Summary
12.4 Exercises
12.5 Answers
Chapter 13 Techniques for Organizing Operations
13.1 Mix-In Classes
13.2 Rings of Operations
13.3 Summary
13.4 Exercises
13.5 Answers
Chapter 14 Class Cohesion and Support of States and Behavior
14.1 State Support in a Class Interface
14.2 Behavior Support in a Class Interface
14.3 Operation Cohesion in a Class Interface
14.4 Summary
14.5 Exercises
14.6 Answers
Chapter 15 Designing a Software Component
15.1 What Is a Component?
15.2 Similarities and Differences Between Component and Objects
15.3 Example of a Component
15.4 Internal Design of a Component
15.5 Lightweight and Heavyweight Component
15.6 Advantages and Disadvantages of Using Components
15.7 Summary
15.8 Exercises
15.9 Answers
Appendix A Checklist for an Object-Oriented Design Walkthrough
Appendix B The Object-Oriented Design Owner's Manual
Appendix C The Blitz Guide to Object-Oriented Terminology
Glossary
Bibliography
Index