test download file iehle-Zullighoven-p235.ppt

AnirudhKumar66 8 views 21 slides Sep 15, 2024
Slide 1
Slide 1 of 21
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21

About This Presentation

test


Slide Content

Understanding and using Understanding and using
patterns in software patterns in software
developmentdevelopment
EEL 6883EEL 6883
Software Engineering Vol. 1 Chapter Software Engineering Vol. 1 Chapter
4 pp.235-2484 pp.235-248
Presenter: Sorosh OlamaeiPresenter: Sorosh Olamaei

IntroductionIntroduction

Patterns are effective means of capturing Patterns are effective means of capturing
and communicating experience.and communicating experience.

Patterns work for software development Patterns work for software development
on several levels.on several levels.

Different pattern types and their Different pattern types and their
relationship with models built during relationship with models built during
software developmentsoftware development

2.1 Pattern definitions2.1 Pattern definitions

A pattern is the abstraction from a concrete A pattern is the abstraction from a concrete
form which keeps recurring in specific non-form which keeps recurring in specific non-
arbitrary context.arbitrary context.

A solution to a recurring problem in a contextA solution to a recurring problem in a context

Christopher Alexander :Pattern is a Christopher Alexander :Pattern is a
relationship between forces that keep relationship between forces that keep
recurring in a specific context and a recurring in a specific context and a
configuration which resolves these forces.configuration which resolves these forces.

Pattern as a rulePattern as a rule

2.2 Form and Context2.2 Form and Context

The form of a pattern consists of a finite number of The form of a pattern consists of a finite number of
visible and distinguishable components and their visible and distinguishable components and their
relationshipsrelationships

Structural and dynamic propertiesStructural and dynamic properties

Technical or non-technical entitiesTechnical or non-technical entities

Pattern of the Distinction of Tools and MaterialsPattern of the Distinction of Tools and Materials

Concrete instances of the patternConcrete instances of the pattern

Form of the pattern as a template helps us to identify Form of the pattern as a template helps us to identify
and compare concrete instances of it which helps and compare concrete instances of it which helps
with better understanding of an application domain.with better understanding of an application domain.

Form and ContextForm and Context

A pattern is used to create, identify and compare A pattern is used to create, identify and compare
instances of this patterninstances of this pattern

Pattern instances appear only in specific contexts Pattern instances appear only in specific contexts
which raise and constrain the forces that give birth to which raise and constrain the forces that give birth to
the concrete formthe concrete form

The form of a pattern is finite but the form of its The form of a pattern is finite but the form of its
instances need not to be finite. The context is instances need not to be finite. The context is
potentially infinite.potentially infinite.

Example: Chain of responsibility consist of the Example: Chain of responsibility consist of the
roles :Client, handler and successor.roles :Client, handler and successor.

A pattern can only be understood and properly used A pattern can only be understood and properly used
with respect to the background of experience and with respect to the background of experience and
reflection in the domain of its contextreflection in the domain of its context

Form and ContextForm and Context

Transferring patterns to a new context Transferring patterns to a new context
requires experience and insight into both its requires experience and insight into both its
original and new contextoriginal and new context

The form describing a pattern can be The form describing a pattern can be
formalized but not its contextformalized but not its context

A pattern must be presented in such a way A pattern must be presented in such a way
that can be understood and properly used by that can be understood and properly used by
others in their work and professional others in their work and professional
languagelanguage

2.3 Consolidated example (the distinction of 2.3 Consolidated example (the distinction of
Tools and Materials)Tools and Materials)

3 Patterns and Models3 Patterns and Models

Software engineering main models:Software engineering main models:

Application domain modelApplication domain model

Software design modelSoftware design model

Implementation modelImplementation model

Relate pattern types to modelsRelate pattern types to models

Conceptual PatternsConceptual Patterns

Design Patterns Design Patterns

Programming PatternProgramming Pattern

3.1 Conceptual Patterns3.1 Conceptual Patterns

Conceptual model of the application domainConceptual model of the application domain

Viewpoints of the stakeholdersViewpoints of the stakeholders

A conceptual pattern is a pattern whose form is A conceptual pattern is a pattern whose form is
described by means of the terms and concepts from described by means of the terms and concepts from
an application domainan application domain

Conceptual patterns should be based on metaphors Conceptual patterns should be based on metaphors
rooted in the application domainrooted in the application domain

Linking metaphors to a certain pattern helps to Linking metaphors to a certain pattern helps to
bridge the gap between application domain and bridge the gap between application domain and
software designsoftware design

Conceptual patterns should be geared towards a Conceptual patterns should be geared towards a
restricted application domain ( not too generic or too restricted application domain ( not too generic or too
concrete: ex. The Distinction of Tools and Materials)concrete: ex. The Distinction of Tools and Materials)

3.2 Design Patterns 3.2 Design Patterns

A design pattern is a pattern whose form is A design pattern is a pattern whose form is
described by means of software design described by means of software design
constructs such as objects, classes, constructs such as objects, classes,
inheritance, aggregation and use-relationshipinheritance, aggregation and use-relationship

It reformulates the conceptual model in terms It reformulates the conceptual model in terms
of the formal restrictions of a software systemof the formal restrictions of a software system

Design patterns should fit or complement Design patterns should fit or complement
conceptual space opened by conceptual conceptual space opened by conceptual
patterns.patterns.

Design PatternsDesign Patterns

Creational PatternsCreational Patterns

Singleton: Ensure a class only has on instance and Singleton: Ensure a class only has on instance and
provide a global point of access to itprovide a global point of access to it

