A4 Pre.

Slides:



Advertisements
Similar presentations
Add a Conference Module Screen Shots When you have a conference it is very easy, call the web office and ask how the initial setup of a conference works.
Advertisements

March R McFadyen1 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate.
Lecture Model View Controller s/w architecture AND general tips on structuring classes.
Norfolk’s Early Intervention Grant – supporting local communities to meet young people’s needs Information provided by Tim Eyres, Strategy & Commissioning.
Welcome to WebAssign! 1st Day of Class.
How To Register & Order Meals on Meal Selector
Facade Pattern Jim Fawcett CSE776 – Design Patterns Summer 2010
Presented by FACADE PATTERN
Development Environment
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
slate for boilermakers
Structure of a web application
Lec-5 : Use Case Diagrams
Recall The Team Skills Analyzing the Problem (with 5 steps)
Chapter 5:Design Patterns
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
Introduction to Design Patterns
Mechanism: Limited Direct Execution
CHAPTER 7 REFLECTING IN COMMUNICATION
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Assignment Completion Strategies
MVC and other n-tier Architectures
Software Design and Architecture
Part 3 Design What does design mean in different fields?
COMP2110 Software Design in 2004 lecture 09 High level design
Open the Bundling Module Under Your Tree
A4 Redux SENG 301.
Good Outcomes make all the difference
Auburn University COMP 2710 Software Construction Use Case Analysis and Exercises (Part 2) Dr. Xiao Qin Auburn University.
Facade Pattern Jim Fawcett CSE776 – Design Patterns Summer 2010
Introduction to Events
Integrating with the Windows Device Experience
Overview of Business Processes
CCEA Developing Pupils’ Problem- Solving Skills in Your Classroom
Welcome to WebAssign! 1st Day of Class.
Figure 30.2 Layers in NextGen
Model-View-Controller Patterns and Frameworks
Troy Thompson Creative Director Pattern Troy Thompson
Welcome to WebAssign! 1st Day of Class.
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Lecture 1: Multi-tier Architecture Overview
Welcome to WebAssign! 1st Day of Class.
Software Architecture
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
#in-class Take a look at A3 assignment description Respond to the poll on #in-class Post questions you have about A3 on #in-class, or emoji a question.
Object oriented analysis and design
CS240: Advanced Programming Concepts
Accountability and Attention during Questioning
Group Discussion 1: Structure & Organisation of a research society
Use Case Model Use case diagram – Part 2.
Using Use Case Diagrams
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Interaction Modeling Extracted from textbook:
Cost of benefits to an employer
OBJECT ARCHITECTURE DESIGN
Six Traits of Writing ALL INFORMATION is taken DIRECTLY from website created by STEVE GARDINER and VINCE LONG as cited on last page of presentation. All.
12. Command Pattern SE2811 Software Component Design
Welcome to WebAssign! 1st Day of Class.
Review of Previous Lesson
Welcome to WebAssign! 1st Day of Class.
Use Case Analysis – continued
Chapter 8, Design Patterns Introduction
CSE 153 Design of Operating Systems Winter 2019
The Nature of Science.
High School Financial Planning Program Use a checking account
Why Did you choose to take Part in this work ?
Public Speaking By Richard Yun – Team 781
HFOOAD Chapter 5 Interlude
Running & Testing Programs :: Translators
Distributed Snapshots
Presentation transcript:

A4 Pre

Learning Objectives By the end of this assignment, you will: Re-design a system to make use of the façade design pattern Use event handling, and the observer design pattern to communicate between modules

Learning Objectives By the end of this assignment, you will: Re-design a system to make use of the façade design pattern Use event handling, and the observer design pattern to communicate between modules I think you need to make use of the event handling. But, it’s nothing you haven’t seen. I am pretty sure this assignment cannot be completed without using event handling. However, do not take this as a challenge. ;-)

What’s the idea? Redesign the system for extensibility: New types of products New forms of payment New forms of communication Alternative hardware (this is already done) Why should we do this? Future-proofing your system Think about abstractions and what assumptions you’re making Someone told you to

What it looks like right now Vending Machine Coin slot Selection Buttons Delivery Chute

What it looks like right now Vending Machine Coin slot Selection Buttons Coin Chutes Pop Chutes Delivery Chute

What it looks like right now Vending Machine Coin slot Selection Buttons Delivery Chute

What we’d like to do Vending Machine

What we’d like to do 1. Other product types Vending Machine ”Products” rather than ”PopCans”

What we’d like to do 2. New forms of payment Vending Machine Abstract this to allow others to create new ways to pay (e.g. credit card)

What we’d like to do 3. New forms of payment Vending Machine Abstract this to allow others to interact with the vending machine (e.g. touch screen, voice interaction, etc.)

What we’d like to do Abstract these major operations Vending Machine

What we’d like to do Abstract these major operations Vending Machine

What we’d like to do Abstract these major operations Vending Machine Funds or Payment Facade

What we’d like to do Abstract these major operations Vending Machine Funds or Payment Facade

What we’d like to do Abstract these major operations Vending Machine Funds or Payment Facade …

What we’d like to do Abstract these major operations Vending Machine Funds or Payment Facade

What we’d like to do Abstract these major operations Vending Machine Funds or Payment Facade Communication Facade

What we’d like to do Abstract these major operations Vending Machine Funds or Payment Facade Communication Facade …

What we’d like to do Abstract these major operations Vending Machine Funds or Payment Facade Communication Facade Product Facade

Funds or Payment Facade What we’d like to do Vending Machine Funds or Payment Facade Communication Facade Business Rule Product Facade

Funds or Payment Facade What we’d like to do Vending Machine Funds or Payment Facade Communication Facade Business Rule Product Facade

Funds or Payment Facade What we’d like to do Funds or Payment Facade Communication Facade Business Rule Product Facade

Funds or Payment Facade What we’d like to do Business Rule Funds or Payment Facade Product Facade Communication Facade

Funds or Payment Facade What we’d like to do Business Rule Funds or Payment Facade Product Facade Communication Facade Notice: 1. Funds, Communication and Product Facades don’t talk to one another. 2. Business Rule is what connects things together – i.e. “when there has been a selection, and there is enough money, then vend the pop, and dispense the change” 3. Notice: business rule does not talk to hardware façade 4. This is a layered architecture Hardware Facade

A few things to keep in mind Hardware façade communicates upward frequently through events, so the facades need to register for these events The facades themselves may expose new events (or related events) that other components might be interested in: e.g. Communication Façade might fire a “SelectionMade” event that might be interesting to both: (1) Business Rule, or (2) a touchscreen display (that communicates only with the communication façade) that shows what was selected The purpose of this is to enable extensibility, but do not implement (say) a CreditCard module or a TouchScreen module—that is beyond the scope of this assignment Your goal is to make it such that it would be easy to add such a class into the project, and have it work without having to re-write much

Example of Extensibility CommunicationFacade exists var lcdScreen = new LCDScreen(communicationFacade); constructor: registers for SelectionMade event so that it displays what product was selected when it gets selected (i.e. don’t need to modify CommunicationFacade code at all to accommodate for LCDScreen