An Introduction to Design Patterns

Size: px
Start display at page:

Download "An Introduction to Design Patterns"

Transcription

1 An Introduction to Design Patterns 1

2 Definitions A pattern is a recurring soution to a standard probem, in a context. Christopher Aexander, a professor of architecture Why woud what a prof of architecture says be reevant to software? A pattern describes a probem which occurs over and over again in our environment, and then describes the core of the soution to that probem, in such a way that you can use this soution a miion times over, without ever doing it the same way twice. Jim Copein, a software engineer: I ike to reate this definition to dress patterns What are dress patterns?... I coud te you how to make a dress by specifying the route of a scissors through a piece of coth in terms of anges and engths of cut. Or, I coud give you a pattern. Reading the specification, you woud have no idea what was being buit or if you had buit the right thing when you were finished. The pattern foreshadows the product: it is the rue for making the thing, but it is aso, in many respects, the thing itsef.

3 Patterns in engineering How do other engineers find and use patterns? Mature engineering discipines have handbooks describing successfu soutions to known probems Automobie designers don't design cars from scratch using the aws of physics Instead, they reuse standard designs with successfu track records, earning from experience Shoud software engineers make use of patterns? Why? Be sure that you make everything according to the pattern I have shown you here on the mountain. Exodus 25:40. Deveoping software from scratch is aso expensive Patterns support reuse of software architecture and design

4 The gang of four (GoF) Erich Gamma, Richard Hem, Raph Johnson & John Vissides (Addison-Wesey, 1995) Design Patterns book cataogs 23 different patterns as soutions to different casses of probems, in C++ & Smatak The probems and soutions are broady appicabe, used by many peope over many years What design pattern did we discover with the Undo probem? Why is it usefu to earn about this pattern? Patterns suggest opportunities for reuse in anaysis, design and programming GOF presents each pattern in a structured format What do you think of this format? Pros and cons?

5 Eements of Design Patterns Design patterns have 4 essentia eements: Pattern name: increases vocabuary of designers Probem: intent, context, when to appy Soution: UML-ike structure, abstract code Consequences: resuts and tradeoffs

6 Design Patterns are NOT Data structures that can be encoded in casses and reused as is (i.e., inked ists, hash tabes) Compex domain-specific designs (for an entire appication or subsystem) If they are not famiiar data structures or compex domain-specific subsystems, what are they? They are: Descriptions of communicating objects and casses that are customized to sove a genera design probem in a particuar context.

7 Three Types of Patterns Creationa patterns: Dea with initiaizing and configuring casses and objects Structura patterns: Dea with decouping interface and impementation of casses and objects Composition of casses or objects Behaviora patterns: Dea with dynamic interactions among societies of casses and objects How they distribute responsibiity

8 Creationa Patterns Abstract Factory: Factory for buiding reated objects Buider: Factory for buiding compex objects incrementay Factory Method: Method in a derived cass creates associates Prototype: Factory for coning new instances from a prototype Singeton: Factory for a singuar (soe) instance

9 Structura patterns Describe ways to assembe objects to reaize new functionaity Added fexibiity inherent in object composition due to abiity to change composition at run-time not possibe with static cass composition Exampe: Proxy Proxy: acts as convenient surrogate or pacehoder for another object. Remote Proxy: oca representative for object in a different address space Virtua Proxy: represent arge object that shoud be oaded on demand Protected Proxy: protect access to the origina object

10 Structura Patterns Adapter: Transator adapts a server interface for a cient Bridge: Abstraction for binding one of many impementations Composite: Structure for buiding recursive aggregations Decorator: Decorator extends an object transparenty Facade: Simpifies the interface for a subsystem Fyweight: Many fine-grained objects shared efficienty. Proxy: One object approximates another

11 Behaviora Patterns Chain of Responsibiity: Request deegated to the responsibe service provider Command: Request or Action is first-cass object, hence re-storabe Iterator: Aggregate and access eements sequentiay Interpreter: Language interpreter for a sma grammar Mediator: Coordinates interactions between its associates Memento: Snapshot captures and restores object states privatey Which ones do you think you have seen somewhere?

12 Behaviora Patterns (cont.) Observer: Dependents update automaticay when subject changes State: Object whose behavior depends on its state Strategy: Abstraction for seecting one of many agorithms Tempate Method: Agorithm with some steps suppied by a derived cass Visitor: Operations appied to eements of a heterogeneous object structure

13 Patterns in software ibraries AWT and Swing use Observer pattern Iterator pattern in C++ tempate ibrary & JDK Façade pattern used in many studentoriented ibraries to simpify more compicated ibraries! Bridge and other patterns recurs in middeware for distributed computing frameworks

