InteractionOperand

0 votes
asked Feb 3, 2020 in Wanted features by g.edward.roberts (480 points)
I need to be able to have a dotted/dashed line across a group (including alt, etc.)...

Many of the CombinedFragment types have multiple InteractonOperand... these are shown as a dotted/dashed line across the CombinedFragment (not all the way across the Sequence Diagram)...
commented Feb 3, 2020 by g.edward.roberts (480 points)
edited Feb 3, 2020 by g.edward.roberts

I did a little more work... Here is the list of InteractionOperationKind in CombinedFragments from UML... 

InteractionOperationKindAbbreviationInteractionOperandsPlantUML
AssertionassertSingleSupports (group)
NegativenegSingleSupports (group)
OptionoptSingleSupports (opt)
LooploopSingleSupports (loop)
BreakbreakSingleSupports (break)
Weak SequencingseqMultipleNot Supported
Strict SequencingstrictMultipleNot Supported
Critical RegioncriticalMultipleSupported (critical)
ParallelparMultipleSupported (par)
IgnoreignoreMultipleNot Supported
ConsiderconsiderMultipleNot Supported
AlternativesaltMultipleSupports (alt)

The following would need to be done in plantUML to support UML 2.5.1 

1. Put seq, strict, ignore, consider in the BNF for CombinedFragments... like alt they can have multiple operands so they can use the "else" syntax

2. For the InteractionConstraint, e.g.   alt successful case      here successful case is the InteractionConstraint... the InteractionConstraint needs to be able to be over a certain lifeline

from the standard: "An InteractionConstraint is shown in square brackets covering the lifeline where the first event occurrence will occur,
positioned above that event, in the containing Interaction or InteractionOperand"

so it is above where the first Occurrence (e.g. send or receive message) is going to happen within the CombinedFragment

Would suggest that the BNF would be 

<InteractionOperationKind> <InteractionConstraints> over <Lifeline>

<InteractionConstraint> would need to be in quotes

3. The standard allows for "ignore and consider can be combined with other types of operations in a single rectangle" such as "assert consider {msgA, msgB}" ... this does not necessarily need to be supported if everything else is since one can just use two CombinedFragments

4, For Loops there are two strings associated with it.... one that goes next to the loop inside the pentagon header, and the second string which is the InteractionConstraint, so

loop "(3,5) {x<5}" "k>3"  would look like loop (3,5) {x<5} with the InteractionConstraint being [k>3]

5. Since Consider and Ignore have Operands but don't need InteractionConstraints... one can use what was going in the InteractionContraint to be next to the consider/ignore... typical examples would be   ignore "{msg1,msg2}" would appear in the heading as ignore {msg1,msg2}

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:

[Antispam2 Feature: please please wait 1 or 2 minutes (this message will disappear) before pressing the button otherwise it will fail](--------)
To avoid this verification in future, please log in or register.
...