Object-Oriented Construction Handbook

Object-Oriented Construction Handbook

Developing Application-Oriented Software with the Tools & Materials Approach

1st Edition - September 28, 2004

Write a review

  • Author: Heinz Züllighoven
  • eBook ISBN: 9780080491967

Purchase options

Purchase options
DRM-free (EPub, Mobi, PDF)
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order

Description

Successful businesses and organizations are continually looking for ways to improve service and customer satisfaction in order to achieve long-term customer loyalty. In light of these goals, software developers must ask the question: how does customer orientation influence traditional approaches, methods, and principles of software development? In this book, a leading software architect and his team of software engineers describe how the idea of customer orientation in an organization leads to the creation of application-oriented software. This book describes what application-oriented software development is and how it can be conceptually and constructively designed with object-oriented techniques. It goes further to describe how to best fit together the many different methodologies and techniques that have been created for object-orientation (such as frameworks, platforms, components, UML, Unified Process, design patterns, and eXtreme Programming) to design and build software for real projects. This book brings together the best of research, development, and day-to-day project work to the task of building large software systems.

Key Features

*Written by and for developers of large, interactive, and long-lived software systems
*Includes patterns of proven analysis, design, and documentation techniques
*Shows how to develop an appropriate design approach and concrete software development techniques

Readership

Software engineers, developers, project managers, system architects, method developers, and students.

