Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[papyrus-rt-dev] Protocol state machines (Was Re: First 0.9.0 bug (maybe))

Hi,

I checked a bit closer what Papyrus supports regarding protocol state machines. And from what I can see there is no specific support, at least not any specific diagram type, with a specific tool palette, for protocol state machines. And the ordinary state machine diagam only have a tool for ordinary Transitions, not ProtocolTransitions. You can create ProtocolTransitions in the model explorer, but it is a real pain since you have to manually select source and target.

So if we are going to support it, I have a bad feeling that we need to spend quite some time on improving the tooling for editing of the protocol state machines.

Also I was wondering if and how the refers_to_operation constraint will work in the context of UML-RT. I assume that the protocol state-machine will be owned by the protocol collaboration, right? So the context for the protocol state machine will be the collaboration. But if understand the constraint correctly (unfortunately my OCL knowledge is a bit limited), then the operation of the call event used as the trigger of the protocol transition, must be a feature of the collaboration itself. Since the operations are actually in the three interfaces, which the collaboration either realizes or uses, will this then work as intended?

refers_to_operation
If a ProtocolTransition refers to an Operation (i.e., has a CallEvent trigger corresponding to an Operation), then that Operation should apply to the context Classifier of the StateMachine of the ProtocolTransition.
inv: if (referred()->notEmpty() and containingStateMachine()._'context'->notEmpty()) then
containingStateMachine()._'context'.oclAsType(BehavioredClassifier).allFeatures()->includesAll(referred())
else true endif

/Peter Cigéhn

On 28 March 2017 at 19:48, Bran Selic <selic@xxxxxxx> wrote:
Thanks, Peter, for the quick response. A few additional notes below, prefixed by "[bvs]":

On Tue, Mar 28, 2017 at 11:13 AM, Peter Cigéhn <peter.cigehn@xxxxxxxxx> wrote:
Hi,

Some comments inline below.

/Peter Cigéhn

On 28 March 2017 at 16:31, Bran Selic <selic@xxxxxxx> wrote:


(3) Similarly, I think we must allow protocol state machines (standard UML ones are quite sufficient) to be associated with protocols.

This has probably not been considered. In my own experience they are not used that often in legacy. Should it be clarified more in the UML-RT profile document that this should be supported? What is the current support for protocol state-machines in Papyrus (considering if we just can bring that over "as-is" or if we must spend time on customizing and improving that as well, e.g. with respect to the constraints in the UML specification for what is allowed to be used in protocol state machines).

​[bvs] If I recall correctly, RSA did support this, but only as documentation. Still, it definitely adds value. People did not use it in Ericsson probably because they didn't know about it.​ (BTW, we were considering adding it in ROOM as well as linking such state machines in some formal way.)

Cheers... Bran

Back to the top