Manning Logo
Home | Ordering Info | Shopping Cart | Manage My Account | Login
Attention customers: online shopping is now available exclusively through our main website: http://www.manning.com. Thank you.
Working with Objects

Inside the book

Sample Chapters Table of Contents Index Preface

Manning Blog

Why small is sweet?

Author Blogs

Dave Crane more...

Author Calendar

Upcoming Events

Catalog

Java .NET Perl XML All by Subject All by Title

About...

Manning Contact Us Ordering FAQs ebooks Covers Sandbox Forums Distributors Manning Early Access Program (MEAP) Affiliate Program Academia/Publicity User Group Program Press Releases Jobs

Manning Publications Co.
209 Bruce Park Avenue
Greenwich, CT 06830

Working with Objects
The OOram Software Engineering Method
Trygve Reenskaug

1995 | 420 pages
ISBN: 134529308
$47.95 Hardbound print book  

Table of Contents

Foreword xiii

Preface xv

Acknowledgments xx

Chapter 1 The Main Ideas 1

     1.1 The OOram Method 2
     1.2 The Technology Dimension 5
          1.2.1 Representing the Real World as Objects 6
          1.2.2 The Powerful Role Model Abstraction 7
          1.2.3 Separation of Concern and Role Model Synthesis 10
          1.2.4 OOram Implementation Links Role Models to Computer Programs 13
          1.2.5 OOram Reuse Technology 16
          1.2.6 Comparison with Other Methods 20
     1.3 Process with Deliverables 23
          1.3.1 Introduction to the Model Creation Process 24
          1.3.2 Introduction to the System Development Process 24
          1.3.3 Introduction to the Reusable Assets Building Processes 26
     1.4 Organization 28

Chapter 2 Role Modeling 31

     2.1 Modeling the Real World: Human Understanding and Human Communication 33
     2.2 Modeling Using Objects 36
     2.3 Modeling Using Roles 43
          2.3.1 A Travel Expense Example 45
          2.3.2 An Internet Example 45
          2.3.3 A Sample Model Having Four Roles 50
     2.4 The Model Creation Process and its Deliverables 52
     2.5 Basic OOram Role Modeling Concepts and Notation 57
          2.5.1 The Object 57
          2.5.2 Extemal Object Properties 57
          2.5.3 T he Role Model 59


Chapter 3 Role Model Synthesis 69

     3.1 Introduction to Synthesis: DerivedTravelExpense 71
          3.1.1 The AirlineBooking(AB) Model 72
          3.1.2 Creating the DerivedTravelExpense(DSE) Model 72
     3.2 The Synthesis Operation 78
          3.2.1 Aggregation: Linking Models on Different Levels of Abstraction 86
          3.2.2 Attributes and Message Parameters 88
          3.2.3 Safe and Unsafe Synthesis of the Travel Example Models 90
     3.3 Basic OOram Concepts and Notation for Role Model Synthesis 92
          3.3 1 The Inheritance and Role List Views 92
          3.3.2 Synthesis in the Area of Concern View 94
          3.3.3 Synthesis in the Environment and Stimulus-Response Views 95
          3.3.4 Synthesis in the Collaboration View 95
          3.3.5 Synthesis in the Scenario View 97
          3.3.6 Synthesis in the Interface View 99
          3.3.7 Synthesis in the Method Specification View 99


Chapter 4 Bridge to Implementation 101

     4.1 Introduction to Implementation 102
          4.1.1 Object Modeling from a Programmer's Point of View 104
          4.1.2 A Simple Class Inheritance Example 108
          4.1.3 Why we Need High Level Descriptions 112
     4.2 The Relationship between a Role Model and its Implementation 116
          4.2.1 Implementing the Roles 116
          4.2.2 Implementing the Ports and Interfaces 121
          4.2 3 Implementing the Methods and Actions 123
     4.3 The Implementation Process 124
     4.4 Choice of Programming Language 129


Chapter 5 Creating Reusable Components 133

     5.1 Introduction to Reuse 135
     5.2 Patterns 143
          5.2.1 Alexander's Pattern Language 144
     5.2.2 How to Create a Pattern 145
     5.3 OOram Frameworks 153


Chapter 6 Additional Role Modeling Concepts and Notation 157

     6.1 Semantic View 159
     6.2 Process View 162
     6.3 State Diagram View 168
     6.4 Role List View 172
     6.5 Modeling in the Large: The OOram Module 173


Chapter 7 Case Study: Development of a Business Information System 177

     7.1 Objects Everywhere 178
     7.2 Enterprise Model 184
          7.2.1 Determine the Area of Concem 185
          7.2.2 Understand the Problem and Identify the Nature of the Objects
          7.2.3 Determine Environment Roles and Stimulus/Response 189
          7.2.4 Identify and Understand the Roles 189
          7.2.5 Determine the Work Process 190
          7.2.6 Determine the Collaboration Structure 191
          7.2.7 Detemmine Interfaces 191
     7.3 Information Model 194
          7.3.1 Area of Concern 195
          7.3.2 Semantic View 195
          7.3.3 Role List View 195
          7.3.4 A Hybrid Solution with a Relational Database 196
          7.3.5 Collaboration View 197
          7.3.6 Interface View 198
     7.4 Task Tool/Service Model 199
          7.4.1 Creating Task Tool/Service Descriptions 200
          7.4.2 User Interface Design 201
          7.4.3 A Simple Direct Manipulation Interface for Our Task ExaI le 204
          7.4.4 A Composite User Interface for the Manager to
          7.4.5 Detemmine Travel Permission 205


