Our Blog Excerpts Savings Contact

logo

Dorset House Publishing
High-Quality Books on Software Engineering and Management.  Since 1984.
dorsethouse.com > titles

 

iDH Sign-Up


Get Our e-News
Delivered by FeedBurner

Contents of

Fundamentls of Object-Oriented Design in UML

by Meilir Page-Jones
foreword by Larry L. Constantine

ISBN: 978-0-201-69946-3  
©2000  480 pages   softcover  
$39.95 (plus shipping)

Subject(s): Object-Oriented Design

Paypal
*For UPS Ground within U.S. only.
For more info., or for Int.'l or rush orders, click here.

Rate this
Book.

Foreword xv

Preface xvii

Part I Introduction 1

Chapter 1 What Does It Mean to Be Object Oriented, Anyway? 3

1.1 Encapsulation 9
1.2 Information/Implementation Hiding 12
1.3 State Retention 14
1.4 Object Identity 15
1.5 Messages 19

1.5.1 Message structure 19
1.5.2 Message arguments 21
1.5.3 The roles of objects in messages 23
1.5.4 Types of message 25

1.6 Classes 27
1.7 Inheritance 33
1.8 Polymorphism 38
1.9 Genericity 43
1.10 Summary 48
1.11 Exercises 50
1.12 Answers 52

Chapter 2 A Brief History of Object Orientation 57

2.1 Where Did Object Orientation Come From? 57

2.1.1 Larry Constantine 58
2.1.2 O.-J. Dahl and K. Nygaard 58
2.1.3 Alan Kay, Adele Goldberg, and others 58
2.1.4 Edsger Dijkstra 58
2.1.5 Barbara Liskov 59
2.1.6 David Parnas 59
2.1.7 Jean Ichbiah and others 59
2.1.8 Bjarne Stroustrup 59
2.1.9 Bertrand Meyer 60
2.1.10 Grady Booch, Ivar Jacobson, and Jim Rumbaugh 60

2.2 Object Orientation Comes of Age 60
2.3 Object Orientation As an Engineering Discipline 62
2.4 What's Object Orientation Good For? 64

2.4.1 Analyzing users' requirements 65
2.4.2 Designing software 65
2.4.3 Constructing software 66
2.4.4 Maintaining software 69
2.4.5 Using software 69
2.4.6 Managing software projects 70

2.5 Summary 73
2.6 Exercises 75
2.7 Answers 76

Part II The Unified Modeling Language 77

Chapter 3 Basic Expression of Classes, Attributes, and Operations 85

3.1 The Class 85
3.2 Attributes 87
3.3 Operations 89
3.4 Overloaded Operations 92
3.5 Visibility of Attributes and Operations 93
3.6 Class Attributes and Operations 94
3.7 Abstract Operations and Classes 95
3.8 The Utility 97
3.9 Parameterized Classes 98
3.10 Summary 100
3.11 Exercises 102
3.12 Answers 103

Chapter 4 Class Diagrams 107

4.1 The Generalization Construct 108

4.1.1 Single inheritance 108
4.1.2 Multiple inheritance 110
4.1.3 Subclass partitioning 110
4.1.4 Partitioning discriminators 114

4.2 The Association Construct 115

4.2.1 The basic UML notation for associations 116
4.2.2 Associations depicted as classes 119
4.2.3 Higher-order associations 120
4.2.4 Navigability of associations 122

4.3 Whole/Part Associations 123

4.3.1 Composition 123
4.3.2 Aggregation 126

4.4 Summary 130
4.5 Exercises 131
4.6 Answers 133

Chapter 5 Object-Interaction Diagrams 137

5.1 The Collaboration Diagram 138

5.1.1 Depicting a message 139
5.1.2 Polymorphism in the collaboration diagram 142
5.1.3 Iterated messages 143
5.1.4 Use of self in messages 144

5.2 The Sequence Diagram 146
5.3 Asynchronous Messages and Concurrent Execution 149

5.3.1 Depicting an asynchronous message 149
5.3.2 The callback mechanism 151
5.3.3 Asynchronous messages with priority 155
5.3.4 Depicting a broadcast (nontargeted) message 157

5.4 Summary 159
5.5 Exercises 161
5.6 Answers 162

Chapter 6 State Diagrams 164

6.1 Basic State Diagrams 165
6.2 Nested States 167
6.3 Concurrent States and Synchronization 171
6.4 Transient States from Message-Result Arguments 176
6.5 Continuously Variable Attributes 178
6.6 Summary 180
6.7 Exercises 182
6.8 Answers 184

Chapter 7 Architecture and Interface Diagrams 188

7.1 Depicting System Architecture 189

7.1.1 Packages 189
7.1.2 Deployment diagrams for hardware artifacts 191
7.1.3 Deployment diagrams for software constructs 193

7.2 Depicting the Human Interface 196

7.2.1 The window-layout diagram 196
7.2.2 The window-navigation diagram 198
7.2.3 A brief digression: What's object oriented about a GUI? 200

7.3 Summary 202
7.4 Exercises 203
7.5 Answers 204

Part III The Principles of Object-Oriented Design 207

Chapter 8 Encapsulation and Connascence 209

8.1 Encapsulation Structure 209

8.1.1 Levels of encapsulation 210
8.1.2 Design criteria governing interacting levels of encapsulation 212

8.2 Connascence 214

