The patterns presented are grouped into: General Purpose Design Patterns Variations on Design Patterns Architectural Patterns Distribution Patterns Persistence Patterns User Interface Patterns Programming Patterns Domain-Specific Patterns Process Patterns Patterns on Patterns
A pattern system provides, on one level, a pool of proven solutions to many recurring design problems. On another it shows how to combine individual patterns into heterogeneous structures and as such it can be used to facilitate a constructive development of software systems.
Uniquely, the patterns that are presented in this book span several levels of abstraction, from high-level architectural frameworks and medium-level design patterns to low-level idioms.
The intention of, and motivation for, this book is to support both novices and experts in software development. Novices will gain from the experience inherent in pattern descriptions and experts will hopefully make use of, add to, extend and modify patterns to tailor them to their own needs. None of the pattern descriptions are cast in stone and, just as they are borne from experience, it is expected that further use will feed in and refine individual patterns and produce an evolving system of patterns.
Until now there has been no complete and up-to-date work on the pattern concept available. The knowledge of the latest advances in the conceptual foundations of patterns remains locked in the minds of a few experts and thought leaders in the patterns community. Pattern-Oriented Software Architecture, Volume 5 (POSA 5) mines this knowledge and documents it for the consumption of the broader software development community.
POSA 5 presents, discusses, relates, and contrasts the many known flavors and applications of the pattern concept: stand-alone patterns, pattern complements, pattern compounds, pattern stories and sequences, and pattern languages. For each concept flavor, the authors investigate its fundamental and advanced properties, and explore insights that help readers master concepts that are well known in the pattern community.
The book is presented in three main parts:
The authors provide an overview of the current state of knowledge and practice in software patterns. The book codifies the key roles and relationships of the pattern concept in one volume, allowing readers to deepen their understanding of what patterns are, what they are not, and how to use them successfully.
This concepts volume revisits principles developed in previous POSA volumes and other sources of software pattern literature to enhance, revise, and extend these ideas.