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:
|1.||Select an interaction fragment with more than one condition defined; up and down arrows appear on the right hand side of the each condition.|
|2.||Click on the appropriate arrow to change the order.|
|·||In order to select a Combined Fragment, you must click near the inside edge or drag a selection rectangle around the Fragment; this prevents accidental selection when moving connectors 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 message sequence within the Fragment, press and hold ( Alt ) as you move it|
|·||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 indicate whether or not the fragment contains Messages and 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, display the 'move freely' element 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|
|·||Interaction Operand Condition and Message Behavior (in Model Simulation)|
OMG UML Specification
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 467) states:
A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of CombinedFragments the user will be able to describe a number of traces in a compact and concise manner.