Menu

#9 QVTc2ATC and Launcher needs that make ATC outputs flexible

open
5
2009-08-04
2009-08-04
No

It is clear that a QVTc launch is different to an ATC launch, since QVTc is multi-directional, with an additional direction model defining the direction. However the launcher does not understand that this is a control model and so does not change the INOUT directions to IN or OUT and so avoid VTE trying to load output files.

The launcher was originally designed as a common front end to which model transformation engines could be bound. Either we make it more flexible or we create specific launchers per language. The first option seems better.

It is suggested that the direction model is to be used by QVTc2ATC so that a unidirectional ATC transformation is created that is 'optimised' for:

* unidirectional
* create/update
* check/enforce
* exact/partial output model (missing from the QVT spec)
* in place if appropriate
* optional trace generation

Creating an ATC transformation that does all of these dynamically leads inevitably to a substantially larger and at least slightly slower transformation.

Discussion

  • E. Victor Sanchez

    • summary: QVTc2ATC and Launcher needs to make ATC outputs flexible --> QVTc2ATC and Launcher needs that make ATC outputs flexible
     
  • E. Victor Sanchez

    More comments made about this idea. For development convenience, Víctor Roldan's initial version of QVTc2ATC preserved the multidirectional characteristics and used the INOUT parameters to support it.

    This makes QVTc2ATC much simpler: QVTc -> multi-purposeATC.

    It makes ATC much harder: LEFT <> MIDDLE <> RIGHT with a little meta-interpretation of DIRECTION to work out what <> is. The ATC launcher does not have the relevant meta-interpretation to adapt to a DIRECTION model content.

    If instead:

    QVTc2ATC is QVTc + DIRECTION -> single-purposeATC

    then ATC has the simpler behaviour of:

    LEFT -> MIDDLE + RIGHT
    or
    LEFT + RIGHT -> MIDDLE + CHECK
    or
    LEFT + RIGHT -> MIDDLE + updatedRIGHT
    or whatever.

    -----

    The above can all be done with ATC and launcher as they stand. It just needs QVTcATC to generate a DIRECTION-specific output.

    -----

    A QVTc launcher could offer DIRECTION and ENFORCE etc as checkboxes avoiding the need for user editing of a direction model. 'My' edit and editor plugins for the direction model are therefore just gratuitous bloat.

     

Log in to post a comment.

MongoDB Logo MongoDB