CSC/ECE 517 Fall 2009/wiki2 12 01

From Expertiza_Wiki
Revision as of 20:25, 9 October 2009 by Suryaramana (talk | contribs)
Jump to navigation Jump to search

Problem Statement

Patterns are often classified into creational, structural, and behavioral categories. However, this leaves a large number of patterns in each group, with no easy way of remembering all of them. What classifications and strategies have been developed to help programmers remember patterns, so that they can apply them at opportune moments?


Design Patterns

A design pattern in software engineering can be described as a reusable solution template to a frequently occurring software design problem.

Desirable Properties of Pattern Classification Schemes

  • The schemes ought to be simple and easy to learn and use
  • The criteria should be few in number
  • The main properties of the patterns should be represented
  • The classification scheme should facilitate easy selection of patterns
  • Using the classification scheme it should be easy to classify new patterns
  • The classification scheme should also capture the relationships between different patterns


Classification of Design Patterns

Design patterns can be classified along the following schemes

  • Purpose
  • Scope
  • Functionality
  • Structural Principles
  • Granularity
  • Domain
  • Paradigm
  • Domain-Dependent
  • Process
  • Analysis
  • Reengineering
  • Performance
  • Maintenance