Frank Buschmann, Kevlin Henney, Douglas C. Schmidt9780471486480, 0471486485
Table of contents :
Pattern-Oriented Software Architecture Volume 5 – On Patterns and Pattern Languages……Page 1
Table of Contents……Page 8
Foreword……Page 14
About the Authors……Page 30
About this Book……Page 32
Structure and Content……Page 34
Acknowledgments……Page 36
Guide to the Reader……Page 38
A Short Story about Patterns……Page 39
All About Patterns from One Source……Page 40
0. Beyond the Hype……Page 42
0.1 Beginnings………Page 43
0.2 A Story of Success… with Some Exceptions……Page 44
Under Observation……Page 45
In a State……Page 47
Beyond Prescription……Page 48
0.3 Pattern Definitions and their Interpretations……Page 49
0.4 Toward a Deeper Understanding of Patterns……Page 60
Part I – Inside Patterns……Page 66
1. A Solution to a Problem and More……Page 70
An Example……Page 71
Recurrence and Goodness……Page 72
1.2 A Process and a Thing……Page 73
An Example (Take 2)……Page 74
1.3 Best of Breed……Page 75
1.4 Forces: the Heart of Every Pattern……Page 77
An Example (Take 4)……Page 79
Dysfunctional, Bad, or Anti?……Page 81
1.5 The Context: Part of a Pattern or Not?……Page 83
An Example (Take 5)……Page 84
Context Generality……Page 85
Context Detached……Page 86
An Example (Take 6)……Page 87
1.6 Genericity……Page 88
An Example (Take 7)……Page 89
1.7 A Diagram Says More than a Thousand Words… or Less……Page 91
Diagrammability and Patterns……Page 92
1.8 Evocative Names Help Pattern Recollection……Page 95
A Grammatical Classification of Names……Page 96
Literal Versus Metaphorical Names……Page 97
1.9 Patterns are Works in Progress……Page 98
Sisyphus the Pattern Writer……Page 101
1.10 A Pattern Tells a Story and Initiates a Dialog……Page 102
1.11 A Pattern Celebrates Human Intelligence……Page 103
1.12 From a Problem–Solution Statement to a Pattern……Page 104
2. A Million Different Implementations……Page 106
2.1 Does One Size Fit All?……Page 107
Structural Variation and Roles……Page 108
Behavioral Variation……Page 110
Internal Variation……Page 111
Language and Platform Variation……Page 112
Domainand Environment-Dependent Variation……Page 114
Hypothesis Revisited……Page 116
2.2 Patterns and Frameworks……Page 118
A Tale of Two Frameworks……Page 121
2.3 Patterns and Formalisms……Page 125
Constrained Versus Unconstrained Genericity……Page 126
2.4 A Million and One… and then Some……Page 128
Of Reference Implementations and Example Implementations……Page 129
3. Notes on Pattern Form……Page 132
3.1 Style and Substance……Page 133
An Example Revisited……Page 134
Questions of Form……Page 137
3.3 Elements of Form……Page 138
Leading by Example……Page 143
Picture This……Page 145
………Page 146
From Pyramid to Patlet……Page 147
Pattern Sketches……Page 148
Summary of Intent……Page 150
3.6 Different Pattern Forms……Page 151
Metamorphosis……Page 152
Choices, Choices……Page 155
3.7 Style and Substance (Redux)……Page 157
Part II – Between Patterns……Page 158
4. Pattern Islands?……Page 162
4.1 Patterns Connect……Page 163
4.2 A Design Experiment: Patterns as Islands……Page 164
4.3 A Second Design Experiment: Interwoven Patterns……Page 170
4.4 Pattern Density……Page 172
It All Comes Down to Roles and Relationships!……Page 174
5. Pattern Complements……Page 176
5.1 More than One Solution to a Problem……Page 177
Taking a Broader View……Page 178
Matters of State……Page 179
Pattern Pairs, Triples, and More……Page 184
Iterative Development……Page 186
Adaptive Development……Page 190
Following Conway’s Law……Page 192
Design Dialog with Style……Page 195
5.3 Patterns in Cooperation……Page 196
An Example of Value……Page 198
Design Completion……Page 199
5.4 Patterns in Combination……Page 200
Further Iterative Development……Page 201
Further Adaptive Development……Page 203
5.5 Complementary: Competing, Completing, Combining……Page 204
6. Pattern Compounds……Page 206
6.2 From Elements to Compounds……Page 207
Pluggable Factories……Page 208
Two Views of Composite Command……Page 209
Notes on Pattern Compound Form……Page 211
6.3 From Complements to Compounds……Page 214
Reiterate……Page 215
Adaptations……Page 216
6.4 Element or Compound?……Page 217
Composite Interpretations……Page 218
Inside Model-View-Controller……Page 219
Non-Design Pattern Compounds?……Page 221
Design Pattern Compounds……Page 222
7. Pattern Sequences……Page 224
7.1 Patterns Tell Software Engineering Success Stories……Page 225
7.2 Pattern Stories……Page 226
A Short Story……Page 227
Published Stories……Page 230
7.3 From Stories to Sequences……Page 232
7.4 Sequences of Patterns……Page 233
An Early Example……Page 234
A Pattern Sequence is Both a Process and a Thing……Page 235
A Short Story Revisited……Page 237
Recomposition……Page 238
Iterator Rebatched……Page 240
Reinterpretation……Page 241
Realigning Architecture and Organization……Page 243
Defining Context……Page 244
Specialization and Variation……Page 247
7.7 Pattern Connections……Page 248
Connections with Conviction……Page 249
8. Pattern Collections……Page 250
Collections, Catalogs, and Repositories……Page 251
8.2 Organizing Pattern Collections……Page 252
8.3 Ad Hoc Organization……Page 253
Clarifying ‘Design’ and ‘Architecture’……Page 254
Clarifying ‘Idiom’……Page 256
On the Level……Page 258
8.5 Organization by Domain……Page 259
8.6 Organization by Partition……Page 260
Architecture with Tiers……Page 261
8.7 Organization by Intent……Page 262
POSA by Intent……Page 263
GOF by Intent……Page 264
Reflection on Intent……Page 265
8.8 Organizing Pattern Collections (Reprise)……Page 266
8.9 Problem Frames……Page 267
Framing the Problem……Page 268
Contrasting Problem Frames and Patterns……Page 270
Combining Problem Frames and Patterns……Page 271
8.10 Pattern Semiotics……Page 272
Patterns and Pattern Descriptions as Signs……Page 273
8.11 Pattern Collections and Style……Page 276
Unix Interface Design Patterns……Page 277
Web 2.0 Design Patterns……Page 279
Style and Conceptual Integrity……Page 281
8.12 Toward Pattern Languages……Page 282
Part III – Into Pattern Languages……Page 284
9. Elements of Language……Page 288
9.1 Designing with Patterns……Page 289
9.2 From Pattern Stories and Sequences to Pattern Languages……Page 291
An Incomplete Story……Page 292
Combining Sequences……Page 296
10. A Network of Patterns and More……Page 300
10.2 A Process and a Thing……Page 301
The Iterative Nature of the Process……Page 302
Concrete and Domain-Specific Guidance……Page 308
10.3 Best of Breed……Page 310
Dysfunctional Pattern Languages Produce Poor Solutions……Page 313
10.4 Forces: the Heart of Every Pattern Language……Page 314
The Three Levels of Forces……Page 315
10.5 Pattern Contexts Define Topology and Architectural Style……Page 318
Language Specific versus General Context……Page 320
10.6 Patterns Form Vocabulary, Sequences Illustrate Grammar……Page 321
Many Different Pattern Sequences……Page 326
Societies of Patterns……Page 327
10.8 A Whole Language Says More than a Thousand Diagrams……Page 328
10.9 Domain-Oriented Names Help to Recall Pattern Languages……Page 329
10.10 A Pattern Language Initiates Dialog and Tells Many Stories……Page 331
10.11 Work in Progress……Page 332
10.12 Pattern Languages Reward Creative Human Intelligence……Page 334
10.13 From a Pattern Network to a Pattern Language……Page 336
11. A Billion Different Implementations……Page 338
System-Oriented and Evolutionary Design……Page 339
Piecemeal Growth and Agile Development……Page 342
11.3 Refactoring Not Excluded……Page 344
Clear Focus on the Problem at Hand……Page 347
Priority-Driven Design Decisions……Page 348
Pattern Integration Precedes Pattern Implementation……Page 349
Option 1: Identify and Keep Already Implemented Roles……Page 350
Option 2: Identify and Separate Already Implemented Roles……Page 352
Option 3: Assign Missing Roles to Existing Design Elements……Page 353
Option 4: Implement Missing Roles as New Design Elements……Page 355
11.6 Pattern Languages and Reference Architectures……Page 356
11.7 Pattern Languages and Product-Line Architectures……Page 358
11.8 A Billion and One… and then Some……Page 363
12. Notes on Pattern Language Form……Page 366
12.2 The Function of Form……Page 367
Questions of Form……Page 368
12.3 The Elements of Form……Page 369
Presenting the Big Picture……Page 370
Brevity and Detail……Page 371
Pattern Connections……Page 373
Reviewing the Elements……Page 374
Pattern Language Forms……Page 375
Aerial View……Page 376
Sequence of Disclosure……Page 381
Leading by Example……Page 382
Managing the Level of Detail……Page 384
12.5 Style and Substance (Redux)……Page 387
13. On Patterns versus Pattern Languages……Page 388
Common Core Properties……Page 389
Common Roots……Page 390
Pattern Languages of One Pattern?……Page 391
Patterns and Detail……Page 392
Pattern Languages and Interconnection……Page 393
Two Separate Worlds?……Page 394
13.3 Patterns versus Pattern Languages?……Page 395
14. From Patterns To People……Page 396
14.1 Patterns are for People……Page 397
Pattern Value System……Page 398
The Human Audience……Page 399
Human-Driven Development……Page 401
User Interfaces……Page 403
User Requirements……Page 404
In the Hands of the User……Page 405
Collaborative Writing……Page 406
Writers’ Workshops……Page 407
14.5 Technology for Humans……Page 408
15. The Past, Presence, and Future of Patterns……Page 410
Patterns and Pattern Languages……Page 411
Refactoring and Integration……Page 414
15.2 Where Patterns Are Now……Page 416
15.3 Where Will Patterns Go Tomorrow?……Page 417
Patterns and Pattern Languages……Page 418
Theory and Concepts……Page 421
Support for Other Software Development Approaches……Page 422
Influence From Other Disciplines……Page 424
15.4 A Brief Note about the Future of Patterns……Page 425
16. All Good Things………Page 426
Pattern Concept Summary……Page 432
Referenced Patterns……Page 438
References……Page 456
Index of Patterns……Page 482
Index of Names……Page 486
Index……Page 488
Reviews
There are no reviews yet.