Software patterns are usually documented in several forms. These forms are known as pattern schemata, pattern forms or pattern templates. Numerous examples of these templates can be found in the literature [GHJV95] [POSA1] [PLoP1]. The typical form is a collection of sections that characterize different aspects of a software pattern. The collection of sections varies from author to author and from domain to domain.
In parallel programming, as in other software domains, the most common forms are the 'Gang of Four (GoF) form [GHJV95] and the 'Pattern-Oriented Software Architecture' (POSA) form [POSA1]. Both forms use diagrams based on Unified Modeling Language (UML) and plain text. This book uses the POSA form to describe software patterns. This form uses the following sections [POSA1]:
Name. A word or phrase that essentially describes the pattern.
Brief. A description of the pattern stating what it does.
Example. A real-world example that shows the existence of a problem and the need for the pattern.
Context. The situation or circumstance in which the pattern is applied.
Problem. A description of the conflict the pattern solves, including a discussion about the forces.
Solution. A description of the fundamental principle of the solution which serves as base for the pattern.
Structure. A detailed specification (usually based on UML diagrams) describing structural aspects of the pattern. ...