POAD Book: Chapter 7 POAD: The Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.

Slides:



Advertisements
Similar presentations
Chapter 13 Application Framework. Outline Definition & anatomy Fulfilling the framework contract Building frameworks Examples.
Advertisements

DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 3: The Enhanced E-R Model
POAD Book: Chapter 10 POAD: The Design Refinement Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
 Recent researches show that predicative programming can be used to specify OO concepts including classes, objects, interfaces, methods, single and multiple.
Systems Analysis and Design 8th Edition
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Software Testing and Quality Assurance
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
The Re-engineering and Reuse of Software
Chapter 7: The Object-Oriented Approach to Requirements
Introduction To System Analysis and design
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Chapter 10 Architectural Design
POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Design Patterns.
MVC and MVP. References enter.html enter.html
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 7 Structuring System Process Requirements
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
POAD Distributed System Case Study: A Medical Informatics System Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Introduction to the Unified Modeling Language “The act of drawing a diagram does not constitute analysis or design. … Still, having a well-defined and.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
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
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
SOFTWARE DESIGN.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
 A software application is like a city  Modeling = Architecture  OOP = Civil Engineering  UML Classes = Blueprints of Buildings  UML is a common.
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.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Automating the Development of Pattern-Oriented Designs Copyright, 1996 © Dale Carnegie & Associates, Inc. Sherif Yacoub, Hengyi Xue, and Hany Ammar {yacoub,
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
1 Structuring Systems Requirements Use Case Description and Diagrams.
Systems Analysis and Design in a Changing World, Fourth Edition
Introduction to OOAD and the UML
Computer Science Topical Paper Presentation #NN Presenter Name Pattern Name P a t t e r n X Y Z – P a g e 1 Original Paper Title by Paper Author.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
DETAILED DESIGN, IMPLEMENTATION AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
DOMAIN CLASSES – PART 1 BTS430 Systems Analysis and Design using UML.
Software Architecture and Design BITS C461/IS C341 Software Engineering First Semester Aditya P. Mathur Department of Computer Science Purdue.
Software Design Refinement Using Design Patterns
Instructor: Dr. Hany H. Ammar
UML Diagrams: Class Diagrams The Static Analysis Model
CGS 2545: Database Concepts Fall 2010
POAD Book: Chapter 8 POAD: Analysis Phase
Week 10: Object Modeling (1)Use Case Model
Instructor: Dr. Hany H. Ammar
Web Programming Language
Observer Pattern 1.
Chapter 20 Object-Oriented Analysis and Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Introduction to Pattern Oriented Analysis and Design (POAD)
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

POAD Book: Chapter 7 POAD: The Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

Goals n Pattern Integration: Present two different ways for gluing patterns n To introduce the process aspects of POAD n to outline the POAD approach and to illustrate how patterns can be utilized as design building blocks n We will later see how POAD evolve from their integration

outline Pattern Integration: Stringing vs Overlapping POAD Process Outline (Nutshell) Analysis Design Design Refinement

Pattern Integration: Stringing vs Overlapping n Both techniques (stringing patterns, and overlapping them together) were originally used for Civil engineering purposes, but they do apply to building software systems. n Stringing -patterns are glued together – glue could be UML relationships – design is a loose assembly of patterns – You end up with too many classes with trivial responsibilities

Pattern Integration: Stringing vs Overlapping n Overlapping – A class as a participant in one pattern could be at the same time a participant of another pattern in the same application design – One class can play two different roles, in two different patterns n The Advantage of overlapping is that you have fewer classes n The disadvantage is that pattern boundary is lost and patterns are hard to trace

Example n Consider the Reactor and Composite Patterns Reactor Dispatch() EventHandler HandleEvent() CloseHandle() GetHandle() nn ConcreteEventHandler1 ConcreteventHandler2

Example Leaf Operation() Composite Operation() AddComponent(Component) RemoveComponent(Component) Component Operation() AddComponent(Component) RemoveComponent(Component) nn The Event Handler can be a Composite Component

Example n Now, you have two patterns to glue, the Reactor and the Composite patterns n Stringing the 2 patterns together gives us the following

Example: Stringing Leaf Operation() Composite Operation() AddComponent(Component) RemoveComponent(Component) Component Operation() AddComponent(Component) RemoveComponent(Component) nn Reactor Dispatch() EventHandler HandleEvent() CloseHandle() GetHandle() nn ConcreteEventHandler1 Concretevent Handler2

Example: Overlapping Reactor Dispatch() EventHandlerComponent HandleEvent() CloseHandle() GetHandle() AddComponent(EventHandlerComponent) RemoveComponent(EventHandlerComponent) nn LeafEventHandler HandleEvent() CloseHandle() GetHandle() CompositeEventHandler HandleEvent() CloseHandle() GetHandle() AddComponent(EventHandlerComponent) RemoveComponent(EventHandlerComponent) nn We merge classes together

What does POAD uses n Although Stringing is the easier of the 2 approaches, it is often avoided – It provides good traceability n POAD uses both – It uses the simplicity and traceability of the stringing-patterns approach – the density and profoundness of the overlapping-patterns approach n POAD integrates both methods in one process

Hierarchical Integration Techniques n POAD starts by assembling patterns at a higher level of abstraction using the stringing approach n It then allows the designer to integrate the lower level classes to produce dense and profound designs

outline Pattern Integration: Stringing vs Overlapping POAD Process Outline (Nutshell) Analysis Design Design Refinement

POAD Process Outline (Nutshell) n We will use the purpose/process/product template to explain the various steps within a development phases – Purpose - explains why a designer would conduct this step – Process - describes the activity that the designer conducts in this step – Product - describes expected output of this step

Three phases of POAD n analysis – A set of patterns are selected from a domain specific library n high-level design phase where – patterns are glued together using pattern composition models to produce an initial class diagram n design refinement phase – initial class diagram is processed to produce a more dense and profound class diagram

POAD Process n The following figure shows the symbols we use for POAD Process description Product A process uses a product A process uses another process Legend A process produces a product Process

Acquaintan ce Pattern Library Candidate Patterns Selection Selected Patterns Application Requirements Requirem ent Analysis Required Conceptual Components Retrieval 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 Instantiating Pattern Internals Domain Specific Detailed Pattern-Level Diagrams Specializatio n Concretizatio n Develop Class Diagrams Initial UML class diagram Design Optimization Reductio n Merging & Grouping Optimized class diagram Detailed Pattern- Level Diagrams (d) Design Refinement Analysis Design Design Refinement (b) Analysis (a) Overall POAD The POAD process a) overall phases, b) analysis, c) design, and d) design refinement

