Software Design Refinement Using Design Patterns
Instructor: Dr. Hany H. Ammar
- Dept. of Computer Science and
Electrical Engineering, WVU
1
Software Design Refinement Using Design Patterns Instructor: Dr. - - PowerPoint PPT Presentation
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU 1 Outline The Requirements, Analysis, Design, and Design Refinement Models Class diagram
1
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
2
Static Architectural Design Dynamic Design
3
It is difficult to obtain a quality design from the
The initial design is refined to enhance design
New components (or new classes) are defined and
The design refinement step is an essential step
4
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
5
Design Class Diagrams are further refined to enhance
A design pattern is a documented good design
Repositories of design patterns were developed for
Many generic design patterns were defined and can
6
What is a Design Pattern?
Solutions are expressed in terms of classes of
A design pattern names, abstracts, and identifies
7
Design Patterns are documented in the literature by a
8
9
10
11
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
12
13
14
15
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
16
17
Abstract Class Controller Class Control Strategy A Control Strategy B Control Strategy C Default control Strategy
18
The Strategy Pattern Context class has multiple
The pattern lets us vary the algorithm that
The Pattern reduces coupling by having the client
19
20
21
Example
Pattern: SpeedControl Is the Strategy class
22
The complexity of class JobApplication is reduced by moving
23
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
24
25
The State Pattern: is a solution to the problem of how to make
MultiStateOb +CreateInitState() Setstate() <<interface>> State state ConcreteState 1 concreteState n Handle(), Oprn() Handle() Opr1(),Opr2() 1 .. N
N concrete state classes
Abstract State Class Lets a mutli state class divide its responsibilities (Opr1(),Opr2(), and Oprn() on multiple state classes. The Context Class
For more Info, see http://home.earthlink.net/ ~huston2/dp/state.html
Current State
Handle() Changestate()Deletestate()
Context class
26
The State pattern is a similar in structure to the Strategy Pattern but
The structure is defined as follows: – Define a "context" class to present a single interface to the
– Define a State abstract base class. – Represent the different "states" of the state machine as derived
– Define state-specific behavior in the appropriate State derived
– Maintain a pointer to the current "state" in the "context" class. – To change the state of the state machine, change the current
State Transitions can be defined for each State class To be discussed later at length in slides 10 on
27
The context class Multistateob would create the
The initial state object would sense the condition
Each state object implements the transition,
28
29
30
31
Example: How can we apply The State Pattern to the ATM system using This ATM controller StateCharts ? See Next Slides On State Charts Pattern
32
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
33
34
Example of using the Command Pattern in a Menu
35
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
36
37
38
39
40
Interactions are shown using a UML collaboration
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Composite Pattern – The Proxy Pattern
Design Patterns Tutorials
43
44
45
The Requirements, Analysis, Design, and Design Refinement Models
Class diagram refinement using design patterns Design patterns examples – The Facade pattern – The Strategy Pattern – The State Pattern – The Command Pattern – The Observer Pattern – The Proxy Pattern
Design Patterns Tutorials
46
47
48
49
50
Strategy and State Patterns (important) Two tutorials by John Vlissides – An Introduction to Design Patterns
– Designing with Patterns
51