2. • The Term ‘Pattern’ The usage of the term ‘pattern’ in
software development was inspired by the notion of
architectural patterns introduced by Christopher
Alexander (ALEXANDER et al. 1977).
• for the design phase and the analysis phase, and
idioms for the implementation phase were
developed. RIEHLE and ZÜLLIGHOVEN (1996) give a
general definition of patterns: ‘A pattern is the
abstraction from a concrete form which keeps
recurring in specific non-arbitrary contexts.’ defines
in reference to analysis patterns.
3. Types of Patterns in Object-Oriented Software
Development
1 )Anti-Patterns :
Unlike other patterns that offer well-proven solutions to
recurrent problems, anti-patterns describe negative examples
of solutions: they describe behaviour that has been
repeatedly observed in practice and its negative effects and
point the way to better solutions. Awareness of anti-patterns
helps to avoid their negative effects. Anti-patterns can be
found in the whole process of software development: in
project management, analysis, architecture, design and
programming.
4. 2)Requirements Patterns :
Requirements patterns support the creation of the
requirements specifications. They specify generic behaviour
of systems on a high level of abstraction and thereby help to
reach precise and better requirements descriptions for a
system more quickly. Requirement patterns are not the
subject of this report to any great extent.
5. 3)Analysis Patterns:
Analysis patterns support the creation of the conceptual
model of an application. An analysis pattern provides a re-
usable, well-proven model representation of a recurrent
subproblem. Thus, analysis patterns facilitate the proper
transformation of a concrete problem into an analysis model
6. 4)Architecture Patterns:
Software architecture patterns describe basic
organisational principles for designing the structure of a
software system. They support the choice of an appropriate
software architecture by providing tried and tested solutions
for structural and organisational issues. A software
architecture pattern contains best practise solutions for
decomposing a software system into sub-systems and
describes the responsibilities and relationships between the
sub-systems
7. 5)Design Patterns :
Design patterns support the creation of the design
model. They provide solutions for recurring problems that
occur during the transition from the analysis model to the
design model (Fig. 1.4). As distinct from analysis patterns
which are closely related to a concrete subproblem, design
patterns contain more generic model fragments which are
dedicated to rather technical or implementationrelated
issues. Similar to analysis patterns, design patterns require
some modification when being integrated into the design
model at hand
8. • Terminology :
In the remainder, some technical terms relating to object-oriented
patterns are used. These are explained below.
1)Pattern Language – a pattern language is a collection of interrelated
patterns for solving a particular problem. The patterns are organised
through their relationships within the pattern language.
2)Pattern Template – a pattern template is a template for the description of
patterns. A template determines a list of characteristics that have to be
more closely defined in order to describe a pattern.
3) Pattern Instantiation – pattern instantiation means the adaptation of a
pattern to the concrete problem that is to be solved. Class names, class
attributes and class operations are adapted and parts of the pattern that
might no longer be needed are omitted.
4) Ad Hoc Modelling – ad hoc modelling or manual modelling means the
building of a model without pattern support.
5)Framework – the term ‘framework’ is used in the sense of conceptual
framework. Conceptual frameworks are used in science to describe
possible approaches to complex problems