I’ve seen that Capella allows to modify port direction by double clicking on it. This option is quite useful in order to define by-directional exchanges.
However, I’ve realized that modifying the ports directions does not modify the exchange direction.
Indeed, once an exchange is created, we can switch the direction of both ports. But in the semantic browser, the exchange will still be seen as an incoming or outgoing exchange based on what was defined at creation of the exchange.
Wouldn’t it be more convenient to synchronize the definition of exchange direction with the direction of ports?
Is there a methodological reason behind this distinction between ports and exchange directions?
No there is no methodological reason behind that and the tooling should probably be slightly improved.
The source and target of a component exchange are determined at creation time. If ultimately the directions on source and target port are changed, the component exchange is never updated. There should at least be a validation rule and an associated quick fix.
I would suggest to submit a defect in Capella’s bugzilla.
Thanks for your answer. There is indeed a validation rule and a quick fix associated to this topic.
However, the action need to be launched manually. It would be nice to have a synchronization in the definition of ports and exchange direction.
Moreover, when defining an in/out port (bi-directional exchange), the validation rule finds no mistake and the exchange direction is unchanged. It should be referred as both incoming and outgoing.
I will post a defect in Capella’s bugzilla.
The fact that the component port is in/out does not mean the component exchange has to become bidirectional. It means it can both be the source and the target of a component exchange. A component exchange has always a source AND a target.
On-the-fly synchronization is not that easy, there are moment in between when the model would be wrong anyway.
Do you mean that from a methodological point of view, a bidirectional exchange should not exist?
I am just saying that from a metamodel point of view (in compliance with Arcadia), a component exchange is always oriented (unlike physical links): it has one source and one target, even though the source and target ports can both be in/out.