14 More software patterns Design patterns idioms (ow eve, C++): Jim Copein, Scott Meyers I.e., when shoud you define a virtua destructor? design (micro-architectures) [Gamma-GoF] architectura (systems design): ayers, refection, broker Refection makes casses sef-aware, their structure and behavior accessibe for adaptation and change: Meta-eve provides sef-representation, base eve defines the appication ogic Java Enterprise Design Patterns (distributed transactions and databases) E.g., ACID Transaction: Atomicity (restoring an object after a faied transaction), Consistency, Isoation, and Durabiity Anaysis patterns (recurring & reusabe anaysis modes, from various domains, i.e., accounting, financia trading, heath care) Process patterns (software process & organization)

15 Benefits of Design Patterns Design patterns enabe arge-scae reuse of software architectures and aso hep document systems Patterns expicity capture expert knowedge and design tradeoffs and make it more widey avaiabe Patterns hep improve deveoper communication Pattern names form a common vocabuary

16 Singeton Synopsis or Intent: Singeton pattern is one of the simpest design patterns This type of design pattern comes under creationa pattern provides one of the best ways to create an object. Context: invoves a singe cass which is responsibe to create an object whie making sure that ony singe object gets created. This cass provides a way to access its ony object which can be accessed directy without need to instantiate the object of the cass. Impementation cass provides a static method to get its static instance to outside word

17 Singeton (exampe)

18 Prototype Synopsis or Intent: creating dupicate object whie keeping performance in mind. This type of design pattern comes under creationa pattern provides one of the best ways to create an object. Context: invoves impementing a prototype interface which tes to create a cone of the current object. This pattern is used when creation of object directy is costy. For exampe, an object is to be created after a costy database operation. We can cache the object, returns its cone on next request and update the database as and when needed thus reducing database cas. Impementation to create an abstract cass and concrete casses extending the abstract cass. A third cass is defined as a next step which stores objects in a Hashtabe and returns their cone when requested.

19 Prototype (exampe)

20 Adapter Pattern Synopsis or Intent: works as a bridge between two incompatibe interfaces comes under structura pattern combines the capabiity of two independent interfaces Context: This pattern invoves a singe cass which is responsibe to join functionaities of independent or incompatibe interfaces A rea ife exampe coud be a case of card reader which acts as an adapter between memory card and a aptop You pugin the memory card into card reader and card reader into the aptop so that memory card can be read via aptop.

21 Adapter (exampe)

22 Command Pattern Synopsis or Intent: Encapsuate a request as an object, thereby etting you parameterize cients with different requests, queue or og requests, and support undoabe operations Context: You want to mode the time evoution of a program: What needs to be done, e.g. queued requests, aarms, conditions for action What is being done, e.g. which parts of a composite or distributed action have been competed What has been done, e.g. a og of undoabe operations What are some appications that need to support undo? Editor, cacuator, database with transactions Perform an execute at one time, undo at a different time Soution: represent units of work as Command objects Interface of a Command object can be a simpe execute() method Extra methods can support undo and redo Commands can be persistent and gobay accessibe, just ike norma objects

23 Command pattern Consequences: You can undo/redo any Command Each Command stores what it needs to restore state You can store Commands in a stack or queue Command processor pattern maintains a history It is easy to add new Commands, because you do not have to change existing casses Command is an abstract cass, from which you derive new casses execute(), undo() and redo() are poymorphic functions

24 Command (exampe)

Design pa*erns. Based on slides by Glenn D. Blank

Design pa*erns. Based on slides by Glenn D. Blank Design pa*erns Based on slides by Glenn D. Blank Defini6ons A pa#ern is a recurring solu6on to a standard problem, in a context. Christopher Alexander, a professor of architecture Why would what a prof

More information

Design Patterns. An introduction

Design 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 information

As Michi Henning and Steve Vinoski showed 1, calling a remote

As Michi Henning and Steve Vinoski showed 1, calling a remote Reducing CORBA Ca Latency by Caching and Prefetching Bernd Brügge and Christoph Vismeier Technische Universität München Method ca atency is a major probem in approaches based on object-oriented middeware

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software 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 information

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Lecture 4: Threads

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Lecture 4: Threads CSE120 Principes of Operating Systems Prof Yuanyuan (YY) Zhou Lecture 4: Threads Announcement Project 0 Due Project 1 out Homework 1 due on Thursday Submit it to Gradescope onine 2 Processes Reca that

More information

SDC Design patterns GoF

SDC 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 information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted 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 information

Navigating and searching theweb

Navigating and searching theweb Navigating and searching theweb Contents Introduction 3 1 The Word Wide Web 3 2 Navigating the web 4 3 Hyperinks 5 4 Searching the web 7 5 Improving your searches 8 6 Activities 9 6.1 Navigating the web

More information

Introduction to USB Development

