Writing Software Patterns - Excercises
Comprehension questions
- What are the differences and similarities between cookbooks and pattern books?
- What are the main characteristics of patterns? Name at least three key features of them.
- chunking information, naming a solution, recurrence/core of the solution
- What do you understand by:
- recurrence of the pattern?
- solution must be applicable in different situations
- core of the solution?
- a deeper similarity of problems
- recurrence of the pattern?
- Why are ordinary solutions so important? How can they help in writing software?
- e.g. by providing well-known and tested solutions for new problems
- Explain how patterns can be used as a communication technique.
Further exercises
Are the following statements TRUE or FALSE?
- The author defines a pattern as the solution to a problem in a context.
(FALSE) - According to the author of the text, dividing knowledge up simplifies writing
software.
(TRUE) - If you find a solution to a singular problem, it’s completely useless as a pattern.
(FALSE, you can evolve it into a wide-context solution) - In the author’s opinion, recipes are more general than patterns and you can
basically learn principles from them.
(FALSE) - The main similarity between recipes and patterns is the idea of chunking
information to make finding answers for particular questions easier.
(TRUE) - The author recommends using patterns in all possible situations.
(FALSE)
Find words or phrases in the text that match the folowing meanings:
- break up, divide up something (e.g. information, text); [chunk up]
- to try to find a piece of information in a book or on a computer; [look up]
- affecting or relating to a person or thing; [applicable]
- make a useful contribution to a discussion; [bring to the table]
- release (e.g. results); [spit out]
- belief or idea, approach to some problem [notion]
Possible topics for discussion
- What are design patterns in architecture?
- What could this term refer to in software engineering?
- Which design patterns have you met so far? (e.g. MVC - Model-View-Controller)
Possible difficulties
No difficulties should be found in the article.
Reading suggestions
- http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
- Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software
Possible links to other topics
- SoftwareEntropy
- SoftwareDevelopmentProcess
- ExtremeProgramming
See also: