arcadia 7; project layout_probe "Behavior layout Scene probe" id "10000000-0000-4000-8000-000000000001" { oa_entity sender "Sender" id "10000000-0000-4000-8000-000000000002" {} oa_entity receiver "Receiver" id "10000000-0000-4000-8000-000000000003" {} oa_activity inspect "Inspect" id "10000000-0000-4000-8000-000000000004" {} allocation inspect_assignment "Receiver performs inspection" id "10000000-0000-4000-8000-000000000005" { source @receiver; target @inspect; } communication_mean channel "Shared channel" id "10000000-0000-4000-8000-000000000006" { source @sender; target @receiver; oriented false; } oa_scenario conversation "Conversation" id "10000000-0000-4000-8000-000000000007" { viewpoint ParticipantInteraction; steps [@first, @second, @fragment, @self_call, @self_reply]; } oa_lifeline left "Sender role" id "10000000-0000-4000-8000-000000000008" { parent @conversation; represented @sender; } oa_lifeline right "Receiver role" id "10000000-0000-4000-8000-000000000009" { parent @conversation; represented @receiver; } oa_occurrence first "First delivery" id "10000000-0000-4000-8000-00000000000a" { parent @conversation; body { Exchange { exchange @channel; sender @left; receiver @right; message_kind Asynchronous; }; }; } oa_occurrence second "Second delivery" id "10000000-0000-4000-8000-00000000000b" { parent @conversation; body { Exchange { exchange @channel; sender @left; receiver @right; message_kind Asynchronous; }; }; } oa_occurrence fragment "Optional inspection" id "10000000-0000-4000-8000-00000000000c" { parent @conversation; body { Fragment { operator Optional; branches [@operand]; }; }; } oa_occurrence operand "When requested" id "10000000-0000-4000-8000-00000000000d" { parent @fragment; body { Branch { guard "requested"; occurrences [@nested]; }; }; } oa_occurrence nested "Inspection occurrence" id "10000000-0000-4000-8000-00000000000e" { parent @operand; body { Action { action @inspect; lifeline @right; }; }; } // Self calls intentionally have no global self-edge: such a relation is // invalid in the current metamodel. Their unassigned exchange is a known // incomplete-model warning, while explicit lifelines make Scene drawable. oa_occurrence self_call "Local call" id "10000000-0000-4000-8000-00000000000f" { parent @conversation; body { Exchange { exchange none; sender @right; receiver @right; message_kind Call; }; }; } oa_occurrence self_reply "Local reply" id "10000000-0000-4000-8000-000000000010" { parent @conversation; body { Exchange { exchange none; sender @right; receiver @right; message_kind Reply; reply_to @self_call; }; }; } }