classes and inheritance in actor- oriented models...1 chess review may 8, 2003 berkeley, ca classes...

10
Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor- Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley Chess Review, May 8, 2003 2 Introduction Component-based design Object-oriented components Actor-oriented components Most Actor-oriented tools lack the class mechanisms of Object-oriented languages. – inheritance – subclassing A preliminary approach to providing class- like mechanisms in Ptolemy II

Upload: others

Post on 19-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

1

Chess ReviewMay 8, 2003Berkeley, CA

Classes and Inheritance in Actor-Oriented Models

Stephen NeuendorfferEdward LeeUC Berkeley

Chess Review, May 8, 2003 2

Introduction

• Component-based design– Object-oriented components– Actor-oriented components

• Most Actor-oriented tools lack the class mechanisms of Object-oriented languages.– inheritance– subclassing

• A preliminary approach to providing class-like mechanisms in Ptolemy II

Page 2: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

2

Chess Review, May 8, 2003 3

Component-based Design

Component Component

Complex systems built primarily through composition.

Encapsulation of intellectual property.

Visual languages and design tools.

Component reuse.

Chess Review, May 8, 2003 4

Object-Oriented Components

Object

Provides ports expose methods that can be invoked on this object

Requires ports expose methods that this object might invoke.

This interface specification allows for consistency checking of compositions.

However, this interface lacks important pieces of information:

• Method Requirements. (Sequencing? Preconditions?)

• Concurrency constraints. (Deadlock? Re-entrancy?)

Page 3: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

3

Chess Review, May 8, 2003 5

Actor-Oriented Components

Actor

Input ports expose flows of data that this actor consumes.

Output ports expose flows of data that this actor produces.

This interface specification allows for consistency checking of compositions.

This interface also lacks important pieces of information:

• How data is transported between ports

• Concurrency constraints between actors

These are largely orthogonal issues for actors

Chess Review, May 8, 2003 6

Example of an Actor-Oriented Framework: Simulink

basic abstraction mechanism is hierarchy.

Page 4: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

4

Chess Review, May 8, 2003 7

Hierarchical Abstraction

• Complex components can encapsulate smaller components.

• Object-oriented delegation pattern

hierarchicalcomponent copy

container container

Chess Review, May 8, 2003 8

Class mechanisms

• Realization:– Most components in a large system operate in

the same basic fashion.• Object-oriented classes provide several

important capabilities.– Central point of design.– Basis for type checking.– Static compilation.– Extension and variation.

• But also present some complications.– Run-time modifications become difficult.– Source of inconsistencies.

Page 5: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

5

Chess Review, May 8, 2003 9

Classes and Hierarchy

• Classes simplify the structure of complex models.

• Classes extend the containment hierarchy with an inheritance hierarchy.

Chess Review, May 8, 2003 10

The First (?) Actor-Oriented Programming Language (1966)

MIT Lincoln Labs TX-2 Bert Sutherland with a light pen

Partially constructed actor-oriented model with a class definition (top) and instance (below).

Bert Sutherland used the first acknowledged object-oriented framework (Sketchpad, created by his brother, Ivan Sutherland) to create the first actor-oriented programming framework.

Page 6: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

6

Chess Review, May 8, 2003 11

Key Problems

• Direct manipulation user interface of both classes and instances.– Maximize syntactic consistency.

• Expressive uses of classes– subclasses with extension and overriding– nested classes

• Interactive modification of classes – Classes might be modified at runtime

• Distinguishing overridden values from inherited default values.

Chess Review, May 8, 2003 12

Visual Class Representation

Each block is implicitly an instance of an actor class.

Page 7: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

7

Chess Review, May 8, 2003 13

An Actor Class

Every subclass or instance of this actor class containsat least this structure.Parameter values of actors in a class give default values for all instances of the class

Chess Review, May 8, 2003 14

Models with Classes

class

instance

instance

instance

modelDerived objects implied by class

Intuition: Modifications to classes propagate to derived objects, as long as local changes have not been made.

Actor classes are explicitly instantiated.

Page 8: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

8

Chess Review, May 8, 2003 15

A Simple Example

Here the property of BaseClass is modified, which does not propagate to Instance2.

This example is simple because there is only one propagation path.

Chess Review, May 8, 2003 16

A Subclass

Dotted lines show inherited objects that cannot be deleted, while allowing syntax-directed editing.

Page 9: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

9

Chess Review, May 8, 2003 17

Models with SubClasses

class

instance

subclass

instance

modelDerived objects implied by class

Changes propagate to subclasses similarly to instances.

Subclasses allow for independent extension, while instances do not.

Actor classes are explicitly subclassed. instance

Chess Review, May 8, 2003 18

Nested Classes

Page 10: Classes and Inheritance in Actor- Oriented Models...1 Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor-Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley

10

Chess Review, May 8, 2003 19

Models with Nested Classes

class

instance

class instance

instance

model

Nested classes result in multiple propagation paths.

Approach: prioritize propagation so that localized changes override global changes.

Chess Review, May 8, 2003 20

Summary

• Class mechanisms for modularity can be integrated with actor-oriented modeling.

• Inherited changes in a syntactically-driven environment can be tricky:– Nested Classes

• Still many open questions..– Consistency given multiple propagations?– Is “Local Override” property the best one?