Software Design & Documentation

Slides:



Advertisements
Similar presentations
In the name of God Fa ç ade Design Pattern Amin Mozhgani Software engineering(II)
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.
Design Patterns CS 406 Software Engineering I Fall 2001 Aditya P. Mathur Purdue University October 30, 2001.
Software Engineering Patterns: Facade Kelly Enright.
What is the Chain? It’s a behavioral design pattern. It deals with how objects make requests and how they are handled.
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.
Winter 2011ACS Ron McFadyen1 Façade A façade simplifies access to a related set of objects by providing one object that all objects outside the.
An Introduction to Design Patterns Brian Ordona. Programming: Constantly Searching for the Holy Grail  “There’s got to be a better way to do this!” 
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
Façade Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Feb 4, Ron McFadyen1 founded on principles of good OO design idea was first put forth by Christopher Alexander (1977) in their work concerning.
Seven Habits of Effective Pattern Writers Facade Pattern PH pp GoF pp John Klacsmann.
Creational Patterns Making Objects The Smart Way Brent Ramerth Abstract Factory, Builder.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. The Façade Design Pattern (1) –A structural design pattern.
Dependency Injection and Model-View-Controller. Overview Inversion of Control Model-View-Controller.
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
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.
More Design Patterns In Delphi Jim Cooper Falafel Software Session Code: D3.03 Track: Delphi.
Case Studies on Design Patterns Design Refinements Examples.
SOFTWARE DESIGN AND ARCHITECTURE
Architecture GRASP Realization of use cases in interaction diagrams Design class diagram Design ( how )
Design Patterns Part two. Structural Patterns Concerned with how classes and objects are composed to form larger structures Concerned with how classes.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
The Adapter Pattern SE-2811 Dr. Mark L. Hornick 1.
Design Patterns CSCI 5801: Software Engineering. 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.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
CS 210 Adapter Pattern October 19 th, Adapters in real life Page 236 – Head First Design Patterns.
The Façade Pattern SE-2811 Dr. Mark L. Hornick 1.
Structural Design Patterns
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IV Structural Patterns.
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.
Design Patterns Solving problems with already known solutions Unit - 13.
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.
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
1 Advanced Object-oriented Design – Principles and Patterns Structural Design Patterns.
The State Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
The Facade Pattern (Structural) ©SoftMoore ConsultingSlide 1.
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:
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Façade and Mediator.
Seung Ha.  Façade is generally one side of the exterior of a building, especially the front.  Meaning “frontage” or “face”  In software architecture,
Façade Design Pattern by Ali Alkhafaji Unified interface for a set of interfaces to promote readability and usability.
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.
Facade Pattern Jim Fawcett CSE776 – Design Patterns Summer 2010
Presented by FACADE PATTERN
BTS530: Major Project Planning and Design
Façade Pattern:.
Design Patterns Lecture part 2.
Chapter Six The Facade Pattern
Design Pattern: Facade
Software Design and Architecture
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ć
Design Patterns Satya Puvvada Satya Puvvada.
Jim Fawcett CSE776 – Design Patterns Summer 2003
State Design Pattern 1.
Object Oriented Design Patterns - Structural Patterns
UNIT-III Structural Design Patterns
10. Façade Pattern SE2811 Software Component Design
Software Design Lecture : 35.
Chapter 8, Design Patterns Introduction
Presented by Igor Ivković
defines a higher-level interface that makes a subsystem easier to use
Presentation transcript:

Software Design & Documentation Facade Eric Goodnough Software Design & Documentation

About Facade Structural Pattern Provides a unified interface to a set of interfaces in a subsystem Defines a higher-level interface that makes the subsystem easier to use

Structural Diagram Client Classes Facade Subsystem Classes

Participants Facade Subsystem classes Knows which parts of the subsystem are responsible for what Delegates client requests to the appropriate objects in the subsystem Subsystem classes Implement subsystem functionality Handle work assigned by the facade Have no knowledge of the facade, since they keep no reference to it

Applicability Use the facade structural pattern when: You want to provide a simple interface for a complex subsystem There are many dependencies between the client and implementation classes You want to layer your subsystems

Benefits Reduces the number of objects the clients have to deal with Promotes weak coupling between the subsystem and the clients Doesn’t prevent applications from using subsystem classes

Compiler Example Compiler Subsystem: Scanner Parser ProgramNode ProgramNode Builder CodeGenerator Parser Scanner ProgramNodeBuilder CodeGenerator ProgramNode

Example Code (pg. 189-191) Class Scanner {//….}; Class Parser {//….}; Class ProgramNodeBuilder {//….}; Class ProgramNode {//….}; Class CodeGenerator {//….}; Class Compiler { //facade class public: Compiler(); virtual void Compile(istream&, BytecodeStream&); };

Example Code (cont.) Void Compiler::Compile(istream& input, BytecodeStream& output) { Scanner scanner(input); ProgramNodeBuilder builder; Parser parser; parser.Parse(scanner, builder); RISCCodeGenerator generator(output); ProgramNode* parseTree = builder.GetRootNode(); parseTree->Traverse(generator); }

Any Questions?