Descriptions for the Patterns used in this Survey




Patterns for Requirement Analysis


Description: A Pattern for Requirement Analysis describes techniques and processes for capturing and validating the behavioural and non-behavioural requirements of a software system.

Example: Customer Rapport. How do you build and establish a good relationship with a customer.

References:
[back to top] [close this window]





Analysis Patterns


Description: Analysis Patterns are concepts that represent a common construction in analysis or business modelling.

Example: Organisation Hierarchies. This pattern describes the modelling of (multiple) organisational hierarchies in an object-oriented class diagram.

Reference:
[back to top] [close this window]





Architectural Patterns


Description: Architectural Patterns help you to specify the fundamental structure of a software system.

Example: Layers. The Layers pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction.

References:
[back to top] [close this window]





Design Patterns


Description: A Design Pattern is an effective solution to a recurring problem in the design stage. Object-oriented Design Patterns consist of a specification of class and object interactions and their underlying intent.

Example: Observer. Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

References:
[back to top] [close this window]





Idioms (Implementation Patterns)


Description: An Idiom is a pattern defined for a specific programming language on a low level of abstraction. It describes how to implement particular aspects of components and their relationships in a programming language.

Example: Virtual Constructor. How to build an object of known abstract type, but of unknown concrete type, without violating the encapsulation of the inheritance hierarchy.

References:
[back to top] [close this window]





Patterns for Testing


Description: Patterns for Testing are related to Design Patterns. A Pattern for Testing accompanying a Design Pattern defines a configuration of objects needed to test the interactions between classes that are integrated according to the design described by the Design Pattern.

Example: ObserverTestPattern. This pattern allows for testing the correct implementation of the Design Pattern Observer. It pays special attention to the completeness of notifications, the correctness of queries sent by the Observers and the consistency of the data in the Subject and the Observers.

Reference:
[back to top] [close this window]





Patterns for Maintenance


Description: Patterns for Maintenance describe techniques for typical maintenance activities as optimisation, stabilisation or dealing with depreciation.

Example: Consolidate the Program to Support Evolution and Reuse. Insight gained during the prototype and consolidation phases can be employed to refactor the software system.

References:
[back to top] [close this window]





Process Patterns


Description: A process pattern is a collection of general techniques, actions, and/or tasks (activities) for developing software systems within a software development organisation.

Example: The Selfish Class. Describes how to overcome psychological problems related to the reuse of existing artifacts (e.g. source code).

References:
[back to top] [close this window]





Organisational Patterns


Description: Organisational Patterns describe the structure and practices of human software development organisations.

Example: Design by Team. A general pattern that describes how people can work together to design and develop software.

References:
[back to top] [close this window]





Educational Patterns


Description: Educational Patterns describe proven techniques used for teaching technical knowledge.

Example: Iterative Course Development. Describes the use of iterative improvement to develop a course that takes the needs of all kinds of students into account.

Reference:
[back to top] [close this window]





Patterns on Pattern Writing


Description: Patterns on Pattern Writing describe and demonstrate writing practices which have been observed to be particularly effective.

Example: Code Samples. Describes the use of code samples to improve the quality of a pattern description.

Reference:
[back to top] [close this window]