I was inspecting constraints on ObjectFlow (from BasicActivities,
CompleteActivities) in the UML Superstructure Specification, v2.2.
(page 389).
I am wondering if there wasn't an issue with one of them.
Indeed, constraint [2] Package BasicActivities specifies :
"Object nodes connected by an object flow, with optionally intervening
control nodes, must have compatible types. In
particular, the downstream object node type must be the same or a
supertype of the upstream object node type."
Shouldn't that be the case only when intervening object flows have no
transformation Behavior ?
Indeed, a transformation Behavior may replace a data value with
another (see Semantics, Package Activities), which would change the
expected type at the other end of the object flow.
In addition, constraint [2] Package Complete Activities, already
guarantee consistency in such a case :
"A transformation behavior has one input parameter and one output
parameter. The input parameter must be the same or a supertype of the
type of object token coming from the source end. The output parameter
must be the same or a subtype of the type of object token expected
downstream. The behavior cannot have side effects."
Thanks for your comments and opinion on this.
Vincent.