Introduction to Pattern Oriented Analysis and Design (POAD)

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

POAD Book: Chapter 10 POAD: The Design Refinement Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Software Engineering I Object-Oriented Design
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction To System Analysis and design
UML - Development Process 1 Software Development Process Using UML (2)
MVC and MVP. References enter.html enter.html
Requirements Analysis
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
POAD Distributed System Case Study: A Medical Informatics System Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Unified Modeling Language, Version 2.0
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Introduction To System Analysis and Design
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
POAD Book: Chapter 9 POAD: The Design Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Introduction to Pattern Oriented Analysis and Design (POAD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
POAD Book: Chapter 8 POAD: Analysis Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Automating the Development of Pattern-Oriented Designs Copyright, 1996 © Dale Carnegie & Associates, Inc. Sherif Yacoub, Hengyi Xue, and Hany Ammar {yacoub,
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
ECE450S – Software Engineering II
Introduction to OOAD and the UML
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
POAD Book: Chapter 7 POAD: The Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Basic Characteristics of Object-Oriented Systems
Introduction to OOAD and UML
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Design Concepts ch-8
Principles of Programming & Software Engineering
Design Patterns: MORE Examples
Software Design Refinement Using Design Patterns
Instructor: Dr. Hany H. Ammar
UML Diagrams: Class Diagrams The Static Analysis Model
Strategy Design Pattern
UML Diagrams By Daniel Damaris Novarianto S..
Object-Oriented Analysis and Design
Chapter 10 Design Patterns.
POAD Book: Chapter 8 POAD: Analysis Phase
Systems Analysis and Design With UML 2
OO Methodology OO Architecture.
Instructor: Dr. Hany H. Ammar
UML Diagrams Jung Woo.
Presented by Igor Ivković
Model-Driven Analysis Frameworks for Embedded Systems
Object Oriented Analysis and Design
Unified Modeling Language
Chapter 20 Object-Oriented Analysis and Design
Software Design Lecture : 15.
An Introduction to Software Architecture
Systems Construction and Implementation
System Construction and Implementation
Systems Construction and Implementation
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presented by Igor Ivković
Introduction to OOAD and the UML
Software Development Process Using UML Recap
Software Architecture & Design
Presentation transcript:

Introduction to Pattern Oriented Analysis and Design (POAD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

Outline Review of Design Patterns Examples of Design Patterns The Lifecycle of a Pattern Examples of Design Patterns The Command Pattern The Observer Pattern The Strategy Pattern Pattern Oriented Development The Analysis phase The Design phase The design refinement phase The Feedback Control Example We will be discussing the following topics through out this session. First Then And then Last but not least

The Lifecycle of Patterns (From the Reference “Pattern-Oriented Analysis and Design”, Sherif M Yacoub and Hany H. Ammar Addison-Wesley Inc., 2004) Real World Projects Pattern Mining Discover Patterns Incident Occurrence of a Pattern Preliminary Documentation Document Analyze/Rule of Three Author Version Pattern Polishing Reusable Version Pattern Reuse Feedback Modification Phase I: MINING Author World Phase II: POLISHING Pattern Community World Phase III: REUSE Pattern User World Legend Activity Product

Review of Design Patterns Examples of Design Patterns (From the Design Patterns CD by Gamma et al, Addison-Wesley Inc., 1998 ) The Command Pattern: Encapsulate a request as an object

Review of Design Patterns The Command Pattern From the Design Patterns CD by Gamma et al, Addison-Wesley Inc., 1998

Review of Design Patterns Examples of Design Patterns The Observer Pattern: when one object changes state, all its dependents are notified and updated automatically Model View Controller example

Review of Design Patterns Examples of Design Patterns The Observer Pattern class diagram From the Design Patterns CD by Gamma et al, Addison-Wesley Inc., 1998

Review of Design Patterns Examples of Design Patterns The Strategy Pattern: lets the algorithm vary independently from clients that use it

Pattern Oriented Development Design Patterns are used in an ad-hoc strategy for design refinement They are also used to address a set of design problems without any guidance of how these patterns can be glued or interface together Is there a way to use design patterns as building blocks or as components in the design of systems ?

Pattern Oriented Development Pattern Oriented Analysis and Design (POAD) The process aspects of POAD explains the phases and steps to develop an application design using patterns the POAD process has three phases: Analysis Design Design Refinement UML is becoming widely accepted standard for req. analysis and subsequent phases of s/w dev. (de facto standard) Success Factors: Different diagrams represent the software model from different points of view, so subsequently specifying s/w aspects hidden elsewhere. Supported by graphical representation that is easy-to-use The s/w dev. Process is not coupled to notation. Choose any subset of diagrams related to application objectives. ROOM intended for simulating the application execution scenarios and complex object behavior UML, hierarchy , static aspects os S?W architecture, Object behavior is modeled in state diagrams. Object-Time Ltd and Rational software collaborated to produce UML-RT Dynamic analysis is conducted on executable design models - We use Rose-RT.

Pattern Oriented Development Analysis Design Design Refinement a logical model is developed and patterns are selected where patterns are glued together to produce a detailed pattern-level diagram An initial class diagram, and a more dense and profound class diagram, and sequence diagrams are developed

a) overall phases, b) analysis, c) design, and d) design refinement The POAD process a) overall phases, b) analysis, c) design, and d) design refinement Acquaintance Pattern Library Candidate Patterns Selection Selected Patterns Application Requirements Requirement Analysis Required Conceptual Components Retrieval (a) Overall POAD Analysis Design Design Refinement (b) Analysis Pattern-Level Diagrams Constructing Pattern-Level models Create Pattern Instances Define Pattern Relationships Construct Pattern-Level Diagrams Constructing models for Pattern-Level with Interfaces Pattern-Level with Interfaces Diagrams Declare Pattern Interfaces Identify Relationships between Pattern Interfaces Constructing models for Detailed Pattern-Level Detailed Pattern-Level Diagrams Selected Patterns (c) Design Detailed Pattern-Level Diagrams (d) Design Refinement Concretization Instantiating Pattern Internals Specialization Domain Specific Detailed Pattern-Level Diagrams Develop Class Diagrams Initial UML class diagram Reduction Design Optimization Merging & Grouping Optimized class diagram

