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

Preview:

Citation preview

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].

nodeNode 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 1994.

2. Dori, “Object-Process Methodology: a Holistic Systems Paradigm”, Springer 2002.

Questions