Books

Papers/Articles

Books : reviews

[cover]

James O. Coplien, Douglas C. Schmidt, editors. Pattern Languages of Program Design. Addison Wesley. 1995

Rating: 3
[ unmissable | great stuff | worth reading | passes the time | waste of time | unfinishable ]

reviewed 3 October 2000

Patterns have caught on as a way of cataloguing object-oriented designs. There is an annual conference on the subject, and this is the "proceedings" of the first such conference. Chock full of interesting ideas ranging over everything from single patterns to entire Pattern Languages, from a Pattern for account numbers to Patterns for the entire analysis process or even structuring a software development company, there is something useful here for everyone.

The Patterns are grouped into the following categories: • Frameworks and Components • Systems and Distributed Processing • Business Objects • Process and Organization • Design Patterns and Catalogs • Architecture and Communication • Object Usage and Style • Events and Event Handlers

Contents

Sam S. Adams.
Functionality Ala Carte
Give users better feed-back over simulations by using a "performance trade-off menu" showing the performance consequences of parameter choices
Dirk Riehle, Heinz Zullighoven.
A Pattern Language for tool construction and integration based on the Tools and Materials metaphor
Norbert Portner.
Flexible Command Interpreter: a Pattern for extensible and language-independent interpreter system
Kirk Wolf, Chamond Liu.
New Clients with Old Servers: a Pattern Language for Client/Server frameworks
Dennis L. DeBruler.
A generative Pattern Language for distributed processing
A process for designing distributed systems
Amund Aarsten, Gabriele Elia, Giuseppe Menga.
G++: a Pattern Language for Computer-Integrated Manufacturing
Hierarchies of control layers; controlling visibility and communication; granularity of concurrency
Barry Rubel.
Patterns for generating a layered architecture
Using layers to capture the real world, the model of the real world, control of the model, and the operator interface
Gerard Meszaros.
Pattern: Half-object+Protocol [HOPP]
Distributing a single object across two data spaces
Frank Buschmann.
The Master-Slave Pattern
Replicated services for fault tolerance and robustness
Ward Cunningham.
The CHECKS Pattern Language of information integrity
Separating good input from bad input
William C. Wake.
Account Number: a Pattern
Stephen Peterson.
Stars: a Pattern Language for query-optimised schemas
Converting the data from an on-line transaction processing system to a format suitable for a decision support system
James O. Coplien.
A generative development-process Pattern Language
Building, structuring, and growing a software development company
Brian Foote, William F. Opdyke.
Lifecycle and refactoring Patterns that support evolution and reuse
Bruce G. Whitenack.
RAPPeL: a requirements-analysis-process Pattern Language for object-oriented development
Norman L. Kerth.
Caterpillar's Fate: a Pattern language for the transformation from analysis and design
Metamorphosing the analysis document into an initial software design
Frank Buschmann, Regine Meunier.
A System of Patterns
Classifying Patterns according to granularity (architectural, design, idiom), functionality (creation, communication, access, complex tasks), and structure (abstraction, encapsulation, separation, coupling)
Walter Zimmer.
Relationships between Design Patterns
Categorising the relationships between the patterns in Design Patterns
Robert C. Martin.
Discovering Patterns in existing applications
Summary of Patterns discovered in C++ code
Jiri Soukup.
Implementing Patterns
Using explicit classes to capture design patterns in the implementation
Stephen H. Edwards.
A Pattern for "pull-driven" processing
Streams
Regine Meunier.
The Pipes and Filters architecture
Diane E. Mularz.
Pattern-based integration architectures
Integrating legacy assets and stand-alone off-the-shelf components
Mary Shaw.
Patterns for software architectures
Bobby Woolf.
Understanding and using the ValueModel framework in VisualWorks Smalltalk
Panu Viljamaa.
Client-specified Self
Replace calls to self (or this) with an argument, to allow a flexible form of delegation
Ken Auer.
Reusability through Self-encapsulation
Encapsulating the state to protect subclasses from design decisions and changes, including idioms for initialisation and default values
Stephen P. Berczuk.
A Pattern for separating assembly and processing
Separating the construction of objects from a data stream or packets, from the subsequent processing of the objects
Douglas C. Schmidt.
Reactor: an object behavioral Pattern for concurrent even demultiplexing and event handler dispatching
Alexander S. Ran.
Patterns of events
Event-centred architectures
Dwayne Towell.
Request Screen Modification
Updating the screen appearance of overlapping objects