8.2.1 Varieties of connascence 214
8.2.2 Contranascence 220
8.2.3 Connascence and encapsulation boundaries 221
8.2.4 Connascence and maintainability 222
8.2.5 Connascence abuses in object-oriented systems 224
8.2.6 The term connascence 227

8.3 Summary 228
8.4 Exercises 230
8.5 Answers 231

Chapter 9 Domains, Encumbrance, and Cohesion 233

9.1 Domains of Object Classes 234

9.1.1 The foundation domain 235
9.1.2 The architecture domain 235
9.1.3 The business domain 236
9.1.4 The application domain 237
9.1.5 The source of classes in each domain 238

9.2 Encumbrance 241

9.2.1 What is encumbrance? 241
9.2.2 The use of encumbrance 244
9.2.3 The Law of Demeter 244

9.3 Class Cohesion: A Class and Its Features 246

9.3.1 Mixed-instance cohesion 247
9.3.2 Mixed-domain cohesion 248
9.3.3 Mixed-role cohesion 250

9.4 Summary 253
9.5 Exercises 254
9.6 Answers 255

Chapter 10 State-Space and Behavior 259

10.1 State-Space and Behavior of a Class 259
10.2 The State-Space of a Subclass 263
10.3 The Behavior of a Subclass 266
10.4 The Class Invariant as a Restriction on a State-Space 267
10.5 Preconditions and Postconditions 269
10.6 Summary 272
10.7 Exercises 273
10.8 Answers 274

Chapter 11 Type Conformance and Closed Behavior 278

11.1 Class versus Type 279
11.2 The Principle of Type Conformance 281

11.2.1 The principles of contravariance and covariance 282
11.2.2 An example of contravariance and covariance 283
11.2.3 A graphic illustration of contravariance and covariance 288
11.2.4 A summary of the requirements for type conformance 290

11.3 The Principle of Closed Behavior 291
11.4 Summary 294
11.5 Exercises 295
11.6 Answers 296

Chapter 12 The Perils of Inheritance and Polymorphism 299

12.1 Abuses of Inheritance 299

12.1.1 Mistaken aggregates 300

12.1.2 Inverted hierarchy 301
12.1.3 Confusing class and instance 302
12.1.4 Misapplying is a 306

12.2 The Danger of Polymorphism 309

12.2.1 Polymorphism of operations 309
12.2.2 Polymorphism of variables 312
12.2.3 Polymorphism in messages 314
12.2.4 Polymorphism and genericity 316

12.3 Summary 319
12.4 Exercises 320
12.5 Answers 322

Chapter 13 Techniques for Organizing Operations 327

13.1 Mix-In Classes 327

13.1.1 A business example 328
13.1.2 A graphics example 333

13.2 Rings of Operations 336

13.3 Summary 342
13.4 Exercises 343
13.5 Answers 344

Chapter 14 Class Cohesion and Support of States and Behavior 349

14.1 State Support in a Class Interface 350
14.2 Behavior Support in a Class Interface 352
14.3 Operation Cohesion in a Class Interface 360
14.4 Summary 364
14.5 Exercises 366
14.5 Answers 371

Chapter 15 Designing a Software Component 377

15.1 What Is a Component? 378
15.2 Similarities and Differences Between Components and Objects 380
15.3 Example of a Component 382
15.4 Internal Design of a Component 389
15.5 Lightweight and Heavyweight Components 397
15.6 Advantages and Disadvantages of Using Components 400
15.7 Summary 406
15.8 Exercises 408
15.9 Answers 409

Appendix A: Checklist for an Object-Oriented Design Walkthrough 411
Appendix B: The Object-Oriented Design Owner's Manual 417
Appendix C: The Blitz Guide to Object-Oriented Terminology 423

Glossary 425
Bibliography 443
Index 451


Return to Book Page


Features
Reviews
Table of Contents
Preface
Index

Downloads
Dorset House Catalog
This Book's Flyer

By this Author
Practical Project Management: Restoring Quality to DP Projects and Systems
What Every Programmer Should Know About Object-Oriented Design

Also Recommended

Process for System Architecture and Requirements Engineering, by Hatley, Hruschka, and Pirbhai

Rethinking Systems Analysis & Design, by Gerald M. Weinberg

Strategies for Real-Time System Specification, by Derek J. Hatley and Imtiaz A. Pirbhai

Systems Modeling and Requirements Engineering: The ECSAM Method for Computer-Based Systems Analysis and Modeling, by Jonah Z. Lavi and Joseph Kudish

How to Order

To order this book by credit card directly from Dorset House in New York, please call (800) 342-6657 or (212) 620-4053, weekdays, 9am to 6pm. Alternatively, print out our Faxable Order Form and fax to (212) 727-1044.

To order this book from an online bookstore, please see above.

To purchase at a bookstore, contact our Recommended Booksellers to verify availability. Any store can order from Dorset House using the book's title and ISBN number. Also, bookstores can order our books through Baker & Taylor.

We'd like to make it easy for you to order, so please contact us at any time for help!

  DORSET HOUSE PUBLISHING CO., INC.
New: 3143 Broadway, Suite 2B    New York, New York 10027    USA
1-800-DH-BOOKS or 212-620-4053, fax 212-727-1044
Copyright © 1996-2008 by Dorset House Publishing Co., Inc. All rights reserved.
Home | Blog | Savings | Stores | Features | Titles | Authors | Subjects | Orders | About | Contact | Legal