Transcript
Page 1: Change-driven model transformations

BudapestUniversityofTechnologyandEconomicsModelDrivenEngineeringLanguagesandSystems2009,Denver,Colorado,USA

Change‐DrivenModelTransforma5ons

Deriva'onandProcessingofChangeHistories

IstvánRáth,GergelyVarró,DánielVarró[email protected]

Page 2: Change-driven model transformations

Outlineofthetalk

  Introduc5on Mo5va5on

 Overviewoftheconcept Change‐driventransforma5onsindetail

 Summary

 Futurework

Page 3: Change-driven model transformations

Mo5va5ngscenario:forwardmodelsynchroniza5on

MA MB

MA’

change

MB’

TargetSource

Page 4: Change-driven model transformations

Incrementalmodelsynchroniza5onand'me

 On‐demand:batchtransforma5onso The“tradi5onal”way

Page 5: Change-driven model transformations

Incrementalmodelsynchroniza5on

MA MB

MA’

change

MB’

• Re‐transform• Targetincrementality

TargetSource

Page 6: Change-driven model transformations

Modelsynchroniza5onand'me On‐demand:batchtransforma5ons

o The“tradi5onal”way  Instantly:livetransforma5ons

o Reactinstantlytocontext(model)changes•  “event‐driven”transforma5ons

o Hearnden‐Lawley‐Raymond.IncrementalModelTransforma'onfortheEvolu'onofModel‐drivenSystems.MODELS2006.

o Ráth‐Ökrös‐Bergmann‐Varró.Livemodeltransforma'onsdrivenbyincrementalpaCernmatching.ICMT2008.•  Transac5on‐orientedapproach•  Reac5onspossibletoarbitrarilycomplexchanges

Page 7: Change-driven model transformations

Livemodelsynchroniza5on

MA MB

MA’

change

MB’

1.Watchforchanges

2.Reacttochanges

3.Merge

TargetSource

Page 8: Change-driven model transformations

Modelsynchroniza5onand'me

 On‐demand:batchtransforma5onso The“tradi5onal”way

  Instantly:livetransforma5onso Reactinstantlytocontext(model)changes• “event‐driven”transforma5ons

o Hearnden‐Lawley‐Raymond.IncrementalModelTransforma'onfortheEvolu'onofModel‐drivenSystems.MODELS2006.

o Ráth‐Ökrös‐Bergmann‐Varró.Livemodeltransforma'onsdrivenbyincrementalpaCernmatching.ICMT2008.• Transac5on‐orientedapproach

Commonassump5ons:1.  Allmodelsareavailablein

memory2.  Changesarepropagated

“synchronously”

Commonassump5ons:1.  Allmodelsareavailablein

memory2.  Changesarepropagated

“synchronously”

Page 9: Change-driven model transformations

Asynchronoussynchroniza5on

 Whatif…o Somemodelscannot(shouldnot)bematerializedinmemory?• Modelsaretoolarge

• Modelshavetobemanipulated“inside”theirna5veenvironment(tool)

o Changesaretobeapplied/reproduced“later”?• Changeshavetorecordedfore.g.traceability

 Asynchronous(off‐line)synchroniza5on

Page 10: Change-driven model transformations

TargetSource

Mo5va5ngscenario

MA MB

MA’

change

MB’

IF?Tracerecord

Highlevel(domain‐specific)process

model

Deployedprocesstemplate(jPDL)

Page 11: Change-driven model transformations

Casestudyandchallenges

 Toolintegra5oninaheterogeneousenvironmento DevelopedfortheSENSORIAandMOGENTESEUresearchprojects

 Highlevelprocessmodelsdescribe(complex)developmentprocesssegmentso E.g.automatedtestgenera5on,deploymentconfigura5ongenera5on

 Processesareexecutedino Adistributedenvironment(worksta5ons,toolservers)o OrchestratedbythejBPMprocessexecu5onengine.

Page 12: Change-driven model transformations

Challenges

 Challenge#1:highlevelmodelsareeditedchangeshavetobepropagatedtothedeployedprocesstemplate

 Challenge#2:changesaremappedasynchronouslyin5meo Not(necessarily)bytheprocessengineer

Page 13: Change-driven model transformations

Target

Conceptualoverview

MA MB

MA’

change CHMA

MB’

CHMB

IF

1.Recordchangesintotraceabilitymodels(=CHMs)

2.Mapsourcechangestotargetchanges(=CHMstoCHMs)insteadofsourcemodelstotargetmodels

3.Applychangestoexternalmodels

throughaninterface(IF)

Source

Page 14: Change-driven model transformations

Changehistorymodels

 Traceabilitymodelso Opera5onaldifferencemodels