POAD Analysis Phase  Develop use case diagrams to identify the problems to be solved and the possible breakdown of the application as a set of logical components.   Acquaintance with relevant pattern databases to get the analyst familiar with existing solutions. Retrieval of patterns from the domain specific databases to select a set of candidate patterns in an automated fashion. Selection of patterns from a set of candidate patterns for possible inclusion in the design process.

Construct Pattern-Level Models Create an instance for each selected pattern by describing the patterns and their constituents in an application specific context Define how these instances are related to each other The semantic of a dependency relationship used between patterns has a "uses" meaning

The Feedback Control Example From Pattern-Oriented Analysis and Design, Sherif M Yacoub and Hany H. Ammar Addison-Wesley Inc., 2004 Block diagram for a feedback control system Reference Input Measurement Feedback Data Error (Actuating) Signal Feed forward Elements Feedback Elements Plant. + Controlled Output

The Feedback Control Example POAD Analysis Phase (Pattern Selection) The feedforward component implements some sort of a control strategy (instance of Strategy pattern) The feedback component receives measurements and applies a feedback control strategy In the error calculation component, the feedback controller notifies the error calculation unit with the feedback data (instances of the Observer pattern) Data of different types need to be exchanged between the framework components (Measurement, Feedback Data, input data , and error data )

The Feedback Control Example Pattern-Level diagram for feedback control system This is an architectural pattern based on the data flow architectural style

The Feedback Control Example Pattern-Level with Interfaces

The Feedback Control Example Detailed Pattern-Level diagram

The Feedback Control Example Instantiating the ErrorObserver pattern

The Feedback Control Example Instantiating the FeedforwardStrategy pattern

The Feedback Control Example Instantiating the Blackboard pattern

The Feedback Control Example The initial class diagram

The Feedback Control Example The refined class diagram ready for code generation

The Feedback Control Example Object Collaboration Diagram Measurement : MeasurementSubject Error : ErrorObserver F_controller : AbstractController Strategy1 : ControlStrategyA FB_Strategy : FBControlStrategyA 5: MeasurePlant ( ) Feedback : FeedbackSubjectObserver TheBlackboard: Blackboard 9: Notify() 12: GetInput() 13: Analyze() 7: FBApply () 8: Update () 10: Update() 11: Getstate() 3: Update ( ) 4: GetState ( ) 6: Update () 15: Control (DataHolder*) 14: Update () 1: Apply (DataHolder*) 2: Notify ( )