P ATTERN H ATCHING : C H. 5 G O F: F AÇADE P ATTERN Josh Mason 6/29/2009.

Slides:



Advertisements
Similar presentations
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
Advertisements

T O K ILL A S INGLETON F ACTORY M ETHOD P ATTERN Josh Mason 6/18/09.
JDBC Session 4 Tonight: Design Patterns 1.Introduction To Design Patterns 2.The Factory Pattern 3.The Facade Pattern Thursday & Next Tuesday: Data Access.
Helping Dominant or Shy Members. Quiet and Dominant Members Just because some people are quiet, that doesn’t mean their ideas are less valuable. Students.
How to write a review Set the book in context. When, where and if possible why was it written. Tell us a little about the author and his/her objectives.
The Architecture Design Process
Chapter 8, Object Design Introduction to Design Patterns
Façade Pattern Jeff Schott CS590L Spring What is a façade? 1) The principal face or front of a building 2) A false, superficial, or artificial appearance.
Week 8 Implementation Design Alex Baker. Implementation Design System Design – Describes what the system should do Implementation Design – Describes what.
Ralph Johnson - University of Illinois1 Patterns: What They Are, and How to Write Them Ralph Johnson University of Illinois at Urbana-Champaign
ECE 355 Design Patterns Tutorial Part 2 (based on slides by Ali Razavi) Presented by Igor Ivković
Façade Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
 Write a little each day. Practicing regularly helps you become more observant and confident.  Try to write at the same time every day. When writing.
