Design Patterns

First published: 15 January 2002

Abstract

One of the key challenges in software engineering and development is how to successfully reuse knowledge and experience, as well as the software itself. A primary goal is how to reuse solutions (e.g., software design, software modules) in new applications that were previously developed for other, possibly different applications. Specifically, how can we describe successful solutions to common software problems so that they can be successfully understood, customized, and reapplied on succeeding development efforts? Patterns provide one step toward goal of developing handbooks for software engineers.

“Design pattern” is a term that has come into widespread use to represent a set of partial, proven solutions to general software design problems. Design patterns address one of the key challenges in software engineering and development: reusing the success experience of other developers. Patterns provide a means to capture successful solutions to common software problems in a formal written manner so that they can be successfully passed on to and understood by software developers. Developers can then customize and reapply the pattern on succeeding development efforts. Patterns are not limited to just design; however, they can be and are being applied on a host of domains, including system analysis and the software development process itself.

The full text of this article hosted at iucr.org is unavailable due to technical difficulties.