Presentation is loading. Please wait.

Presentation is loading. Please wait.

DESIGN PATTERNS CSC532 Adv. Topics in Software Engineering Shirin A. Lakhani.

Similar presentations


Presentation on theme: "DESIGN PATTERNS CSC532 Adv. Topics in Software Engineering Shirin A. Lakhani."— Presentation transcript:

1 DESIGN PATTERNS CSC532 Adv. Topics in Software Engineering Shirin A. Lakhani

2 Introduction  A pattern is the outline of a reusable solution to a general problem encountered in a particular context  The recurring aspects of designs are called design patterns  Rational reconstruction of existing programming practice

3 Essential Elements  Name: Good pattern name form vocabulary for commonly  Problem: Problem statement which describes its intent  Context: It tells us patterns applicability  Forces: Forces reveal the intricacies of a problem and defines trade-offs  Solution: It should describe static relationships and dynamic rules

4 Essential Elements  Examples: One or more sample applications of the pattern  Resulting Context: The state or configuration of the system after the pattern has been applied  Rationale: A justifying explanation of steps or rules in the pattern  Related Patterns: Predecessor patterns, successor patterns, alternative patterns, and codependent patterns  Known Uses: Describes known occurrences of the pattern and its application within existing systems.

5 Criteria which design pattern should meet  Focus on practicability  Aggressive disregard of originality  Non-anonymous review  Writer's workshops instead of presentations  Careful editing

6 Qualities of Pattern  Encapsulation and Abstraction  Openness and Variability  Generativity and Composability  Equilibrium

7 Why Design Patterns ?  Solve "real world" problems  Document design decisions and rationale  Convey expert insight to novices  Form a shared vocabulary for problem- solving discussion  Record experience in designing object oriented software as design patterns.  Capture experience in the form of a catalog.  Help software developers

8 Benefits of using Design Patterns  A Common Design Vocabulary  A Documentation and Learning Aid  An adjunct to existing methods

9 Drawbacks of using Design Patterns  Patterns do not lead to direct code reuse.  Patterns are deceptively simple.  Patterns are validated by experience  It is a human-intensive activity.

10 Software Patterns are…  Recurring solution to common problem of design  Practical/concrete solutions to real world problems  Context specific  “Best-fits” for the given set of concerns/trade-offs

11 Software Patterns are not  Restricted to software design or Object-Oriented design  Untested ideas/theories or new inventions  Solutions that have worked only once  Any old thing written-up in pattern format  Abstract principles or heuristics  Universally applicable for all contexts  A “silver bullet” or panacea

12 Design Patterns  Creational Patterns  Abstract Factory Pattern  Builder Pattern  Factory Method Pattern Test  Prototype Pattern  Singleton Pattern  Structural Patterns  Adapter Pattern  Bridge Pattern  Composition Pattern  Decorator Pattern  Façade Pattern  Flyweight Pattern  Proxy Pattern

13 Design Patterns  Behavioral Patterns  Chain of Responsibility Pattern  Command Pattern  Interpreter Pattern  Iterator Pattern  Mediator Pattern  Memento Pattern  Observer Pattern  State Pattern  Strategy Pattern  Template Method Pattern  Visitor Pattern


Download ppt "DESIGN PATTERNS CSC532 Adv. Topics in Software Engineering Shirin A. Lakhani."

Similar presentations


Ads by Google