A design pattern is a high-level idiom. Where an "idiom" supports some useful low-level
functionality - like iteration, a "design pattern" encapsulates some useful
feature such as "sharing a database connection", or "personalising a web-page".
Design Patterns have evolved typically through the application of Object Oriented Design and the recognition of re-usable object interactions (object protocol).
The Cut The Crap Software includes a component called The Alchemist that
uses empirically established Design Patterns to generate complete applications from
a simple description.
These have been developed through the use of the Generic Persistent Object Model, revealing new stereotypical constructs.
Please check out the main website for more information and free downloads.