derived features for emf by integrating advanced model queries

Post on 13-Jul-2015

483 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Budapest University of Technology and EconomicsDepartment of Measurement and Information Systems

Derived Features for EMF by Integrating Advanced Model Queries

István Ráth, Ábel Hegedüs and Dániel VarróBudapest University of Technology and Economics

ECMFA, 2012.07.04.

Motivating example

2

T = {}BUTE: School

VD: Teacher

BUTE

VD

teachers

T = {VD}

Metamodel

Instance model

Change notification:ADD(teachers, VD)

View

View gets updatedautomatically when the

model changesModel notifies listeners

upon changes

School metamodel in EMF

<<derived>>

<<derived>>

<<derived>>

„Teachers with the maximum number of courses assigned, among teachers of the same

school”

„Number of teachersin the school”

„Year with maximum starting date”

User-defined derived features

NoT = 1BUTE: School BUTE

VD

teachers

T = {VD}

Metamodel

Instance model View

VD: Teacher

T = {VD,RI}

teachers

RI: Teacher

Change notification:ADD(teachers, VD)

NoT = 2NoT = 1

Notification not sent forderived feature change!

View inconsistent untilmanual refresh!

RI

Ideal derived features

NoT = 1BUTE: School BUTE

teachers

T = {VD}

Metamodel

Instance model View

VD: Teacher

T = {VD,RI}

teachers

RI: Teacher

Change notification:ADD(teachers, VD)SET(NoT, 1, 2)

NoT = 2NoT = 1

Notification sent forderived feature change!

NoT = 2

VD RI

EMF-INCQUERY Overview

A model query engine for batch and live queries

• Expressive graph pattern-based query language

• Focus on reusability: query libraries, recursive pattern calls

Language

• Incrementalevaluation

• Instantaneous response for complex queries over large instance models

Performance

• On-the-fly well-formednes validation

• Incremental view maintenance

• Model synchronization

• Derived features

Use cases

http://viatra.inf.mit.bme.hu/incquery http://viatra.inf.mit.bme.hu/incquery/getting_started http://www.eclipse.org/proposals/modeling.emf.incquery/

• Declarative modelqueries

• Minimizeimperative code

Language

• Affects every part of the application

• Incrementalre-evaluation

Performance

• Developmenteffort

• Tool support

EMF integration of derived features

Important aspects of derived features

Derived features as model queries

Derived features can be represented as:o A set of relevant elements from the model

o An iterative algorithm over these elements Model query

Result can be updated withoutcomplete recalculation,

if an element is added to orremoved from the set

notification(ADD, School.teachers, teacher)-> School.numberOfTeachers++notification(REMOVE, School.teachers, teacher)-> School.numberOfTeachers--

ModelQuery(A,B): • tuples of model elements A, B• satisfying the query condition• enumerate 1 / all instances• A,B can be input or output

Advanced model queries

9

pattern teachersWithMostCourses(School : School, Teacher : Teacher) = {School.teachers(School,Teacher);neg find moreCourses(Teacher);}

pattern moreCourses(Teacher : Teacher) = {N == count find coursesOfTeacher(Teacher,_Course);M == count find coursesOfTeacher(Teacher2,_Course2);Teacher(Teacher2);Teacher != Teacher2;check(N < M);}

Queryparameters

Negativeapplicationcondition

Match counting

Checkexpression

• Declarative modelqueries

• Minimizeimperative code

Language

• Affects every part of the application

• Incrementalre-evaluation

Performance

• Developmenteffort

• Tool support

EMF integration of derived features

Important aspects of derived features

Derived features life cycle 1 – basic case

Application

ModelComplete

recalculation

RequestderivedvalueB1

B2

Getcurrentvalue

Value retrieval

• Model navigation• Filtering• Aggregation

Called when:• selected in editor• model traversal• serialization• etc.

Efficient derived features

Derived features life cycle 2 – efficient case

Application

ModelDerivedFeature

IncrementalQuery engine

EMF model reference + Change notifications

Initialization + Model

manipulation Deltamonitors

Requestderivedvalue

A3

A1

A2

A4

B1

B2

Getcurrentvalue

Incremental update

Value retrieval from cache

Query engine

RETE networkInput nodes

Intermediate nodes

Outputnodes

Deltamonitor

EMF instance model

Generated query components

Input = Model contents + changes (EMF notifications)

Output = Query results + (subsequent) Query result deltas

Query definition

Incremental evaluation of queries

A quick look into performance

Performance advantage of OCL-IA over

EclipseOCL is not significant with complex

queries

INCQUERY is 1-1.5 orders-of-magnitude faster

than Eclipse OCL-IA

http://viatra.inf.mit.bme.hu/performance

Constraint evaluation over large instance models

• Declarative modelqueries

• Minimizeimperative code

Language

• Affects every part of the application

• Incrementalre-evaluation

Performance

• Developmenteffort

• Tool support

EMF integration of derived features

Important aspects of derived features

<<derived>>

DEMO Developing derived features

private IncqueryFeatureHandler teachersWithMostCourses;public EList<Teacher> getTeachersWithMostCourses() {return IncqueryFeatureHelper.getManyReferenceValueForHandler(teachersWithMostCourses, this,SchoolPackage.Literals.SCHOOL__TEACHERS_WITH_MOST_COURSES);}

@DerivedFeature(feature = "teachersWithMostCourses")pattern teacherWithMostCourses(School : School, Teacher : Teacher) = {

find teachers(School,Teacher);neg find moreCourses(Teacher);

}

1. Define feature in metamodel

2. Define model query withEMF-IncQuery

3. Generate glue codeautomatically

Future workQuery-driven soft interconnections between EMF models

Handling references between different models by integrated queries(Paper at MODELS 2012)

Derived objects backed by model queriesRepresent query results as objects in the modelLife cycle managed by EMF-INCQUERY

• Expressivegraph-basedmodel querylanguage

Language

• Incrementalevaluationtechnique

Performance

• Easy integration through code generation

EMF integration

SummaryEfficient and automated computation ofderived features in EMF

Final points

EMF-INCQUERY 0.6 preview is available immediately

oWith complete support for derived featureso http://viatra.inf.mit.bme.hu/incquery/new/examples/derivedfeatures

Thank you very much!

top related