|
|
Note: when composing tracelinks at (d), you should take into account the traces generated by the cloning step at (a), so merge_links is a bit too simplistic on the next slides (would take another -:AD2AD-> link in the pattern when I do the cloning…
Possible answer: change merge_tracelinks_AD_PN_SC to merge_tracelinks_AD_AD_PN_SC and add a “-:AD2AD-> . ” between src:Node and “-:AN2SC->” in the LHS.
Possible answer: change merge_tracelinks_AD_PN_SC to merge_tracelinks_AD_AD_PN_SC and add a “-:AD2AD-> . ” between src:Node and “-:AN2SC->” in the LHS.
Applying traceability and cloning techniques to compose input-destructive model transformations into an input-preserving chain Pieter Van Gorp Assistant Professor (UD) Information Systems Group, School of Industrial Engineering Eindhoven University of Technology (TU/e), The Netherlands http://is.ieis.tue.nl/staff/pvgorp/research/ 1st Workshop on Composition and Evolution of Model Transformations September 30, 2011 King's College, London, UK
Assets: mature modeling languages Special purpose translations Desirable: reuse translation algorithms Challenge: algorithms that destroy the input model input-preserving chain with traceability links desirable Contributions: use of trace composition use of model cloning evaluation of GT approach Evaluation (Case Study): PN2SC: input-destructive translation reuse in input-preserving AD2SC
Presentation Outline
Input-Destructive? [Bisztray et al.] Well-known Transformation Technique Comparison Study: UML2CSP
Input-Destructive? [Bisztray et al.] Well-known Transformation Technique Comparison Study: UML2CSP Conceptually NOT input-destructive But… …
UML2CSP: Comparing Approaches [AGTIVE 2007 Tool Contest] 11 Solution Approaches
UML2CSP: Comparing Approaches [AGTIVE 2007 Tool Contest] 6 Classification Features
UML2CSP: Input Destructive? Can be done differently, but what if we wish to reuse the input destructive ones (why: see other cells) This WS: Composition & Reuse (not about re-implementing as input-preserving…)
Presentation Outline
PN2SC: Input/Output Examples (1/3) Easy, right? No special rule control needed (ATL etc. are fine)
PN2SC: Input/Output Examples (2/3) More challenging… N levels of nested concurrent regions Unbalanced Fork/Join combinations (!) Special rule control needed (ATL etc. in trouble)
PN2SC: Input/Output Examples (3/3) Cross-synchronization “Semi-structured” flow Occurs in practice
Solution: bottom-up net reduction Consequence: Conceptual Mapping Rules are Input-Destructive Reuse Challenge! Eshuis, FM2010
Presentation Outline
Debug Sequence Goal: Understand Input Model Destruction
Presentation Outline
AD2SC: Input/Output Example Reuse of PN2SC highly desirable Chain also involves normalization and filtering steps How to support input-preservation and traceability?
AD2SC: Chain overview
AD2SC: Chain overview PN2SC Reuse New Rules
AD2SC: input-preserving, end2end traces Expected Effect
Presentation Outline
Debug Sequence (of filtering rules) Goal: Understand Input Model Destruction
Challenges, Revisited PN2SC subtransformation is input-destructive Good news: the Petri-Net is just an intermediate artifact Extra: the filtering rules are also input-destructive! Bad news: their input is the input of the chain
Presentation Outline
Challenges, as 2 Research Questions When intermediate models are destroyed, how can a composite transformation: preserve the complete input model? (RQ1) Application: input-destructive filtering rules support end-to-end traceability? (RQ2) Application: input-destructive PN2SC
Generic Solution Techniques: When an intermediate model is destroyed, clone it, if it is first in the chain Application: input-destructive filtering rules compose traceability links before destroying its elements (but obviously after creating corresponding output elements) Application: input-destructive PN2SC
Quiz
When to: (1) compose links, (2) clone models? (a) (b) (c) (d) (a): (2) (b): -- (c): -- (d): (1)
Presentation Outline
Implementation of Trace Composition Rule Definition Rule Orchestration
rule ActivityNode2Place { src:in!ActivityNode\(CentralBufferNode+ANDNode); modify { src -:traces!AN2PNE-> p: out!Place; eval { p.name= src.name; } } } Implementation of Cloning Not (yet) Implemented, since: Feedback to the GT community: Need explicit Model scope e.g., Matches ALL activity diagram elements Work-arounds are inferior to ATL/ETL/… in,traces,out are model variables bound in orchestration script (cfr., ATL/ETL run configurations)
Trace Composition, Revised Rule Definition Rule Orchestration Q: how to take into account that AD was cloned? Possible answer: change merge_tracelinks_AD_PN_SC to merge_tracelinks_AD_AD_PN_SC and add a “-:AD2AD-> . ” between “src:Node” and “-:AN2SC->” in the LHS.
Presentation Outline
Two techniques enable the composition of input-destructive transformations into input-preserving transformation chains with traceability support: Trace composition Intermediate model copies Evaluation of Graph Transformation Approach: Trace composition supported particularly well Copying intermediate models would benefit from improved scoping mechanism Questions? Le Penseur, Musée Rodin, Paris
Summary: Presentation given at the 1st Workshop on Composition and Evolution of Model Transformations, September 30, 2011 (King's College, London, UK)
| URL: |
No comments posted yet
Comments