ADTs. An ADT module is a module that exports a type, along with the operations needed to access and manipulate objects of that type.
|
|
- Julianna Baldwin
- 5 years ago
- Views:
Transcription
1 ADTs An ADT module is a module that exports a type, along with the operations needed to access and manipulate objects of that type. An ADT hides the representation of the type and the algorithms used in the operations. The details of the type is dealt with in the implementation of the ADT. Correspond to Java and C++ classes Concept may also be implemented by Ada private types and Modula-2 opaque types May add notational details to specify if certain built-in operations are available by default on instance objects of the ADT e.g., type A_TYPE:? (:=, =) indicates that assignment and equality check are available SFWR ENG 3KO4 Slide 1
2 Abstract data types (ADTs) A stack ADT: allows to have more than one instance of a stack module Define a type and its objects module STACK_HANDLER exports type STACK =?; indicates that details of the data structure are hidden to clients This is an abstract data -type module; the data structure is a secret hidden in the implementation part. procedure PUSH (S: in out STACK ; VAL: in integer); procedure POP (S: in out STACK ; VAL: out integer); function EMPTY (S: in STACK) : BOOLEAN;... end STACK_HANDLER SFWR ENG 3KO4 Slide 2
3 An example: simulation of a gas station module FIFO_CARS uses CARS exports type QUEUE :?; procedure ENQUEUE (Q: in out QUEUE ; C: in CARS); procedure DEQUEUE (Q: in out QUEUE ; C: out CARS); function IS_EMPTY (Q: in QUEUE) : BOOLEAN; function LENGTH (Q: in QUEUE) : NATURAL; procedure MERGE (Q1, Q2 : in QUEUE ; Q : out QUEUE); This is an abstract data-type module representing queues of cars, handled in a strict FIFO way; queues are not assignable or checkable for equality, since := and = are not exported. end FIFO_CARS Moduel Gas_Station uses FIFO_CARS gasoline_1, gasoline_2, gasoline_3: QUEUE car_wash: QUEUE; that_car: CARS; ENQUEUE (car_wash, that_car); MERGE (gasoline_1, gasoline_2, gasoline_3); end Gas_Station SFWR ENG 3KO4 Slide 3
4 Object-oriented design One kind of module ADT, called class A class exports operations (procedures) to manipulate instance objects often called methods Instance objects accessible via references SFWR ENG 3KO4 Slide 4
5 Syntactic changes in TDN No need to export opaque types; class name used to declare objects Instead of using the notation type X =? in the interface of some module Y to introduce the type s name, we let the client module to use the class name directly. In OO we write a:x to say object a is of class X and a is a reference to an instance object of the abstract data type implemented by class X. If a is a reference to an object of class X: a.op (parameters): means invocation of the operation op provided by the instance a of class X; SFWR ENG 3KO4 Slide 5
6 A further relation: inheritance ADTs may be organized in a hierarchy Class B may specialize class A B inherits from A Conversely, A generalizes B A is a superclass of B B is a subclass of A SFWR ENG 3KO4 Slide 6
7 An example class EMPLOYEE exports function FIRST_NAME(): string_of_char; function LAST_NAME(): string_of_char; function AGE(): natural; function WHERE(): SITE; function SALARY(): MONEY; procedure HIRE (FIRST_N: string_of_char; LAST_N: string_of_char; INIT_SALARY: MONEY); Initializes a new EMPLOYEE, assigning a new identifier. procedure FIRE(); procedure ASSIGN (S: SITE); An employee cannot be assigned to a SITE if already assigned to it (i.e., WHERE must be different from S). It is the clientʼs responsibility to ensure this. The effect is to delete the employee from those in WHERE, add the employee to those in S, generate a new id card with security code to access the site overnight, and update WHERE. end EMPLOYEE SFWR ENG 3KO4 Slide 7
8 class ADMINISTRATIVE_STAFF inherits EMPLOYEE exports procedure DO_THIS (F: FOLDER); This is an additional operation that is specific to administrators; other operations may also be added. end ADMINISTRATIVE_STAFF class TECHNICAL_STAFF inherits EMPLOYEE exports function GET_SKILL(): SKILL; procedure DEF_SKILL (SK: SKILL); These are additional operations that are specific to technicians; other operations may also be added. end TECHNICAL_STAFF SFWR ENG 3KO4 Slide 8
9 UML representation of inheritance EMPLOYEE ADMINISTRATIVE_STAFF TECHNICAL_STAFF SFWR ENG 3KO4 Slide 9
10 UML associations Associations are relations that the implementation is required to support Can have multiplicity constraints TECHNICAL _STAFF * 1 project_member PROJECT MANAGER 1 manages 1..* SFWR ENG 3KO4 Slide 10
11 Aggregation Defines a PART_OF relation Differs from IS_COMPOSED_OF Here TRIANGLE has its own methods It implicitly uses POINT to define its data attributes TRIANGLE 1 3 POINT SFWR ENG 3KO4 Slide 11
12 Inheritance A way of building software incrementally A subclass defines a subtype subtype is substitutable for parent type Polymorphism a: A a := obj B a := obj C ADMINISTRATIVE_STAFF EMPLOYEE a variable of type A can refer to an object of type B if B is a subclass of A B op(x,y) A At run-time a.op(x,y) is either from B or C TECHNICAL_STAFF C op(x,y) Dynamic binding the method invoked through a reference depends on the type of the object associated with the reference at runtime SFWR ENG 3KO4 Slide 12
13 How can inheritance be represented? We start introducing the UML notation UML (Unified Modeling Language) is a widely adopted standard notation for representing OO designs We introduce the UML class diagram classes are described by boxes SFWR ENG 3KO4 Slide 13
14 UML Modeling SFWR ENG 3KO4 Slide 14
15 UML Models SFWR ENG 3KO4 Slide 15
16 Ticket Selling Booth Use Case View SFWR ENG 3KO4 Slide 16
17 Ticket Selling Booth Class Diagram SFWR ENG 3KO4 Slide 17
18 Sequence Diagram SFWR ENG 3KO4 Slide 18
19 Component Diagram SFWR ENG 3KO4 Slide 19
20 Statechart diagram State machine view Shows the history of a ticket to a performance SFWR ENG 3KO4 Slide 20
21 Design Patterns SFWR ENG 3KO4 Slide 21
22 Design Pattern Christopher Alexander (1977, buildings / towns): Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way. At high-level design: Architectural Styles At low-level design: Design Patterns Encourages design reuse (intended for OO) Used as a means for transferring knowledge from experienced designers to novice designers SFWR ENG 3KO4 Slide 22
23 Design pattern definition Describe the design of objects and classes (can be modules) in a diagram that communicate with each other and are customized to solve a general design problem in a particular context. A pattern has four essential elements: Name: a handle we can use to describe a design problem, its solution, and consequences in a word or two. Finding a good name is the hardest part. Problem: describes when to apply the pattern; can be a specific design problem or a set of conditions to exist. Solution: describes the elements that make up the design, their relationships, responsibilities, and collaborations. Consequences: are the results and trade-offs applying the pattern. Its impact on system s flexibility, extensibility, or portability SFWR ENG 3KO4 Slide 23
24 MVC Pattern in Smalltalk MVC (Model / View / Controller) consists of: Model: the application program (object) View: its screen presentation Controller: defines the way the user interface reacts to user input, i.e., the user interaction (controller is not shown below) Views Model A = 30% B = 20% C = 50% Protocol for model & view interaction is: Subscribe Notify model SFWR ENG 3KO4 Slide 24
25 MVC Views are subscribed for specific Model Model notifies the views when its value changes Views communicate with model to access new values The problem that MVC addresses: Decoupling objects so that changes to one can affect any number of others without requiring the changed object to know details of the others. Observer design pattern. MVC: a control panel of buttons, ie, nested view: A design pattern that let us treat a composite view just like we treat one of its components. Composite design pattern. MVC: possible to change a view s controller at run-time Lets you change the way a view responds to user input without changing its visual presentation. Strategy design pattern SFWR ENG 3KO4 Slide 25
26 Organizing the Catalog NOT IN EXAM Purpose Creational Structural Behavioral Class Factory Method Interpreter Template Method Scope Object Chain Command Iterator Mediator Memento Observer State Strategy Visitor SFWR ENG 3KO4 Slide 26
27 Describing Design Patterns Pattern name and classification Conveys the essence of the pattern (Creatinal, Structural, Behavioral) Intent: short statement to answer: What particular design issue it addresses? What is its rationale? Also known as: other name for the pattern Motivation: A scenario that illustrates a design problem Applicability: In what situations the pattern applies? Structure: Graphical representation of the classes in OMT notation SFWR ENG 3KO4 Slide 27
28 Describing Design Patterns. Participants: Classes and their responsibilities Collaborations: Collaboration among participants Consequences: How does the pattern support its objectives? Implementation: Pitfalls, hints, techniques to be aware of when implementing Sample code: Code in C++, Smalltalk, Java to implement pattern Known uses: Examples of the pattern found in real systems in other domains. Related patterns SFWR ENG 3KO4 Slide 28
29 The Catalog of Design Pattern SFWR ENG 3KO4 Slide 29
30 The Catalog of Design Pattern NOT IN EXAM SFWR ENG 3KO4 Slide 30
31 The Catalog of Design Pattern NOT IN EXAM SFWR ENG 3KO4 Slide 31
32 The Catalog of Design Pattern NOT IN EXAM SFWR ENG 3KO4 Slide 32
33 Abstract Factory Design Pattern Intent: Provide an interface for creating families of related or dependent objects without specifying their concrete classes Motivation: A user-interface toolkit that supports multiple look-and-feel standards such as Motif and Open-window. A Kitchen-viewer software that allows the home owners to choose between two styles modern an antique for their wall and floor kitchencabinets and then view the kitchen. SFWR ENG 3KO4 Slide 33
34 Abstract Factory Pattern (Kitchen View Example) Wall cabinet Countertop Floor cabinet Provide an interface for creating families of related or dependent objects without specifying their concrete classes Example: a user-interface toolkit that supports multiple look-and-feel standards such as Motif and Open-window. Modern Classic Antique Modern Classic Antique SFWR ENG 3KO4 Slide 34
35 Kitchen viewer without Design Pattern Aggregation Kitchen contains a number of wall-cabinets and floor-cabinets Client renderkitchen() Implementation dependency Kitchen Specialization Wall cabinet can be ModernWallCabinet or AnticWallCabinet WallCabinet - Cabinet size, location - No. of knobs FloorCabinet ModernWallCabinet AnticWallCabinet ModernFloorCabinet AnticFloorCabinet - Style, color - Material: wood / metal SFWR ENG 3KO4 Slide 35
36 { { } // NO design pattern // Determine the style // Assume that the antique style was selected Rendering a Kitchen Without applying design pattern // Case statements to select antique or modern // Create the antique wall cabinet AntiqueWallCabinet antiquewallcabinet1 = new AntiqueWallCabinet () ; AntiqueWallCabinet antiquewallcabinet2 = new AntiqueWallCabinet ();.. //Create the antique floor cabinet AntiqueFloorcabinet antiquefloorcabinet1 = new AntiqueFloorCabinet (); //Create the kitchen object, assuming the existence of add() method Kitchen antiquekitchen = new Kitchen(); antiquekitchen.add ( antiquewallcabinet1, );. antiquekitchen.add ( antiquefloorcabinet1, );. // Render antiquekitchen //Create the modern wall cabinet Concrete class SFWR ENG 3KO4 Slide 36
37 Inheritance A way of building software incrementally A subclass defines a subtype subtype is substitutable for parent type Polymorphism a: A a := obj B a := obj C ADMINISTRATIVE_STAFF EMPLOYEE a variable of type A can refer to an object of type B if B is a subclass of A B op(x,y) A At run-time a.op(x,y) is either from B or C TECHNICAL_STAFF C op(x,y) Dynamic binding the method that is selected (invoked) through a referencevariable (e.g., a above) depends on the type (class) of the object associated with the reference at runtime SFWR ENG 3KO4 Slide 37
38 Abstract Factory Design Pattern idea Applied to KitchenView Different implementations for getfloorcabinet() KitchenStyle getwallcabinet() getfloorcabinet() WallCabinet FloorCabinet ModernKStyle WallCabinet getwallcabinet() FloorCabinet getfloorcabinet() AnticWallCabinet At RUN TIME: mystyle can be: ModernKStyle or AntiqueKStyle AntiqueKStyle WallCabinet getwallcabinet() FloorCabinet getfloorcabinet() AnticFloorCabinet SFWR ENG 3KO4 Slide 38
39 Abstract Factory Design Pattern Applied to KitchenView Client renderkitchen( KitchenStyle ) KitchenStyle getwallcabinet() getfloorcabinet() Kitchen getwallcabinet() getfloorcabinet() WallCabinet FloorCabinet ModernKStyle getwallcabinet() getfloorcabinet() AntiqueKStyle getwallcabinet() getfloorcabinet() ModernWallCabinet AnticWallCabinet ModernFloorCabinet AnticFloorCabinet SFWR ENG 3KO4 Slide 39
40 Code for method: renderkitchen(kitchenstyle mystyle) //Determine style by instantiating my Style of type KitchenStyle to be either // ModernKStyle or AnticKStyle (Polymorphism) IF: // Create the wall cabinets: Type determined by the calss of mystyle (dynamic bind) WallCabinet wallcabinet_1 = mystyle.getwallcabinet ();.. AnticWallCabinet ModernWallCabinet //Create the floor cabinet: Type determined by the class of mystyle FloorCabinet floorcabinet_1 = mystyle.getfloorcabinet ().. AnticFloorCabinet ModernFloorCabinet //Create the kitchen object (in the style required) Kitchen kitchen = new Kitchen (); //Antic/Modern WallCabinet is returned Kitchen.add ( wallcabinet_1,.); Kitchen.add ( wallcabinet_2,.);. //Antic/Modern FloorCabinet is returned Kitchen.add (floorcabinet_1, ); Kitchen.add (floorcabinet_2, ); AnticKStyle ModernKStyle chosen SFWR ENG 3KO4 Slide 40
41 Adapter Design Pattern Intent: Convert the interface of a class into another interface that the clients expect. Motivation: We want to use the functionality provided by a service application, e.g., an existing financial application. We want to modify our client application as little as possible We want to be able to easily switch to alternative implementations of the service application, to achieve: performance, efficiency, or reliability. Example: an existing financial application computes the principal and interest money obtained from investing a given amount of money for a given number of years in a special type of investment SFWR ENG 3KO4 Slide 41
42 Adapter Class Model AbstractClass clientnameforrequiredmethod() RequiredClass requiredmethod() Client adaptee Adapter clientnameforrequiredmethod() { adaptee.requiredmethod (); } :Client :AbstractClass clientnameforrequiredmethod() :Adapter requiredmethod() adaptee :RequiredClass Sequence Diagram for Adapter SFWR ENG 3KO4 Slide 42
43 Example of Adapter: Financial application New application: Legacy application: amount (float originalamount, float numyears, float intrate) computevalue (float years, float interest, float amount) Application Adaptation Legacy system Financial amount() Principal computevalue() Client FinancialAdapter amount() legacyadaptee { legacyadaptee.computevalue (); } SFWR ENG 3KO4 Slide 43
44 Implementation Class FinancialAdapter extends Financial { principal legacyadaptee = null; // Constructors go here... /** This method uses the legacy computevalue() method */ float amount ( float originalamount, float unmyears, float intrate) { return legacyadaptee. computevalue ( originalamount, numyears, intrate); }} The client could be written with a method parameterizing Financial such as: Void executefinancialapplicatioin ( Financial afinancial); It could then be executed with the following setup statement: executefinanceapplication ( new FinancialAdapter () ); All calls to the amount () method of Financial are passed to the legacy method computevalue(). SFWR ENG 3KO4 Slide 44
45 Adapter and Java API Java listeners as adapters: ActionListner Result of button press MyButton addactionlistener () MyClass mymethod () Adaptation MyListner acionperformed () SFWR ENG 3KO4 Slide 45
46 Comments on Adapter Instead of aggregating requiredclass in Slide 16 we could inherit from it, as long as the language supports multiple-inheritance Adapter is often used when we create an application using library classes, but where we want to retain the flexibility to select alternative library classes. SFWR ENG 3KO4 Slide 46
CS427a: Object-Oriented Programming Design Patterns for Flexible and Reusable design
CS427a: Object-Oriented Programming Design Patterns for Flexible and Reusable design Michael J. Fischer (from slides by Y. Richard Yang) Lecture 20 November 16, 2010 Reusability, Flexibility, and Maintainability
More informationUML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc.
UML Modeling UML diagrams UML (Unified Modeling Language) is a general purpose visual modeling language that provides different types of diagrammatic techniques and notations to specify, visualize, analyze,
More informationCS427a: Object-Oriented Programming Design Patterns for Flexible and Reusable design
CS427a: Object-Oriented Programming Design Patterns for Flexible and Reusable design Michael J. Fischer (from slides by Y. Richard Yang) Lecture 23b November 29, 2011 Example: Duck Game A startup produces
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 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 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 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 informationChapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.
Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures
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 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 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 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 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 informationAdapter Pattern Structural
Adapter Pattern Structural Intent» Convert the interface of a class into a different interface that a client expects.» Lets classes work together that otherwise could not Adapter-1 Class Adapter Motivation
More informationObject-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1
Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations
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 informationComputer Programming II C++ (830)
DESCRIPTION This is an advanced course in computer programming/software engineering and applications. It reviews and builds on the concepts introduced in CP I. It introduces students to dynamic data structures,
More informationObject Oriented Paradigm
Object Oriented Paradigm Ming-Hwa Wang, Ph.D. Department of Computer Engineering Santa Clara University Object Oriented Paradigm/Programming (OOP) similar to Lego, which kids build new toys from assembling
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 informationConcepts of Programming Languages
Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages
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 informationComputer Programming II Python
EXAM INFORMATION Items 32 Points 33 Prerequisites SECONDARY MATH I COMPUTER PROGRAMMING I Grade Level 10-12 Course Length ONE YEAR DESCRIPTION This is an advanced course in computer programming/software
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 informationWhat is a Pattern? Lecture 40: Design Patterns. Elements of Design Patterns. What are design patterns?
What is a Pattern? Lecture 40: Design Patterns CS 62 Fall 2017 Kim Bruce & Alexandra Papoutsaki "Each pattern describes a problem which occurs over and over again in our environment, and then describes
More informationDesign and Software Architecture. Ch. 4 1
Design and Software Architecture Ch. 4 1 Outline What is design How can a system be decomposed into modules What is a module s interface What are the main relationships among modules Software design techniques
More informationProgramming Languages 2nd edition Tucker and Noonan"
Programming Languages 2nd edition Tucker and Noonan" Chapter 13 Object-Oriented Programming I am surprised that ancient and Modern writers have not attributed greater importance to the laws of inheritance..."
More informationINSTITUTE OF AERONAUTICAL ENGINEERING
INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 0 COMPUTER SCIENCE AND ENGINEERING TUTORIAL QUESTION BANK Course Name : DESIGN PATTERNS Course Code : A7050 Class : IV B. Tech
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 informationLecture Notes on Programming Languages
Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered
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 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 informationExam in TDDB84: Design Patterns,
Exam in TDDB84: Design Patterns, 2014-10-24 14-18 Information Observe the following, or risk subtraction of points: 1) Write only the answer to one task on one sheet. Use only the front side of the sheets
More informationUnit Wise Questions. Unit-1 Concepts
Unit Wise Questions Unit-1 Concepts Q1. What is UML? Ans. Unified Modelling Language. It is a Industry standard graphical language for modelling and hence visualizing a blue print of all the aspects of
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 informationCMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation
More informationChapter 1: Object-Oriented Programming Using C++
Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms
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 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 informationInheritance. Transitivity
Inheritance Classes can be organized in a hierarchical structure based on the concept of inheritance Inheritance The property that instances of a sub-class can access both data and behavior associated
More informationDesign Patterns. Comp2110 Software Design. Department of Computer Science Australian National University. Second Semester
Design Patterns Comp2110 Software Design Department of Computer Science Australian National University Second Semester 2005 1 Design Pattern Space Creational patterns Deal with initializing and configuring
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 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 informationSoftware Engineering Prof. Rushikesh K.Joshi IIT Bombay Lecture-15 Design Patterns
Software Engineering Prof. Rushikesh K.Joshi IIT Bombay Lecture-15 Design Patterns Today we are going to talk about an important aspect of design that is reusability of design. How much our old design
More 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 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 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 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 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 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 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 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 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 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 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 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 informationDesign Patterns IV Structural Design Patterns, 1
Structural Design Patterns, 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Class Object Department of Computer Science The Australian National University 18.1 1 2 Class Object
More informationEXAM Microsoft MTA Software Development Fundamentals. Buy Full Product.
Microsoft EXAM - 98-361 Microsoft MTA Software Development Fundamentals Buy Full Product http://www.examskey.com/98-361.html Examskey Microsoft 98-361 exam demo product is here for you to test the quality
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 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 informationChapter 1. OO e OO. (Pattern) Alexander) (context) (elements) k. (issue) Š. (name) (classification)
Chapter 1 OO OO l s ( )l s( ƒ n n m² OO Œ ž OO k ž OO Œ n (Pattern) k ps ½ s x n k w wyÿ i OO wk n Ÿ Äwy ½ x wž yy? Pattrn (core) ƒ n y (Christopher Alexander) l ƒ gp (context) (elements) k k (cosequences)
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationDesign Patterns Design patterns advantages:
Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity
More informationSoftware Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015
Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/03/2015 http://cs.gsu.edu/~ncasturi1 Object Design Software Engineering -CSC4350/6350 - Rao Casturi 2 Object Design Close
More informationObject-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 informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More informationCOURSE 2 DESIGN PATTERNS
COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract
More informationInheritance and Polymorphism
Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg
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 informationDevelopment and Implementation of Workshop Management System Application to Explore Combing Multiple Design Patterns
St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 5-2015 Development
More informationAn Introduction to Object Orientation
An Introduction to Object Orientation Rushikesh K Joshi Indian Institute of Technology Bombay rkj@cse.iitb.ac.in A talk given at Islampur Abstractions in Programming Control Abstractions Functions, function
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 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 informationData Abstraction. Hwansoo Han
Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed
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 informationWork groups meeting 3
Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS
More informationSOFTWARE ENGINEERING SOFTWARE DESIGN. Saulius Ragaišis.
SOFTWARE ENGINEERING SOFTWARE DESIGN Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Design Learning Objectives: Discuss the properties of good software design including the nature and
More informationDesign Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns
Structural Design Patterns, 1 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 2 3 Department of Computer Science The Australian National University 4 18.1 18.2 GoF Structural
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 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 informationChapter 8 Structural Design Patterns. Software Architecture Structural Design Patterns 1
Chapter 8 Structural Design Patterns 1 Facade Design Purpose Provide an interface to a package of classes Design Pattern Summary Define a singleton which is the sole means for obtaining functionality from
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 informationContents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance
Contents Topic 04 - Inheritance I. Classes, Superclasses, and Subclasses - Inheritance Hierarchies Controlling Access to Members (public, no modifier, private, protected) Calling constructors of superclass
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 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 information1 of 27 9/27/2001 5:34 PM
Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. You must find pertinent objects, factor them into classes at the right granularity, define class
More informationSoftware Service Engineering
Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language
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 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 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 informationSOFTWARE DESIGN COSC 4353 / Dr. Raj Singh
SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a
More informationObject-Oriented Concepts and Principles (Adapted from Dr. Osman Balci)
Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Sung Hee Park Department of Mathematics and Computer Science Virginia State University September 18, 2012 The Object-Oriented Paradigm
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 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 informationCPS 506 Comparative Programming Languages. Programming Language
CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support
More informationObject Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia
Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing
More informationDesign Patterns. CSE870: Advanced Software Engineering (Design Patterns): Cheng
Design Patterns Acknowledgements Materials based on a number of sources D. Levine and D. Schmidt. Helm Gamma et al S. Konrad Motivation Developing software is hard Designing reusable software is more challenging
More informationDesign Patterns: Elements of Reusable Object Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Design Patterns: Elements of Reusable Object Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Introduction Designing object-oriented software is hard, and designing reusable objectoriented
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 informationDesign Patterns! Acknowledgements!
Design Patterns! Acknowledgements! Materials based on a number of sources! D. Levine and D. Schmidt!. Helm! Gamma et al! S. Konrad! (Cheng) 1 Motivation! Developing software is hard! Designing reusable
More information