CONTENTS
Preface
xe
troduction
4. AN OVERVIEW OF OBJECT:
ORIENTED SYSTEMS
DEVELOPMENT
4.4 Introduction
1.2 Two Orthogonal Views of the
Software
13 Object-Oriented Systems
Devalopment Methodology
1.4 Why an Object Orientation?
1.5 Overview of the Unified
Approach
1.8 Organization of This Book
17 Summary
2. OBJECT BASICS
21 Introduction
‘2.2 An Object-Oriented Philosophy
23 Objects:
24 Objects: Are Grouped in Classes
J 2.5 Attributes: Object State and
2.7 Objects Respond to Motsagos
2.8 Encapaulation and tnformation
Hiding
2.9 Class Hierarchy
2.9.1 Inheritance
2.9.2 Multiple Inberitaisoe
2.10 Polymorphism
2.11 Object Relationships and
Associations
QL Consumer-Producer
Association
2.42 Aggragations and Object
‘Containment
2.19 Case Study; A Payroll Program
2.13.1 Steuctured Approach
213.2 The Object-Oriented
Approach
at]
16
"
8
Tyviii comments:
2.14 Advanced Topics 52 4.3 Rumbaugh ét ais Object
2.141 Object and Tentity R Modeiog Teteias =
2.14.2 Static ind Dynamic Sl ie Oli Ho *
Binding M 4.32 The OMT Dynamic Model 63
ZA4S Object Pexritence a 4.3.3 The OMT Functional Model’ 64
24 Meta-Clasees i444 The Booch Methodology 65
245 Summary 3s 4.4.1 The Macro Development “
3, OBJECT-ORIENTED SYSTEMS: wastrel ne
DEVELOPMENT LIFE CYCLE » Tie Mian Beveloprsant a
aan 2. 4.5 The Jacobson et al.
3.2 The Soltware Development metnodotogies é
oe 2 4.5.1 Use Cases 3
a8 Ruling MijhCasity SoRware 42 45.2. Object-Oriented Software
a eet Oriented ooere Engineering: Objectory ”
Development: so-Case
4.53 Object-Oriented Business
peas, gir ; % Engineering v
3.4.1 Object-Oriented Analysig— n
Use-Case Driven ee SRE
5, 4.6.1 Generative and
3.2 Object-Oriented Design a7 Nonpebisiitn Paloma n
34.3 Prototyping “7 4.62 Panes Template 8
3.4.4 Implementation; Component- 4.6.3 Antipatierns
Bilet Decloorent 2 4.64 Capturing Panems 6
345 incremental Testing a <7 aianete -
25 Feaieabilty, ” 4.8 The Unified Approach ®
3.6 Summary Sa 48-1 Object-Oriented Analysis 79
48.2 Object-Ciemed Design 80
4.3.3 lerative Development and
‘Continuous Testing, aa
Te S| 43.4: Modeling Bused on the
. Unified Modeling Language 80
Methodology, Modeling, and 48,5 The UA Proposed
Unilied Moveting Language Repository al
4.8.6 The Layered Approach to
4. OBJECT-ORIENTED
METHODOLOGIES i Sina Dereeanen 5
- Toward 44.01 The Business Layer
Unification—Too Many 486.2 The User Interface (View)
Mothodologies ot dayer "
4.2 Survey of Some of the Object- 4803 The Access Layer et
Oriented Methodologies 62 4.9 Summary et5. UNIFIED MODELING LANGUAGE 49
5.1 Introduetion,
5.2 Static and Dynamic Models
5.2.1 Static Model
52:2 Dynamic Model
5.3 Why Modeling?
5.4 Introduction to tha Unified
Modeling Language
5.5 UML Diagrams
5.6 UML Class Diagram
5.6.1 Class Notation; Static
Structure
4.62 Object Diagram
3.63 Class Interface Notation
3.64 Binary Association Notation
5.6.5 Association Role
5.6.6 Qualifier
5.6.7 Multiplicity
4.6.8 OR Association
$.69 Association Class
5.610 N-Ary Association
5.6.11 Aggregation arid
‘Composition
5.6.12 Generalization
5:7 Use-Gase Diagram
5.8 UML Dynamic Modeling
5.8.1 UML Interaction Diagtinis
SAL UML Sequence Dizgrata
$12 UME Collaboration Diagram
$3.2 UML Statechart Diagram
$8.3 UML Activity Diagram
58.4 Implemeiiation Diagrams
SAL Component Diagram
5.84.2 Deployment Diagram
5.9 Model Management: Packages
and Model Grganization
5.10 UML Extensibility
5.10.1 Model Constraints and
Comments
99.
90
90
a
92
cc
Ee
4
38
95
98.
S38 £83435 85
S
8
rot
toa
Tos:
2
conTenTs ie
5.102 Note
$.10:3 Steeeotype
5.11 UML Mate-Modat
5.12 Summary
ur
ur
17
ty
Object-Oriented Analysis:
Use-Case Driven
6. OBJECT-ORIENTED ANALYSIS:
PROCESS: IDENTIFYING USE
CASES
6.41 Introduction
6.2 Why Analysis Is 8 Difficult
Activity
6.3 Business Object Analysis:
Understanding the Business
Layer
6.4 Use-Case Driven Object-
Orlented Analysis: The Unified
Approach
8.5 Business Process Modeling
6.8 Use-Case Mote!
6.6.1 Use Cases under the
Microscope
6.6.2 Uses and Extends
Associations
66,3 Identifying the Actors
6:64 Guidelines for Finding Use
Cases
6.63. How Detiled Must a Use
(Case Be? When to Stop
Decomposing and When
to Continue
6.66 Dividing Use Cases into
Packages
6.6.7 Naming a Use Case
Ww
128
i
10
136
iW
iatCONTENTS
6.7 Developing Effective:
Documentation
6.7.1 Organizing Conventions
for Documentation
6.7.2 Guidelines for Developing
ive Documentation
6.8 Case Study! Analyzing the
Viatiet Bank ATM—The
Use-Case Driven Process
6.8.1 Background
6.8.2 Identifying Actors and Use
Cases for the ViaNet Bank
ATM System
6.83 The ViuNet Bank ATM
Systems’ Packages
8.9 Summary
7. OBJECT ANALYSIS:
CLASSIFICATION:
7.1 Introduction
7.2 Claasitications Theory
7.3 Approaches for Identitying
Classes
7.4 Noun Phrase Approach
74.1 Identifying Tentative
Classes
7.42 Selecting Classes from
the Relevant and Fuzzy
: Categories
7AZ The ViaNet Bank ATM
System: Identifying Classes
by Using Noun Phrase
Approach
7.44 Initial List of Noun Phrases:
Candidate Classes
TAS Reviewing the Redundamt
Classes and Building »
Common Vocabulary
74,6 Reviewing the Classes
Containing Adjectives
iI
1st
132
is
134
13
159
7.4.7 Reviewing the Possible
Attribites
TAB Reviewing the Class
Purpose
7.5 Common Class Patterns
Approach
7.8.1 The ViaNet Bank ATM
System: Identifying Clastes
by Using Common Class
Patterns
77.8 Usi-Case Driven Approach:
Behaviors thraugh Sequences
Collaboration Modeling
7.6.1 Implementation of Scenarios
7.6.2 The ViaNet Bank ATM
System: Decomposing &
Use-Case Scenario with a
Sequence Diagram: Object
Behavior Analysis,
7.7 Classes, Responsibilities, and
Collaborators.
7.7.1 Classes, Responsiblties,
and Collaborators Process
7.42 ‘The ViaNet Bank ATM
System: Identifying Clisses
by Using Classes,
Responsibilities, and
Collaborutor
7.8 Naming Classes
7.0 Summary
8. IDENTIFYING OBJECT
RELATIONSHIPS, ATTRIBUTES,
AND METHODS:
Identifying Associations
8.2.2 Guidelines for Identifying
Associations
$.2.3 Common Association
Patlens
160
16h
183
m
Ww
m4
Ww
vt
7%
ne8.24 Eliminate Unnecessary
Associations
8.3 Supor-Sub Class
Relationships
8.3.1 Guidelines for idemifying
Super-Sub Rehitionship, a
‘Generalization
8.4 A-Partot Ralationships—
‘Aggregation
Si] A-Pant-of Relatioaship
Patterns
8.5 Case Study: Relationship
Analysis for the Wiaiet Bank
ATM System
&S.1 Identifying Classes"
Relationships
85.2 Developing a UML Class
Diagram Based on the
Use-Case Analysis
8.5.3 Defining Avsociation
Relationships
§.5.4 Defining Super-Sub
Relatienships
8.5.5 Mentifying the Aggregation’
a-Pur-af Relationstup
86 Glass Responsibility;
| identifying Attributes and
Methods
8.7 Class Responsibility: Defining
Attributes by Analyzing Use
‘Cases and Other UML
Diagrams
$7.1 Guidelines. for Defining.
Auributes
8.8 Defining Attributes for ViaNet
Bank Objects
2.8.1 Defining Attributes for the
BankClient Class
$8.2 Defining Attributes for the
Account Class *
8.8.3 Defining Auributes for the
Transaction Class
conrenrs xd
8.84 Defining Attributes for the
18 ATMMachine Class 1
8.9 Object Responsibility: Methods
rat and Messages wt
8.6.1 Defining Methods by
Analyzing UML Diagrams
58H and-Use Cases 192
8.10 Defining Methods for ViaNet
Be Bank Objects 12
8.10.1 Defining Account Class
i Operations 2
‘8.10.2 Defining BangClient
ims Class Operations ios
$10.3 Defining Checking Account
i ‘Cluss Operations 193
8.11 Summary 1b
tad
————— ——S
ns F
Ohject-Oriented Design
16 x
9, THE OBJECT-ORIENTED DESIGN
it PROCESS AND DESIGN AXIOMS 197
4.1 Introduction 199
29.2 The Object-Oriented Design
ied Process 200)
+9. Object-Oriented Design Axioms 202
)84 Corollaries 203
a 94.1 Corollary 1, Unouupled
Design with Less
my Information Content 208
O41.) Coupting Se]
190 94.1.2 Cohesion 206
942 Corollary 2 Single Purpose 206
190 9.4.3 Corollary 3. Large Nuruber
of Simpler Classes,
190 Reusability 206
9.4.4 Corollary 4. Strong Mapping 207
ia 9.4.5 Corollary 3. Standardization 208ARID coments
94.6 Corollary 6. Designing
with Inhentance
1 Achieving Multiple Inheritance
in @ Single Iniieritance
System
9.4.6.2 Avoiding Inheriting
Inapproprice Behaviors
95 Design Patterns
9.6 Summary
a
10. DESIGNING CLASSES
10.1 Introduction
10.2 The Object-Oriented Design
Philosophy
10,8 UML Object Constraint
Language
10.4 Designing Classes:
‘The Process
40.5 Class Visibility: Designing
‘Woll-Defined Public, Private,
and Protected Protocols
10.5.1 Private and Protected
Proiece! Layers: intemal
10.5.2 Public Protocol Layer,
External
>y 10.6 Designing Classes: Refining
Attributes.
10.6.1 Attribute Types
102° UML Auribute
Presentation
10.7 Refining Attributes for the
Viahet Bank Objects:
10.7.1 Refining Auributes for
the BankClient Class
107.2 Refining Attributes for
the Account Class
10-73 Refining Auributes for
the Transsetion Class
Problem 10,1
2
m
2
2
2B
22
a
24
10.7.4 Refining Atiributes for
the ATMMachine Clase
107.5 Refining Attributes for
the Checking Account
Class
10.7.6 Refining Auributes for
the SavingsAccount
Class
»» 10.8 Designing Methods and
5
10.8.1 Design tases: Avoiding
Design Pitfalls
1082 UML Operation
Presentation
10.8 Designing Methods tor the
‘Viatet Bank Objects
10.91 BankClient Class
VetityPaxsword Method
10.9.2 Account Class Deposit
Method
10.9.3 Account Class Withdraw
Method
10.9.4 Account Class
‘Create Transaction.
Method
10.9.5 Checking Account Chiss
Withdraw Method
10.9.6 ATMMachine Class
‘Operations.
10.10 Packages and Managing
Classes
10,11 Summary
41. ACCESS LAYER: OBJECT
‘STORAGE AND OBJECT
INTEROPERABILITY
V1.1 Introduction
41.2 Object Store nnd Persistence:
An Overview
24
2
20
230
230
aa7
27