Table of Contents

  • Chapter 1 Introduction
    1.1 Application Orientation—The Subject of This Book
    1.1.1 Motivation
    1.1.2 Structure of This Book
    1.2 The Tools & Materials Approach (T&M)
    1.2.1 The T&M Approach in a Nutshell
    1.2.2 T&M as a Method
    1.3 Projects Behind This Book
    1.3.1 The Scope of the T&M Projects
    1.4 The Equipment Management System Example
    1.5 References

    Chapter 2 The T&M Object Metamodel
    2 .1 The Object Metamodel
    2.1.1 Introduction
    2.1.2 Definition: The Object Metamodel
    2.1.3 Context: What's the Purpose of an Object Metamodel?
    2.1.4 Context: A Classification of Programming Languages
    2.1.5 The Object Metamodel and the Software Model
    2.1.6 Definition: Objects
    2.1.7 Discussion: Object Identity
    2.1.8 T&M Design: Structuring an Interface
    2.1.9 Definition: Classes
    2.1.10 Discussion: Generic Operations
    2.1.11 T&M Design: Generic Operations
    2.1.12 Discussion: The Object Life Cycle
    2.1.13 T&M Design: The Object Life Cycle
    2.1.14 Definition: Inheritance
    2.1.15 Discussion: Inheritance
    2.1.16 T&M Design: Inheritance
    2.1.17 Discussion: Role Relationships as an Alternative to Inheritance
    2.1.18 Definition: Use Relationships
    2.1.19 Discussion: Use Relationships
    2.1.20 Definition: Polymorphism
    2.1.21 Definition: Abstract Classes
    2.1.22 Discussion: Specification and Implementation
    2.1.23 Definition: Loose Coupling
    2.1.24 Discussion: Loose Coupling
    2.2 Modularization
    2.2.1 Introduction
    2.2.2 Context: Modules and Object Orientation
    2.2.3 Definition: Principles of Object-Oriented Modularization
    2.3 The Contract Model
    2.3.1 Introduction
    2.3.2 Definition: Contract Model
    2.3.3 Discussion: The Contract Model
    2.3.4 Context: The Contract Model and Abstract Data Types
    2.3.5 T&M Design: The Contract Model
    2.4 Types
    2.4.1 Introduction
    2.4.2 Definition: Types
    2.4.3 Context: The Theoretical Concept of Types
    2.4.4 Discussion: Types
    2.5 Classes and Types
    2.5.1 Introduction
    2.5.2 Classes in Your Design
    2.5.3 Differences between Types and Classes
    2.5.4 Discussion: Classes versus Types
    2.5.5 Background: Programming Languages and Types
    2.5.6 T&M Design: Classes and Types
    2.6 Values and Objects
    2.6.1 Introduction
    2.6.2 Characteristics of Values and Objects
    2.6.3 Using Values
    2.6.4 Context: Values and Objects in Programming Languages
    2.6.5 Definition: Domain Values
    2.6.6 T&M Design: Domain Values
    2.6.7 Implementing Domain Values
    2.7 Metaobject Protocols
    2.7.1 Introduction
    2.7.2 Motivation for a Metaobject Protocol
    2.7.3 Definition: Metaobject Protocol (MOP)
    2.7.4 Representing Your Application Model
    2.7.5 Representing Your Runtime System
    2.8 References

    Chapter 3 Guiding Metaphors and Design Metaphors
    3.1 Introduction
    3.2 Designing Application Software
    3.2.1 Definition: The Usage Model
    3.2.2 Background: Methodology Books versus Design Guidelines
    3.3 Guiding Metaphors for Application Software
    3.3.1 Background: Guiding Metaphors in Software Development
    3.3.2 The "Object Worlds" Guiding Metaphor
    3.3.3 The Direct Manipulation Guiding Metaphor
    3.3.4 Discussion: Guiding Metaphor of Direct Manipulation
    3.3.5 The Guiding Metaphor of the Factory
    3.3.6 Discussion: The Factory Guiding Metaphor
    3.4 Design Metaphors
    3.4.1 Definition: Metaphors
    3.5 T&M Guiding Metaphors and Design Metaphors
    3.5.1 A T&M Guiding Metaphor: The Expert Workplace
    3.5.2 Background: The Supportive View
    3.5.3 Discussion: Metaphors and Patterns
    3.5.4 Definition: A Tool
    3.5.5 The Tool as a Design Metaphor
    3.5.6 T&M Design: Software Tools
    3.5.7 Definition: Material
    3.5.8 Material as a Design Metaphor
    3.5.9 T&M Design: Software Materials
    3.5.10 Definition: The Work Environment
    3.5.11 The Work Environment as a Design Metaphor
    3.5.12 T&M Design: The Work Environment
    3.5.13 Definition: Automatons
    3.5.14 The Automaton as a Design Metaphor
    3.5.15 T&M Design: Software Automatons
    3.5.16 Definition: The Container
    3.5.17 The Container as a Design Metaphor
    3.5.18 T&M Design: Containers
    3.5.19 Discussion: Design Metaphors
    3.6 Workplace Types
    3.6.1 Definition: Workplace Types
    3.6.2 T&M Design: The Expert Workplace Type
    3.6.3 T&M Design: The Functional Workplace Type
    3.6.4 T&M Design: The Back-Office Workplace Type
    3.6.5 T&M Design: The Electronic Commerce Front-end Workplace Type
    3.7 References

    Chapter 4 Patterns, Frameworks, and Components
    4.1 Introduction
    4.2 Background: Patterns, Frameworks, and Components
    4.3 Patterns
    4.3.1 Definition: Patterns
    4.3.2 The Characteristics of a Pattern
    4.3.3 A Taxonomy of T&M Patterns
    4.3.4 Conceptual Patterns
    4.3.5 Design Patterns
    4.3.6 Programming Patterns
    4.3.7 T&M Design: Design Patterns
    4.3.8 T&M Design: Models, Metaphors, and Patterns
    4.3.9 Background: Pattern Form
    4.3.10 T&M Design: Pattern Form
    4.3.11 Pattern Collections
    4.4 Frameworks
    4.4.1 Background: Class Libraries
    4.4.2 Definition: Frameworks
    4.4.3 Application Frameworks
    4.4.4 Black Box and White Box Frameworks
    4.4.5 Connectors between Frameworks
    4.4.6 JWAM Framework: Layered Framework Architecture
    4.5 Components
    4.5.1 Background: Software Components
    4.5.2 Definition: Components
    4.5.3 Current Component Products
    4.5.4 Components and Frameworks
    4.6 REFERENCES

    Chapter 5 Application-Oriented Software Development
    5.1 Introduction
    5.2 Application-Oriented Software
    5.2.1 Application Software
    5.2.2 Definition: Application Orientation
    5.2.3 Background: Application Orientation
    5.2.4 Usage Quality
    5.2.5 T&M Design: Structural Similarity
    5.3 The Development Process
    5.3.1 Definition: Software Development
    5.3.2 The Application-Oriented Development Process
    5.3.3 Discussion: The Development Process
    5.3.4 The Author-Critic Cycle
    5.3.5 Discussion: The Author-Critic Cycle
    5.3.6 Evolutionary System Development
    5.3.7 Documentation in Software Development
    5.3.8 Discussion: Documentation
    5.3.9 Application-Oriented Development Documents
    5.3.10 Discussion: Application-Oriented Document Types
    5.3.11 T&M Design: Application-Oriented Document Types
    5.3.12 Discussion: T&M Document Types
    5.3.13 Project Documents
    5.3.14 Documentation Guidelines
    5.4 References

    Chapter 6 Software Development as a Modeling Process
    6.1 Introduction
    6.2 A Simplified Software Development Model
    6.2.1 Discussion: A Descriptive Software Development Model
    6.3 The Application Domain
    6.3.1 Definition: Application Domain
    6.3.2 Discussion: Analyzing the Application Domain
    6.4 The Domain Model
    6.4.1 Modeling Your Application Domain
    6.4.2 Discussion: Modeling Your Application Domain
    6.5 The Application System Model
    6.5.1 Context: The Application System Model
    6.5.2 Definition: Application System Model
    6.5.3 Discussion: Structural Similarity and Macrostructures
    6.6 The Application System
    6.6.1 Definition: The Application System
    6.6.2 Discussion: The Application System
    6.7 Software Development Contexts
    6.7.1 Discussion: Software Development Contexts
    6.7.2 The Application Domain Context
    6.7.3 Discussion: The Application Domain Context
    6.7.4 Applied Technique
    6.7.5 Handling and Presentation
    6.7.6 Discussion: Handling and Presentation
    6.8 Contexts Influencing the Software Architecture
    6.8.1 Discussion: How Contexts Influence Your Software Architecture
    6.9 References

    Chapter 7 T&M Conceptual Patterns
    7.1 Conceptual Patterns
    7.1.1 Conceptual Patterns in the Development Process
    7.1.2 The T&M Conceptual Patterns
    7.2 A Guided Tour of the T&M Conceptual Patterns
    7.3 The Interrelation of Tools and Materials Pattern
    7.4 The Material Design Pattern
    7.5 The Tool Design Pattern
    7.6 The Work Environment Pattern
    7.7 The Container Pattern
    7.8 The Form Pattern
    7.9 The Automaton Pattern
    7.10 The Domain Service Provider Pattern
    7.11 The Technical Automaton Pattern
    7.12 The Probe Pattern
    7.13 The Adjusting Tool Pattern

    Chapter 8 T&M Design Patterns
    8.1 Introduction
    8.2 A Guided Tour of the T&M Design Patterns
    8.3 The Aspect Pattern
    8.3.1 Construction Part: Using Inheritance or Interfaces to Implement Aspects
    8.3.2 Construction Part: Using Object Adapters to Implement Aspects
    8.3.3 Construction Part: Using Development Tools to Realize Aspects
    8.3.4 Construction Part: Alternatives to Using Aspects
    8.4 The Separating Function and Interaction Pattern
    8.5 The Tools Composition Pattern
    8.5.1 Construction Part: Using Components to Build Tools
    8.5.2 Construction Part: Using Components to Build Combination Tools
    8.5.3 Construction Part: Identifying Tool Boundaries
    8.6 The Feedback between Tool Parts Pattern
    8.6.1 Construction Part: Event Pattern
    8.6.2 Construction Part: Event Objects
    8.6.3 Construction Part: Chain of Responsibility
    8.6.4 Construction Part: Tool Component with Reaction Mechanisms
    8.7 The Separating FP and IP Pattern
    8.7.1 Construction Part: Interactive Part (IP)
    8.7.2 Construction Part: FP
    8.8 The Separating Handling and Presentation Pattern
    8.9 The Feedback between Interaction Forms and IP Pattern
    8.10 The Domain Values Pattern
    8.10.1 Construction Part: Domain Value Classes
    8.10.2 Construction Part: Immutable Domain Value Objects
    8.10.3 Construction Part: Mutable Domain Value Objects
    8.10.4 Construction Part: Implementing Domain Values as Streams
    8.10.5 Construction Part: Domain Value Types by Configuration
    8.11 The Domain Container Pattern
    8.11.1 Construction Part: Using Technical Containers to Implement Domain Containers
    8.11.2 Construction Part: Loading Materials
    8.11.3 Construction Part: Tables of Contents for Containers
    8.11.4 Construction Part: Implementing Tables of Contents as Materials
    8.11.5 Construction Part: Implementing Tables of Contents as Domain Values
    8.11.6 Construction Part: Coping with Changes to Containers
    8.12 The Form System Pattern
    8.13 The Automatons in Technically Embedded Systems Pattern
    8.14 The Domain Services Pattern
    8.15 The Environment Pattern
    8.16 Using the T&M Design Patterns for the JWAM Framework
    8.16.1 Materials Construction
    8.16.2 Tools Construction
    8.16.3 Domain Values
    8.16.4 Presentation and Interaction Forms
    8.16.5 Forms
    8.16.6 Domain Services
    8.16.7 Work Environment
    8.17 References

    Chapter 9 T&M Model Architecture
    9.1 The T&M Model Architecture
    9.2 The Domain Core of a Software Architecture
    9.2.1 The Use Context
    9.2.2 The Product Domain
    9.2.3 The Business Domain
    9.2.4 How Different Domains Relate
    9.3 Concepts and Elements of a T&M Model Architecture
    9.3.1 Components of an Object-Oriented Software Architecture
    9.3.2 Elementary Rules for Combining Elements of a Software Architecture
    9.3.3 Protocol-Based Layer Architectures
    9.3.4 Object-Oriented Layer Architectures
    9.3.5 The Layer Concept of the T&M Model Architecture
    9.3.6 The Three-Tier Architecture
    9.3.7 The T&M Model Architecture
    9.4 Design Patterns for the T&M Model Architecture
    9.4.1 The Role Pattern
    9.4.2 The Product Trader Pattern
    9.5 References

    Chapter 10 Supporting Cooperative Work
    10.1 Background: Computer-Supported Cooperative Work
    10.1.1 CSCW
    10.1.2 Technical and Domain Transparency
    10.2 Implicit Cooperation
    10.3 Explicit Cooperation by Exchanging Materials
    10.3.1 Cooperation Medium: Mailboxes
    10.3.2 Cooperation Medium: Mailing System
    10.4 Explicit Cooperation Model: Transaction Processing Support
    10.4.1 The Concept of Process Patterns
    10.4.2 Cooperation Medium: Routing Slips
    10.5 References

    Chapter 11 Interactive Application Systems and Persistence
    11.1 Background: Interactive Application Systems
    11.2 Persistence Services
    11.2.1 Software Registry
    11.2.2 The Basic Concept of a Software Registry
    11.2.3 Cooperation Model for a Registry
    11.2.4 Usage Model for a Registry
    11.2.5 JWAM: Architecture for a Software Registry
    11.2.6 The Generic Persistence Service
    11.3 Design Criteria to Implement Persistence
    11.3.1 Client-Server Architecture
    11.3.2 Identifiers
    11.3.3 Technical Data Modeling and Structural Mapping
    11.3.4 Querying and Data Warehousing
    11.3.5 Load-on-Demand
    11.3.6 Transactions and Locking
    11.3.7 Class Evolution
    11.3.8 Legacy Databases
    11.4 Real-World Examples
    11.4.1 JWAM Projects
    11.4.2 MedIS and SyLab

    Chapter 12 The Development Process
    12.1 Background: Evolutionary and Traditional Process Models
    12.1.1 The Context of Our Process Model
    12.1.2 The Process Model's Application Orientation
    12.1.3 The Classic Waterfall Model
    12.1.4 The Spiral Model
    12.1.5 An Idealized Evolutionary Process Model
    12.2 Topics for a Development Strategy
    12.2.1 Sequence of Development Activities
    12.2.2 Objectifying the Development Process
    12.2.3 Lehman's Software Classification
    12.2.4 The Cooperative Development Process
    12.2.5 Organizational and Domain Integration
    12.2.6 Developing an IT Organization
    12.3 Quality Assurance in the Development Process
    12.3.1 Direct User Integration
    12.3.2 Prototyping
    12.3.3 Reviews
    12.3.4 Pair Programming
    12.3.5 Refactoring
    12.4 Quality Assurance in Construction
    12.4.1 Characteristics of OO Testing
    12.4.2 Testing OO Programs
    12.5 Project Management
    12.5.1 Fundamental Activities of the Management Process
    12.5.2 The Contexts of the Management Process
    12.6 Project Planning Concepts and Techniques
    12.6.1 Project Calibration
    12.6.2 Project Goals
    12.6.3 Decision Principles
    12.6.4 Project Establishment
    12.7 Structuring a Project by System Decomposition
    12.7.1 Core System and Special-Purpose Systems
    12.7.2 Core System and Extension Levels
    12.8 Scheduling and Task Planning
    12.8.1 General Rules for Time Estimates
    12.8.2 Planning the Project Stages
    12.8.3 Using Base Lines for Detailed Planning
    12.8.4 The UP and T&M Project Planning
    12.9 Discussing T&M, Unified Process, and XP
    12.9.1 Structure of the UP and T&M Development Processes
    12.10 References

    Chapter 13 T&M Document Types
    13.1 Scenarios
    13.1.1 Using Scenarios in the Development Process
    13.1.2 Subtypes of Scenarios
    13.1.3 Scenarios and UML
    13.2 Interviews
    13.2.1 The Interview Process
    13.3 The Concept Model
    13.3.1 Using a Concept Model in the Development Process
    13.3.2 Concept Models and UML
    13.4 Glossaries
    13.4.1 Using a Glossary in the Development Process
    13.4.2 Glossaries, UML, and UP
    13.5 System Visions
    13.5.1 Using System Visions in the Development Process
    13.5.2 System Visions and XP
    13.5.3 System Visions and UML
    13.6 Prototypes
    13.6.1 Using Prototypes in the Development Process
    13.6.2 Prototypes and UP
    13.7 Cooperation Pictures
    13.7.1 Cooperation Pictures in the Development Process
    13.7.2 Cooperation Pictures and UML
    13.8 Purpose Tables
    13.8.1 Using Purpose Tables in the Development Process
    13.8.2 Purpose Tables and UML
    13.9 Technical Document Types in UML
    13.9.1 Class Diagrams
    13.9.2 Object Diagrams
    13.9.3 Use Case Diagrams
    13.9.4 Interaction Diagrams
    13.9.5 Statechart Diagrams
    13.9.6 Activity Diagrams
    13.9.7 Component Diagrams
    13.9.8 Deployment Diagrams
    13.9.9 Application-Oriented and Technical Documents
    13.10 References

Product details

  • No. of pages: 544
  • Language: English
  • Copyright: © Morgan Kaufmann 2004
  • Published: September 28, 2004
  • Imprint: Morgan Kaufmann
  • eBook ISBN: 9780080491967

About the Author

Heinz Züllighoven

Heinz Züllighoven graduated in mathematics and German language and literature and holds a Ph.D. in computer science. He is a professor in the Computer Science Department at the University of Hamburg and managing director of IT–Workplace Solutions Ltd., where he consults on industrial software development projects in the area of object-oriented design; among his clients are several major banks and companies of the service industry. His current research interests include object-oriented migration strategies for legacy systems and the architecture of large industrial interactive software systems.

Affiliations and Expertise

IT - Workplace Solutions, Inc., and University of Hamburg, Germany.

Ratings and Reviews

Write a review

There are currently no reviews for "Object-Oriented Construction Handbook"