Based on the book "Patterns Almanac 2000" by Linda Rising. Web version by Charles Weir. Hosted by the Small Memory Software site. |
Aarsten+95 | G++: A Pattern Language for Computer-Integrated Manufacturing |
Aarsten+96a | Designing Concurrent and Distributed Control Systems |
Aarsten+96b | Object-Oriented Design Patterns in Reactive Systems |
Adams+96 | Fault-Tolerant Telecommunication System Patterns |
Adams95 | Functionality Ala Carte |
Alexander+75 | The Oregon Experiment |
Alexander+77 | A Pattern Language |
Alexander79 | The Timeless Way of Building |
Alpert+98 | The Design Patterns Smalltalk Companion |
Anderson99 | A Collection of History Patterns |
Anthony96 | Patterns for Classroom Education |
Auer95 | Reusability Through Self-Encapsulation |
Auer+96 | Lazy Optimization: Patterns for Efficient Smalltalk Programming |
Barkataki+98 | Reengineering A Legacy System Using Design Patterns and Ada-95 Object-Oriented Features |
Bäumer+97 | Framework Development for Large Systems |
Bäumer+98 | Product Trader |
Bäumer+99 | The Role Object Pattern |
Beck97 | Smalltalk Best Practice Patterns |
Beedle+99 | Scrum: A Pattern Language for Hyperproductive Software Development |
Berczuk95 | A Pattern for Separating Assembly and Processing |
Berczuk96 | Organizational Multiplexing: Patterns for Processing Satellite Telemetry with Distributed Teams |
Berczuk97 | Teamwork and Configuration Management |
Boyd98a | Architecture Patterns for Business Systems |
Boyd98b | Business Patterns of Association Objects |
Bradac+98 | A Pattern Language for Developing Form Style Windows |
Braga+99 | Tropyc: A Pattern Language for Cryptographic Software |
Brant+99 | Creating Reports with Query Objects |
Brown96 | Experiencing Patterns at the Design Level |
Brown+96b | Crossing Chasms: A Pattern Language for Object-RDBMS Integration |
Brown+96a | A Pattern Language for Smalltalk & Relational Databases |
Buschmann95 | The Master-Slave Pattern |
Buschmann96 | Reflection |
Buschmann+96 | Pattern-Oriented Sofware Archicture--A System of Patterns |
Cargill96 | Localized Ownership: Managing Dynamic Objects in C++ |
Carlson99 | Essence |
Carlson+99 | Temporal Patterns |
Carmichael98 | Applying Analysis Patterns in a Component Architecture |
Cerwin98 | Using the Mediator Design Pattern to Perform Multiplexing |
Cleeland+98b | External Polymorphism |
Cleeland+98a | External Polymorphism |
Cockburn96 | Prioritizing Forces in Software Design |
Cockburn98 | Surviving Object-Oriented Projects: A Manager's Guide |
Coad95 | Object Models: Strategies, Patterns, & Applications |
Coplien92 | Advanced C++ Programming Styles and Idioms |
Coplien94a | Software Design Patterns: Common Questions and Answers |
Coplien94b | Setting the Stage |
Coplien95a | Curiously Recurring Template Patterns |
Coplien95b | A Generative Development-Process Pattern Language |
Coplien97 | A Pattern Language for Writers' Workshops |
Coplien99a | More on the Geometry of C++ Objects, Part 1 |
Coplien99b | More on the Geometry of C++ Objects, Part 2 |
Coplien99c | C++ Idioms |
Coplien99d | A Pattern Language for Writers' Workshops |
Coram96 | Demo Prep: A Pattern Language for the Preparation of Software Demonstrations |
Cunningham95 | CHECKS: A Pattern Language of Information Integrity |
Cunningham96 | EPISODES: A Pattern Language of Competitive Development |
Cybulski+99 | Composing Multimedia Artifacts for Reuse |
Dagermo+98 | Development of an Object-Oriented Framework for Vessel Control Systems |
DasNeves+98 | Bodyguard |
DeBruler95 | A Generative Pattern Language for Distributed Processing |
DeLano+98 | Patterns for System Testing |
Doble96 | Shopper |
Doble+99 | Smalltalk Scaffolding Patterns |
Duell98 | Experience in Applying Design Patterns to Decouple Object Interactions in the Ingage? IP Prototype |
Dyson+98 | State Patterns |
Edwards95 | Streams: A Pattern for "Pull-Driven" Processing |
Feiler+99 | Propagator: A Family of Patterns |
Foote+95 | Life cycle and Refactoring Patterns that Support Evolution and Reuse |
Foote+96 | Evolution, Architecture, and Metamorphosis |
Foote+98 | The Selfish Class |
Foote+99 | Big Ball of Mud |
Foster+97 | A Pattern Language of Transport Systems (Point and Route) |
Foster+98 | Modeling Transport Objects with Patterns |
Foster+99 | Cascade |
Fowler96 | Accountability and Organizational Structures |
Fowler97 | Analysis Patterns |
Fowler98 | Analysis Patterns |
Gamma+95 | Design Patterns: Elements of Reusable Object-Oriented Systems |
Gamma98 | Extension Object |
Gamma+99 | JUnit: A Cook's Tour |
Hanmer+99 | An Input and Output Pattern Language |
Harrison96 | Organizational Patterns for Teams |
Harrison98 | Patterns for Logging Diagnostic Messages |
Hopley96 | Decision Deferral and Capture Pattern Language |
Hüni+95 | A Framework for Network Protocol Software |
Islam+96 | An Essential Design Pattern for Fault-Tolerant Distributed State Sharing |
Jackson99 | EventHandler: The Chain of Responsibility Pattern without Cyclic Link Dependencies |
Jain+97 | Dynamically Configuring Communication Services |
Janoff98 | Organizational Patterns at AG Communication Systems |
Johnson94a | Patterns of Thought: An Introduction to Patterns |
Johnson94b | Patterns of Thought: How Patterns Work in Teams |
Johnson95 | Patterns of Thought: Patterns and Frameworks |
Johnson96 | Transactions and Accounts |
Johnson+98 | Type Object |
Keller+98a | A Pattern System for Network Management Interfaces |
Keller+98b | Accessing Relational Databases |
Kerth95 | Caterpillar's Fate: A Pattern Language for the Transformation from Analysis to Design |
Kim+96 | Implementation Patterns for the Observer Pattern |
Kircher+99 | DOVE: A Distributed Object Visualization Environment |
Lavender+96 | Active Object: An Object Behavioral Pattern for Concurrent Programming |
Lea95 | Christopher Alexander: An Introduction for Object-Oriented Designers |
Lea00 | Concurrent Programming in Java, Second Edition: Design Principles and Patterns |
Long99 | To Do Or Not To Do--That Is The Question |
Manolescu99 | Feature Extraction--A Pattern for Information Retrieval |
Martin95a | PLoP, PLoP, Fizz, Fizz |
Martin95b | Discovering Patterns in Existing Applications |
Martin95c | Button, Button, Who's Got the Button? |
Martin98 | Acyclic Visitor |
Martin+98 | Object-Oriented Methods: A Foundation |
Masuda+98 | Applying Design Patterns to Decision Tree Learning System |
McKenney96a | Selecting Locking Designs for Parallel Programs |
McKenney96b | Selecting Locking Primitives for Parallel Programming |
Meszaros95 | Pattern: Half-Object + Protocol (HOPP) |
Meszaros96 | A Pattern Language for Improving the Capacity of Reactive Systems |
Meszaros+98 | A Pattern Language for Pattern Writing |
Metsker98 | The Judge Pattern: Ensuring the Relational Integrity of Objects |
Meunier95 | The Pipes and Filters Architecture |
Molin+98 | Points and Deviations: Pattern Language of Fire Alarm Systems |
Mularz95 | Pattern-Based Integration Architectures |
Nierstrasz99 | Identify the Champion |
Noble+99 | High-Level and Process Patterns from the Memory Preservation Society |
Noble99a | Basic Relationship Patterns |
Noble99b | The Prototype-Based Object System Pattern |
Nordberg98 | Default and Extrinsic Visitor |
Orenstein96 | A Pattern Language for an Essay-Based Web Site |
Olson98a | Patterns on the Fly |
Olson98b | A Pocket-Sized Broker |
Pang99 | A Pattern of Inheritance and Polymorphism for Persistent Objects Stored in a Relational Database |
Peterson95 | Stars: A Pattern Language for Query-Optimized Schemas |
PHand | The Patterns Handbook |
Piehler99 | Adapting Observer for Event-Driven Design |
PLoPD1 | Pattern Languages of Program Design |
PLoPD2 | Pattern Languages of Program Design 2 |
PLoPD3 | Pattern Languages of Program Design 3 |
PLoPD4 | Pattern Languages of Program Design 4 |
Portner95 | Flexible Command Interpreter: A Pattern for an Extensible and Language-Independent Interpreter System |
Pree94 | Design Patterns for Object-Oriented Software Development |
Price+99 | Using the Facade Pattern with CORBA |
Pryce99 | Abstract Session |
Pyarali+98 | Asynchronous Completion Token |
Pyarali+99 | Proactor |
Ramirez95 | A Design Patterns Experience Report |
Ran95 | Patterns of Events |
Ran96 | MOODS: Models for Object-Oriented Design of State |
Riehle+95 | A Pattern Language for Tool Construction and Integration Based on the Tools and Materials Metaphor |
Riehle96a | The Event Notification Pattern--Integrating Implicit Invocation with Object-Orientation |
Riehle96b | Patterns for Encapsulating Class Trees |
Riehle98 | Bureaucracy |
Riehle+98 | Serializer |
Rising99 | Customer Interaction Patterns |
Roberts+98 | Patterns for Evolving Frameworks |
Rohnert96 | The Proxy Design Pattern Revisited |
Rossi+96 | Design Patterns for Object-Oriented Hypermedia Applications |
Rossi+99 | Patterns for Designing Navigable Information Spaces |
Rubel95 | Patterns for Generating a Layered Architecture |
Sane+96a | Detachable Inspector/Removable cout: A Structural Pattern for Designing Transparent Layered Services |
Sane+96b | Resource Exchanger: A Behavioral Pattern for Low-Overhead Concurrent Resource Management |
Schmid95 | Creating the Architecture of a Manufacturing Framework by Design Patterns |
Schmid96 | Creating Applications from Components: A Manufacturing Framework Design |
Schmidt95 | Reactor: An Object Behavioral Pattern for Concurrent Event Demultiplexing and Event Handler Dispatching |
Schmidt+95 | Using Design Patterns to Evolve System Software from Unix to Windows NT |
Schmidt96a | A Family of Design Patterns for Flexibly Configuring Network Services in Distributed Systems |
Schmidt96b | A Family of Design Patterns for Application-Level Gateways |
Schmidt+96 | Half-Sync/Half-Async: An Architectural Pattern for Efficient and Well-Structured Concurrent I/O |
Schmidt97 | Applying Design Patterns and Frameworks to Develop Object-Oriented Communication Software |
Schmidt98a | Applying Design Patterns to Simplify Signal Handling |
Schmidt98b | Acceptor and Connector |
Schmidt+98 | Double-Checked Locking |
Schmidt99 | Wrapper Facade |
Schmidt+99 | Thread-Specific Storage for C/C++: An Object Behavioral Pattern for Accessing per-Thread State Efficiently |
Selic98 | Recursive Control |
Shaw95 | Patterns for Software Architectures |
Shaw+96 | Software Architecture |
Shaw96 | Some Patterns for Software Architectures |
Silva+98 | Object Recovery |
Silva+99 | Object Synchronizer: A Design Pattern for Object Synchronization |
Sommerlad96 | Command Processor |
Sommerlad+96 | The Client-Dispatcher-Server Design Pattern |
Sommerlad98 | Manager |
Soukup95 | Implementing Patterns |
Spall98 | Panel States: A User Interface Design Pattern |
Srinivasan99 | Design Patterns in Object-Oriented Frameworks |
Subramanian+96 | Backup Pattern: Designing Redundancy in Object-Oriented Software |
Taylor99 | Capable, Productive, and Satisfied |
Towell95 | Request Screen Modification |
Towell99 | Display Maintenance |
VandenBroecke+97 | Using Design Patterns to Build a Framework for Multimedia Networking |
Viljamaa95 | Client-Specified Self |
Vlissides95 | Pattern Hatching--Perspectives from the `Gang of Four' |
Vlissides98a | Pattern Hatching |
Vlissides98b | Pluggable Factory, Part 1 |
Vlissides99 | Pluggable Factory, Part 2 |
Wake95 | Account Number: A Pattern |
Wake+96 | Improving Responsiveness in Interactive Applications Using Queues |
Wallingford98 | Sponsor-Selector |
Weir98 | Patterns for Designing in Teams |
White96 | Patterns and Java Class Libraries |
Whitenack95 | RAPPeL: A Requirements-Analysis Process Pattern Language for Object-Oriented Development |
Wirfs-Brock93 | Characterizing Your Objects |
Wolf+95 | New Clients with Old Servers: A Pattern Language for Client/Server Frameworks |
Woodward96 | Heading Off Tragedy: Using Design Patterns Against a Moving Target |
Woolf95 | Understanding and Using the ValueModel Framework in VisualWorks Smalltalk |
Woolf96 | Partitioning Smalltalk Code into ENVY/Developer Components |
Woolf98 | Null Object |
Woolf99a | The Abstract Class Pattern |
Woolf99b | Object Recursion |
Yacoub+99 | Finite State Machine Patterns |
Yoder+99 | Architectural Patterns for Enabling Application Security |
Zhang+96a | Financial Software Design Patterns |
Zhang+96b | Financial Software Design Patterns |
Zhang+96c | Financial Software Design Patterns |
Zhao+98a | Driver Duty: A Pattern for Public Transport Systems |
Zhao+98b | A Pattern Language of Transport Systems (Point and Route) |
Zhao+99 | Driver Duty Constructor: A Pattern for Public Transport Systems |