Subject Area: Programming Languages and Paradigms
in CIDEC Library.
PATTERN LANGUAGES OF PROGRAM DESIGNPublisher : Addison-Wesley Publishing Co. - Reading, Mass.
Bibliographic :
The first conference on Pattern Languages of Program Design (PLoP) was a watershed event that gave a public voice to the software design pattern movement. Seventy software professionals from around the world worked together to capture and refine software experience that exemplifies the elusive quality called "good design." This volume is the result of that work--a broad compendium of this new genre of software literature.
Patterns are a literary form that take inspiration from literate programming, from a design movement of the same name in contemporary architecture, and from the practices common to the ageless literature of any culture. The goal of pattern literature is to help programmers resolve the common difficult problems encountered in design and programming. Spanning disciplines as broad as client/server programming, distributed processing, organizational design, software reuse, and human interface design, this volume encodes design expertise that too often remains locked in the minds of expert architects. By capturing these expert practices as problem-solution pairs supported with a discussion of the forces that shape alternative solution choices, and rationales that clarify the architects' intents, these patterns convey the essence of great software designs.
CONTENTS :
"Night Patterns" A Poem by Richard Gabriel
Introduction - Ward Cunningham, Ralph Johnson
PART ONE: Frameworks & Components. * Functionality Ala-carte (Sam Adams) * A Pattern Language for Tool Construction and Integration Based on the Tools and Materials Metaphor (Dirk Riehle, Heinz Zuellighoven) * Flexible Command Interpreter (Norbert Portner) * New Clients with Old Servers: A Pattern Language for Client/Server Frameworks (Kirk Wolf, Chamond Liu)
PART TWO: Systems & Distributed Processing. * A Generative Pattern Language for Distributed Processing (Dennis DeBruler) * G++: A Pattern Language for the Object Oriented Design of Concurrent and Distributed Information Systems with Applications to Computer Integrated Manufacturing (Gabriele Elia, Amund Aarsten, Giuseppe Menga) * A Pattern for Generating a Layered Architecture (Barry Rubel) * Pattern: Half Object + Protocol (Gerard Meszaros) * The Master-Slave Pattern (Frank Buschmann)
PART THREE: Business Objects. * The CHECKS Pattern Language of Information Integrity (Ward Cunningham) * Account Number: A Pattern (William Wake) * STARS: A Pattern Language for Query-Optimized Schema (Steve Peterson)
PART FOUR: Process and Organization. * A Development Process Generative Pattern Language (James Coplien) * Consolidation and Aggregation Patterns that Support Evolution and Reuse (Brian Foote, William Opdyke) * RAPEL: A Requirements Analysis Pattern Language for Object Oriented Development (Bruce Whitenack) * Caterpillar's Fate: A Pattern Language for Transformation from Analysis to Design (Norman Kerth)
PART FIVE: Design Patterns and Catalogs. * A System of Patterns (Frank Buschmann, Regine Meunier) * Relationships Between Design Patterns (Walter Zimmer) * Discovering Patterns in Existing Applications (Robert Martin) * Implementing Patterns (Jiri Soukup)
PART SIX: Architecture & Communication. * Streams: A Pattern for "Pull-Driven" Processing (Stephen Edwards) * The Pipes and Filters Architecture (Regine Meunier) * Pattern-based Integration Architectures (Diane Mularz) * Patterns of Software Architectures (Mary Shaw)
PART SEVEN: Object Usage and Style. * Understanding and Using ValueModels (Bobby Woolf) * Pattern: Client-specified Self (Panu Viljamaa) * Reusability Through Self-Encapsulation (Ken Auer)
PART EIGHT Events & Event Handlers. * Handlers for Separating Assembly and Processing (Steve Berczuk) * Reactor: An Object Behavioral Pattern for Concurrent Event Demultiplexing and Dispatch (Douglas Schmidt) * Patterns of Events (Alexander Ran)
Includes bibliographical references and index.
Changed 24/01/1997. Comments: monika@cs.ioc.ee