The GoF book concentrates on design-level patterns, whereas out patterns span several levels of abstraction... from high-level architectural patterns through design patterns to low-level idioms' writes Beushcmann and his four co-authors from Siemens of Germany about Pattern-oriented software architecture. An example of an architectural pattern is the mocrokernal which 'separates a minimal r-specific parts'. They (prophetically) illustrate with a fictitious operating system named - Hydra! For design patterns they cite (among others) the master-slave pattern that supports fault-tolerance, parallel computation and computational accuracy. Idioms are 'low-level patterns specific to a programming language'.
Two alternative versions of a string copy function, written in C are compared: one by a devotee of Kernighan & Ritchie's terse style takes three lines and includes masterpieces of compaction such as (*d++=*s++); while the other by a Pascal enthusiast takes eight lines but is more readable. There is plenty of discussion and explanation and two interesting closing chapters. One describes the leading figures in the 'Pattern Community', many of them the authors reviewed here, plus Ward Cunningham and Kent Beck who first translated Alexander's ideas into software. The other asks where patterns are heading, for example a new area is organisational structures to support software development, such as Architect Controls Product which ensures team output is elegant and cohesive, not shapeless and nondescript. Other shadows in the crystal ball are the use of repositories and indexing (this has, inevitably, given birth to a new creature; the pattlet) and the development of specific pattern languages. -- Unix & NT News, January 99
Pattern - Oriented Software Architecture A System of Patterns Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal of Siemens AG, Germany Pattern-oriented software architecture is a new approach to software development. This book represents the progression and evolution of the pattern approach into a system of patterns capable of describing and documenting large-scale applications. 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 patterns 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.