Search code examples
umlactivity-diagram

Does UML allow a connection (delegation) between ports and activity parameters?


I found an example UML diagram which puzzles me:

enter image description here

I am not sure if this corresponds to UML 2.4.1 as no modeling tool I tried lets me create the connection. I looked up the specification and I think that the connection is not valid UML 2.4.1 because an activity parameter node is not a ConnectableElement, but I am not sure. However, the example is taken from the specification of the UML MARTE 1.1 profile by the OMG, which says

Note that this usage of connectors is compatible with the abstract syntax of UML, as both Property and Parameter are ConnectableElements

In the above figure, input is of type Activity Parameter Node which is special type of ObjectNode, similar but different to Pin. It is associate with parameters owned by the activity:

enter image description here

The connection in the figure is a delegation connector. As can be seen in the above hierarchy, ActivityParameterNode is not a ConnectableElement, so I think the statement in the UML MARTE specification is wrong.

Is this connection is valid UML 2.4.1 and should be supported by UML modelling tools?


Solution

  • This is no valid UML (neither 2.4.1 nor 2.5 or any prior one). It mixes behavior with static design. A port on a class is a static construct which allows to attach interfaces. An ActivityParameterNode in contrast is used to model "data flow" (it can send or receive objects via an ObjectFlow to/from Pins of Actions inside).

    This is (probably; my knowledge is not sufficient here) valid in MARTE. You can make it valid in your domain by introducing a profile which defines this language construct. Most likely you could use a MARTE profile for UML or an extension of it or (as said) you make your own.

    P.S.: I tried that in Enterprise Architect and it lets create me a Dependency or an InformationFlow between both.