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