Introduction to USB Development Introduction to USB Deveopment Introduction Technica Overview USB in Embedded Systems Recent Deveopments Extensions to USB USB as compared to other technoogies USB: Universa Seria Bus A seria bus standard

More information

Using Design Patterns in Java Application Development

Using 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 information

RDF Objects 1. Alex Barnell Information Infrastructure Laboratory HP Laboratories Bristol HPL November 27 th, 2002*

RDF Objects 1. Alex Barnell Information Infrastructure Laboratory HP Laboratories Bristol HPL November 27 th, 2002* RDF Objects 1 Aex Barne Information Infrastructure Laboratory HP Laboratories Bristo HPL-2002-315 November 27 th, 2002* E-mai: Andy_Seaborne@hp.hp.com RDF, semantic web, ontoogy, object-oriented datastructures

More information

Sample of a training manual for a software tool

Sample of a training manual for a software tool Sampe of a training manua for a software too We use FogBugz for tracking bugs discovered in RAPPID. I wrote this manua as a training too for instructing the programmers and engineers in the use of FogBugz.

More information

file://j:\macmillancomputerpublishing\chapters\in073.html 3/22/01

file://j:\macmillancomputerpublishing\chapters\in073.html 3/22/01 Page 1 of 15 Chapter 9 Chapter 9: Deveoping the Logica Data Mode The information requirements and business rues provide the information to produce the entities, attributes, and reationships in ogica mode.

More information

Readme ORACLE HYPERION PROFITABILITY AND COST MANAGEMENT

Readme ORACLE HYPERION PROFITABILITY AND COST MANAGEMENT ORACLE HYPERION PROFITABILITY AND COST MANAGEMENT Reease 11.1.2.4.000 Readme CONTENTS IN BRIEF Purpose... 2 New Features in This Reease... 2 Instaation Information... 2 Supported Patforms... 2 Supported

More information

Mobile App Recommendation: Maximize the Total App Downloads

Mobile App Recommendation: Maximize the Total App Downloads Mobie App Recommendation: Maximize the Tota App Downoads Zhuohua Chen Schoo of Economics and Management Tsinghua University chenzhh3.12@sem.tsinghua.edu.cn Yinghui (Catherine) Yang Graduate Schoo of Management

More information

Guardian 365 Pro App Guide. For more exciting new products please visit our website: Australia: OWNER S MANUAL

Guardian 365 Pro App Guide. For more exciting new products please visit our website: Australia:   OWNER S MANUAL Guardian 365 Pro App Guide For more exciting new products pease visit our website: Austraia: www.uniden.com.au OWNER S MANUAL Privacy Protection Notice As the device user or data controer, you might coect

More information

Computer Networks. College of Computing. Copyleft 2003~2018

Computer Networks. College of Computing.   Copyleft 2003~2018 Computer Networks Computer Networks Prof. Lin Weiguo Coege of Computing Copyeft 2003~2018 inwei@cuc.edu.cn http://icourse.cuc.edu.cn/computernetworks/ http://tc.cuc.edu.cn Attention The materias beow are

More information

Nearest Neighbor Learning

Nearest Neighbor Learning Nearest Neighbor Learning Cassify based on oca simiarity Ranges from simpe nearest neighbor to case-based and anaogica reasoning Use oca information near the current query instance to decide the cassification

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1 Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which

More information

index.pdf March 17,

index.pdf March 17, index.pdf March 17, 2013 1 ITI 1121. Introduction to omputing II Marce Turcotte Schoo of Eectrica Engineering and omputer Science Linked List (Part 2) Tai pointer ouby inked ist ummy node Version of March

More information

Design 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.) 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 information

NCH Software Express Delegate

NCH Software Express Delegate NCH Software Express Deegate This user guide has been created for use with Express Deegate Version 4.xx NCH Software Technica Support If you have difficuties using Express Deegate pease read the appicabe

More information

UnixWare 7 System Administration UnixWare 7 System Configuration

UnixWare 7 System Administration UnixWare 7 System Configuration UnixWare 7 System Administration - CH 3 - UnixWare 7 System Configuration Page 1 of 8 [Figures are not incuded in this sampe chapter] UnixWare 7 System Administration - 3 - UnixWare 7 System Configuration

More information

A Petrel Plugin for Surface Modeling

A Petrel Plugin for Surface Modeling A Petre Pugin for Surface Modeing R. M. Hassanpour, S. H. Derakhshan and C. V. Deutsch Structure and thickness uncertainty are important components of any uncertainty study. The exact ocations of the geoogica

More information

Extracting semistructured data from the Web: An XQuery Based Approach

Extracting semistructured data from the Web: An XQuery Based Approach EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. Extracting semistructured data from the Web: An XQuery Based Approach Gies Nachouki Université de Nantes - Facuté des Sciences, IRIN, 2, rue de a Houssinière,

