Is This a Pattern

Submitted by: Submitted by

Views: 108

Words: 5590

Pages: 23

Category: Literature

Date Submitted: 11/02/2013 09:00 AM

Report This Essay

focus

software patterns

Is This a Pattern?

Tiffany Winn and Paul Calder, Flinders University of South Australia

W

“Pattern” is an often misused buzzword, perhaps because patterns do not lend themselves to prescriptive, formal definitions. To help software designers understand, use, and write better patterns, the authors propose a set of essential characteristics that can serve as a test for “pattern-ness.”

ithin a given domain, what might appear to be very different problems are often the same basic problem occurring in different contexts. A software design pattern identifies a recurring problem and a solution, describing them in a particular context to help developers understand how to create an appropriate solution. Patterns thus aim to capture and explicitly state abstract problem-solving knowledge that is usually implicit and gained only through experience.

Mediator (an object acting as a go-between for communication between other objects) is a pattern.1,2 But what about algorithms such as Bubblesort and programming techniques such as Extend by Subclassing? On a larger scale, could idiomatic styles of system organization such as Pipe and Filter (pipes connect filters; filters read data from input streams, transform it, and produce data on output streams)3 represent patterns? And what about activities other than program or system design? For example, HotDraw patterns tell HotDraw framework users how to assemble HotDraw components to construct a drawing editor4—but are they really patterns? We propose a list of essential characteristics of patterns. Such a list cannot provide a definitive test for pattern-ness: given a pattern-like entity that exhibits the essential characteristics, we cannot say that it is defiJanuary/February 2002

IEEE SOFTWARE

Developers can use that knowledge to solve what appears to be a new problem with a tried-and-true solution, thus improving the design of new software. Recently, the word “pattern” has become a...