QVT 1.1 RTF Avatar
  1. OMG Issue

QVT11 — 9.18 The middle direction packages

  • Key: QVT11-6
  • Legacy Issue Number: 10941
  • Status: closed  
  • Source: Model Driven Solutions ( Ed Willink)
  • Summary:

    A Direction defines the packages used by each direction domain.

    Nothing defines the (additional) packages used by the middle area. For instance
    there is no place to specify the trace class model generated by the RelationToCore
    transformation. With many transformations and mappings in a QVTcore it does not
    seem appropriate to overload TransformationName or MappingName as a hook to
    reference the appropriate middle meta-models; different Mappings may have distinct
    middle meta-models; multiple transformations may share the same middle meta-model.
    (Core should be a first class programming language, not just one that supports
    the eccentricities of a RelationToCore conversion.)

    Suggest: a DirectionName between "where" and "(" in Mapping.

    This reads very naturally:

    map ...
    check left (...
    enforce right (...
    where middle (...

    But we also need to fix the Abstract Syntax. As a minimum a Mapping needs a
    middle-typed-model property to capture the missing information. With this addition
    a Mapping duplicates so much of a CoreDomain/Area, that it is more appropriate
    to eliminate Area altogether, merging it into CoreDomain. Area is eliminated
    from Mapping, and added as an additional CoreDomain referenced by the middleDomain
    property.

    So:

    CoreDomain extends Domain
    CoreDomain.variables : RealizedVariable [0..*] composed
    CoreDomain.bottomPattern : BottomPattern [1] composed
    CoreDomain.guardPattern : GuardPattern [1] composed

    Mapping extends Rule
    Rule.domain : Domain [0..*] composed (must be at least CoreDomain[3])
    Mapping.specification - no change
    Mapping.local - no change
    Mapping.context - no change
    Mapping.middle : CoreDomain [1] (must be in Rule.domain)

  • Reported: QVT 1.0 — Sun, 25 Mar 2007 04:00 GMT
  • Disposition: Resolved — QVT 1.1
  • Disposition Summary:

    The suggested changes may be convenient but they are not necessary:

    • the middle model can be anonymous
    • the middle area can be merged with the overall mapping.
      What is needed is a way to bind a middle metamodel to its TypedModel. This can be achieved by an
      anonymus direction bindng
  • Updated: Fri, 6 Mar 2015 20:58 GMT