A Combined Fragment reflects one or more aspects of interaction (called interaction operands) controlled by an interaction operator, with corresponding Boolean conditions known as interaction constraints. The Fragment displays as a transparent window, divided by horizontal lines for each operand.
This Sequence diagram illustrates the use of Combined Fragments in modeling a simplified purchasing process. A loop fragment represents iteration through an unknown number of items for purchase, after which the cashier requests payment. An alternative fragment represents the payment options, the fragment being divided to show the two operands cash and credit card. After the fragment completes its trace, the cashier gives a receipt to the customer, under the fulfilled condition that payment requirements were met.
The order of interaction fragment conditions can be changed directly on the diagram:
- Select an interaction fragment with more than one condition defined; up and down arrows appear on the right hand side of each condition.
- Click on the appropriate arrow to change the order.
Selecting and Moving a Combined Fragment
In order to select a Combined Fragment, you must click near the inside edge or drag a selection rectangle around the Fragment; this is designed to prevent accidental selection when moving Messages inside the Fragment.
Once contained within a Fragment or a Fragment Operand, Messages continue to be contained by it as they are moved up and down the diagram. To move a Message out of a Fragment, or to a different position in the sequence within the Fragment, press and hold theas you drag the Message into position. A Fragment on a Sequence diagram will resize when a Message within it is moved up or down, to continue to contain that Message.
When you select an Interaction Fragment on a diagram, it shows one of two element icons (off the top right corner) that control how freely you can move the fragment and any Messages within and below the fragment.
To move a Combined Fragment independently of its contents, make sure the 'move freely' element icon is visible; if it is not shown, click on the 'move contents' icon and drag the element border.
Interaction Fragments inside a Combined Fragment operand cannot be moved outside the operand unless the fragment is in 'move freely' mode. Moving an operand line moves any objects and Messages below that line down or up by the amount the operand line is moved.
Fragments containing other fragments resize when the contained fragment is resized (unless the fragment is in 'move freely' mode).
Whilst an Interaction Fragment usually encloses a number of other elements, there might be reasons for hiding those elements as well as times to fully show them, or perhaps just indicate that they are there, depending on the immediate purpose of the diagram. You can apply these nuances in the display of elements behind and covered or overlapped by an Interaction Fragment, by changing the opacity of the element.
Before setting the opacity, check that the element has a fill color.
You set the opacity using an icon from either of these two pop-up element toolbars:
- Click on the Interaction Fragment element and on the icon:
- Right-click on the Interaction Fragment element and look above the context menu:
Click on the icon and select:
- 100% for total opacity, where the elements behind and overlapping or covered by the Interaction Fragment are hidden (you could right-click on individual elements and select the 'Z-Order | Bring to Top' option to expose those elements only)
- 0% for no opacity, where the fill color is not applied and anything behind the Interaction Fragment is fully visible
- 75%, 50% or 25% to set the appropriate degree of opacity and make the covered elements visible but over-shaded
- Sequence Diagram
- Interaction Operand Condition and Message Behavior (in Model Simulation)
- The Context Buttons
OMG UML Specification
The OMG Unified Modeling Language specification, (v2.5.1, p.607) states:
A CombinedFragment defines an expression of InteractionFragments. A CombinedFragment is defined by an interaction operator and corresponding InteractionOperands. Through the use of CombinedFragments the user will be able to describe a number of traces in a compact and concise manner.