|Modeling interactions between parts through owned ports [message #786517]
||Mon, 30 January 2012 14:23
| Klaas Gadeyne
Registered: July 2009
I am working on a component-based system, where interaction between components always happens through ports. The ports are typed by interfaces. In the interfaces I specify operations.
A component(container) can contain parts, which are typed by other components. The container component thus provides a usage context for its parts. In a sequence diagram I want to zoom-in on some important interactions between the parts.
I have three components A,B and C, each have one port called activationPort which is typed by the Activation interface.
The Activation interface contains one operation: Step()
Component A contains two parts:
part1 is typed by B
part2 is typed by C
In a sequence diagram I want to model that when the something outside A, calls Step() of A, it will result in first calling Step() of part1 (through its activationPort) and after that calling Step() of part2 (through its activationPort).
It doesn't seem possible, or I don't know how I can elegantly do this within Papyrus:
• I am not seeing abilities to show parts or ports as inner connectable elements on the diagram.
• when I just add a lifeline representing a part (so a lifeline L1 'represents' part1), and I create a synchronous message (call) to that lifeline, then I cannot select an existing element. I would expect that I could select the Step operation of its activationPort.
Btw, when I create a lifeline which represents one of the activationPort's, then I am able to select the Step operation. This method is not fulfilling my needs as from the diagram I cannot see to which part the port belongs to.
Btw, I am using Papyrus distributed within the Topcased 5.1.0 RCP
Attached/below you can find a sequence diagram, created with another tool, which would fulfill my needs.
Hopefully, my explanation is clear and someone can give me an answer on how to do this within Papyrus.
Powered by FUDForum
. Page generated in 0.01799 seconds