Books

Short works

Books : reviews

Robert C. Martin, Dirk Riehle, Frank Buschmann, eds.
Pattern Languages of Program Design 3.
Addison Wesley. 1998

Patterns remain one of the most important new technologies contributing to software engineering, system design, and development. All indications are that patterns will continue to grow in significance as more and more developers rely on reusable design patterns to help them achieve quick, cost-effective delivery of applications. This volume is a collection of the current best practices and trends in the patterns community. The patterns contained in this book provide effective, tested, and versatile software design solutions for developers in all domains, institutions, and organizations.

The third in a series of books documenting patterns for professional software developers, this volume continues the tradition of informational excellence established by the first two volumes. Pattern Languages of Program Design 3 differs from the previous two volumes in that it includes international submissions, gathering the best papers from both PLoP’96 and EuroPLoP’96.

It covers a wide range of pattern-related subjects, and patterns are arranged by topic so software engineers can easily select those of greatest relevance to their needs and application domains. This book goes beyond teaching software engineers that design patterns are powerful tools to impart understanding—it shows where and when patterns are best applied.

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

Contents

Bobby Woolf. Null Object. 1998
Peter Sommerlad. Manager. 1998
Dirk Baumer, Dirk Riehle. Product Trader. 1998
Ralph E. Johnson, Bobby Woolf. Type Object. 1998
Eugene Wallingford. Sponsor-Selector. 1998
Erich Gamma. Extension Object. 1998
Robert C. Martin. Acyclic Visitor. 1998
Martin E. Nordberg III. Default and Extrinsic Visitor. 1998
Paul Dyson, Bruce Anderson. State Patterns. 1998
Bran Selic. Recursive Control. 1998
Dirk Riehle. Bureaucracy. 1998
Douglas C. Schmidt. Acceptor and Connector. 1998
Fernando Das Neves, Alejandra Garrido. Bodyguard. 1998
Irfan Pyarali, Tim Harrison, Douglas C. Schmidt. Asynchronous Completion Token. 1998
Antonio Rito Silva, Joao Dias Pereira, Jose Alves Marques. Object Recovery. 1998
Neil B. Harrison. Patterns for Logging Diagnostic Messages. 1998
Dirk Riehle, Wolf Siberski, Dirk Baumer, Daniel Megert, Heinz Zullighoven. Serializer. 1998
Wolfgang Keller, Jens Coldewey. Accessing Relational Databases. 1998
Mark Bradac, Becky Fletcher. A Pattern Language for Developing Form Style Windows. 1998
Douglas C. Schmidt, Tim Harrison. Double-Checked Locking. 1998
Chris Cleeland, Douglas C. Schmidt, Tim Harrison. External Polymorphism. 1998
Lorraine L. Boyd. Business Patterns of Association Objects. 1998
Liping Zhao, Ted Foster. A Pattern Language of Transport Systems (Point and Route). 1998
Peter Molin, Lennart Ohlsson. The Points and Deviations Pattern Language of Fire Alarm Systems. 1998
Brian Foote, Joseph Yoder. The Selfish Class. 1998
Don Roberts, Ralph E. Johnson. Patterns for Evolving Frameworks. 1998
Charles Weir. Patterns for Designing in Teams. 1998
David E. DeLano, Linda Rising. Patterns for System Testing. 1998
Gerard Meszaros, Jim Doble. A Pattern Language for Pattern Writing. 1998

Markus Schumacher, Eduardo Fernandez-Buglioni, Duane Hybertson, Frank Buschmann, Peter Sommerlad.
Security Patterns: integrating security and systems engineering.
Wiley. 2006

Security can be an intimidating subject area, but this need not be the case. Although time constraints may prevent systems engineers from becoming security specialists, guarding systems against attack is essential. With the growing success of the Internet, computer and software systems have become more and more networked. Writing from the heart of the patterns community, the authors address key questions and present corresponding proven solutions, clearly showing you how to build secure systems.

In a time where systems are constantly at risk, it is essential that you arm yourself with the knowledge of different security measures. This pioneering title breaks down security at various levels of the system: the enterprise, architectural and operational layers. It acts as an extension to the larger enterprise contexts and shows you how to integrate security in the broader engineering process.

Essential security topics include:
• Enterprise level security – security management, principles, institutional policies (such as need-to-know) and enterprise needs (including confidentiality, integrity, availability, accountability, I&A, access control and audit).
• Architectural level security – system level solutions responding to enterprise level policies – and the most important level for facilitating building security into a system.
• User level security – concerned with achieving security in operational contexts.

Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal.
A System of Patterns.
Wiley. 1996

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 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.

Frank Buschmann, Kelvin Henney, Douglas C. Schmidt.
On Patterns and Pattern Languages.
Wiley. 2007

Software patterns have significantly changed the way we design, implement, and think about computing systems. Patterns provide us with a vocabulary to express architectural visions and approaches to development, as well as examples of representative designs and detailed implementations that are clear and to the point.

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:

  • Part I, Inside Patterns, reflects on the use of stand-alone patterns gained over the past decade
  • Part II, Between Patterns, moves outside of the individual pattern to explore the relationships between patterns
  • Part III, Into Pattern Languages, builds on the concepts and conclusions of the first two parts by introducing pattern languages

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.