Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [henshin-dev] questions on: trace model, static analysis and the graphical editor

Hi Matthias,
thanks for using our tool. Please read on...

Hi,

First of all, thanks for henshin, it is a great model transformation tool.

1.) Does henshin produce a trace model (similar to qvt) or are there
some framework functions that can help me build one?
Background: I have a number of transformation rules that are executed
on an source model. In the target model I would like to point at a
certain model element and find out which transformation rule has
created it. A trace model could help me find out.

  
Currently there exists no trace model. What we usually do is to create a trace model for every transformation by hand (an ecore model that links the source to the target model). I'm not sure whether a general trace model will be included into Henshin at some point. We still have to discuss this. That's why I'm also forwarding this mail to the emftrans-mailing list.

2.) On the homepage I read that static analysis of the transformation
is one of the selling points of henshin. Are there already library
functions available for static analysis?
  
There exists a preliminary version of a state-space exploration tool. You can create a statespace file, import your transformation rules and an initial state (e.g. an example source model instance), and generate the state space for it (double-click on a state or use the exploration tool). We want to include  model checking later as well, but this will take some time. Confluence / termination checks are cuurrently not implemented. We still have to use AGG for that.
3.) The graphical editor apparently has a check to allow only edges
between model elements, which have a defined relationship in the ecore
metamodel. However, this check does not take inheritance into
consideration. Example: EClass A has a EReference named b to EClass B,
EClass C inherits from A. According to the inheritance rules, every C
should have a reference to B. However, the graphical editor does not
allow me to draw an edge between C and B.
  
That looks like a bug. I currently do not have the time to fix it but maybe someone else can do it. Anyway, thanks for letting us know.

Cheers,
Christian
Thanks,
Matt

Back to the top