The Perfection of Informality: Tools, Templates, and Patterns
Dirk Riehle · 2003
Tool support for using design patterns in software development has been a failure so far. There are at least two reasons: Either, the tool and its pattern notation have remained incomprehensible for all but the most well-trained developers, or, the tool and notation have been so limiting that they have been of little use at all. The underlying reason for these two problems is a mismatch between two competing needs. Design patterns were introduced to support informal communication in human design activities and have therefore been defined only informally. Tool support, however, requires precise specification to allow for automated application and conformance checking. In this article, by distinguishing design patterns from design templates, I show how to reconcile the need for informal and effective communication with the need for precise specification.