You are on page 1of 64
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 Ty viii 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 et 5. 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 iat CONTENTS 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% ne 8.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 208 ARID 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

You might also like