1 / 24

Towards Transformation Rule Composition

Towards Transformation Rule Composition. Márk Asztalos, Eugene Syriani , Manuel Wimmer, and Marouane Kessentini. Outline. Context Rule Composition Composability Criteria Composition Procedure Example: UML  EJB 2.0  EJB 3.0 Conclusion. Context. Enterprise Development Company.

alindsey
Download Presentation

Towards Transformation Rule Composition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Towards Transformation Rule Composition Márk Asztalos, Eugene Syriani,Manuel Wimmer, and MarouaneKessentini

  2. Outline • Context • Rule Composition • Composability Criteria • Composition Procedure • Example: UML  EJB 2.0  EJB 3.0 • Conclusion

  3. Context Enterprise Development Company Requirements Design Development Maintenance

  4. Context Enterprise Development Company Design Development

  5. Context Enterprise Development Company Design Development v2.0 v3.0

  6. Is it possible to automatically derive T3?That is the question EJB 3 meta-model UML meta-model ? T3 T1 T2 EJB 2 meta-model

  7. Is it possible to automatically derive T3? • In general this is a very hard task • Instead we will try to solve the problem at the rule level UML class TO EJB2 archive b2:EJBArchive2 a1:Package a1:Package T T3 b3:DeployDesc UML class TO EJB3 archive c1:EJBArchive2 d2:EJBArchive3 c1:EJBArchive2 T T1 T2 a1:Package a1:Package d2:EJBArchive3 T EJB2 archive TO EJB3 archive

  8. Assumptions Transformation Chain • We assume an exogenous chain of transformations • Rules of the transformations are algebraic graph transformation rules [1] • Rules must produce traceability links such that every newly created element must have at least one trace link a1:Package a1:Package d2:EJBArchive3 T [1] H. Ehrig, K. Ehrig, U. Prange, G. Taentzer. Fundamentals of Algebraic Graph Transformation.EATCS, Springer-Verlag, 2006.

  9. What do we mean by composition? For any model m1, m2 = T1(m1) and m3 = T2(m2) we definem’ = T3(m1) = T2  T1(m1) such that: • Soundness & Completeness: • m1 is preserved in m’ • All elements produced by T2 are present in m’ • m’ contains no other elements then those in m3 • Elimination: • No element from m2 shall be present in m’ • No traceability link involving elements from MM2 must be present in m’ • Transitivity • If there is a trace link 12 between an element e1  m1 and an element e2 in m2AND there is a trace link 23 between e2 and an element e3  m3Then there must be a trace link 13  m’ between e1 and e3

  10. Assumptions Composability Criteria Two rules (LHS1 , RHS1) and (LHS2 , RHS2) are composable if: Every element in LHS2 that is part of MM2 is present in RHS1 b2:EJBArchive2 a1:Package a1:Package T b3:DeployDesc c1:EJBArchive2 d2:EJBArchive3 c1:EJBArchive2 T

  11. Rule Composition Procedure • The Composability Criteria specifies the pre-condition • The Composition Definition specifies the post-condition • In [1], Ehrig et. al. have proven that the composition of two graph transformation rules is possible [1] H. Ehrig, K. Ehrig, U. Prange, G. Taentzer. Fundamentals of Algebraic Graph Transformation.EATCS, Springer-Verlag, 2006.

  12. Graph Transformation Rule Application L R K gLink gLink right right m right gLink right gLink left up down up down left right up down up down right pLink fLink left pLink fLink G left H If there exists an occurrence of L in G then replace it with R

  13. Rule Composition Procedure • In [1], Ehrig et. al. have proven that the composition of two graph transformation rules is possible • By computing the so-called E-concurrent graph of the two rules • BUT the theorem does not say how to precisely construct the new rule r’ = r2 r1 • How to construct the L,K, and R parts of r’? [1] H. Ehrig, K. Ehrig, U. Prange, G. Taentzer. Fundamentals of Algebraic Graph Transformation.EATCS, Springer-Verlag, 2006.

  14. Rule Composition Procedure Eliminate MM2 elements and related trace links and compute transitive trace links b2:EJBArchive2 d2:EJBArchive3 a1,b2 b2,d2 a1:Package a1,d2 b3:DeployDesc a1,b3

  15. Rule Composition Procedure E: T a1:Package d2:EJBArchive3 R3: b2:EJBArchive2 b2:EJBArchive2 b2:EJBArchive2 b2:EJBArchive2 r1: a1:Package a1:Package a1:Package a1:Package a1:Package T T T T b3:DeployDesc b3:DeployDesc b2:EJBArchive2 T T r2: c1:EJBArchive2 c1:EJBArchive2 c1:EJBArchive2 d2:EJBArchive3 d2:EJBArchive3 T T a1:Package d2:EJBArchive3 T b3:DeployDesc T r3: • a1:Package • a1:Package d2:EJBArchive3 T

  16. Rule Composition Procedure Negative Application Conditions • If the NAC of r1 corresponds to its RHS, then add a NAC to r3 that corresponds to its RHS • If the NAC of r2 corresponds to its RHS, then it is taken into account when applying r2 on E • Considering other arbitrary NACs is not trivial, as they can be • Overlapping with the LHS • Completely independent from the LHS In either case, need knowledge of other rules involved

  17. Solving the UMLEJB2 EJB3 migration case EJB 3 meta-model UML meta-model T3 T1 T2 EJB 2 meta-model

  18. UMLEJB2 EJB3 Composition UML Class Diagram TO EJB 2.0 b2:EJBArchive2 b2:EJBArchive2 R1: a1:Package a1:Package a1:Package T T b3:DeployDesc b3:DeployDesc a4:Class b6:Interface b5:SessionBean b6:Interface b6:Interface b5:SessionBean b6:Interface b5:EntityBean a4:Class b5:EntityBean b2:EJBArchive2 b2:EJBArchive2 name = a4.name name = a4.name name = a4.name name = a4.name isPersistent = false isPersistent = true name = a4.name name = a4.name name = a4.name name = a4.name T T b2:EJBArchive2 b3:DeployDesc b3:DeployDesc a1:Package a1:Package T b7:EntityEntry b7:EntityEntry R2: b3:DeployDesc a1:Package a4:Class a4:Class T T b2:EJBArchive2 b2:EJBArchive2 T T b2:EJBArchive2 b3:DeployDesc b3:DeployDesc a1:Package a1:Package T b7:SessionEntry b7:SessionEntry b3:DeployDesc R3: isStateful = false isStateful = false a1:Package a4:Class T a4:Class T

  19. UMLEJB2 EJB3 Composition EJB 2.0 TO EJB 3.0 R1: c1:EJBArchive2 d2:EJBArchive3 c1:EJBArchive2 c1:EJBArchive2 d2:EJBArchive3 T T d2:EJBArchive3 T d2:EJBArchive3 T d2:EJBArchive3 T c1:EJBArchive2 c1:EJBArchive2 d6:EntityBean R2: d6:EntityBean name = c4.name c1:EJBArchive2 name = c4.name c4:EntityBean T c4:EntityBean T d7:Interface d7:Interface c4:EntityBean name = c4.name name = c4.name d2:EJBArchive3 d2:EJBArchive3 T d2:EJBArchive3 T T d6:SessionBean d6:SessionBean c1:EJBArchive2 c1:EJBArchive2 c1:EJBArchive2 R3: name = c3.name name = c3.name c3:SessionBean d7:Interface c3:SessionBean d7:Interface c3:SessionBean T T name = c3.name name = c3.name c5:SessionEntry c5:SessionEntry c5:SessionEntry d8:Stateless isStateful = false d8:Stateless d2:EJBArchive3 T d2:EJBArchive3 d2:EJBArchive3 T T d6:SessionBean d6:SessionBean c1:EJBArchive2 c1:EJBArchive2 R4: c1:EJBArchive2 name = c3.name name = c3.name d7:Interface c3:SessionBean c3:SessionBean d7:Interface c3:SessionBean T T name = c3.name name = c3.name c5:SessionEntry c5:SessionEntry d8:Stateful c5:SessionEntry d8:Stateful isStateful = true

  20. UMLEJB2 EJB3 Composition Composability Matrix

  21. UMLEJB2 EJB3 Composition T3:R1 = T2:R1 T1:R1 b2:EJBArchive2 b2:EJBArchive2 c1:EJBArchive2 d2:EJBArchive3 c1:EJBArchive2 c1:EJBArchive2 d2:EJBArchive3 T T a1:Package a1:Package a1:Package T T b3:DeployDesc b3:DeployDesc  = a1:Package d2:EJBArchive3 a1:Package d2:EJBArchive3 a1:Package T T

  22. UMLEJB2 EJB3 Composition T3:R2 = T2:R2 T1:R2 d2:EJBArchive3 T d2:EJBArchive3 T d2:EJBArchive3 T c1:EJBArchive2 c1:EJBArchive2 d6:EntityBean d6:EntityBean name = c4.name c1:EJBArchive2 name = c4.name c4:EntityBean T c4:EntityBean T d7:Interface  d7:Interface c4:EntityBean name = c4.name name = c4.name =

  23. UMLEJB2 EJB3 Composition T3:R3 = T2:R3 T1:R3  =

  24. Conclusion • Composition procedure • Given two transformation rules • Produces the composite of the two rules (transitive closure) • Composition detection • Implemented in • ATL: compiled to graph transformation rules • EMF Tiger: • detect composable rules • Output the composite rule • How to deal with more complex transformation? • Arbitrary NACs • Arbitrary attribute constraints • Workflow structure (priority, layer, explicit control flow, ...)

More Related