outline Pattern Integration: Stringing vs Overlapping POAD Process Outline (Nutshell) Analysis Design Design Refinement

Analysis phase n Purpose – Analyze the application requirements and decide what patterns that will be used n Process – UML use case diagrams and sequence diagrams are used to identify required patterns – Main concern is determining whether or not the pattern can be used and why it is better – analyst searches pattern catalogues for candidate patterns – Analyst must be acquainted with the catalogue Acquaintan ce Pattern Library Candidate Patterns Selection Selected Patterns Application Requirements Requirem ent Analysis Required Conceptual Components Retrieval

Analysis phase – Retrieval how to select a pattern from a catalogue n Product – Patterns chosen by the application analyst – For example: Recall the n Feedback control example. Observer and Strategy pattern is selected for the feedforward component, And for the feedback component Referenc e Input Measureme nt Feedbac k Data Error (Actuatin g) Signal Feed forward Elements Feedback Elements Plant. + + Controlled Output Acquaintan ce Pattern Library Candidate Patterns Selection Selected Patterns Application Requirements Requirem ent Analysis Required Conceptual Components Retrieval

outline Pattern Integration: Stringing vs Overlapping POAD Process Outline (Nutshell) Analysis Design Design Refinement

Design phase n Purpose – Develop the application design by composing the patterns selected in the analysis phase n Process – Instantiating patterns, and identifying relationships between instances – Proceed from the Pattern-Level diagram to create a Pattern-Level with Interface diagram 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

Design phase n Process (Cont.) n From Pattern-Level with Interface diagram, the designer identifies details of the pattern and Detailed Pattern-Level diagram is produced n Product – The product of this phase is Detailed Pattern- Level diagrams 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

Example FeedforwardStrategy > InputObserver > Context Update Notify Subject Attach() Detach() Notify() Observer Update() ConcreteObserver observerState Update() ConcreteSubject subjectState getState() nn ConcreteStrategyA AlgorithmInterface() ConcreteStrategyB AlgorithmInterface() Context ContextInterface() Strategy AlgorithmInterface()

outline Pattern Integration: Stringing vs Overlapping POAD Process Outline (Nutshell) Analysis Design Design Refinement

Design Refinement phase n Purpose – To develop the profound and dense class diagram for the application n Process – Starting with Detailed Pattern-Level diagram – Designer instantiates each pattern in the context of the application

Design Refinement phase n Process (cont.) – This produces our initial class diagram – class diagram is obtained from gluing patterns together at the high level design n Product – Optimized class diagram for the application

Example