EDOC 1.0 NO IDEA Avatar
  1. OMG Issue

EDOC — The representation/parameter derived association

  • Key: EDOC-68
  • Legacy Issue Number: 4867
  • Status: open  
  • Source: Model Driven Solutions ( Mr. Ed Seidewitz)
  • Summary:

    Document: UML Profile and Interchange Models for EAI
    Section: 6.2.5 (EAITerminal)

    Description:
    The representation/parameter association is marked as <<derived>> in Figure 6-6, however no clear description is given on how it is derived.

    Recommendation:
    I think the intent is that the terminal represents an FCMParameter of an operation associated with the FCMNode to which the terminal is attached. However, given the associations and navigabilities shown in Figure 6-2, this really cannot be done as a single constraint. Instead, it needs to be done as separate constraints on each kind of FCMNode:

    FCMFunction:
    An FCMFunction has FCMTerminals that represent each of the parameters of the FCMOperation invoked by the FCMFunction.
    (self.interface->select(terminalKind = #in).parameter = self.invokes.inputs) and
    (self.interface->select(terminalKind = #out).parameter = self.invokes.outputs) and
    (self.interface->select(terminalKind = #fault).parameter = self.invokes.faults)

    FCMSource:
    An FCMSource has a output terminals that represents the input parameters of the operation implemented by the FCMSource. (Note that a source has OUTPUT terminals, but these terminals represent the INPUT parameters within the composition that implements the operation.)

    (self.interface->forAll(terminalKind = #out)) and
    (self.interface.parameter = self.implements.inputs)

    FCMSink:
    An FCMSink has a single input terminal that represents a single output (or fault) parameter of the operation implemented by the FCMSource associated with the FCMSink. (Note that a source has an INPUT terminal, but this terminal represents an OUTPUT parameter within the composition that implements the operation.)

    (self.interface->size() = 1) and (self.interface.terminalKind = #in) and
    self.source.implements.outputs->union(self.source.implements.faults)->includesAll(self.interface)

  • Reported: EDOC 1.0b1 — Wed, 20 Feb 2002 05:00 GMT
  • Updated: Mon, 9 Mar 2015 03:20 GMT