Patterns for Managing Software Evolution |
Modell-View-Controller / Composite / Object for State / Editor / Observer / Collect Damage / Update at User Speed / Wrapper |
Handlers for Seperating Assembly and Processing |
Streams |
Reactor |
DiscordantRewardMechanisms |
ManagerControlsProcess |
PlugCompatibleInterchangeableEngineers |
AnalysisParalysis |
AppointedTeam |
CreepingFeaturitis |
DesignByCommittee |
Egalitarian Compensation |
GeographicallyDistributedDevelopment |
KitchenSinkDesign |
RapeAndPasteProgramming |
Story |
Early Program |
Architecture Prototype |
Interface Prototype |
Framework Design for End to End Optimization |
A Pattern for Printf Debugging and Similar Meta Services |
Patterns for Programming Object Communication |
A Pattern for Reducing Resource Bottlenecks by Exchanging Resources |
Roles Before Objects |
All At Once |
Progress&Training Teams |
Sacrifice One Person |
Team Per Task |
Teams Integrate Diversity |
External Polymorphism |
Stairway to Heaven |
Type destroyer is type restorer |
Asynchronous Completion Token -- An Object Behavioral Pattern for Efficient Asynchronous Event Handling |
Active Object -- An Object Behavioral Pattern for Concurrent Programming |
Double-Checked Locking -- A Optimization Pattern for Efficiently Initializing and Accessing Thread-safe Objects |
External Polymorphism -- An Object Structural Pattern for Transparently Extending Concrete Data Types |
Service Configurator -- A Pattern for Dynamic Configuration of Services |
Half-Sync/Half-Async -- An Architectural Pattern for Efficient and Well-structured Concurrent I/O |
Router -- An Object Behavioral Pattern for Communication Gateways |
Thread-Specific Storage -- An Object Behavioral Pattern for Accessing per-Thread State Efficiently |
Acceptor-Connector -- An Object Creational Pattern for Connecting and Initializing Communication Services |
Proactor -- An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events |
Reactor -- An Object Behavioral Pattern for Event Demultiplexing and Event Handler Dispatchin |
Leading organizations build a strong software architecture that provides the framework for reuse activities. |
Leading organizations use a software development process that promotes and controls reuse. |
Leading organizations reuse more than just code. |
Leading organizations practice domain engineering. |
Leading organizations integrate reuse into project management, quality initiatives and software engineering activities. |
Leading organizations have an organizational structure that facilitates partnering to achieve reuse across product boundaries. |
Leaders use automation to support reuse when and where it makes sense for both managers and technicians as driven by business and technical needs. |
Patterns for Interactive Applications |
A Pattern for Separating Assembly and Processing |
Loose Interfaces -- Parser/Builder -- Hierarchy of Factories -- Handlers |
Eager Compilation, Lazy Evaluation |
Bootstrap Script |
Broadcaster |
Component Interpreter |
Configuration Script |
Active File |
Glue Code |
Command Interceptor |
Scripted Components |
Abstract Session - an Object Structural Pattern |
Streams |
Author Biographies |
Consistent Headers and Footers |
Document-Format Consistency |
Document-Content Listing |
Immediate Document Discussion |
Locatable Documents |
Downloadable CGI's |
Evolving Documents |
Exposable Guts |
Interlaced Images |
Known Audience |
Link-Type Distinction |
New-Document Notification |
Node-Based Documents |
Reachable Author |
Readable Documents |
Readable Hyperlinks |
Readable Indices |
Reference Section |
Relevant Dates |
Sparing Images |
Worksheet Documents |
Animate the Data |
Determine The Actors |
Factor Out Common Attributes |
Identify Problem Domain Relationships |
Identify The Nouns |
Introduce Virtual Attributes |
Normalize The Roles |
Time Thread Analysis |
Behavioral Requirements |
Business Rules |
Classifying, Associating and Grouping the Domain Objects |
Managing and Meeting Customer Expectations |
Customer Rapport |
Defining Requirements |
Elaboration of the Domain Objects |
Finding and Defining the Domain Objects |
Information Needs |
Object Aging |
Object Stereotypes |
Pragmatic External Requirements |
Problem Domain Analysis |
Prototypes |
Requirements Specification |
Requirements Validation |
Sponsor Objectives |
Organization Follows Location |
Organization Follows Market |
Developer Controls Process |
Patron |
Architect Controls Product |
Conway's Law |
Architect Also Implements |
Review the Architecture |
Code Ownership |
Application Design is Bounded By Test Design |
Engage QA |
Engage Customers |
Group Validation |
Scenarios Define Problem |
Mercenary Analyst |
Manager |
Gatekeeper |
Shaping Circulation Realms |
Move Responsibilities |
Buffalo Mountain |
Self-selecting team |
Work Flows Inward |
3 to 7 Helpers per Role |
Named Stable Bases |
Divide and Conquer |
De-couple Stages |
Hub-Spoke-and-Rim |
Aesthetic Pattern |
Take No Small Slips |
Solo Virtuoso |
Developing in Pairs |
Interrupts Unjam Blocking |
Don't Interrupt an Interrupt |
Compensate Success |
Size the Schedule |
Form follows Function |
Domain Expertise in Roles |
Phasing it In |
Apprentice |
Class Graph |
Context |
Inventor's Paradox |
Structure-Shy Object |
Structure-shy Traversal |
Deprecation |
Divide and Modernise |
Externalising an internal representation |
Portability through backend abstraction |
Naming |
Quality Design Solution for Object Synchronization |
Customizable Object Synchronization Pattern |
Component Configurer: A Design Pattern for Component-Based Configuration |
Passive Replicator: A Design Pattern for Object Replication |
Functionality and Partitioning Configuration |
Naming and Identification in Distributed Systems: A Pattern for Naming Policies |
Customizable Object Recovery Pattern |
Distributed Proxy: A Design Pattern for Distributed Object Communication |
Distributed Proxy: Design Pattern and Framework |
Objektorientiertes Design Pattern für Multimedia-Oberflächen |
Show Computer is Thinking |
Give a Warning |
Interaction Feedback |
Think Twice |
Command Control Center |
Explorable Interface |
Garden of Windows |
Goal Oriented Areas |
Modeless Feedback Area |
Multiple Settings |
Single Setting |
Visual Symbols |
Foundation Class Package |
Common Roles |
Concurrently Developed Packages |
Defined Roles |
Developer Audience |
Example Packages |
Existing Classes As Roles |
Feature Kit Packages |
Fundamental Roles |
Interface-Oriented Code |
Interface Package |
Packages as Building Blocks |
Refocused Abstract Class |
Simple Classes |
Tool Kit Package(s) |
Use Patterns |
Utilities Package(s) |
Lazy Optimization: Patterns for Efficient Smalltalk Programming |
Added Value |
Necessary Failures |
Progressive Foundation |
Revised, Realistic Resource Application |
Studio Approach |
Valued Individuals |
Shared Vision AND Shared Reality |
Artificial Accessors |
Artificial Delegation |
Cached Extensibility |
Extensible Attributes |
Generated Accessors |
Selector Synthesis |
Reusability Through Self-Encapsulation |
Actuator |
ContinuousComputation |
Pipe |
Filter |
DisplayGraphic |
DisplayValue |
DisplaySlider |
DisplayAttribute |
AttributeProxy |
FollowRelationAndSum |
FollowRelationAndCollectObjects |
FollowRelation |
Traversal |
VariableValue |
ConstantValue |
BufferedValue |
AttributeValue |
MethodBranch |
MethodComposition |
MethodAlias |
MethodCall |
StateMachineBlocked |
StateMachineActive |
StateMachineTriggered |
StateMachine |
ISO IDL Idioms |
Smalltalk Best Practice Patterns |
UnixShellPatterns |
Call by reference |
Counted body |
Customized allocation |
Initialize, not assign |
Lifetime follows scope |
Return "this" by ref |
At-Exit Callback |
Foreach Multiset |
Traced Variable |
Widget Facade |
Design Patterns in Python |
A Developer Process Generative Pattern Language |
"Caterpillar's Fate: A Pattern Language for Transformation from Analysis to Design" |
"The CHECKS Pattern Language of Information Integrity" |
"New clients with old servers: a pattern language for client/server frameworks" |
"A Pattern Language for Tool Construction and Integration Based on the Tools&Materials Metaphor" |
Caterpillar's Fate: A Pattern Language for Transition from Analysis to Design |
The CHECKS Pattern Language of Information Integrity |
Early Development |
Partitioning Smalltalk Code into ENVY/Developer Components |
ENVY Partitioning |
EPISODES: A Pattern Language of Competitive Development Part I |
Code Formatting Patterns |
Parallel Patterns for Synchronization on Shared-Memory Multiprocessors |
Recurring Events |
Stars: A Pattern Language for Query Optimized Schema |
Temporary Variables |
User Interface |
Understanding and Using ValueModels |
A Pattern Language for Pattern Writing |
Experiences -- A Pattern Language for User Interface Design |
Evolving Frameworks |
Patterns for Abstract Design |
Find Architectural Elements, Identify and Seperate Interactions, Generate Open Arcchitectures, Convert Interactions to Collaborations, Choose Implementaion Techniques, In/Out Module Interface Contract |
System Test Pattern Language |
RAPPeL: A Requirements Analysis Process Pattern Language for Object Oriented Development |
Fault-Tolerant Telecommunication System Patterns |
Pattern Language for the Perception, Design and Implementation of Distributed Application Partitioning |
PattBPR- A pattern language for business process reengineering |
Programmers' Canvas |
Patterns for Building an Unusually Adaptable Java Framework |
Philosophical Patterns In Software Development |
Expedient Smalltalk Programming / "Smalltalk Scaffolding Patterns" |
Decoupling of Object Oriented Systems |
Error Handling |
Relational Database Access Layers |
Client/Server Architectures for Business Information Systems |
Form-Based User Interface |
Mapping Objects to Tables |