More information

Development of a National Portal for Tuvalu. Business Case. SPREP Pacific iclim

Development of a National Portal for Tuvalu. Business Case. SPREP Pacific iclim Deveopment of a Nationa Porta for Tuvau Business Case SPREP Pacific iclim Apri 2018 Tabe of Contents 1. Introduction... 3 1.1 Report Purpose... 3 1.2 Background & Context... 3 1.3 Other IKM Activities

More information

Section 3 : Exploring 3D shapes

Section 3 : Exploring 3D shapes Section 3 : Exporing 3D shapes Copyright 2016 The Open University Contents Section 3: Exporing 3D shapes 3 1. Using practica work 3 2. A cross-curricuar approach 4 3. Using practica work to consoidate

More information

Section 3: Exploring 3D shapes

Section 3: Exploring 3D shapes Section 3: Exporing 3D shapes Contents Section 3: Exporing 3D shapes 3 1. Using practica work 3 2. A cross-curricuar approach 5 3. Using practica work to consoidate earning 6 Resource 1: Coecting and making

More information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN 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 information

MCSE Training Guide: Windows Architecture and Memory

MCSE Training Guide: Windows Architecture and Memory MCSE Training Guide: Windows 95 -- Ch 2 -- Architecture and Memory Page 1 of 13 MCSE Training Guide: Windows 95-2 - Architecture and Memory This chapter wi hep you prepare for the exam by covering the

More information

Load Balancing by MPLS in Differentiated Services Networks