Structural Patterns Structural Patterns

Proxy: Provide a placeholder for another object to Proxy: Provide a placeholder for another object to
control access to it control access to it

Behavioral PatternsBehavioral Patterns

State: Allow an object to alter its behavior when its State: Allow an object to alter its behavior when its
internal state changes. The object will appear to internal state changes. The object will appear to
change its classchange its class

3.3 Programming Patterns3.3 Programming Patterns

Are patterns whose forms are described Are patterns whose forms are described
by means of programming language by means of programming language
constructs.constructs.

Example: for loopExample: for loop

3.4 Model and pattern 3.4 Model and pattern
interrelationshipinterrelationship

All 3 pattern types should be brought All 3 pattern types should be brought
together in a coherent approachtogether in a coherent approach

Ex: Ex:

Conceptual pattern: the Distinction of Tools and Conceptual pattern: the Distinction of Tools and
MaterialsMaterials

Design Pattern: Tools and Material CouplingDesign Pattern: Tools and Material Coupling

Fig 2 on page 241 VOL 1: use of aspect class Fig 2 on page 241 VOL 1: use of aspect class

4 Pattern Description Forms4 Pattern Description Forms

Every abstraction needs a notation to Every abstraction needs a notation to
give it a formgive it a form

The best way to describe a pattern The best way to describe a pattern
depends on the intended usage of the depends on the intended usage of the
patternpattern

The Alexandrian formThe Alexandrian form

The design pattern catalog form The design pattern catalog form

A general formA general form

Pattern Description FormsPattern Description Forms

4.1 The Alexandrian form : In Coplien & 4.1 The Alexandrian form : In Coplien &
Schmidt (1995) ;form of presentation Schmidt (1995) ;form of presentation
consisting of at least 3 sections: consisting of at least 3 sections:
Problem, Context and SolutionProblem, Context and Solution

Emphasis on when to apply the patternEmphasis on when to apply the pattern

4.2 The design pattern catalog form: 4.2 The design pattern catalog form:
Gamma et al. (1995); template with Gamma et al. (1995); template with
number of sections number of sections

Emphasis on static and dynamic aspect of Emphasis on static and dynamic aspect of
the pattern; descriptive rather than the pattern; descriptive rather than
generativegenerative

Best for OOD, well understood, stand alone Best for OOD, well understood, stand alone

4.3 A general form4.3 A general form

Two section: Context, PatternTwo section: Context, Pattern

The intended use of this description form is to The intended use of this description form is to
discuss the structure and dynamics of the discuss the structure and dynamics of the
recurring form and its context without promoting recurring form and its context without promoting
a specific way of using the patterna specific way of using the pattern

4.4 Comparison and discussion4.4 Comparison and discussion

Alexandrian form: matching problems with solutions Alexandrian form: matching problems with solutions

Design Pattern Catalog: OODDesign Pattern Catalog: OOD

Pattern/context: general presentation in which a pattern Pattern/context: general presentation in which a pattern
description core is to adapted to different use situations: description core is to adapted to different use situations:
additional sections can be added (how to use)additional sections can be added (how to use)

5 Pattern Sets5 Pattern Sets

Aim is to:Aim is to:

Ease understanding and usability of patternsEase understanding and usability of patterns

Restrict design space for the various types of Restrict design space for the various types of
software systemssoftware systems

Pattern ordering into sets, background and Pattern ordering into sets, background and
leitmotif for software developmentleitmotif for software development

Pattern emerges from “background” which is Pattern emerges from “background” which is
captured by “leitmotif”captured by “leitmotif”

A shared vision incorporating the views, A shared vision incorporating the views,
believes and values of software developers believes and values of software developers
that shape a software system as a wholethat shape a software system as a whole

5.1 Ordering patterns5.1 Ordering patterns

Pattern/Context pairPattern/Context pair

Each pattern/context pair is preceded Each pattern/context pair is preceded
by all pattern/context pairs that are by all pattern/context pairs that are
needed to understand it needed to understand it

Conceptual patterns logically precede Conceptual patterns logically precede
design patterns which logically precede design patterns which logically precede
programming patternsprogramming patterns

Fig 3 on page 243 VOL 1Fig 3 on page 243 VOL 1

5.2 Pattern Background5.2 Pattern Background

Infinite embedded contextsInfinite embedded contexts

Context of the first pattern/contact pair Context of the first pattern/contact pair
in the directed graphin the directed graph

Must be sufficiently understood by Must be sufficiently understood by
authors and readers to be authors and readers to be
communicated (it is the problem communicated (it is the problem
domain)domain)

5.3 Leitmotif for software 5.3 Leitmotif for software
developmentdevelopment

A leitmotif is a general principle that A leitmotif is a general principle that
guides software development. It is the guides software development. It is the
broad picture which can evoke a vision broad picture which can evoke a vision
of the future system. It makes the of the future system. It makes the
underlying beliefs and values explicit underlying beliefs and values explicit
that drive software design as a wholethat drive software design as a whole

Personal beliefs and values are driving Personal beliefs and values are driving
forces for application design. They have forces for application design. They have
significant impact on the form and significant impact on the form and
content of a patterncontent of a pattern

My thoughts on the paperMy thoughts on the paper

Later definitions of concepts introduced Later definitions of concepts introduced
earlier in the paper. (ex: form and earlier in the paper. (ex: form and
context)context)

Not a good coverage on design Not a good coverage on design
patterns patterns

Question !?Question !?
Tags