Design Patterns In OPM Presented by: Galia Shlezinger Instructors: Prop. Dov Dori, Dr. Iris Berger.

Slides:



Advertisements
Similar presentations
GoF Sections 2.7 – 2.9 More Fun with Lexi. Lexi Document Editor Lexi tasks discussed:  Document structure  Formatting  Embellishing the user interface.
Advertisements

Computer Science 313 – Advanced Programming Topics.
Design Patterns for Object Oriented systems CSC 515 Ashwin Dandwate.
Software Design & Documentation – Design Pattern: Command Design Pattern: Command Christopher Lacey September 15, 2003.
Dept. of Computer Engineering, Amirkabir University of Tech. 1 Design Patterns Dr. Noorhosseini Introduction.
Visitor Pattern Jeff Schott CS590L Spring What is the Purpose of the Visitor Pattern ? n Represent an operation to be performed on the elements.
Command Pattern Chihung Liao Cynthia Jiang. Waiter Order Execute() Hamburger Execute() Hot Dogs Execute() Fries Execute() Cook Make Food()
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Design Patterns Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson,Ralph Johnson and John Vlissides (The Gang of.
The Template Method By Sinclair Schuller. What is the Template Method? “Skeleton” definition of an algorithm Allows redefinition of predetermined points.
GoF Sections 2.7 – 2.9 More Fun with Lexi. Lexi Document Editor Lexi tasks discussed:  Document structure  Formatting  Embellishing the user interface.
ECE 355 Design Patterns Tutorial Part 2 (based on slides by Ali Razavi) Presented by Igor Ivković
Reuse Activities Selecting Design Patterns and Components
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
1 Computer Science 340 Software Design & Testing © Ken Rodham 2003 The “Visitor” Design Pattern Source: "Design Patterns: Elements of Reusable Software"
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Builder A Creational Design Pattern A Presentation by Alex Bluhm And.
The Design of JUnit Yonglei Tao. Test-First Development  An essential element in eXtreme Programming (XP)  Test is written before the code  As an executable.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
Design Patterns Trends and Case Study John Hurst June 2005.
JUnit The framework. Goal of the presentation showing the design and construction of JUnit, a piece of software with proven value.
05 - Patterns Intro.CSC4071 Design Patterns Designing good and reusable OO software is hard. –Mix of specific + general –Impossible to get it right the.
More Design Patterns In Delphi Jim Cooper Falafel Software Session Code: D3.03 Track: Delphi.
© Spiros Mancoridis 27/09/ Software Design Topics in Object-Oriented Design Patterns Material drawn from [Gamma95] and [Coplien95] Revised and augmented.
Design Pattern. The Observer Pattern The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Behavioral Design Patterns Morteza Yousefi University Of Science & Technology Of Mazandaran 1of 27Behavioral Design Patterns.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
Lexi case study (Part 2) Presentation by Matt Deckard.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
Patterns and AntiPatterns Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
Linzhang Wang Dept. of Computer Sci&Tech, Nanjing University The Command Pattern.
Design Patterns CSIS 3701: Advanced Object Oriented Programming.
Factory Method Chris Colasuonno Also known as “Virtual Constructor”
Builder An Object Creational Pattern Tim Rice CSPP51023 March 2, 2010.
Copyright © Active Frameworks Inc. - All Rights Reserved - V2.0Design Pattern Catalog - Page L3-1 PS95&96-MEF-L10-1 Dr. M.E. Fayad Creationa.
CS 210 Final Review November 28, CS 210 Adapter Pattern.
Design Patterns: Elements of Reusable Object- Orientated Software Gamma, Helm, Johnson, Vlissides Presented By: David Williams.
BEHAVIORAL PATTERNS 13-Sep-2012 Presenters Sanjeeb Kumar Nanda & Shankar Gogada.
Design Patterns Introduction “Patterns are discovered, not invented” Richard Helm.
The Visitor Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
The Template Method Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
Example to motivate discussion We have two lists (of menu items) one implemented using ArrayList and another using Arrays. How does one work with these.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
Five Minute Design Patterns Doug Marttila Forest and the Trees May 30, 2009 Template Factory Singleton Iterator Adapter Façade Observer Command Strategy.
Design Patterns. Outline Purpose Purpose Useful Definitions Useful Definitions Pattern Overview Pattern Overview.
Design Patterns (II) Lecture Three. Solution to Homework Two Used framework Used design patterns: composite and state Question: what are the differences.
Overview of Behavioral Patterns ©SoftMoore ConsultingSlide 1.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Command Pattern. Intent encapsulate a request as an object  can parameterize clients with different requests, queue or log requests, support undoable.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
Jim Fawcett CSE776 – Design Patterns Summer 2006
Design Patterns: MORE Examples
Chapter 10 Design Patterns.
Software Design Patterns
Design Patterns Lecture part 2.
Introduction to Design Patterns
Behavioral Design Patterns
Software Design and Architecture
Presented by Igor Ivković
Command Pattern.
Programming Design Patterns
Object-Oriented Design
Design Pattern: Visitor
Informatics 122 Software Design II
Object Oriented Design Patterns - Behavioral Patterns
Informatics 122 Software Design II
Composite Design Pattern By Aravind Reddy Patlola.
Presented by Igor Ivković
16. Visitors SE2811 Software Component Design
Presentation transcript:

Design Patterns In OPM Presented by: Galia Shlezinger Instructors: Prop. Dov Dori, Dr. Iris Berger

Research purpose Model known design patterns in OPM Construct a meta-model for design patterns Demonstrate design in OPM using a test- case Develop best practices for design in OPM Hopefully, Develop new design patterns for OPM.

Topics of this presentation In this presentation we will review three well known Design patterns from “Design patterns: Elements of Reusable Object-Oriented Software”. And how they are modeled in OPM. We will see that these three design patterns are naturally “built into” OPM and their positive consequences are relevant for most OPM models.

The Command Design Pattern “Intent: Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.”[1] application Menu item interface paste document

Command in OPM Commands are actually processes Processes can be generalized

The Command Design Pattern “ Consequences: 1. Decouples the object that invokes the operation from the one that knows how to perform it. 2. Commands are first class objects they can be manipulated and extended like any other object. 3. You can assemble commands into a composite command. (Macro command) 4. Its easy to add new commands, because you don’t have to change existing classes.” [1].

The Template Method Pattern “Intent: Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.” [1]

Template method in OPM Methods are processes Processes can be aggregated and generalized.

The Template Method Pattern “consequences: template methods are a fundamental technique for code reuse… they are the means for factoring out common behavior … hook operations…” [1].

The Visitor Design Pattern “Intent: Represent an operation to be preformed on the element of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates.”[1]. node Node visitor Type checking visitor VariableRef Node

Visitor in OPM Operations are processes Different operations are all specialization of a common generalized operation that is actually the operation interface. The element object is an instrument of this generalized process.

The Visitor Design Pattern “Consequences: 1. Visitor makes adding new operations easy… 2. A visitor gathers related operations and separates unrelated ones… 3. Adding new concrete element classes is hard… 4. Breaking encapsulation…” [1]

Conclusions OPM advantages:  Decoupling  Less sub-classing  Breaking encapsulation OPM disadvantages:  Breaking encapsulation

Some more research goals Studying design pattern structure using OPM models. Studying the relationship between design patterns using OPM models. Developing best practices and design patterns for solving design problems in OPM.

References 1. Gamma, Helm, Johnson, Vlissides, “Design Patterns: Elements of Reusable Object-Oriented Software”, Addison- Wesley Dori, “Object-Process Methodology: a Holistic Systems Paradigm”, Springer 2002.

Questions