Download presentation
Presentation is loading. Please wait.
Published byMarylou Elliott Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.