A4 Redux SENG 301.

Slides:



Advertisements
Similar presentations
WRITING CRITIQUE GROUP GUIDELINES Writing responses to your group members’ work and receiving responses from others is the most important step in revising.
Advertisements

THE OBJECT-ORIENTED DESIGN WORKFLOW Interfaces & Subsystems.
To succeed in business today, you need to be flexible and have good planning and organizational skills. Many people start a business thinking that they'll.
How to retire a millionaire. So what is your plan? Most people don’t have a plan for becoming rich or wealthy If your only plan is to marry someone rich,
A quadratic equation is a second degree polynomial, usually written in general form: The a, b, and c terms are called the coefficients of the equation,
Personal Reading Procedure By: Kellen X. Reinsch.
MYJ - Strengthening Family Relationships. Activities: View stories from p ‘You and Your Family’ article Discuss key points List the guidelines.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
OO Methodology Elaboration Iteration 2 - Design Patterns -
Cover Letter YOUTH CENTRAL – Cover Letters & Templates
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Lecture Model View Controller s/w architecture AND general tips on structuring classes.
© 2015 albert-learning.com How to talk to your boss How to talk to your boss!!
Week91 APCS-A: Java Problem Solving November 2, 2005.
This I Believe Essay Writer’s Workshop: Introductions, Juicy Details, & Conclusions 8 th ELA St. Joseph School.
Consecutive Numbers All Saints. Consecutive Numbers What are consecutive numbers? Can you give me an example of 4 consecutive numbers? You can start anywhere.
Album Designing Tips 1 Tips to create the amazing wedding album designs.
 The other way to improve your debt to credit ratio is by increasing your high credit limit by getting a new credit card with a big, fat limit. Sorry,
What is Economics? Chapter 1.
How many parts should there be? What is the portion of the whole?
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.
Summary prepared by Kirk Scott
Money What would happen if we didn’t have money?.
“When quality is critical"
WHAT IS MONEY?.
Memory and logic in language learning
answer the questions and check your answers by clicking on blue arrows
Creating Our Common Wealth Supporting the Growth of Others
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
An Introduction to Motivational Interviewing
Module4 Company Website.
AP CSP: Encode an Experience
SEMANTICS VS PRAGMATICS
GETTING OUT OF PERSUASIVE SITUATIONS
Counters Next, we’ll look at different kinds of counters and discuss how to build them. These are not only examples of sequential analysis and design,
Using Seven Reader-Centered Patterns for Organizing
Personal Finance Budgeting Introduction to budgeting.
Welcome!! While you are waiting…….. Have a look through your pack -
Warm Up #5 What are three examples of technology?
Maths Workshop for Parents
Sentence Structure Basics: Subject and Predicate
Figure 30.2 Layers in NextGen
Active Service Model in practise -Introduce self
A Look at PowerPoint 2000 The , the , and the.
Personalize Practice with Accelerated Math
Fundamentals of Data Representation
Supporting Children’s Language and Listening Skills
Group Discussion 1: Structure & Organisation of a research society
WHO AM I? The Symbol Test.
The Rhetorical Triangle
Big Ideas and Problem Solving
Product Offerings, Value Selling System & Questions
The Agile Inception Deck
Counters Next, we’ll look at different kinds of counters and discuss how to build them. These are not only examples of sequential analysis and design,
THE NATURE OF SCIENCE.
SMALL GROUP PRINCIPLES AND DYNAMICS
Objection!.
Regression testing Tor Stållhane.
INTERNET SAFETY RULES! INTERNET SAFETY WEEK!!!.
By The way, Why Groups? OK every student hates group work
Applying Use Cases (Chapters 25,26)
Money and Your Honey Andy Trice Volunteer Financial Counselor
Applying Use Cases (Chapters 25,26)
Memory and logic in language learning
The Nature of Science.
Counters Next, we’ll look at different kinds of counters and discuss how to build them. These are not only examples of sequential analysis and design,
Unreal uses of past tenses
Software Should be Considerate
A4 Pre.
Active Reading Series: How to Critically Annotate
Presentation transcript:

A4 Redux SENG 301

Learning Objectives By now, you should have: Re-designed a system to make use of the façade design pattern Used event handling, and the observer design pattern to communicate between modules

“The Goal” Ostensibly: enabling extensibility Effectively: refactoring, and making some design choices

Refactoring to a layered architectural style Business Rule Funds or Payment Facade Product Facade Communication Facade Posted solution: Payment Façade listens for HardwareFacade.CoinSlot.CoinAccepted events Communication Façade listens for HardwareFacade.SelectionButton.Pressed events. When it gets these, the business rule is invoked Business rule checks price of item, checks if there’s enough credit; if there is, dispenses product, and then dispenses change Some of you didn’t use the events from C# and instead followed a more standard observer pattern. That’s fine. The C# approach is kind of like syntactic candy Hardware Facade

Ostensibly, what was difficult Certain “parts” can’t talk to one another This is annoying, and makes you wonder why “low coupling” is such a great ideaif everything can talk to everything else, wouldn’t that be better? This is why there was the “extensibility” argument: essentially, the idea is, “Think ahead! Later on, it’ll be a pain to change anything if it’s a big spaghetti mess!”

What was frustrating: Getting going “Where should X be?” “Should I do X or Y?” e.g. “Who should track the money in the system?”: Payment Façade or Business Rule? e.g. “Who should know how much a product costs?”: Product Façade or Payment Façade? These are valid questions, and no real great answers: there are trade-offs regardless of the choice you make

What was frustrating: the facades We provided you with the facades that were supposed to exist, and just said, “That’s the way it is going to be.” This was also problematic at times: e.g. “How is the communication façade supposed to communicate price of items (or ‘cost remaining’) if it doesn’t know how much a item costs?” The specific partitioning (i.e. the architecture) has certain deficiencies—other kinds of partitionings were possible

Wait, so how would I have added X? In principle, adding a new “payment” component (e.g. bill reader) would probably mean: (a) adding a new thing to the hardware façade, and then (b) adding a new thing to the Payment façade. (in both cases, likely fairly simple additions) Adding other I/O devices a little more complex. E.g. a touch screen (depending on what it shows) needs a bit more information—e.g. from product façade (pricing information), or from the payment façade (how much credit in system). This might mean that the partitioning doesn’t make sense, or that it is going to be a little more coupled than what we’d intended.

Learning Objectives Two layers of objectives. Layer 1: Layer 2: Refactor a system to make use of the façade design pattern, and layered architectural style Use event handling, and the observer design pattern to communicate between modules Layer 2: Face the challenge of dealing with having to design something with some uncertainty Recognize trade-offs between different designs