derived features for emf by integrating advanced model queries

18
Budapest University of Technology and Economics Department 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.

Upload: abel-hegedues

Post on 13-Jul-2015

483 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Derived Features for EMF by Integrating Advanced Model Queries

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.

Page 2: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 3: Derived Features for EMF by Integrating Advanced Model Queries

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”

Page 4: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 5: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 6: Derived Features for EMF by Integrating Advanced Model Queries

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/

Page 7: Derived Features for EMF by Integrating Advanced Model Queries

• 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

Page 8: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 9: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 10: Derived Features for EMF by Integrating Advanced Model Queries

• 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

Page 11: Derived Features for EMF by Integrating Advanced Model Queries

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.

Page 12: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 13: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 14: Derived Features for EMF by Integrating Advanced Model 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

Page 15: Derived Features for EMF by Integrating Advanced Model Queries

• 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

Page 16: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 17: Derived Features for EMF by Integrating Advanced Model Queries

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

Page 18: Derived Features for EMF by Integrating Advanced Model Queries

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!