Patterns of Software Design
Patterns for Architecture were introduced by Christopher Alexander in the 60’s.
Software patterns are a recent discovery (early 90’s).
A pattern is a named nugget of insight that conveys the essence of a proven solution to a recurring problem : within a certain context, amidst competing concerns.