Chapter 8 Case Study: The Analysis and Design of a Real Time System 211

     8.1 Environment Model 213
          8.1.1 Detemmine the Area of Concem 213
          8.1.2 Identify Environment Roles and Stimulus/Response 213
          8.1.3 Determine Typical Message Sequences 214
     8.2 Detailed Model 215
          8.2.1 Specify and Understand Objects and Roles 215
          8.2.2 Determine Typical Message Sequences 216
          8.2.3 Describe Roles as State Diagrams 216
          8.2.4 Detemmine the Interfaces 218
     8.3 Implementation Examples 221
          8.3.1 Bridge to C++ 222
          8.3 2 Bridge to Smalltalk 223
          8.3.3 Bridge to SDL 224
          8.3.4 Bridge to Distributed Object Systems 226
          8.3.5 OMG/CORBA 227
          8.3.6 COM/OLE 228
          8.3.7 OOram Executable Specifications 229


Chapter 9 Case Study: Lyle Creation of a Framework 235

     9.1 Step 1: Identify Consumers and Consumer Needs 237
     9.2 Step 2: Perform a Cost-benefit Analysis 238
     9.3 Step 3: Reverse Engineering of Existing Programs 239
          9.3.1 Container-Component Hierarchy 242
          9.3.2 Model-View-Controller 249
          9.3.3 Mouse and Keyboard Input 254
          9.3.4 Main Input Role Model 255
          9.3.5 TranslatingSensor Initialization Model 255
          9.3.6 The Scroller Role Model 257
     9.4 Step 4: Specify the New Framework 259
     9.5 Step 5: Document the Framework as Patterns
     Describing how to Solve Problems 260
          9.5.1 Pattern 1: The Tool 260
          9.5.2 Pattern 2: Fixed Proportion Tool Layout 261
          9.5.3 Pattern 3: Flexible Tool Layout 262
          9.5.4 Pattern 4 The Controller 263
          9.5.5 Pattern 5: The Model Object 263
          9.5.6 Pattern 6: The View 264
     9.6 Step 6: Describe the Framework's Design and Implementation 266
     9.7 Step 7: Inform the Consumer Community 271


Chapter 10 Organizing for Software Productivity 273

     10.1 An Industrial Approach to Software Production 274
     10.2 Large-scale Production of Intelligent Network Services 281
     10.3 Large-scale Production of Customized Business Information Systems 285


Chapter 11 Advanced Reuse Based on Object Instances 293

     11.1 Introduction to Object Reuse 294
     11.2 Runtime Configuration and Object Trading 295
     11.3 The OOram Composition System 298
          11.3.1 The OOCS Schema Creator Layer 302
          11.3.2 List of Instructions: OOCS Schema Creation 302
          11.3.3 The Nature of OOCS Schemas 303
          11.3.4 The OOCS Type Implementor Layer 305
     11.4 Object Duplication 309
          11.4.1 shallowCopy-Too Simple in Most Cases 311
          11.4.2 postCopy-A Default Duplication Algorithm 312
          11.4.3 structureCopy for the General Case 314
          11.4.4 deepCopy-A Dangerous Operation 316


Chapter 12 Case Study: Intelligent Network Services Organized in a Value Chain 319

     12.1 A Simple Case with an Extensible Solution 320
     12.2 User Layer 326
     12.3 Subscriber Layer 327
     12.4 Service Provider Layer 329
     12.5 Service Creator Layer 331
     12.6 Service Constituent Creator Layer 334
     12.7 Network Layer 337

Appendix A The OOram Language 339

Appendix B References 353

Where to Find Definitions of Important Terms 359

Index 361

DESCRIPTION

Working With Objects is the authoritative account of the highly successful OOram method for software analysis, design, development, maintenance and reuse. OOram has been fine-tuned over a decade on hundreds of projects by Trygve Reenskaug and his collaborators. It is supported by available CASE tools, training, and consulting.

Working With Objects is the source on a method which takes an evolutionary step forward in object-oriented development practices. OOram adds the intuitively simple but powerful concept of a role to object-oriented models and methods. For example, imagine trying to describe a person as an object. The most effective way to do this would be to independently describe each of the roles that person adopts (parent, employee, and so on) and then define how the person supports them. These ideas form the heart of the OOram approach.

In a presentation rich with examples, Working With Objects is anything but the typical, dry methodology book. It tells real-life stories. It teaches how to apply role modeling and benefit from its inherent advantages, including:

  • Multiple views of the same model
  • Support for both data- and process-centered approaches
  • Large systems described through a number of distinct models
  • Derivation of composite models from simpler, base models
  • Decentralized management of very large systems
  • Programming language-independent design
  • Step-by-step transformation of models into implementations
  • Integration of powerful reuse techniques with work policies, processes and organization

WHAT THE EXPERTS SAY ABOUT THIS BOOK...

"The first method that deals realistically with reuse, and one of the few that comes close to describing what I do when I design."
--Ralph Johnson, University of Illinois

"...the authors take you on a journey through object techniques filled with examples. You will come away from this book enriched, with a sound understanding of OT-based abstractions for modelling programs."
--Richard Mark Soley, OMG

ABOUT THE AUTHOR...

Trygve Reenskaug is a thirty-year veteran of object orientation. He and his collaborators developed the OOram method gradually, starting in 1983. Reenskaug is the original developer of the Model View Controller framework, which is today the centerpiece of most object-oriented user interface toolkits. Per Wold and Odd Arild Lehne have extensive experience applying and teaching OOram.

Home | Catalog | Privacy Policy | About Manning

© 2003-2006 Manning Publications Co.