Information systems modelling UML and service description languages
|
|
- Oliver Caldwell
- 5 years ago
- Views:
Transcription
1 Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages
2 Overview of design patterns for supporting information systems modelling Gamma E., Helm R., Johnson R., Vlissides J., Design PATTERNS: Elements of reusable object-oriented software. 1. Introduction 2. Identification of design patterns 3. Review of design patterns 3.1. Creational patterns 3.2. Structural patterns 3.3. Behavioral patterns
3 Overview of design patterns for supporting information systems modelling Gamma E., Helm R., Johnson R., Vlissides J., Design PATTERNS: Elements of 1. Introduction reusable object-oriented software.
4 Introduction (1.1) - Assumption The information system is needed for: a large number of users, huge size of executing data and vast amounts of execututed services.
5 Introduction (1.2) - Solution Multitier information system + each tier built of design ` patterns Scalab ility Performance Complexity; 1. completeness of abstraction 2. reusability 3. testability 4. understandability 5. maintainability Quality of software
6 Introduction (1.3) Each tier of software is specialized in the implementation of sub-services used to implement the full functionality of the system. Scalability is a property of a system, which indicates its ability either to handle growing amounts of work or to become enlarged - it can add resources such as buffers with data and instances of services. Program performance is defined by a number of units of input data (data size), which in due time, the program manages to transform into units of output (data).
7 Introduction (2.1) Generally, the use of design patterns supports the creation of high-quality software in an efficient manner. A pattern must be always programmed into each application that uses it. A pattern must be always programmed into each application that uses it. It is not a step backward from the software reuse - because of transformation and implementation of design patterns into the functionaloriented reusable components.
8 Introduction (2.2) Design patterns can be improved by making refactoring based on transforming some micro-architectures onto functionality equivalent ones. Therefore they prevent of reducing the scalability, performance or quality of software. This way of the software development is better than based on designs without taking into account the context of using of them. The use of design patterns improves the management of software development.
9 Introduction (2.3) Developers should have the knowledge of techniques based on design patterns which are used in object-oriented analysis, design and programming for building object oriented multi-tiers software based on design patterns of Client, Web, Business and Enterprise information system tiers. This follows from the fact that design patterns are composed of several sections: on the one side, there is the classification based on the Structure, Creational, and Behavioural sections on the other side there is classification supporting design and implementation of the multi-tier software such as Presentation, Business and Integration Patterns.
10 Overview of design patterns for supporting information systems modelling Gamma E., Helm R., Johnson R., Vlissides J., Design PATTERNS: Elements of 1. Introduction reusable object-oriented software. 2. Identification of design patterns
11 Identification of design patterns (1) A well-built object system is full of object-oriented patterns A pattern is usually adopted to solve a typical problem in the given context A structure of a design pattern is represented in the form of a class diagram The pattern behaviour is shown by means of a sequence diagram A design pattern represents the relationship between a problem and its solutions (according to G. Booch, J. Rumbaugh, I. Jacobson, UML User's Guide)
12 Identification of design patterns (2) Each pattern consists of three parts, which express the relationship between a particular context, problem and solution (based on Christopher Alexander) Each design pattern is a three-part rule that expresses the relationship between a particular context, a recurrent distribution of forces in this context, and software configuration, allowing for the mutual balancing of these forces in order to solve the task (based by Richar Gabriel) A design pattern is an idea that proved to be useful in a real context and will probably be useful in another (Martin Fowler)
13 Identification of design patterns (3) As one kind of classification there are three types of design patterns: creational, structural and behavioural. They are based on concepts of: aggregation, inheritance, encapsulation, interface polymorphism paradigms of object- oriented methodology in structure and behaviour of software.
14 Identification of design patterns (4) Each pattern is described by using the following template: A solved problem, A solution of problem with description of components of pattern, A client of pattern, A result.
15 Overview of design patterns for supporting information systems modelling Gamma E., Helm R., Johnson R., Vlissides J., Design PATTERNS: Elements of 1. Introduction reusable object-oriented software. 2. Identification of design patterns 3. Review of design patterns
16 Review of design patterns 1. Creational patterns 2. Structural patterns 3. Behavioral patterns
17 Overview of design patterns for supporting information systems modelling Gamma E., Helm R., Johnson R., Vlissides J., Design PATTERNS: Elements of reusable object-oriented software. 1. Introduction 2. Identification of design patterns 3. Review of design patterns 3.1. Creational patterns
18 Creational patterns A main goal: Isolation of the rules for creating objects from the rules that determine how the use of these objects (separation of the code for creating objects from the code that uses them) A list of creational patterns: Design pattern 1)Abstract Factory 2)Builder 3)Factory Method 4)Prototype 5)Singleton The aspect, which can change The family of objects The way of creating the complex object The subclass of the created object The class of the created object Only one copy of the class
19 Creational patterns Related patterns Design pattern Creational Patterns Structural Patterns 1)Abstract Factory 2)Builder Factory Method, Singleton Abstract Factory, Prototype Composite, Behavioral Patterns 3)Factory Method Abstract Factory Template Method 4)Prototype Abstract Factory, Composite, Decorator 5)Singleton Abstract Factory, Builder, Prototype
20 Abstract Factory (1) Problem: Creating the appropriate families of related or dependent objects in the following cases: different operating systems, different requirements for effectiveness, efficiency, etc. various versions different types of co-applications (such as different types of databases) different functionality for different users different groups of elements depending on the settings related to the location (e.g. data format)
21 Abstract Factory (2)
22 Abstract Factory (3)
23 Abstract Factory (4) Solution: A Client object uses the AbstractFactory interface and AbstractProduct interface. ConcreteProduct and ConcreteFactory are classes that implement these interfaces. Each ConcreteFactory object can create one of the families of ConcreteProduct objects. Main client: The Client object manages creation of objects by the factory, but it is independent of the rules on creation of these objects Result: Isolation of the rules for creating objects from the rules that determine how the use of objects Definitions of rules to create objects that can best achieve the main goals of the application Configuring applications using associated objects The system uses created objects, knowing their base classes
24 Builder (1) Problem: Creating complex custom objects represented in different ways Solution: A Director object has a request to a ConcreteBuilder object that implements a Builder interface for creating the Product object Client: A Client instructs the Director object to create the Product object by using the supplied ConcreteBuilder object.
25 Builder (2) This does not affect the client code, because of converting abilities of ConcreteBuilder objects. the ASCII format document represented by the Products objects ASCII converter from the documents of the RTF or the XML formats
26 Builder (3)
27 Result: Builder (4) Director objects receive the Builder abstract interface, that allows you to freely construct Product objects. Separating the code used to construct Product objects from the code for using these objects. The algorithm to build a Product object is created independently of its components that may be of any type. Better control of the construction of the Product object by using operations, implemented through an Builder interface by the ConcreteBuilder object and controlled by the Director object.
28 Overview of design patterns for supporting information systems modelling Gamma E., Helm R., Johnson R., Vlissides J., Design PATTERNS: Elements of reusable object-oriented software. 1. Introduction 2. Identification of design patterns 3. Review of design patterns 3.1. Creational patterns 3.2. Structural patterns
29 Structural patterns The main goal: Grouping classes and objects into larger structures Class design pattern: use of inheritance and polymorphism to make structures of interfaces and their implementations Object design pattern: describe a way how to combine objects in order to obtain a new functionality, even during program execution. List of the structural patterns The aspect, which can change 1)Adapter - class and object design pattern 2)Bridge - object design pattern 3)Composite - object design pattern The interface of an object The implementation of the object The structure and the scheme of the object 4) Decorator - object design pattern The obligation of the object without defining its subclass 5) Facade - object design pattern The interface of a subsystem 6) Flyweight - object design pattern The cost of storing objects 7)Proxy -- object design pattern The way of an access to the object; its location
30 Structural patterns Related patterns List of the structural patterns Other structural patterns Behavioral patterns Creational pattens 1)Adapter - class and object design pattern Bridge, Decorator, Proxy 2)Bridge - object design pattern Adapter Abstract Factory, 3)Composite - object design pattern Decorator, Flyweight Chain of Responsibility, Iterator, Visitor 4) Decorator - object design pattern 5) Facade - object design pattern 6) Flyweight - object design pattern 7)Proxy - object design pattern Adapter, Composite, Strategy Abstract Factory Mediator Singleton Composite Adapter, Decorator, State, Strategy
31 Bridge (1) Problem: You should separate the abstract from the implementation, so that they can change independently of one another Solution: The RedefineAbstraction objects have methods that use the methods of the Implementor abstract class (or an interface), which are implemented by specific ConcreteImplementor classes, cooperating with various classes (with different interfaces) from a variety of platforms and libraries. Client: The client uniformly treats each RedefineAbstraction object without committing to a specific platform or a library.
32 Bridge (2)
33 Example
34 Bridge (5)
35 Bridge (2) Result: The separation of abstraction from implementation, eliminating dependencies while compiling a program or activity, Introduction of multitiered architecture Extensibility of class hierarchies of the Abstraction and Implementor Easy addition of new objects Hiding implementation details of the implementation
36 Composite (1) Problem: It combines objects in object-oriented data structures (tree) as a part-whole. Solution: The Component abstract class (or an interface) declares the basic operations for graphical objects. The Composite object contains the two sets of objects: the other Composite objects and the Leaf objects, which do not contain any object. The Leaf objects they implement the Component class. Client: Client object uniformly treats each element of the object structure - as objects of Component type
37 Composite (2)
38 Composite (3)
39 Composite (3) Object diagram of Composite (1)
40 Client Composite (4) Composite Object diagram of Composite (2) Leaf
41 Composite (6) Result: Recursive grouping on primary (Leaf-type) and complex objects (Composite) A simple construction of a client who does not need to distinguish between primary and complex objects One can easily add new facilities The difficulty in maintaining restrictions on the construction of complex objects Implementation: a new class of "Boundry" such as Swing package classes The JComponent class represents the Component class, The JButton class represents the Leaf class and the The JPanel class represents the Composite class.
42 Decorator (1) Problem: Dynamic functionality development of the facility as an alternative to creating a hierarchy of classes. Solution: A Component is an abstract class (or an interface) for visual objects. Its interface defines the operations of drawing and event handling implemented by the class ConcreteComponent. The Decorator abstract class (or an interface) inherits operations from the Component class (or an interface) and defines additional operations performed by the ConcreteDecorator object. Client: The object executes along with objects inherited from the Component class, with decorators and without decorators.
43 Decorator (2)
44 public void draw() { document = new Document(); Footnote footnote = new Footnote(document); PageNumbering page_numbering = new PageNumbering(footnote); page_numbering.draw(); } run: Document Footnote Page Numbering BUILD SUCCESSFUL (total time: 0 seconds)
45 Decorator (4)
46 Decorator (5)
47 Decorator (6) Result: the dynamic and transparent solution to add additional components to the basic components Easy removal of an additional functionality. Replacement of class hierarchy containing the equivalent functionality on a permanent basis, by dynamically adding the decorators with different functionalities Implementation: a new class of "Boundry" such as Swing Package class, a library classes of Java Server Faces components
48 Facade (1) Problem: grant access only to selected functions of the system tier Solution: It is an interface or interfaces of the system tier - facades provide the several methods for selected groups of subsystems Client: only receives the necessary methods Result: Release of important methods only, for example, a tier of the system use cases and hides classes of the system tier. The facade may prevent access to all methods of the encapsulated class.
49 Facade (2) Client 1 Class_A Class_1 Client 1 facade A Class_A Class_1 Client 2 Class_B Class_2 Client 2 Class_B Class_2 Client 3 Class_C Class_3 Client 3 facade B Class_C Class_3 Layer 1 Layer 2 Layer 1 Layer 2
50 Flyweight (1) Problem: A repeated use of the same object - to share objects Solution: The Flyweight interface declares the methods which are implemented by ConcreteFlyweight objects (shared use) and UnsharedConcreteFlyweight object (used once) used by client applications. Flyweight objects are created and managed by the FlyweightFactory object. Client: Clients keep references to flyweight objects
51 Flyweight (2) 1..* 1..*
52 Facade Client Flyweight Client Flyweight
53 Flyweight (4), Facade (4)
54 Flyweight (5)
55 Flyweight (6) Result: Memory savings by sharing facilities, namely the flyweight objects Implementation: a new class of "Boundry" or "Entity", e.g. reference the same object from a family of TProduct1 objects (flyweight) may be stored in many objects such as the TItem (client); Object references of the TPromotion object (flyweight) may be kept by the one of the objects from the family of TProduct1 objects (client)
56 Proxy (1) Problem: The representation of one object to control access to the other one. Solution: A Proxy object stores a reference to the actual object of the RealObject object and may replace the RealObject object The Proxy object may be a remote object, referring to the RealObject object, or provides the virtual access to the object by buffering the RealObject object, or prevents the access to the RealObject object by unauthenticated objects. Client: Any object of any tier of the multitiered systems.
57 Proxy (2)
58 Example Proxy (2)
59 Proxy (4)
60 Result: Proxy (5) The remote Proxy object can hide RealObject objects in any address space Virtual Proxy object improves performance by caching data of the RealObject object and limits unnecessary operations on the RealObject object such as modifications of file records The Proxy object provides the security, because it can authorize or prohibit access to RealObject objects
61 Overview of design patterns for supporting information systems modelling Gamma E., Helm R., Johnson R., Vlissides J., Design PATTERNS: Elements of reusable object-oriented software. 1. Introduction 2. Identification of design patterns 3. Review of design patterns 3.1. Creational patterns 3.2. Structural patterns 3.3. Behavioral patterns
62 Behavioral patterns The main goal: Allocating algorithms and obligations to objects, covering the patterns of objects and classes, and communication between objects The list of behavioral patterns 1)Chain of Responsibility 2)Command 3)Interpreter 4)Iterator 5)Mediator 6)Memento 7)Observer 8)State 9)Strategy 10)Visitor 11)Template Method The aspect, which can change The object, which can achieve a request The condition and the way of realization of a request The grammar and the interpretation of a language The way of the access and walking through elements of an aggregate Why and which objects influence one another? Which and when private informations are stored outside the object The number of objects, which are dependent on other objects and how dependent objects keep the actual state The state of objects The algorithm Operations, which can be applied to objects without changing their classes Steps of the algorithm
63 Behavioral patterns Related patterns The list of behavioral patterns Structural paterns Creational patterns Other behavioral patterns 1)Chain of Responsibility Composite 2)Command Composite, Prototype Memento 3)Interpreter Composite, Flyweight Iterator, Visitor 4)Iterator Composite Factory Method Memento 5)Mediator Facade Observer 6)Memento 7)Observer Singleton Mediator 8)State Flyweight Singleton 9)Strategy Flyweight Command, Iterator 10)Visitor Composite Interpreter 11)Template Method Factory Method Strategy
64 Chain of Responsibility (1) Problem: The pattern creates a chain of receiving objects and passes the request along a chain of objects, until any of objects can handle it. Solution: Handler interface declares a service of demands and possibly the reference to the successor. The ConcreteHandler object responsible for requests, which are detected and supported. Client: generates and directs requests to the list of ConcreteHandler objects Result: The object to be handled and the ConcreteHandler objects haven't explicit knowledge about themself and do not necessarily know the structure of the chain. A chain of commitments increases flexibility in allocating service requests by changing the subclasses of objects and structures of objects chain - but no guarantee of receiving a request. Implementation: Use for the event handlers
65 Chain of Responsibility (2)
66 Chain of Responsibility (2) alt alt
67 Interpreter (1) Problem: A definition of a representation for the grammar of the given language and an interpreter of sentences written in a language-defined by the grammar Solution: The Context object contains global information for the interpreter. The Client object gets the built AbstractSyntax tree representing sentences of the language and calls its interpret method - a tree made up of the TerminalExpression and NonterminalExpression objects, which implement the AbstractExpression interface.
68 Interpreter (2)
69
70 Interpreter (4) Example: TerminalExpression = {-6, -2, 1, 5, x, y}, NonterminalExpression = {S, A, AN, B, N}, and rules of BNF notation: <S> ::= <AN><AN> <AN> ::= <A><N> <B><N> <N> ::= x y <A> ::= 1-2 <B> ::= 5-6 A AN S N B AN N Expression: ((1+x)+(-6+y)) 1 x -6 y
71 Interpreter (5) Client: The Client object builds or gets a syntax tree, and starts the process of interpretation of the sentence represented by a tree Result: Easy modification of the grammar Easy to implement different grammar Difficulties to handle a complex grammar - each class represents at least one production rule Adding new ways of the interpreting the expression by the modifications of the classes.
72 Mediator (1) Problem: The pattern allows you to limit the links between objects that interact in complex ways and allows you to change the way they communicate. Solution: The Mediator declares an interface in the agreement of the Colleague interface, so every ConcreteColleague object knows the operations of the ConcreteMediator object - each ConcreteColleague object need not communicate with another ConcreteColleaque object, but with an ConcreteMediator object; the ConcreteMediator object coordinates cooperation of many ConcreteColleague objects. The ConcreteColleague objects send requests to the ConcreteMediator object, then the ConcreteMediator object sends these requests to the appropriate ConcreteColleague objects.
73 Mediator (2)
74 Mediator (3)
75 Mediator (4) Result: The ConcreteMediator object focuses behaviour that would otherwise be placed in many ConcreteColleague objects You can combine different type of property of objects such the ConcreteClleague and ConcreteMediator Simplification of protocols to communicate through one-to-many associations between the objects such the ConcreteMediator and ConcreteColleague, replacing many of the objects derived from many ConcreteColleague objects. The generalization of the cooperation between objects, which implement the Colleague interface by the Mediator interface The functionality of the objects, which implement the Mediator interface, can lead to very complex implementations, which will be difficult to maintain
76 Observer (1) Problem: Define the one-to-many relationship between objects - when one object changes state, all dependent objects are automatically notified and updated Solution: The ConcreteSubject objects know its observers and hold the state which is interesting for ConcreteObserver objects - when they change their status, notify the observers (Observer interface) by the update method. The ConcreteObserver object has a reference to the ConcreteSubject object and holds the state, which must be consistent with the state of the observed ConcreteSubject object Result: Abstract relationship between objects such as the ConcreteSubject and ConcreteObserver objects Support for sending messages - the ConcreteSubject objects send the notification without knowing the recipient Unexpected upgrade - due to the fact that observers do not know about the existence of other observers
77 Observer (2)
78 Observer (3)
79 State (1) Problem: You can change the behaviour of an object when you change the inner state of this object by forming its derivative object. Solution: The Context object defines an interface for clients and maintains the ConcreteState object. The State interface declares the interface associated with the state of the Context object. The ConcreteState objects represent the complete behaviour associated with the state of the Context object. Client: The object, which configures the ConcreteState objects by using the Context object Result: The location in one object, which implements the State interface, all functionality, and diversification of behaviour which depends on the change of the state in the derived classes. These classses acquire all the functionality. Each derivative object implements a new standalone functionality, which improves the visibility of transitions between states Sharing objects such ConcreteState objects, because their states are represented by their types.
80 State (2) State TCP TCP Connection TCP Accept TCP Close
81 State (3)
82 Strategy (1) Problem: A selection of different business rules or algorithms for different versions depending on the context Solution: It selects a version of the algorithm which separates from its implementation Result: Definition of a family of algorithms Definition of a Strategy interface which contains a method providing algorithms and methods in a Context class which uses these algorithms Elimination of manual selection or a conditional choices of algorithm of the strategy by introducing a mechanism of polymorphism Client: The decision to implement strategies and context of the objects is taken by the owner of these objects
83 Strategy (2)
84 Strategy (2)
Information systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Overviewof designpatternsfor supporting information systems modelling
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 2 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Structural patterns Part 2 Decorator Intent: It attaches additional responsibilities
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 informationAppendix-A. A.1 Catalogues of Design Patterns. Below is the definition for each design pattern using the FINDER notation, followed
A Appendix-A A.1 Catalogues of Design Patterns Below is the definition for each design pattern using the FINDER notation, followed by a description of the rules. These definitions have been created using
More informationDesign patterns generic models
Design patterns generic models Jyothish Maniyath CDC Software India Pvt Ltd 6 th Floor, Canberra Block, UB City, #24 Vittal Mallya Road, Bangalore, India +91 94482 46718 jyosh@maniyath.com ABSTRACT This
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 informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationDesign 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 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 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 informationLast Lecture. Lecture 26: Design Patterns (part 2) State. Goals of Lecture. Design Patterns
Lecture 26: Design Patterns (part 2) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Last Lecture Design Patterns Background and Core Concepts Examples Singleton,
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 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 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 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 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 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 informationA Novel Approach to Automated Design Pattern Detection
A Novel Approach to Automated Design Pattern Detection Nikolaos Tsantalis, Alexander Chatzigeorgiou, Spyros T. Halkidis and George Stephanides Department of Applied Informatics, University of Macedonia,
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 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 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 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 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 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 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 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 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 informationCOSC 3351 Software Design. Design Patterns Behavioral Patterns (I)
COSC 3351 Software Design Design Patterns Behavioral Patterns (I) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adapter(class) Interpreter Template Method Object Abstract
More informationDESIGN 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 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 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 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 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 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 informationDesign patterns. Jef De Smedt Beta VZW
Design patterns Jef De Smedt Beta VZW Who Beta VZW www.betavzw.org Association founded in 1993 Computer training for the unemployed Computer training for employees (Cevora/Cefora) 9:00-12:30 13:00-16:00
More informationTHOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS
THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS LOGISTICS HW3 due today HW4 due in two weeks 2 IN CLASS EXERCISE What's a software design problem you've solved from an idea you learned from someone else?
More 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 informationLast Lecture. Lecture 17: Design Patterns (part 2) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 4448/ Spring Semester, 2005
1 Lecture 17: Design Patterns (part 2) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 4448/6448 - Spring Semester, 2005 2 Last Lecture Design Patterns Background and Core Concepts Examples
More informationCOSC 3351 Software Design. Design Patterns Structural Patterns (I)
COSC 3351 Software Design Design Patterns Structural Patterns (I) Spring 2008 Purpose Creational Structural Behavioral Scope Class Factory Method Adaptor(class) Interpreter Template Method Object Abstract
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 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 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 informationSoftware Eningeering. Lecture 9 Design Patterns 2
Software Eningeering Lecture 9 Design Patterns 2 Patterns covered Creational Abstract Factory, Builder, Factory Method, Prototype, Singleton Structural Adapter, Bridge, Composite, Decorator, Facade, Flyweight,
More 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 Lecture 2
Design Patterns Lecture 2 Josef Hallberg josef.hallberg@ltu.se 1 Patterns covered Creational Abstract Factory, Builder, Factory Method, Prototype, Singleton Structural Adapter, Bridge, Composite, Decorator,
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Timed Automata
More informationBrief Note on Design Pattern
Brief Note on Design Pattern - By - Channu Kambalyal channuk@yahoo.com This note is based on the well-known book Design Patterns Elements of Reusable Object-Oriented Software by Erich Gamma et., al.,.
More informationSummary of the course lectures
Summary of the course lectures 1 Components and Interfaces Components: Compile-time: Packages, Classes, Methods, Run-time: Objects, Invocations, Interfaces: What the client needs to know: Syntactic and
More information2.1 Design Patterns and Architecture (continued)
MBSE - 2.1 Design Patterns and Architecture 1 2.1 Design Patterns and Architecture (continued) 1. Introduction 2. Model Construction 2.1 Design Patterns and Architecture 2.2 State Machines 2.3 Abstract
More 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 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 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 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 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 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 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 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 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 informationDesign of Software Systems (Ontwerp van SoftwareSystemen) Design Patterns Reference. Roel Wuyts
Design of Software Systems (Ontwerp van SoftwareSystemen) Design Patterns Reference 2015-2016 Visitor See lecture on design patterns Design of Software Systems 2 Composite See lecture on design patterns
More 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 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 informationEMBEDDED SYSTEMS PROGRAMMING Design Patterns
EMBEDDED SYSTEMS PROGRAMMING 2015-16 Design Patterns DEFINITION Design pattern: solution to a recurring problem Describes the key elements of the problem and the solution in an abstract way Applicable
More informationComposite Pattern. IV.4 Structural Pattern
IV.4 Structural Pattern Motivation: Compose objects to realize new functionality Flexible structures that can be changed at run-time Problems: Fixed class for every composition is required at compile-time
More informationCSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1
CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain
More 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 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 informationCS 2720 Practical Software Development University of Lethbridge. Design Patterns
Design Patterns A design pattern is a general solution to a particular class of problems, that can be reused. They are applicable not just to design. You can think of patterns as another level of abstraction.
More 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 informationAbstract Factory. Consequences section. UML structure. Applicability section Requirement Elaboration of requirement Achieved through
Abstract Factory a system should be independent of how its products are created, composed, and represented. a family of related product objects is designed to be used together, and you need to enforce
More informationPatterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides
Patterns 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
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 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 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 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 informationUNIT-I. Introduction, Architectural Styles, Shared Information Systems
SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road 517583 QUESTION BANK (DESCRIPTIVE) Subject with Code : SADP (13A05701) Year & Sem: IV-B.Tech & I-Sem Course & Branch: B.Tech
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 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 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 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 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 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 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 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 informationDesign for change. You should avoid
Design patterns Sources Cours de Pascal Molli «A System of Pattern» Bushmann et All «Design Patterns» Gamma et All (GoF) «Applying UML and Patterns» Larman "Design Patterns Java Workbook" Steven John Metsker
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: Structural and Behavioural
Design Patterns: Structural and Behavioural 3 April 2009 CMPT166 Dr. Sean Ho Trinity Western University See also: Vince Huston Review last time: creational Design patterns: Reusable templates for designing
More informationEMBEDDED SYSTEMS PROGRAMMING Design Patterns
EMBEDDED SYSTEMS PROGRAMMING 2014-15 Design Patterns DEFINITION Design pattern: solution to a recurring problem Describes the key elements of the problem and the solution in an abstract way Applicable
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 informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Iterator Pattern George Blankenship
CSCI 253 Object Oriented Design: Iterator Pattern George Blankenship George Blankenship 1 Creational Patterns Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite
More 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 informationBehavioral patterns. Command Iterator Observer Strategy Template method
Designpatterns Behavioral patterns Command Iterator Observer Strategy Template method Command Invoker: asks the command to carry out the request @CommandPattern.Invoker Command: defines an interface for
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 informationC++ for System Developers with Design Pattern
C++ for System Developers with Design Pattern Introduction: This course introduces the C++ language for use on real time and embedded applications. The first part of the course focuses on the language
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 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 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 informationCreational Design Patterns
Creational Design Patterns Creational Design Patterns Structural Design Patterns Behavioral Design Patterns GoF Design Pattern Categories Purpose Creational Structural Behavioral Scope Class Factory Method
More informationEgon Borger (Pisa) Capturing Design Pattern Abstractions by ASMs
Egon Borger (Pisa) Capturing Design Pattern Abstractions by ASMs Universita di Pisa, Dipartimento di Informatica, I-56127 Pisa, Italy boerger@di.unipi.it visiting SAP Research, Karlsruhe, Germany egon.boerger@sap.com
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 informationA few important patterns and their connections
A few important patterns and their connections Perdita Stevens School of Informatics University of Edinburgh Plan Singleton Factory method Facade and how they are connected. You should understand how to
More information