I found an example UML diagram which puzzles me:
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:
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?
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 Pin
s of Action
s 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.