towards analysing non-determinismin bidirectional transformations (amt2014)

30
Romina Eramo Romeo Marinelli, Alfonso Pierantonio, Gianni Rosa Towards Analysing NonDeterminism in Bidirec?onal Transforma?ons Dipartimento di Ingegneria e Scienze Università degli Studi dell’Aquila dell’Informazione e Matematica

Upload: romina-eramo

Post on 17-Jul-2015

36 views

Category:

Documents


3 download

TRANSCRIPT

Romina  Eramo Romeo  Marinelli,  Alfonso  Pierantonio,  Gianni  Rosa

Towards  Analysing  Non-­‐Determinism  

in  Bidirec?onal  Transforma?ons

Dipartimento di Ingegneria e Scienze

Università degli Studi dell’Aquila

dell’Informazione e Matematica

Goal

To  support  designers  in  solving  non-­‐determinism  in  their  specifica?ons  by  detec?ng  the  rules  that  give  place  to  alterna?ve  solu?ons,  at  design  ?me.

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Roadmap

Background

Contribu?on

Realiza?on

Applica?on

Challenges

Conclusion

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Bidirec?onality

Bidirec?onal  transforma?ons  are  useful  for  maintaining  the  consistency  of  two  (or  more)  related  sources  of  informa?on The  relevance  of  bidirec?onality  in  model  transforma?ons  has  been  advocated  already  in  2005  by  OMG  by  including  a  bidirec?onal  language  in  QVT

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Bidirec?onality

In  spite  of  its  relevance,  bidirec?onality  has  rarely  produced  an?cipated  benefits

WHY?

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Non-­‐determinism

Probably,  among  the  reasons  why  bidirec?onal  transforma?on  had  limited  success  there  is  the  ambivalence  concerning        non-­‐bijec)vity When  transforma?on  are  non-­‐bijec)ve,  there  may  be  mul?ple  ways  to  transform  two  models  into  a  consistent  state

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

A  small  example  ...  

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

...a  typical  round-­‐trip  problem  based  on  a  non-­‐bijec?ve  class  diagram  to  rela?onal  data  base  -­‐  UML2RDBMS

A  small  example  ...  

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Person

name {is_primary}

Worker

working_address

Employer {persistent}

department

number_of_publication

Professor {persistent}

University

① 

UML  model  

A  small  example  ...  

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Person

name {is_primary}

Worker

working_address

Employer {persistent}

department

number_of_publication

Professor {persistent}

University

PK name working_address

Employer

department

number_of_publication

University

Professor PK name

working_address department

①  ②  forward transf.

UML  model  

RDBMS  model  

Persistent  classes  are  mapped  to  correspondent  tables  and  a\ributes  to  columns,  including  inherited  a\ributes A\ributes  of  non-­‐persistent  classes  are  distributed  over  tables  from  persistent  classes  which  access  non-­‐persistent  ones

A  small  example  ...  

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Person

name {is_primary}

Worker

working_address

Employer {persistent}

department

number_of_publication

Professor {persistent}

University

PK name working_address

Employer

department

number_of_publication

University

Professor PK name

working_address department

①  ② 

PK name working_address

Employer

department

number_of_publication

University

Professor PK name

working_address department

③ 

email

forward transf. manual change

UML  model  

RDBMS  model   modified RDBMS  model  

A  new  column  email  is  added  to  the  table  Employer How  back  propagate  ?

University University

A  small  example  ...  

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Person

name {is_primary}

Worker

working_address

Employer {persistent}

department

number_of_publication

Professor {persistent}

University

PK name working_address

Employer

department

number_of_publication

University

Professor PK name

working_address department

①  ② 

PK name working_address

Employer

department

number_of_publication

University

Professor PK name

working_address department

③ 

Person

name {is_primary}

Worker

working_address

Employer {persistent}

department

number_of_publication

Professor {persistent}

University

④ 

[email]

[email]

[email]

email

forward transf. backward transf. manual change

