tailieunhanh - Lecture Software engineering - Chapter 12: Pattern-based design

Pattern-based design creates a new application by finding a set of proven solutions to a clearly delineated set of problems. Each problem and its solution is described by a design pattern that has been cataloged and vetted by other software engineers who have encountered the problem and implemented the solution while designing other applications. Each design pattern provides you with a proven approach to one part of the problem to be solved. | Chapter 12 Pattern-Based Design Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. Design Patterns Each of us has encountered a design problem and silently thought: I wonder if anyone has developed a solution to for this? What if there was a standard way of describing a problem (so you could look it up), and an organized method for representing the solution to the problem? Design patterns are a codified method for describing problems and their solution allows the software engineering community to capture | Chapter 12 Pattern-Based Design Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 7/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. Design Patterns Each of us has encountered a design problem and silently thought: I wonder if anyone has developed a solution to for this? What if there was a standard way of describing a problem (so you could look it up), and an organized method for representing the solution to the problem? Design patterns are a codified method for describing problems and their solution allows the software engineering community to capture design knowledge in a way that enables it to be reused. Design Patterns Each pattern describes a problem that occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use the solution a million times over without ever doing it the same way twice. Christopher Alexander, 1977 “a three-part rule which expresses a relation between a certain context, a problem, and a solution.” Basic Concepts Context allows the reader to understand the environment in which the problem resides and what solution might be appropriate within that environment. A set of requirements, including limitations and constraints, acts as a system of forces that influences how the problem can be interpreted within its context and how the solution can be effectively applied. Effective Patterns Coplien [Cop05] characterizes an effective design pattern in the following way: It solves a problem: Patterns capture solutions, not just .