Format of a Science Use Case Design Pattern
Design patterns for science use cases are expressed in a written form and in a highly structured format, which permits quick identification of relevant patterns given a certain problem to be solved and easy comparison of patterns regarding their applicability and capabilities. The format for describing science use case design patterns consists of individual descriptions of pattern properties, including text, diagrams, and mathematical models. It can be extended over time by adding more pattern properties and their descriptions. Patterns are described in the traditional design pattern paradigm: from context to problem to solution to resulting context. The current science use case design pattern format is as follows:
- Name
A descriptive name that distinctly identifies the pattern and enables designers to think about designs in an abstract manner and communicate their design choices to others.
- Context
The preconditions under which the pattern is relevant, including a description of the system before the pattern is applied.
- Problem
A description of the problem that provides insight on when it is appropriate to apply the pattern. Multiple patterns may address the same problem differently.
- Forces
A description of the relevant forces and constraints, and how they interact or conflict with each other and with the intended goals and objectives.
- Solution
A description of the solution that defines the abstract elements that are necessary for the composition of the design solution as well as their relationships, responsibilities, and collaborations. The specific capabilities provided by this pattern.
- Resulting Context
A brief description of the post-conditions arising from the application of the pattern. There may be trade-offs between competing optimization parameters that arise due to the implementation of a solution using this pattern.
- Related Patterns
The relationships between this pattern and other relevant patterns. Other patterns may be predecessor or successor patterns. This pattern may complement or enhance other patterns. There may also be dependencies between patterns to provide a complete solution.
- Examples
A description of one or more examples, including their specific pattern properties, that illustrate the use of the pattern for solving concrete problems.
- Known Uses
A list of known applications of the pattern in existing systems, including any practical considerations and limitations.