Patterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides
|
|
- Helena Brittany Rogers
- 6 years ago
- Views:
Transcription
1 Patterns
2 Patterns Pattern-based engineering: in the field of (building) architecting and other disciplines from 1960 s Some software engineers also started to use the concepts Become widely known in SE (Software Engineering) by the book written by the Gang of Four (GoF): Erich Gamma Richard Helm Ralph Johnson John Vlissides
3 What is a pattern? Christopher Alexander (architect) : Each pattern describes a problem which occurs over and over again in our environment, and then describes the core solution to that problem, in such a way that you can use the solution a million times over, without ever doing it the same way twice (Pattern Language: Towns, Buildings, Construction, 1977) Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution. As an element in the world, each pattern is a relationship between a certain context, a certain system of forces which occurs repeatedly in that context, and a certain spatial configuration which allows these forces to resolve themselves. (The Timeless Way of Building, 1979)
4 What is a pattern? Martin Fowler: A pattern is an idea that has been useful in one practical context and will probably be useful in others. (Analysis Patterns: Reusable Object Models, 1997)
5 What is a pattern? Scott W. Ambler: A pattern is a description of a general solution to a common problem or issue from which a detailed solution to a specific problem may be determined. ( tml)
6 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
7 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
8 Classification of patterns 1. Analyis patterns They follow the conceptual structure of business processes They are groups of concepts representing often used constructions in business modeling What are they used for? They offer design patterns and solutions for frequent problems in order to make it easier to a design model from the analysis model. They help to get abstract analysis models as soon as possible. These models describe the most important specifications of the exyct problem.
9 Examples of analysis patterns Range Quantity For representing value ranges For representing dimensioned values with an amount and a unit together start: <T> end: <T> Range<T> includes(<t>) Quantity amount: Number unit: Unit +, -, *, /, <, >, = x : Range<Integer> start = 10 end = 16 t16 : Quantity amount = 16 unit = ton
10 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
11 Classification of patterns 2. Architectural patterns/styles They contain best practices and pre-defined subsystems for the basic structure of a software structure. E.g.: client/server architecture, distributed object architecture, layered architecture, etc. M. Fowler: Patterns of Enterprise Application Architectures, 2002 F. Buschmann, K. Henney, D.C. Schmidt: Pattern-Oriented Software Architecture, Vol. 1 5., 1996, 2000, 2004, 2007.
12 Example of an architectural style Name: Model View Contrroller (MVC) Context: interactive applications with a flexible human-machine interface Problem: frequent change requests for user interfaces The same information is to be displayed differently (e.g., bar chart, pie chart) Presentation and behavior of the application should immediately reflect data manipulation User Interfaces that can be changed dinamically (even in run-time) are needed Support of various look-and-feel standards are needed Porting an application should not affect the core functionalities Solution: model encapsulates data and functionality and is independent from the input behavior and the representation of the output; view displays information; controller receives and transforms the input to service requests (towards model and view).
13 Structure
14 Architectural style sample Model View Controller (MVC) View represents the display of the model on a user interface. Controller receives user inputs, handles the model and asks the view to refresh accordingly. View Controller Model Model is a nonvisual object representing some information of the problem domain.
15 View Controller MVC It role is twofold: Separate information display from the model (data) View depends on the model! Contrary it is not true! Users want the same data displayed differently (based on the environment) Model Separate views and controllers Classic example: an editable and a non-editable controller for the same view In practice, we have 1 controller per 1 view in the most of the cases
16 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
17 Classification of patterns 3. Design patterns GoF: Design Patterns: Elements of Reusable Object- Oriented Software, Addison-Wesley, 1994 A. Holub: Holub on Patterns Learning Design Patterns by Looking at Code, Apress, 2004 S. Metsker: Design Patterns Java Workbook, Addison-Wesley, 2002 S. Metsker: Design Patterns in C#, Addison-Wesley, 2004
18 Classification of patterns 3. Design patterns Sub-systems of a software architecture usually build up a smaller units. These can be described by design patterns. Mid-level patterns: they are smaller than architectural patterns but they do not depend on a programming language or paradigm. They use do not affect the basic structure of the software-system but they highly affect the structure of the sub-system.
19 Design pattern sample Singleton Goal: allow the instantiation of a class to produce one and only one instance.
20 Design patterns (GoF) Creational patterns Structural patterns Behavioral patterns
21 Creational patterns Factory Method It provides an interface to create an object but it lets the subclasses to decide which class is instantiated. Abstract Factory Prototype Builder Singleton
22 Creational patterns Factory Method Abstract Factory It provides an interface to create a family of objects that are connected or depend on each other without defining the exact classes. Prototype Builder Singleton
23 Creational patterns Factory Method Abstract Factory Prototype By providing a prototype instance it defines what type of objects are to be created. The object are copies of this prototype. Builder Singleton
24 Creational patterns Factory Method Abstract Factory Prototype Builder It makes the creation of complex objects independent of their representation. As a result with the same process we can create different representations. Singleton
25 Creational patterns Factory Method Abstract Factory Prototype Builder Singleton It lets only one instance to be created from a class. For this it provides a global acces point.
26 Structural patterns Adapter It converts the interface of a class to the interface that can be used by other classes. Facade Proxy Bridge Decorator Flyweight Composite
27 Structural patterns Adapter Facade In a sub-system it provides a main interface that gathers a set of other interfaces. Proxy Bridge Decorator Flyweight Composite
28 Structural patterns Adapter Facade Proxy A given object is replaced by another one that overrides the access to the original object. Bridge Decorator Flyweight Composite
29 Structural patterns Adapter Facade Proxy Bridge It separates the abstract representation from the implementation so that they can be modified separately. Decorator Flyweight Composite
30 Structural patterns Adapter Facade Proxy Bridge Decorator Adds more additional responsibilities to classes dinamically. Can be used as an alternative of subclasses. Flyweight Composite
31 Structural patterns Adapter Facade Proxy Bridge Decorator Flyweight Support the use of high mass granular objects. Composite
32 Structural patterns Adapter Facade Proxy Bridge Decorator Flyweight Composite It orders the objects into a tree structure in order to represent the part-whole relations.
33 Behavioral patterns Template Method It provides the skeleton of the algorithm of a given method while letting the subclasses the implement the steps. Strategy Observer Mediator State Interpreter Visitor Command Iterator Memento Chain of Responsibility
34 Behavioral patterns Template Method Strategy Defines an algorithm family in which the algorithms are collected to separate units making it able to replece them by each other. Observer Mediator State Interpreter Visitor Command Iterator Memento Chain of Responsibility
35 Behavioral patterns Template Method Strategy Observer Provides a connection between objects so that if an object changes all other objects depending on it are informed about that. Mediator State Interpreter Visitor Command Iterator Memento Chain of Responsibility
36 Behavioral patterns Template Method Strategy Observer Mediator It defines an object that controls the cooperation of a a set of objects. State Interpreter Visitor Command Iterator Memento Chain of Responsibility
37 Behavioral patterns Template Method Strategy Observer Mediator State It lets the object to change its behavior by changing its inner state. Interpreter Visitor Command Iterator Memento Chain of Responsibility
38 Behavioral patterns Template Method Strategy Observer Mediator State Interpreter Represents the grammer of a given language. Visitor Command Iterator Memento Chain of Responsibility
39 Behavioral patterns Template Method Strategy Observer Mediator State Interpreter Visitor It represents an operation that can be executed on the elements of an object structure. Command Iterator Memento Chain of Responsibility
40 Behavioral patterns Template Method Strategy Observer Mediator State Interpreter Visitor Command It closes queries to an object in order to make it possible to give these queries as parameters to other agents. Iterator Memento Chain of Responsibility
41 Behavioral patterns Template Method Strategy Observer Mediator State Interpreter Visitor Command Iterator It provides a sequential access to elements of complex objects. Memento Chain of Responsibility
42 Behavioral patterns Template Method Strategy Observer Mediator State Interpreter Visitor Command Iterator Memento It saves the state of an object without braking encapsulation. Chain of Responsibility
43 Behavioral patterns Template Method Strategy Observer Mediator State Interpreter Visitor Command Iterator Memento Chain of Responsibility We form a chain from objects that can handle calls. The call goes in the chain while it reaches an object that can handle it.
44 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
45 Classification of patterns 4. Programming idioms / Implementation patterns K. Beck: Implementation patterns, Addison-Wesley, 2008 R.C. Martin: Clean Code A Handbook for Agile Software Craftmanship, Prentice Hall, 2008 J. Bloch: Effective Java (2nd ed.), Addison-Wesley, 2008 B. Wagner: Effective C# 50 Specific Ways to Improve Your C# (2nd ed.), Addison-Wesley, 2010 B. Wagner: More Effective C# 50 Specific Ways to Improve Your C# (2nd ed.), Addison-Wesley, 2008
46 Classification of patterns 4. Programming idioms / Implementation patterns (Programming idioms / Implementation patterns) An idiom is a low-level programming language specific pattern. It describes how to implement components and some spects of the relations between them with the tools of the given language. They include existing programming experience.
47 Idioms in Java Instead of string concatenation, use StringBuilder/StringBuffer! Whenever overriding equals, hashcode should also be overridden! Provide such an implementation that ensures that objects considered equal give the same hashcode value! This means that if x.equals(y), then x.hashcode() == y.hashcode() It should be contrapositive so if x.hashcode()!= y.hashcode(), then x.equals(y) == false
48 public final class PhoneNumber { private final short areacode; private final short prefix; private final short linenumber; public PhoneNumber(int areacode, int prefix, int linenumber) { } rangecheck(areacode, 999, "area code"); rangecheck(prefix, 999, "prefix"); rangecheck(linenumber, 9999, "line number"); this.areacode = (short) areacode; this.prefix = (short) prefix; this.linenumber = (short) linenumber; private static void rangecheck(int arg, int max, String name) { if (arg < 0 arg > max) throw new IllegalArgumentException(name +": " + arg); public boolean equals(object o) { } if (o == this) return true; if (!(o instanceof PhoneNumber)) return false; PhoneNumber pn = (PhoneNumber)o; return pn.linenumber == linenumber && pn.prefix == prefix && pn.areacode == areacode; // PROBLEM! No hashcode method! }
49 Map<PhoneNumber, String> m = new HashMap<PhoneNumber, String>(); m.put(new PhoneNumber(707, 867, 5309), "Jenny"); System.out.println(m.get(new PhoneNumber(707, 867, 5309))); null / Jenny Add the following method to class public int hashcode() { int result = 17; result = 31 * result + areacode; result = 31 * result + prefix; result = 31 * result + linenumber; return result; }
50 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
51 Classification of patterns 5. Testing patterns G. Meszaros: xunit Test Patterns Refactoring Test Code, Addison-Wesley, 2007 Give recipes for testing, e.g.: how to organize test cases (where to put test code), how to provide test data, how to avoid slow tests,
52 Testing pattern sample Testcase Class per Class (617) How to organize our test methods into test case classes? Test methods testing the same class should be put into a common class.
53 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
54 Classification of patterns 6. Process patterns A collection of techniques and activities that can be used in OO software engeneering process. By the correct use of them the software engeneering process of our organization can be formed. S.W. Ambler: Process Patterns: Building Large-Scale Systems Using Object Technology, SIGS Books/Cambridge University Press, 1998 S.W. Ambler: More Process Patterns: Delivering Large-Scale Systems Using Object Technology, SIGS Books/Cambridge University Press, 1998
55 OO software development process
56 Classification of patterns Patterns can exist at all scales. C. Alexander 1. Analyis patterns 2. Architectural patterns/styles 3. Design patterns 4. Programming idioms/implementation patterns 5. Testing patterns 6. Process patterns 7. Antipatterns
57 Classification of patterns 7. Antipatterns W.J. Brown et al.: AntiPatterns Refactoring Software, Architectures, and Projects in Crisis, John Wiley & Sons, 1998 P.A. Laplante, C.J. Neill: Antipatterns Identification, Refactoring, and Management, Auerbach, 2006
58 Antipattern categories Software development antipatterns Software architectural antipatterns Project management antipatterns
59 Software engineering antipattern samples Spaghetti code unstructured code solution: refactoring! Blob
60
61
62
63
64
65
66
67
68
69
70
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 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 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 informationDesign 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 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 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 informationIngegneria 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 informationCS/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 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 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 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 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 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 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 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 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 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 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 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 informationCS251 Software Engineering Lectures 18: Intro to DP
و ابتغ فيما آتاك هللا الدار اآلخرة و ال تنس نصيبك من الدنيا CS251 Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 Outline Introduction
More informationWS01/02 - Design Pattern and Software Architecture
Design Pattern and Software Architecture: VIII. Conclusion AG Softwaretechnik Raum E 3.165 Tele. 60-3321 hg@upb.de VIII. Conclusion VIII.1 Classifications VIII.2 Common Misconceptions VIII.3 Open Questions
More informationMVC. Model-View-Controller. Design Patterns. Certain programs reuse the same basic structure or set of ideas
MVC -- Design Patterns Certain programs reuse the same basic structure or set of ideas These regularly occurring structures have been called Design Patterns Design Patterns Design Patterns: Elements of
More informationLectures 24 and 25 Introduction to Architectural Styles and Design Patterns
Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
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 informationDesign Patterns. Gunnar Gotshalks A4-1
Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem
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 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 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 informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationSoftware Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software
Software Engineering - I An Introduction to Software Construction Techniques for Industrial Strength Software Chapter 9 Introduction to Design Patterns Copy Rights Virtual University of Pakistan 1 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 information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationApplying 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 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 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 informationIdioms 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 informationDesign patterns. Valentina Presutti courtesy of Paolo Ciancarini
Design patterns Valentina Presutti courtesy of Paolo Ciancarini Agenda What are design patterns? Catalogues of patterns Languages of patterns Two case studies: design with patterns Software Architectures
More informationPatterns. Jeszenszky, Péter University of Debrecen, Faculty of Informatics
Patterns Jeszenszky, Péter University of Debrecen, Faculty of Informatics jeszenszky.peter@inf.unideb.hu Kocsis, Gergely (English version) University of Debrecen, Faculty of Informatics kocsis.gergely@inf.unideb.hu
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 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 information3 Product Management Anti-Patterns by Thomas Schranz
3 Product Management Anti-Patterns by Thomas Schranz News Read above article, it s good and short! October 30, 2014 2 / 3 News Read above article, it s good and short! Grading: Added explanation about
More informationInformation systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Overview of design patterns for supporting information systems
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 informationA Metric of the Relative Abstraction Level of Software Patterns
A Metric of the Relative Abstraction Level of Software Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationA Metric for Measuring the Abstraction Level of Design Patterns
A Metric for Measuring the Abstraction Level of Design Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationAPPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS
APPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS Adem Zumbul (TUBITAK-UEKAE, Kocaeli, Turkey, ademz@uekae.tubitak.gov.tr); Tuna Tugcu (Bogazici University, Istanbul, Turkey, tugcu@boun.edu.tr) ABSTRACT
More informationApplying 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 informationObject-Oriented Design
Object-Oriented Design Lecture 20 GoF Design Patterns Behavioral Department of Computer Engineering Sharif University of Technology 1 GoF Behavioral Patterns Class Class Interpreter: Given a language,
More informationDesign Patterns. SE3A04 Tutorial. Jason Jaskolka
SE3A04 Tutorial Jason Jaskolka Department of Computing and Software Faculty of Engineering McMaster University Hamilton, Ontario, Canada jaskolj@mcmaster.ca November 18/19, 2014 Jason Jaskolka 1 / 35 1
More informationCrash course on design patterns
Crash course on design patterns Yann-Gaël Guéhéneuc guehene@emn.fr From Olivier Motelet s course (2001/10/17) École des Mines de Nantes, France Object Technology International, Inc., Canada Design patterns
More informationApplying the Factory Method Design Pattern
Applying the Factory Method 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
More informationProduced 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 informationA Rapid Overview of UML
A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system
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 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 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 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 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 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 informationbe used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate
UNIT 4 GRASP GRASP: Designing objects with responsibilities Creator Information expert Low Coupling Controller High Cohesion Designing for visibility - Applying GoF design patterns adapter, singleton,
More informationApplying Design Patterns to SCA Implementations
Applying Design Patterns to SCA Implementations Adem ZUMBUL (TUBITAK-UEKAE, ademz@uekae.tubitak.gov.tr) Tuna TUGCU (Bogazici University, tugcu@boun.edu.tr) SDR Forum Technical Conference, 26-30 October
More informationA Primer on Design Patterns
A Primer on Design Patterns First Edition Rahul Batra This book is for sale at http://leanpub.com/aprimerondesignpatterns This version was published on 2016-03-23 This is a Leanpub book. Leanpub empowers
More informationSYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business
Contents i UNIT - I UNIT - II UNIT - III CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Software Reuse Success Factors. CHAPTER - 2 [REUSE-DRIVEN SOFTWARE ENGINEERING IS A BUSINESS] Reuse Driven Software
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 informationApplying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3
Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu Gang of Four (GoF) http://www.research.ibm.com/designpatterns/pubs/ddj-eip-award.htm
More informationUNIT I Introduction to Design Patterns
SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road 517583 QUESTION BANK (DESCRIPTIVE) Subject with Code : Design Patterns (16MC842) Year & Sem: III-MCA I-Sem Course : MCA Regulation:
More informationMore on Design. CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson
More on Design CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson Outline Additional Design-Related Topics Design Patterns Singleton Strategy Model View Controller Design by
More informationFoundations of Software Engineering Design Patterns -- Introduction
Foundations of Software Engineering Design Patterns -- Introduction Fall 2016 Department of Computer Science Ben-Gurion university Based on slides of: Nurit Gal-oz, Department of Computer Science Ben-Gurion
More informationLECTURE NOTES ON DESIGN PATTERNS MCA III YEAR, V SEMESTER (JNTUA-R09)
LECTURE NOTES ON DESIGN PATTERNS MCA III YEAR, V SEMESTER (JNTUA-R09) Mr. B KRISHNA MURTHI M.TECH, MISTE. Assistant Professor DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS CHADALAWADA RAMANAMMA ENGINEERING
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 informationDesign Patterns. "Gang of Four"* Design Patterns. "Gang of Four" Design Patterns. Design Pattern. CS 247: Software Engineering Principles
CS 247: Software Engineering Principles Design Patterns Reading: Freeman, Robson, Bates, Sierra, Head First Design Patterns, O'Reilly Media, Inc. 2004 Ch Strategy Pattern Ch 7 Adapter and Facade patterns
More informationCS 247: Software Engineering Principles. Design Patterns
CS 247: Software Engineering Principles Design Patterns Reading: Freeman, Robson, Bates, Sierra, Head First Design Patterns, O'Reilly Media, Inc. 2004 Ch 1 Strategy Pattern Ch 7 Adapter and Facade patterns
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 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 informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2018 Contents Basic Principles of Good Design Design Patterns Low Coupling High coupling
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 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 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 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 informationCoordination Patterns
Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch
More informationUNIT I Introduction to Design Patterns
SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road 517583 QUESTION BANK (DESCRIPTIVE) Subject with Code : Design Patterns(9F00505c) Year & Sem: III-MCA I-Sem Course : MCA Regulation:
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 informationadministrivia today UML start design patterns Tuesday, September 28, 2010
administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified
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 informationDESIGN PATTERNS DESIGN PATTERNS AND REUSABILITY
D DESIGN PATTERNS We do a lot of things in our daily lives according to certain patterns even though we may not be aware of it. For example, each working adult performs similar activities every working
More informationReuse at Design Level: Design Patterns
Reuse at Design Level: Design Patterns CS 617- Lecture 17 Mon. 17 March 2008 3:30-5:00 pm Rushikesh K. Joshi Department of Computer Sc. & Engg. Indian Institute of Technology, Bombay Mumbai - 400 076 Reuse
More informationA Reconnaissance on Design Patterns
A Reconnaissance on Design Patterns M.Chaithanya Varma Student of computer science engineering, Sree Vidhyanikethan Engineering college, Tirupati, India ABSTRACT: In past decade, design patterns have been
More informationReview Software Engineering October, 7, Adrian Iftene
Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)
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 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 informationWhy a Design Pattern. History of Design Pattern. Properties
Introduction to Design Patterns Nasreddine Aoumeur Why a Design Pattern Reusability: one of the basis for an efficient and actual SE discipline Helping new designers to have a more flexible and reusable
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 12: Componentization Agenda for today 3 Componentization Componentizability
More informationLecture 19: Introduction to Design Patterns
Lecture 19: Introduction to Design Patterns Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationChapter 12 (revised by JAS)
Chapter 12 (revised by JAS) Pattern-Based Design Slide Set to accompany Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman
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 informationPlan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?
Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going
More informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Template Method Pattern. George Blankenship
CSCI 253 Object Oriented Design: George Blankenship George Blankenship 1 Creational Patterns Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite Façade Proxy
More informationTDDB84. Lecture 2. fredag 6 september 13
TDDB84 Lecture 2 Yes, you can bring the books to the exam Creational Factory method Structural Decorator Behavioral LE2 Creational Abstract Factory Singleton Builder Structural Composite Proxy Bridge Adapter
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 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 information