CSC 301H, Introduction to Software Engineering
|
|
- Janis Blair
- 6 years ago
- Views:
Transcription
1 CSC 301H, Introduction to Software Engineering Presented by Soheil Hassas Yeganeh Slides By Golnaz Elahi
2 Outline Design Pattern Concept Types of Design Patterns Overview of some Patterns: Abstract Factory Observer Command Strategy
3 Design Pattern Concept A design pattern is a template solution to a recurring design problem. Reusable design knowledge in form of Problem, Condition, Solution A design pattern expresses an idea rather than a fixed class combination.
4 Types of Design Patterns Creational Patterns: Creating a collection of objects Creating many versions of the collection at runtime Constraining the objects created Structural pattern: Representing a collection of related objects Controlling constraints on the number or style of objects, constructors, using external or distributed functionality, Behavioral pattern: Capturing behavior among a collection of objects A collection of objects exhibit functionality, separation of behavior from the object, interfaces without references.
5 Abstract Factory Pattern Consider a user interface toolkit that supports multiple looks and feel standards such as Motif, Windows 95 or the finder in MacOS. How can you write a single user interface and make it portable across the different look and feel standards for these window managers? Consider a facility management system for an intelligent house that supports different control systems such as Siemens Instabus, Johnson & Control Metasys or Zumtobe s proprietary standard. How can you write a single control system that is independent from the manufacturer?
6 Abstract Factory Pattern Goals: Create a family of related objects chosen at runtime from several possible families. Independence from Initialization or Representation The system should be independent of how its products are created, composed or represented
7 AbstractFactory AbstractProductA Client CreateProductA CreateProductB ProductA1 ProductA2 ConcreteFactory1 AbstractProductB CreateProductA CreateProductB ProductB1 ProductB2 ConcreteFactory2 CreateProductA CreateProductB Initiation Assocation: Class ConcreteFactory2 initiates the associated classes ProductB2 and ProductA2
8 Abstract Factory Pattern
9 In between What is an interface? Public interface Bicycle { void changegear(int newvalue); void speedup(int increment); void applybrakes(int decrement); } Public class ACMEBicycle implements Bicycle { // remainder of this class implemented as before }
10 Observer Pattern
11 Analyzing a Java Example GUI Scenario: Two windows have been created First (InputForm) is for user input; Second (DisplayForm) is for display. When the data has been entered in the textfield in the first, the second window gets the message and display it with a dialog. Inner classes are used to handle observer pattern
12 Observer Implementation in Example - Structure
13 Observer Implementation in Example Behavior
14 Strategy Pattern Many different algorithms exists for the same task. Like: Breaking a stream of text into lines Parsing a set of tokens into an abstract syntax tree Sorting a list of customers The different algorithms will be appropriate at different times Rapid prototyping vs delivery of final product We don t want to support all the algorithms if we don t need them If we need a new algorithm, we want to add it easily without disturbing the application using the algorithm.
15 Policy Context ContextInterface() * Strategy AlgorithmInterface ConcreteStrategyA AlgorithmInterface() ConcreteStrategyB AlgorithmInterface() ConcreteStrategyC AlgorithmInterface() Policy decides which Strategy is best given the current Context
16 Applying a Strategy Pattern in a Database Application Database Search() Sort() Strategy * Strategy Sort() BubbleSort Sort() QuickSort Sort() MergeSort Sort()
17 Strategy Pattern
18 Strategy Pattern // MainApp test application class MainApp { public static void main(string[] args) { Context context; // Three contexts following different strategies context = new Context(new ConcreteStrategyA()); context.execute(); context = new Context(new ConcreteStrategyB()); context.execute(); context = new Context(new ConcreteStrategyC()); context.execute(); }
19 Strategy Pattern interface IStrategy { void execute(); }
20 Strategy Pattern class ConcreteStrategyA implements IStrategy { public void execute() { System.out.println( "Called ConcreteStrategyA.execute()" ); } } class ConcreteStrategyB implements IStrategy { public void execute() { System.out.println( "Called ConcreteStrategyB.execute()" ); } } class ConcreteStrategyC implements IStrategy { public void execute() { System.out.println( "Called ConcreteStrategyC.execute()" ); }
21 Strategy Pattern class Context { IStrategy strategy; // Constructor public Context(IStrategy strategy) { this.strategy = strategy; } } public void execute() { strategy.execute(); }
22 Strategy Pattern
23 Proxy Pattern What is expensive? Object Creation Object Initialization Defer object creation and object initialization to the time you need the object Proxy pattern: Reduces the cost of accessing objects Uses another object ( the proxy ) that acts as a standin for the real object The proxy creates the real object only if the user asks for it
24 Proxy pattern Subject Request() Proxy Request() realsubject RealSubject Request() Interface inheritance is used to specify the interface shared by Proxy and RealSubject. Delegation is used to catch and forward any accesses to the RealSubject (if desired) Proxy patterns can be used for lazy evaluation and for remote invocation. Proxy patterns can be implemented with a Java interface.
25 Command Pattern You want to build a user interface You want to provide menus You want to make the user interface reusable across many applications You cannot hardcode the meanings of the menus for the various applications The applications only know what has to be done when a menu is selected. Such a menu can easily be implemented with the Command Pattern
26 Client Invoker Command execute() Receiver action() binds ConcreteCommand execute() Client creates a ConcreteCommand and binds it with a Receiver. Client hands the ConcreteCommand over to the Invoker which stores it. The Invoker has the responsibility to do the command ( execute or undo ).
Page 1. Chapter 8, Object Design: Design Patterns II. Recall: Why reusable Designs? Definitions. A Taxonomy of Design Patterns
Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 8, Object Design: Design Patterns II Recall: Why reusable Designs? A design enables flexibility to change (reusability) minimizes
More informationDesign Patterns 2. Page 1. Software Requirements and Design CITS 4401 Lecture 10. Proxy Pattern: Motivation. Proxy Pattern.
Proxy : Motivation Design s 2 It is 3pm. I am sitting at my 10Mbps connection and go to browse a fancy web page from the US, This is prime web time all over the US. So I am getting 100kbps What can you
More informationLecture 21: Design Patterns III
Lecture 21: Design Patterns III Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.
More informationDesign Patterns. Bernd Bruegge. Carnegie Mellon University Department of Computer Science 15 October 1998
15-413 Design Patterns Bernd Bruegge 2 Carnegie Mellon University Department of Computer Science 15 October 1998 Bernd Bruegge SS 98 Component Based Software Engineering 1 Outline of the Lecture Design
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationCreational Design Patterns
Creational Design Patterns Creational Design Patterns Structural Design Patterns Behavioral Design Patterns GoF Design Pattern Categories Purpose Creational Structural Behavioral Scope Class Factory Method
More informationObject-Oriented Oriented Programming Factory Method Pattern Abstract Factory Pattern. CSIE Department, NTUT Woei-Kae Chen
Object-Oriented Oriented Programming Factory Method Pattern Abstract Factory Pattern CSIE Department, NTUT Woei-Kae Chen Factory Method Pattern Factory Method Pattern Creational pattern Factory Method:
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 informationDr. Xiaolin Hu. Review of last class
Review of last class Design patterns Creational Structural Behavioral Abstract Factory Builder Factory Singleton etc. Adapter Bridge Composite Decorator Façade Proxy etc. Command Iterator Observer Strategy
More informationIntroduction and History
Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek September 15, 2016 Content /FHTenL September 15, 2016 2/28 The idea is quite old, although rather young in SE. Keep up a roof. /FHTenL
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More information6.3 Patterns. Definition: Design Patterns
Subject/Topic/Focus: Analysis and Design Patterns Summary: What is a pattern? Why patterns? 6.3 Patterns Creational, structural and behavioral patterns Examples: Abstract Factory, Composite, Chain of Responsibility
More informationCS 2720 Practical Software Development University of Lethbridge. Design Patterns
Design Patterns A design pattern is a general solution to a particular class of problems, that can be reused. They are applicable not just to design. You can think of patterns as another level of abstraction.
More informationJava OOP (SE Tutorials: Learning the Java Language Trail : Object-Oriented Programming Concepts Lesson )
Java OOP (SE Tutorials: Learning the Java Language Trail : Object-Oriented Programming Concepts Lesson ) Dongwon Jeong djeong@kunsan.ac.kr; http://ist.kunsan.ac.kr/ Information Sciences and Technology
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Timed Automata
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Abstract
More informationWhat is Design Patterns?
Paweł Zajączkowski What is Design Patterns? 1. Design patterns may be said as a set of probable solutions for a particular problem which is tested to work best in certain situations. 2. In other words,
More informationLecture 20: Design Patterns II
Lecture 20: Design Patterns II Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.
More informationSecond Midterm Review
Second Midterm Review Comp-303 : Programming Techniques Lecture 24 Alexandre Denault Computer Science McGill University Winter 2004 April 5, 2004 Lecture 24 Comp 303 : Second Midterm Review Page 1 Announcements
More information8. Object Design: Reusing Pattern Solutions
8. Object Design: Reusing Pattern Solutions Outline! An overview of object design! Reuse! Design Patterns! Frameworks 1. An Overview of Object Design http://www.trireme.com/whitepapers/design/objects/
More informationDesign patterns. OOD Lecture 6
Design patterns OOD Lecture 6 Next lecture Monday, Oct 1, at 1:15 pm, in 1311 Remember that the poster sessions are in two days Thursday, Sep 27 1:15 or 3:15 pm (check which with your TA) Room 2244 + 2245
More informationOODP Session 5a. Web Page: Visiting Hours: Tuesday 17:00 to 19:00
OODP Session 5a Next week: Reading week Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk
More informationCreational Patterns for Variability
Creational Patterns for Variability Prof. Dr. U. Aßmann Chair for Software Engineering Faculty of Informatics Dresden University of Technology Version 06-1.4, Oct 30, 2006 Design Patterns and Frameworks,
More informationChapter 8, Object Design: Reusing Pattern Solutions
Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 8, Object Design: Reusing Pattern Solutions Application Objects and Solution Objects Application objects, also called domain objects,
More informationDesign Patterns. Softwaretechnik. Matthias Keil. Albert-Ludwigs-Universität Freiburg
Design Patterns Softwaretechnik Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 6. Mai 2013 Design Patterns Gamma, Helm, Johnson, Vlissides: Design Patterns,
More informationDesign Patterns. Software Engineering. Sergio Feo-Arenis slides by: Matthias Keil
Design Patterns Software Engineering Sergio Feo-Arenis slides by: Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 30.06.2014 Design Patterns Literature Gamma,
More informationSlide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D
Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung
More informationLaboratorio di Tecnologie dell'informazione. Ing. Marco Bertini
Laboratorio di Tecnologie dell'informazione Ing. Marco Bertini bertini@dsi.unifi.it http://www.dsi.unifi.it/~bertini/ Design pattern Factory Some motivations Consider a user interface toolkit to support
More informationDesign Patterns. Design Patterns
Design Patterns Design Patterns A design pattern is a template solution that developers have refined over time to solve a range of recurring problems Generally object-oriented focus Name that uniquely
More informationSingleton, Factory Method, Abstract Factory, Named Constructor. Using one or more base classes to hide details from the client
Idioms & Design Patterns Creational Introduction to Design Patterns Patterns and idioms can be grouped roughly into: Creational Patterns and idioms Singleton, Factory Method, Abstract Factory, Named Constructor
More informationBrief Note on Design Pattern
Brief Note on Design Pattern - By - Channu Kambalyal channuk@yahoo.com This note is based on the well-known book Design Patterns Elements of Reusable Object-Oriented Software by Erich Gamma et., al.,.
More informationReview of last class. 1.Class inheritance versus interface inheritance 2.Inheritance versus composition. Dr. Xiaolin Hu
Review of last class 1.Class inheritance versus interface inheritance 2.Inheritance versus composition Design patterns Creational Structural Behavioral Abstract Factory Builder Prototype Singleton etc.
More informationOODP Session 4. Web Page: Visiting Hours: Tuesday 17:00 to 19:00
OODP Session 4 Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk Web Page: http://www.dcs.bbk.ac.uk/~oded
More informationExam Questions. Object-Oriented Design, IV1350. Maximum exam score is 100, grade limits are as follows. Score Grade 90 A 80 B 70 C 60 D 50 E
Object-Oriented Design, IV1350 Maximum exam score is 100, grade limits are as follows. Score Grade 90 A 80 B 70 C 60 D 50 E The exam questions will be a subset of the questions below. The exam may contain
More informationCommon Architectures and Design Patterns
Common Architectures and Design Patterns 1 Architectural Styles High-level abstractions of components and communication Even higher than data types, algorithmic pseudocode Also known as design patterns
More informationDesign Pattern- Creational pattern 2015
Creational Patterns Abstracts instantiation process Makes system independent of how its objects are created composed represented Encapsulates knowledge about which concrete classes the system uses Hides
More informationUniversiti Malaysia Perlis
Universiti Malaysia Perlis EKT420: SOFTWRE ENGINEERING Lab 5: Inheritance and Interfaces Pusat Pengajian Kejuruteraan Komputer Dan Perhubungan Universiti Malaysia Perlis 1 INHERITANCE Object-oriented programming
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 information2/17/04 Doc 8 Adapter & Strategy slide # 1
2/17/04 Doc 8 Adapter & Strategy slide # 1 CS 635 Advanced Object-Oriented Design & Programming Spring Semester, 2004 Doc 8 Adapter & Strategy Contents Adapter...2 Motivating Adapter...2 Adapter...6 Consequences...10
More informationCHAPTER 6: CREATIONAL DESIGN PATTERNS
CHAPTER 6: CREATIONAL DESIGN PATTERNS SESSION I: OVERVIEW OF DESIGN PATTERNS, ABSTRACT FACTORY Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E. Otero
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 8 OO modeling Design Patterns Introduction Creational Patterns Software
More informationSoftwaretechnik. Design Patterns. Matthias Keil. Albert-Ludwigs-Universität Freiburg
Softwaretechnik Design Patterns Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 14. Juni 2012 Design Patterns (1) solutions for specific problems in object-oriented
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationCreational Patterns. Factory Method (FM) Abstract Factory (AF) Singleton (SI) Prototype (PR) Builder (BU)
Creational Patterns Creational Patterns Factory Method (FM) Abstract Factory (AF) Singleton (SI) Prototype (PR) Builder (BU) Factory Method (FM) Intent: Define an interface for creating an object, but
More informationCS 335 Java Programming Controls. Fall 2007
CS 335 Java Programming Controls Fall 2007 Java Control Structures Selection: If, If/Else, Switch Repetition (looping): While, For, Do/While Assignment: Expressions, increment/decrement Java Reserved Words
More informationObject Oriented Design and Programming Revision
M.Sc Computer Science Object Oriented Design and Programming Revision Oded Lachish Email: oded@dcs.bbk.ac.uk Web Page: http://www.dcs.bbk.ac.uk/~oded/oodp12/oodp2012.html Question 1 (a) What is the motivation
More informationSoftwaretechnik. Design Patterns. Stephan Arlt SS University of Freiburg. Stephan Arlt (University of Freiburg) Softwaretechnik SS / 47
Softwaretechnik Design Patterns Stephan Arlt University of Freiburg SS 2011 Stephan Arlt (University of Freiburg) Softwaretechnik SS 2011 1 / 47 Design Patterns Gamma, Helm, Johnson, Vlissides: Design
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationLaboratorio di Progettazione di Sistemi Software Design Pattern Creazionali. Valentina Presutti (A-L) Riccardo Solmi (M-Z)
Laboratorio di Progettazione di Sistemi Software Design Pattern Creazionali Valentina Presutti (A-L) Riccardo Solmi (M-Z) Indice degli argomenti Catalogo di Design Patterns creazionali: Abstract Factory
More informationJava Technologies. Lecture III. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics
Preparation of the material was supported by the project Increasing Internationality in Study Programs of the Department of Computer Science II, project number VP1 2.2 ŠMM-07-K-02-070, funded by The European
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 informationSri Vidya College of Engineering & Technology
UNIT I INTRODUCTION TO OOP AND FUNDAMENTALS OF JAVA 1. Define OOP. Part A Object-Oriented Programming (OOP) is a methodology or paradigm to design a program using classes and objects. It simplifies the
More informationJava Programming Tutorial 1
Java Programming Tutorial 1 Every programming language has two defining characteristics: Syntax Semantics Programming Writing code with good style also provides the following benefits: It improves the
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 informationLecture 13: Design Patterns
1 Lecture 13: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Pattern Resources Pattern Languages of Programming Technical conference on Patterns
More informationPattern Resources. Lecture 25: Design Patterns. What are Patterns? Design Patterns. Pattern Languages of Programming. The Portland Pattern Repository
Pattern Resources Lecture 25: Design Patterns Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Pattern Languages of Programming Technical conference on Patterns
More informationGoals of Lecture. Lecture 27: OO Design Patterns. Pattern Resources. Design Patterns. Cover OO Design Patterns. Pattern Languages of Programming
Goals of Lecture Lecture 27: OO Design Patterns Cover OO Design Patterns Background Examples Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2001 April 24, 2001 Kenneth
More informationClass, Variable, Constructor, Object, Method Questions
Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx
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 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 informationDesign of Software Systems (Ontwerp van SoftwareSystemen) Design Patterns Reference. Roel Wuyts
Design of Software Systems (Ontwerp van SoftwareSystemen) Design Patterns Reference 2015-2016 Visitor See lecture on design patterns Design of Software Systems 2 Composite See lecture on design patterns
More informationSoftware Engineering Design - Summary
Software Engineering Design - Summary Gina Häussge 9th February 2006 Contents 1 Design Principles 2 1.1 External and internal criteria...................... 2 1.2 Modularity...............................
More informationPROGRAMMING FUNDAMENTALS
PROGRAMMING FUNDAMENTALS Q1. Name any two Object Oriented Programming languages? Q2. Why is java called a platform independent language? Q3. Elaborate the java Compilation process. Q4. Why do we write
More informationLecture VI: Distributed Objects. Remote Method Invocation
Lecture VI: Distributed Objects. Remote Method Invocation CMPT 401 Summer 2007 Dr. Alexandra Fedorova Remote Method Invocation In an object-oriented language (usually Java) A way to call a method on an
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Creational Design Patterns What are creational design patterns? Types Examples Structure Effects Creational Patterns Design patterns that deal with object
More informationChair of Software Engineering. Languages in Depth Series: Java Programming. Prof. Dr. Bertrand Meyer. Exercise Session 3
Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Exercise Session 3 Today s Exercise Session Assignment 2 Walkthrough the master solution (your solutions)
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within
More informationFactory Method. Comp435 Object-Oriented Design. Factory Method. Factory Method. Factory Method. Factory Method. Computer Science PSU HBG.
Comp435 Object-Oriented Design Week 11 Computer Science PSU HBG 1 Define an interface for creating an object Let subclasses decide which class to instantiate Defer instantiation to subclasses Avoid the
More informationSoftware Engineering Design & Construction
Winter Semester 17/18 Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Strategy Pattern The Strategy Pattern in a Nutshell Context
More informationTutorial 02: Writing Source Code
Tutorial 02: Writing Source Code Contents: 1. Generating a constructor. 2. Generating getters and setters. 3. Renaming a method. 4. Extracting a superclass. 5. Using other refactor menu items. 6. Using
More informationCSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1
CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain
More informationCS 520 Theory and Practice of Software Engineering Fall 2018
Today CS 520 Theory and Practice of Software Engineering Fall 208 Object Oriented Design Patterns Recap: Object oriented design principles Design problems & potential solutions Design patterns: What is
More informationJava Tutorial. Saarland University. Ashkan Taslimi. Tutorial 3 September 6, 2011
Java Tutorial Ashkan Taslimi Saarland University Tutorial 3 September 6, 2011 1 Outline Tutorial 2 Review Access Level Modifiers Methods Selection Statements 2 Review Programming Style and Documentation
More informationTHOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS
THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS LOGISTICS HW3 due today HW4 due in two weeks 2 IN CLASS EXERCISE What's a software design problem you've solved from an idea you learned from someone else?
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 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 informationDesign issues: abstraction and patterns Strategy Pattern Singleton Pattern. CSIE Department, NTUT Woei-Kae Chen
Design issues: abstraction and patterns Strategy Pattern Singleton Pattern CSIE Department, NTUT Woei-Kae Chen Common Mistake (C) - no abstraction at all ADT typedef struct _X { int x; } X; X a; a.x++;
More informationCS 520/620 Advanced Software Engineering Spring February 02, 2016
CS 520/620 Advanced Software Engineering Spring 2016 February 02, 2016 Logistics Project proposals Elevator pitches on Thursday Deadline for creating groups: 02/03/2016, 11:55pm Deadline for submitting
More informationAbout this exam review
Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review
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 informationFrom Patterns to Components: The Factory Library Example
From Patterns to Components: The Factory Library Example KARINE ARNOUT Swiss Federal Institute of Technology, Zurich and BERTRAND MEYER Swiss Federal Institute of Technology, Zurich, and Eiffel Software,
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Design Patterns What are design patterns? Why design patterns? Example DP Types Toolkit, Framework, and Design Pattern A toolkit is a library of reusable
More informationObject-oriented Software Design Patterns
Object-oriented Software Design Patterns Concepts and Examples Marcelo Vinícius Cysneiros Aragão marcelovca90@inatel.br Topics What are design patterns? Benefits of using design patterns Categories and
More informationGOF Patterns Applied
www.teamsoftinc.com GOF Patterns Applied Kirk Knoernschild TeamSoft, Inc. www.teamsoftinc.com http://techdistrict.kirkk.com http://www.kirkk.com pragkirk@kirkk.com GOF Patterns in Java Pattern Review The
More informationOutline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4
EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks
More informationOutline. Object Oriented Programming. Course goals. Staff. Course resources. Assignments. Course organization Introduction Java overview Autumn 2003
Outline Object Oriented Programming Autumn 2003 2 Course goals Software design vs hacking Abstractions vs language (syntax) Java used to illustrate concepts NOT a course about Java Prerequisites knowledge
More information(c) Bartosz Walter 1
Advanced Object-Oriented Design Lecture 11 Design patterns Design patterns Part II Catalog of Design Patterns Bartosz Walter Pool of Objects: Intent Pool of Objects: Structure
More informationProvide an interface for creating families of related or dependent objects without specifying their concrete classes
Intent Abstract Factory Pattern Creational Provide an interface for creating families of related or dependent objects without specifying their concrete classes The pattern is not abstract just a poor choice
More informationCS 335 Lecture 02 Java Programming
1 CS 335 Lecture 02 Java Programming Programming in Java Define data Calculate using data Output result Java is object-oriented: Java program must: Merge data and functions into object Invoke functions
More informationLearning the Java Language. 2.1 Object-Oriented Programming
Learning the Java Language 2.1 Object-Oriented Programming What is an Object? Real world is composed by different kind of objects: buildings, men, women, dogs, cars, etc. Each object has its own states
More informationObject Oriented Programming with c++ Question Bank
Object Oriented Programming with c++ Question Bank UNIT-1: Introduction to C++ 1. Describe the following characteristics of OOP. i Encapsulation ii Polymorphism, iii Inheritance 2. Discuss function prototyping,
More informationCS 520 Theory and Practice of Software Engineering Fall 2017
CS 520 Theory and Practice of Software Engineering Fall 2017 OO design patterns September 28, 2017 Logistics Homework 1 deadline: 10/17/2017. Paper reading 1 (Practical guide to statistical tests) deadline:
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 informationThe Factory Method Pattern
The Factory Method Pattern Intent: Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory method lets a class defer instantiation to subclasses. 1 The
More informationCOSC 3351 Software Design. Design Patterns Behavioral Patterns (II)
COSC 3351 Software Design Design Patterns Behavioral Patterns (II) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adapter(class) Interpreter Template Method Object Abstract
More informationPage 1. Human-computer interaction. Lecture 2: Design & Implementation. Building user interfaces. Users and limitations
Human-computer interaction Lecture 2: Design & Implementation Human-computer interaction is a discipline concerned with the design, implementation, and evaluation of interactive systems for human use and
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static
More informationProgramming by Delegation
Chapter 2 a Programming by Delegation I. Scott MacKenzie a These slides are mostly based on the course text: Java by abstraction: A client-view approach (4 th edition), H. Roumani (2015). 1 Topics What
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More informationCS 5523 Operating Systems: Remote Objects and RMI
CS 5523 Operating Systems: Remote Objects and RMI Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. Outline Distributed/Remote Objects Remote object reference
More information