Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages (Hardcover)
Frank Buschmann, Kevin Henney, Douglas C. Schmidt
Software patterns have revolutionized the way developers think about how software is designed, built, and documented, and this unique book offers an in-depth look of what patterns are, what they are not, and how to use them successfully The only book to attempt to develop a comprehensive language that integrates patterns from key literature, it also serves as a reference manual for all pattern-oriented software architecture (POSA) patterns Addresses the question of what a pattern language is and compares various pattern paradigms Developers and programmers operating in an object-oriented environment will find this book to be an invaluable resource
Table of Contents
Foreword by Richard P. Gabriel.
Foreword by Wayne Cool.
About the Authors.
About this Book.
Guide to the Reader.
Beyond the Hype.
A Story of Success - with Some Exceptions.
Pattern Definitions and their Interpretations.
Toward a Deeper Understanding of Patterns.
PART I: INSIDE PATTERNS.
1. A solution to a Problem and More.
1.1 A Solution to a Problem.
1.2 A Process and a Thing.
1.3 Best of Breed.
1.4 Forces: the Heart of Every Pattern.
1.5 The Context: Part of a Pattern or Not?
1.7 A Diagram Says More than a Thousand Words? or Less.
1.8 Evocative Names Help Pattern Recollection.
1.9 Patterns are Works in Progress.
1.10 A Pattern Tells a Story and Initiates a Dialog.
1.11 A Pattern Celebrates Human Intelligence.
1.12 From a Problem-Solution Statement to a Pattern.
2. A Million Different Implementations.
2.1 Does One Size Fit All?
2.2 Patterns and Frameworks.
2.3 Patterns and Formalisms.
2.4 A Million and One? and then Some.
3. Notes on Pattern Form.
3.1 Style and Substance.
3.2 The Function of Form.
3.3 Elements of Form.
3.4 Details, Details.
3.5 Aerial View.
3.6 Different Pattern Forms.
3.7 Style and Substance (Redux).
PART II: BETWEEN PATTERNS.
4. Pattern Islands?
4.1 Patterns Connect.
4.2 A Design Experiment: Patterns as Islands.
4.3 A Second Design Experiment: Interwoven Patterns.
4.4 Pattern Density.
5. Pattern Complements.
5.1 More than One Solution to a Problem.
5.2 Patterns in Competition.
5.3 Patterns in Cooperation.
5.4 Patterns in Combination.
5.5 Complementary: Competing, Completing, Combining.
6. Pattern Compounds.
6.1 Recurring Pattern Arrangements.
6.2 From Elements to Compounds.
6.3 From Complements to Compounds.
6.4 Element or Compound?
6.5 Compound Analysis and Synthesis.
7. Pattern Sequences.
7.1 Patterns Tell Software Engineering Success Stories.
7.2 Pattern Stories.
7.3 From Stories to Sequences.
7.4 Sequences of Patterns.
7.5 Pattern Compounds and Complements Revisited.
7.6 Returning to the Question of Context.
7.7 Pattern Connections.
8. Pattern Collections.
8.1 Toward a Handbook.
8.2 Organizing Pattern Collections.
8.3 Ad Hoc Organization.
8.4 Organization by Level.
8.5 Organization by Domain.
8.6 Organization by Partition.
8.7 Organization by Intent.
8.8 Organizing Pattern Collections (Reprise).
8.9 Problem Frames.
8.10 Pattern Semiotics.
8.11 Pattern Collections and Style.
8.12 Toward Pattern Languages.
Part III Into Pattern Languages.
9. Elements of Language.
9.1 Designing with Patterns.
9.2 From Pattern Stories and Sequences to Pattern Languages.
10. A Network of Patterns and More.
10.1 A Network of Patterns.
10.2 A Process and a Thing.
10.3 Best of Breed.
10.4 Forces: the Heart of Every Pattern Language.
10.5 Pattern Contexts Define Topology and Architectural Style.
10.6 Patterns Form Vocabulary, Sequences Illustrate Grammar.
10.8 A Whole Language Says More than a Thousand Diagrams .
10.9 Domain-Oriented Names Help to Recall Pattern Languages.
10.10 A Pattern Language Initiates Dialog and Tells Many Stories.
10.11 Work in Progress.
10.12 Pattern Languages Reward Creative Human Intelligence.
10.13 From a Pattern Network to a Pattern Language.
11. A Billion Different Implementations.
11.1 One Size Does Not Fit All.
11.2 Piecemeal Growth.
11.3 Refactoring Not Excluded.
11.4 One Pattern at a Time.
11.5 Role-Based Pattern Integration.
11.6 Pattern Languages and Reference Architectures.
11.7 Pattern Languages and Product-Line Architectures.
11.8 A Billion and One? and then Some.
12. Notes on Pattern Language Form.
12.1 Style and Substance.
12.2 The Function of Form.
12.3 The Elements of Form.
12.4 Details, Details, Details.
12.5 Style and Substance (Redux).
13. On Patterns versus Pattern Languages.
13.1 Patterns and Pattern Languages: Similarities.
13.2 Patterns and Pattern Languages: Differences.
13.3 Patterns versus Pattern Languages?
14. From Patterns To People.
14.1 Patterns are for People.
14.2 In Support of Software Developers.
14.3 In Support of Software Users.
14.4 In Support of Pattern Authors.
14.5 Technology for Humans.
15. The Past, Presence, And Future of Patterns.
15.1 The Past Three Years at a Glance.
15.2 Where Patterns Are Now.
15.3 Where Will Patterns Go Tomorrow?
15.4 A Brief Note about the Future of Patterns.
16. All Good Things?
Pattern Concept Summary.
Index of Patterns.
Index of Names.