UML  model  

RDBMS  model   modified RDBMS  model  

corresponding UML  models  

email  can  be  associated  with  Employer  or  with  each  parent  Worker  and  Person

Related  issues

There  have  been  several  works  analyzing    seman?c  issues  of  bidirec?onal  model  transforma?ons   From  Stevens  2009    : “The   developer   needs   full   control   of   what   the   transforma)on  does.   [...]  We   claim   that   determinism   is   necessary   in   order   to  ensure,  first,   that  developers  will  find   tool  behavior  predictable,  and  second,  that  organisa)ons  will  not  be  unacceptably  “locked  in”  to  the  tool  they  first  use.”

[P.  Stevens.  Bidirec?onal  model  transforma?ons  in  QVT:  seman?c  issues  and  open  ques?ons.  SOSYM,  2009]

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

How  it  is  solved  in  the  current  approaches?

Drawbacks:

①  limited  control  over  how  models  are  synchronized ②  early  decision  and  difficult  to  detect  ambiguity ③  onerous  management  of  (large)  set  of  models

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

①  fix  ambiguity  via  defaults  strategy  (tool) ②  resolve  ambiguity  by  contraining  the  specifica?on  (designer) ③  genera?ng  mul?ple  solu?ons  (tool)  and  select  the  desired  one  

(desinger)

Roadmap

Background

Contribu?on

Realiza?on

Applica?on

Challenges

Conclusion

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Contribu?on

GOAL

HOW

OUTPUT

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

ADVANTAGE

To  support  designers  in  dealing  with   non-­‐determinism

Sta?c  analysis  of  bidirec?onal  transforma?on

Degree  of  non-­‐determinism  of  the  transforma?on Non-­‐determinis?c  por?ons  of  the  transforma?on

Analysis  at  design  ?me Detec?on  of  code  ambiguity  before  the  execu?on

Roadmap

Background

Contribu?on

Realiza?on

Applica?on

Challenges

Conclusion

Descrip?on  of  the  approach

Model  transforma?ons  are  mapped  in  a  format  suitable  for  the  analysis.  Only  relevant  informa?on  are  captured. The  analysis  is  performed  within  a  logic  environment  realized  in  Answer  Set  Programming  (ASP)   •  the  engine  is  able  to  analyze  the  behavior  of  the  transforma?on  

with  an  emphasis  on  non-­‐determinism

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Analysis  nota?on

Logical  rules  and  constraints

Descrip?on  of  the  approach

STEP  1  -­‐  Transla?on  from  the  transforma?on  to  the  analysis  nota?on STEP  2  -­‐  Execu?on  of  the  ASP-­‐based  analysis  and  annota?on  of  the  

transforma?on

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

BIDIRECTIONAL  TRANSFORMATION  

LANGUAGE

C2 C2 TRASLATE

ASP  TRANSF.   ANALYSIS  MODEL

ASP  SOLVER

IN OUT

ANNOTATE

BIDIRECTIONAL  TRANSFORMATION  

MODEL

TRANSFORMATION  ANALYSIS  LANGUAGE

TRANSFORMATION  ANALYSIS  MODEL

ASP  ANALYSIS  RESULT  MODEL

ENCODE

STEP  1 STEP  2

LOGICAL  ANALYSIS

ASP  RULES  AND  CONSTRAINTS

Roadmap

Background

Contribu?on

Realiza?on

Applica?on

Challenges

Conclusion

Applica?on  of  the  approach

UML  to  RDBMS,  inheritance  hierarchy  of  classes  to  corresponding  tables,  and  viceversa

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Case  study

①  implementa?on  of  the  UML2RDBMS  bidirec?onal  transf.  in  JTL ②  transforma?on  of  the  UML2RDBMS  transf.  in  the  analysis  language ③  execu?on  of  the  analysis  on  the  UML2RDBMS  analysis  model ④  annota?on  of  the  UML2RDBMS  transf.  model  with  the  analysis  results

