Runtime evolution

Preview:

DESCRIPTION

Paper presentation at Models@runtime 2010

Citation preview

Run-Time Evolution through Explicit Meta-Objects

Jorge Ressia, Lukas Renggli, Tudor Gîrba, Oscar Nierstrasz

Tuesday, October 5, 2010

To enable change at run-time, a system must be self-aware and be able to fully reflect on itself.

Tuesday, October 5, 2010

To enable change at run-time, a system must be self-aware and be able to fully reflect on itself.

Instrospection

Tuesday, October 5, 2010

Query

Intercession

Tuesday, October 5, 2010

Modify

Structural Reflection

Tuesday, October 5, 2010

ClassesObjectsMethods

InstructionsInstance Variables

Tuesday, October 5, 2010

That is not enough

Tuesday, October 5, 2010

Dynamic Representation

Tuesday, October 5, 2010

We need to reflect on the dynamic representation of a program, that is, the operational execution.This is called Behavioral Reflection pioneered by Smith in the context of Lisp

Behavioral Reflection

Tuesday, October 5, 2010

Behavioral reflection provides a way to intercept and change the execution of a program. It is concerned with execution events, i.e., method execution, message sends, or variable assignments.

Behavioral Reflection

Smith1982

Tuesday, October 5, 2010

Behavioral reflection provides a way to intercept and change the execution of a program. It is concerned with execution events, i.e., method execution, message sends, or variable assignments.

Message SendMessage ReceiveMethod LookupObject Creation

State Read/Write

Tuesday, October 5, 2010

Tuesday, October 5, 2010

CodAMcAffer 1995

Tuesday, October 5, 2010

Is that all?

Tuesday, October 5, 2010

It is not possible to foresee all potential reification that might be required at runtime.

What if we need a new reification?

Tuesday, October 5, 2010

It is not possible to foresee all potential reification that might be required at runtime.

To enab le run t ime change we must reify Meta-objects explicitely

Thesis

Tuesday, October 5, 2010

Albedo

Tuesday, October 5, 2010

Structural Meta-objects

Behavioral Meta-objects

Albedo

Tuesday, October 5, 2010

Structural Meta-Object

Tuesday, October 5, 2010

add methodremove method

add stateremove state

Tuesday, October 5, 2010

Object

Class

Tuesday, October 5, 2010

- Removing accessors.

Object

Meta-object

Class

Tuesday, October 5, 2010

- Removing accessors.

BehavioralMeta-Object

Tuesday, October 5, 2010

message sendmessage received

state writestate read

object creation

Tuesday, October 5, 2010

Object

Class

Tuesday, October 5, 2010

Method Look up

Object

Meta-object

Class

Tuesday, October 5, 2010

Method Look up

Object

Meta-object

Class

Object

M

Tuesday, October 5, 2010

Method Look up

Composables

Tuesday, October 5, 2010

Object Object

Tuesday, October 5, 2010

Object Object

Meta-object

Tuesday, October 5, 2010

Object Object

Meta-object

Meta-object

Tuesday, October 5, 2010

Object ObjectMeta-object

Meta-object

Meta-object

Tuesday, October 5, 2010

Reusable

Tuesday, October 5, 2010

Object

ObjectObject

Meta-objects

Tuesday, October 5, 2010

Object

Object

ObjectObject

Meta-objects

Tuesday, October 5, 2010

Object

Object

ObjectObject

Object

Meta-objects

Tuesday, October 5, 2010

Extensible

Tuesday, October 5, 2010

Partial Behavioral Reflection

Tuesday, October 5, 2010

Partial Behavioral Reflection

ReflexTanter 2003

Tuesday, October 5, 2010

Partial Behavioral Reflection

ReflexTanter 2003

Reflectivity

Denker 2008

Tuesday, October 5, 2010

AST

Tuesday, October 5, 2010

Examples?

AST

Tuesday, October 5, 2010

Examples?

AST

Tuesday, October 5, 2010

Examples?

Conclusions

Tuesday, October 5, 2010

- runtime- flexible- object oriented- dynamic- a Model that we can reflect upon.

Albedohttp://scg.unibe.ch/research/Albedo

Tuesday, October 5, 2010

Recommended