o Recordhistoricalopera5onsequences• WHEN(5mestampsinalinkedliststructure)

• WHAT(CUDM)• Context(referencedmodelelements)

o “weak”references•  IDsorFQNs• Allowstoreferenceexternal(non‐orpar5allymaterialized)models

CHMA CHMB

Page 15: Change-driven model transformations

Changehistorymetamodel

Opera5oncategories

Weakreferences

Historicalrecord

Page 16: Change-driven model transformations

Genera5onofCHMs  Livetransforma5ons

o Editor‐independent!  Generatetracemodelsnippetsastheuserisedi5ngthemodelo Timestampso Contextualreferences

MA

MA’

CHMAchange

Source

Page 17: Change-driven model transformations

Genera5onofCHMs:GenericexampleSampleexecu5onsequence:

E:Type

ParentCE:CreateEn5ty

:parentFQN

:targetFQN

Type:typeFQN

Timestamp:<sysTime()>Name:<name(E)>

{new}

{pre}

Trg

SrcCR:CreateRela5on

:newSrcFQN

:newTrgFQN

Type :typeFQN

Timestamp:<sysTime()>Name:<name(R)>

{new}

{pre}

R:Type

En5tyandRela5onarebasicVIATRAconceptsforgraphnodeandedge

En5tyandRela5onarebasicVIATRAconceptsforgraphnodeandedge

Page 18: Change-driven model transformations

Genera5ngdomain‐specificCHMs

I:Invoca5on

W:Workflow

DI:DataInput

{pre}

DO:DataOutput

:returns:parameters

CJN:CreateJPDLNode

:parentID

:targetID

Timestamp:<sysTime()>

{new}

CJA:CreateJPDLAtribute

:next

targetID:CJN.targetID+”.parameters”parentID:CJN.targetIDtargetTextValue:value(DI)

CJA:CreateJPDLAtribute

:next

targetID:CJN.targetID+”.returns”parentID:CJN.targetIDtargetTextValue:value(DO)

1.Useacompoundpaternas

precondi5on,correspondingtoa(complex)model

structure

2a.CreateacompoundCHMsequenceaspostcondi5on

2b.Usea“compressed”CHM

elementcorrespondingtoacomplexdomain‐specificopera5on

Page 19: Change-driven model transformations

Change‐driventransforma5ons  Input:

o Changesofthesourcemodel

  Outputo Correspondingchangesofthetargetmodel

 Maybeformulatedas:o Livetransforma5on

o Batchtransforma5on

  Granularity?o “one‐to‐one”o “n‐to‐m”

MA’

CHMA CHMB

TargetSource

Page 20: Change-driven model transformations

MappingCHMsSampleexecu5oncon5nued:

E:Invoca5on

ParentCE:CreateEn5ty

:parentFQN

:targetFQN

Invoca5on:typeFQN

CJN:CreateJPDLNode{new}

CJA:CreateJPDLAtribute

:next

{pre}

targetID:name(Parent)+”.”+name(E)parentID:name(Parent)

targetID:CJN.targetID+”.fun5on”parentID:CJN.targetIDtargetTextValue:E.func5onName

typeFQN=meta.Invoca5on

func5onName:<>

ForeachnewlycreatedInvoca5on,createa

correspondingJPDLnodetogetherwithis“func5on”atribute(=domain‐specific

mappinglogic)

Page 21: Change-driven model transformations

ApplyingCHMstoexternalmodels  ApplyingCHMs=model“interpreta5on”

  Externalmodelsaremanipulatedthrougha(service)interfaceo VIATRA:“na5vefunc5ons”

MB

MB’

CHMB

IF

Target

Page 22: Change-driven model transformations

Manipula5ngnon‐materializedmodelswithVIATRA

VIATRAna5vefunc5onsallowforDOM‐stylemanipula5onofthe

deployedjPDLprocesstemplate.

Page 23: Change-driven model transformations

Summary

 Change‐driventransforma5ons=o Aninnova5vesynthesisofknowntechniques:• Tracemodels• Livetransforma5ons

• Non‐materializedmodelmanipula5on

o Asolu5onforanengineeringproblem

o Lotsofopenques5onsandnewideas…

Page 24: Change-driven model transformations

Futurework

 Abeginning,ratherthananend… Lotsofopenques5ons

o HowtowriteCDTs?o HowtogenerateCDTsfrom“tradi5onal”transforma5ons?

 Aretheyuseful?o Efficient,intui5vemodelsynchroniza5ono Changerepresenta5on,processing((re)verifica5on,changeimpactanalysis)

o Modelmerging(~opera5onalmerging)

 Thankyouforyouraten5on.


Top Related