Effective Questioning in the classroom
Seven Habits of Effective Pattern Writers Facade Pattern PH pp GoF pp John Klacsmann.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. The Façade Design Pattern (1) –A structural design pattern.
SAT Prep: Improving Paragraphs AVID III Spring 2012.
Writing successful grant applications (without being a workaholic {or climber} ) Stefan Doerr, Professor of Physical Geography School of the Environment.
Application of Pedagogic Patterns to the Design of Distance Learning Materials Steve Wade University of Huddersfield.
August 21 st Track One Virtual Meeting Prepared and Presented by Institute for Healthcare Improvement Faculty Sue Gullo, Director Jane Taylor, Improvement.
A Behavior Object Pattern
Object Oriented Analysis and Design Introduction.
SENG 422 Lab 2 Design Patterns Time: ELW B220 from (4:00 - 6:50) every Tuesday TA: Philip Baback Alipour Ph.D. Candidate in Electrical, Computer Engineering.
Case Studies on Design Patterns Design Refinements Examples.
CS 325: Software Engineering March 17, 2015 Applying Patterns (Part A) The Façade Pattern The Adapter Pattern Interfaces & Implementations The Strategy.
SOFTWARE DESIGN AND ARCHITECTURE
Formulating a Problem for Systems Analysis. Steps to uncover structures Formulate the problem Identify key variables in the situation (key structural.
1 Communication Skills Kathy McCoy CIS Department University of Delaware.
Researching & Writing a Literature Review Karen Ciccone NCSU Libraries.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
Writer’s Notebook Setting it Up and Expectations.
D ESIGN P ATTERNS Weslei A. de T. Marinho. T ALK O UTLINE Pattern Definition GRASP Patterns GoF Patterns GoF Patterns Classification Creational Patterns.
Defining Good Writing. Words and Ideas: A Handbook for College Writing Your writing should be your own. –It should reflect your own first-hand observation,
GoF Sections Design Problems and Design Patterns.
Facade Introduction. Intent Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the.
The Façade Pattern SE-2811 Dr. Mark L. Hornick 1.
Chapter 1 Data Structures and Algorithms. Primary Goals Present commonly used data structures Present commonly used data structures Introduce the idea.
Structural Design Patterns
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IV Structural Patterns.
Design Patterns Structural Patterns. Adapter Convert the interface of a class into another interface clients expect Adapter lets classes work together.
08 - StructuralCSC4071 Structural Patterns concerned with how classes and objects are composed to form larger structures –Adapter interface converter Bridge.
Structural Patterns1 Nour El Kadri SEG 3202 Software Design and Architecture Notes based on U of T Design Patterns class.
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 Pattern. Definition: A design pattern is a general reusable solution to a commonly occurring problem within a given context in software design.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
JAVA DESIGN PATTERN Structural Patterns - Facade Pattern Presented by: Amit kumar narela Ise Ise
Adapter and Façade Patterns By Wode Ni and Leonard Bacon-Shone.
Why Have Good Relationships?
The Facade Pattern (Structural) ©SoftMoore ConsultingSlide 1.
Watching the movie the hard way…. Page 256 – Head First Design Patterns.
Seung Ha.  Façade is generally one side of the exterior of a building, especially the front.  Meaning “frontage” or “face”  In software architecture,
CS 350 – Software Design The Facade Pattern – Chapter 6 Many design patterns are catalogued in the “Gang of Four” text. I find their definitions not to.
Proposing Client Solutions Sherran S. Spurlock January 10, 2006.
Abstract Factory Pattern Jiaxin Wang CSPP Winter 2010.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Facade Pattern Jim Fawcett CSE776 – Design Patterns Summer 2010
Presented by FACADE PATTERN
Mediator Design Pattern
Façade Pattern:.
TK2023 Object-Oriented Software Engineering
Software Design Patterns
Design Patterns Lecture part 2.
Facade Pattern Jim Fawcett CSE776 – Design Patterns Summer 2010
Decorator Design Pattern
CS 350 – Software Design The Facade Pattern – Chapter 6
Presented by Igor Ivković
Informatics 122 Software Design II
Presented by Igor Ivković
Presentation transcript:

P ATTERN H ATCHING : C H. 5 G O F: F AÇADE P ATTERN Josh Mason 6/29/2009

7 H ABITS OF E FFECTIVE P ATTERN W RITERS 1. Taking Time to Reflect 2. Adhering to a Structure 3. Being Concrete Early and Often 4. Keeping Patterns Distinct and Complementary 5. Presenting Effectively 6. Iterating Tirelessly 7. Collecting and Incorporating Feedback

1. T AKING T IME TO R EFLECT Reflect on prior experience Record experience incrementally Write down problem Write down approach to problem Write down failed approaches Look at other systems and their solutions Not enough time? Read about them. Look at what patterns were used Analyze if a pattern is a variation of another well known pattern Found a new pattern? Ensure there are two example of problem Go to step 2

2. A DHERING TO A S TRUCTURE Write-up should include at least Name Problem description Context and justification of solution Solution to problem Pick a structure and stick to it

3. B EING C ONCRETE E ARLY AND O FTEN Concrete ideas easier to understand then abstract ones Consider having a motivation section first Have a concrete example Refer to example when discussing solution abstractly Tell the “whole truth” Include shortcomings Pitfalls etc.

4. K EEPING P ATTERNS D ISTINCT AND C OMPLEMENTARY Ask, “How is pattern X different form Y?” Make it clear to reader the distinction Let intent of pattern be your guide Don’t let class structure guide you Only so many class hierarchies Make sure patterns are orthogonal Merge related patterns Compare your pattern with other patterns

5. P RESENTING E FFECTIVELY Quality determined by effective presentation Use the best software tools Be good at typesetting Make liberal use of drawings to illustrate key ideas Have a good writing style Down to earth Don’t be pretentious Write conversationally Read a book on writing style

6. I TERATING T IRELESSLY Realize, you’ll likely never get the pattern completely right Expect to rewrite your pattern many times Don’t try to perfect a single pattern before attempting another Patterns don’t exist in isolation A change to one could impact another

7. C OLLECTING AND I NCORPORATING F EEDBACK “No pattern can be trusted until it is used by someone other than its author ” Patterns are obvious to writer, not necessarily readers Get feedback from colleagues Look for opportunities to use your pattern Disseminate your pattern as wide as possible Be prepared for feedback Take the good with the bad Give reviewers the benefit of the doubt

F AÇADE P ATTERN Makes a subsystem easier to use Defines a higher-level interface to make life easier

F AÇADE - M OTIVATION Reduce complexity Minimize dependencies Shield subsystem classes from client

F AÇADE – A PPLICABILITY Use Façade Pattern when Want to provide a simple interface to a complex subsystem Want to decouple a subsystem from the clients Want to layer your subsystems Use façade to define entry point at each subsystem level Mutually dependent subsystem communicate through their facades

F AÇADE – P ARTICIPANTS Façade Everyone else Subsystem classes

F AÇADE – C ONSEQUENCES Benefits Shields client from subsystem components Promotes weak coupling between subsystem and clients Can easily swap one subsystem with another Reduces compilation dependencies Client classes can still use subsystem classes directly if needed Disadvantages May lose functionality in subsystem

F AÇADE – R ELATED P ATTERNS Abstract Factory Provide an interface for creating subsystem objects in a subsystem-independent way Mediator Colleagues communicate through mediator Mediator centralizes communication and sometimes functionality Façade simply abstracts an interface for an entire subsystem Singleton Typically only one façade is required