Load Balancing by MPLS in Differentiated Services Networks Load Baancing by MPLS in Differentiated Services Networks Riikka Susitaiva, Jorma Virtamo, and Samui Aato Networking Laboratory, Hesinki University of Technoogy P.O.Box 3000, FIN-02015 HUT, Finand {riikka.susitaiva,

More information

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

BEA WebLogic Server. Release Notes for WebLogic Tuxedo Connector 1.0

BEA WebLogic Server. Release Notes for WebLogic Tuxedo Connector 1.0 BEA WebLogic Server Reease Notes for WebLogic Tuxedo Connector 1.0 BEA WebLogic Tuxedo Connector Reease 1.0 Document Date: June 29, 2001 Copyright Copyright 2001 BEA Systems, Inc. A Rights Reserved. Restricted

More information

A Memory Grouping Method for Sharing Memory BIST Logic

A Memory Grouping Method for Sharing Memory BIST Logic A Memory Grouping Method for Sharing Memory BIST Logic Masahide Miyazai, Tomoazu Yoneda, and Hideo Fuiwara Graduate Schoo of Information Science, Nara Institute of Science and Technoogy (NAIST), 8916-5

More information

Applying the Observer Design Pattern

Applying 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 information

Neural Network Enhancement of the Los Alamos Force Deployment Estimator

Neural Network Enhancement of the Los Alamos Force Deployment Estimator Missouri University of Science and Technoogy Schoars' Mine Eectrica and Computer Engineering Facuty Research & Creative Works Eectrica and Computer Engineering 1-1-1994 Neura Network Enhancement of the

More information

Distance Weighted Discrimination and Second Order Cone Programming

Distance Weighted Discrimination and Second Order Cone Programming Distance Weighted Discrimination and Second Order Cone Programming Hanwen Huang, Xiaosun Lu, Yufeng Liu, J. S. Marron, Perry Haaand Apri 3, 2012 1 Introduction This vignette demonstrates the utiity and

More information

A Method for Calculating Term Similarity on Large Document Collections

A Method for Calculating Term Similarity on Large Document Collections $ A Method for Cacuating Term Simiarity on Large Document Coections Wofgang W Bein Schoo of Computer Science University of Nevada Las Vegas, NV 915-019 bein@csunvedu Jeffrey S Coombs and Kazem Taghva Information

More information

Maru: Hardware-Assisted Secure Cloud Computing

Maru: Hardware-Assisted Secure Cloud Computing Maru: Hardware-Assisted Secure Coud Computing Peter Pietzuch prp@imperia.ac.uk Large-Scae Distributed Systems Group Department of Computing, Imperia Coege London Peter R. Pietzuch http://sds.doc.ic.ac.uk

More information

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns

EPL 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 information

Lecture Notes for Chapter 4 Part III. Introduction to Data Mining

Lecture Notes for Chapter 4 Part III. Introduction to Data Mining Data Mining Cassification: Basic Concepts, Decision Trees, and Mode Evauation Lecture Notes for Chapter 4 Part III Introduction to Data Mining by Tan, Steinbach, Kumar Adapted by Qiang Yang (2010) Tan,Steinbach,

More information

Microsoft Visual Studio 2005 Professional Tools. Advanced development tools designed for professional developers

Microsoft Visual Studio 2005 Professional Tools. Advanced development tools designed for professional developers Microsoft Visua Studio 2005 Professiona Toos Advanced deveopment toos designed for professiona deveopers If you re a professiona deveoper, Microsoft has two new ways to fue your deveopment efforts: Microsoft

More information

Language Identification for Texts Written in Transliteration

Language Identification for Texts Written in Transliteration Language Identification for Texts Written in Transiteration Andrey Chepovskiy, Sergey Gusev, Margarita Kurbatova Higher Schoo of Economics, Data Anaysis and Artificia Inteigence Department, Pokrovskiy

More information

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Design 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 information

Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1

Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1 Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1 About the presenter Paul Kaunds Paul Kaunds is a Verification Consultant at

More information

The Big Picture WELCOME TO ESIGNAL

The Big Picture WELCOME TO ESIGNAL 2 The Big Picture HERE S SOME GOOD NEWS. You don t have to be a rocket scientist to harness the power of esigna. That s exciting because we re certain that most of you view your PC and esigna as toos for

More information

Shape Analysis with Structural Invariant Checkers

Shape Analysis with Structural Invariant Checkers Shape Anaysis with Structura Invariant Checkers Bor-Yuh Evan Chang Xavier Riva George C. Necua University of Caifornia, Berkeey SAS 2007 Exampe: Typestate with shape anaysis Concrete Exampe Abstraction

More information

Slide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D

Slide 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 information

Introduction to Software Engineering: Object Design I Reuse & Patterns

Introduction 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 information

Authorization of a QoS Path based on Generic AAA. Leon Gommans, Cees de Laat, Bas van Oudenaarde, Arie Taal

Authorization of a QoS Path based on Generic AAA. Leon Gommans, Cees de Laat, Bas van Oudenaarde, Arie Taal Abstract Authorization of a QoS Path based on Generic Leon Gommans, Cees de Laat, Bas van Oudenaarde, Arie Taa Advanced Internet Research Group, Department of Computer Science, University of Amsterdam.

More information

Welcome - CSC 301. CSC 301- Foundations of Programming Languages

Welcome - CSC 301. CSC 301- Foundations of Programming Languages Wecome - CSC 301 CSC 301- Foundations of Programming Languages Instructor: Dr. Lutz Hame Emai: hame@cs.uri.edu Office: Tyer, Rm 251 Office Hours: TBA TA: TBA Assignments Assignment #0: Downoad & Read Syabus

More information

CS/CE 2336 Computer Science II

CS/CE 2336 Computer Science II CS/CE 2336 Computer Science II UT D Session 20 Design Patterns An Overview 2 History Architect Christopher Alexander coined the term "pattern" circa 1977-1979 Kent Beck and Ward Cunningham, OOPSLA'87 used

More information

Lecture outline Graphics and Interaction Scan Converting Polygons and Lines. Inside or outside a polygon? Scan conversion.

Lecture outline Graphics and Interaction Scan Converting Polygons and Lines. Inside or outside a polygon? Scan conversion. Lecture outine 433-324 Graphics and Interaction Scan Converting Poygons and Lines Department of Computer Science and Software Engineering The Introduction Scan conversion Scan-ine agorithm Edge coherence

More information

Space-Time Trade-offs.

Space-Time Trade-offs. Space-Time Trade-offs. Chethan Kamath 03.07.2017 1 Motivation An important question in the study of computation is how to best use the registers in a CPU. In most cases, the amount of registers avaiabe

More information

Archive Software with value add services:

Archive Software with value add services: E-Mai Archive Software with vaue add services: Protect your emais from data oss through reasonabe and secure backup features. Increase the productivity of your team by using the integrated search engine

More information

Dynamic Symbolic Execution of Distributed Concurrent Objects

Dynamic Symbolic Execution of Distributed Concurrent Objects Dynamic Symboic Execution of Distributed Concurrent Objects Andreas Griesmayer 1, Bernhard Aichernig 1,2, Einar Broch Johnsen 3, and Rudof Schatte 1,2 1 Internationa Institute for Software Technoogy, United

More information

Applying the Decorator Design Pattern

Applying the Decorator Design Pattern Applying the Decorator 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 information

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

Object 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 information

Response Surface Model Updating for Nonlinear Structures

Response Surface Model Updating for Nonlinear Structures Response Surface Mode Updating for Noninear Structures Gonaz Shahidi a, Shamim Pakzad b a PhD Student, Department of Civi and Environmenta Engineering, Lehigh University, ATLSS Engineering Research Center,

More information

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling CSE120 Principes of Operating Systems Prof Yuanyuan (YY) Zhou Scheduing Announcement Homework 2 due on October 25th Project 1 due on October 26th 2 CSE 120 Scheduing and Deadock Scheduing Overview In discussing

More information

A Robust Sign Language Recognition System with Sparsely Labeled Instances Using Wi-Fi Signals

A Robust Sign Language Recognition System with Sparsely Labeled Instances Using Wi-Fi Signals A Robust Sign Language Recognition System with Sparsey Labeed Instances Using Wi-Fi Signas Jiacheng Shang, Jie Wu Center for Networked Computing Dept. of Computer and Info. Sciences Tempe University Motivation

More information

WATERMARKING GIS DATA FOR DIGITAL MAP COPYRIGHT PROTECTION

WATERMARKING GIS DATA FOR DIGITAL MAP COPYRIGHT PROTECTION WATERMARKING GIS DATA FOR DIGITAL MAP COPYRIGHT PROTECTION Shen Tao Chinese Academy of Surveying and Mapping, Beijing 100039, China shentao@casm.ac.cn Xu Dehe Institute of resources and environment, North

More information

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

CSCD01 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 information

Product Design & Development

Product Design & Development Product Design & Deveopment Product Architecture 1 2 1 What is Product Architecture? Product architecture is the assignment of the product's functions to physica buiding bocks or "chunks". Product modue

More information

Multi-level Shape Recognition based on Wavelet-Transform. Modulus Maxima

Multi-level Shape Recognition based on Wavelet-Transform. Modulus Maxima uti-eve Shape Recognition based on Waveet-Transform oduus axima Faouzi Aaya Cheikh, Azhar Quddus and oncef Gabbouj Tampere University of Technoogy (TUT), Signa Processing aboratory, P.O. Box 553, FIN-33101

More information

Administration and Autonomy In A Replication-Transparent Distributed DBMS

Administration and Autonomy In A Replication-Transparent Distributed DBMS Administration and Autonomy In A Repication-Transparent Distributed DBMS Kenneth R. Abbott, Dennis R. McCarthy Computer Corporation of America Four Cambridge Center, Cambridge, MA 02142 Abstract Administrative

More information

Further Optimization of the Decoding Method for Shortened Binary Cyclic Fire Code

Further Optimization of the Decoding Method for Shortened Binary Cyclic Fire Code Further Optimization of the Decoding Method for Shortened Binary Cycic Fire Code Ch. Nanda Kishore Heosoft (India) Private Limited 8-2-703, Road No-12 Banjara His, Hyderabad, INDIA Phone: +91-040-3378222

More information

Object-Oriented Oriented Programming

Object-Oriented Oriented Programming Object-Oriented Oriented Programming Composite Pattern CSIE Department, NTUT Woei-Kae Chen Catalog of Design patterns Creational patterns Abstract Factory, Builder, Factory Method, Prototype, Singleton

More information

Windows NT, Terminal Server and Citrix MetaFrame Terminal Server Architecture

Windows NT, Terminal Server and Citrix MetaFrame Terminal Server Architecture Windows NT, Termina Server and Citrix MetaFrame - CH 3 - Termina Server Architect.. Page 1 of 13 [Figures are not incuded in this sampe chapter] Windows NT, Termina Server and Citrix MetaFrame - 3 - Termina

More information

A Comparison of a Second-Order versus a Fourth- Order Laplacian Operator in the Multigrid Algorithm

A Comparison of a Second-Order versus a Fourth- Order Laplacian Operator in the Multigrid Algorithm A Comparison of a Second-Order versus a Fourth- Order Lapacian Operator in the Mutigrid Agorithm Kaushik Datta (kdatta@cs.berkeey.edu Math Project May 9, 003 Abstract In this paper, the mutigrid agorithm

More information

Outerjoins, Constraints, Triggers

Outerjoins, Constraints, Triggers Outerjoins, Constraints, Triggers Lecture #13 Autumn, 2001 Fa, 2001, LRX #13 Outerjoins, Constraints, Triggers HUST,Wuhan,China 358 Outerjoin R S = R S with danging tupes padded with nus and incuded in

More information

From i* to istar 2.0: An Evolving Social Modelling Language

From i* to istar 2.0: An Evolving Social Modelling Language From i* to istar 2.0: An Evoving Socia Modeing Language Lin Liu 1 Schoo of Software, Tsinghua University, Beijing, 100084, China iniu@tsinghua.edu.cn Abstract. Conceptua Modeing, as a thought too, heps

More information

Computing devices have become increasingly mobile at the client end, and the

Computing devices have become increasingly mobile at the client end, and the Pronto: Mobie Gateway With Pubish- Subscribe Paradigm Over Wireess Network Eiko Yoneki University of Cambridge Pronto, a messaging middeware system for mobie appications, provides both centraized and decentraized

More information

AMR++: Object-Oriented Parallel Adaptive Mesh Refinement

AMR++: Object-Oriented Parallel Adaptive Mesh Refinement UCRL-ID-137373 AMR++: Object-Oriented Parae Adaptive Mesh Refinement 5. Phiip, D. Quinan February 2,200O U.S. Department of Energy Approved for pubic reease; further dissemination unimited DISCLAIMER This

More information

ngenius Instrumentation Overview

ngenius Instrumentation Overview ngenius Instrumentation Overview NetScout Systems, Inc. 4 Technoogy Park Drive Westford, MA 01886 Teephone: 978-614-4000 Fax: 978-614-4004 Web: http://www.netscout.com NetScout is a registered trademark

More information

A Top-to-Bottom View: Energy Analysis for Mobile Application Source Code

A Top-to-Bottom View: Energy Analysis for Mobile Application Source Code A Top-to-Bottom View: Energy Anaysis for Mobie Appication Source Code Xueiang Li John P. Gaagher Roskide University Emai: {xueiang, jpg}@ruc.dk arxiv:1510.04165v1 [cs.oh] 14 Oct 2015 Abstract Energy efficiency

More information

International Laboratory Accreditation Cooperation. The ILAC Mutual Recognition Arrangement

International Laboratory Accreditation Cooperation. The ILAC Mutual Recognition Arrangement Internationa Laboratory Accreditation Cooperation The ILAC Mutua Recognition Arrangement Enhancing the acceptance of products and services across nationa borders Removing barriers to goba trade Accreditation

More information

Link Registry Protocol Options

Link Registry Protocol Options Link Registry Protoco Options Norman Finn, March 2017 HUAWEI TECHNOLOGIES CO., LTD. IEEE 802.1 TSN At east two obvious choices for P802.1CS Link Registration Protoco An IS-IS-ike protoco. TCP (Transmission

More information

Introducing a Target-Based Approach to Rapid Prototyping of ECUs

Introducing a Target-Based Approach to Rapid Prototyping of ECUs Introducing a Target-Based Approach to Rapid Prototyping of ECUs FEBRUARY, 1997 Abstract This paper presents a target-based approach to Rapid Prototyping of Eectronic Contro Units (ECUs). With this approach,

More information

Computer Networks. College of Computing. Copyleft 2003~2018

Computer Networks. College of Computing.   Copyleft 2003~2018 Computer Networks Prof. Lin Weiguo Coege of Computing Copyeft 2003~2018 inwei@cuc.edu.cn http://icourse.cuc.edu.cn/computernetworks/ http://tc.cuc.edu.cn Internet Contro Message Protoco (ICMP), RFC 792

More information

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000 Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design

More information

1682 IEEE TRANSACTIONS ON FUZZY SYSTEMS, VOL. 22, NO. 6, DECEMBER Backward Fuzzy Rule Interpolation

1682 IEEE TRANSACTIONS ON FUZZY SYSTEMS, VOL. 22, NO. 6, DECEMBER Backward Fuzzy Rule Interpolation 1682 IEEE TRANSACTIONS ON FUZZY SYSTEMS, VOL. 22, NO. 6, DECEMBER 2014 Bacward Fuzzy Rue Interpoation Shangzhu Jin, Ren Diao, Chai Que, Senior Member, IEEE, and Qiang Shen Abstract Fuzzy rue interpoation

More information

Quality Assessment using Tone Mapping Algorithm

Quality Assessment using Tone Mapping Algorithm Quaity Assessment using Tone Mapping Agorithm Nandiki.pushpa atha, Kuriti.Rajendra Prasad Research Schoar, Assistant Professor, Vignan s institute of engineering for women, Visakhapatnam, Andhra Pradesh,

More information

May 13, Mark Lutz Boulder, Colorado (303) [work] (303) [home]

May 13, Mark Lutz Boulder, Colorado (303) [work] (303) [home] "Using Python": a Book Preview May 13, 1995 Mark Lutz Bouder, Coorado utz@kapre.com (303) 546-8848 [work] (303) 684-9565 [home] Introduction. This paper is a brief overview of the upcoming Python O'Reiy

More information

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang

More information

Outline. Introduce yourself!! What is Machine Learning? What is CAP-5610 about? Class information and logistics

Outline. Introduce yourself!! What is Machine Learning? What is CAP-5610 about? Class information and logistics Outine Introduce yoursef!! What is Machine Learning? What is CAP-5610 about? Cass information and ogistics Lecture Notes for E Apaydın 2010 Introduction to Machine Learning 2e The MIT Press (V1.0) About

More information

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Advanced Memory Management

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Advanced Memory Management CSE120 Principes of Operating Systems Prof Yuanyuan (YY) Zhou Advanced Memory Management Advanced Functionaity Now we re going to ook at some advanced functionaity that the OS can provide appications using

More information

Four Circuit 4 Wire Unit With Dante Network Audio Interface

Four Circuit 4 Wire Unit With Dante Network Audio Interface Network Audio 4 Wire Interface Four Circuit 4 Wire Unit With Dante Network Audio Interface GS-FW012 ip 4 Wire With Dante Interface Highights Four x 4 Wire Circuits Loca Cue Input Dante Network Audio Three

More information

Joint disparity and motion eld estimation in. stereoscopic image sequences. Ioannis Patras, Nikos Alvertos and Georgios Tziritas y.

Joint disparity and motion eld estimation in. stereoscopic image sequences. Ioannis Patras, Nikos Alvertos and Georgios Tziritas y. FORTH-ICS / TR-157 December 1995 Joint disparity and motion ed estimation in stereoscopic image sequences Ioannis Patras, Nikos Avertos and Georgios Tziritas y Abstract This work aims at determining four

More information

CentreVu Explorer II. User Guide. Version Comcode Issue 1.0 June 1999

CentreVu Explorer II. User Guide. Version Comcode Issue 1.0 June 1999 1 CentreVu Exporer II Version 1.0 User Guide 585-218-200 Comcode 108456617 Issue 1.0 June 1999 Copyright 1999 Lucent Technoogies A Rights Reserved Printed in U.S.A. Notice Every effort was made to ensure

More information

Outline. Parallel Numerical Algorithms. Forward Substitution. Triangular Matrices. Solving Triangular Systems. Back Substitution. Parallel Algorithm

Outline. Parallel Numerical Algorithms. Forward Substitution. Triangular Matrices. Solving Triangular Systems. Back Substitution. Parallel Algorithm Outine Parae Numerica Agorithms Chapter 8 Prof. Michae T. Heath Department of Computer Science University of Iinois at Urbana-Champaign CS 554 / CSE 512 1 2 3 4 Trianguar Matrices Michae T. Heath Parae

More information

CSE120 Principles of Operating Systems. Architecture Support for OS

CSE120 Principles of Operating Systems. Architecture Support for OS CSE120 Principes of Operating Systems Architecture Support for OS Why are you sti here? You shoud run away from my CSE120! 2 CSE 120 Architectura Support Announcement Have you visited the web page? http://cseweb.ucsd.edu/casses/fa18/cse120-a/

More information

Xisa: Extensible Inductive Shape Analysis

Xisa: Extensible Inductive Shape Analysis Xisa: Extensibe Inductive Shape Anaysis Bor-Yuh Evan Chang U of Coorado, Bouder Xavier Riva INRIA/ENS Paris George C. Necua U of Caifornia, Berkeey Additiona Contributors: Vincent Laviron, James Hoey,

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: 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 information

Substitute Model of Deep-groove Ball Bearings in Numeric Analysis of Complex Constructions Like Manipulators

Substitute Model of Deep-groove Ball Bearings in Numeric Analysis of Complex Constructions Like Manipulators Mechanics and Mechanica Engineering Vo. 12, No. 4 (2008) 349 356 c Technica University of Lodz Substitute Mode of Deep-groove Ba Bearings in Numeric Anaysis of Compex Constructions Like Manipuators Leszek

More information

Application of Intelligence Based Genetic Algorithm for Job Sequencing Problem on Parallel Mixed-Model Assembly Line

Application of Intelligence Based Genetic Algorithm for Job Sequencing Problem on Parallel Mixed-Model Assembly Line American J. of Engineering and Appied Sciences 3 (): 5-24, 200 ISSN 94-7020 200 Science Pubications Appication of Inteigence Based Genetic Agorithm for Job Sequencing Probem on Parae Mixed-Mode Assemby

More information

Telephony Trainers with Discovery Software

Telephony Trainers with Discovery Software Teephony Trainers 58 Series Teephony Trainers with Discovery Software 58-001 Teephony Training System 58-002 Digita Switching System 58-003 Digita Teephony Training System 58-004 Digita Trunk Network System

More information

Database Graph Views : A Practical Model to Manage Persistent Graphs1

Database Graph Views : A Practical Model to Manage Persistent Graphs1 Database Graph Views : A Practica Mode to Manage Persistent Graphs1 Aejandro Gutihez TS Phiippe Puchera? Hermaun Steffen $ Jean-Marc Thevenin?t (t) University of Versaies ($) Universidad de a Reptibica

More information

What is Design Patterns?

What 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 information

Formulation of Loss minimization Problem Using Genetic Algorithm and Line-Flow-based Equations

Formulation of Loss minimization Problem Using Genetic Algorithm and Line-Flow-based Equations Formuation of Loss minimization Probem Using Genetic Agorithm and Line-Fow-based Equations Sharanya Jaganathan, Student Member, IEEE, Arun Sekar, Senior Member, IEEE, and Wenzhong Gao, Senior member, IEEE

More information