Used  transforma?on  language JTL  (Janus  Transforma?on  Language),  a  constraint-­‐based  bidirec?onal  language,  able  to  deal  with  non-­‐bijec?vity  by  genera?ng  all  the  admissible  solu?ons 4  STEPS

①   Implemen?ng  UML2RDBMS  in  JTL

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

1transformation UML2RDBMS(uml:UML, rdbms:RDBMS) { ...! 2 top relation Class2Table {! 3 cn, an: String;! 4 enforce domain uml c:Class {! 5 is_persistent = true,! 6 name = cn,! 7 attrs = attr: Attribute { name = an}! 8 };! 9 enforce domain rdbms t:Table {!10 name = cn,!11 cols = col: Column { name = an }!12 };!13 when { ... }!14 where { Attribute2Column(c, t); }!15 }!16 relation Attribute2Column {!17 an, at : String;!18 enforce domain uml c:Class {!19 attrs = attr: Attribute { name = an, owner = c, is_primary = false }!20 };!21 enforce domain rdbms t:Table {!22 cols = col: Column { name = an, owner = t }!23 };!24 when { ... }!25 }!26 top relation SuperAttributeToColumn{!27 enforce domain uml c: Class {!28 parent = sc: Class { }!29 };!30 enforce domain rdbms t: Table { };!31 when { ClassToTable(c,t) | (cc = c.parentOf & SuperAttributeToColumn(cc,t));}!32 where { AttributeToColumn(sc, t); }!33 } ...!

relates  classes  and  tables  in  the  two  different  metamodels

relates  albutes  and  columns  in  the  two  different  metamodels

relates  a\ributes  of  the  parent  class  to  columns  of  the  corresponding  child  table

②   Transla?ng  in  the  analysis  nota?on

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

A  transforma?on  model  consists  of  a  set  of  rules  that  define  mapping  among  elements  types,  and  pre/post  con??ons  that  limit  its  applicability  and  behavior

The  correspondent  transforma?on  analysis  model  captures  only  the  informa?on  which  is  relevant  for  performing  the  analysis,  conforming  a  specific  analysis  nota?on    

domain  pa\erns  are  captured

pre  and  post  condi?on  are  captured  as  pa\erns

③  Execu?ng  the  analysis

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

1 are_equal_domains(ID1, ID2, Dom) :-! 2 have_equal_patterns(ID1, ID2, Dom, MC, MCName),! 3 have_equal_predicates(ID1, ID2, Dom, MC, MCName),! 4 not have_different_patterns(ID1, ID2, Dom).! 5! 6 non_deterministic_relation(ID, RelName, DomLeft) :-! 7 are_equal_domains(ID, ID2, DomRight),! 8 relation_name(ID, RelName),! 9 tranformation_model(DomRight), !10 tranformation_model(DomLeft), !11 DomRight != DomLeft.!12!13 are_ambiguous_relations(ID1, ID2, DomLeft) :-!14  are_equal_domains(ID1, ID2, DomRight),!15  tranformation_model(DomRight), !16  tranformation_model(DomLeft), !17  DomRight != DomLef. [...]!

1 relation_name(1, class2table).!2 relation_domain(1, uml).!3 relation_pattern(1, uml, c, class).!4 relation_predicate(1, uml, c, is_persistent, true).!5 relation_predicate(1, uml, c, name, cn).!6 relation_predicate(1, uml, c, attrs, attr). [...]!

the  analysis  model  is  automa?cally  encoded  in  ASP

non-­‐determinism  is  verified  by  executed  ASP  rules  and  constraints  on  the  analysis  model  used  

as  base  knowledge

%%%% sets of non-deterministic relations (RDBMS to UML direction):![(1,class2table), (3,superAttribute2column), (5,superAttribute2column)]!

sets  of  ambiguous  transforma?on  rules  

are  detected

1transformation UML2RDBMS(uml:UML, rdbms:RDBMS) { ...! 2 top relation Class2Table {! 3 cn, an: String;! 4 enforce domain uml c:Class {! 5 is_persistent = true,! 6 name = cn,! 7 attrs = attr: Attribute { name = an}! 8 };! 9 enforce domain rdbms t:Table {!10 name = cn,!11 cols = col: Column { name = an }!12 };!13 when { ... }!14 where { Attribute2Column(c, t); }!15 }!16 relation Attribute2Column {!17 an, at : String;!18 enforce domain uml c:Class {!19 attrs = attr: Attribute { name = an, owner = c, is_primary = false }!20 };!21 enforce domain rdbms t:Table {!22 cols = col: Column { name = an, owner = t }!23 };!24 when { ... }!25 }!26 top relation SuperAttributeToColumn{!27 enforce domain uml c: Class {!28 parent = sc: Class { }!29 };!30 enforce domain rdbms t: Table { };!31 when { ClassToTable(c,t) | (cc = c.parentOf & SuperAttributeToColumn(cc,t));}!32 where { AttributeToColumn(sc, t); }!33 } ...!

④  Annota?ng  the  UML2RDBMS  transf.  

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

A  set  of   non-­‐determinis?c  rela?ons   in  UML  to  RDBMS  direc?on

is  detected

④  Annota?ng  the  UML2RDBMS  transf.  

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

A  set  of   non-­‐determinis?c  rela?ons   in  UML  to  RDBMS  direc?on

is  detected

1transformation UML2RDBMS(uml:UML, rdbms:RDBMS) { ...! 2 top relation Class2Table {! 3 cn, an: String;! 4 enforce domain uml c:Class {! 5 is_persistent = true,! 6 name = cn,! 7 attrs = attr: Attribute { name = an}! 8 };! 9 enforce domain rdbms t:Table {!10 name = cn,!11 cols = col: Column { name = an }!12 };!13 when { ... }!14 where { Attribute2Column(c, t); }!15 }!16 relation Attribute2Column {!17 an, at : String;!18 enforce domain uml c:Class {!19 attrs = attr: Attribute { name = an, owner = c, is_primary = false }!20 };!21 enforce domain rdbms t:Table {!22 cols = col: Column { name = an, owner = t }!23 };!24 when { ... }!25 }!26 top relation SuperAttributeToColumn{!27 enforce domain uml c: Class {!28 parent = sc: Class { }!29 };!30 enforce domain rdbms t: Table { };!31 when { ClassToTable(c,t) | (cc = c.parentOf & SuperAttributeToColumn(cc,t));}!32 where { AttributeToColumn(sc, t); }!33 } ...!

Roadmap

Background

Contribu?on

Realiza?on

Applica?on

Challenges

Conclusion

Challenges

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Despite  the  analysis  is  completely  independent  from  JTL,  in  order  to  make  the  approach  completely  language-­‐independent  addi?onal  implementa?on  efforts  are  required

Language-­‐independent  approach

Analysis  of  formal  proper?es The  logical  founda?on  of  the  engine  makes  possible  the  verifica?on  of  different  formal  proper?es  by  transla?ng  them  in  ASP,  with  the  scope  to  provide  a  mean  for  improving  the  quality  of  model  transforma?on  specifica?ons

Roadmap

Background

Contribu?on

Realiza?on

Applica?on

Challenges

Conclusion

Conclusion

Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo

Bidirec?onal  transforma?ons  are  known  as  a  promising  approach  for  maintaining  models  in  a  consistent  state,  their  success  is  limites  by  seman?c  issues  and  intrinsic  characteris?cs This  work  represent  a  first  step  to  support  transforma?on  implementors  with  a  tool  capable  of  analyzing  transforma?ons  in  order  to  return  feedback  which  could  resolve  poten?al  problem,  such  as  non-­‐determinism

Thanks

Dipartimento di Ingegneria e Scienze

Università degli Studi dell’Aquila dell’Informazione e Matematica

Romina Eramo [email protected]