Design Patterns So Far. Design Patterns, cont. Design Patterns So Far. Outline
|
|
- Justina Willis
- 6 years ago
- Views:
Transcription
1 Design Patterns So Far Design Patterns, cont. Creational patterns: Factories, Prototype, Singleton, Interning Problem: constructors (in Java and other OO languages) are inflexible 1. Can t return a subtype of the type they belong to. Factory patterns address the issue: Factory method (e.g. createbicycle()), Factory class/object, Prototype 2. Always return a fresh new object, can t reuse. Sharing patterns address the issue: Singleton, Interning Spring 18 CSCI 2600, K. Kuzmin, A Milanova 2 Design Patterns So Far Wrappers: Adapter, Decorator, Proxy Structural patterns: when we want to change interface or functionality of an existing class, or restrict access to an object Composite A structural pattern: expresses whole-part structures, gives uniform interface to client Spring 18 CSCI 2600, K. Kuzmin, A Milanova 3 Outline Behavioral patterns Façade Dependences and coupling Behavioral patterns for traversing composites Interpreter Procedural Visitor 4 1
2 Pattern Question: how to handle an object (model), which has many observers (views) that need to be notified and updated when the object changes state For example, an interface toolkit with various presentation formats (spreadsheet, bar chart, pie chart). When application data, e.g., stocks data (model) changes, all presentations (views) should change accordingly Spring 18 CSCI 2600, K. Kuzmin, A Milanova 5 A Naïve Design Client stores information in Then updates the views accordingly Client SpreadsheetView Problem: to add a view, or change a view, we must change. Better to insulate from changes to Views! 6 A Better Design class has minimal interaction with Views Only needs to update Views when it changes Old, naive design: class { void updateviews() { spreadsheet.update(new); barchart.update(new); // Edit this method when // different views are added. // Bad! Better design: Spring 18 CSCI 2600, K. Kuzmin, A Milanova (based on slide by Michael Ernst) class { List<> observers; void notifys() { for (obs : observers) obs.update(new); interface { void update( ); 7 Class Diagram attach() detach() notifys() observers for ( obs : observers) obs.update( ) 1 * SpreadsheedView update( ) update(...) update( ) Client is responsible for creation: data = new (); data.attach(new ()); keeps list of Views, notifies them when change. is minimally connected to Views! 2
3 Even Better Observable attach() detach() notifys( ) observers for ( obs : observers) obs.update( ) // when a notable change occurs // calls notifys( ) 1 * SpreadsheedView update( ) update(...) update( ) Update Model Question: How does the object ( in our case) know what info each observer (View) needs? Push model: Object sends the info to s Pull model: Object does not send info directly. It gives access to itself to the s and lets each extract the data they need Spring 18 CSCI 2600, K. Kuzmin, A Milanova 10 Pattern Example of From JDK attach() detach() notifys( ) getstockprice(); 1 * observers for ( obs : observers) obs.update(this) SpreadsheedView update() update() update() Pull model: observers have access to, they can pull the info they need. public class SaleItem extends Observable { private String name; private float price; public SaleItem(String name, float price) { this.name = name; this.price = price; public void setname(string name) { this.name = name; setchanged(); notifys(name); From JDK. Marks that object has changed. From JDK. If object has changed, calls obs.update(this,name). public void setprice(float price) { // analogous to setname THE MODEL 12 3
4 An of Name Changes public class Name implements { private String name; From JDK public void update(observable obj, Object arg) { if (arg instanceof String) { name = (String)arg; System.out.println("Name: Name changed to " + name); else System.out.println("Name: Some other change to observable!"); THE VIEW Implements update from JDK. Results in callback! Spring 18 CSCI 2600, K. Kuzmin, A Milanova 13 An of Price Changes public class Price implements { private Float price; We don t care for this now. public void update(observable obj, Object arg) { if (arg instanceof Float) { price = (Float)arg; System.out.println( Price: Price changed to " + price); else System.out.println( Price: Some other change to observable!"); ANOTHER VIEW 14 The Client SaleItem si = new SaleItem("Corn Pops", 1.29f); Name nameobs = new Name(); Price priceobs = new Price(); // Now add observers si.add(nameobs); si.add(priceobs); JDK. Since s is Observable! // Make changes to the Subject. si.setname("frosted Flakes"); si.setprice(4.57f); si.setprice(9.22f); si.setname("sugar Crispies"); THE CONTROLLER 15 Another Example An application that computes a path on a map and displays the path. When user requests different path, display changes Initially, application displays using a simple text-based UI Therefore, a text-based View (i.e., ) Later, application will display using a GUI interface A GUI-based View (another ) Spring 18 CSCI 2600, K. Kuzmin, A Milanova 16 4
5 Another Example of // Represents sign-up sheet of students public class SignupSheet extends Observable { private List<String> students = new ArrayList<String>(); public void addstrudent(string student) { students.add(student); notifys(); public int size() { return students.size(); Spring 18 CSCI 2600, K. Kuzmin, A Milanova (example due to Michael Ernst) THE MODEL 17 Example of public class Signup extends { // called from notifys, which // was called when SignupSheet changed public void update(observable o, Object arg) { System.out.println( Signup count: + ((SignupSheet)o).size()); THE VIEW Spring 18 CSCI 2600, K. Kuzmin, A Milanova (example due to Michael Ernst) The SignupSheet observable was sent when notifys called update(this, ) We don t care for arg now. 18 The Client SignupSheet s = new SignupSheet(); s.addstudent( Ana ); // nothing visible happens. Why? s.add(new Signup()); s.addstudent( Katarina ); // what happens now? What model s used here? Push model or pull model? THE CONTROLLER Spring 18 CSCI 2600, K. Kuzmin, A Milanova (example due to Michael Ernst) 19 { propertylisteners.add(lis); for each pl in propertylisteners pl.onpropertyevent (this,name,value); { if (name.equals( sale.total )) saletextfield. settext(value.tostring()) { sale.addpropertylistener(this); Where is the observable? Where is the observer? Sale addpropertylistener(propertylistener lis) publishpropertyevent(name,value) notify() settotal(money newtotal) propertylisteners * <<interface>> PropertyListener onpropertyevent(source, name, value) update() SaleTotalFrame onpropertyevent(source, name,value) initialize(sale sale) 5
6 Model-view Principle pattern known as Model-view or Model-view-controller Model objects (e.g., Sale, SignupSheet) should not know about concrete view objects (e.g., SaleTotalFrame, Signup) Domain layer should be minimally connected with presentation layer Open/closed principle: if user decides to change/upgrade interface, the change shall trigger no modification to domain layer 21 Façade Pattern Question: how to handle the case, when we need a subset of the functionality of a powerful, extensive and complex library Example: We want to perform secure file copies to a server. There is a powerful and complex general purpose security library. What is the best way to interact with this library? Spring 18 CSCI 2600, K. Kuzmin, A Milanova 22 Façade Pattern Build a Façade to the library, to hide its (mostly irrelevant) complexity. SecureCopy is the Façade. SecureCopy Façade Pattern Façade reduces interactions between client and the complex library Façade hides (mostly irrelevant) complexity of the library If library changes, we ll only need to change the Façade, the client remains insulated Open/closed principle: when change happens, the change has minimal impact 23 Spring 18 CSCI 2600, K. Kuzmin, A Milanova 24 6
7 Outline Behavioral patterns Façade Dependences and coupling Behavioral patterns for traversing composites Interpreter Procedural Visitor 25 Interactions Between Modules Interactions between modules (in our designs, module = class) cause complexity To simplify, split design into classes that don t interact much Coupling is the amount of interaction among classes Roughly, if class A calls methods/uses fields of class B, then there is coupling from A to B In design, we strive towards low (weak) coupling, i.e., minimal, necessary interactions Spring 18 CSCI 2600, K. Kuzmin, A Milanova (based on slide by Michael Ernst) 26 Low Coupling Coupling is the Path to the Dark Side A Arrow means dependency. Here, A depends on C. A Coupling leads to complexity B C B C Bad design: classes Better design: strongly coupled weakly coupled Spring 18 CSCI 2600, K. Kuzmin, A Milanova 27 Complexity leads to confusion Confusion leads to suffering If once you start down the dark path, forever will it dominate your destiny, consume you it will Spring 18 CSCI 2600, K. Kuzmin, A Milanova (slide due to Mike Ernst) 28 7
8 promotes low coupling Bad. does not need depend on Views Client SpreadsheetView Better: Weaken dependency of on Views Introduce a weaker spec in the form of interface Façade promotes low coupling Façade weakens the dependency between Client and library. Introduce Façade object: reduce #dependences from 3*5 to 3+5! SecureCopy SpreadsheetView Spring 18 CSCI 2600, K. Kuzmin, A Milanova
Module dependences and decoupling (Events, listeners, callbacks)
Module dependences and decoupling (Events, listeners, callbacks) CSE 331 University of Washington Michael Ernst The limits of scaling What prevents us from building huge, intricate structures that work
More informationCSE 331 Software Design and Implementation. Lecture 17 Events, Listeners, Callbacks
CSE 331 Software Design and Implementation Lecture 17 Events, Listeners, Callbacks Zach Tatlock / Winter 2016 The limits of scaling What prevents us from building huge, intricate structures that work perfectly
More informationCSE 331 Software Design and Implementation. Lecture 16 Callbacks and Observers
CSE 331 Software Design and Implementation Lecture 16 Callbacks and Observers Leah Perlmutter / Summer 2018 Announcements Announcements Quiz 6 due Thursday 8/2 Homework 7 due Thursday 8/2 Callbacks The
More informationDesign Patterns. Definition of a Design Pattern
Design Patterns Barbara Russo Definition of a Design Pattern A Pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem,
More informationObserver Pattern. CS580 Advanced Software Engineering October 31, Yu Sun, Ph.D.
Observer Pattern CS580 Advanced Software Engineering http://cs356.yusun.io October 31, 2014 Yu Sun, Ph.D. http://yusun.io yusun@csupomona.edu Announcements Quiz 5 Singleton Pattern Abstract Factory Pattern
More informationApplying Some More Gang of Four Design Patterns CSSE 574: Session 5, Part 4
Applying Some More Gang of Four Design Patterns CSSE 574: Session 5, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Gang of Four Patterns Behavioral
More informationOutline. Subtype Polymorphism, Subtyping vs. Subclassing, Liskov Substitution Principle. Benefits of Subtype Polymorphism. Subtype Polymorphism
Subtype, Subtyping vs. Subclassing, Liskov Substitution Principle Outline Subtype polymorphism Subtyping vs. subclassing Liskov Substitution Principle (LSP) Function subtyping Java subtyping Composition:
More informationEPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns
EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 6: Design Patterns Links to Design Pattern Material 1 http://www.oodesign.com/ http://www.vincehuston.org/dp/patterns_quiz.html Types of Design Patterns 2 Creational
More informationA few important patterns and their connections
A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Plan Singleton Factory method Facade and how they are connected. You should understand how to
More informationPlan. A few important patterns and their connections. Singleton. Singleton: class diagram. Singleton Factory method Facade
Plan A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Singleton Factory method Facade and how they are connected. You should understand how to
More informationn HW5 out, due Tuesday October 30 th n Part 1: Questions on material we ll cover today n Part 2: BFS using your graph from HW4
Subtype, Subtyping vs. Subclassing, Liskov Substitution Principle Announcements n HW5 out, due Tuesday October 30 th n Part 1: Questions on material we ll cover today n Part 2: BFS using your graph from
More informationOutline of today s class. Design Patterns. Classes and Inheritance. Aside: UML Class Diagrams
Outline of today s class Unified Modeling Language (UML) Design Patterns Based on material by Michael Ernst, University of Washington Design patterns Intro to design patterns Creational patterns Factories:
More informationDesign Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)
Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)
More informationThe Strategy Pattern Design Principle: Design Principle: Design Principle:
Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design
More informationAnnouncements. Subtype Polymorphism, Subtyping vs. Subclassing, Liskov Substitution Principle. Intuition: Type Signature is a Specification.
Subtype Polymorphism, Subtyping vs. Subclassing, Liskov Substitution Principle Announcements HW5 is due today, March 26, 2018 at 11:59:59 pm Exam 2 is next Thursday, March 29, 2018. Practice exam has been
More informationTop Down Design vs. Modularization
6.170 Quiz Review Topics: 1. Decoupling 2. 3. AF & RI 4. Iteration Abstraction & Iterators 5. OMs and Invariants 6. Equality, Copying, Views 7. 8. Design Patterns 9. Subtyping 10. Case Studies Decomposition
More informationDesign Patterns: Structural and Behavioural
Design Patterns: Structural and Behavioural 3 April 2009 CMPT166 Dr. Sean Ho Trinity Western University See also: Vince Huston Review last time: creational Design patterns: Reusable templates for designing
More informationTuesday, October 4. Announcements
Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles
More informationCOSC 3351 Software Design. Design Patterns Behavioral Patterns (I)
COSC 3351 Software Design Design Patterns Behavioral Patterns (I) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adapter(class) Interpreter Template Method Object Abstract
More informationDesign Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns
Introduction o to Patterns and Design Patterns Dept. of Computer Science Baylor University Some slides adapted from slides by R. France and B. Tekinerdogan Observations Engineering=Problem Solving Many
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationDesign Patterns Reid Holmes
Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary
More informationSOFTWARE PATTERNS. Joseph Bonello
SOFTWARE PATTERNS Joseph Bonello MOTIVATION Building software using new frameworks is more complex And expensive There are many methodologies and frameworks to help developers build enterprise application
More informationCS 520/620 Advanced Software Engineering Spring February 11, 2016
CS 520/620 Advanced Software Engineering Spring 2016 February 11, 2016 Recap How to recognize a bad design? How to come up with a good design? Separation of concerns. Consider expected extensions. Design
More informationUsing Design Patterns in Java Application Development
Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.
More informationInterface. Design Patterns 2. Why use Interface? Design Principles. Adapter 11/7/2011. Michael Li
G5APR Applications Programming Design Patterns Michael Li email: jwl@cs.nott.ac.uk http://www.cs.nott.ac.uk/~jwl/g5apr Interface An Interface is a collection of abstract methods that an object implements
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationCSE 219 COMPUTER SCIENCE III BEHAVIORAL DESIGN PATTERNS SLIDES COURTESY: RICHARD MCKENNA, STONY BROOK UNIVERSITY
CSE 219 COMPUTER SCIENCE III BEHAVIORAL DESIGN PATTERNS SLIDES COURTESY: RICHARD MCKENNA, STONY BROOK UNIVERSITY Behavioral Design Pattern These design patterns are specifically concerned with communication
More informationCS5010 PDP Introduction to Design. Maria Zontak. Slides inspired by slides of H.Perkins (UW, CS331) and MIT software engineering course
CS5010 PDP Introduction to Design Maria Zontak Slides inspired by slides of H.Perkins (UW, CS331) and MIT 16.355 software engineering course Disclaimer Design - a creative problem-solving. Bad news: No
More information6 The MVC model. Main concepts to be covered. Pattern structure. Using design patterns. Design pattern: Observer. Observers
Main concepts to be covered 6 The MVC model Design patterns The design pattern The architecture Using design patterns Inter-class relationships are important, and can be complex. Some relationship recur
More informationCHAPTER 6: CREATIONAL DESIGN PATTERNS
CHAPTER 6: CREATIONAL DESIGN PATTERNS SESSION III: BUILDER, PROTOTYPE, SINGLETON Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E. Otero For non-profit
More informationIntroduction to Software Engineering: Object Design I Reuse & Patterns
Introduction to Software Engineering: Object Design I Reuse & Patterns John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit 3e, Chapter 8,
More informationLecture Outline. Parametric Polymorphism and Java Generics. Polymorphism. Polymorphism
Lecture Outline Parametric Polymorphism and Java Generics Parametric polymorphism Java generics Declaring and instantiating generics Bounded types: restricting instantiations Generics and subtyping. Wildcards
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More informationCPSC 310 Software Engineering. Lecture 11. Design Patterns
CPSC 310 Software Engineering Lecture 11 Design Patterns Learning Goals Understand what are design patterns, their benefits and their drawbacks For at least the following design patterns: Singleton, Observer,
More informationDesign Patterns Reid Holmes
Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary
More informationWhat is a Pattern? Lecture 40: Design Patterns. Elements of Design Patterns. What are design patterns?
What is a Pattern? Lecture 40: Design Patterns CS 62 Fall 2017 Kim Bruce & Alexandra Papoutsaki "Each pattern describes a problem which occurs over and over again in our environment, and then describes
More informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Iterator Pattern George Blankenship
CSCI 253 Object Oriented Design: Iterator Pattern George Blankenship George Blankenship 1 Creational Patterns Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite
More informationCIS3023: Programming Fundamentals for CIS Majors II Summer 2010
CIS3023: Programming Fundamentals for CIS Majors II Summer 2010 Objects and Classes (contd.) Course Lecture Slides 19 May 2010 Ganesh Viswanathan Objects and Classes Credits: Adapted from CIS3023 lecture
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationCS560. Lecture: Design Patterns II Includes slides by E. Gamma et al., 1995
CS560 Lecture: Design Patterns II Includes slides by E. Gamma et al., 1995 Classification of GoF Design Pattern Creational Structural Behavioural Factory Method Adapter Interpreter Abstract Factory Bridge
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationDesign Pattern and Software Architecture: IV. Design Pattern
Design Pattern and Software Architecture: IV. Design Pattern AG Softwaretechnik Raum E 3.165 Tele.. 60-3321 hg@upb.de IV. Design Pattern IV.1 Introduction IV.2 Example: WYSIWYG Editor Lexi IV.3 Creational
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 11 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap I Software Development Processes (cont.) I Project Planning I Design
More informationAnnouncements. Specifications. Outline. Specifications. HW1 is due Thursday at 1:59:59 pm
Announcements HW1 is due Thursday at 1:59:59 pm Specifications 2 Outline Specifications Benefits of specifications Specification conventions Javadoc JML PoS specifications Specifications A specification
More informationStronger vs Weaker (one more time!) Requires more? Promises more? (stricter specifications on what the effects entail)
Final review Stronger vs Weaker (one more time!) Requires more? Promises more? (stricter specifications on what the effects entail) Stronger vs Weaker (one more time!) Requires more? weaker Promises more?
More informationCSC207H: Software Design Lecture 6
CSC207H: Software Design Lecture 6 Wael Aboelsaadat wael@cs.toronto.edu http://ccnet.utoronto.ca/20075/csc207h1y/ Office: BA 4261 Office hours: R 5-7 Acknowledgement: These slides are based on material
More informationChapter 8, Design Patterns Visitor
Chapter 8, Design Patterns Visitor Using UML, Patterns, and Java Object-Oriented Software Engineering Pattern A Pattern Taxonomy Structural Pattern Behavioral Pattern Creational Pattern Composite Decorator
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? Patterns are intended to capture the best available software development experiences in the
More informationSection 10 MATERIAL PULLED FROM LAST SECTION AND LAST YEAR S SLIDES
Section 10 MATERIAL PULLED FROM LAST SECTION AND LAST YEAR S SLIDES Today s Agenda Administrivia Review Design Patterns Design Pattern Worksheet Course Review Administrivia Friday Demos and Couse Wrap-Up
More informationCSE wi Final Exam 3/12/18. Name UW ID#
Name UW ID# There are 13 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationOverview of Patterns: Introduction
: Introduction d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Introduction
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationDesign Patterns. Dr. Rania Khairy. Software Engineering and Development Tool
Design Patterns What are Design Patterns? What are Design Patterns? Why Patterns? Canonical Cataloging Other Design Patterns Books: Freeman, Eric and Elisabeth Freeman with Kathy Sierra and Bert Bates.
More informationKeywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.
Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad
More informationModel-View-Controller
Model-View-Controller rationale implementation benefit Model-View-Controller 1 How can we design a power point application? Model-View-Controller 2 Possible Design: Data and UI in Same Object What if we
More informationOutline. Design Patterns, cont. Wrappers. Adapter Pattern. Based on material by Michael Ernst, University of Washington
Outline Design Patterns, cont. Based on material by Michael Ernst, University of Washington Design patterns Creational patterns, recap Subtypes: Factory method, Factory object, Prototype Sharing: Singleton
More informationOutline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/
Outline Principles of Software (CSCI 600) Spring 018 http://www.cs.rpi.edu/academics/courses/spring18/csci600/ Konstantin Kuzmin, kuzmik@cs.rpi.edu Office hours: Monday and Thursday 4:00 pm - 5:30 pm Mailing
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
More informationSoftware Eningeering. Lecture 9 Design Patterns 2
Software Eningeering Lecture 9 Design Patterns 2 Patterns covered Creational Abstract Factory, Builder, Factory Method, Prototype, Singleton Structural Adapter, Bridge, Composite, Decorator, Facade, Flyweight,
More informationCSE 331. Model/View Separation and Observer Pattern
CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia http://www.cs.washington.edu/331/ 1 Model and
More informationOutline. Design Patterns. Observer Pattern. Definitions & Classifications
Outline Design Patterns Definitions & Classifications Observer Pattern Intent Motivation Structure Participants Collaborations Consequences Implementation 1 What is a Design Pattern describes a problem
More informationDesign Patterns Lecture 2
Design Patterns Lecture 2 Josef Hallberg josef.hallberg@ltu.se 1 Patterns covered Creational Abstract Factory, Builder, Factory Method, Prototype, Singleton Structural Adapter, Bridge, Composite, Decorator,
More informationSo far. Specifications, conclusion. Abstract Data Types (ADTs) Comparison by Logical Formulas. Outline
So far Specifications, conclusion. Abstract Data Types (ADTs) Based on notes by Michael Ernst, University of Washington Specifications Benefits of specifications Specification conventions Javadoc JML/Dafny
More informationCSE wi Final Exam 3/12/18 Sample Solution
Question 1. (8 points, 2 each) Equality. Recall that there are several different notions of object equality that we ve encountered this quarter. In particular, we have the following three: Reference equality:
More informationSoftware Reengineering Refactoring To Patterns. Martin Pinzger Delft University of Technology
Software Reengineering Refactoring To Patterns Martin Pinzger Delft University of Technology Outline Introduction Design Patterns Refactoring to Patterns Conclusions 2 The Reengineering Life-Cycle (1)
More informationTDDB84: Lecture 6. Adapter, Bridge, Observer, Chain of Responsibility, Memento, Command. fredag 4 oktober 13
TDDB84: Lecture 6 Adapter, Bridge, Observer, Chain of Responsibility, Memento, Command Creational Abstract Factory Singleton Builder Structural Composite Proxy Bridge Adapter Template method Behavioral
More informationLOG6306 : Études empiriques sur les patrons logiciels
LOG6306 : Études empiriques sur les patrons logiciels Foutse Khomh The Abstract Factory DP This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Unported License Context
More informationSection 9: Design Patterns. Slides by Alex Mariakakis. with material from David Mailhot, Hal Perkins, Mike Ernst
Section 9: Design Patterns Slides by Alex Mariakakis with material from David Mailhot, Hal Perkins, Mike Ernst What Is A Design Pattern A standard solution to a common programming problem A technique for
More informationDesign Patterns #3. Reid Holmes. Material and some slide content from: - GoF Design Patterns Book - Head First Design Patterns
Material and some slide content from: - GoF Design Patterns Book - Head First Design Patterns Design Patterns #3 Reid Holmes Lecture 16 - Thursday November 15 2011. GoF design patterns $ %!!!! $ "! # &
More informationSection 10: Design Patterns 2
Section 10: Design Patterns 2 Slides by Alex Mariakakis with material from Hal Perkins List of Design Patterns We discussed several patterns during the quarter. For reference, here is a list of some of
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationThink of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern
Think of drawing/diagramming editors ECE450 Software Engineering II Drawing/diagramming editors let users build complex diagrams out of simple components The user can group components to form larger components......which
More information18.1 Definitions and General OO Principles
Chapter 18: Design Patterns Design patterns are elegant, adaptable, and reusable solutions to everyday software development problems. Each pattern includes a description of a commonly occuring type of
More informationCSE 331 Final Exam 3/16/15 Sample Solution
Question 1. (12 points, 3 each) A short design exercise. Suppose Java did not include a Set class in the standard library and we need to store a set of Strings for an application. We know that the maximum
More informationSoftware Design Patterns. Aliaksei Syrel
Software Design Patterns Aliaksei Syrel 1 Pattern types Creational Patterns Behavioural Patterns Structural Patterns 2 Creational Patterns Creational design patterns deal with object creation mechanisms,
More informationDesign Patterns. An introduction
Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at
More informationBackward Reasoning: Rule for Assignment. Backward Reasoning: Rule for Sequence. Simple Example. Hoare Logic, continued Reasoning About Loops
Backward Reasoning: Rule for Assignment Hoare Logic, continued Reasoning About Loops { wp( x=expression,q) x = expression; { Q Rule: the weakest precondition wp( x=expression,q) is Q with all occurrences
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationDesign patterns. Jef De Smedt Beta VZW
Design patterns Jef De Smedt Beta VZW Who Beta VZW www.betavzw.org Association founded in 1993 Computer training for the unemployed Computer training for employees (Cevora/Cefora) 9:00-12:30 13:00-16:00
More informationCredit is where Credit is Due. Lecture 28: OO Design Heuristics (Part 2) This Lecture. Last Lecture: OO Heuristics. Rules of Thumb
Credit is where Credit is Due Lecture 28: OO Design Heuristics (Part 2) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some material for this lecture is taken
More informationIntroduction to Computer Science II (CSI 1101)
Introduction to Computer Science II (CSI 1101) Professor: M. Turcotte February 2002, duration: 75 minutes Identification Student name: last name: Section: Student number: initials: Signature: Instructions
More informationhttps://www.lri.fr/~linaye/gl.html
Software Engineering https://www.lri.fr/~linaye/gl.html lina.ye@centralesupelec.fr Sequence 3, 2017-2018 1/50 Software Engineering Plan 1 2 3 4 5 2/50 Software Engineering ground Evolution of Program 3/50
More informationCSE 403: Software Engineering, Winter courses.cs.washington.edu/courses/cse403/16wi/ Design Patterns. Emina Torlak
CSE 403: Software Engineering, Winter 2016 courses.cs.washington.edu/courses/cse403/16wi/ Design Patterns Emina Torlak emina@cs.washington.edu Outline Overview of design patterns Creational patterns Structural
More informationCS 370 Design Heuristics D R. M I C H A E L J. R E A L E F A L L
CS 370 Design Heuristics D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Introduction Now we ll talk about ways of thinking about design Guidelines for trials in trial and errors Major Design Heuristics
More informationSection 8: Design Patterns. Slides by Alex Mariakakis. with material from David Mailhot, Hal Perkins, Mike Ernst
Section 8: Design Patterns Slides by Alex Mariakakis with material from David Mailhot, Hal Perkins, Mike Ernst Announcements HW8 due tonight 10 pm Quiz 7 due tonight 10 pm Industry guest speaker tomorrow!
More informationApplying the Observer Design Pattern
Applying the Observer Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationCSE331 Winter 2014, Final Examination March 17, 2014 Please do not turn the page until 8:30. Rules:
CSE331 Winter 2014, Final Examination March 17, 2014 Please do not turn the page until 8:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 10:20. There are 116 points total,
More informationThe GoF Design Patterns Reference
The GoF Design Patterns Reference Version.0 / 0.0.07 / Printed.0.07 Copyright 0-07 wsdesign. All rights reserved. The GoF Design Patterns Reference ii Table of Contents Preface... viii I. Introduction....
More informationDesign Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman
CS314, Colorado State University Software Engineering Notes 4: Principles of Design and Architecture for OO Software Focus: Determining the Overall Structure of a Software System Describes the process
More informationAdapter pattern. Acknowledgement: Freeman & Freeman
Adapter pattern Acknowledgement: Freeman & Freeman Example Scenario The European wall outlet exposes one interface for getting power The adapter converts one interface into another The US laptop expects
More informationSoftware Engineering Prof. Rushikesh K.Joshi IIT Bombay Lecture-15 Design Patterns
Software Engineering Prof. Rushikesh K.Joshi IIT Bombay Lecture-15 Design Patterns Today we are going to talk about an important aspect of design that is reusability of design. How much our old design
More informationSoftware Development Project. Kazi Masudul Alam
Software Development Project Kazi Masudul Alam Course Objective Study Programming Best Practices Apply the knowledge to build a Small Software in Groups 7/10/2017 2 Programming Best Practices Code Formatting
More informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Creational Patterns. George Blankenship
CSCI 253 Object Oriented Design: George Blankenship George Blankenship 1 Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite Façade Proxy Flyweight Adapter
More informationAnnouncements. Representation Invariants and Abstraction Functions. Announcements. Outline
Announcements Representation Invariants and Abstraction Functions Exam 1 on Monday Feb. 26 th Closed book/phone/laptop, 2 cheat pages allowed Reasoning about code, Specifications, ADTs I will post Review
More information