CSC/ECE 517 Fall 2009/wiki2 12 01: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:


== Problem Statement ==
== Problem Statement ==
Line 8: Line 7:
A design pattern in software engineering can be described as a reusable solution template to a frequently occurring software design problem.
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 ====


Purpose of Pattern Classification
* The schemes ought to be simple and easy to learn and use
* The main goal of pattern classification is to make it easier forsoftware developers to select the right pattern to apply.
* The criteria should be few in number  
Example: In order to solve a certain designproblem, the right designpattern, if available, should be selected.
* The main properties of the patterns should be represented
* For selecting a specific pattern, i.e. pattern selection, the nature of the problem should be matched with the right pattern category.
* The classification scheme should facilitate easy selection of patterns
Hint: Match the description of the problem with the description of the pattern category, then with the description of the individual patterns.
* Using the classification scheme it should be easy to classify new patterns
* Classification schemas can be used to understand and perceive the main propertiesof patterns.
* The classification scheme should also capture the relationships between different patterns
* It is usually impractical to go through all the details of all the patterns before picking up the right pattern.
* Classification schemas can be used to structurea pattern system and highlight the relationshipsbetween the constituent patterns.
 
Properties of Classification Schema
 
According to [Buschmann96]:
* Simple and easy to learn: It should be easy to use the classification scheme to classify and select patterns.
* Few classification criteria: In order to reduce complexity and ambiguity, the classification schema needs to be as compact as possible in terms of the number of criteria.
* Reflecting pattern properties: Using the classification schema, it should be possible to represent the main properties of the patterns to be classified.
* Road map to pattern selection: The classification scheme should ease the pattern selection process.
* Openness to the integrationof new patterns: Using the classification schema, it should be possible to classify new patterns.


Additional Properties:
* Openness to new classification criteria: It should be possible to extend the classification scheme by either increasing its dimension or by modifying a given dimension.
* Reflecting the relationship between patterns: In addition to capturing their main properties, the classification schema should be able to highlight the relationships between the patterns.


== Classification of Design Patterns ==
== Classification of Design Patterns ==
Line 48: Line 34:
*Performance
*Performance
*Maintenance
*Maintenance
== Headline text ==
== Headline text ==

Revision as of 20:25, 9 October 2009

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