Random Thoughts on Computing

Entries tagged as ‘Patterns and Anti-Patterns’

Architecture Patterns and Design Patterns

November 11, 2008 · Leave a Comment

Architecture Pattern – It expresses a fundamental structural organization or schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.

Examples : Architectural framewoks like Zachman, ( ZIFA ) provide the user with a pattern for the designing the enterprise. The OpenGroup also discusses more on this.

This article details the various attributes of a system, and where does software architecture fit it.

Design Pattern – It provides a scheme for refining the subsystems or components of a software system, or the relationships between them. It describes a commonly recurring structure of communicating components that solves a general design problem within a particular context.

Examples : Adapter, Fascade, Singleton, Proxy to name a few.The book on Design Patterns by GOF, provides an exahustive list of design patterns. The Hillside site also has various patterns. With the dynamic change in software its becoming increasingly large to create new patterns, like the one Yahoo has. The TRIZ journal entry also correlates how to use design patterns along with software engineering.

Idiom – It is a low-level pattern specific to a programming language. An idiom describes how to implement particular aspects of components or the relationships between them using the features of the given language.

Example : Idioms generally relate to a particular programming language. Curiously Recurring Template Pattern is considered an idiom in C++.

Other interesting articles on Idioms can be found below:
a) Idioms and Patterns in Architectural Literature.
b) C++ Idioms – Coplien .
c) C++ Idioms .
d) More C++ Idioms .

Categories: Software Architecture
Tagged: , , , , , , , , , , ,

Design patterns, Antipatterns and Refactoring – Useful Site

May 12, 2008 · Leave a Comment

Categories: Software Architecture
Tagged: , , , , , , ,