Next:A brief history of Design Patterns Up:Industrial Experience with Design Previous:Abstract IntroductionSoftware developers have a strong tendency to reuse designs that have worked well for them in the past and, as they gain more experience, their repertoire of design experience grows and they become more proficient. Unfortunately, this design reuse is usually restricted to personal experience and there is usually little sharing of design knowledge among developers. A design pattern is a particular form of recording design information such that designs which have worked well in particular situations can be applied again in similar situations in the future by others. The availability of a catalog of design patterns can help both the experienced and the novice designer recognize situations in which design reuse could or should occur. Such a collection is time-consuming to create, but it is our experience that the invested effort pays off. A pattern is said to be a ``solution to a problem in a context''. The basic structure consists of a name for the pattern, a problem statement, a context in which the problem occurs, and a description of the solution together with additional information such as the associated tradeoffs, a list of where this pattern has been applied etc. The form consists of structured prose and sketches (such as OMT diagrams and interaction diagrams). There is general agreement that the pattern identifies a set of ``forces'' or constraints which are subsequently resolved in the solution. Design patterns have received a lot of attention lately, especially in the object-oriented community. The reason for the recent interest in design patterns is not the novelty of the designs themselves, but rather the vision that a diverse community of experienced software practitioners, communicating mostly via the internet, can share and collectively grow a set of design repertoires in the form of patterns. The patterns community is sufficiently enthused about the prospective advantages to be gained by making this design knowledge explicit in the form of patterns, that hundreds of patterns have been written, discussed and distributed.
Next:A brief history of Up:Industrial Experience with Design Previous:Abstract 11265-Jim Coplien Tue Aug 20 17:08:07 CDT 1996 |