Professional Documents
Culture Documents
Pattern Languages
Pattern Languages
3
seminar contents.
The History of Patterns
Patterns and Pattern Languages
Patterns in Software Engineering / Computer Science
Researching
Questions...?
4
christopher alexander.
1936 Austria, B.Sc. architecture, M.Sc. in mathematics.
First Ph.D. in architecture ever awarded at Harvard University.
1st book by author to influence CS: Notes on the Synthesis of Form.
Required reading for researchers in computer science in the '60s.
Recomended by Marvin Minsky, founder of MIT's AI Lab, to his students.
Heavy influence in the 60s & 70s programming language design,
modular programming, object-oriented programming, software
engineering and other design methodologies.
... and all of their books were about civil architecture.
What makes a good design? what is a good solution?
Can we design everything from scratch? by intuition? total control?
Can we measure design? can we afford not to?
Quality without a name (QWAN).
5
design.
jointing
economy
simplicity
performance
-
-
-
-
-
+
There is one timeless way of building. It is a thousand years
old, and the same today as it has ever been. The great
traditional buildings of the past, the villages and tents and
temples in which man feels at home, have always been made
by people who were very close to the center of this way. It is
not possible to make great buildings, or great towns, beautiful
places, places where you feel yourself, places where you feel
alive, except by following this way. And, as you will see, this
way will lead anyone who looks for it to buildings which are
themselves as ancient in their form, as the trees and hills, and
as our faces are.
- Christopher Alexander. The Timeless Way of Building. 1979.
6
7
seminar contents.
The History of Patterns
Patterns and Pattern Languages
Patterns in Software Engineering / Computer Science
Researching
Questions...?
8
definition.
A Pattern is seen in the wild.
A Pattern addresses a recurrent problem.
A Pattern is a recognized good solution...
... and by good we mean balanced within the defined context.
A Pattern is more than a description: its a prescription.
A Pattern catalogue is a set of patterns from the same domain.
A Pattern language defines the relationship between each pattern.
Each pattern is a three-part rule, which expresses a relation
between a certain context, a problem, and a solution.
- Christopher Alexander
9
myths.
A Pattern is not a foundamental building block.
A Pattern is not a recipee.
A Pattern is not a novel idea.
Patterns aren't about Object Oriented design (more later).
Patterns aren't about UML (more later).
A Pattern should evoke an "Ahah!", not an "Uhuh..."
Who is the target audience, then? Practictioners of the Art...
Though, Alexander believed everyone could use a pattern; this was
maybe its single biggest misconception. cf. The Oregon Experience.
10
anti-patterns.
Good solutions are called a pattern.
A recurrent, bad solution, is an anti-pattern.
Why document bad solutions:
Because they are recurrent.
Because it seem obviously good, but is unpredictably bad.
Because it points to a transformation to a better solution.
Some authors in the pattern community argue that a good pattern is a
consequence, or refers to, an anti-pattern (disputed point-of-view).
11
anatomy of a pattern.
Name. Usually a noun catchy phrase
that describes what the pattern builds.
Aliases. Also known as...
Context. Describe the setting for the
problem. Include a description of the
target user.
Forces. Why the problem is not trivial.
Discuss other possible solutions and why
they wont work.
Problem. Unbiased by the solution.
Solution. Include enough detail so the
user can implement the solution, but
dont restrict the pattern to a narrow list
of specifics.
Resulting Context. Include the new
problems that appear as a result of
applying the pattern that will require
new patterns for their resolution.
Rationale. Explain the rationale behind
the solution. Convince the reader. Tell
stories! Share your expertise.
Known Uses. Briefly list or describe
places where the pattern is used.
Related Patterns. Briefly describe any
related patterns and their relationships
to this pattern.
Sketch. If appropriate.
Example.
In nature, its not the strongest nor the most
intelligent who survives. Its the most
adaptable to change.
- Charles Darwin, 1809 - 1882
12