BTS530: Major Project Planning and Design

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

JDBC Session 4 Tonight: Design Patterns 1.Introduction To Design Patterns 2.The Factory Pattern 3.The Facade Pattern Thursday & Next Tuesday: Data Access.
Object-Oriented Analysis and Design CHAPTER 17, 25: GRASP PATTERNS 1.
GRASP The other four What are the first five? What is the goal/purpose of using patterns?
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
Patterns – Day 8 Adapter continued Facade Reminders: Faculty candidate talk Friday 4:20 PM O-267. Brian Postow: Games and Complexity Theory No class tomorrow.
Object-Oriented Software Engineering Practical Software Development using UML and Java Design Patterns – Part 2 Sources: Chapter 6: Using Design Patterns,
Chapter 25 GRASP: More Objects with Responsibilities 1CS6359 Fall 2011 John Cole.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
NJIT More GRASP Patterns Chapter 22 Applying UML and Patterns Craig Larman Prepared By: Krishnendu Banerjee.
Chapter 25 More Design Patterns. Polymorphism Issue: Conditional variation –If-then-else or switch statements –New variation or case: Conditional statements.
Fall 2009ACS-3913 R. McFadyen1 Polymorphism Indirection Pure Fabrication Protected Variations (Law of Demeter) More GRASP Patterns.
Chapter 26 Applying Gang of Four Design Patterns 1CS6359 Fall 2012 John Cole.
Chapter 25 More Design Patterns.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. The Façade Design Pattern (1) –A structural design pattern.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
Chapter 17. GRASP General Responsibility Assignment Software Patterns (Principles) OOD: after identifying requirements, create domain model, define responsiblities.
SOFTWARE DESIGN AND ARCHITECTURE
CSC 213 – Large Scale Programming Lecture 3: Object-Oriented Analysis.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
BTS430 Systems Analysis and Design using UML Design Patterns.
Chapter 17. Initial Object Design Inputs: requirements meetings various Use Cases – 10% complete Key risks addressed with preliminary programming System.
GRASP: Designing Objects With Responsibilities
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
The Adapter Pattern SE-2811 Dr. Mark L. Hornick 1.
Copyright © Craig Larman All Rights Reserved Responsibility-Driven Design with the GRASP Patterns.
CSSE 374: More GRASP’ing for Object Responsibilities
GRASP: Designing Objects with Responsibilities
Facade Introduction. Intent Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the.
CS 210 Adapter Pattern October 19 th, Adapters in real life Page 236 – Head First Design Patterns.
What to remember from Chap 13 (Logical architecture)
OO Methodology Elaboration Iteration 2 - Design Patterns -
FacadeDesign Pattern Provide a unified interface to a set of interfaces in a subsystem. Defines a high level interface that makes the subsystem easier.
Design Patterns By Mareck Kortylevitch and Piotreck Ratchinsky.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
JAVA DESIGN PATTERN Structural Patterns - Facade Pattern Presented by: Amit kumar narela Ise Ise
Computer Science 340 Software Design & Testing Software Architecture.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
Chapter 17 Designing with Responsibilities. Fig
Watching the movie the hard way…. Page 256 – Head First Design Patterns.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
GRASP: More Patterns for Assigning Responsibilities Presented By Dr. Shazzad Hosain.
BTS430 Systems Analysis and Design using UML
Elaboration: Iteration 2. Elaboration: Iteration 2 Basics Iteration 1 ends with : All the software has been tested: The idea in the UP is to do early,
Facade Pattern Jim Fawcett CSE776 – Design Patterns Summer 2010
Abstract Factory Pattern
CS 325: Software Engineering
Façade Pattern:.
GoF Patterns (GoF) popo.
Software Design & Documentation
Conception OBJET GRASP Patterns
Facade Pattern Jim Fawcett CSE776 – Design Patterns Summer 2010
Abstract Factory Pattern
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
BTS530: Major Project Planning and Design
Intent (Thanks to Jim Fawcett for the slides)
GRASP : Designing Objects with Responsibilities
Week 6 Object-Oriented Programming (2): Polymorphism
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 25 GRASP The other four.
Chapter 25 GRASP The other four.
Software Design Lecture : 35.
defines a higher-level interface that makes a subsystem easier to use
Presentation transcript:

BTS530: Major Project Planning and Design Basic Design Pattern Concepts All References and Material unless otherwise specified From: Applying UML and Patterns, 3rd Edition, chapter 25

Basic Patterns/Concepts Controller Use Case / Session Façade For protecting from variations For simplicity Polymorphism

Use Case / Session Controller What first object beyond the UI controls (receives and coordinates) a system operation? A “controller” object Uses use case logic to determine how a message from the UI should be handled Can be considered a special type of Facade Design Patterns, p. 302

Use Case / Session Controller

Facade Knows which subsystem classes are responsible for a request Delegates subsystem requests to appropriate subsystem objects “Protects” and/or “Simplifies” Design Patterns, p. 461

Façade-protect from variations UI Business Logic Data Services

Façade-simplify The home tv example: “client” talks to one object—the HomeTheatreFacade Much simpler than talking to: Amplifier Tuner Dvd player Etc. One function “watch movie” initiates all required functions from other classes Each individual component can be accessed if required Adapted from Head First Design Patterns, by Freeman, Freeman, Sierra, Bates, p258

Subsystem

Façade-simplify Provides a simple interface to a complex subsystem Still have access to each component in the subsystem

Polymorphism The Problem: How do you handle alternatives based on type? How do you create pluggable software components? if/then/else or case conditional logic is difficult to maintain difficult to extend a program with new variations how can you replace one server component with another without affecting the client?

Polymorphism A Suggestion/Solution: When alternatives/behaviours vary by type (class): assign responsibilities for the behaviours using polymorphic operations to the types for which the behaviour varies. polymorphic => same name is given to services (methods) of different objects—the services might vary. usually implement a common interface or are in a hierarchy with a common superclass (this is language dependent)

Problem1: how to support 3rd party tax calculators? Fig. 25.1

Problem2: in the game Monopoly a different action is initiated when players land on different squares—for example landing on GO initiates “receive $200”. What is the behaviour that varies? Why don’t we want to test for the type of an object and use conditional logic to handle this, all in one class? why? why? Fig. 25.2

What this looks like in a sequence diagram. why? why? Fig. 25.3

For individual squares: Fig. 25.4-25.7

For individual squares: Fig. 25.4-25.7