Complete source 6 engineering workflows and preserve release validation evidence
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# Existing-core interface-operation expressivity probe
|
||||
|
||||
`probe.rs` is a standalone executable using the unchanged shared core. It writes
|
||||
three deterministic complete model/source snapshots under a supplied directory.
|
||||
There is no proposed DTO implemented in this helper and no native input.
|
||||
|
||||
Observed result, 2026-09-06:
|
||||
|
||||
- Valid baseline:12 elements/5 relations, one System/Actor pair, two Standard
|
||||
ports, one boundary/interface, two Synchronous parameterless Operation items,
|
||||
two participant lifelines and two Calls.
|
||||
- Both Calls' typed bodies are identical. Their names express different intent;
|
||||
neither Call references its intended item/allocation identity.
|
||||
- Using item or allocation as the existing exchange reference rejects with
|
||||
`occurrence_exchange`; adding an `operation` field to the typed JSON rejects as
|
||||
unknown. No undiscovered existing selector is being relabeled missing.
|
||||
- Renaming then deleting Reset preserves the Call body and leaves the Call
|
||||
structurally valid, because there is no maintained operation-use reference.
|
||||
- Explicit functional refinement distinguishes the two messages and preserves the
|
||||
same boundary, but adds6 elements (two Functions/four ports) and10 relationships.
|
||||
It is a real alternative when that refinement is intended, not a zero-cost
|
||||
encoding of the unrefined interface-only model.
|
||||
- All three output models pass complete source and JSON round trips. No core or
|
||||
desktop production file was changed.
|
||||
|
||||
The first helper compile lacked explicit validation imports; initial construction
|
||||
also used the disabled generic Port factory and reversed Allocation/PortAllocation
|
||||
directions. Those helper errors were corrected before the successful full run.
|
||||
They are not product defects. Final compilation used `-D warnings` and succeeded.
|
||||
|
||||
Reproduce only after coordinating stable rlibs/shared resources:
|
||||
|
||||
```powershell
|
||||
. .local/toolchain/env.ps1
|
||||
rustc --edition 2024 -D warnings -C linker=clang.exe --extern oa_core=.local/target-gnullvm/debug/deps/liboa_core-6c8da57367eec642.rlib --extern serde_json=.local/target-gnullvm/debug/deps/libserde_json-da2c4f333fc47818.rlib -L dependency=.local/target-gnullvm/debug/deps harness/fixtures/interface-operation-probe/probe.rs -o .local/native-fixtures/interface-operation-probe.exe
|
||||
.local/native-fixtures/interface-operation-probe.exe NEW_OUTPUT_DIRECTORY
|
||||
```
|
||||
|
||||
Final output is retained in `.local/native-fixtures/interface-operation-probe.log`.
|
||||
The tracked `output/` files are probe oracles, not native acceptance fixtures.
|
||||
See [the proposed contract](../../release-interface-operation-contract-20260906.md).
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"algorithm": "SHA256",
|
||||
"core_rlib": "e53a68018ab470f3d1e3c024a06fc0b5f1618d1495e6095716e9c4d9105680e0",
|
||||
"serde_json_rlib": "6fd0f5ebc7956d12d0828f218368abdb366f73e075fbe745259ba7f736be1f3f",
|
||||
"files": {
|
||||
"output/after-reset-deletion.arcadia": "c0fe9570684c0061efc4cad65e339fede6961b04ca90c6f324c787bd65e61226",
|
||||
"output/after-reset-deletion.json": "93187f7a1b476a44185725c6b15f2e1767482b6911ab1280144348d033eb51f0",
|
||||
"output/boundary-only.arcadia": "02f85e39957ebe6d56336fa729a5c8b10f51865face9d3b2c9679200571fcfc7",
|
||||
"output/boundary-only.json": "756f9710336e6734ce3592ca774c6f104bba5a37c9e165540eb39326682393d1",
|
||||
"output/explicit-functional-refinement.arcadia": "ac5b629ba5596464f9f8a975b8bc2764e3007ceb7342de3f828d4b18e4f069b7",
|
||||
"output/explicit-functional-refinement.json": "78a47c978dc667aa1c45af711f06aa2a0d3c581003013e30c3e02fb0faae2e64",
|
||||
"probe.rs": "72b1b443e25eb20420dec4477b0fb5ef5d1c705e3882c81df88dd578ab96a426"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
arcadia 6;
|
||||
project mission "Two operations, one interface" id "52060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
sa_actor operation_probe_10 "Operator console" id "52060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system operation_probe_11 "Valve service" id "52060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port operation_probe_12 "Service socket" id "52060906-0000-4000-8000-00000000000c" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_port operation_probe_13 "Service socket" id "52060906-0000-4000-8000-00000000000d" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_21 "ReadStatus" id "52060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_interface operation_probe_22 "Valve commands" id "52060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_scenario operation_probe_40 "Reset then read status" id "52060906-0000-4000-8000-000000000028" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@operation_probe_43, @operation_probe_44];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_41 "Service participant" id "52060906-0000-4000-8000-000000000029" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_42 "Service participant" id "52060906-0000-4000-8000-00000000002a" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_43 "Call Reset" id "52060906-0000-4000-8000-00000000002b" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_44 "Call ReadStatus" id "52060906-0000-4000-8000-00000000002c" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_31 "InterfaceItemAllocation 31" id "52060906-0000-4000-8000-00000000001f" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_21;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_requirement operation_probe_32 "InterfaceRequirement 32" id "52060906-0000-4000-8000-000000000020" {
|
||||
description "";
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
interface_provision operation_probe_33 "InterfaceProvision 33" id "52060906-0000-4000-8000-000000000021" {
|
||||
description "";
|
||||
source @operation_probe_13;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
boundary_exchange operation_probe_34 "BoundaryExchange 34" id "52060906-0000-4000-8000-000000000022" {
|
||||
description "";
|
||||
items [@operation_probe_21];
|
||||
oriented false;
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_13;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,276 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "52060906-0000-4000-8000-000000000001",
|
||||
"alias": "mission",
|
||||
"name": "Two operations, one interface",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"52060906-0000-4000-8000-00000000000a": {
|
||||
"id": "52060906-0000-4000-8000-00000000000a",
|
||||
"alias": "operation_probe_10",
|
||||
"name": "Operator console",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000b": {
|
||||
"id": "52060906-0000-4000-8000-00000000000b",
|
||||
"alias": "operation_probe_11",
|
||||
"name": "Valve service",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000c": {
|
||||
"id": "52060906-0000-4000-8000-00000000000c",
|
||||
"alias": "operation_probe_12",
|
||||
"name": "Service socket",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-00000000000a",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000d": {
|
||||
"id": "52060906-0000-4000-8000-00000000000d",
|
||||
"alias": "operation_probe_13",
|
||||
"name": "Service socket",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-00000000000b",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000015": {
|
||||
"id": "52060906-0000-4000-8000-000000000015",
|
||||
"alias": "operation_probe_21",
|
||||
"name": "ReadStatus",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"ExchangeItem": {
|
||||
"kind": "Information",
|
||||
"mechanism": "Operation",
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000016": {
|
||||
"id": "52060906-0000-4000-8000-000000000016",
|
||||
"alias": "operation_probe_22",
|
||||
"name": "Valve commands",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Interface": {
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000028": {
|
||||
"id": "52060906-0000-4000-8000-000000000028",
|
||||
"alias": "operation_probe_40",
|
||||
"name": "Reset then read status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "BoundaryInterface",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"52060906-0000-4000-8000-00000000002b",
|
||||
"52060906-0000-4000-8000-00000000002c"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000029": {
|
||||
"id": "52060906-0000-4000-8000-000000000029",
|
||||
"alias": "operation_probe_41",
|
||||
"name": "Service participant",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "52060906-0000-4000-8000-00000000000a"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002a": {
|
||||
"id": "52060906-0000-4000-8000-00000000002a",
|
||||
"alias": "operation_probe_42",
|
||||
"name": "Service participant",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "52060906-0000-4000-8000-00000000000b"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002b": {
|
||||
"id": "52060906-0000-4000-8000-00000000002b",
|
||||
"alias": "operation_probe_43",
|
||||
"name": "Call Reset",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "52060906-0000-4000-8000-000000000022",
|
||||
"sender": "52060906-0000-4000-8000-000000000029",
|
||||
"receiver": "52060906-0000-4000-8000-00000000002a",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002c": {
|
||||
"id": "52060906-0000-4000-8000-00000000002c",
|
||||
"alias": "operation_probe_44",
|
||||
"name": "Call ReadStatus",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "52060906-0000-4000-8000-000000000022",
|
||||
"sender": "52060906-0000-4000-8000-000000000029",
|
||||
"receiver": "52060906-0000-4000-8000-00000000002a",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"52060906-0000-4000-8000-00000000001f": {
|
||||
"id": "52060906-0000-4000-8000-00000000001f",
|
||||
"alias": "operation_probe_31",
|
||||
"name": "InterfaceItemAllocation 31",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceItemAllocation": {
|
||||
"source": "52060906-0000-4000-8000-000000000016",
|
||||
"target": "52060906-0000-4000-8000-000000000015",
|
||||
"order": 0,
|
||||
"transmission": "Synchronous",
|
||||
"acquisition": "Unspecified"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000020": {
|
||||
"id": "52060906-0000-4000-8000-000000000020",
|
||||
"alias": "operation_probe_32",
|
||||
"name": "InterfaceRequirement 32",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceRequirement": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-000000000016"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000021": {
|
||||
"id": "52060906-0000-4000-8000-000000000021",
|
||||
"alias": "operation_probe_33",
|
||||
"name": "InterfaceProvision 33",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceProvision": {
|
||||
"source": "52060906-0000-4000-8000-00000000000d",
|
||||
"target": "52060906-0000-4000-8000-000000000016"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000022": {
|
||||
"id": "52060906-0000-4000-8000-000000000022",
|
||||
"alias": "operation_probe_34",
|
||||
"name": "BoundaryExchange 34",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-00000000000d",
|
||||
"oriented": false,
|
||||
"items": [
|
||||
"52060906-0000-4000-8000-000000000015"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {},
|
||||
"artifact_links": {},
|
||||
"traces": {}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
arcadia 6;
|
||||
project mission "Two operations, one interface" id "52060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
sa_actor operation_probe_10 "Operator console" id "52060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system operation_probe_11 "Valve service" id "52060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port operation_probe_12 "Service socket" id "52060906-0000-4000-8000-00000000000c" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_port operation_probe_13 "Service socket" id "52060906-0000-4000-8000-00000000000d" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_20 "Reset" id "52060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_21 "ReadStatus" id "52060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_interface operation_probe_22 "Valve commands" id "52060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_scenario operation_probe_40 "Reset then read status" id "52060906-0000-4000-8000-000000000028" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@operation_probe_43, @operation_probe_44];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_41 "Service participant" id "52060906-0000-4000-8000-000000000029" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_42 "Service participant" id "52060906-0000-4000-8000-00000000002a" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_43 "Call Reset" id "52060906-0000-4000-8000-00000000002b" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_44 "Call ReadStatus" id "52060906-0000-4000-8000-00000000002c" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_30 "InterfaceItemAllocation 30" id "52060906-0000-4000-8000-00000000001e" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_20;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_31 "InterfaceItemAllocation 31" id "52060906-0000-4000-8000-00000000001f" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_21;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_requirement operation_probe_32 "InterfaceRequirement 32" id "52060906-0000-4000-8000-000000000020" {
|
||||
description "";
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
interface_provision operation_probe_33 "InterfaceProvision 33" id "52060906-0000-4000-8000-000000000021" {
|
||||
description "";
|
||||
source @operation_probe_13;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
boundary_exchange operation_probe_34 "BoundaryExchange 34" id "52060906-0000-4000-8000-000000000022" {
|
||||
description "";
|
||||
items [@operation_probe_20, @operation_probe_21];
|
||||
oriented false;
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_13;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,310 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "52060906-0000-4000-8000-000000000001",
|
||||
"alias": "mission",
|
||||
"name": "Two operations, one interface",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"52060906-0000-4000-8000-00000000000a": {
|
||||
"id": "52060906-0000-4000-8000-00000000000a",
|
||||
"alias": "operation_probe_10",
|
||||
"name": "Operator console",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000b": {
|
||||
"id": "52060906-0000-4000-8000-00000000000b",
|
||||
"alias": "operation_probe_11",
|
||||
"name": "Valve service",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000c": {
|
||||
"id": "52060906-0000-4000-8000-00000000000c",
|
||||
"alias": "operation_probe_12",
|
||||
"name": "Service socket",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-00000000000a",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000d": {
|
||||
"id": "52060906-0000-4000-8000-00000000000d",
|
||||
"alias": "operation_probe_13",
|
||||
"name": "Service socket",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-00000000000b",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000014": {
|
||||
"id": "52060906-0000-4000-8000-000000000014",
|
||||
"alias": "operation_probe_20",
|
||||
"name": "Reset",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"ExchangeItem": {
|
||||
"kind": "Information",
|
||||
"mechanism": "Operation",
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000015": {
|
||||
"id": "52060906-0000-4000-8000-000000000015",
|
||||
"alias": "operation_probe_21",
|
||||
"name": "ReadStatus",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"ExchangeItem": {
|
||||
"kind": "Information",
|
||||
"mechanism": "Operation",
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000016": {
|
||||
"id": "52060906-0000-4000-8000-000000000016",
|
||||
"alias": "operation_probe_22",
|
||||
"name": "Valve commands",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Interface": {
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000028": {
|
||||
"id": "52060906-0000-4000-8000-000000000028",
|
||||
"alias": "operation_probe_40",
|
||||
"name": "Reset then read status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "BoundaryInterface",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"52060906-0000-4000-8000-00000000002b",
|
||||
"52060906-0000-4000-8000-00000000002c"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000029": {
|
||||
"id": "52060906-0000-4000-8000-000000000029",
|
||||
"alias": "operation_probe_41",
|
||||
"name": "Service participant",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "52060906-0000-4000-8000-00000000000a"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002a": {
|
||||
"id": "52060906-0000-4000-8000-00000000002a",
|
||||
"alias": "operation_probe_42",
|
||||
"name": "Service participant",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "52060906-0000-4000-8000-00000000000b"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002b": {
|
||||
"id": "52060906-0000-4000-8000-00000000002b",
|
||||
"alias": "operation_probe_43",
|
||||
"name": "Call Reset",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "52060906-0000-4000-8000-000000000022",
|
||||
"sender": "52060906-0000-4000-8000-000000000029",
|
||||
"receiver": "52060906-0000-4000-8000-00000000002a",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002c": {
|
||||
"id": "52060906-0000-4000-8000-00000000002c",
|
||||
"alias": "operation_probe_44",
|
||||
"name": "Call ReadStatus",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "52060906-0000-4000-8000-000000000022",
|
||||
"sender": "52060906-0000-4000-8000-000000000029",
|
||||
"receiver": "52060906-0000-4000-8000-00000000002a",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"52060906-0000-4000-8000-00000000001e": {
|
||||
"id": "52060906-0000-4000-8000-00000000001e",
|
||||
"alias": "operation_probe_30",
|
||||
"name": "InterfaceItemAllocation 30",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceItemAllocation": {
|
||||
"source": "52060906-0000-4000-8000-000000000016",
|
||||
"target": "52060906-0000-4000-8000-000000000014",
|
||||
"order": 0,
|
||||
"transmission": "Synchronous",
|
||||
"acquisition": "Unspecified"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000001f": {
|
||||
"id": "52060906-0000-4000-8000-00000000001f",
|
||||
"alias": "operation_probe_31",
|
||||
"name": "InterfaceItemAllocation 31",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceItemAllocation": {
|
||||
"source": "52060906-0000-4000-8000-000000000016",
|
||||
"target": "52060906-0000-4000-8000-000000000015",
|
||||
"order": 0,
|
||||
"transmission": "Synchronous",
|
||||
"acquisition": "Unspecified"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000020": {
|
||||
"id": "52060906-0000-4000-8000-000000000020",
|
||||
"alias": "operation_probe_32",
|
||||
"name": "InterfaceRequirement 32",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceRequirement": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-000000000016"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000021": {
|
||||
"id": "52060906-0000-4000-8000-000000000021",
|
||||
"alias": "operation_probe_33",
|
||||
"name": "InterfaceProvision 33",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceProvision": {
|
||||
"source": "52060906-0000-4000-8000-00000000000d",
|
||||
"target": "52060906-0000-4000-8000-000000000016"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000022": {
|
||||
"id": "52060906-0000-4000-8000-000000000022",
|
||||
"alias": "operation_probe_34",
|
||||
"name": "BoundaryExchange 34",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-00000000000d",
|
||||
"oriented": false,
|
||||
"items": [
|
||||
"52060906-0000-4000-8000-000000000014",
|
||||
"52060906-0000-4000-8000-000000000015"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {},
|
||||
"artifact_links": {},
|
||||
"traces": {}
|
||||
}
|
||||
+275
@@ -0,0 +1,275 @@
|
||||
arcadia 6;
|
||||
project mission "Two operations, one interface" id "52060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
sa_actor operation_probe_10 "Operator console" id "52060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system operation_probe_11 "Valve service" id "52060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port operation_probe_12 "Service socket" id "52060906-0000-4000-8000-00000000000c" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_port operation_probe_13 "Service socket" id "52060906-0000-4000-8000-00000000000d" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_20 "Reset" id "52060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_21 "ReadStatus" id "52060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_interface operation_probe_22 "Valve commands" id "52060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_scenario operation_probe_40 "Reset then read status" id "52060906-0000-4000-8000-000000000028" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@operation_probe_43, @operation_probe_44];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_41 "Service participant" id "52060906-0000-4000-8000-000000000029" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_42 "Service participant" id "52060906-0000-4000-8000-00000000002a" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_43 "Call Reset" id "52060906-0000-4000-8000-00000000002b" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_80;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_44 "Call ReadStatus" id "52060906-0000-4000-8000-00000000002c" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_81;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_function operation_probe_50 "Issue service request" id "52060906-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function operation_probe_51 "Execute service request" id "52060906-0000-4000-8000-000000000033" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port operation_probe_70 "Operation output" id "52060906-0000-4000-8000-000000000046" {
|
||||
contract {
|
||||
FunctionOutput {
|
||||
outgoing_items [@operation_probe_20];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_50;
|
||||
}
|
||||
|
||||
sa_port operation_probe_71 "Operation input" id "52060906-0000-4000-8000-000000000047" {
|
||||
contract {
|
||||
FunctionInput {
|
||||
incoming_items [@operation_probe_20];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_51;
|
||||
}
|
||||
|
||||
sa_port operation_probe_72 "Operation output" id "52060906-0000-4000-8000-000000000048" {
|
||||
contract {
|
||||
FunctionOutput {
|
||||
outgoing_items [@operation_probe_21];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_50;
|
||||
}
|
||||
|
||||
sa_port operation_probe_73 "Operation input" id "52060906-0000-4000-8000-000000000049" {
|
||||
contract {
|
||||
FunctionInput {
|
||||
incoming_items [@operation_probe_21];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_51;
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_30 "InterfaceItemAllocation 30" id "52060906-0000-4000-8000-00000000001e" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_20;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_31 "InterfaceItemAllocation 31" id "52060906-0000-4000-8000-00000000001f" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_21;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_requirement operation_probe_32 "InterfaceRequirement 32" id "52060906-0000-4000-8000-000000000020" {
|
||||
description "";
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
interface_provision operation_probe_33 "InterfaceProvision 33" id "52060906-0000-4000-8000-000000000021" {
|
||||
description "";
|
||||
source @operation_probe_13;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
boundary_exchange operation_probe_34 "BoundaryExchange 34" id "52060906-0000-4000-8000-000000000022" {
|
||||
description "";
|
||||
items [@operation_probe_20, @operation_probe_21];
|
||||
oriented false;
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_13;
|
||||
}
|
||||
|
||||
allocation operation_probe_60 "Allocation 60" id "52060906-0000-4000-8000-00000000003c" {
|
||||
description "";
|
||||
source @operation_probe_10;
|
||||
target @operation_probe_50;
|
||||
}
|
||||
|
||||
allocation operation_probe_61 "Allocation 61" id "52060906-0000-4000-8000-00000000003d" {
|
||||
description "";
|
||||
source @operation_probe_11;
|
||||
target @operation_probe_51;
|
||||
}
|
||||
|
||||
functional_exchange operation_probe_80 "FunctionalExchange 80" id "52060906-0000-4000-8000-000000000050" {
|
||||
description "";
|
||||
items [@operation_probe_20];
|
||||
source @operation_probe_50;
|
||||
source_port @operation_probe_70;
|
||||
target @operation_probe_51;
|
||||
target_port @operation_probe_71;
|
||||
}
|
||||
|
||||
functional_exchange operation_probe_81 "FunctionalExchange 81" id "52060906-0000-4000-8000-000000000051" {
|
||||
description "";
|
||||
items [@operation_probe_21];
|
||||
source @operation_probe_50;
|
||||
source_port @operation_probe_72;
|
||||
target @operation_probe_51;
|
||||
target_port @operation_probe_73;
|
||||
}
|
||||
|
||||
port_allocation operation_probe_90 "PortAllocation 90" id "52060906-0000-4000-8000-00000000005a" {
|
||||
description "";
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_70;
|
||||
}
|
||||
|
||||
port_allocation operation_probe_91 "PortAllocation 91" id "52060906-0000-4000-8000-00000000005b" {
|
||||
description "";
|
||||
source @operation_probe_13;
|
||||
target @operation_probe_71;
|
||||
}
|
||||
|
||||
port_allocation operation_probe_92 "PortAllocation 92" id "52060906-0000-4000-8000-00000000005c" {
|
||||
description "";
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_72;
|
||||
}
|
||||
|
||||
port_allocation operation_probe_93 "PortAllocation 93" id "52060906-0000-4000-8000-00000000005d" {
|
||||
description "";
|
||||
source @operation_probe_13;
|
||||
target @operation_probe_73;
|
||||
}
|
||||
|
||||
exchange_allocation operation_probe_100 "ExchangeAllocation 100" id "52060906-0000-4000-8000-000000000064" {
|
||||
description "";
|
||||
source @operation_probe_34;
|
||||
target @operation_probe_80;
|
||||
}
|
||||
|
||||
exchange_allocation operation_probe_101 "ExchangeAllocation 101" id "52060906-0000-4000-8000-000000000065" {
|
||||
description "";
|
||||
source @operation_probe_34;
|
||||
target @operation_probe_81;
|
||||
}
|
||||
|
||||
}
|
||||
+552
@@ -0,0 +1,552 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "52060906-0000-4000-8000-000000000001",
|
||||
"alias": "mission",
|
||||
"name": "Two operations, one interface",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"52060906-0000-4000-8000-00000000000a": {
|
||||
"id": "52060906-0000-4000-8000-00000000000a",
|
||||
"alias": "operation_probe_10",
|
||||
"name": "Operator console",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000b": {
|
||||
"id": "52060906-0000-4000-8000-00000000000b",
|
||||
"alias": "operation_probe_11",
|
||||
"name": "Valve service",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000c": {
|
||||
"id": "52060906-0000-4000-8000-00000000000c",
|
||||
"alias": "operation_probe_12",
|
||||
"name": "Service socket",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-00000000000a",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000000d": {
|
||||
"id": "52060906-0000-4000-8000-00000000000d",
|
||||
"alias": "operation_probe_13",
|
||||
"name": "Service socket",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-00000000000b",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000014": {
|
||||
"id": "52060906-0000-4000-8000-000000000014",
|
||||
"alias": "operation_probe_20",
|
||||
"name": "Reset",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"ExchangeItem": {
|
||||
"kind": "Information",
|
||||
"mechanism": "Operation",
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000015": {
|
||||
"id": "52060906-0000-4000-8000-000000000015",
|
||||
"alias": "operation_probe_21",
|
||||
"name": "ReadStatus",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"ExchangeItem": {
|
||||
"kind": "Information",
|
||||
"mechanism": "Operation",
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000016": {
|
||||
"id": "52060906-0000-4000-8000-000000000016",
|
||||
"alias": "operation_probe_22",
|
||||
"name": "Valve commands",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Interface": {
|
||||
"supertype": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000028": {
|
||||
"id": "52060906-0000-4000-8000-000000000028",
|
||||
"alias": "operation_probe_40",
|
||||
"name": "Reset then read status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "BoundaryInterface",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"52060906-0000-4000-8000-00000000002b",
|
||||
"52060906-0000-4000-8000-00000000002c"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000029": {
|
||||
"id": "52060906-0000-4000-8000-000000000029",
|
||||
"alias": "operation_probe_41",
|
||||
"name": "Service participant",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "52060906-0000-4000-8000-00000000000a"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002a": {
|
||||
"id": "52060906-0000-4000-8000-00000000002a",
|
||||
"alias": "operation_probe_42",
|
||||
"name": "Service participant",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "52060906-0000-4000-8000-00000000000b"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002b": {
|
||||
"id": "52060906-0000-4000-8000-00000000002b",
|
||||
"alias": "operation_probe_43",
|
||||
"name": "Call Reset",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "52060906-0000-4000-8000-000000000050",
|
||||
"sender": "52060906-0000-4000-8000-000000000029",
|
||||
"receiver": "52060906-0000-4000-8000-00000000002a",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000002c": {
|
||||
"id": "52060906-0000-4000-8000-00000000002c",
|
||||
"alias": "operation_probe_44",
|
||||
"name": "Call ReadStatus",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000028",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "52060906-0000-4000-8000-000000000051",
|
||||
"sender": "52060906-0000-4000-8000-000000000029",
|
||||
"receiver": "52060906-0000-4000-8000-00000000002a",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000032": {
|
||||
"id": "52060906-0000-4000-8000-000000000032",
|
||||
"alias": "operation_probe_50",
|
||||
"name": "Issue service request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000033": {
|
||||
"id": "52060906-0000-4000-8000-000000000033",
|
||||
"alias": "operation_probe_51",
|
||||
"name": "Execute service request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000046": {
|
||||
"id": "52060906-0000-4000-8000-000000000046",
|
||||
"alias": "operation_probe_70",
|
||||
"name": "Operation output",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000032",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"FunctionOutput": {
|
||||
"outgoing_items": [
|
||||
"52060906-0000-4000-8000-000000000014"
|
||||
]
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000047": {
|
||||
"id": "52060906-0000-4000-8000-000000000047",
|
||||
"alias": "operation_probe_71",
|
||||
"name": "Operation input",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000033",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"FunctionInput": {
|
||||
"incoming_items": [
|
||||
"52060906-0000-4000-8000-000000000014"
|
||||
]
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000048": {
|
||||
"id": "52060906-0000-4000-8000-000000000048",
|
||||
"alias": "operation_probe_72",
|
||||
"name": "Operation output",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000032",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"FunctionOutput": {
|
||||
"outgoing_items": [
|
||||
"52060906-0000-4000-8000-000000000015"
|
||||
]
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000049": {
|
||||
"id": "52060906-0000-4000-8000-000000000049",
|
||||
"alias": "operation_probe_73",
|
||||
"name": "Operation input",
|
||||
"description": "",
|
||||
"parent": "52060906-0000-4000-8000-000000000033",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"FunctionInput": {
|
||||
"incoming_items": [
|
||||
"52060906-0000-4000-8000-000000000015"
|
||||
]
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"52060906-0000-4000-8000-00000000001e": {
|
||||
"id": "52060906-0000-4000-8000-00000000001e",
|
||||
"alias": "operation_probe_30",
|
||||
"name": "InterfaceItemAllocation 30",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceItemAllocation": {
|
||||
"source": "52060906-0000-4000-8000-000000000016",
|
||||
"target": "52060906-0000-4000-8000-000000000014",
|
||||
"order": 0,
|
||||
"transmission": "Synchronous",
|
||||
"acquisition": "Unspecified"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000001f": {
|
||||
"id": "52060906-0000-4000-8000-00000000001f",
|
||||
"alias": "operation_probe_31",
|
||||
"name": "InterfaceItemAllocation 31",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceItemAllocation": {
|
||||
"source": "52060906-0000-4000-8000-000000000016",
|
||||
"target": "52060906-0000-4000-8000-000000000015",
|
||||
"order": 0,
|
||||
"transmission": "Synchronous",
|
||||
"acquisition": "Unspecified"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000020": {
|
||||
"id": "52060906-0000-4000-8000-000000000020",
|
||||
"alias": "operation_probe_32",
|
||||
"name": "InterfaceRequirement 32",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceRequirement": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-000000000016"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000021": {
|
||||
"id": "52060906-0000-4000-8000-000000000021",
|
||||
"alias": "operation_probe_33",
|
||||
"name": "InterfaceProvision 33",
|
||||
"description": "",
|
||||
"body": {
|
||||
"InterfaceProvision": {
|
||||
"source": "52060906-0000-4000-8000-00000000000d",
|
||||
"target": "52060906-0000-4000-8000-000000000016"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000022": {
|
||||
"id": "52060906-0000-4000-8000-000000000022",
|
||||
"alias": "operation_probe_34",
|
||||
"name": "BoundaryExchange 34",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-00000000000d",
|
||||
"oriented": false,
|
||||
"items": [
|
||||
"52060906-0000-4000-8000-000000000014",
|
||||
"52060906-0000-4000-8000-000000000015"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000003c": {
|
||||
"id": "52060906-0000-4000-8000-00000000003c",
|
||||
"alias": "operation_probe_60",
|
||||
"name": "Allocation 60",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "52060906-0000-4000-8000-00000000000a",
|
||||
"target": "52060906-0000-4000-8000-000000000032"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000003d": {
|
||||
"id": "52060906-0000-4000-8000-00000000003d",
|
||||
"alias": "operation_probe_61",
|
||||
"name": "Allocation 61",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "52060906-0000-4000-8000-00000000000b",
|
||||
"target": "52060906-0000-4000-8000-000000000033"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000050": {
|
||||
"id": "52060906-0000-4000-8000-000000000050",
|
||||
"alias": "operation_probe_80",
|
||||
"name": "FunctionalExchange 80",
|
||||
"description": "",
|
||||
"body": {
|
||||
"FunctionalExchange": {
|
||||
"source": "52060906-0000-4000-8000-000000000032",
|
||||
"target": "52060906-0000-4000-8000-000000000033",
|
||||
"source_port": "52060906-0000-4000-8000-000000000046",
|
||||
"target_port": "52060906-0000-4000-8000-000000000047",
|
||||
"items": [
|
||||
"52060906-0000-4000-8000-000000000014"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000051": {
|
||||
"id": "52060906-0000-4000-8000-000000000051",
|
||||
"alias": "operation_probe_81",
|
||||
"name": "FunctionalExchange 81",
|
||||
"description": "",
|
||||
"body": {
|
||||
"FunctionalExchange": {
|
||||
"source": "52060906-0000-4000-8000-000000000032",
|
||||
"target": "52060906-0000-4000-8000-000000000033",
|
||||
"source_port": "52060906-0000-4000-8000-000000000048",
|
||||
"target_port": "52060906-0000-4000-8000-000000000049",
|
||||
"items": [
|
||||
"52060906-0000-4000-8000-000000000015"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000005a": {
|
||||
"id": "52060906-0000-4000-8000-00000000005a",
|
||||
"alias": "operation_probe_90",
|
||||
"name": "PortAllocation 90",
|
||||
"description": "",
|
||||
"body": {
|
||||
"PortAllocation": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-000000000046"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000005b": {
|
||||
"id": "52060906-0000-4000-8000-00000000005b",
|
||||
"alias": "operation_probe_91",
|
||||
"name": "PortAllocation 91",
|
||||
"description": "",
|
||||
"body": {
|
||||
"PortAllocation": {
|
||||
"source": "52060906-0000-4000-8000-00000000000d",
|
||||
"target": "52060906-0000-4000-8000-000000000047"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000005c": {
|
||||
"id": "52060906-0000-4000-8000-00000000005c",
|
||||
"alias": "operation_probe_92",
|
||||
"name": "PortAllocation 92",
|
||||
"description": "",
|
||||
"body": {
|
||||
"PortAllocation": {
|
||||
"source": "52060906-0000-4000-8000-00000000000c",
|
||||
"target": "52060906-0000-4000-8000-000000000048"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-00000000005d": {
|
||||
"id": "52060906-0000-4000-8000-00000000005d",
|
||||
"alias": "operation_probe_93",
|
||||
"name": "PortAllocation 93",
|
||||
"description": "",
|
||||
"body": {
|
||||
"PortAllocation": {
|
||||
"source": "52060906-0000-4000-8000-00000000000d",
|
||||
"target": "52060906-0000-4000-8000-000000000049"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000064": {
|
||||
"id": "52060906-0000-4000-8000-000000000064",
|
||||
"alias": "operation_probe_100",
|
||||
"name": "ExchangeAllocation 100",
|
||||
"description": "",
|
||||
"body": {
|
||||
"ExchangeAllocation": {
|
||||
"source": "52060906-0000-4000-8000-000000000022",
|
||||
"target": "52060906-0000-4000-8000-000000000050"
|
||||
}
|
||||
}
|
||||
},
|
||||
"52060906-0000-4000-8000-000000000065": {
|
||||
"id": "52060906-0000-4000-8000-000000000065",
|
||||
"alias": "operation_probe_101",
|
||||
"name": "ExchangeAllocation 101",
|
||||
"description": "",
|
||||
"body": {
|
||||
"ExchangeAllocation": {
|
||||
"source": "52060906-0000-4000-8000-000000000022",
|
||||
"target": "52060906-0000-4000-8000-000000000051"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {},
|
||||
"artifact_links": {},
|
||||
"traces": {}
|
||||
}
|
||||
@@ -0,0 +1,335 @@
|
||||
//! Existing-core expressivity experiment, not a proposed production DTO.
|
||||
use oa_core::validation::{Severity, validate};
|
||||
use oa_core::*;
|
||||
use std::{collections::BTreeMap, fs, path::Path};
|
||||
fn id(n: u128) -> Id {
|
||||
Id::from_u128(0x52060906000040008000000000000000 + n)
|
||||
}
|
||||
fn add(p: &mut Project, n: u128, k: Kind, name: &str, parent: Option<Id>) -> Id {
|
||||
let mut e = if k == Kind::Port {
|
||||
Element {
|
||||
id: id(n),
|
||||
alias: format!("operation_probe_{n}"),
|
||||
name: name.into(),
|
||||
description: String::new(),
|
||||
parent,
|
||||
body: ElementBody::shared_in(
|
||||
Layer::Sa,
|
||||
SharedBody::Port {
|
||||
contract: PortContract::Component {
|
||||
kind: ComponentPortKind::Standard,
|
||||
orientation: ComponentPortOrientation::Unset,
|
||||
},
|
||||
legacy: None,
|
||||
},
|
||||
),
|
||||
}
|
||||
} else {
|
||||
p.make_element(k, Layer::Sa, name, parent).unwrap()
|
||||
};
|
||||
e.id = id(n);
|
||||
e.alias = format!("operation_probe_{n}");
|
||||
p.elements.insert(e.id, e);
|
||||
id(n)
|
||||
}
|
||||
fn body(p: &mut Project, n: u128, b: SharedBody) {
|
||||
*p.elements.get_mut(&id(n)).unwrap().shared_mut().unwrap() = b;
|
||||
}
|
||||
fn rel(p: &mut Project, n: u128, k: RelationKind, a: u128, b: u128) {
|
||||
p.relations.insert(
|
||||
id(n),
|
||||
Relation {
|
||||
id: id(n),
|
||||
alias: format!("operation_probe_{n}"),
|
||||
name: format!("{k:?} {n}"),
|
||||
description: String::new(),
|
||||
body: RelationBody::new(k, id(a), id(b)),
|
||||
},
|
||||
);
|
||||
}
|
||||
fn valid(p: &Project) {
|
||||
let errors: Vec<_> = validate(p)
|
||||
.into_iter()
|
||||
.filter(|i| i.severity == Severity::Error)
|
||||
.collect();
|
||||
assert!(errors.is_empty(), "{errors:?}");
|
||||
}
|
||||
fn message(p: &Project, n: u128) -> &OccurrenceBody {
|
||||
let Some(SharedBody::Occurrence { body, .. }) = p.elements[&id(n)].shared() else {
|
||||
panic!()
|
||||
};
|
||||
body
|
||||
}
|
||||
fn set_exchange(p: &mut Project, n: u128, target: Id) {
|
||||
let Some(SharedBody::Occurrence {
|
||||
body: OccurrenceBody::Exchange { exchange, .. },
|
||||
..
|
||||
}) = p.elements.get_mut(&id(n)).unwrap().shared_mut()
|
||||
else {
|
||||
panic!()
|
||||
};
|
||||
*exchange = Some(target);
|
||||
}
|
||||
fn initial() -> Project {
|
||||
let mut p = Project::empty();
|
||||
p.id = id(1);
|
||||
p.name = "Two operations, one interface".into();
|
||||
add(&mut p, 10, Kind::SystemActor, "Operator console", None);
|
||||
add(&mut p, 11, Kind::System, "Valve service", None);
|
||||
for (port, owner) in [(12, 10), (13, 11)] {
|
||||
add(&mut p, port, Kind::Port, "Service socket", Some(id(owner)));
|
||||
body(
|
||||
&mut p,
|
||||
port,
|
||||
SharedBody::Port {
|
||||
contract: PortContract::Component {
|
||||
kind: ComponentPortKind::Standard,
|
||||
orientation: ComponentPortOrientation::Unset,
|
||||
},
|
||||
legacy: None,
|
||||
},
|
||||
);
|
||||
}
|
||||
for (operation, name) in [(20, "Reset"), (21, "ReadStatus")] {
|
||||
add(&mut p, operation, Kind::ExchangeItem, name, None);
|
||||
body(
|
||||
&mut p,
|
||||
operation,
|
||||
SharedBody::ExchangeItem {
|
||||
kind: ExchangeItemKind::Information,
|
||||
mechanism: ExchangeMechanism::Operation,
|
||||
supertype: None,
|
||||
},
|
||||
);
|
||||
}
|
||||
add(&mut p, 22, Kind::Interface, "Valve commands", None);
|
||||
for (allocation, item) in [(30, 20), (31, 21)] {
|
||||
rel(
|
||||
&mut p,
|
||||
allocation,
|
||||
RelationKind::InterfaceItemAllocation,
|
||||
22,
|
||||
item,
|
||||
);
|
||||
let RelationBody::InterfaceItemAllocation { transmission, .. } =
|
||||
&mut p.relations.get_mut(&id(allocation)).unwrap().body
|
||||
else {
|
||||
panic!()
|
||||
};
|
||||
*transmission = TransmissionProtocol::Synchronous;
|
||||
}
|
||||
rel(&mut p, 32, RelationKind::InterfaceRequirement, 12, 22);
|
||||
rel(&mut p, 33, RelationKind::InterfaceProvision, 13, 22);
|
||||
rel(&mut p, 34, RelationKind::BoundaryExchange, 12, 13);
|
||||
p.relations.get_mut(&id(34)).unwrap().body = RelationBody::BoundaryExchange {
|
||||
source: id(12),
|
||||
target: id(13),
|
||||
oriented: false,
|
||||
items: vec![id(20), id(21)],
|
||||
};
|
||||
add(&mut p, 40, Kind::Scenario, "Reset then read status", None);
|
||||
body(
|
||||
&mut p,
|
||||
40,
|
||||
SharedBody::Scenario {
|
||||
viewpoint: ScenarioViewpoint::BoundaryInterface,
|
||||
context: None,
|
||||
precondition: String::new(),
|
||||
postcondition: String::new(),
|
||||
steps: vec![id(43), id(44)],
|
||||
},
|
||||
);
|
||||
for (line, participant) in [(41, 10), (42, 11)] {
|
||||
add(
|
||||
&mut p,
|
||||
line,
|
||||
Kind::Lifeline,
|
||||
"Service participant",
|
||||
Some(id(40)),
|
||||
);
|
||||
body(
|
||||
&mut p,
|
||||
line,
|
||||
SharedBody::Lifeline {
|
||||
represented: Some(id(participant)),
|
||||
},
|
||||
);
|
||||
}
|
||||
for (call, name) in [(43, "Call Reset"), (44, "Call ReadStatus")] {
|
||||
add(&mut p, call, Kind::Occurrence, name, Some(id(40)));
|
||||
body(
|
||||
&mut p,
|
||||
call,
|
||||
SharedBody::Occurrence {
|
||||
body: OccurrenceBody::Exchange {
|
||||
exchange: Some(id(34)),
|
||||
sender: Some(id(41)),
|
||||
receiver: Some(id(42)),
|
||||
message_kind: MessageKind::Call,
|
||||
reply_to: None,
|
||||
values: vec![],
|
||||
},
|
||||
precondition: String::new(),
|
||||
postcondition: String::new(),
|
||||
},
|
||||
);
|
||||
}
|
||||
valid(&p);
|
||||
p
|
||||
}
|
||||
fn refined(p: &Project) -> Project {
|
||||
let mut q = p.clone();
|
||||
for (work, owner, name) in [
|
||||
(50, 10, "Issue service request"),
|
||||
(51, 11, "Execute service request"),
|
||||
] {
|
||||
add(&mut q, work, Kind::Function, name, None);
|
||||
rel(&mut q, work + 10, RelationKind::Allocation, owner, work);
|
||||
}
|
||||
for (item, output, input, exchange) in [(20, 70, 71, 80), (21, 72, 73, 81)] {
|
||||
add(&mut q, output, Kind::Port, "Operation output", Some(id(50)));
|
||||
add(&mut q, input, Kind::Port, "Operation input", Some(id(51)));
|
||||
body(
|
||||
&mut q,
|
||||
output,
|
||||
SharedBody::Port {
|
||||
contract: PortContract::FunctionOutput {
|
||||
outgoing_items: vec![id(item)],
|
||||
},
|
||||
legacy: None,
|
||||
},
|
||||
);
|
||||
body(
|
||||
&mut q,
|
||||
input,
|
||||
SharedBody::Port {
|
||||
contract: PortContract::FunctionInput {
|
||||
incoming_items: vec![id(item)],
|
||||
},
|
||||
legacy: None,
|
||||
},
|
||||
);
|
||||
rel(&mut q, exchange, RelationKind::FunctionalExchange, 50, 51);
|
||||
q.relations.get_mut(&id(exchange)).unwrap().body = RelationBody::FunctionalExchange {
|
||||
source: id(50),
|
||||
target: id(51),
|
||||
source_port: id(output),
|
||||
target_port: id(input),
|
||||
items: vec![id(item)],
|
||||
};
|
||||
rel(
|
||||
&mut q,
|
||||
output + 20,
|
||||
RelationKind::PortAllocation,
|
||||
12,
|
||||
output,
|
||||
);
|
||||
rel(&mut q, input + 20, RelationKind::PortAllocation, 13, input);
|
||||
rel(
|
||||
&mut q,
|
||||
exchange + 20,
|
||||
RelationKind::ExchangeAllocation,
|
||||
34,
|
||||
exchange,
|
||||
);
|
||||
}
|
||||
set_exchange(&mut q, 43, id(80));
|
||||
set_exchange(&mut q, 44, id(81));
|
||||
valid(&q);
|
||||
q
|
||||
}
|
||||
fn write(p: &Project, out: &Path, name: &str) {
|
||||
let source = language::format(p);
|
||||
let bundle = source_project::SourceBundle {
|
||||
entry: "entry.arcadia".into(),
|
||||
files: BTreeMap::from([("entry.arcadia".into(), source.clone())]),
|
||||
};
|
||||
assert_eq!(
|
||||
&source_project::compile_bundle(&bundle, Default::default())
|
||||
.unwrap()
|
||||
.decoded
|
||||
.project,
|
||||
p
|
||||
);
|
||||
assert_eq!(
|
||||
&serde_json::from_value::<Project>(serde_json::to_value(p).unwrap()).unwrap(),
|
||||
p
|
||||
);
|
||||
fs::write(out.join(format!("{name}.arcadia")), source).unwrap();
|
||||
fs::write(
|
||||
out.join(format!("{name}.json")),
|
||||
serde_json::to_vec_pretty(p).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
fn main() {
|
||||
let directory = std::env::args().nth(1).expect("probe OUTPUT_DIRECTORY");
|
||||
let out = Path::new(&directory);
|
||||
fs::create_dir_all(out).unwrap();
|
||||
let p = initial();
|
||||
write(&p, out, "boundary-only");
|
||||
assert_eq!(
|
||||
message(&p, 43),
|
||||
message(&p, 44),
|
||||
"Only prose distinguishes the intended operations"
|
||||
);
|
||||
assert!(!references::element_references(&p.elements[&id(43)]).contains(&id(20)));
|
||||
assert!(!references::element_references(&p.elements[&id(44)]).contains(&id(21)));
|
||||
for target in [20, 30] {
|
||||
let mut invalid = p.clone();
|
||||
set_exchange(&mut invalid, 43, id(target));
|
||||
assert!(
|
||||
validate(&invalid)
|
||||
.iter()
|
||||
.any(|i| i.code == "occurrence_exchange" && i.element == Some(id(43)))
|
||||
);
|
||||
}
|
||||
let mut proposed = serde_json::to_value(message(&p, 43)).unwrap();
|
||||
proposed["Exchange"]["operation"] = serde_json::to_value(id(30)).unwrap();
|
||||
assert!(
|
||||
serde_json::from_value::<OccurrenceBody>(proposed)
|
||||
.unwrap_err()
|
||||
.to_string()
|
||||
.contains("unknown field")
|
||||
);
|
||||
let mut session = Session::new(p.clone());
|
||||
let mut reset = p.elements[&id(20)].clone();
|
||||
reset.name = "EmergencyReset".into();
|
||||
session
|
||||
.execute(Command::EditElement(id(20), reset))
|
||||
.unwrap();
|
||||
assert_eq!(message(session.project(), 43), message(&p, 43));
|
||||
session.execute(Command::Delete(id(20))).unwrap();
|
||||
assert_eq!(message(session.project(), 43), message(&p, 43));
|
||||
assert!(session.project().elements.contains_key(&id(43)));
|
||||
valid(session.project());
|
||||
write(session.project(), out, "after-reset-deletion");
|
||||
let q = refined(&p);
|
||||
write(&q, out, "explicit-functional-refinement");
|
||||
assert_eq!(q.relations[&id(34)], p.relations[&id(34)]);
|
||||
assert_ne!(message(&q, 43), message(&q, 44));
|
||||
for n in [43, 44] {
|
||||
assert!(
|
||||
references::element_references(&q.elements[&id(n)])
|
||||
.iter()
|
||||
.any(|v| [id(80), id(81)].contains(v))
|
||||
);
|
||||
}
|
||||
println!(
|
||||
"PASS validated boundary-only model: {} elements / {} relations, two parameterless Operations",
|
||||
p.elements.len(),
|
||||
p.relations.len()
|
||||
);
|
||||
println!(
|
||||
"PASS identical typed Calls; item/allocation exchange substitutions rejected; operation DTO field rejected"
|
||||
);
|
||||
println!(
|
||||
"PASS operation rename/delete leaves intended Call's typed body unchanged; Call remains structurally valid"
|
||||
);
|
||||
println!(
|
||||
"PASS distinct FE Calls require this explicit refinement: +{} elements / +{} relations; same original boundary",
|
||||
q.elements.len() - p.elements.len(),
|
||||
q.relations.len() - p.relations.len()
|
||||
);
|
||||
println!("PASS all three complete source/JSON round trips; no production mutation");
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
# First-release native acceptance fixtures
|
||||
|
||||
Synthetic, identity-stable source/JSON models and direct-core expected outputs for the current source-v5 continuation. Work on copies. The first user-facing state and keyed review trials were performed with Windows binary SHA25670069D6CBBE1917E1597794B3E190FF9CF23664D458F794B3270DDBE6EE683A2; see ../../release-current-native-verification.md for exact accepted scope and open findings. Ordered fixtures are validated oracles awaiting native acceptance, not evidence that those workflows have passed.
|
||||
|
||||
- state-actions.arcadia: typed Entry/Do/Exit rows, legacy notes, Internal transition and nested region. Initial14elements/10relations/one8-placement state view. With the new advisory coverage pass, uncovered function warnings are expected; they do not invalidate the model.
|
||||
- semantic-keyed.steps.md: Annotation Take and rejected/repaired Binding Candidate, with exact source and JSON oracles, frozen requests, plans and identities. The independent expected sources preserve the leading comment and row order.
|
||||
- semantic-ordered.steps.md: ordered member insertion ambiguity and explicit final order. Main, reverse, Scenario, Branch steps and Fragment branch variants each include initial/final source and JSON, request, plan and manifest.
|
||||
|
||||
The steps originally name .local/native-fixtures, the isolated trial directory; use a copied directory here equivalently. Never overwrite an oracle with a native Save. Versioned source snapshots must be migrated deliberately when the normative source version changes; keep historical native evidence scoped to its actual binary. These fixtures do not replace the Rust integration tests or constitute complete release acceptance.
|
||||
# First-release native acceptance fixtures
|
||||
|
||||
Source-6 additions: [`artifacts/`](artifacts/README.md) preserves artifact move/deletion/creation requests, exact oracles, manifests, native instructions and a configurable-output generator. Its automated checks passed; artifact native acceptance remains pending. `semantic-batch-native.md` specifies the two-source range review and exact initial/accepted source and JSON oracles. `dense-40/` contains the deterministic forty-exchange view and eleven visibility matrices generated by `cargo run --locked -p oa-core --example release_dense_views -- OUTPUT_DIRECTORY`. These additions have passed core generation and semantic validation; native acceptance remains separately recorded. Keep the earlier versioned fixtures below unchanged so their historical evidence remains reproducible.
|
||||
|
||||
Historical source-v5 fixtures below are synthetic, identity-stable source/JSON models and direct-core expected outputs. Work on copies. The first user-facing state and keyed review trials were performed with Windows binary SHA25670069D6CBBE1917E1597794B3E190FF9CF23664D458F794B3270DDBE6EE683A2; see ../../release-current-native-verification.md for exact accepted scope and open findings. The current native record now includes scoped main and reverse ordered Apply/Undo/Redo evidence; remaining ordered variants retain their separate acceptance gates.
|
||||
|
||||
- state-actions.arcadia: typed Entry/Do/Exit rows, legacy notes, Internal transition and nested region. Initial14elements/10relations/one8-placement state view. With the new advisory coverage pass, uncovered function warnings are expected; they do not invalidate the model.
|
||||
- semantic-keyed.steps.md: Annotation Take and rejected/repaired Binding Candidate, with exact source and JSON oracles, frozen requests, plans and identities. The independent expected sources preserve the leading comment and row order.
|
||||
- semantic-ordered.steps.md: ordered member insertion ambiguity and explicit final order. Main, reverse, Scenario, Branch steps and Fragment branch variants each include initial/final source and JSON, request, plan and manifest.
|
||||
|
||||
The steps originally name .local/native-fixtures, the isolated trial directory; use a copied directory here equivalently. Never overwrite an oracle with a native Save. Versioned source snapshots must be migrated deliberately when the normative source version changes; keep historical native evidence scoped to its actual binary. These fixtures do not replace the Rust integration tests or constitute complete release acceptance.
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# Artifact lifecycle native fixtures
|
||||
|
||||
These source-6 fixtures preserve direct-core expected results for the implemented artifact review controls. **MOVE, CREATE and DELETE passed native exact-source Save/Undo/Redo checks: nine saves succeeded first attempt.** MOVE invalid raw/optional state and CREATE excluded row/reserved identity also survived controlled-stop recovery exactly. Full desktop 518/518 and the corrected six-artifact filter passed at the implementation checkpoint; strict all-target workspace Clippy passed separately. See [the native lifecycle evidence](../../../release-artifacts-native-20260906.md), [implementation evidence](../../../release-semantic-artifacts.md), and [native steps](semantic-artifacts-native.md). These native runs used the preceding binary; subsequent diagnostic/reserved-identity wording changes require their own verification. Destination-only retention and every possible owner/type were not separately exercised natively.
|
||||
|
||||
Work on copies. Each `semantic-artifacts-{move,delete,create}` set contains original and expected `.arcadia`/`.json` files, a complete core request, and an identity/count manifest. `semantic-artifacts.hashes.json` lists portable relative filenames and SHA256 hashes. Every fixture uses **Interlock requirement rationale** as its owner trace.
|
||||
|
||||
- Move: explicitly review Owner, Revision `Some("")`, and Fragment `None`; two links remain.
|
||||
- Delete: the source link remains present under another owner; Take Presence removes the destination link. Source metadata remains, so this fixture has eight acknowledged facts and no retired metadata.
|
||||
- Create: an existing source link seeds a reserved destination counterpart. Presence plus all seven metadata facets must be explicitly reviewed; one link becomes two.
|
||||
|
||||
The generator validates every request with `plan_semantic_transition` and `prepare_semantic_transition`, updates the exact source bundle through `source_project::update_bundle`, and reparses both source oracles. No GUI action is simulated.
|
||||
|
||||
## Generator usage
|
||||
|
||||
`generate-semantic-artifacts OUTPUT_DIRECTORY [RESERVED_CREATION_UUID]`
|
||||
|
||||
An explicit output directory is required. Without a UUID it generates fresh initial fixture identities; use a new scratch directory. With a UUID it loads the existing creation fixture JSON and exact original source in that directory, preserves both base files, and writes the creation after oracle, request and manifest for the UI's reserved identity. Do not regenerate initial fixtures after starting native work.
|
||||
|
||||
The checked Windows compilation recipe uses the already-built workspace libraries and the user-local GNU LLVM toolchain; it writes its executable only under ignored `.local`. Library filenames belong to that build and must be updated together if a different build changes their fingerprints. No executable is committed.
|
||||
|
||||
```powershell
|
||||
. .local/toolchain/env.ps1
|
||||
rustc --edition 2024 -C linker=clang.exe --extern oa_core=.local/target-gnullvm/debug/deps/liboa_core-6c8da57367eec642.rlib --extern serde_json=.local/target-gnullvm/debug/deps/libserde_json-da2c4f333fc47818.rlib -L dependency=.local/target-gnullvm/debug/deps harness/fixtures/release1-native/artifacts/generate-semantic-artifacts.rs -o .local/native-fixtures/generate-semantic-artifacts-preserved.exe
|
||||
```
|
||||
|
||||
Copy this directory into an isolated trial directory, for example `.local/native-fixtures/artifacts-session`. After the GUI reserves its UUID, regenerate the exact creation oracle:
|
||||
|
||||
```powershell
|
||||
.local/native-fixtures/generate-semantic-artifacts-preserved.exe .local/native-fixtures/artifacts-session <UI_RESERVED_UUID>
|
||||
```
|
||||
|
||||
For fresh fixtures with new initial identities, omit the UUID and select a new directory:
|
||||
|
||||
```powershell
|
||||
.local/native-fixtures/generate-semantic-artifacts-preserved.exe .local/native-fixtures/artifacts-fresh
|
||||
```
|
||||
|
||||
The native steps explain why the static creation after file is a template until the UI's reserved UUID is supplied. Keep model/source/Undo/Redo comparisons exact after that substitution. Refresh local hashes after regenerating a creation oracle; the committed hash inventory continues to describe the committed template.
|
||||
@@ -0,0 +1,263 @@
|
||||
use oa_core::{transitions::*, *};
|
||||
use std::{collections::BTreeMap, fs, path::Path};
|
||||
const META: [ArtifactFacet; 7] = [
|
||||
ArtifactFacet::Name,
|
||||
ArtifactFacet::Description,
|
||||
ArtifactFacet::Owner,
|
||||
ArtifactFacet::Relation,
|
||||
ArtifactFacet::Uri,
|
||||
ArtifactFacet::Revision,
|
||||
ArtifactFacet::Fragment,
|
||||
];
|
||||
fn request(
|
||||
p: &Project,
|
||||
trace: &Trace,
|
||||
keys: KeyPair<Id>,
|
||||
decisions: Vec<(ArtifactFacet, SemanticDecision)>,
|
||||
candidate: Option<ArtifactLink>,
|
||||
) -> SemanticTransitionRequest {
|
||||
let mut t = TransitionRequest::new(TransitionDirection::OaToSa, vec![trace.oa]);
|
||||
t.mappings.push(TransitionMapping {
|
||||
source: trace.oa,
|
||||
target: Some(trace.sa),
|
||||
target_kind: None,
|
||||
});
|
||||
let mut r = SemanticTransitionRequest::new(t);
|
||||
r.traces.insert(trace.oa, trace.id);
|
||||
r.references.insert(trace.oa, trace.sa);
|
||||
if let Some((oa, sa)) = keys.oa.zip(keys.sa) {
|
||||
r.references.insert(oa, sa);
|
||||
}
|
||||
r.reviews.push(SemanticReviewRequest {
|
||||
source: trace.oa,
|
||||
resolutions: decisions
|
||||
.into_iter()
|
||||
.map(|(facet, decision)| FacetResolution {
|
||||
facet: FacetSelector::Artifact {
|
||||
keys: keys.clone(),
|
||||
facet,
|
||||
},
|
||||
decision,
|
||||
})
|
||||
.collect(),
|
||||
reset: vec![],
|
||||
});
|
||||
if let Some(c) = candidate {
|
||||
r.candidates.push(SemanticRecord::Artifact(c));
|
||||
}
|
||||
validate_candidate(p).unwrap();
|
||||
r
|
||||
}
|
||||
fn emit(dir: &Path, p: &Project, r: SemanticTransitionRequest, name: &str, preserve_base: bool) {
|
||||
let plan = plan_semantic_transition(p, r.clone()).unwrap();
|
||||
assert!(plan.conflicts.is_empty(), "{:?}", plan.conflicts);
|
||||
let after = prepare_semantic_transition(p, &plan).unwrap().project;
|
||||
let logical = format!("{name}.arcadia");
|
||||
let source = if preserve_base {
|
||||
fs::read_to_string(dir.join(&logical)).expect("Read unchanged fixture source")
|
||||
} else {
|
||||
format!(
|
||||
"// Exact artifact rationale: no implicit metadata review\r\n{}",
|
||||
language::format(p)
|
||||
)
|
||||
};
|
||||
let bundle = source_project::SourceBundle {
|
||||
entry: logical.clone(),
|
||||
files: BTreeMap::from([(logical.clone(), source.clone())]),
|
||||
};
|
||||
let compiled =
|
||||
source_project::compile_bundle(&bundle, source_project::ProjectLimits::default()).unwrap();
|
||||
let updated =
|
||||
source_project::update_bundle(&compiled, &after, source_project::ProjectLimits::default())
|
||||
.unwrap();
|
||||
for (suffix, project, text) in [
|
||||
("", p, &source),
|
||||
(".after", &after, &updated.bundle.files[&logical]),
|
||||
] {
|
||||
assert_eq!(language::parse(text).unwrap(), *project);
|
||||
if preserve_base && suffix.is_empty() {
|
||||
continue;
|
||||
}
|
||||
fs::write(dir.join(format!("{name}{suffix}.arcadia")), text).unwrap();
|
||||
fs::write(
|
||||
dir.join(format!("{name}{suffix}.json")),
|
||||
serde_json::to_vec_pretty(project).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
fs::write(
|
||||
dir.join(format!("{name}.request.json")),
|
||||
serde_json::to_vec_pretty(&r).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
let manifest = serde_json::json!({
|
||||
"fixture":name,"schema":p.schema_version,"project":p.id,
|
||||
"trace_ids":r.traces.values().collect::<Vec<_>>(),
|
||||
"candidate_ids":r.candidates.iter().map(SemanticRecord::id).collect::<Vec<_>>(),
|
||||
"initial_artifact_ids":p.artifact_links.keys().collect::<Vec<_>>(),
|
||||
"final_artifact_ids":after.artifact_links.keys().collect::<Vec<_>>(),
|
||||
"acknowledged_count":plan.reviews.iter().map(|review|review.acknowledged.len()).sum::<usize>(),
|
||||
"retired_count":plan.reviews.iter().map(|review|review.retired.len()).sum::<usize>(),
|
||||
"impact_count":plan.impacts.len(),"native_acceptance":"pending"
|
||||
});
|
||||
fs::write(
|
||||
dir.join(format!("{name}.manifest.json")),
|
||||
serde_json::to_vec_pretty(&manifest).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
println!(
|
||||
"{name}: {} artifacts -> {}; {} reviewed facts, {} retired, {} impacts",
|
||||
p.artifact_links.len(),
|
||||
after.artifact_links.len(),
|
||||
plan.reviews[0].acknowledged.len(),
|
||||
plan.reviews[0].retired.len(),
|
||||
plan.impacts.len()
|
||||
);
|
||||
}
|
||||
fn main() {
|
||||
let args: Vec<_> = std::env::args().collect();
|
||||
assert!(
|
||||
(2..=3).contains(&args.len()),
|
||||
"Usage: generate-semantic-artifacts OUTPUT_DIRECTORY [RESERVED_CREATION_UUID]. Without UUID, creates fresh fixture identities; with UUID, preserves the existing creation base and writes its exact after oracle."
|
||||
);
|
||||
let dir = Path::new(&args[1]);
|
||||
fs::create_dir_all(dir).unwrap();
|
||||
if args.len() == 3 {
|
||||
let p: Project =
|
||||
serde_json::from_slice(&fs::read(dir.join("semantic-artifacts-create.json")).unwrap())
|
||||
.unwrap();
|
||||
let trace = p
|
||||
.traces
|
||||
.values()
|
||||
.find(|t| t.alias == "artifact_review")
|
||||
.unwrap();
|
||||
let source = p
|
||||
.artifact_links
|
||||
.values()
|
||||
.find(|a| a.owner == trace.oa)
|
||||
.unwrap();
|
||||
let mut candidate = source.clone();
|
||||
candidate.id = args[2].parse().unwrap();
|
||||
candidate.alias = format!("artifact_{}", candidate.id.simple());
|
||||
candidate.owner = trace.sa;
|
||||
let keys = KeyPair {
|
||||
oa: Some(source.id),
|
||||
sa: Some(candidate.id),
|
||||
};
|
||||
let mut decisions = vec![(ArtifactFacet::Presence, SemanticDecision::TakeSource)];
|
||||
decisions.extend(META.map(|facet| (facet, SemanticDecision::Candidate)));
|
||||
emit(
|
||||
dir,
|
||||
&p,
|
||||
request(&p, trace, keys, decisions, Some(candidate)),
|
||||
"semantic-artifacts-create",
|
||||
true,
|
||||
);
|
||||
return;
|
||||
}
|
||||
let mut p = Project::empty();
|
||||
p.name = "Explicit requirement-link review".into();
|
||||
let mut owners = vec![];
|
||||
let mut others = vec![];
|
||||
let mut links = vec![];
|
||||
for layer in [Layer::Oa, Layer::Sa] {
|
||||
let prefix = if layer == Layer::Oa { "OA" } else { "SA" };
|
||||
let kind = if layer == Layer::Oa {
|
||||
Kind::Activity
|
||||
} else {
|
||||
Kind::Function
|
||||
};
|
||||
let owner = p
|
||||
.add_element(kind, layer, &format!("{prefix} Startup coordination"), None)
|
||||
.unwrap();
|
||||
let other = p
|
||||
.add_element(kind, layer, &format!("{prefix} Safety coordination"), None)
|
||||
.unwrap();
|
||||
let id = Id::new_v4();
|
||||
p.artifact_links.insert(
|
||||
id,
|
||||
ArtifactLink {
|
||||
id,
|
||||
alias: format!("artifact_{}", id.simple()),
|
||||
name: format!("{prefix} Interlock requirement"),
|
||||
description: "Reviewed safety rationale\r\nSecond exact line".into(),
|
||||
owner,
|
||||
relation: ArtifactRelation::Satisfies,
|
||||
uri: "requirements/interlock".into(),
|
||||
revision: None,
|
||||
fragment: Some("section-4".into()),
|
||||
},
|
||||
);
|
||||
owners.push(owner);
|
||||
others.push(other);
|
||||
links.push(id);
|
||||
}
|
||||
let id = Id::new_v4();
|
||||
let trace = Trace {
|
||||
id,
|
||||
alias: "artifact_review".into(),
|
||||
name: "Interlock requirement rationale".into(),
|
||||
description: String::new(),
|
||||
oa: owners[0],
|
||||
sa: owners[1],
|
||||
kind: TraceKind::Manual,
|
||||
baseline: None,
|
||||
};
|
||||
p.traces.insert(id, trace.clone());
|
||||
let keys = KeyPair {
|
||||
oa: Some(links[0]),
|
||||
sa: Some(links[1]),
|
||||
};
|
||||
let mut moved = p.artifact_links[&links[1]].clone();
|
||||
moved.owner = others[1];
|
||||
moved.revision = Some(String::new());
|
||||
moved.fragment = None;
|
||||
emit(
|
||||
dir,
|
||||
&p,
|
||||
request(
|
||||
&p,
|
||||
&trace,
|
||||
keys.clone(),
|
||||
vec![
|
||||
(ArtifactFacet::Owner, SemanticDecision::Candidate),
|
||||
(ArtifactFacet::Revision, SemanticDecision::Candidate),
|
||||
(ArtifactFacet::Fragment, SemanticDecision::Candidate),
|
||||
],
|
||||
Some(moved),
|
||||
),
|
||||
"semantic-artifacts-move",
|
||||
false,
|
||||
);
|
||||
let mut deleted = p.clone();
|
||||
deleted.artifact_links.get_mut(&links[0]).unwrap().owner = others[0];
|
||||
emit(
|
||||
dir,
|
||||
&deleted,
|
||||
request(
|
||||
&deleted,
|
||||
&trace,
|
||||
keys.clone(),
|
||||
vec![(ArtifactFacet::Presence, SemanticDecision::TakeSource)],
|
||||
None,
|
||||
),
|
||||
"semantic-artifacts-delete",
|
||||
false,
|
||||
);
|
||||
let mut create = p.clone();
|
||||
create.artifact_links.remove(&links[1]);
|
||||
let source = create.artifact_links[&links[0]].clone();
|
||||
let mut candidate = source;
|
||||
candidate.id = links[1];
|
||||
candidate.alias = format!("artifact_{}", candidate.id.simple());
|
||||
candidate.owner = owners[1];
|
||||
let mut decisions = vec![(ArtifactFacet::Presence, SemanticDecision::TakeSource)];
|
||||
decisions.extend(META.map(|facet| (facet, SemanticDecision::Candidate)));
|
||||
emit(
|
||||
dir,
|
||||
&create,
|
||||
request(&create, &trace, keys, decisions, Some(candidate)),
|
||||
"semantic-artifacts-create",
|
||||
false,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
// Exact artifact rationale: no implicit metadata review
|
||||
arcadia 6;
|
||||
project mission "Explicit requirement-link review" id "a1db88f7-0af1-4ce9-825e-2a407eaa647a" {
|
||||
description "";
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "05617eb5-8a1b-4c79-a957-d89567939995" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "9b07222e-132a-4505-a40e-5761277e43b4" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "bd6e974f-1f72-4ed9-b146-72b272f4c861" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "d4d778ce-95c7-4e83-82ba-d129c6b61dc9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
artifact artifact_f3635689622e4e71849aec332f8931f3 "OA Interlock requirement" id "f3635689-622e-4e71-849a-ec332f8931f3" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @oa_startup_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
trace artifact_review "Interlock requirement rationale" id "f27b20ea-1a66-4a91-87d6-79b7bda09a13" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "OA Startup coordination";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "SA Startup coordination";
|
||||
};
|
||||
semantic {
|
||||
facets [{
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Presence {
|
||||
oa {
|
||||
Value true;
|
||||
};
|
||||
sa {
|
||||
Value true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Name {
|
||||
oa {
|
||||
Value "OA Interlock requirement";
|
||||
};
|
||||
sa {
|
||||
Value "OA Interlock requirement";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Description {
|
||||
oa {
|
||||
Value "Reviewed safety rationale\r\nSecond exact line";
|
||||
};
|
||||
sa {
|
||||
Value "Reviewed safety rationale\r\nSecond exact line";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Owner {
|
||||
oa {
|
||||
Value uuid "d4d778ce-95c7-4e83-82ba-d129c6b61dc9";
|
||||
};
|
||||
sa {
|
||||
Value uuid "9b07222e-132a-4505-a40e-5761277e43b4";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Relation {
|
||||
oa {
|
||||
Value Satisfies;
|
||||
};
|
||||
sa {
|
||||
Value Satisfies;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Uri {
|
||||
oa {
|
||||
Value "requirements/interlock";
|
||||
};
|
||||
sa {
|
||||
Value "requirements/interlock";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Revision {
|
||||
oa {
|
||||
Value none;
|
||||
};
|
||||
sa {
|
||||
Value none;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Fragment {
|
||||
oa {
|
||||
Value "section-4";
|
||||
};
|
||||
sa {
|
||||
Value "section-4";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
|
||||
artifact artifact_9882d6d1e230418da7514924db03fcc1 "OA Interlock requirement" id "9882d6d1-e230-418d-a751-4924db03fcc1" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @sa_startup_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"alias": "mission",
|
||||
"name": "Explicit requirement-link review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"05617eb5-8a1b-4c79-a957-d89567939995": {
|
||||
"id": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"9b07222e-132a-4505-a40e-5761277e43b4": {
|
||||
"id": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"bd6e974f-1f72-4ed9-b146-72b272f4c861": {
|
||||
"id": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": {
|
||||
"id": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1": {
|
||||
"id": "9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"alias": "artifact_9882d6d1e230418da7514924db03fcc1",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
},
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": {
|
||||
"id": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"alias": "artifact_f3635689622e4e71849aec332f8931f3",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
}
|
||||
},
|
||||
"traces": {
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13": {
|
||||
"id": "f27b20ea-1a66-4a91-87d6-79b7bda09a13",
|
||||
"alias": "artifact_review",
|
||||
"name": "Interlock requirement rationale",
|
||||
"description": "",
|
||||
"oa": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"sa": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"kind": "Manual",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "OA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "SA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"semantic": {
|
||||
"facets": [
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Presence": {
|
||||
"oa": {
|
||||
"Value": true
|
||||
},
|
||||
"sa": {
|
||||
"Value": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Name": {
|
||||
"oa": {
|
||||
"Value": "OA Interlock requirement"
|
||||
},
|
||||
"sa": {
|
||||
"Value": "OA Interlock requirement"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Description": {
|
||||
"oa": {
|
||||
"Value": "Reviewed safety rationale\r\nSecond exact line"
|
||||
},
|
||||
"sa": {
|
||||
"Value": "Reviewed safety rationale\r\nSecond exact line"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Owner": {
|
||||
"oa": {
|
||||
"Value": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9"
|
||||
},
|
||||
"sa": {
|
||||
"Value": "9b07222e-132a-4505-a40e-5761277e43b4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Relation": {
|
||||
"oa": {
|
||||
"Value": "Satisfies"
|
||||
},
|
||||
"sa": {
|
||||
"Value": "Satisfies"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Uri": {
|
||||
"oa": {
|
||||
"Value": "requirements/interlock"
|
||||
},
|
||||
"sa": {
|
||||
"Value": "requirements/interlock"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Revision": {
|
||||
"oa": {
|
||||
"Value": null
|
||||
},
|
||||
"sa": {
|
||||
"Value": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Fragment": {
|
||||
"oa": {
|
||||
"Value": "section-4"
|
||||
},
|
||||
"sa": {
|
||||
"Value": "section-4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// Exact artifact rationale: no implicit metadata review
|
||||
arcadia 6;
|
||||
project mission "Explicit requirement-link review" id "a1db88f7-0af1-4ce9-825e-2a407eaa647a" {
|
||||
description "";
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "05617eb5-8a1b-4c79-a957-d89567939995" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "9b07222e-132a-4505-a40e-5761277e43b4" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "bd6e974f-1f72-4ed9-b146-72b272f4c861" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "d4d778ce-95c7-4e83-82ba-d129c6b61dc9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
artifact artifact_f3635689622e4e71849aec332f8931f3 "OA Interlock requirement" id "f3635689-622e-4e71-849a-ec332f8931f3" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @oa_startup_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
trace artifact_review "Interlock requirement rationale" id "f27b20ea-1a66-4a91-87d6-79b7bda09a13" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"alias": "mission",
|
||||
"name": "Explicit requirement-link review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"05617eb5-8a1b-4c79-a957-d89567939995": {
|
||||
"id": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"9b07222e-132a-4505-a40e-5761277e43b4": {
|
||||
"id": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"bd6e974f-1f72-4ed9-b146-72b272f4c861": {
|
||||
"id": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": {
|
||||
"id": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": {
|
||||
"id": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"alias": "artifact_f3635689622e4e71849aec332f8931f3",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
}
|
||||
},
|
||||
"traces": {
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13": {
|
||||
"id": "f27b20ea-1a66-4a91-87d6-79b7bda09a13",
|
||||
"alias": "artifact_review",
|
||||
"name": "Interlock requirement rationale",
|
||||
"description": "",
|
||||
"oa": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"sa": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"fixture": "semantic-artifacts-create",
|
||||
"schema": 6,
|
||||
"project": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"trace_ids": [
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13"
|
||||
],
|
||||
"candidate_ids": [
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
],
|
||||
"initial_artifact_ids": [
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3"
|
||||
],
|
||||
"final_artifact_ids": [
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3"
|
||||
],
|
||||
"acknowledged_count": 8,
|
||||
"retired_count": 0,
|
||||
"impact_count": 0,
|
||||
"native_acceptance": "pending"
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"transition": {
|
||||
"direction": "OaToSa",
|
||||
"sources": [
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9"
|
||||
],
|
||||
"scope": "SelectedOnly",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"target": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [],
|
||||
"resolutions": [],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": []
|
||||
},
|
||||
"traces": {
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": "f27b20ea-1a66-4a91-87d6-79b7bda09a13"
|
||||
},
|
||||
"references": {
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"reviews": [
|
||||
{
|
||||
"source": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"resolutions": [
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Presence"
|
||||
}
|
||||
},
|
||||
"decision": "TakeSource"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Name"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Description"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Owner"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Relation"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Uri"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Revision"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Fragment"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
}
|
||||
],
|
||||
"reset": []
|
||||
}
|
||||
],
|
||||
"candidates": [
|
||||
{
|
||||
"Artifact": {
|
||||
"id": "9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"alias": "artifact_9882d6d1e230418da7514924db03fcc1",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
}
|
||||
}
|
||||
],
|
||||
"accepted_impacts": []
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
// Exact artifact rationale: no implicit metadata review
|
||||
arcadia 6;
|
||||
project mission "Explicit requirement-link review" id "a1db88f7-0af1-4ce9-825e-2a407eaa647a" {
|
||||
description "";
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "05617eb5-8a1b-4c79-a957-d89567939995" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "9b07222e-132a-4505-a40e-5761277e43b4" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "bd6e974f-1f72-4ed9-b146-72b272f4c861" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "d4d778ce-95c7-4e83-82ba-d129c6b61dc9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
artifact artifact_f3635689622e4e71849aec332f8931f3 "OA Interlock requirement" id "f3635689-622e-4e71-849a-ec332f8931f3" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @oa_safety_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
trace artifact_review "Interlock requirement rationale" id "f27b20ea-1a66-4a91-87d6-79b7bda09a13" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "OA Startup coordination";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "SA Startup coordination";
|
||||
};
|
||||
semantic {
|
||||
facets [{
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Presence {
|
||||
oa {
|
||||
Value false;
|
||||
};
|
||||
sa {
|
||||
Value false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Name {
|
||||
oa {
|
||||
Value "OA Interlock requirement";
|
||||
};
|
||||
sa NotApplicable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Description {
|
||||
oa {
|
||||
Value "Reviewed safety rationale\r\nSecond exact line";
|
||||
};
|
||||
sa NotApplicable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Owner {
|
||||
oa {
|
||||
Value uuid "05617eb5-8a1b-4c79-a957-d89567939995";
|
||||
};
|
||||
sa NotApplicable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Relation {
|
||||
oa {
|
||||
Value Satisfies;
|
||||
};
|
||||
sa NotApplicable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Uri {
|
||||
oa {
|
||||
Value "requirements/interlock";
|
||||
};
|
||||
sa NotApplicable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Revision {
|
||||
oa {
|
||||
Value none;
|
||||
};
|
||||
sa NotApplicable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Fragment {
|
||||
oa {
|
||||
Value "section-4";
|
||||
};
|
||||
sa NotApplicable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,219 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"alias": "mission",
|
||||
"name": "Explicit requirement-link review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"05617eb5-8a1b-4c79-a957-d89567939995": {
|
||||
"id": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"9b07222e-132a-4505-a40e-5761277e43b4": {
|
||||
"id": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"bd6e974f-1f72-4ed9-b146-72b272f4c861": {
|
||||
"id": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": {
|
||||
"id": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": {
|
||||
"id": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"alias": "artifact_f3635689622e4e71849aec332f8931f3",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
}
|
||||
},
|
||||
"traces": {
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13": {
|
||||
"id": "f27b20ea-1a66-4a91-87d6-79b7bda09a13",
|
||||
"alias": "artifact_review",
|
||||
"name": "Interlock requirement rationale",
|
||||
"description": "",
|
||||
"oa": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"sa": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"kind": "Manual",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "OA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "SA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"semantic": {
|
||||
"facets": [
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Presence": {
|
||||
"oa": {
|
||||
"Value": false
|
||||
},
|
||||
"sa": {
|
||||
"Value": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Name": {
|
||||
"oa": {
|
||||
"Value": "OA Interlock requirement"
|
||||
},
|
||||
"sa": "NotApplicable"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Description": {
|
||||
"oa": {
|
||||
"Value": "Reviewed safety rationale\r\nSecond exact line"
|
||||
},
|
||||
"sa": "NotApplicable"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Owner": {
|
||||
"oa": {
|
||||
"Value": "05617eb5-8a1b-4c79-a957-d89567939995"
|
||||
},
|
||||
"sa": "NotApplicable"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Relation": {
|
||||
"oa": {
|
||||
"Value": "Satisfies"
|
||||
},
|
||||
"sa": "NotApplicable"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Uri": {
|
||||
"oa": {
|
||||
"Value": "requirements/interlock"
|
||||
},
|
||||
"sa": "NotApplicable"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Revision": {
|
||||
"oa": {
|
||||
"Value": null
|
||||
},
|
||||
"sa": "NotApplicable"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Fragment": {
|
||||
"oa": {
|
||||
"Value": "section-4"
|
||||
},
|
||||
"sa": "NotApplicable"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
// Exact artifact rationale: no implicit metadata review
|
||||
arcadia 6;
|
||||
project mission "Explicit requirement-link review" id "a1db88f7-0af1-4ce9-825e-2a407eaa647a" {
|
||||
description "";
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "05617eb5-8a1b-4c79-a957-d89567939995" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "9b07222e-132a-4505-a40e-5761277e43b4" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "bd6e974f-1f72-4ed9-b146-72b272f4c861" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "d4d778ce-95c7-4e83-82ba-d129c6b61dc9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
artifact artifact_9882d6d1e230418da7514924db03fcc1 "SA Interlock requirement" id "9882d6d1-e230-418d-a751-4924db03fcc1" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @sa_startup_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
artifact artifact_f3635689622e4e71849aec332f8931f3 "OA Interlock requirement" id "f3635689-622e-4e71-849a-ec332f8931f3" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @oa_safety_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
trace artifact_review "Interlock requirement rationale" id "f27b20ea-1a66-4a91-87d6-79b7bda09a13" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"alias": "mission",
|
||||
"name": "Explicit requirement-link review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"05617eb5-8a1b-4c79-a957-d89567939995": {
|
||||
"id": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"9b07222e-132a-4505-a40e-5761277e43b4": {
|
||||
"id": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"bd6e974f-1f72-4ed9-b146-72b272f4c861": {
|
||||
"id": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": {
|
||||
"id": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1": {
|
||||
"id": "9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"alias": "artifact_9882d6d1e230418da7514924db03fcc1",
|
||||
"name": "SA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
},
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": {
|
||||
"id": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"alias": "artifact_f3635689622e4e71849aec332f8931f3",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
}
|
||||
},
|
||||
"traces": {
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13": {
|
||||
"id": "f27b20ea-1a66-4a91-87d6-79b7bda09a13",
|
||||
"alias": "artifact_review",
|
||||
"name": "Interlock requirement rationale",
|
||||
"description": "",
|
||||
"oa": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"sa": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"fixture": "semantic-artifacts-delete",
|
||||
"schema": 6,
|
||||
"project": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"trace_ids": [
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13"
|
||||
],
|
||||
"candidate_ids": [],
|
||||
"initial_artifact_ids": [
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3"
|
||||
],
|
||||
"final_artifact_ids": [
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3"
|
||||
],
|
||||
"acknowledged_count": 8,
|
||||
"retired_count": 0,
|
||||
"impact_count": 0,
|
||||
"native_acceptance": "pending"
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"transition": {
|
||||
"direction": "OaToSa",
|
||||
"sources": [
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9"
|
||||
],
|
||||
"scope": "SelectedOnly",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"target": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [],
|
||||
"resolutions": [],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": []
|
||||
},
|
||||
"traces": {
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": "f27b20ea-1a66-4a91-87d6-79b7bda09a13"
|
||||
},
|
||||
"references": {
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"reviews": [
|
||||
{
|
||||
"source": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"resolutions": [
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Presence"
|
||||
}
|
||||
},
|
||||
"decision": "TakeSource"
|
||||
}
|
||||
],
|
||||
"reset": []
|
||||
}
|
||||
],
|
||||
"candidates": [],
|
||||
"accepted_impacts": []
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
// Exact artifact rationale: no implicit metadata review
|
||||
arcadia 6;
|
||||
project mission "Explicit requirement-link review" id "a1db88f7-0af1-4ce9-825e-2a407eaa647a" {
|
||||
description "";
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "05617eb5-8a1b-4c79-a957-d89567939995" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "9b07222e-132a-4505-a40e-5761277e43b4" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "bd6e974f-1f72-4ed9-b146-72b272f4c861" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "d4d778ce-95c7-4e83-82ba-d129c6b61dc9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
artifact artifact_9882d6d1e230418da7514924db03fcc1 "SA Interlock requirement" id "9882d6d1-e230-418d-a751-4924db03fcc1" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment none;
|
||||
owner @sa_safety_coordination;
|
||||
relation Satisfies;
|
||||
revision "";
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
artifact artifact_f3635689622e4e71849aec332f8931f3 "OA Interlock requirement" id "f3635689-622e-4e71-849a-ec332f8931f3" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @oa_startup_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
trace artifact_review "Interlock requirement rationale" id "f27b20ea-1a66-4a91-87d6-79b7bda09a13" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "OA Startup coordination";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "SA Startup coordination";
|
||||
};
|
||||
semantic {
|
||||
facets [{
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Owner {
|
||||
oa {
|
||||
Value uuid "d4d778ce-95c7-4e83-82ba-d129c6b61dc9";
|
||||
};
|
||||
sa {
|
||||
Value uuid "bd6e974f-1f72-4ed9-b146-72b272f4c861";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Revision {
|
||||
oa {
|
||||
Value none;
|
||||
};
|
||||
sa {
|
||||
Value "";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}, {
|
||||
Artifact {
|
||||
keys {
|
||||
oa uuid "f3635689-622e-4e71-849a-ec332f8931f3";
|
||||
sa uuid "9882d6d1-e230-418d-a751-4924db03fcc1";
|
||||
};
|
||||
review {
|
||||
Fragment {
|
||||
oa {
|
||||
Value "section-4";
|
||||
};
|
||||
sa {
|
||||
Value none;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"alias": "mission",
|
||||
"name": "Explicit requirement-link review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"05617eb5-8a1b-4c79-a957-d89567939995": {
|
||||
"id": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"9b07222e-132a-4505-a40e-5761277e43b4": {
|
||||
"id": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"bd6e974f-1f72-4ed9-b146-72b272f4c861": {
|
||||
"id": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": {
|
||||
"id": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1": {
|
||||
"id": "9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"alias": "artifact_9882d6d1e230418da7514924db03fcc1",
|
||||
"name": "SA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": "",
|
||||
"fragment": null
|
||||
},
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": {
|
||||
"id": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"alias": "artifact_f3635689622e4e71849aec332f8931f3",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
}
|
||||
},
|
||||
"traces": {
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13": {
|
||||
"id": "f27b20ea-1a66-4a91-87d6-79b7bda09a13",
|
||||
"alias": "artifact_review",
|
||||
"name": "Interlock requirement rationale",
|
||||
"description": "",
|
||||
"oa": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"sa": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"kind": "Manual",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "OA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "SA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"semantic": {
|
||||
"facets": [
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Owner": {
|
||||
"oa": {
|
||||
"Value": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9"
|
||||
},
|
||||
"sa": {
|
||||
"Value": "bd6e974f-1f72-4ed9-b146-72b272f4c861"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Revision": {
|
||||
"oa": {
|
||||
"Value": null
|
||||
},
|
||||
"sa": {
|
||||
"Value": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"review": {
|
||||
"Fragment": {
|
||||
"oa": {
|
||||
"Value": "section-4"
|
||||
},
|
||||
"sa": {
|
||||
"Value": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
// Exact artifact rationale: no implicit metadata review
|
||||
arcadia 6;
|
||||
project mission "Explicit requirement-link review" id "a1db88f7-0af1-4ce9-825e-2a407eaa647a" {
|
||||
description "";
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "05617eb5-8a1b-4c79-a957-d89567939995" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "9b07222e-132a-4505-a40e-5761277e43b4" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "bd6e974f-1f72-4ed9-b146-72b272f4c861" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "d4d778ce-95c7-4e83-82ba-d129c6b61dc9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
artifact artifact_9882d6d1e230418da7514924db03fcc1 "SA Interlock requirement" id "9882d6d1-e230-418d-a751-4924db03fcc1" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @sa_startup_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
artifact artifact_f3635689622e4e71849aec332f8931f3 "OA Interlock requirement" id "f3635689-622e-4e71-849a-ec332f8931f3" {
|
||||
description "Reviewed safety rationale\r\nSecond exact line";
|
||||
fragment "section-4";
|
||||
owner @oa_startup_coordination;
|
||||
relation Satisfies;
|
||||
revision none;
|
||||
uri "requirements/interlock";
|
||||
}
|
||||
|
||||
trace artifact_review "Interlock requirement rationale" id "f27b20ea-1a66-4a91-87d6-79b7bda09a13" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"alias": "mission",
|
||||
"name": "Explicit requirement-link review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"05617eb5-8a1b-4c79-a957-d89567939995": {
|
||||
"id": "05617eb5-8a1b-4c79-a957-d89567939995",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"9b07222e-132a-4505-a40e-5761277e43b4": {
|
||||
"id": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"bd6e974f-1f72-4ed9-b146-72b272f4c861": {
|
||||
"id": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": {
|
||||
"id": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1": {
|
||||
"id": "9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"alias": "artifact_9882d6d1e230418da7514924db03fcc1",
|
||||
"name": "SA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
},
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": {
|
||||
"id": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"alias": "artifact_f3635689622e4e71849aec332f8931f3",
|
||||
"name": "OA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": null,
|
||||
"fragment": "section-4"
|
||||
}
|
||||
},
|
||||
"traces": {
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13": {
|
||||
"id": "f27b20ea-1a66-4a91-87d6-79b7bda09a13",
|
||||
"alias": "artifact_review",
|
||||
"name": "Interlock requirement rationale",
|
||||
"description": "",
|
||||
"oa": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"sa": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"fixture": "semantic-artifacts-move",
|
||||
"schema": 6,
|
||||
"project": "a1db88f7-0af1-4ce9-825e-2a407eaa647a",
|
||||
"trace_ids": [
|
||||
"f27b20ea-1a66-4a91-87d6-79b7bda09a13"
|
||||
],
|
||||
"candidate_ids": [
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
],
|
||||
"initial_artifact_ids": [
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3"
|
||||
],
|
||||
"final_artifact_ids": [
|
||||
"9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3"
|
||||
],
|
||||
"acknowledged_count": 3,
|
||||
"retired_count": 0,
|
||||
"impact_count": 0,
|
||||
"native_acceptance": "pending"
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"transition": {
|
||||
"direction": "OaToSa",
|
||||
"sources": [
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9"
|
||||
],
|
||||
"scope": "SelectedOnly",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"target": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [],
|
||||
"resolutions": [],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": []
|
||||
},
|
||||
"traces": {
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": "f27b20ea-1a66-4a91-87d6-79b7bda09a13"
|
||||
},
|
||||
"references": {
|
||||
"d4d778ce-95c7-4e83-82ba-d129c6b61dc9": "9b07222e-132a-4505-a40e-5761277e43b4",
|
||||
"f3635689-622e-4e71-849a-ec332f8931f3": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"reviews": [
|
||||
{
|
||||
"source": "d4d778ce-95c7-4e83-82ba-d129c6b61dc9",
|
||||
"resolutions": [
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Owner"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Revision"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
},
|
||||
{
|
||||
"facet": {
|
||||
"Artifact": {
|
||||
"keys": {
|
||||
"oa": "f3635689-622e-4e71-849a-ec332f8931f3",
|
||||
"sa": "9882d6d1-e230-418d-a751-4924db03fcc1"
|
||||
},
|
||||
"facet": "Fragment"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
}
|
||||
],
|
||||
"reset": []
|
||||
}
|
||||
],
|
||||
"candidates": [
|
||||
{
|
||||
"Artifact": {
|
||||
"id": "9882d6d1-e230-418d-a751-4924db03fcc1",
|
||||
"alias": "artifact_9882d6d1e230418da7514924db03fcc1",
|
||||
"name": "SA Interlock requirement",
|
||||
"description": "Reviewed safety rationale\r\nSecond exact line",
|
||||
"owner": "bd6e974f-1f72-4ed9-b146-72b272f4c861",
|
||||
"relation": "Satisfies",
|
||||
"uri": "requirements/interlock",
|
||||
"revision": "",
|
||||
"fragment": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"accepted_impacts": []
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
# Artifact semantic native fixtures
|
||||
|
||||
All three variants have **Interlock requirement rationale** as the owner trace. Open Review semantics > Artifact links. Work on copies of the original `.arcadia` files. Exact before/after JSON, source, and core requests sit beside each fixture.
|
||||
|
||||
## Move and optional metadata
|
||||
|
||||
Open `semantic-artifacts-move.arcadia`. Pair **OA Interlock requirement** and **SA Interlock requirement**, then Review this exact artifact pair. Select these three properties independently with Set final value:
|
||||
|
||||
- Owner: **SA Safety coordination**.
|
||||
- Revision: Present checked, empty text. This is `Some("")`.
|
||||
- Fragment: Present unchecked. The disabled `section-4` text remains a draft; accepted value is `None`.
|
||||
|
||||
Before Apply, Keep Presence must produce an explicit conflict with the Owner move. Leave that Presence decision unselected to restore valid preview. Type `-` into Owner identity, switch rows/tabs, checkpoint and recover; rejected raw input must remain. Repair the Owner identity with the named picker. Apply once and compare exactly with `semantic-artifacts-move.after.json/.after.arcadia`. Undo/Redo once restores exact source/model/history. The link moves, so subsequent metadata review requires an appropriate trace at the new owner; the old trace must not silently rebind.
|
||||
|
||||
## Source attachment absence and deletion
|
||||
|
||||
Open `semantic-artifacts-delete.arcadia`. Its OA link still exists, now attached to **OA Safety coordination**. Review the original trace and explicitly pair the historical OA link with the SA link. The OA picker directly offers this same-layer link, labeled with its current Safety owner and “not attached to reviewed owner”. Take Artifact Presence: the SA link is removed while the OA link remains. The exact after oracle contains eight acknowledged facts (source metadata still exists), not seven retired facts. A genuinely deleted source link would retire unavailable metadata instead, as covered by the core test.
|
||||
|
||||
**No OA identity** means destination-only retention; it must not act as deletion. No fake missing UUID or candidate record is used as a tombstone.
|
||||
|
||||
## Creation and provisional identity
|
||||
|
||||
Open `semantic-artifacts-create.arcadia`. Choose **OA Interlock requirement**, then Reserve a new destination counterpart, then Review this exact artifact pair. Take Presence alone remains blocked. Deliberately review Name, Description, Owner, Relation, URI, Revision and Fragment, using Set final value for every field. The seeded values are from the source, with the destination owner and a fresh reserved identity.
|
||||
|
||||
The GUI deliberately reserves a random stable UUID, so the initially supplied creation after oracle is a template. Obtain the reserved UUID from its saved recovery seed or the created artifact after Apply, then regenerate the exact oracle against the unchanged fixture base:
|
||||
|
||||
`. .local/toolchain/env.ps1`
|
||||
|
||||
`.local/native-fixtures/generate-semantic-artifacts-preserved.exe .local/native-fixtures/artifacts-session <reserved-uuid>`
|
||||
|
||||
Compile the preserved generator using this directory’s README. This mode reads the existing `semantic-artifacts-create.json` in the explicitly supplied copied directory, preserves that fixture identity, and updates only the request/after oracle using the explicit reserved ID. It must not be called without the UUID after native work, since output-directory-only generation creates new initial fixture identities.
|
||||
|
||||
Compare accepted source/model/history exactly. This creation gesture has eight explicit reviews and one complete candidate. Checkpoint/recover before Apply must retain the reserved identity, per-field drafts and excluded state; reservation itself must not add a model record.
|
||||
|
||||
## Layout checks
|
||||
|
||||
At 1100x700 and 1440x900, verify wrapping tabs, pair picker actions, description editor, Owner picker/raw field and optional text toggles. All row actions must remain outside the right scrollbar gutter. Native execution is pending; the generator only validates direct-core preparation and exact source round trips.
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"algorithm": "SHA256",
|
||||
"files": {
|
||||
"generate-semantic-artifacts.rs": "444f360b78df52c5e42046f77b148781e0c9bddc2a09c0b7bd65c7a4f376cfe6",
|
||||
"README.md": "24200c84ccc2ef3e17c029744074e5cea785188f5549ac54e44cf89682643f81",
|
||||
"semantic-artifacts-create.after.arcadia": "84b22e95c213018612e6e8a84cad68b35a8b495ff3515b0f978c5e7a3d196d79",
|
||||
"semantic-artifacts-create.after.json": "13a6f99ec2df1dd35ee8b2613f183918cd9537eda4a5da085ad52e65c033db59",
|
||||
"semantic-artifacts-create.arcadia": "1e0d662ba33071b122ad9206d2d559a8e748c9431eb3ac1b759bde3760ca877c",
|
||||
"semantic-artifacts-create.json": "fa6a2e3643c0f909b92407abec3edc897033162eeaa501f8d4616f79d41fa044",
|
||||
"semantic-artifacts-create.manifest.json": "65cb70b0d697a055363ba01bf30bed7e412d43c9978a033549c378d117719ae7",
|
||||
"semantic-artifacts-create.request.json": "ed905267263e7f8a0cd2dbe833196b30118b6a246815216932fae661ad650699",
|
||||
"semantic-artifacts-delete.after.arcadia": "e50fc462ec22dbf98011929931dd2489430001c3e6433608685b9d88bceb9acb",
|
||||
"semantic-artifacts-delete.after.json": "f27a7b38d59c7cefe58cb36783d3d4dd8d8ae1168d9aed1eb61d343c18758908",
|
||||
"semantic-artifacts-delete.arcadia": "eba2aec39e6efb405eace4bc8ab0c5563907c26d449e71a4aa750df9f73233b4",
|
||||
"semantic-artifacts-delete.json": "2ef777f19b94f08b5e5ca2ef727777897e1018f1426eee291408b3c69101f596",
|
||||
"semantic-artifacts-delete.manifest.json": "3af7232ed3056ca84dcaf0f266ead3faaa512a0dc0051c7ba68791c20dbae0cf",
|
||||
"semantic-artifacts-delete.request.json": "8af21b00b62e620256fbf50e47c6c5836cdb6922d9549cc4b3d86bc03b008073",
|
||||
"semantic-artifacts-move.after.arcadia": "20bb30473830e44228958e78fb7480269cdcc0580c6c90c718da75f34ca5a43f",
|
||||
"semantic-artifacts-move.after.json": "44f4b05db49758dcf344788f57cecc0250fd029099b1c54e4e1e3e972f6cf039",
|
||||
"semantic-artifacts-move.arcadia": "b0fd031671c9f755756922ec5c40a0ce3f40164d22c3c389aec9fd0705344da7",
|
||||
"semantic-artifacts-move.json": "1acf81e08c51c85aceb14a3efbc39ec680552a19c7824aab4611ac3cf71b9c6d",
|
||||
"semantic-artifacts-move.manifest.json": "a07978f4b0a3ca83e5ae5f35e7b66b26473b24431fc90e5889d755f1816d52dd",
|
||||
"semantic-artifacts-move.request.json": "5ff844a038b0030adb5a83d13d81e60f30627543388f6199b6a0e026fc42ea58",
|
||||
"semantic-artifacts-native.md": "a51ffbc45b6c172cbfed3b16c249296e6a28d457fea57393dd958cdcfbafbca1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
# Communication means native QA fixtures
|
||||
|
||||
**Acceptance remains scoped by the native reports.** The actual drawn baseline
|
||||
has independently passed the draw+rename oracle below; this does not accept every
|
||||
transition variant. These deterministic source-6 fixtures and direct
|
||||
core oracles cover participant communication, explicit SA endpoint choices and a
|
||||
reverse boundary Call/correlated Reply. They do not simulate native drawing or
|
||||
establish readability. Root is the native operator. Work on isolated copies;
|
||||
never overwrite the tracked bases with native saves.
|
||||
|
||||
## Fixtures and expected behavior
|
||||
|
||||
- `cm-draw.arcadia`: OA **Rescue team** / **Control centre**, independently owned
|
||||
activities **Report rescue status** / **Assess rescue status**, two allocations
|
||||
and **Rescue status** Interaction. There is **no CommunicationMean**. Open the
|
||||
saved **Draw operational communication** Overview: participant rectangles
|
||||
`(80,70,250,160)` / `(550,70,250,160)`, work rectangles at y330; horizontal gap
|
||||
220. SA **Rescue radio** / **Control radio** already have one Standard/Unset
|
||||
component socket each, and explicit participant traces. No interfaces,
|
||||
PortAllocations or ExchangeAllocations are invented.
|
||||
- `cm-transition-ready.arcadia`: same base plus unoriented **Rescue radio channel**
|
||||
from Rescue team to Control centre. This isolates transition QA if drawing is
|
||||
investigated separately. Existing traces are **Team radio correspondence** and
|
||||
**Control radio correspondence**.
|
||||
- `cm-reuse.after-template/entry.arcadia`: both SA sockets explicitly reused;
|
||||
no new element, one BoundaryExchange and its Exchange trace added.
|
||||
- `cm-create.after-template/entry.arcadia`: source **Existing team socket** reused;
|
||||
destination explicitly creates a Standard/Unset port under Control radio.
|
||||
Exactly one new element, one BoundaryExchange and its Exchange trace added;
|
||||
**Existing control socket** is retained unused. Created name follows the GUI:
|
||||
`Rescue radio channel · target port`, empty description.
|
||||
- `cm-reverse-scenario.arcadia`: existing mapped unoriented channel/boundary plus
|
||||
SA BoundaryInterface scenario **Reverse rescue request**. **Control radio
|
||||
lifeline** calls **Team radio lifeline**, opposite the stored boundary endpoints;
|
||||
**Reply with rescue report** returns and explicitly correlates to **Request
|
||||
rescue report**. All ports are Standard/Unset.
|
||||
- `cm-reverse-scenario.after-template/entry.arcadia`: **legacy desktop policy** whole-subtree SA→OA transition
|
||||
preserves the existing source scenario/messages, maps the boundary to the
|
||||
existing OA mean and participants, creates the five OA scenario/lifeline/
|
||||
occurrence counterparts and five traces, and creates **zero OA ports**.
|
||||
Call resolves Control centre→Rescue team; Reply resolves Rescue team→Control
|
||||
centre and points to the mapped Call identity. Legacy desktop Apply also adds five
|
||||
placements to the existing OA diagram. The oracle independently predicts all
|
||||
five placements, rather than discarding presentation differences.
|
||||
|
||||
Template after directories are **complete source bundles**, including generated
|
||||
`traceability.arcadia` and other modules. Copy entire directories. Their fresh
|
||||
counterpart/trace IDs are deterministic reference IDs, not the UUIDs a native
|
||||
transition will allocate. `manifest.json` supplies all stable base identities.
|
||||
Each request JSON is a complete core request; `destination_diagram` is None.
|
||||
Under the legacy desktop policy used by these original templates, this does not
|
||||
disable placement: the GUI selects the first target-layer diagram and places
|
||||
changed elements that are not already shown. The corrected behavior-root policy
|
||||
uses the separate `reverse-behavior` mode below and preserves every saved view.
|
||||
|
||||
## Native steps
|
||||
|
||||
1. Open a copy of `cm-draw.arcadia`, select Operational / **Draw operational
|
||||
communication**. Fit, then use working zoom at 1440×900 and 1100×700. Start
|
||||
**Communication means**, click Rescue team then Control centre. Confirm the
|
||||
endpoint tool excludes Activity targets and creates one participant-level
|
||||
relation without OA ports. Rename it **Rescue radio channel**. Confirm the
|
||||
channel is **unoriented** (`oriented false`), with no items. Save this complete before-transition
|
||||
project in a new trial directory; preserve its entire source bundle for Undo.
|
||||
The Interaction and its existing allocations must remain unchanged.
|
||||
2. Select the mean and open transition to System. **Keep the initial Required
|
||||
references scope while explicitly selecting** Rescue team→Rescue radio and
|
||||
Control centre→Control radio in their participant pickers. Seeing an existing
|
||||
trace candidate is not the same as authoring its mapping. The original
|
||||
instructions switched to Selected only too early, hiding both participant
|
||||
rows and their existing port choices. This was an instruction error.
|
||||
Once both mappings are authored, switch **Include → Selected only**; mapping
|
||||
and endpoint drafts survive the scope change. This preserves the selected-only
|
||||
request's exact boundary: participant names/baselines are not updated. If
|
||||
target Name review is shown while Required references is selected, Keep target
|
||||
is consistent; it need not appear after switching. Before both communication
|
||||
endpoints are chosen, Apply must remain blocked.
|
||||
3. In **System communication endpoints**, source uses **Existing team socket**.
|
||||
Target uses **Create Standard port · bidirectional**. Verify the new port is
|
||||
under Control radio and no existing socket disappears. Do not change other
|
||||
port metadata. Selected-only forward creation adds no standalone node placement:
|
||||
the exchange is the plan change and the component port belongs to its owner.
|
||||
One Apply then Save As must match the `check create` oracle below. One Undo/Save
|
||||
must equal the full captured before bundle; one Redo/Save must equal the after
|
||||
bundle exactly, retaining generated UUIDs.
|
||||
4. In a separate clean copy, repeat with both **Existing team socket** and
|
||||
**Existing control socket**. Run `check reuse`. There must be no new port.
|
||||
These are alternative trials, not successive edits to one counterpart.
|
||||
5. **Legacy binary reproduction:** open a copy of `cm-reverse-scenario.arcadia`. In System Behavior select
|
||||
**Reverse rescue request**. Inspect both named lifelines, reverse Call and
|
||||
correlated Reply. Transition the **scenario** to Operational with **Whole
|
||||
subtree**; map the boundary to the existing Rescue radio channel and both
|
||||
participants to their existing OA counterparts. Keep target Names for differing
|
||||
participants. The legacy GUI automatically places new target elements in its first
|
||||
OA diagram; no placement opt-out is exposed. One Apply/Save must pass
|
||||
`check reverse`; inspect operational lifelines, mapped Reply-to identity,
|
||||
both message directions and absence of OA ports. Repeat exact Undo/Redo saves.
|
||||
|
||||
If a UI choice produces a different result, preserve the full trial bundle and
|
||||
record the exact choice. Do not modify the expected contract to make it pass.
|
||||
Exchange allocation authoring, Flow-port directional refusal, crash recovery and
|
||||
other communication transition variants are separate gates unless exercised.
|
||||
|
||||
## Generator and exact oracle checker
|
||||
|
||||
Compile outside Cargo/shared target, after the owner confirms these libraries
|
||||
are stable. The matching serde_json fingerprint matters; another feature graph
|
||||
with the same crate version will fail Rust trait identity checks.
|
||||
|
||||
```powershell
|
||||
. .local/toolchain/env.ps1
|
||||
rustc --edition 2024 -C linker=clang.exe --extern oa_core=.local/target-gnullvm/debug/deps/liboa_core-6c8da57367eec642.rlib --extern serde_json=.local/target-gnullvm/debug/deps/libserde_json-da2c4f333fc47818.rlib -L dependency=.local/target-gnullvm/debug/deps harness/fixtures/release1-native/communication-means/generate-communication-means.rs -o .local/native-fixtures/generate-communication-means.exe
|
||||
.local/native-fixtures/generate-communication-means.exe generate .local/native-fixtures/cm-fresh
|
||||
.local/native-fixtures/generate-communication-means.exe check create BEFORE_ENTRY.arcadia AFTER_ENTRY.arcadia .local/native-fixtures/cm-native-oracle
|
||||
```
|
||||
|
||||
Use `reuse` or `reverse` instead of `create` for the other cases. The checker loads
|
||||
real complete source bundles. It constructs the independent expected core request
|
||||
from the preserved before model, with the specified choices above. Actual output
|
||||
supplies **only** the created port UUID (create trial) and the new target/trace UUIDs
|
||||
matched by exact source identity. New placement UUIDs are matched only by exact
|
||||
destination diagram and mapped element identity. Typed reference visitors plus identity-field
|
||||
rekeying perform those substitutions; no names, aliases, metadata, history,
|
||||
orientations, bindings or reply fields are copied from actual output. Existing
|
||||
identities cannot be normalized away. Placement order/geometry is independently
|
||||
predicted from the plan's changes and prior diagram: starting with four existing
|
||||
OA nodes, positions are `(340,210)`, `(620,210)`, `(60,360)`, `(340,360)`,
|
||||
`(620,360)`, each size224×94, unfolded with no port anchors. Existing placements
|
||||
remain unchanged. Names/aliases follow the same core placement primitive, with
|
||||
no observed native metadata copied into the expected result. The complete resulting Project must equal
|
||||
actual, then every reachable source module must equal the production updater's
|
||||
output byte-for-byte. Only the entry *filename* is aligned for Save As; contents
|
||||
and all included paths remain exact. Successful checking writes expected JSON,
|
||||
the complete expected bundle and native request into the supplied output folder.
|
||||
|
||||
Direct-rustc validation passed generation, complete JSON/source round trips and
|
||||
all three checker modes against their template bundles. Forward modes substitute
|
||||
two generated target/trace UUIDs and no placement IDs; reverse substitutes ten
|
||||
target/trace and five placement UUIDs. All six initial source/JSON fixture files
|
||||
remain byte-for-byte unchanged by this correction. Regenerating every output in
|
||||
a fresh directory was byte-exact. Temporary counterfactuals with changed placement
|
||||
x coordinate, width, alias or swapped element assignments were each rejected by
|
||||
the full-model oracle; an added source newline was separately rejected by exact
|
||||
bundle comparison. The earlier changed-name after bundle was also rejected.
|
||||
Ignored trial evidence is under `.local/native-fixtures/cm-placement-falsifiers/`.
|
||||
These are core/tool checks, not native passes.
|
||||
Core test contracts reused: `communication_transition_requires_explicit_ports_and_preserves_participant_mapping`,
|
||||
`communication_reverse_transition_projects_owners_without_oa_ports`, and
|
||||
`reverse_boundary_scenario_transition_keeps_call_orientation_and_reply_identity`.
|
||||
|
||||
## Actual native drawing baseline oracle
|
||||
|
||||
`check draw BEFORE_ENTRY AFTER_ENTRY OUTPUT_DIRECTORY` constructs an independent
|
||||
`CreateRelation` using the GUI's initial engineering name/alias rule, then an
|
||||
`EditRelation` changing only the name to **Rescue radio channel**. The production
|
||||
source updater runs after each command. Actual output supplies only the one new
|
||||
relation UUID; the checker compares the complete Project and every reachable
|
||||
source byte, aligning only the entry filename for Save As.
|
||||
|
||||
Actual `.local/native-qa/cm-create-before/entry.arcadia` passed against tracked
|
||||
`cm-draw.arcadia`. The new UUID is `3e576659-3455-4fb5-811e-5f4a326948f4`; expected
|
||||
alias is `communication_means_rescue_team_control_centre`, empty description/items,
|
||||
`oriented false`, endpoints cm10→cm11. The complete native entry and independent
|
||||
expected entry both hash to
|
||||
`40363373B2443714F38D5825F8FAF53183CF004962059E0B611D01DB8E7F7F7E`.
|
||||
Log: `.local/native-fixtures/cm-native-draw-check.log`; full expected model/source
|
||||
and serialized commands: `.local/native-fixtures/cm-native-draw-oracle/`.
|
||||
Changed orientation and alias were independently rejected by full-model equality;
|
||||
added source whitespace was rejected by exact-source comparison. The native files
|
||||
and existing tracked fixture/oracle models were read-only during this verification.
|
||||
|
||||
```powershell
|
||||
. .local/toolchain/env.ps1
|
||||
.local/native-fixtures/generate-communication-means.exe check draw harness/fixtures/release1-native/communication-means/cm-draw.arcadia .local/native-qa/cm-create-before/entry.arcadia .local/native-fixtures/cm-native-draw-oracle
|
||||
```
|
||||
|
||||
## Behavior navigation policy: separate reverse oracle
|
||||
|
||||
The original `check reverse` and `cm-reverse-scenario.after-template` remain the
|
||||
**legacy automatic-placement oracle**: ten target/trace UUIDs plus five placement
|
||||
UUIDs. Root verified that policy natively, including exact Save/Undo/Redo. It is
|
||||
retained to explain the earlier binary's accepted result, not silently revised.
|
||||
|
||||
For a binary containing the behavior-transition navigation correction, repeat the
|
||||
same reverse scenario review from the unchanged `cm-reverse-scenario.arcadia`
|
||||
baseline. After Apply, Behavior should show the explicit OA counterpart of
|
||||
**Reverse rescue request**, with the Call and correlated Reply. It must not switch
|
||||
to an unrelated architecture view or add placements there. All saved diagrams,
|
||||
including geometry, routing and metadata, must remain exactly equal to baseline.
|
||||
Save, Undo/save and Redo/save remain one complete transition operation.
|
||||
|
||||
Use the distinct checker (replace `NEW_NATIVE_AFTER_ENTRY` with the saved entry):
|
||||
|
||||
```powershell
|
||||
. .local/toolchain/env.ps1
|
||||
.local/native-fixtures/generate-communication-means.exe check reverse-behavior harness/fixtures/release1-native/communication-means/cm-reverse-scenario.arcadia NEW_NATIVE_AFTER_ENTRY .local/native-fixtures/cm-native-reverse-behavior-oracle
|
||||
```
|
||||
|
||||
`cm-reverse-behavior.after-template` is the new complete expected bundle. Its
|
||||
generation mode takes the original source bundle and uses the production source
|
||||
updater; it does not rewrite the legacy fixture or templates:
|
||||
|
||||
```powershell
|
||||
.local/native-fixtures/generate-communication-means.exe generate-reverse-behavior harness/fixtures/release1-native/communication-means/cm-reverse-scenario.arcadia NEW_OUTPUT_DIRECTORY
|
||||
```
|
||||
|
||||
The new policy calls the shared core planner/application with the explicit
|
||||
scenario root and no destination diagram, independently asserts unchanged
|
||||
diagrams, and preserves existing reverse Call/Reply/binding/no-OA-port assertions.
|
||||
Only ten generated target/trace UUIDs are normalized; no placement identity or
|
||||
property is copied from native output. Full Project and complete source-byte
|
||||
comparisons still apply. This mode covers this explicit scenario fixture, not
|
||||
arbitrary behavior root types or explicit destination requests.
|
||||
|
||||
Direct-rustc checks passed the new template and the unchanged legacy template.
|
||||
The new checker rejected the legacy placements; the legacy checker rejected
|
||||
their omission; the new checker also rejected an added source newline. Regeneration
|
||||
was byte-exact. Negative logs are in
|
||||
`.local/native-fixtures/cm-reverse-behavior-falsifiers/`. These are fixture-tool
|
||||
checks; native acceptance of the corrected navigation policy remains pending.
|
||||
+244
@@ -0,0 +1,244 @@
|
||||
arcadia 6;
|
||||
project communication_native "Rescue communication engineering" id "c6060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
oa_entity cm_10 "Rescue team" id "c6060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_actor cm_11 "Control centre" id "c6060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_12 "Report rescue status" id "c6060906-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_13 "Assess rescue status" id "c6060906-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system cm_30 "Rescue radio" id "c6060906-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_actor cm_31 "Control radio" id "c6060906-0000-4000-8000-00000000001f" {
|
||||
description "";
|
||||
parent none;
|
||||
|
||||
sa_port rescue_radio_channel_target_port "Rescue radio channel · target port" id "c6060906-0000-4000-8000-000000001f40" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
sa_port cm_32 "Existing team socket" id "c6060906-0000-4000-8000-000000000020" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_30;
|
||||
}
|
||||
|
||||
sa_port cm_33 "Existing control socket" id "c6060906-0000-4000-8000-000000000021" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_31;
|
||||
}
|
||||
|
||||
allocation cm_20 "Team performs reporting" id "c6060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
source @cm_10;
|
||||
target @cm_12;
|
||||
}
|
||||
|
||||
allocation cm_21 "Control performs assessment" id "c6060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
source @cm_11;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
interaction cm_22 "Rescue status" id "c6060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
items [];
|
||||
source @cm_12;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
communication_mean cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_10;
|
||||
target @cm_11;
|
||||
}
|
||||
|
||||
diagram cm_diagram_1000 "Draw operational communication" id "c6060906-0000-4000-8000-0000000003e8" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1000 id "c6060906-0000-4000-8000-0000000003f2" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1001 id "c6060906-0000-4000-8000-0000000003f3" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_11;
|
||||
position {
|
||||
x 550.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1002 id "c6060906-0000-4000-8000-0000000003f4" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_12;
|
||||
position {
|
||||
x 80.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1003 id "c6060906-0000-4000-8000-0000000003f5" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_13;
|
||||
position {
|
||||
x 550.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram cm_diagram_1100 "Explicit system endpoints" id "c6060906-0000-4000-8000-00000000044c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1100 id "c6060906-0000-4000-8000-000000000456" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_30;
|
||||
position {
|
||||
x 80.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1101 id "c6060906-0000-4000-8000-000000000457" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_31;
|
||||
position {
|
||||
x 550.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
trace cm_40 "Team radio correspondence" id "c6060906-0000-4000-8000-000000000028" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_10;
|
||||
sa @cm_30;
|
||||
}
|
||||
|
||||
trace cm_41 "Control radio correspondence" id "c6060906-0000-4000-8000-000000000029" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_11;
|
||||
sa @cm_31;
|
||||
}
|
||||
|
||||
|
||||
boundary_exchange sa_cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000001f41" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_32;
|
||||
target @rescue_radio_channel_target_port;
|
||||
}
|
||||
|
||||
|
||||
|
||||
include "traceability.arcadia";
|
||||
}
|
||||
+370
@@ -0,0 +1,370 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c6060906-0000-4000-8000-000000000001",
|
||||
"alias": "communication_native",
|
||||
"name": "Rescue communication engineering",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"c6060906-0000-4000-8000-00000000000a": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000a",
|
||||
"alias": "cm_10",
|
||||
"name": "Rescue team",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Entity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000b": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000b",
|
||||
"alias": "cm_11",
|
||||
"name": "Control centre",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000c",
|
||||
"alias": "cm_12",
|
||||
"name": "Report rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000d": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000d",
|
||||
"alias": "cm_13",
|
||||
"name": "Assess rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001e": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001e",
|
||||
"alias": "cm_30",
|
||||
"name": "Rescue radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001f": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001f",
|
||||
"alias": "cm_31",
|
||||
"name": "Control radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000020": {
|
||||
"id": "c6060906-0000-4000-8000-000000000020",
|
||||
"alias": "cm_32",
|
||||
"name": "Existing team socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001e",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000021": {
|
||||
"id": "c6060906-0000-4000-8000-000000000021",
|
||||
"alias": "cm_33",
|
||||
"name": "Existing control socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f40": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f40",
|
||||
"alias": "rescue_radio_channel_target_port",
|
||||
"name": "Rescue radio channel · target port",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"c6060906-0000-4000-8000-000000000014": {
|
||||
"id": "c6060906-0000-4000-8000-000000000014",
|
||||
"alias": "cm_20",
|
||||
"name": "Team performs reporting",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000015": {
|
||||
"id": "c6060906-0000-4000-8000-000000000015",
|
||||
"alias": "cm_21",
|
||||
"name": "Control performs assessment",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000016": {
|
||||
"id": "c6060906-0000-4000-8000-000000000016",
|
||||
"alias": "cm_22",
|
||||
"name": "Rescue status",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Interaction": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000c",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d",
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000032": {
|
||||
"id": "c6060906-0000-4000-8000-000000000032",
|
||||
"alias": "cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"CommunicationMean": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f41": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f41",
|
||||
"alias": "sa_cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "c6060906-0000-4000-8000-000000000020",
|
||||
"target": "c6060906-0000-4000-8000-000000001f40",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {
|
||||
"c6060906-0000-4000-8000-0000000003e8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"alias": "cm_diagram_1000",
|
||||
"name": "Draw operational communication",
|
||||
"description": "",
|
||||
"layer": "Oa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-0000000003f2": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f2",
|
||||
"alias": "cm_view_1000",
|
||||
"element": "c6060906-0000-4000-8000-00000000000a",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f3": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f3",
|
||||
"alias": "cm_view_1001",
|
||||
"element": "c6060906-0000-4000-8000-00000000000b",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f4": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f4",
|
||||
"alias": "cm_view_1002",
|
||||
"element": "c6060906-0000-4000-8000-00000000000c",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f5": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f5",
|
||||
"alias": "cm_view_1003",
|
||||
"element": "c6060906-0000-4000-8000-00000000000d",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000044c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000044c",
|
||||
"alias": "cm_diagram_1100",
|
||||
"name": "Explicit system endpoints",
|
||||
"description": "",
|
||||
"layer": "Sa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-000000000456": {
|
||||
"id": "c6060906-0000-4000-8000-000000000456",
|
||||
"alias": "cm_view_1100",
|
||||
"element": "c6060906-0000-4000-8000-00000000001e",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000457": {
|
||||
"id": "c6060906-0000-4000-8000-000000000457",
|
||||
"alias": "cm_view_1101",
|
||||
"element": "c6060906-0000-4000-8000-00000000001f",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
}
|
||||
},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"c6060906-0000-4000-8000-000000000028": {
|
||||
"id": "c6060906-0000-4000-8000-000000000028",
|
||||
"alias": "cm_40",
|
||||
"name": "Team radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000a",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001e",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000029": {
|
||||
"id": "c6060906-0000-4000-8000-000000000029",
|
||||
"alias": "cm_41",
|
||||
"name": "Control radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000b",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001f",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f42": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f42",
|
||||
"alias": "trace_exchange_exchange",
|
||||
"name": "Rescue radio channel ↔ Rescue radio channel",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000000032",
|
||||
"sa": "c6060906-0000-4000-8000-000000001f41",
|
||||
"kind": "Exchange",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
|
||||
trace trace_exchange_exchange "Rescue radio channel ↔ Rescue radio channel" id "c6060906-0000-4000-8000-000000001f42" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Exchange;
|
||||
oa @cm_50;
|
||||
sa @sa_cm_50;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"direction": "OaToSa",
|
||||
"sources": [
|
||||
"c6060906-0000-4000-8000-000000000032"
|
||||
],
|
||||
"scope": "SelectedOnly",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000001e",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000001f",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
"Name",
|
||||
"Description"
|
||||
],
|
||||
"resolutions": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
}
|
||||
],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-000000000032",
|
||||
"source_port": {
|
||||
"Reuse": {
|
||||
"port": "c6060906-0000-4000-8000-000000000020"
|
||||
}
|
||||
},
|
||||
"target_port": {
|
||||
"Create": {
|
||||
"id": "c6060906-0000-4000-8000-00000000003c",
|
||||
"alias": "rescue_radio_channel_target_port",
|
||||
"name": "Rescue radio channel · target port",
|
||||
"description": "",
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,210 @@
|
||||
arcadia 6;
|
||||
project communication_native "Rescue communication engineering" id "c6060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
oa_entity cm_10 "Rescue team" id "c6060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_actor cm_11 "Control centre" id "c6060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_12 "Report rescue status" id "c6060906-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_13 "Assess rescue status" id "c6060906-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system cm_30 "Rescue radio" id "c6060906-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_actor cm_31 "Control radio" id "c6060906-0000-4000-8000-00000000001f" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port cm_32 "Existing team socket" id "c6060906-0000-4000-8000-000000000020" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_30;
|
||||
}
|
||||
|
||||
sa_port cm_33 "Existing control socket" id "c6060906-0000-4000-8000-000000000021" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_31;
|
||||
}
|
||||
|
||||
allocation cm_20 "Team performs reporting" id "c6060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
source @cm_10;
|
||||
target @cm_12;
|
||||
}
|
||||
|
||||
allocation cm_21 "Control performs assessment" id "c6060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
source @cm_11;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
interaction cm_22 "Rescue status" id "c6060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
items [];
|
||||
source @cm_12;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
diagram cm_diagram_1000 "Draw operational communication" id "c6060906-0000-4000-8000-0000000003e8" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1000 id "c6060906-0000-4000-8000-0000000003f2" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1001 id "c6060906-0000-4000-8000-0000000003f3" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_11;
|
||||
position {
|
||||
x 550.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1002 id "c6060906-0000-4000-8000-0000000003f4" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_12;
|
||||
position {
|
||||
x 80.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1003 id "c6060906-0000-4000-8000-0000000003f5" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_13;
|
||||
position {
|
||||
x 550.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram cm_diagram_1100 "Explicit system endpoints" id "c6060906-0000-4000-8000-00000000044c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1100 id "c6060906-0000-4000-8000-000000000456" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_30;
|
||||
position {
|
||||
x 80.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1101 id "c6060906-0000-4000-8000-000000000457" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_31;
|
||||
position {
|
||||
x 550.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
trace cm_40 "Team radio correspondence" id "c6060906-0000-4000-8000-000000000028" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_10;
|
||||
sa @cm_30;
|
||||
}
|
||||
|
||||
trace cm_41 "Control radio correspondence" id "c6060906-0000-4000-8000-000000000029" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_11;
|
||||
sa @cm_31;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,301 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c6060906-0000-4000-8000-000000000001",
|
||||
"alias": "communication_native",
|
||||
"name": "Rescue communication engineering",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"c6060906-0000-4000-8000-00000000000a": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000a",
|
||||
"alias": "cm_10",
|
||||
"name": "Rescue team",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Entity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000b": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000b",
|
||||
"alias": "cm_11",
|
||||
"name": "Control centre",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000c",
|
||||
"alias": "cm_12",
|
||||
"name": "Report rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000d": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000d",
|
||||
"alias": "cm_13",
|
||||
"name": "Assess rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001e": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001e",
|
||||
"alias": "cm_30",
|
||||
"name": "Rescue radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001f": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001f",
|
||||
"alias": "cm_31",
|
||||
"name": "Control radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000020": {
|
||||
"id": "c6060906-0000-4000-8000-000000000020",
|
||||
"alias": "cm_32",
|
||||
"name": "Existing team socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001e",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000021": {
|
||||
"id": "c6060906-0000-4000-8000-000000000021",
|
||||
"alias": "cm_33",
|
||||
"name": "Existing control socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"c6060906-0000-4000-8000-000000000014": {
|
||||
"id": "c6060906-0000-4000-8000-000000000014",
|
||||
"alias": "cm_20",
|
||||
"name": "Team performs reporting",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000015": {
|
||||
"id": "c6060906-0000-4000-8000-000000000015",
|
||||
"alias": "cm_21",
|
||||
"name": "Control performs assessment",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000016": {
|
||||
"id": "c6060906-0000-4000-8000-000000000016",
|
||||
"alias": "cm_22",
|
||||
"name": "Rescue status",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Interaction": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000c",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d",
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {
|
||||
"c6060906-0000-4000-8000-0000000003e8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"alias": "cm_diagram_1000",
|
||||
"name": "Draw operational communication",
|
||||
"description": "",
|
||||
"layer": "Oa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-0000000003f2": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f2",
|
||||
"alias": "cm_view_1000",
|
||||
"element": "c6060906-0000-4000-8000-00000000000a",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f3": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f3",
|
||||
"alias": "cm_view_1001",
|
||||
"element": "c6060906-0000-4000-8000-00000000000b",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f4": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f4",
|
||||
"alias": "cm_view_1002",
|
||||
"element": "c6060906-0000-4000-8000-00000000000c",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f5": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f5",
|
||||
"alias": "cm_view_1003",
|
||||
"element": "c6060906-0000-4000-8000-00000000000d",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000044c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000044c",
|
||||
"alias": "cm_diagram_1100",
|
||||
"name": "Explicit system endpoints",
|
||||
"description": "",
|
||||
"layer": "Sa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-000000000456": {
|
||||
"id": "c6060906-0000-4000-8000-000000000456",
|
||||
"alias": "cm_view_1100",
|
||||
"element": "c6060906-0000-4000-8000-00000000001e",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000457": {
|
||||
"id": "c6060906-0000-4000-8000-000000000457",
|
||||
"alias": "cm_view_1101",
|
||||
"element": "c6060906-0000-4000-8000-00000000001f",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
}
|
||||
},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"c6060906-0000-4000-8000-000000000028": {
|
||||
"id": "c6060906-0000-4000-8000-000000000028",
|
||||
"alias": "cm_40",
|
||||
"name": "Team radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000a",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001e",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000029": {
|
||||
"id": "c6060906-0000-4000-8000-000000000029",
|
||||
"alias": "cm_41",
|
||||
"name": "Control radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000b",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001f",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
+230
@@ -0,0 +1,230 @@
|
||||
arcadia 6;
|
||||
project communication_native "Rescue communication engineering" id "c6060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
oa_entity cm_10 "Rescue team" id "c6060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_actor cm_11 "Control centre" id "c6060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_12 "Report rescue status" id "c6060906-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_13 "Assess rescue status" id "c6060906-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system cm_30 "Rescue radio" id "c6060906-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_actor cm_31 "Control radio" id "c6060906-0000-4000-8000-00000000001f" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port cm_32 "Existing team socket" id "c6060906-0000-4000-8000-000000000020" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_30;
|
||||
}
|
||||
|
||||
sa_port cm_33 "Existing control socket" id "c6060906-0000-4000-8000-000000000021" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_31;
|
||||
}
|
||||
|
||||
allocation cm_20 "Team performs reporting" id "c6060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
source @cm_10;
|
||||
target @cm_12;
|
||||
}
|
||||
|
||||
allocation cm_21 "Control performs assessment" id "c6060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
source @cm_11;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
interaction cm_22 "Rescue status" id "c6060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
items [];
|
||||
source @cm_12;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
communication_mean cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_10;
|
||||
target @cm_11;
|
||||
}
|
||||
|
||||
diagram cm_diagram_1000 "Draw operational communication" id "c6060906-0000-4000-8000-0000000003e8" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1000 id "c6060906-0000-4000-8000-0000000003f2" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1001 id "c6060906-0000-4000-8000-0000000003f3" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_11;
|
||||
position {
|
||||
x 550.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1002 id "c6060906-0000-4000-8000-0000000003f4" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_12;
|
||||
position {
|
||||
x 80.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1003 id "c6060906-0000-4000-8000-0000000003f5" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_13;
|
||||
position {
|
||||
x 550.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram cm_diagram_1100 "Explicit system endpoints" id "c6060906-0000-4000-8000-00000000044c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1100 id "c6060906-0000-4000-8000-000000000456" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_30;
|
||||
position {
|
||||
x 80.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1101 id "c6060906-0000-4000-8000-000000000457" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_31;
|
||||
position {
|
||||
x 550.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
trace cm_40 "Team radio correspondence" id "c6060906-0000-4000-8000-000000000028" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_10;
|
||||
sa @cm_30;
|
||||
}
|
||||
|
||||
trace cm_41 "Control radio correspondence" id "c6060906-0000-4000-8000-000000000029" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_11;
|
||||
sa @cm_31;
|
||||
}
|
||||
|
||||
|
||||
boundary_exchange sa_cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000001f40" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_32;
|
||||
target @cm_33;
|
||||
}
|
||||
|
||||
|
||||
|
||||
include "traceability.arcadia";
|
||||
}
|
||||
+348
@@ -0,0 +1,348 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c6060906-0000-4000-8000-000000000001",
|
||||
"alias": "communication_native",
|
||||
"name": "Rescue communication engineering",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"c6060906-0000-4000-8000-00000000000a": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000a",
|
||||
"alias": "cm_10",
|
||||
"name": "Rescue team",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Entity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000b": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000b",
|
||||
"alias": "cm_11",
|
||||
"name": "Control centre",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000c",
|
||||
"alias": "cm_12",
|
||||
"name": "Report rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000d": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000d",
|
||||
"alias": "cm_13",
|
||||
"name": "Assess rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001e": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001e",
|
||||
"alias": "cm_30",
|
||||
"name": "Rescue radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001f": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001f",
|
||||
"alias": "cm_31",
|
||||
"name": "Control radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000020": {
|
||||
"id": "c6060906-0000-4000-8000-000000000020",
|
||||
"alias": "cm_32",
|
||||
"name": "Existing team socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001e",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000021": {
|
||||
"id": "c6060906-0000-4000-8000-000000000021",
|
||||
"alias": "cm_33",
|
||||
"name": "Existing control socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"c6060906-0000-4000-8000-000000000014": {
|
||||
"id": "c6060906-0000-4000-8000-000000000014",
|
||||
"alias": "cm_20",
|
||||
"name": "Team performs reporting",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000015": {
|
||||
"id": "c6060906-0000-4000-8000-000000000015",
|
||||
"alias": "cm_21",
|
||||
"name": "Control performs assessment",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000016": {
|
||||
"id": "c6060906-0000-4000-8000-000000000016",
|
||||
"alias": "cm_22",
|
||||
"name": "Rescue status",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Interaction": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000c",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d",
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000032": {
|
||||
"id": "c6060906-0000-4000-8000-000000000032",
|
||||
"alias": "cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"CommunicationMean": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f40": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f40",
|
||||
"alias": "sa_cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "c6060906-0000-4000-8000-000000000020",
|
||||
"target": "c6060906-0000-4000-8000-000000000021",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {
|
||||
"c6060906-0000-4000-8000-0000000003e8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"alias": "cm_diagram_1000",
|
||||
"name": "Draw operational communication",
|
||||
"description": "",
|
||||
"layer": "Oa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-0000000003f2": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f2",
|
||||
"alias": "cm_view_1000",
|
||||
"element": "c6060906-0000-4000-8000-00000000000a",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f3": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f3",
|
||||
"alias": "cm_view_1001",
|
||||
"element": "c6060906-0000-4000-8000-00000000000b",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f4": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f4",
|
||||
"alias": "cm_view_1002",
|
||||
"element": "c6060906-0000-4000-8000-00000000000c",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f5": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f5",
|
||||
"alias": "cm_view_1003",
|
||||
"element": "c6060906-0000-4000-8000-00000000000d",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000044c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000044c",
|
||||
"alias": "cm_diagram_1100",
|
||||
"name": "Explicit system endpoints",
|
||||
"description": "",
|
||||
"layer": "Sa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-000000000456": {
|
||||
"id": "c6060906-0000-4000-8000-000000000456",
|
||||
"alias": "cm_view_1100",
|
||||
"element": "c6060906-0000-4000-8000-00000000001e",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000457": {
|
||||
"id": "c6060906-0000-4000-8000-000000000457",
|
||||
"alias": "cm_view_1101",
|
||||
"element": "c6060906-0000-4000-8000-00000000001f",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
}
|
||||
},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"c6060906-0000-4000-8000-000000000028": {
|
||||
"id": "c6060906-0000-4000-8000-000000000028",
|
||||
"alias": "cm_40",
|
||||
"name": "Team radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000a",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001e",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000029": {
|
||||
"id": "c6060906-0000-4000-8000-000000000029",
|
||||
"alias": "cm_41",
|
||||
"name": "Control radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000b",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001f",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f41": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f41",
|
||||
"alias": "trace_exchange_exchange",
|
||||
"name": "Rescue radio channel ↔ Rescue radio channel",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000000032",
|
||||
"sa": "c6060906-0000-4000-8000-000000001f40",
|
||||
"kind": "Exchange",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
|
||||
trace trace_exchange_exchange "Rescue radio channel ↔ Rescue radio channel" id "c6060906-0000-4000-8000-000000001f41" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Exchange;
|
||||
oa @cm_50;
|
||||
sa @sa_cm_50;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"direction": "OaToSa",
|
||||
"sources": [
|
||||
"c6060906-0000-4000-8000-000000000032"
|
||||
],
|
||||
"scope": "SelectedOnly",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000001e",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000001f",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
"Name",
|
||||
"Description"
|
||||
],
|
||||
"resolutions": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
}
|
||||
],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-000000000032",
|
||||
"source_port": {
|
||||
"Reuse": {
|
||||
"port": "c6060906-0000-4000-8000-000000000020"
|
||||
}
|
||||
},
|
||||
"target_port": {
|
||||
"Reuse": {
|
||||
"port": "c6060906-0000-4000-8000-000000000021"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+320
@@ -0,0 +1,320 @@
|
||||
arcadia 6;
|
||||
project communication_native "Rescue communication engineering" id "c6060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
oa_entity cm_10 "Rescue team" id "c6060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_actor cm_11 "Control centre" id "c6060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_12 "Report rescue status" id "c6060906-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_13 "Assess rescue status" id "c6060906-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system cm_30 "Rescue radio" id "c6060906-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_actor cm_31 "Control radio" id "c6060906-0000-4000-8000-00000000001f" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port cm_32 "Existing team socket" id "c6060906-0000-4000-8000-000000000020" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_30;
|
||||
}
|
||||
|
||||
sa_port cm_33 "Existing control socket" id "c6060906-0000-4000-8000-000000000021" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_31;
|
||||
}
|
||||
|
||||
sa_scenario cm_200 "Reverse rescue request" id "c6060906-0000-4000-8000-0000000000c8" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@cm_203, @cm_204];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline cm_201 "Team radio lifeline" id "c6060906-0000-4000-8000-0000000000c9" {
|
||||
description "";
|
||||
parent @cm_200;
|
||||
represented @cm_30;
|
||||
}
|
||||
|
||||
sa_lifeline cm_202 "Control radio lifeline" id "c6060906-0000-4000-8000-0000000000ca" {
|
||||
description "";
|
||||
parent @cm_200;
|
||||
represented @cm_31;
|
||||
}
|
||||
|
||||
sa_occurrence cm_203 "Request rescue report" id "c6060906-0000-4000-8000-0000000000cb" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @sa_cm_50;
|
||||
message_kind Call;
|
||||
receiver @cm_201;
|
||||
reply_to none;
|
||||
sender @cm_202;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @cm_200;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence cm_204 "Reply with rescue report" id "c6060906-0000-4000-8000-0000000000cc" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @sa_cm_50;
|
||||
message_kind Reply;
|
||||
receiver @cm_202;
|
||||
reply_to @cm_203;
|
||||
sender @cm_201;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @cm_200;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
allocation cm_20 "Team performs reporting" id "c6060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
source @cm_10;
|
||||
target @cm_12;
|
||||
}
|
||||
|
||||
allocation cm_21 "Control performs assessment" id "c6060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
source @cm_11;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
interaction cm_22 "Rescue status" id "c6060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
items [];
|
||||
source @cm_12;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
communication_mean cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_10;
|
||||
target @cm_11;
|
||||
}
|
||||
|
||||
boundary_exchange sa_cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000001f40" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_32;
|
||||
target @cm_33;
|
||||
}
|
||||
|
||||
diagram cm_diagram_1000 "Draw operational communication" id "c6060906-0000-4000-8000-0000000003e8" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1000 id "c6060906-0000-4000-8000-0000000003f2" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1001 id "c6060906-0000-4000-8000-0000000003f3" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_11;
|
||||
position {
|
||||
x 550.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1002 id "c6060906-0000-4000-8000-0000000003f4" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_12;
|
||||
position {
|
||||
x 80.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1003 id "c6060906-0000-4000-8000-0000000003f5" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_13;
|
||||
position {
|
||||
x 550.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram cm_diagram_1100 "Explicit system endpoints" id "c6060906-0000-4000-8000-00000000044c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1100 id "c6060906-0000-4000-8000-000000000456" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_30;
|
||||
position {
|
||||
x 80.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1101 id "c6060906-0000-4000-8000-000000000457" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_31;
|
||||
position {
|
||||
x 550.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
trace cm_40 "Team radio correspondence" id "c6060906-0000-4000-8000-000000000028" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Rescue team";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Rescue radio";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_10;
|
||||
sa @cm_30;
|
||||
}
|
||||
|
||||
trace cm_41 "Control radio correspondence" id "c6060906-0000-4000-8000-000000000029" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Control centre";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Control radio";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_11;
|
||||
sa @cm_31;
|
||||
}
|
||||
|
||||
trace trace_exchange_exchange "Rescue radio channel ↔ Rescue radio channel" id "c6060906-0000-4000-8000-000000001f41" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Exchange;
|
||||
oa @cm_50;
|
||||
sa @sa_cm_50;
|
||||
}
|
||||
|
||||
|
||||
include "oa/behavior/scenario_oa_cm_200.arcadia";
|
||||
include "traceability.arcadia";
|
||||
}
|
||||
+679
@@ -0,0 +1,679 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c6060906-0000-4000-8000-000000000001",
|
||||
"alias": "communication_native",
|
||||
"name": "Rescue communication engineering",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"c6060906-0000-4000-8000-00000000000a": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000a",
|
||||
"alias": "cm_10",
|
||||
"name": "Rescue team",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Entity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000b": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000b",
|
||||
"alias": "cm_11",
|
||||
"name": "Control centre",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000c",
|
||||
"alias": "cm_12",
|
||||
"name": "Report rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000d": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000d",
|
||||
"alias": "cm_13",
|
||||
"name": "Assess rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001e": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001e",
|
||||
"alias": "cm_30",
|
||||
"name": "Rescue radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001f": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001f",
|
||||
"alias": "cm_31",
|
||||
"name": "Control radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000020": {
|
||||
"id": "c6060906-0000-4000-8000-000000000020",
|
||||
"alias": "cm_32",
|
||||
"name": "Existing team socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001e",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000021": {
|
||||
"id": "c6060906-0000-4000-8000-000000000021",
|
||||
"alias": "cm_33",
|
||||
"name": "Existing control socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000c8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"alias": "cm_200",
|
||||
"name": "Reverse rescue request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "BoundaryInterface",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"c6060906-0000-4000-8000-0000000000cb",
|
||||
"c6060906-0000-4000-8000-0000000000cc"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000c9": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"alias": "cm_201",
|
||||
"name": "Team radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000001e"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000ca": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"alias": "cm_202",
|
||||
"name": "Control radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000001f"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000cb": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"alias": "cm_203",
|
||||
"name": "Request rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000001f40",
|
||||
"sender": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"receiver": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000cc": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000cc",
|
||||
"alias": "cm_204",
|
||||
"name": "Reply with rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000001f40",
|
||||
"sender": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"receiver": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"message_kind": "Reply",
|
||||
"reply_to": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f42": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f42",
|
||||
"alias": "oa_cm_200",
|
||||
"name": "Reverse rescue request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "ParticipantInteraction",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"c6060906-0000-4000-8000-000000001f45",
|
||||
"c6060906-0000-4000-8000-000000001f46"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f43": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f43",
|
||||
"alias": "oa_cm_201",
|
||||
"name": "Team radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000000a"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f44": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f44",
|
||||
"alias": "oa_cm_202",
|
||||
"name": "Control radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000000b"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f45": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f45",
|
||||
"alias": "oa_cm_203",
|
||||
"name": "Request rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000000032",
|
||||
"sender": "c6060906-0000-4000-8000-000000001f44",
|
||||
"receiver": "c6060906-0000-4000-8000-000000001f43",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f46": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f46",
|
||||
"alias": "oa_cm_204",
|
||||
"name": "Reply with rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000000032",
|
||||
"sender": "c6060906-0000-4000-8000-000000001f43",
|
||||
"receiver": "c6060906-0000-4000-8000-000000001f44",
|
||||
"message_kind": "Reply",
|
||||
"reply_to": "c6060906-0000-4000-8000-000000001f45",
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"c6060906-0000-4000-8000-000000000014": {
|
||||
"id": "c6060906-0000-4000-8000-000000000014",
|
||||
"alias": "cm_20",
|
||||
"name": "Team performs reporting",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000015": {
|
||||
"id": "c6060906-0000-4000-8000-000000000015",
|
||||
"alias": "cm_21",
|
||||
"name": "Control performs assessment",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000016": {
|
||||
"id": "c6060906-0000-4000-8000-000000000016",
|
||||
"alias": "cm_22",
|
||||
"name": "Rescue status",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Interaction": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000c",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d",
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000032": {
|
||||
"id": "c6060906-0000-4000-8000-000000000032",
|
||||
"alias": "cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"CommunicationMean": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f40": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f40",
|
||||
"alias": "sa_cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "c6060906-0000-4000-8000-000000000020",
|
||||
"target": "c6060906-0000-4000-8000-000000000021",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {
|
||||
"c6060906-0000-4000-8000-0000000003e8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"alias": "cm_diagram_1000",
|
||||
"name": "Draw operational communication",
|
||||
"description": "",
|
||||
"layer": "Oa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-0000000003f2": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f2",
|
||||
"alias": "cm_view_1000",
|
||||
"element": "c6060906-0000-4000-8000-00000000000a",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f3": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f3",
|
||||
"alias": "cm_view_1001",
|
||||
"element": "c6060906-0000-4000-8000-00000000000b",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f4": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f4",
|
||||
"alias": "cm_view_1002",
|
||||
"element": "c6060906-0000-4000-8000-00000000000c",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f5": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f5",
|
||||
"alias": "cm_view_1003",
|
||||
"element": "c6060906-0000-4000-8000-00000000000d",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000044c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000044c",
|
||||
"alias": "cm_diagram_1100",
|
||||
"name": "Explicit system endpoints",
|
||||
"description": "",
|
||||
"layer": "Sa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-000000000456": {
|
||||
"id": "c6060906-0000-4000-8000-000000000456",
|
||||
"alias": "cm_view_1100",
|
||||
"element": "c6060906-0000-4000-8000-00000000001e",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000457": {
|
||||
"id": "c6060906-0000-4000-8000-000000000457",
|
||||
"alias": "cm_view_1101",
|
||||
"element": "c6060906-0000-4000-8000-00000000001f",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
}
|
||||
},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"c6060906-0000-4000-8000-000000000028": {
|
||||
"id": "c6060906-0000-4000-8000-000000000028",
|
||||
"alias": "cm_40",
|
||||
"name": "Team radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000a",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001e",
|
||||
"kind": "Participant",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Rescue team",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Rescue radio",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000029": {
|
||||
"id": "c6060906-0000-4000-8000-000000000029",
|
||||
"alias": "cm_41",
|
||||
"name": "Control radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000b",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001f",
|
||||
"kind": "Participant",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Control centre",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Control radio",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f41": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f41",
|
||||
"alias": "trace_exchange_exchange",
|
||||
"name": "Rescue radio channel ↔ Rescue radio channel",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000000032",
|
||||
"sa": "c6060906-0000-4000-8000-000000001f40",
|
||||
"kind": "Exchange",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f47": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f47",
|
||||
"alias": "trace_oa_cm_200_cm_200",
|
||||
"name": "Reverse rescue request ↔ Reverse rescue request",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f42",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Reverse rescue request",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Reverse rescue request",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f48": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f48",
|
||||
"alias": "trace_oa_cm_201_cm_201",
|
||||
"name": "Team radio lifeline ↔ Team radio lifeline",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f43",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Team radio lifeline",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Team radio lifeline",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f49": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f49",
|
||||
"alias": "trace_oa_cm_202_cm_202",
|
||||
"name": "Control radio lifeline ↔ Control radio lifeline",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f44",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Control radio lifeline",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Control radio lifeline",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4a": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4a",
|
||||
"alias": "trace_oa_cm_203_cm_203",
|
||||
"name": "Request rescue report ↔ Request rescue report",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f45",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Request rescue report",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Request rescue report",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4b": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4b",
|
||||
"alias": "trace_oa_cm_204_cm_204",
|
||||
"name": "Reply with rescue report ↔ Reply with rescue report",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f46",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000cc",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Reply with rescue report",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Reply with rescue report",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
|
||||
oa_scenario oa_cm_200 "Reverse rescue request" id "c6060906-0000-4000-8000-000000001f42" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@oa_cm_203, @oa_cm_204];
|
||||
viewpoint ParticipantInteraction;
|
||||
|
||||
oa_lifeline oa_cm_201 "Team radio lifeline" id "c6060906-0000-4000-8000-000000001f43" {
|
||||
description "";
|
||||
|
||||
represented @cm_10;
|
||||
}
|
||||
|
||||
|
||||
oa_lifeline oa_cm_202 "Control radio lifeline" id "c6060906-0000-4000-8000-000000001f44" {
|
||||
description "";
|
||||
|
||||
represented @cm_11;
|
||||
}
|
||||
|
||||
|
||||
oa_occurrence oa_cm_203 "Request rescue report" id "c6060906-0000-4000-8000-000000001f45" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @cm_50;
|
||||
message_kind Call;
|
||||
receiver @oa_cm_201;
|
||||
reply_to none;
|
||||
sender @oa_cm_202;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
|
||||
oa_occurrence oa_cm_204 "Reply with rescue report" id "c6060906-0000-4000-8000-000000001f46" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @cm_50;
|
||||
message_kind Reply;
|
||||
receiver @oa_cm_202;
|
||||
reply_to @oa_cm_203;
|
||||
sender @oa_cm_201;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"direction": "SaToOa",
|
||||
"sources": [
|
||||
"c6060906-0000-4000-8000-0000000000c8"
|
||||
],
|
||||
"scope": "Subtree",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-000000001f40",
|
||||
"target": "c6060906-0000-4000-8000-000000000032",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001e",
|
||||
"target": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001f",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
"Name",
|
||||
"Description"
|
||||
],
|
||||
"resolutions": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-000000001f40",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001e",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001f",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
}
|
||||
],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": []
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
|
||||
trace trace_oa_cm_200_cm_200 "Reverse rescue request ↔ Reverse rescue request" id "c6060906-0000-4000-8000-000000001f47" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Reverse rescue request";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Reverse rescue request";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_200;
|
||||
sa @cm_200;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_201_cm_201 "Team radio lifeline ↔ Team radio lifeline" id "c6060906-0000-4000-8000-000000001f48" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Team radio lifeline";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Team radio lifeline";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_201;
|
||||
sa @cm_201;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_202_cm_202 "Control radio lifeline ↔ Control radio lifeline" id "c6060906-0000-4000-8000-000000001f49" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Control radio lifeline";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Control radio lifeline";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_202;
|
||||
sa @cm_202;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_203_cm_203 "Request rescue report ↔ Request rescue report" id "c6060906-0000-4000-8000-000000001f4a" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Request rescue report";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Request rescue report";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_203;
|
||||
sa @cm_203;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_204_cm_204 "Reply with rescue report ↔ Reply with rescue report" id "c6060906-0000-4000-8000-000000001f4b" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Reply with rescue report";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Reply with rescue report";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_204;
|
||||
sa @cm_204;
|
||||
}
|
||||
|
||||
|
||||
+396
@@ -0,0 +1,396 @@
|
||||
arcadia 6;
|
||||
project communication_native "Rescue communication engineering" id "c6060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
oa_entity cm_10 "Rescue team" id "c6060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_actor cm_11 "Control centre" id "c6060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_12 "Report rescue status" id "c6060906-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_13 "Assess rescue status" id "c6060906-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system cm_30 "Rescue radio" id "c6060906-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_actor cm_31 "Control radio" id "c6060906-0000-4000-8000-00000000001f" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port cm_32 "Existing team socket" id "c6060906-0000-4000-8000-000000000020" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_30;
|
||||
}
|
||||
|
||||
sa_port cm_33 "Existing control socket" id "c6060906-0000-4000-8000-000000000021" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_31;
|
||||
}
|
||||
|
||||
sa_scenario cm_200 "Reverse rescue request" id "c6060906-0000-4000-8000-0000000000c8" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@cm_203, @cm_204];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline cm_201 "Team radio lifeline" id "c6060906-0000-4000-8000-0000000000c9" {
|
||||
description "";
|
||||
parent @cm_200;
|
||||
represented @cm_30;
|
||||
}
|
||||
|
||||
sa_lifeline cm_202 "Control radio lifeline" id "c6060906-0000-4000-8000-0000000000ca" {
|
||||
description "";
|
||||
parent @cm_200;
|
||||
represented @cm_31;
|
||||
}
|
||||
|
||||
sa_occurrence cm_203 "Request rescue report" id "c6060906-0000-4000-8000-0000000000cb" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @sa_cm_50;
|
||||
message_kind Call;
|
||||
receiver @cm_201;
|
||||
reply_to none;
|
||||
sender @cm_202;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @cm_200;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence cm_204 "Reply with rescue report" id "c6060906-0000-4000-8000-0000000000cc" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @sa_cm_50;
|
||||
message_kind Reply;
|
||||
receiver @cm_202;
|
||||
reply_to @cm_203;
|
||||
sender @cm_201;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @cm_200;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
allocation cm_20 "Team performs reporting" id "c6060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
source @cm_10;
|
||||
target @cm_12;
|
||||
}
|
||||
|
||||
allocation cm_21 "Control performs assessment" id "c6060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
source @cm_11;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
interaction cm_22 "Rescue status" id "c6060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
items [];
|
||||
source @cm_12;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
communication_mean cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_10;
|
||||
target @cm_11;
|
||||
}
|
||||
|
||||
boundary_exchange sa_cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000001f40" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_32;
|
||||
target @cm_33;
|
||||
}
|
||||
|
||||
diagram cm_diagram_1000 "Draw operational communication" id "c6060906-0000-4000-8000-0000000003e8" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1000 id "c6060906-0000-4000-8000-0000000003f2" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1001 id "c6060906-0000-4000-8000-0000000003f3" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_11;
|
||||
position {
|
||||
x 550.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1002 id "c6060906-0000-4000-8000-0000000003f4" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_12;
|
||||
position {
|
||||
x 80.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1003 id "c6060906-0000-4000-8000-0000000003f5" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_13;
|
||||
position {
|
||||
x 550.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram cm_diagram_1100 "Explicit system endpoints" id "c6060906-0000-4000-8000-00000000044c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1100 id "c6060906-0000-4000-8000-000000000456" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_30;
|
||||
position {
|
||||
x 80.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1101 id "c6060906-0000-4000-8000-000000000457" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_31;
|
||||
position {
|
||||
x 550.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
trace cm_40 "Team radio correspondence" id "c6060906-0000-4000-8000-000000000028" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Rescue team";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Rescue radio";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_10;
|
||||
sa @cm_30;
|
||||
}
|
||||
|
||||
trace cm_41 "Control radio correspondence" id "c6060906-0000-4000-8000-000000000029" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Control centre";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Control radio";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_11;
|
||||
sa @cm_31;
|
||||
}
|
||||
|
||||
trace trace_exchange_exchange "Rescue radio channel ↔ Rescue radio channel" id "c6060906-0000-4000-8000-000000001f41" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Exchange;
|
||||
oa @cm_50;
|
||||
sa @sa_cm_50;
|
||||
}
|
||||
|
||||
|
||||
node view_control_radio_lifeline id "c6060906-0000-4000-8000-000000001f4c" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @oa_cm_202;
|
||||
position {
|
||||
x 60.0;
|
||||
y 360.0;
|
||||
};
|
||||
size {
|
||||
height 94.0;
|
||||
width 224.0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
node view_reply_with_rescue_report id "c6060906-0000-4000-8000-000000001f4d" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @oa_cm_204;
|
||||
position {
|
||||
x 620.0;
|
||||
y 360.0;
|
||||
};
|
||||
size {
|
||||
height 94.0;
|
||||
width 224.0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
node view_request_rescue_report id "c6060906-0000-4000-8000-000000001f4e" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @oa_cm_203;
|
||||
position {
|
||||
x 340.0;
|
||||
y 360.0;
|
||||
};
|
||||
size {
|
||||
height 94.0;
|
||||
width 224.0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
node view_reverse_rescue_request id "c6060906-0000-4000-8000-000000001f4f" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @oa_cm_200;
|
||||
position {
|
||||
x 340.0;
|
||||
y 210.0;
|
||||
};
|
||||
size {
|
||||
height 94.0;
|
||||
width 224.0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
node view_team_radio_lifeline id "c6060906-0000-4000-8000-000000001f50" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @oa_cm_201;
|
||||
position {
|
||||
x 620.0;
|
||||
y 210.0;
|
||||
};
|
||||
size {
|
||||
height 94.0;
|
||||
width 224.0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
include "oa/behavior/scenario_oa_cm_200.arcadia";
|
||||
include "traceability.arcadia";
|
||||
}
|
||||
+749
@@ -0,0 +1,749 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c6060906-0000-4000-8000-000000000001",
|
||||
"alias": "communication_native",
|
||||
"name": "Rescue communication engineering",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"c6060906-0000-4000-8000-00000000000a": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000a",
|
||||
"alias": "cm_10",
|
||||
"name": "Rescue team",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Entity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000b": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000b",
|
||||
"alias": "cm_11",
|
||||
"name": "Control centre",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000c",
|
||||
"alias": "cm_12",
|
||||
"name": "Report rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000d": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000d",
|
||||
"alias": "cm_13",
|
||||
"name": "Assess rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001e": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001e",
|
||||
"alias": "cm_30",
|
||||
"name": "Rescue radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001f": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001f",
|
||||
"alias": "cm_31",
|
||||
"name": "Control radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000020": {
|
||||
"id": "c6060906-0000-4000-8000-000000000020",
|
||||
"alias": "cm_32",
|
||||
"name": "Existing team socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001e",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000021": {
|
||||
"id": "c6060906-0000-4000-8000-000000000021",
|
||||
"alias": "cm_33",
|
||||
"name": "Existing control socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000c8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"alias": "cm_200",
|
||||
"name": "Reverse rescue request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "BoundaryInterface",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"c6060906-0000-4000-8000-0000000000cb",
|
||||
"c6060906-0000-4000-8000-0000000000cc"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000c9": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"alias": "cm_201",
|
||||
"name": "Team radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000001e"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000ca": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"alias": "cm_202",
|
||||
"name": "Control radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000001f"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000cb": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"alias": "cm_203",
|
||||
"name": "Request rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000001f40",
|
||||
"sender": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"receiver": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000cc": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000cc",
|
||||
"alias": "cm_204",
|
||||
"name": "Reply with rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000001f40",
|
||||
"sender": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"receiver": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"message_kind": "Reply",
|
||||
"reply_to": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f42": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f42",
|
||||
"alias": "oa_cm_200",
|
||||
"name": "Reverse rescue request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "ParticipantInteraction",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"c6060906-0000-4000-8000-000000001f45",
|
||||
"c6060906-0000-4000-8000-000000001f46"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f43": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f43",
|
||||
"alias": "oa_cm_201",
|
||||
"name": "Team radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000000a"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f44": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f44",
|
||||
"alias": "oa_cm_202",
|
||||
"name": "Control radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000000b"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f45": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f45",
|
||||
"alias": "oa_cm_203",
|
||||
"name": "Request rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000000032",
|
||||
"sender": "c6060906-0000-4000-8000-000000001f44",
|
||||
"receiver": "c6060906-0000-4000-8000-000000001f43",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f46": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f46",
|
||||
"alias": "oa_cm_204",
|
||||
"name": "Reply with rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-000000001f42",
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000000032",
|
||||
"sender": "c6060906-0000-4000-8000-000000001f43",
|
||||
"receiver": "c6060906-0000-4000-8000-000000001f44",
|
||||
"message_kind": "Reply",
|
||||
"reply_to": "c6060906-0000-4000-8000-000000001f45",
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"c6060906-0000-4000-8000-000000000014": {
|
||||
"id": "c6060906-0000-4000-8000-000000000014",
|
||||
"alias": "cm_20",
|
||||
"name": "Team performs reporting",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000015": {
|
||||
"id": "c6060906-0000-4000-8000-000000000015",
|
||||
"alias": "cm_21",
|
||||
"name": "Control performs assessment",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000016": {
|
||||
"id": "c6060906-0000-4000-8000-000000000016",
|
||||
"alias": "cm_22",
|
||||
"name": "Rescue status",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Interaction": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000c",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d",
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000032": {
|
||||
"id": "c6060906-0000-4000-8000-000000000032",
|
||||
"alias": "cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"CommunicationMean": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f40": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f40",
|
||||
"alias": "sa_cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "c6060906-0000-4000-8000-000000000020",
|
||||
"target": "c6060906-0000-4000-8000-000000000021",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {
|
||||
"c6060906-0000-4000-8000-0000000003e8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"alias": "cm_diagram_1000",
|
||||
"name": "Draw operational communication",
|
||||
"description": "",
|
||||
"layer": "Oa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-0000000003f2": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f2",
|
||||
"alias": "cm_view_1000",
|
||||
"element": "c6060906-0000-4000-8000-00000000000a",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f3": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f3",
|
||||
"alias": "cm_view_1001",
|
||||
"element": "c6060906-0000-4000-8000-00000000000b",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f4": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f4",
|
||||
"alias": "cm_view_1002",
|
||||
"element": "c6060906-0000-4000-8000-00000000000c",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f5": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f5",
|
||||
"alias": "cm_view_1003",
|
||||
"element": "c6060906-0000-4000-8000-00000000000d",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4c": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4c",
|
||||
"alias": "view_control_radio_lifeline",
|
||||
"element": "c6060906-0000-4000-8000-000000001f44",
|
||||
"position": {
|
||||
"x": 60.0,
|
||||
"y": 360.0
|
||||
},
|
||||
"size": {
|
||||
"width": 224.0,
|
||||
"height": 94.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4d": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4d",
|
||||
"alias": "view_reply_with_rescue_report",
|
||||
"element": "c6060906-0000-4000-8000-000000001f46",
|
||||
"position": {
|
||||
"x": 620.0,
|
||||
"y": 360.0
|
||||
},
|
||||
"size": {
|
||||
"width": 224.0,
|
||||
"height": 94.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4e": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4e",
|
||||
"alias": "view_request_rescue_report",
|
||||
"element": "c6060906-0000-4000-8000-000000001f45",
|
||||
"position": {
|
||||
"x": 340.0,
|
||||
"y": 360.0
|
||||
},
|
||||
"size": {
|
||||
"width": 224.0,
|
||||
"height": 94.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4f": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4f",
|
||||
"alias": "view_reverse_rescue_request",
|
||||
"element": "c6060906-0000-4000-8000-000000001f42",
|
||||
"position": {
|
||||
"x": 340.0,
|
||||
"y": 210.0
|
||||
},
|
||||
"size": {
|
||||
"width": 224.0,
|
||||
"height": 94.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f50": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f50",
|
||||
"alias": "view_team_radio_lifeline",
|
||||
"element": "c6060906-0000-4000-8000-000000001f43",
|
||||
"position": {
|
||||
"x": 620.0,
|
||||
"y": 210.0
|
||||
},
|
||||
"size": {
|
||||
"width": 224.0,
|
||||
"height": 94.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000044c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000044c",
|
||||
"alias": "cm_diagram_1100",
|
||||
"name": "Explicit system endpoints",
|
||||
"description": "",
|
||||
"layer": "Sa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-000000000456": {
|
||||
"id": "c6060906-0000-4000-8000-000000000456",
|
||||
"alias": "cm_view_1100",
|
||||
"element": "c6060906-0000-4000-8000-00000000001e",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000457": {
|
||||
"id": "c6060906-0000-4000-8000-000000000457",
|
||||
"alias": "cm_view_1101",
|
||||
"element": "c6060906-0000-4000-8000-00000000001f",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
}
|
||||
},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"c6060906-0000-4000-8000-000000000028": {
|
||||
"id": "c6060906-0000-4000-8000-000000000028",
|
||||
"alias": "cm_40",
|
||||
"name": "Team radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000a",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001e",
|
||||
"kind": "Participant",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Rescue team",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Rescue radio",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000029": {
|
||||
"id": "c6060906-0000-4000-8000-000000000029",
|
||||
"alias": "cm_41",
|
||||
"name": "Control radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000b",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001f",
|
||||
"kind": "Participant",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Control centre",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Control radio",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f41": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f41",
|
||||
"alias": "trace_exchange_exchange",
|
||||
"name": "Rescue radio channel ↔ Rescue radio channel",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000000032",
|
||||
"sa": "c6060906-0000-4000-8000-000000001f40",
|
||||
"kind": "Exchange",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f47": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f47",
|
||||
"alias": "trace_oa_cm_200_cm_200",
|
||||
"name": "Reverse rescue request ↔ Reverse rescue request",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f42",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Reverse rescue request",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Reverse rescue request",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f48": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f48",
|
||||
"alias": "trace_oa_cm_201_cm_201",
|
||||
"name": "Team radio lifeline ↔ Team radio lifeline",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f43",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Team radio lifeline",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Team radio lifeline",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f49": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f49",
|
||||
"alias": "trace_oa_cm_202_cm_202",
|
||||
"name": "Control radio lifeline ↔ Control radio lifeline",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f44",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Control radio lifeline",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Control radio lifeline",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4a": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4a",
|
||||
"alias": "trace_oa_cm_203_cm_203",
|
||||
"name": "Request rescue report ↔ Request rescue report",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f45",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Request rescue report",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Request rescue report",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f4b": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f4b",
|
||||
"alias": "trace_oa_cm_204_cm_204",
|
||||
"name": "Reply with rescue report ↔ Reply with rescue report",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000001f46",
|
||||
"sa": "c6060906-0000-4000-8000-0000000000cc",
|
||||
"kind": "Scenario",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Reply with rescue report",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Reply with rescue report",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
|
||||
oa_scenario oa_cm_200 "Reverse rescue request" id "c6060906-0000-4000-8000-000000001f42" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@oa_cm_203, @oa_cm_204];
|
||||
viewpoint ParticipantInteraction;
|
||||
|
||||
oa_lifeline oa_cm_201 "Team radio lifeline" id "c6060906-0000-4000-8000-000000001f43" {
|
||||
description "";
|
||||
|
||||
represented @cm_10;
|
||||
}
|
||||
|
||||
|
||||
oa_lifeline oa_cm_202 "Control radio lifeline" id "c6060906-0000-4000-8000-000000001f44" {
|
||||
description "";
|
||||
|
||||
represented @cm_11;
|
||||
}
|
||||
|
||||
|
||||
oa_occurrence oa_cm_203 "Request rescue report" id "c6060906-0000-4000-8000-000000001f45" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @cm_50;
|
||||
message_kind Call;
|
||||
receiver @oa_cm_201;
|
||||
reply_to none;
|
||||
sender @oa_cm_202;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
|
||||
oa_occurrence oa_cm_204 "Reply with rescue report" id "c6060906-0000-4000-8000-000000001f46" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @cm_50;
|
||||
message_kind Reply;
|
||||
receiver @oa_cm_202;
|
||||
reply_to @oa_cm_203;
|
||||
sender @oa_cm_201;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
|
||||
trace trace_oa_cm_200_cm_200 "Reverse rescue request ↔ Reverse rescue request" id "c6060906-0000-4000-8000-000000001f47" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Reverse rescue request";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Reverse rescue request";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_200;
|
||||
sa @cm_200;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_201_cm_201 "Team radio lifeline ↔ Team radio lifeline" id "c6060906-0000-4000-8000-000000001f48" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Team radio lifeline";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Team radio lifeline";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_201;
|
||||
sa @cm_201;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_202_cm_202 "Control radio lifeline ↔ Control radio lifeline" id "c6060906-0000-4000-8000-000000001f49" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Control radio lifeline";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Control radio lifeline";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_202;
|
||||
sa @cm_202;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_203_cm_203 "Request rescue report ↔ Request rescue report" id "c6060906-0000-4000-8000-000000001f4a" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Request rescue report";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Request rescue report";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_203;
|
||||
sa @cm_203;
|
||||
}
|
||||
|
||||
|
||||
trace trace_oa_cm_204_cm_204 "Reply with rescue report ↔ Reply with rescue report" id "c6060906-0000-4000-8000-000000001f4b" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Reply with rescue report";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Reply with rescue report";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Scenario;
|
||||
oa @oa_cm_204;
|
||||
sa @cm_204;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,299 @@
|
||||
arcadia 6;
|
||||
project communication_native "Rescue communication engineering" id "c6060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
oa_entity cm_10 "Rescue team" id "c6060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_actor cm_11 "Control centre" id "c6060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_12 "Report rescue status" id "c6060906-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_13 "Assess rescue status" id "c6060906-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system cm_30 "Rescue radio" id "c6060906-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_actor cm_31 "Control radio" id "c6060906-0000-4000-8000-00000000001f" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port cm_32 "Existing team socket" id "c6060906-0000-4000-8000-000000000020" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_30;
|
||||
}
|
||||
|
||||
sa_port cm_33 "Existing control socket" id "c6060906-0000-4000-8000-000000000021" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_31;
|
||||
}
|
||||
|
||||
sa_scenario cm_200 "Reverse rescue request" id "c6060906-0000-4000-8000-0000000000c8" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@cm_203, @cm_204];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline cm_201 "Team radio lifeline" id "c6060906-0000-4000-8000-0000000000c9" {
|
||||
description "";
|
||||
parent @cm_200;
|
||||
represented @cm_30;
|
||||
}
|
||||
|
||||
sa_lifeline cm_202 "Control radio lifeline" id "c6060906-0000-4000-8000-0000000000ca" {
|
||||
description "";
|
||||
parent @cm_200;
|
||||
represented @cm_31;
|
||||
}
|
||||
|
||||
sa_occurrence cm_203 "Request rescue report" id "c6060906-0000-4000-8000-0000000000cb" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @sa_cm_50;
|
||||
message_kind Call;
|
||||
receiver @cm_201;
|
||||
reply_to none;
|
||||
sender @cm_202;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @cm_200;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence cm_204 "Reply with rescue report" id "c6060906-0000-4000-8000-0000000000cc" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @sa_cm_50;
|
||||
message_kind Reply;
|
||||
receiver @cm_202;
|
||||
reply_to @cm_203;
|
||||
sender @cm_201;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @cm_200;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
allocation cm_20 "Team performs reporting" id "c6060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
source @cm_10;
|
||||
target @cm_12;
|
||||
}
|
||||
|
||||
allocation cm_21 "Control performs assessment" id "c6060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
source @cm_11;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
interaction cm_22 "Rescue status" id "c6060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
items [];
|
||||
source @cm_12;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
communication_mean cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_10;
|
||||
target @cm_11;
|
||||
}
|
||||
|
||||
boundary_exchange sa_cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000001f40" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_32;
|
||||
target @cm_33;
|
||||
}
|
||||
|
||||
diagram cm_diagram_1000 "Draw operational communication" id "c6060906-0000-4000-8000-0000000003e8" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1000 id "c6060906-0000-4000-8000-0000000003f2" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1001 id "c6060906-0000-4000-8000-0000000003f3" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_11;
|
||||
position {
|
||||
x 550.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1002 id "c6060906-0000-4000-8000-0000000003f4" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_12;
|
||||
position {
|
||||
x 80.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1003 id "c6060906-0000-4000-8000-0000000003f5" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_13;
|
||||
position {
|
||||
x 550.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram cm_diagram_1100 "Explicit system endpoints" id "c6060906-0000-4000-8000-00000000044c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1100 id "c6060906-0000-4000-8000-000000000456" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_30;
|
||||
position {
|
||||
x 80.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1101 id "c6060906-0000-4000-8000-000000000457" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_31;
|
||||
position {
|
||||
x 550.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
trace cm_40 "Team radio correspondence" id "c6060906-0000-4000-8000-000000000028" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_10;
|
||||
sa @cm_30;
|
||||
}
|
||||
|
||||
trace cm_41 "Control radio correspondence" id "c6060906-0000-4000-8000-000000000029" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_11;
|
||||
sa @cm_31;
|
||||
}
|
||||
|
||||
trace trace_exchange_exchange "Rescue radio channel ↔ Rescue radio channel" id "c6060906-0000-4000-8000-000000001f41" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Rescue radio channel";
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Exchange;
|
||||
oa @cm_50;
|
||||
sa @sa_cm_50;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,457 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c6060906-0000-4000-8000-000000000001",
|
||||
"alias": "communication_native",
|
||||
"name": "Rescue communication engineering",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"c6060906-0000-4000-8000-00000000000a": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000a",
|
||||
"alias": "cm_10",
|
||||
"name": "Rescue team",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Entity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000b": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000b",
|
||||
"alias": "cm_11",
|
||||
"name": "Control centre",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000c",
|
||||
"alias": "cm_12",
|
||||
"name": "Report rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000d": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000d",
|
||||
"alias": "cm_13",
|
||||
"name": "Assess rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001e": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001e",
|
||||
"alias": "cm_30",
|
||||
"name": "Rescue radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001f": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001f",
|
||||
"alias": "cm_31",
|
||||
"name": "Control radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000020": {
|
||||
"id": "c6060906-0000-4000-8000-000000000020",
|
||||
"alias": "cm_32",
|
||||
"name": "Existing team socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001e",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000021": {
|
||||
"id": "c6060906-0000-4000-8000-000000000021",
|
||||
"alias": "cm_33",
|
||||
"name": "Existing control socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000c8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"alias": "cm_200",
|
||||
"name": "Reverse rescue request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Scenario": {
|
||||
"viewpoint": "BoundaryInterface",
|
||||
"context": null,
|
||||
"precondition": "",
|
||||
"postcondition": "",
|
||||
"steps": [
|
||||
"c6060906-0000-4000-8000-0000000000cb",
|
||||
"c6060906-0000-4000-8000-0000000000cc"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000c9": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"alias": "cm_201",
|
||||
"name": "Team radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000001e"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000ca": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"alias": "cm_202",
|
||||
"name": "Control radio lifeline",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Lifeline": {
|
||||
"represented": "c6060906-0000-4000-8000-00000000001f"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000cb": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"alias": "cm_203",
|
||||
"name": "Request rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000001f40",
|
||||
"sender": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"receiver": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"message_kind": "Call",
|
||||
"reply_to": null,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000000cc": {
|
||||
"id": "c6060906-0000-4000-8000-0000000000cc",
|
||||
"alias": "cm_204",
|
||||
"name": "Reply with rescue report",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Occurrence": {
|
||||
"body": {
|
||||
"Exchange": {
|
||||
"exchange": "c6060906-0000-4000-8000-000000001f40",
|
||||
"sender": "c6060906-0000-4000-8000-0000000000c9",
|
||||
"receiver": "c6060906-0000-4000-8000-0000000000ca",
|
||||
"message_kind": "Reply",
|
||||
"reply_to": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
"precondition": "",
|
||||
"postcondition": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"c6060906-0000-4000-8000-000000000014": {
|
||||
"id": "c6060906-0000-4000-8000-000000000014",
|
||||
"alias": "cm_20",
|
||||
"name": "Team performs reporting",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000015": {
|
||||
"id": "c6060906-0000-4000-8000-000000000015",
|
||||
"alias": "cm_21",
|
||||
"name": "Control performs assessment",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000016": {
|
||||
"id": "c6060906-0000-4000-8000-000000000016",
|
||||
"alias": "cm_22",
|
||||
"name": "Rescue status",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Interaction": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000c",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d",
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000032": {
|
||||
"id": "c6060906-0000-4000-8000-000000000032",
|
||||
"alias": "cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"CommunicationMean": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f40": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f40",
|
||||
"alias": "sa_cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"BoundaryExchange": {
|
||||
"source": "c6060906-0000-4000-8000-000000000020",
|
||||
"target": "c6060906-0000-4000-8000-000000000021",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {
|
||||
"c6060906-0000-4000-8000-0000000003e8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"alias": "cm_diagram_1000",
|
||||
"name": "Draw operational communication",
|
||||
"description": "",
|
||||
"layer": "Oa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-0000000003f2": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f2",
|
||||
"alias": "cm_view_1000",
|
||||
"element": "c6060906-0000-4000-8000-00000000000a",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f3": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f3",
|
||||
"alias": "cm_view_1001",
|
||||
"element": "c6060906-0000-4000-8000-00000000000b",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f4": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f4",
|
||||
"alias": "cm_view_1002",
|
||||
"element": "c6060906-0000-4000-8000-00000000000c",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f5": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f5",
|
||||
"alias": "cm_view_1003",
|
||||
"element": "c6060906-0000-4000-8000-00000000000d",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000044c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000044c",
|
||||
"alias": "cm_diagram_1100",
|
||||
"name": "Explicit system endpoints",
|
||||
"description": "",
|
||||
"layer": "Sa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-000000000456": {
|
||||
"id": "c6060906-0000-4000-8000-000000000456",
|
||||
"alias": "cm_view_1100",
|
||||
"element": "c6060906-0000-4000-8000-00000000001e",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000457": {
|
||||
"id": "c6060906-0000-4000-8000-000000000457",
|
||||
"alias": "cm_view_1101",
|
||||
"element": "c6060906-0000-4000-8000-00000000001f",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
}
|
||||
},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"c6060906-0000-4000-8000-000000000028": {
|
||||
"id": "c6060906-0000-4000-8000-000000000028",
|
||||
"alias": "cm_40",
|
||||
"name": "Team radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000a",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001e",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000029": {
|
||||
"id": "c6060906-0000-4000-8000-000000000029",
|
||||
"alias": "cm_41",
|
||||
"name": "Control radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000b",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001f",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000001f41": {
|
||||
"id": "c6060906-0000-4000-8000-000000001f41",
|
||||
"alias": "trace_exchange_exchange",
|
||||
"name": "Rescue radio channel ↔ Rescue radio channel",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-000000000032",
|
||||
"sa": "c6060906-0000-4000-8000-000000001f40",
|
||||
"kind": "Exchange",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Rescue radio channel",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"direction": "SaToOa",
|
||||
"sources": [
|
||||
"c6060906-0000-4000-8000-0000000000c8"
|
||||
],
|
||||
"scope": "Subtree",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-000000001f40",
|
||||
"target": "c6060906-0000-4000-8000-000000000032",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001e",
|
||||
"target": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001f",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [
|
||||
"Name",
|
||||
"Description"
|
||||
],
|
||||
"resolutions": [
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-000000001f40",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001e",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
},
|
||||
{
|
||||
"source": "c6060906-0000-4000-8000-00000000001f",
|
||||
"field": "Name",
|
||||
"decision": "KeepTarget"
|
||||
}
|
||||
],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": []
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
arcadia 6;
|
||||
project communication_native "Rescue communication engineering" id "c6060906-0000-4000-8000-000000000001" {
|
||||
description "";
|
||||
|
||||
oa_entity cm_10 "Rescue team" id "c6060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_actor cm_11 "Control centre" id "c6060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_12 "Report rescue status" id "c6060906-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity cm_13 "Assess rescue status" id "c6060906-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system cm_30 "Rescue radio" id "c6060906-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_actor cm_31 "Control radio" id "c6060906-0000-4000-8000-00000000001f" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port cm_32 "Existing team socket" id "c6060906-0000-4000-8000-000000000020" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_30;
|
||||
}
|
||||
|
||||
sa_port cm_33 "Existing control socket" id "c6060906-0000-4000-8000-000000000021" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @cm_31;
|
||||
}
|
||||
|
||||
allocation cm_20 "Team performs reporting" id "c6060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
source @cm_10;
|
||||
target @cm_12;
|
||||
}
|
||||
|
||||
allocation cm_21 "Control performs assessment" id "c6060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
source @cm_11;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
interaction cm_22 "Rescue status" id "c6060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
items [];
|
||||
source @cm_12;
|
||||
target @cm_13;
|
||||
}
|
||||
|
||||
communication_mean cm_50 "Rescue radio channel" id "c6060906-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
items [];
|
||||
oriented false;
|
||||
source @cm_10;
|
||||
target @cm_11;
|
||||
}
|
||||
|
||||
diagram cm_diagram_1000 "Draw operational communication" id "c6060906-0000-4000-8000-0000000003e8" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1000 id "c6060906-0000-4000-8000-0000000003f2" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1001 id "c6060906-0000-4000-8000-0000000003f3" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_11;
|
||||
position {
|
||||
x 550.0;
|
||||
y 70.0;
|
||||
};
|
||||
size {
|
||||
height 160.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1002 id "c6060906-0000-4000-8000-0000000003f4" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_12;
|
||||
position {
|
||||
x 80.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1003 id "c6060906-0000-4000-8000-0000000003f5" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1000;
|
||||
element @cm_13;
|
||||
position {
|
||||
x 550.0;
|
||||
y 330.0;
|
||||
};
|
||||
size {
|
||||
height 110.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram cm_diagram_1100 "Explicit system endpoints" id "c6060906-0000-4000-8000-00000000044c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection Overview;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1100 id "c6060906-0000-4000-8000-000000000456" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_30;
|
||||
position {
|
||||
x 80.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
node cm_view_1101 id "c6060906-0000-4000-8000-000000000457" {
|
||||
collapsed false;
|
||||
diagram @cm_diagram_1100;
|
||||
element @cm_31;
|
||||
position {
|
||||
x 550.0;
|
||||
y 140.0;
|
||||
};
|
||||
size {
|
||||
height 170.0;
|
||||
width 250.0;
|
||||
};
|
||||
}
|
||||
|
||||
trace cm_40 "Team radio correspondence" id "c6060906-0000-4000-8000-000000000028" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_10;
|
||||
sa @cm_30;
|
||||
}
|
||||
|
||||
trace cm_41 "Control radio correspondence" id "c6060906-0000-4000-8000-000000000029" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Participant;
|
||||
oa @cm_11;
|
||||
sa @cm_31;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,315 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c6060906-0000-4000-8000-000000000001",
|
||||
"alias": "communication_native",
|
||||
"name": "Rescue communication engineering",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"c6060906-0000-4000-8000-00000000000a": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000a",
|
||||
"alias": "cm_10",
|
||||
"name": "Rescue team",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Entity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000b": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000b",
|
||||
"alias": "cm_11",
|
||||
"name": "Control centre",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000c",
|
||||
"alias": "cm_12",
|
||||
"name": "Report rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000000d": {
|
||||
"id": "c6060906-0000-4000-8000-00000000000d",
|
||||
"alias": "cm_13",
|
||||
"name": "Assess rescue status",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001e": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001e",
|
||||
"alias": "cm_30",
|
||||
"name": "Rescue radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "System"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000001f": {
|
||||
"id": "c6060906-0000-4000-8000-00000000001f",
|
||||
"alias": "cm_31",
|
||||
"name": "Control radio",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Actor"
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000020": {
|
||||
"id": "c6060906-0000-4000-8000-000000000020",
|
||||
"alias": "cm_32",
|
||||
"name": "Existing team socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001e",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000021": {
|
||||
"id": "c6060906-0000-4000-8000-000000000021",
|
||||
"alias": "cm_33",
|
||||
"name": "Existing control socket",
|
||||
"description": "",
|
||||
"parent": "c6060906-0000-4000-8000-00000000001f",
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"Port": {
|
||||
"contract": {
|
||||
"Component": {
|
||||
"kind": "Standard",
|
||||
"orientation": "Unset"
|
||||
}
|
||||
},
|
||||
"legacy": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"c6060906-0000-4000-8000-000000000014": {
|
||||
"id": "c6060906-0000-4000-8000-000000000014",
|
||||
"alias": "cm_20",
|
||||
"name": "Team performs reporting",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000c"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000015": {
|
||||
"id": "c6060906-0000-4000-8000-000000000015",
|
||||
"alias": "cm_21",
|
||||
"name": "Control performs assessment",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Allocation": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000b",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d"
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000016": {
|
||||
"id": "c6060906-0000-4000-8000-000000000016",
|
||||
"alias": "cm_22",
|
||||
"name": "Rescue status",
|
||||
"description": "",
|
||||
"body": {
|
||||
"Interaction": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000c",
|
||||
"target": "c6060906-0000-4000-8000-00000000000d",
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000032": {
|
||||
"id": "c6060906-0000-4000-8000-000000000032",
|
||||
"alias": "cm_50",
|
||||
"name": "Rescue radio channel",
|
||||
"description": "",
|
||||
"body": {
|
||||
"CommunicationMean": {
|
||||
"source": "c6060906-0000-4000-8000-00000000000a",
|
||||
"target": "c6060906-0000-4000-8000-00000000000b",
|
||||
"oriented": false,
|
||||
"items": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {
|
||||
"c6060906-0000-4000-8000-0000000003e8": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"alias": "cm_diagram_1000",
|
||||
"name": "Draw operational communication",
|
||||
"description": "",
|
||||
"layer": "Oa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-0000000003f2": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f2",
|
||||
"alias": "cm_view_1000",
|
||||
"element": "c6060906-0000-4000-8000-00000000000a",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f3": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f3",
|
||||
"alias": "cm_view_1001",
|
||||
"element": "c6060906-0000-4000-8000-00000000000b",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 70.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 160.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f4": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f4",
|
||||
"alias": "cm_view_1002",
|
||||
"element": "c6060906-0000-4000-8000-00000000000c",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-0000000003f5": {
|
||||
"id": "c6060906-0000-4000-8000-0000000003f5",
|
||||
"alias": "cm_view_1003",
|
||||
"element": "c6060906-0000-4000-8000-00000000000d",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 330.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 110.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
},
|
||||
"c6060906-0000-4000-8000-00000000044c": {
|
||||
"id": "c6060906-0000-4000-8000-00000000044c",
|
||||
"alias": "cm_diagram_1100",
|
||||
"name": "Explicit system endpoints",
|
||||
"description": "",
|
||||
"layer": "Sa",
|
||||
"projection": "Overview",
|
||||
"view_options": {
|
||||
"hidden_edges": [],
|
||||
"relation_kinds": "All",
|
||||
"work_categories": "All",
|
||||
"participant_categories": "All",
|
||||
"coverage": "All",
|
||||
"work_contexts": "All",
|
||||
"exchange_labels": "Name"
|
||||
},
|
||||
"nodes": {
|
||||
"c6060906-0000-4000-8000-000000000456": {
|
||||
"id": "c6060906-0000-4000-8000-000000000456",
|
||||
"alias": "cm_view_1100",
|
||||
"element": "c6060906-0000-4000-8000-00000000001e",
|
||||
"position": {
|
||||
"x": 80.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000457": {
|
||||
"id": "c6060906-0000-4000-8000-000000000457",
|
||||
"alias": "cm_view_1101",
|
||||
"element": "c6060906-0000-4000-8000-00000000001f",
|
||||
"position": {
|
||||
"x": 550.0,
|
||||
"y": 140.0
|
||||
},
|
||||
"size": {
|
||||
"width": 250.0,
|
||||
"height": 170.0
|
||||
},
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
"routes": []
|
||||
}
|
||||
},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"c6060906-0000-4000-8000-000000000028": {
|
||||
"id": "c6060906-0000-4000-8000-000000000028",
|
||||
"alias": "cm_40",
|
||||
"name": "Team radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000a",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001e",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
},
|
||||
"c6060906-0000-4000-8000-000000000029": {
|
||||
"id": "c6060906-0000-4000-8000-000000000029",
|
||||
"alias": "cm_41",
|
||||
"name": "Control radio correspondence",
|
||||
"description": "",
|
||||
"oa": "c6060906-0000-4000-8000-00000000000b",
|
||||
"sa": "c6060906-0000-4000-8000-00000000001f",
|
||||
"kind": "Participant",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,874 @@
|
||||
//! Direct core fixture/oracle helper; no native input or accepted-file mutation.
|
||||
use oa_core::{transitions::*, view_options::ViewOptions, *};
|
||||
use std::{
|
||||
collections::{BTreeMap, BTreeSet},
|
||||
fs,
|
||||
path::Path,
|
||||
};
|
||||
|
||||
fn id(n: u32) -> Id {
|
||||
format!("c6060906-0000-4000-8000-{n:012x}").parse().unwrap()
|
||||
}
|
||||
fn element(
|
||||
p: &mut Project,
|
||||
n: u32,
|
||||
kind: Kind,
|
||||
layer: Layer,
|
||||
name: &str,
|
||||
parent: Option<Id>,
|
||||
) -> Id {
|
||||
let key = id(n);
|
||||
p.elements.insert(
|
||||
key,
|
||||
Element {
|
||||
id: key,
|
||||
alias: format!("cm_{n}"),
|
||||
name: name.into(),
|
||||
description: String::new(),
|
||||
parent,
|
||||
body: if kind == Kind::Port {
|
||||
ElementBody::shared_in(
|
||||
layer,
|
||||
SharedBody::Port {
|
||||
contract: PortContract::Component {
|
||||
kind: ComponentPortKind::Standard,
|
||||
orientation: ComponentPortOrientation::Unset,
|
||||
},
|
||||
legacy: None,
|
||||
},
|
||||
)
|
||||
} else {
|
||||
ElementBody::new(kind, layer).unwrap()
|
||||
},
|
||||
},
|
||||
);
|
||||
key
|
||||
}
|
||||
fn relation(p: &mut Project, n: u32, kind: RelationKind, name: &str, source: Id, target: Id) -> Id {
|
||||
let key = id(n);
|
||||
p.relations.insert(
|
||||
key,
|
||||
Relation {
|
||||
id: key,
|
||||
alias: format!("cm_{n}"),
|
||||
name: name.into(),
|
||||
description: String::new(),
|
||||
body: RelationBody::new(kind, source, target),
|
||||
},
|
||||
);
|
||||
key
|
||||
}
|
||||
fn trace(p: &mut Project, n: u32, oa: Id, sa: Id, kind: TraceKind, name: &str) {
|
||||
p.traces.insert(
|
||||
id(n),
|
||||
Trace {
|
||||
id: id(n),
|
||||
alias: format!("cm_{n}"),
|
||||
name: name.into(),
|
||||
description: String::new(),
|
||||
oa,
|
||||
sa,
|
||||
kind,
|
||||
baseline: None,
|
||||
},
|
||||
);
|
||||
}
|
||||
fn diagram(p: &mut Project, n: u32, layer: Layer, name: &str, rows: &[(Id, f32, f32, f32, f32)]) {
|
||||
let nodes = rows
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(i, &(element, x, y, width, height))| {
|
||||
let key = id(n + 10 + i as u32);
|
||||
(
|
||||
key,
|
||||
NodePlacement {
|
||||
id: key,
|
||||
alias: format!("cm_view_{}", n + i as u32),
|
||||
element,
|
||||
position: Position { x, y },
|
||||
size: Size { width, height },
|
||||
collapsed: false,
|
||||
port_anchors: vec![],
|
||||
},
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
p.diagrams.insert(
|
||||
id(n),
|
||||
Diagram {
|
||||
id: id(n),
|
||||
alias: format!("cm_diagram_{n}"),
|
||||
name: name.into(),
|
||||
description: String::new(),
|
||||
layer,
|
||||
projection: ProjectionKind::Overview,
|
||||
view_options: ViewOptions::default(),
|
||||
nodes,
|
||||
routes: vec![],
|
||||
},
|
||||
);
|
||||
}
|
||||
fn port(p: &mut Project, n: u32, owner: Id, name: &str) -> Id {
|
||||
let key = element(p, n, Kind::Port, Layer::Sa, name, Some(owner));
|
||||
if let Some(SharedBody::Port { contract, .. }) = p.elements.get_mut(&key).unwrap().shared_mut()
|
||||
{
|
||||
*contract = PortContract::Component {
|
||||
kind: ComponentPortKind::Standard,
|
||||
orientation: ComponentPortOrientation::Unset,
|
||||
};
|
||||
} else {
|
||||
panic!("port");
|
||||
}
|
||||
key
|
||||
}
|
||||
fn base() -> Project {
|
||||
let mut p = Project::empty();
|
||||
p.id = id(1);
|
||||
p.alias = "communication_native".into();
|
||||
p.name = "Rescue communication engineering".into();
|
||||
let a = element(&mut p, 10, Kind::Entity, Layer::Oa, "Rescue team", None);
|
||||
let b = element(&mut p, 11, Kind::Actor, Layer::Oa, "Control centre", None);
|
||||
let x = element(
|
||||
&mut p,
|
||||
12,
|
||||
Kind::Activity,
|
||||
Layer::Oa,
|
||||
"Report rescue status",
|
||||
None,
|
||||
);
|
||||
let y = element(
|
||||
&mut p,
|
||||
13,
|
||||
Kind::Activity,
|
||||
Layer::Oa,
|
||||
"Assess rescue status",
|
||||
None,
|
||||
);
|
||||
relation(
|
||||
&mut p,
|
||||
20,
|
||||
RelationKind::Allocation,
|
||||
"Team performs reporting",
|
||||
a,
|
||||
x,
|
||||
);
|
||||
relation(
|
||||
&mut p,
|
||||
21,
|
||||
RelationKind::Allocation,
|
||||
"Control performs assessment",
|
||||
b,
|
||||
y,
|
||||
);
|
||||
relation(&mut p, 22, RelationKind::Interaction, "Rescue status", x, y);
|
||||
let sa = element(&mut p, 30, Kind::System, Layer::Sa, "Rescue radio", None);
|
||||
let sb = element(
|
||||
&mut p,
|
||||
31,
|
||||
Kind::SystemActor,
|
||||
Layer::Sa,
|
||||
"Control radio",
|
||||
None,
|
||||
);
|
||||
port(&mut p, 32, sa, "Existing team socket");
|
||||
port(&mut p, 33, sb, "Existing control socket");
|
||||
trace(
|
||||
&mut p,
|
||||
40,
|
||||
a,
|
||||
sa,
|
||||
TraceKind::Participant,
|
||||
"Team radio correspondence",
|
||||
);
|
||||
trace(
|
||||
&mut p,
|
||||
41,
|
||||
b,
|
||||
sb,
|
||||
TraceKind::Participant,
|
||||
"Control radio correspondence",
|
||||
);
|
||||
diagram(
|
||||
&mut p,
|
||||
1000,
|
||||
Layer::Oa,
|
||||
"Draw operational communication",
|
||||
&[
|
||||
(a, 80., 70., 250., 160.),
|
||||
(b, 550., 70., 250., 160.),
|
||||
(x, 80., 330., 250., 110.),
|
||||
(y, 550., 330., 250., 110.),
|
||||
],
|
||||
);
|
||||
diagram(
|
||||
&mut p,
|
||||
1100,
|
||||
Layer::Sa,
|
||||
"Explicit system endpoints",
|
||||
&[(sa, 80., 140., 250., 170.), (sb, 550., 140., 250., 170.)],
|
||||
);
|
||||
valid(&p);
|
||||
p
|
||||
}
|
||||
fn valid(p: &Project) {
|
||||
validate_candidate(p).unwrap();
|
||||
assert_eq!(language::parse(&language::format(p)).unwrap(), *p);
|
||||
assert_eq!(
|
||||
persistence::decode(&serde_json::to_vec(p).unwrap()).unwrap(),
|
||||
*p
|
||||
);
|
||||
}
|
||||
fn forward(p: &Project, mean: Id, create: Option<Id>) -> TransitionRequest {
|
||||
let mut r = TransitionRequest::new(TransitionDirection::OaToSa, vec![mean]);
|
||||
r.mappings = vec![
|
||||
TransitionMapping {
|
||||
source: id(10),
|
||||
target: Some(id(30)),
|
||||
target_kind: None,
|
||||
},
|
||||
TransitionMapping {
|
||||
source: id(11),
|
||||
target: Some(id(31)),
|
||||
target_kind: None,
|
||||
},
|
||||
];
|
||||
r.resolutions = r
|
||||
.mappings
|
||||
.iter()
|
||||
.map(|m| FieldResolution {
|
||||
source: m.source,
|
||||
field: TransitionField::Name,
|
||||
decision: FieldDecision::KeepTarget,
|
||||
})
|
||||
.collect();
|
||||
let target_port = if let Some(key) = create {
|
||||
let name = format!("{} · target port", p.named(mean));
|
||||
CommunicationPortChoice::Create {
|
||||
id: key,
|
||||
alias: p.fresh_alias(&name, "port", key),
|
||||
name,
|
||||
description: String::new(),
|
||||
kind: ComponentPortKind::Standard,
|
||||
orientation: ComponentPortOrientation::Unset,
|
||||
}
|
||||
} else {
|
||||
CommunicationPortChoice::Reuse { port: id(33) }
|
||||
};
|
||||
r.communication_endpoints
|
||||
.push(CommunicationEndpointDecision {
|
||||
source: mean,
|
||||
source_port: CommunicationPortChoice::Reuse { port: id(32) },
|
||||
target_port,
|
||||
});
|
||||
r
|
||||
}
|
||||
fn apply(p: &Project, r: &TransitionRequest) -> Project {
|
||||
let plan = plan_transition(p, r).unwrap();
|
||||
assert!(plan.conflicts.is_empty(), "{:?}", plan.conflicts);
|
||||
let mut q = apply_transition(p, &plan).unwrap();
|
||||
// Desktop Workflow::Transition::Apply adds presentation after the core
|
||||
// transition. Predict its policy from the plan and prior diagram, never
|
||||
// adopt placement coordinates/size/alias from the observed native result.
|
||||
let diagram = r
|
||||
.destination_diagram
|
||||
.or_else(|| {
|
||||
q.diagrams
|
||||
.values()
|
||||
.find(|d| d.layer == r.direction.target_layer())
|
||||
.map(|d| d.id)
|
||||
})
|
||||
.expect("These fixtures provide an existing destination-layer diagram");
|
||||
for change in &plan.changes {
|
||||
if q.elements.contains_key(&change.target) {
|
||||
let count = q.diagrams[&diagram].nodes.len();
|
||||
q.place(
|
||||
diagram,
|
||||
change.target,
|
||||
Position {
|
||||
x: 60. + (count % 3) as f32 * 280.,
|
||||
y: 60. + (count / 3) as f32 * 150.,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
valid(&q);
|
||||
q
|
||||
}
|
||||
// Separate policy oracle: the explicit scenario root opens in Behavior, so no
|
||||
// architecture placement is requested. Keep apply() above for the legacy binary.
|
||||
fn apply_reverse_behavior(p: &Project, r: &TransitionRequest) -> Project {
|
||||
assert_eq!(r.sources, vec![id(200)]);
|
||||
assert_eq!(p.elements[&id(200)].kind(), Kind::Scenario);
|
||||
assert!(r.destination_diagram.is_none());
|
||||
let plan = plan_transition(p, r).unwrap();
|
||||
assert!(plan.conflicts.is_empty(), "{:?}", plan.conflicts);
|
||||
let q = apply_transition(p, &plan).unwrap();
|
||||
assert_eq!(
|
||||
q.diagrams, p.diagrams,
|
||||
"Behavior must preserve every saved view"
|
||||
);
|
||||
reverse_assertions(p, &q);
|
||||
valid(&q);
|
||||
q
|
||||
}
|
||||
|
||||
fn generate_reverse_behavior(before: &Path, out: &Path) {
|
||||
let disk =
|
||||
source_files::load_project(before, source_project::ProjectLimits::default()).unwrap();
|
||||
let compiled = source_project::compile_bundle(
|
||||
&disk.reachable_bundle(),
|
||||
source_project::ProjectLimits::default(),
|
||||
)
|
||||
.unwrap();
|
||||
let p = &compiled.decoded.project;
|
||||
let request = reverse(p);
|
||||
let q = deterministic(p, apply_reverse_behavior(p, &request));
|
||||
let updated =
|
||||
source_project::update_bundle(&compiled, &q, source_project::ProjectLimits::default())
|
||||
.unwrap();
|
||||
fs::create_dir_all(out).unwrap();
|
||||
write_bundle(out, &updated.bundle);
|
||||
fs::write(
|
||||
out.join("expected.json"),
|
||||
serde_json::to_vec_pretty(&q).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
fs::write(
|
||||
out.join("request.json"),
|
||||
serde_json::to_vec_pretty(&request).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
println!("PASS generate-reverse-behavior: core candidate, all saved views unchanged");
|
||||
}
|
||||
// Only actual identity fields and references are remapped, never names/text/data.
|
||||
fn remap(mut p: Project, mappings: &BTreeMap<Id, Id>) -> Project {
|
||||
for (&old, &new) in mappings {
|
||||
if old == new {
|
||||
continue;
|
||||
}
|
||||
assert!(!p.contains(new));
|
||||
references::remap_references(&mut p, old, new);
|
||||
if let Some(mut e) = p.elements.remove(&old) {
|
||||
e.id = new;
|
||||
p.elements.insert(new, e);
|
||||
}
|
||||
if let Some(mut e) = p.relations.remove(&old) {
|
||||
e.id = new;
|
||||
p.relations.insert(new, e);
|
||||
}
|
||||
if let Some(mut e) = p.traces.remove(&old) {
|
||||
e.id = new;
|
||||
p.traces.insert(new, e);
|
||||
}
|
||||
if let Some(mut e) = p.artifact_links.remove(&old) {
|
||||
e.id = new;
|
||||
p.artifact_links.insert(new, e);
|
||||
}
|
||||
if let Some(mut e) = p.diagrams.remove(&old) {
|
||||
e.id = new;
|
||||
p.diagrams.insert(new, e);
|
||||
}
|
||||
for d in p.diagrams.values_mut() {
|
||||
if let Some(mut e) = d.nodes.remove(&old) {
|
||||
e.id = new;
|
||||
d.nodes.insert(new, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
valid(&p);
|
||||
p
|
||||
}
|
||||
fn deterministic(base: &Project, q: Project) -> Project {
|
||||
let mut fresh: Vec<_> = q
|
||||
.identities()
|
||||
.into_iter()
|
||||
.filter(|(key, _)| !base.contains(*key))
|
||||
.collect();
|
||||
fresh.sort_by(|a, b| a.1.cmp(&b.1));
|
||||
let mut next = 8000;
|
||||
let map = fresh
|
||||
.into_iter()
|
||||
.map(|(old, _)| {
|
||||
while base.contains(id(next)) {
|
||||
next += 1;
|
||||
}
|
||||
let new = id(next);
|
||||
next += 1;
|
||||
(old, new)
|
||||
})
|
||||
.collect();
|
||||
remap(q, &map)
|
||||
}
|
||||
fn emit(dir: &Path, name: &str, p: &Project) {
|
||||
valid(p);
|
||||
fs::write(dir.join(format!("{name}.arcadia")), language::format(p)).unwrap();
|
||||
fs::write(
|
||||
dir.join(format!("{name}.json")),
|
||||
serde_json::to_vec_pretty(p).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
fn emit_after(dir: &Path, name: &str, base: &Project, after: &Project) {
|
||||
let entry = "entry.arcadia".to_string();
|
||||
let bundle = source_project::SourceBundle {
|
||||
entry: entry.clone(),
|
||||
files: BTreeMap::from([(entry.clone(), language::format(base))]),
|
||||
};
|
||||
let compiled =
|
||||
source_project::compile_bundle(&bundle, source_project::ProjectLimits::default()).unwrap();
|
||||
let updated =
|
||||
source_project::update_bundle(&compiled, after, source_project::ProjectLimits::default())
|
||||
.unwrap();
|
||||
let output = dir.join(name);
|
||||
write_bundle(&output, &updated.bundle);
|
||||
fs::write(
|
||||
output.join("expected.json"),
|
||||
serde_json::to_vec_pretty(after).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
fn write_bundle(dir: &Path, bundle: &source_project::SourceBundle) {
|
||||
fs::create_dir_all(dir).unwrap();
|
||||
for (name, text) in &bundle.files {
|
||||
let path = dir.join(name);
|
||||
fs::create_dir_all(path.parent().unwrap()).unwrap();
|
||||
fs::write(path, text).unwrap();
|
||||
}
|
||||
}
|
||||
fn scenario(p: &mut Project, boundary: Id) -> Id {
|
||||
let s = element(
|
||||
p,
|
||||
200,
|
||||
Kind::Scenario,
|
||||
Layer::Sa,
|
||||
"Reverse rescue request",
|
||||
None,
|
||||
);
|
||||
if let Some(SharedBody::Scenario { viewpoint, .. }) =
|
||||
p.elements.get_mut(&s).unwrap().shared_mut()
|
||||
{
|
||||
*viewpoint = ScenarioViewpoint::BoundaryInterface;
|
||||
}
|
||||
let a = element(
|
||||
p,
|
||||
201,
|
||||
Kind::Lifeline,
|
||||
Layer::Sa,
|
||||
"Team radio lifeline",
|
||||
Some(s),
|
||||
);
|
||||
let b = element(
|
||||
p,
|
||||
202,
|
||||
Kind::Lifeline,
|
||||
Layer::Sa,
|
||||
"Control radio lifeline",
|
||||
Some(s),
|
||||
);
|
||||
for (line, owner) in [(a, id(30)), (b, id(31))] {
|
||||
*p.elements.get_mut(&line).unwrap().shared_mut().unwrap() = SharedBody::Lifeline {
|
||||
represented: Some(owner),
|
||||
};
|
||||
}
|
||||
for (n, name, sender, receiver, kind, reply_to) in [
|
||||
(203, "Request rescue report", b, a, MessageKind::Call, None),
|
||||
(
|
||||
204,
|
||||
"Reply with rescue report",
|
||||
a,
|
||||
b,
|
||||
MessageKind::Reply,
|
||||
Some(id(203)),
|
||||
),
|
||||
] {
|
||||
let e = element(p, n, Kind::Occurrence, Layer::Sa, name, Some(s));
|
||||
*p.elements.get_mut(&e).unwrap().shared_mut().unwrap() = SharedBody::Occurrence {
|
||||
body: OccurrenceBody::Exchange {
|
||||
exchange: Some(boundary),
|
||||
sender: Some(sender),
|
||||
receiver: Some(receiver),
|
||||
message_kind: kind,
|
||||
reply_to,
|
||||
values: vec![],
|
||||
},
|
||||
precondition: String::new(),
|
||||
postcondition: String::new(),
|
||||
};
|
||||
}
|
||||
*p.elements.get_mut(&s).unwrap().steps_mut().unwrap() = vec![id(203), id(204)];
|
||||
valid(p);
|
||||
s
|
||||
}
|
||||
fn reverse(p: &Project) -> TransitionRequest {
|
||||
let mean = id(50);
|
||||
let boundary = p.traces.values().find(|t| t.oa == mean).unwrap().sa;
|
||||
let mut r = TransitionRequest::new(TransitionDirection::SaToOa, vec![id(200)]);
|
||||
r.scope = DependencyScope::Subtree;
|
||||
r.mappings = [(boundary, mean), (id(30), id(10)), (id(31), id(11))]
|
||||
.into_iter()
|
||||
.map(|(source, target)| TransitionMapping {
|
||||
source,
|
||||
target: Some(target),
|
||||
target_kind: None,
|
||||
})
|
||||
.collect();
|
||||
r.resolutions = r
|
||||
.mappings
|
||||
.iter()
|
||||
.map(|m| FieldResolution {
|
||||
source: m.source,
|
||||
field: TransitionField::Name,
|
||||
decision: FieldDecision::KeepTarget,
|
||||
})
|
||||
.collect();
|
||||
r
|
||||
}
|
||||
fn reverse_assertions(p: &Project, q: &Project) {
|
||||
use validation::MessageEndpointResolution as R;
|
||||
let mapped = |source| q.traces.values().find(|t| t.sa == source).unwrap().oa;
|
||||
let body = |id| match q.elements[&id].shared().unwrap() {
|
||||
SharedBody::Occurrence { body, .. } => body,
|
||||
_ => panic!(),
|
||||
};
|
||||
let call = mapped(id(203));
|
||||
let reply = mapped(id(204));
|
||||
assert_eq!(
|
||||
validation::resolve_message_endpoints(q, body(call)),
|
||||
R::Resolved {
|
||||
source: id(11),
|
||||
target: id(10)
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
validation::resolve_message_endpoints(q, body(reply)),
|
||||
R::Resolved {
|
||||
source: id(10),
|
||||
target: id(11)
|
||||
}
|
||||
);
|
||||
assert!(matches!(body(reply),OccurrenceBody::Exchange{reply_to:Some(id),..} if *id==call));
|
||||
for key in [id(200), id(201), id(202), id(203), id(204)] {
|
||||
assert_eq!(p.elements[&key], q.elements[&key]);
|
||||
}
|
||||
assert_eq!(
|
||||
q.elements
|
||||
.values()
|
||||
.filter(|e| e.layer() == Layer::Oa && e.kind() == Kind::Port)
|
||||
.count(),
|
||||
0
|
||||
);
|
||||
}
|
||||
fn generate(dir: &Path) {
|
||||
fs::create_dir_all(dir).unwrap();
|
||||
let p = base();
|
||||
emit(dir, "cm-draw", &p);
|
||||
let mut ready = p.clone();
|
||||
relation(
|
||||
&mut ready,
|
||||
50,
|
||||
RelationKind::CommunicationMean,
|
||||
"Rescue radio channel",
|
||||
id(10),
|
||||
id(11),
|
||||
);
|
||||
valid(&ready);
|
||||
emit(dir, "cm-transition-ready", &ready);
|
||||
for (label, created) in [("reuse", None), ("create", Some(id(60)))] {
|
||||
let r = forward(&ready, id(50), created);
|
||||
let q = apply(&ready, &r);
|
||||
let q = deterministic(&ready, q);
|
||||
emit_after(dir, &format!("cm-{label}.after-template"), &ready, &q);
|
||||
fs::write(
|
||||
dir.join(format!("cm-{label}.request.json")),
|
||||
serde_json::to_vec_pretty(&r).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
let mut p = deterministic(&ready, apply(&ready, &forward(&ready, id(50), None)));
|
||||
let boundary = p.traces.values().find(|t| t.oa == id(50)).unwrap().sa;
|
||||
scenario(&mut p, boundary);
|
||||
emit(dir, "cm-reverse-scenario", &p);
|
||||
let r = reverse(&p);
|
||||
let q = apply(&p, &r);
|
||||
reverse_assertions(&p, &q);
|
||||
let q = deterministic(&p, q);
|
||||
emit_after(dir, "cm-reverse-scenario.after-template", &p, &q);
|
||||
fs::write(
|
||||
dir.join("cm-reverse-scenario.request.json"),
|
||||
serde_json::to_vec_pretty(&r).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
let manifest = serde_json::json!({"schema":6,"native_status":"pending","project":id(1),"oa_participants":[id(10),id(11)],"oa_activities":[id(12),id(13)],"interaction":id(22),"sa_participants":[id(30),id(31)],"existing_ports":[id(32),id(33)],"participant_traces":[id(40),id(41)],"draw_diagram":id(1000),"system_diagram":id(1100),"template_mean":id(50),"reverse_scenario":id(200),"reverse_call":id(203),"correlated_reply":id(204),"templates":"Generated target/trace UUIDs are reference examples, not native exact expectations. Use check with native before/after sources."});
|
||||
fs::write(
|
||||
dir.join("manifest.json"),
|
||||
serde_json::to_vec_pretty(&manifest).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
fn check_draw(
|
||||
before: &source_project::CompiledSourceProject,
|
||||
actual: &source_project::CompiledSourceProject,
|
||||
out: &Path,
|
||||
) {
|
||||
let p = &before.decoded.project;
|
||||
assert!(
|
||||
!p.relations
|
||||
.values()
|
||||
.any(|r| r.kind() == RelationKind::CommunicationMean)
|
||||
);
|
||||
let means: Vec<_> = actual
|
||||
.decoded
|
||||
.project
|
||||
.relations
|
||||
.values()
|
||||
.filter(|r| r.kind() == RelationKind::CommunicationMean)
|
||||
.collect();
|
||||
assert_eq!(
|
||||
means.len(),
|
||||
1,
|
||||
"Drawing creates exactly one communication means"
|
||||
);
|
||||
let identity = means[0].id;
|
||||
assert!(!p.contains(identity));
|
||||
let name = format!(
|
||||
"Communication means: {} — {}",
|
||||
p.named(id(10)),
|
||||
p.named(id(11))
|
||||
);
|
||||
let drawn = Relation {
|
||||
id: identity,
|
||||
alias: p.fresh_alias(&name, "relation", identity),
|
||||
name,
|
||||
description: String::new(),
|
||||
body: RelationBody::CommunicationMean {
|
||||
source: id(10),
|
||||
target: id(11),
|
||||
oriented: false,
|
||||
items: vec![],
|
||||
},
|
||||
};
|
||||
let create = Command::CreateRelation(drawn.clone());
|
||||
let after_draw = execute_batch(p, std::slice::from_ref(&create)).unwrap();
|
||||
let draw_source = source_project::update_bundle(
|
||||
before,
|
||||
&after_draw,
|
||||
source_project::ProjectLimits::default(),
|
||||
)
|
||||
.unwrap();
|
||||
let mut renamed = drawn;
|
||||
renamed.name = "Rescue radio channel".into();
|
||||
let rename = Command::EditRelation(identity, renamed);
|
||||
let expected = execute_batch(&after_draw, std::slice::from_ref(&rename)).unwrap();
|
||||
let expected_source = source_project::update_bundle(
|
||||
&draw_source,
|
||||
&expected,
|
||||
source_project::ProjectLimits::default(),
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(
|
||||
expected, actual.decoded.project,
|
||||
"Draw+rename full model differs; only actual new relation UUID was supplied"
|
||||
);
|
||||
let mut actual_files = actual.bundle.files.clone();
|
||||
let entry = actual_files.remove(&actual.bundle.entry).unwrap();
|
||||
assert!(
|
||||
actual_files
|
||||
.insert(expected_source.bundle.entry.clone(), entry)
|
||||
.is_none()
|
||||
);
|
||||
assert_eq!(
|
||||
expected_source.bundle.files, actual_files,
|
||||
"Draw+rename complete source bytes differ (entry filename only aligned)"
|
||||
);
|
||||
write_bundle(out, &expected_source.bundle);
|
||||
fs::write(
|
||||
out.join("expected-draw.json"),
|
||||
serde_json::to_vec_pretty(&expected).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
fs::write(
|
||||
out.join("draw-rename-commands.json"),
|
||||
serde_json::to_vec_pretty(&[create, rename]).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
println!(
|
||||
"PASS draw: typed CreateRelation then EditRelation, exact full model/source, only new relation UUID {identity}"
|
||||
);
|
||||
}
|
||||
fn check(mode: &str, before: &Path, after: &Path, out: &Path) {
|
||||
let before_disk =
|
||||
source_files::load_project(before, source_project::ProjectLimits::default()).unwrap();
|
||||
let actual_disk =
|
||||
source_files::load_project(after, source_project::ProjectLimits::default()).unwrap();
|
||||
let compiled = source_project::compile_bundle(
|
||||
&before_disk.reachable_bundle(),
|
||||
source_project::ProjectLimits::default(),
|
||||
)
|
||||
.unwrap();
|
||||
let actual_compiled = source_project::compile_bundle(
|
||||
&actual_disk.reachable_bundle(),
|
||||
source_project::ProjectLimits::default(),
|
||||
)
|
||||
.unwrap();
|
||||
let p = compiled.decoded.project.clone();
|
||||
let actual = actual_compiled.decoded.project.clone();
|
||||
valid(&p);
|
||||
valid(&actual);
|
||||
if mode == "draw" {
|
||||
return check_draw(&compiled, &actual_compiled, out);
|
||||
}
|
||||
let r = if matches!(mode, "reverse" | "reverse-behavior") {
|
||||
reverse(&p)
|
||||
} else {
|
||||
let means: Vec<_> = p
|
||||
.relations
|
||||
.values()
|
||||
.filter(|r| r.kind() == RelationKind::CommunicationMean)
|
||||
.collect();
|
||||
assert_eq!(means.len(), 1);
|
||||
let mean = means[0].id;
|
||||
let created = if mode == "create" {
|
||||
let trace = actual.traces.values().find(|t| t.oa == mean).unwrap();
|
||||
let key = actual.relations[&trace.sa].target();
|
||||
assert!(!p.contains(key));
|
||||
Some(key)
|
||||
} else {
|
||||
assert_eq!(mode, "reuse");
|
||||
None
|
||||
};
|
||||
forward(&p, mean, created)
|
||||
};
|
||||
let mut expected = if mode == "reverse-behavior" {
|
||||
apply_reverse_behavior(&p, &r)
|
||||
} else {
|
||||
apply(&p, &r)
|
||||
};
|
||||
let mut map = BTreeMap::new();
|
||||
let mut actual_used = BTreeSet::new();
|
||||
for t in expected
|
||||
.traces
|
||||
.values()
|
||||
.filter(|t| !p.traces.contains_key(&t.id))
|
||||
{
|
||||
let source = if r.direction == TransitionDirection::OaToSa {
|
||||
t.oa
|
||||
} else {
|
||||
t.sa
|
||||
};
|
||||
let counterparts: Vec<_> = actual
|
||||
.traces
|
||||
.values()
|
||||
.filter(|a| {
|
||||
if r.direction == TransitionDirection::OaToSa {
|
||||
a.oa == source
|
||||
} else {
|
||||
a.sa == source
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
assert_eq!(
|
||||
counterparts.len(),
|
||||
1,
|
||||
"each explicit source has one counterpart"
|
||||
);
|
||||
let a = counterparts[0];
|
||||
assert!(!p.contains(a.id));
|
||||
assert!(actual_used.insert(a.id));
|
||||
map.insert(t.id, a.id);
|
||||
let (old, new) = if r.direction == TransitionDirection::OaToSa {
|
||||
(t.sa, a.sa)
|
||||
} else {
|
||||
(t.oa, a.oa)
|
||||
};
|
||||
if !p.contains(old) {
|
||||
assert!(!p.contains(new));
|
||||
assert!(actual_used.insert(new));
|
||||
map.insert(old, new);
|
||||
}
|
||||
}
|
||||
// Match fresh presentation identities by exact destination diagram + mapped
|
||||
// element. Every other placement property remains independently expected.
|
||||
let mut placement_count = 0;
|
||||
for (diagram, view) in &expected.diagrams {
|
||||
for node in view.nodes.values().filter(|node| !p.contains(node.id)) {
|
||||
let mapped_element = map.get(&node.element).copied().unwrap_or(node.element);
|
||||
let actual_nodes: Vec<_> = actual
|
||||
.diagrams
|
||||
.get(diagram)
|
||||
.expect("Expected destination diagram remains")
|
||||
.nodes
|
||||
.values()
|
||||
.filter(|n| n.element == mapped_element)
|
||||
.collect();
|
||||
assert_eq!(
|
||||
actual_nodes.len(),
|
||||
1,
|
||||
"Each generated placement must identify its exact diagram and mapped element"
|
||||
);
|
||||
let actual_id = actual_nodes[0].id;
|
||||
assert!(!p.contains(actual_id));
|
||||
assert!(actual_used.insert(actual_id));
|
||||
map.insert(node.id, actual_id);
|
||||
placement_count += 1;
|
||||
}
|
||||
}
|
||||
expected = remap(expected, &map);
|
||||
if matches!(mode, "reverse" | "reverse-behavior") {
|
||||
reverse_assertions(&p, &expected);
|
||||
}
|
||||
assert_eq!(
|
||||
expected, actual,
|
||||
"full model oracle differs after UUID-only normalization"
|
||||
);
|
||||
let updated = source_project::update_bundle(
|
||||
&compiled,
|
||||
&expected,
|
||||
source_project::ProjectLimits::default(),
|
||||
)
|
||||
.unwrap();
|
||||
let mut actual_files = actual_compiled.bundle.files.clone();
|
||||
let actual_entry = actual_files.remove(&actual_compiled.bundle.entry).unwrap();
|
||||
assert!(
|
||||
actual_files
|
||||
.insert(updated.bundle.entry.clone(), actual_entry)
|
||||
.is_none()
|
||||
);
|
||||
assert_eq!(
|
||||
updated.bundle.files, actual_files,
|
||||
"complete exact source bundle differs (only entry filename normalized for Save As)"
|
||||
);
|
||||
fs::create_dir_all(out).unwrap();
|
||||
write_bundle(out, &updated.bundle);
|
||||
fs::write(
|
||||
out.join("expected-native.json"),
|
||||
serde_json::to_vec_pretty(&expected).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
fs::write(
|
||||
out.join("native-request.json"),
|
||||
serde_json::to_vec_pretty(&r).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
println!(
|
||||
"PASS {mode}: complete model and exact source; {} generated UUID substitutions only ({placement_count} placement identities)",
|
||||
map.len()
|
||||
);
|
||||
}
|
||||
fn main() {
|
||||
let args: Vec<_> = std::env::args().collect();
|
||||
match args.get(1).map(String::as_str) {
|
||||
Some("generate") if args.len() == 3 => generate(Path::new(&args[2])),
|
||||
Some("generate-reverse-behavior") if args.len() == 4 => {
|
||||
generate_reverse_behavior(Path::new(&args[2]), Path::new(&args[3]))
|
||||
}
|
||||
Some("check") if args.len() == 6 => check(
|
||||
&args[2],
|
||||
Path::new(&args[3]),
|
||||
Path::new(&args[4]),
|
||||
Path::new(&args[5]),
|
||||
),
|
||||
_ => panic!(
|
||||
"generate DIRECTORY | generate-reverse-behavior BEFORE.arcadia OUTPUT_DIRECTORY | check draw|reuse|create|reverse|reverse-behavior BEFORE.arcadia AFTER.arcadia OUTPUT_DIRECTORY"
|
||||
),
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"algorithm": "SHA256",
|
||||
"files": {
|
||||
"cm-create.after-template/entry.arcadia": "a6976e7c21031e7cc3cb731e20c3075cf89cf85144dc8d3f52930f8521ea196f",
|
||||
"cm-create.after-template/expected.json": "60c4419415c546f06c9972ac7bb0e530ada7b30a200b59e75ddda231a24f9a3d",
|
||||
"cm-create.after-template/traceability.arcadia": "3c41459f2b0706a767988738bf8126f76540415bb5940d9c5db19cbe8c18182d",
|
||||
"cm-create.request.json": "b16e673b29c96b5aed681389ff7669110abe552939e86dd0ec6011c9a45ed860",
|
||||
"cm-draw.arcadia": "a511a4d817d9c5c80233bce83e84a7056b7dce7afd9fcc25696e333f8f4df055",
|
||||
"cm-draw.json": "7140114926228b1c378c450535f7a70992c71a879a8d2270c49e8d5f04a2f484",
|
||||
"cm-reuse.after-template/entry.arcadia": "910e6dfe609467047ce629ec9c626f4e927cada74bfbfa164414a8fe6783ea87",
|
||||
"cm-reuse.after-template/expected.json": "567259e20c9f6278776e8fa99b8b2fdbbc9a883ad875c5d39dae1b53de3a2924",
|
||||
"cm-reuse.after-template/traceability.arcadia": "997f72fe9258012df66e88344cf39c1a2cebf2327f604056b67f7f2a8ebcfbfa",
|
||||
"cm-reuse.request.json": "cb3fe05859cfffec6f8846c19983dc462413bc0ea4f6e19204f09c259919c4b1",
|
||||
"cm-reverse-behavior.after-template/cm-reverse-scenario.arcadia": "ec826b9b84616507490ac30e4d57100dd6338dba2f7071e879a8fb58820a85c5",
|
||||
"cm-reverse-behavior.after-template/expected.json": "ef07e4d2d3fc36004ff01739838281581d9a703c747611eacc01bb9cc672489f",
|
||||
"cm-reverse-behavior.after-template/oa/behavior/scenario_oa_cm_200.arcadia": "0ec8d7e38f5a5cd56ccf3979757b3a9f412ad0ae36ee6c2690b7872129046d70",
|
||||
"cm-reverse-behavior.after-template/request.json": "c0ac99ee186d126fe3ec57f2c0a4072984d39d36ad21ead357ab66a08ac0065c",
|
||||
"cm-reverse-behavior.after-template/traceability.arcadia": "dd5d356390089e4ec474374956f6219502733987e60ef8ff32920d8b33dce858",
|
||||
"cm-reverse-scenario.after-template/entry.arcadia": "86dd8a355f6c9dadfea56d06e5247c9b0f820819d7df17ef5690671c7c81324b",
|
||||
"cm-reverse-scenario.after-template/expected.json": "980489ec2c483d4f9efada61358c1f29bafb2572fd5b804c656b91b8e9bb4f9a",
|
||||
"cm-reverse-scenario.after-template/oa/behavior/scenario_oa_cm_200.arcadia": "0ec8d7e38f5a5cd56ccf3979757b3a9f412ad0ae36ee6c2690b7872129046d70",
|
||||
"cm-reverse-scenario.after-template/traceability.arcadia": "dd5d356390089e4ec474374956f6219502733987e60ef8ff32920d8b33dce858",
|
||||
"cm-reverse-scenario.arcadia": "1abc4c4cac37cfb06ed3b12a115f9e7e6a2d3affd34b25c355309e5ee465fa40",
|
||||
"cm-reverse-scenario.json": "a5cf4cb2ef390113dd752f4054d43fb789da2ca77799efb5782805ae8aa2dfd5",
|
||||
"cm-reverse-scenario.request.json": "c0ac99ee186d126fe3ec57f2c0a4072984d39d36ad21ead357ab66a08ac0065c",
|
||||
"cm-transition-ready.arcadia": "b761c4c2af5f7064aaf1f887ffd6094eb6ae834b2c8057ecdbc4aa97c042066b",
|
||||
"cm-transition-ready.json": "2536b000de361fb131787e32b466b9123d4e98abf00c099ad32f6cb8e7fb530b",
|
||||
"generate-communication-means.rs": "003521404b702332082e01f2be7676fda1dd7b5bcf220bb81d25120c8984c75d",
|
||||
"manifest.json": "fb921f42f2c4a4f8a67d1266f17f8c7750b6a2619554b713aa92b17918f0c43e",
|
||||
"README.md": "015c16010c212af283f9def118c6d263ba65a3bc6e81a750f180624ca69bb311"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"correlated_reply": "c6060906-0000-4000-8000-0000000000cc",
|
||||
"draw_diagram": "c6060906-0000-4000-8000-0000000003e8",
|
||||
"existing_ports": [
|
||||
"c6060906-0000-4000-8000-000000000020",
|
||||
"c6060906-0000-4000-8000-000000000021"
|
||||
],
|
||||
"interaction": "c6060906-0000-4000-8000-000000000016",
|
||||
"native_status": "pending",
|
||||
"oa_activities": [
|
||||
"c6060906-0000-4000-8000-00000000000c",
|
||||
"c6060906-0000-4000-8000-00000000000d"
|
||||
],
|
||||
"oa_participants": [
|
||||
"c6060906-0000-4000-8000-00000000000a",
|
||||
"c6060906-0000-4000-8000-00000000000b"
|
||||
],
|
||||
"participant_traces": [
|
||||
"c6060906-0000-4000-8000-000000000028",
|
||||
"c6060906-0000-4000-8000-000000000029"
|
||||
],
|
||||
"project": "c6060906-0000-4000-8000-000000000001",
|
||||
"reverse_call": "c6060906-0000-4000-8000-0000000000cb",
|
||||
"reverse_scenario": "c6060906-0000-4000-8000-0000000000c8",
|
||||
"sa_participants": [
|
||||
"c6060906-0000-4000-8000-00000000001e",
|
||||
"c6060906-0000-4000-8000-00000000001f"
|
||||
],
|
||||
"schema": 6,
|
||||
"system_diagram": "c6060906-0000-4000-8000-00000000044c",
|
||||
"template_mean": "c6060906-0000-4000-8000-000000000032",
|
||||
"templates": "Generated target/trace UUIDs are reference examples, not native exact expectations. Use check with native before/after sources."
|
||||
}
|
||||
@@ -0,0 +1,954 @@
|
||||
{
|
||||
"cases": {
|
||||
"all": {
|
||||
"count": 40,
|
||||
"edges": [
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007db",
|
||||
"d4060906-0000-4000-8000-0000000007dc",
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007de",
|
||||
"d4060906-0000-4000-8000-0000000007df",
|
||||
"d4060906-0000-4000-8000-0000000007e0",
|
||||
"d4060906-0000-4000-8000-0000000007e1",
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007e3",
|
||||
"d4060906-0000-4000-8000-0000000007e4",
|
||||
"d4060906-0000-4000-8000-0000000007e5",
|
||||
"d4060906-0000-4000-8000-0000000007e6",
|
||||
"d4060906-0000-4000-8000-0000000007e7",
|
||||
"d4060906-0000-4000-8000-0000000007e8",
|
||||
"d4060906-0000-4000-8000-0000000007e9",
|
||||
"d4060906-0000-4000-8000-0000000007ea",
|
||||
"d4060906-0000-4000-8000-0000000007eb",
|
||||
"d4060906-0000-4000-8000-0000000007ec",
|
||||
"d4060906-0000-4000-8000-0000000007ed",
|
||||
"d4060906-0000-4000-8000-0000000007ee",
|
||||
"d4060906-0000-4000-8000-0000000007ef",
|
||||
"d4060906-0000-4000-8000-0000000007f0",
|
||||
"d4060906-0000-4000-8000-0000000007f1",
|
||||
"d4060906-0000-4000-8000-0000000007f2",
|
||||
"d4060906-0000-4000-8000-0000000007f3",
|
||||
"d4060906-0000-4000-8000-0000000007f4",
|
||||
"d4060906-0000-4000-8000-0000000007f5",
|
||||
"d4060906-0000-4000-8000-0000000007f6",
|
||||
"d4060906-0000-4000-8000-0000000007f7"
|
||||
]
|
||||
},
|
||||
"empty_categories": {
|
||||
"count": 0,
|
||||
"edges": []
|
||||
},
|
||||
"empty_contexts": {
|
||||
"count": 0,
|
||||
"edges": []
|
||||
},
|
||||
"first_and_overlap": {
|
||||
"count": 13,
|
||||
"edges": [
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007e4",
|
||||
"d4060906-0000-4000-8000-0000000007ee"
|
||||
]
|
||||
},
|
||||
"first_category": {
|
||||
"count": 10,
|
||||
"edges": [
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007d9"
|
||||
]
|
||||
},
|
||||
"first_hide_05": {
|
||||
"count": 9,
|
||||
"edges": [
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007d9"
|
||||
]
|
||||
},
|
||||
"in_behavior": {
|
||||
"count": 30,
|
||||
"edges": [
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007db",
|
||||
"d4060906-0000-4000-8000-0000000007dc",
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007de",
|
||||
"d4060906-0000-4000-8000-0000000007df",
|
||||
"d4060906-0000-4000-8000-0000000007e0",
|
||||
"d4060906-0000-4000-8000-0000000007e1",
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007e3",
|
||||
"d4060906-0000-4000-8000-0000000007e4",
|
||||
"d4060906-0000-4000-8000-0000000007e5",
|
||||
"d4060906-0000-4000-8000-0000000007e6",
|
||||
"d4060906-0000-4000-8000-0000000007e7",
|
||||
"d4060906-0000-4000-8000-0000000007e8",
|
||||
"d4060906-0000-4000-8000-0000000007e9",
|
||||
"d4060906-0000-4000-8000-0000000007ea",
|
||||
"d4060906-0000-4000-8000-0000000007eb",
|
||||
"d4060906-0000-4000-8000-0000000007ec",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
]
|
||||
},
|
||||
"no_lines": {
|
||||
"count": 0,
|
||||
"edges": []
|
||||
},
|
||||
"outside_behavior": {
|
||||
"count": 10,
|
||||
"edges": [
|
||||
"d4060906-0000-4000-8000-0000000007ee",
|
||||
"d4060906-0000-4000-8000-0000000007ef",
|
||||
"d4060906-0000-4000-8000-0000000007f0",
|
||||
"d4060906-0000-4000-8000-0000000007f1",
|
||||
"d4060906-0000-4000-8000-0000000007f2",
|
||||
"d4060906-0000-4000-8000-0000000007f3",
|
||||
"d4060906-0000-4000-8000-0000000007f4",
|
||||
"d4060906-0000-4000-8000-0000000007f5",
|
||||
"d4060906-0000-4000-8000-0000000007f6",
|
||||
"d4060906-0000-4000-8000-0000000007f7"
|
||||
]
|
||||
},
|
||||
"outside_second_process": {
|
||||
"count": 0,
|
||||
"edges": []
|
||||
},
|
||||
"second_process": {
|
||||
"count": 10,
|
||||
"edges": [
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007db",
|
||||
"d4060906-0000-4000-8000-0000000007dc",
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007de",
|
||||
"d4060906-0000-4000-8000-0000000007df",
|
||||
"d4060906-0000-4000-8000-0000000007e0",
|
||||
"d4060906-0000-4000-8000-0000000007e1",
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007e3"
|
||||
]
|
||||
}
|
||||
},
|
||||
"diagram": "d4060906-0000-4000-8000-000000000fa0",
|
||||
"elements": 46,
|
||||
"exactly_coincident_path_pairs": [
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d1"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007d7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007da"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007dd"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d0",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007d7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007da"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007dd"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d1",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007d7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007da"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007dd"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d2",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007d4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007d7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007da"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007dd"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d3",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007d7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007da"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007dd"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d4",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007db"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007e0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007e6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007eb"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d5",
|
||||
"d4060906-0000-4000-8000-0000000007f6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007dc"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007e1"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007e7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007ec"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d6",
|
||||
"d4060906-0000-4000-8000-0000000007f7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007da"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007dd"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d7",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007de"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007e3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007e8"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007ee"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d8",
|
||||
"d4060906-0000-4000-8000-0000000007f3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007df"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007e4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007e9"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007ef"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007d9",
|
||||
"d4060906-0000-4000-8000-0000000007f4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007dd"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007da",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007db",
|
||||
"d4060906-0000-4000-8000-0000000007e0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007db",
|
||||
"d4060906-0000-4000-8000-0000000007e6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007db",
|
||||
"d4060906-0000-4000-8000-0000000007eb"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007db",
|
||||
"d4060906-0000-4000-8000-0000000007f6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dc",
|
||||
"d4060906-0000-4000-8000-0000000007e1"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dc",
|
||||
"d4060906-0000-4000-8000-0000000007e7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dc",
|
||||
"d4060906-0000-4000-8000-0000000007ec"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dc",
|
||||
"d4060906-0000-4000-8000-0000000007f7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007e2"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007dd",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007de",
|
||||
"d4060906-0000-4000-8000-0000000007e3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007de",
|
||||
"d4060906-0000-4000-8000-0000000007e8"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007de",
|
||||
"d4060906-0000-4000-8000-0000000007ee"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007de",
|
||||
"d4060906-0000-4000-8000-0000000007f3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007df",
|
||||
"d4060906-0000-4000-8000-0000000007e4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007df",
|
||||
"d4060906-0000-4000-8000-0000000007e9"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007df",
|
||||
"d4060906-0000-4000-8000-0000000007ef"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007df",
|
||||
"d4060906-0000-4000-8000-0000000007f4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e0",
|
||||
"d4060906-0000-4000-8000-0000000007e6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e0",
|
||||
"d4060906-0000-4000-8000-0000000007eb"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e0",
|
||||
"d4060906-0000-4000-8000-0000000007f6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e1",
|
||||
"d4060906-0000-4000-8000-0000000007e7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e1",
|
||||
"d4060906-0000-4000-8000-0000000007ec"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e1",
|
||||
"d4060906-0000-4000-8000-0000000007f7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007e5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e2",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e3",
|
||||
"d4060906-0000-4000-8000-0000000007e8"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e3",
|
||||
"d4060906-0000-4000-8000-0000000007ee"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e3",
|
||||
"d4060906-0000-4000-8000-0000000007f3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e4",
|
||||
"d4060906-0000-4000-8000-0000000007e9"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e4",
|
||||
"d4060906-0000-4000-8000-0000000007ef"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e4",
|
||||
"d4060906-0000-4000-8000-0000000007f4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e5",
|
||||
"d4060906-0000-4000-8000-0000000007ea"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e5",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e5",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e5",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e6",
|
||||
"d4060906-0000-4000-8000-0000000007eb"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e6",
|
||||
"d4060906-0000-4000-8000-0000000007f6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e7",
|
||||
"d4060906-0000-4000-8000-0000000007ec"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e7",
|
||||
"d4060906-0000-4000-8000-0000000007f7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e8",
|
||||
"d4060906-0000-4000-8000-0000000007ee"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e8",
|
||||
"d4060906-0000-4000-8000-0000000007f3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e9",
|
||||
"d4060906-0000-4000-8000-0000000007ef"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007e9",
|
||||
"d4060906-0000-4000-8000-0000000007f4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ea",
|
||||
"d4060906-0000-4000-8000-0000000007ed"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ea",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ea",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007eb",
|
||||
"d4060906-0000-4000-8000-0000000007f6"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ec",
|
||||
"d4060906-0000-4000-8000-0000000007f7"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ed",
|
||||
"d4060906-0000-4000-8000-0000000007f0"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ed",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ee",
|
||||
"d4060906-0000-4000-8000-0000000007f3"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007ef",
|
||||
"d4060906-0000-4000-8000-0000000007f4"
|
||||
],
|
||||
[
|
||||
"d4060906-0000-4000-8000-0000000007f0",
|
||||
"d4060906-0000-4000-8000-0000000007f5"
|
||||
]
|
||||
],
|
||||
"label_overlap_pairs": [],
|
||||
"native_readability": "pending; metrics do not establish a usability pass",
|
||||
"project": "d4060906-0000-4000-8000-000000000001",
|
||||
"relations": 42,
|
||||
"routing_ms": 16,
|
||||
"routing_warnings": [
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d0",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d1",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d2",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d3",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d4",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d5",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d6",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d7",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d8",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007d9",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007da",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007db",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007dc",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007dd",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007de",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007df",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e0",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e1",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e2",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e3",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e4",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e5",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e6",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e7",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e8",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007e9",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007ea",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007eb",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007ec",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007ed",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007ee",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007ef",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f0",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f1",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f2",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f3",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f4",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f5",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f6",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"edge": "d4060906-0000-4000-8000-0000000007f7",
|
||||
"warnings": []
|
||||
}
|
||||
],
|
||||
"schema": 6,
|
||||
"semantic_oracles": "passed"
|
||||
}
|
||||
@@ -0,0 +1,956 @@
|
||||
arcadia 6;
|
||||
project dense_service_views "Forty service exchanges" id "d4060906-0000-4000-8000-000000000001" {
|
||||
description "Deterministic release fixture. Forty actual work exchanges share two endpoints; no authored routes or synthetic endpoints.";
|
||||
|
||||
oa_entity requester "Requester" id "d4060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_entity provider "Provider" id "d4060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity request_service "Request service" id "d4060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity provide_service "Provide service" id "d4060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_exchange_item payload_1 "Commands payload" id "d4060906-0000-4000-8000-000000000064" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Unspecified;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
oa_exchange_item payload_2 "Status payload" id "d4060906-0000-4000-8000-000000000065" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Unspecified;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
oa_exchange_item payload_3 "Alerts payload" id "d4060906-0000-4000-8000-000000000066" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Unspecified;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
oa_exchange_item payload_4 "Measurements payload" id "d4060906-0000-4000-8000-000000000067" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Unspecified;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
oa_exchange_category concern_1 "Commands" id "d4060906-0000-4000-8000-0000000000c8" {
|
||||
description "";
|
||||
exchanges [@service_data_01, @service_data_02, @service_data_03, @service_data_04, @service_data_05, @service_data_06, @service_data_07, @service_data_08, @service_data_09, @service_data_10];
|
||||
family "Work";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_exchange_category concern_2 "Status" id "d4060906-0000-4000-8000-0000000000c9" {
|
||||
description "";
|
||||
exchanges [@service_data_11, @service_data_12, @service_data_13, @service_data_14, @service_data_15, @service_data_16, @service_data_17, @service_data_18, @service_data_19, @service_data_20];
|
||||
family "Work";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_exchange_category concern_3 "Alerts" id "d4060906-0000-4000-8000-0000000000ca" {
|
||||
description "";
|
||||
exchanges [@service_data_21, @service_data_22, @service_data_23, @service_data_24, @service_data_25, @service_data_26, @service_data_27, @service_data_28, @service_data_29, @service_data_30];
|
||||
family "Work";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_exchange_category concern_4 "Measurements" id "d4060906-0000-4000-8000-0000000000cb" {
|
||||
description "";
|
||||
exchanges [@service_data_31, @service_data_32, @service_data_33, @service_data_34, @service_data_35, @service_data_36, @service_data_37, @service_data_38, @service_data_39, @service_data_40];
|
||||
family "Work";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_exchange_category critical_concern "Critical cross-cutting exchanges" id "d4060906-0000-4000-8000-0000000000cc" {
|
||||
description "";
|
||||
exchanges [@service_data_01, @service_data_11, @service_data_21, @service_data_31];
|
||||
family "Work";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_process process_1 "Commands process" id "d4060906-0000-4000-8000-00000000012c" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@use_data_01, @use_data_02, @use_data_03, @use_data_04, @use_data_05, @use_data_06, @use_data_07, @use_data_08, @use_data_09, @use_data_10];
|
||||
}
|
||||
|
||||
oa_process process_2 "Status process" id "d4060906-0000-4000-8000-00000000012d" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@use_data_11, @use_data_12, @use_data_13, @use_data_14, @use_data_15, @use_data_16, @use_data_17, @use_data_18, @use_data_19, @use_data_20];
|
||||
}
|
||||
|
||||
oa_process process_3 "Alerts process" id "d4060906-0000-4000-8000-00000000012e" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@use_data_21, @use_data_22, @use_data_23, @use_data_24, @use_data_25, @use_data_26, @use_data_27, @use_data_28, @use_data_29, @use_data_30];
|
||||
}
|
||||
|
||||
oa_occurrence use_data_01 "Use service data 01" id "d4060906-0000-4000-8000-0000000003e8" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_01;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_02 "Use service data 02" id "d4060906-0000-4000-8000-0000000003e9" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_02;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_03 "Use service data 03" id "d4060906-0000-4000-8000-0000000003ea" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_03;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_04 "Use service data 04" id "d4060906-0000-4000-8000-0000000003eb" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_04;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_05 "Use service data 05" id "d4060906-0000-4000-8000-0000000003ec" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_05;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_06 "Use service data 06" id "d4060906-0000-4000-8000-0000000003ed" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_06;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_07 "Use service data 07" id "d4060906-0000-4000-8000-0000000003ee" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_07;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_08 "Use service data 08" id "d4060906-0000-4000-8000-0000000003ef" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_08;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_09 "Use service data 09" id "d4060906-0000-4000-8000-0000000003f0" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_09;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_10 "Use service data 10" id "d4060906-0000-4000-8000-0000000003f1" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_10;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_1;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_11 "Use service data 11" id "d4060906-0000-4000-8000-0000000003f2" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_11;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_12 "Use service data 12" id "d4060906-0000-4000-8000-0000000003f3" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_12;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_13 "Use service data 13" id "d4060906-0000-4000-8000-0000000003f4" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_13;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_14 "Use service data 14" id "d4060906-0000-4000-8000-0000000003f5" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_14;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_15 "Use service data 15" id "d4060906-0000-4000-8000-0000000003f6" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_15;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_16 "Use service data 16" id "d4060906-0000-4000-8000-0000000003f7" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_16;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_17 "Use service data 17" id "d4060906-0000-4000-8000-0000000003f8" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_17;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_18 "Use service data 18" id "d4060906-0000-4000-8000-0000000003f9" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_18;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_19 "Use service data 19" id "d4060906-0000-4000-8000-0000000003fa" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_19;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_20 "Use service data 20" id "d4060906-0000-4000-8000-0000000003fb" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_20;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_2;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_21 "Use service data 21" id "d4060906-0000-4000-8000-0000000003fc" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_21;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_22 "Use service data 22" id "d4060906-0000-4000-8000-0000000003fd" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_22;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_23 "Use service data 23" id "d4060906-0000-4000-8000-0000000003fe" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_23;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_24 "Use service data 24" id "d4060906-0000-4000-8000-0000000003ff" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_24;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_25 "Use service data 25" id "d4060906-0000-4000-8000-000000000400" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_25;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_26 "Use service data 26" id "d4060906-0000-4000-8000-000000000401" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_26;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_27 "Use service data 27" id "d4060906-0000-4000-8000-000000000402" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_27;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_28 "Use service data 28" id "d4060906-0000-4000-8000-000000000403" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_28;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_29 "Use service data 29" id "d4060906-0000-4000-8000-000000000404" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_29;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence use_data_30 "Use service data 30" id "d4060906-0000-4000-8000-000000000405" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @service_data_30;
|
||||
message_kind Asynchronous;
|
||||
receiver none;
|
||||
reply_to none;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @process_3;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
interaction service_data_01 "Service data 01" id "d4060906-0000-4000-8000-0000000007d0" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_02 "Service data 02" id "d4060906-0000-4000-8000-0000000007d1" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_03 "Service data 03" id "d4060906-0000-4000-8000-0000000007d2" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_04 "Service data 04" id "d4060906-0000-4000-8000-0000000007d3" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_05 "Service data 05" id "d4060906-0000-4000-8000-0000000007d4" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_06 "Service data 06" id "d4060906-0000-4000-8000-0000000007d5" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_07 "Service data 07" id "d4060906-0000-4000-8000-0000000007d6" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_08 "Service data 08" id "d4060906-0000-4000-8000-0000000007d7" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_09 "Service data 09" id "d4060906-0000-4000-8000-0000000007d8" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_10 "Service data 10" id "d4060906-0000-4000-8000-0000000007d9" {
|
||||
description "";
|
||||
items [@payload_1];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_11 "Service data 11" id "d4060906-0000-4000-8000-0000000007da" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_12 "Service data 12" id "d4060906-0000-4000-8000-0000000007db" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_13 "Service data 13" id "d4060906-0000-4000-8000-0000000007dc" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_14 "Service data 14" id "d4060906-0000-4000-8000-0000000007dd" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_15 "Service data 15" id "d4060906-0000-4000-8000-0000000007de" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_16 "Service data 16" id "d4060906-0000-4000-8000-0000000007df" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_17 "Service data 17" id "d4060906-0000-4000-8000-0000000007e0" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_18 "Service data 18" id "d4060906-0000-4000-8000-0000000007e1" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_19 "Service data 19" id "d4060906-0000-4000-8000-0000000007e2" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_20 "Service data 20" id "d4060906-0000-4000-8000-0000000007e3" {
|
||||
description "";
|
||||
items [@payload_2];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_21 "Service data 21" id "d4060906-0000-4000-8000-0000000007e4" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_22 "Service data 22" id "d4060906-0000-4000-8000-0000000007e5" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_23 "Service data 23" id "d4060906-0000-4000-8000-0000000007e6" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_24 "Service data 24" id "d4060906-0000-4000-8000-0000000007e7" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_25 "Service data 25" id "d4060906-0000-4000-8000-0000000007e8" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_26 "Service data 26" id "d4060906-0000-4000-8000-0000000007e9" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_27 "Service data 27" id "d4060906-0000-4000-8000-0000000007ea" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_28 "Service data 28" id "d4060906-0000-4000-8000-0000000007eb" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_29 "Service data 29" id "d4060906-0000-4000-8000-0000000007ec" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_30 "Service data 30" id "d4060906-0000-4000-8000-0000000007ed" {
|
||||
description "";
|
||||
items [@payload_3];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_31 "Service data 31" id "d4060906-0000-4000-8000-0000000007ee" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_32 "Service data 32" id "d4060906-0000-4000-8000-0000000007ef" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_33 "Service data 33" id "d4060906-0000-4000-8000-0000000007f0" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_34 "Service data 34" id "d4060906-0000-4000-8000-0000000007f1" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_35 "Service data 35" id "d4060906-0000-4000-8000-0000000007f2" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_36 "Service data 36" id "d4060906-0000-4000-8000-0000000007f3" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_37 "Service data 37" id "d4060906-0000-4000-8000-0000000007f4" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_38 "Service data 38" id "d4060906-0000-4000-8000-0000000007f5" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_39 "Service data 39" id "d4060906-0000-4000-8000-0000000007f6" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
interaction service_data_40 "Service data 40" id "d4060906-0000-4000-8000-0000000007f7" {
|
||||
description "";
|
||||
items [@payload_4];
|
||||
source @request_service;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
allocation requester_work "Requester responsibility" id "d4060906-0000-4000-8000-000000000bb8" {
|
||||
description "";
|
||||
source @requester;
|
||||
target @request_service;
|
||||
}
|
||||
|
||||
allocation provider_work "Provider responsibility" id "d4060906-0000-4000-8000-000000000bb9" {
|
||||
description "";
|
||||
source @provider;
|
||||
target @provide_service;
|
||||
}
|
||||
|
||||
diagram forty_exchange_view "Forty service exchanges · all concerns" id "d4060906-0000-4000-8000-000000000fa0" {
|
||||
description "Start with All. Compare first category, overlapping concerns, global coverage and chosen processes. No hand-routed edges.";
|
||||
layer Oa;
|
||||
projection FunctionalDataflow;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node service_placement_1 id "d4060906-0000-4000-8000-000000001004" {
|
||||
collapsed false;
|
||||
diagram @forty_exchange_view;
|
||||
element @request_service;
|
||||
position {
|
||||
x 80.0;
|
||||
y 160.0;
|
||||
};
|
||||
size {
|
||||
height 150.0;
|
||||
width 230.0;
|
||||
};
|
||||
}
|
||||
|
||||
node service_placement_2 id "d4060906-0000-4000-8000-000000001005" {
|
||||
collapsed false;
|
||||
diagram @forty_exchange_view;
|
||||
element @provide_service;
|
||||
position {
|
||||
x 760.0;
|
||||
y 160.0;
|
||||
};
|
||||
size {
|
||||
height 150.0;
|
||||
width 230.0;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,11 @@
|
||||
# Semantic attachments native fixture
|
||||
|
||||
Use a working copy of `semantic-attachments.arcadia`; preserve the supplied original and `.after.arcadia/.after.json` oracles. The generator prepared the final result with the current built core, and reparsed both source documents. Twelve elements, two relationships, four pre-existing traces, two final candidates, two owner reviews, no additional impacts.
|
||||
|
||||
1. Open **Startup ownership rationale**, then Review semantics. In Attachments select **Owned children**, choose **OA Verify interlock** and **SA Verify interlock**, then **Use exact attachment pair**. Choose **Set final value** and set destination Parent to **SA Safety coordination**. This moves only the SA child.
|
||||
2. In the batch trace picker open **Navigation endpoint rationale**. In Attachments select **Relationships at source**, choose **OA Request response association** and **SA Request response association**, then **Use exact attachment pair**. Choose **Set final value**, then choose final Source **SA Validated navigation request**. Leave the relationship Target untouched.
|
||||
3. The combined preview should contain two decisions/two actual candidate records, with both owner rows included. Apply once. The resulting accepted project must equal `semantic-attachments.after.json`; source must equal `semantic-attachments.after.arcadia` including the leading comment. Undo once restores exact original model/source/history; Redo once restores the exact after state.
|
||||
4. Before Apply, optionally open **Interlock direct parent rationale**, review Header Parent with **Keep target**. This must conflict with the ownership Candidate. Exclude the direct row to retain its decision and restore valid preview. Likewise **Association direct endpoint rationale**, Relation Source Keep, conflicts with the owner Incident Candidate; exclude it before comparing final oracle.
|
||||
5. Candidate editors must name the actual destination record. Check Properties, Attachments, Reference pairs, exact History and all right-edge actions at 1100x700 and 1440x900. Switch rows and family repeatedly; authored drafts must remain independent. Checkpoint recovery must preserve inclusion, invalid raw input when present, mappings and decisions, and must name existing selected traces correctly.
|
||||
|
||||
The supplied after oracle includes only the two Candidate decisions in steps1/2. Optional conflict rows must be excluded, and their mere opening/reference mapping must not create extra accepted histories. Artifacts and missing-record creation are outside this fixture. A separate FunctionalExchange port-impact acceptance fixture is still needed.
|
||||
@@ -0,0 +1,223 @@
|
||||
// Preserve the allocation and endpoint rationale verbatim
|
||||
arcadia 6;
|
||||
project mission "Explicit child allocation and association endpoint review" id "c2e362bc-b4b4-4101-a98c-451c01fcb221" {
|
||||
description "";
|
||||
|
||||
oa_data_type oa_navigation_request "OA Navigation request" id "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_data_type oa_validated_navigation_request "OA Validated navigation request" id "2055bb7c-923d-4cac-99e8-abb493b6fcea" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "20a682b5-0384-4692-bd4f-8039a5fef194" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_data_type sa_validated_navigation_request "SA Validated navigation request" id "2d9d56f4-106f-4324-81ee-0177b4415d41" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
sa_data_type sa_route_response "SA Route response" id "737e07b8-ffe3-4fff-9fb0-ec8d0eaec455" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_data_type oa_route_response "OA Route response" id "7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_activity oa_verify_interlock "OA Verify interlock" id "7f883080-856b-4494-a251-98ff90202de1" {
|
||||
description "";
|
||||
parent @oa_startup_coordination;
|
||||
}
|
||||
|
||||
sa_data_type sa_navigation_request "SA Navigation request" id "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "c552a009-04b1-4cb2-95f9-c1aad0bf49b9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "c8fbca56-14c7-40d7-a45b-29ef0291cb61" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "f4b1eb8d-1c6d-4824-959c-50b8e9f70638" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_verify_interlock "SA Verify interlock" id "fcc2dadb-1f39-406f-b001-51d0ae9a69f6" {
|
||||
description "";
|
||||
parent @sa_safety_coordination;
|
||||
}
|
||||
|
||||
data_association oa_request_response_association "OA Request response association" id "7edceeb7-2a73-4698-815e-fb43fa9d5081" {
|
||||
description "";
|
||||
source @oa_navigation_request;
|
||||
source_maximum none;
|
||||
source_minimum 0;
|
||||
source_navigable false;
|
||||
source_role "";
|
||||
target @oa_route_response;
|
||||
target_maximum none;
|
||||
target_minimum 0;
|
||||
target_navigable false;
|
||||
target_role "";
|
||||
}
|
||||
|
||||
data_association sa_request_response_association "SA Request response association" id "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6" {
|
||||
description "";
|
||||
source @sa_validated_navigation_request;
|
||||
source_maximum none;
|
||||
source_minimum 0;
|
||||
source_navigable false;
|
||||
source_role "";
|
||||
target @sa_route_response;
|
||||
target_maximum none;
|
||||
target_minimum 0;
|
||||
target_navigable false;
|
||||
target_role "";
|
||||
}
|
||||
|
||||
trace navigation_endpoint_review "Navigation endpoint rationale" id "7c8604c8-79b1-46cd-bcfd-3177316a2e62" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "OA Navigation request";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "SA Navigation request";
|
||||
};
|
||||
semantic {
|
||||
facets [{
|
||||
Incident {
|
||||
end Source;
|
||||
keys {
|
||||
oa uuid "7edceeb7-2a73-4698-815e-fb43fa9d5081";
|
||||
sa uuid "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6";
|
||||
};
|
||||
review {
|
||||
oa {
|
||||
Value true;
|
||||
};
|
||||
sa {
|
||||
Value false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_navigation_request;
|
||||
sa @sa_navigation_request;
|
||||
}
|
||||
|
||||
trace interlock_direct_review "Interlock direct parent rationale" id "a4dde018-c9b3-4865-a492-a8806be5b885" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_verify_interlock;
|
||||
sa @sa_verify_interlock;
|
||||
}
|
||||
|
||||
trace startup_ownership_review "Startup ownership rationale" id "bb01f0c1-7805-4ce0-bde3-4a690ece6105" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "OA Startup coordination";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "SA Startup coordination";
|
||||
};
|
||||
semantic {
|
||||
facets [{
|
||||
Child {
|
||||
keys {
|
||||
oa uuid "7f883080-856b-4494-a251-98ff90202de1";
|
||||
sa uuid "fcc2dadb-1f39-406f-b001-51d0ae9a69f6";
|
||||
};
|
||||
review {
|
||||
oa {
|
||||
Value true;
|
||||
};
|
||||
sa {
|
||||
Value false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
trace association_direct_review "Association direct endpoint rationale" id "e6cb8b03-36df-4df7-ae7e-7fe9463ab23b" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_request_response_association;
|
||||
sa @sa_request_response_association;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,346 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c2e362bc-b4b4-4101-a98c-451c01fcb221",
|
||||
"alias": "mission",
|
||||
"name": "Explicit child allocation and association endpoint review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc": {
|
||||
"id": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"alias": "oa_navigation_request",
|
||||
"name": "OA Navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"2055bb7c-923d-4cac-99e8-abb493b6fcea": {
|
||||
"id": "2055bb7c-923d-4cac-99e8-abb493b6fcea",
|
||||
"alias": "oa_validated_navigation_request",
|
||||
"name": "OA Validated navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"20a682b5-0384-4692-bd4f-8039a5fef194": {
|
||||
"id": "20a682b5-0384-4692-bd4f-8039a5fef194",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"2d9d56f4-106f-4324-81ee-0177b4415d41": {
|
||||
"id": "2d9d56f4-106f-4324-81ee-0177b4415d41",
|
||||
"alias": "sa_validated_navigation_request",
|
||||
"name": "SA Validated navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"737e07b8-ffe3-4fff-9fb0-ec8d0eaec455": {
|
||||
"id": "737e07b8-ffe3-4fff-9fb0-ec8d0eaec455",
|
||||
"alias": "sa_route_response",
|
||||
"name": "SA Route response",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16": {
|
||||
"id": "7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16",
|
||||
"alias": "oa_route_response",
|
||||
"name": "OA Route response",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"7f883080-856b-4494-a251-98ff90202de1": {
|
||||
"id": "7f883080-856b-4494-a251-98ff90202de1",
|
||||
"alias": "oa_verify_interlock",
|
||||
"name": "OA Verify interlock",
|
||||
"description": "",
|
||||
"parent": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805": {
|
||||
"id": "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805",
|
||||
"alias": "sa_navigation_request",
|
||||
"name": "SA Navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c552a009-04b1-4cb2-95f9-c1aad0bf49b9": {
|
||||
"id": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c8fbca56-14c7-40d7-a45b-29ef0291cb61": {
|
||||
"id": "c8fbca56-14c7-40d7-a45b-29ef0291cb61",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"f4b1eb8d-1c6d-4824-959c-50b8e9f70638": {
|
||||
"id": "f4b1eb8d-1c6d-4824-959c-50b8e9f70638",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"fcc2dadb-1f39-406f-b001-51d0ae9a69f6": {
|
||||
"id": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6",
|
||||
"alias": "sa_verify_interlock",
|
||||
"name": "SA Verify interlock",
|
||||
"description": "",
|
||||
"parent": "f4b1eb8d-1c6d-4824-959c-50b8e9f70638",
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"7edceeb7-2a73-4698-815e-fb43fa9d5081": {
|
||||
"id": "7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"alias": "oa_request_response_association",
|
||||
"name": "OA Request response association",
|
||||
"description": "",
|
||||
"body": {
|
||||
"DataAssociation": {
|
||||
"source": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"target": "7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16",
|
||||
"source_role": "",
|
||||
"target_role": "",
|
||||
"source_minimum": 0,
|
||||
"source_maximum": null,
|
||||
"target_minimum": 0,
|
||||
"target_maximum": null,
|
||||
"source_navigable": false,
|
||||
"target_navigable": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6": {
|
||||
"id": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6",
|
||||
"alias": "sa_request_response_association",
|
||||
"name": "SA Request response association",
|
||||
"description": "",
|
||||
"body": {
|
||||
"DataAssociation": {
|
||||
"source": "2d9d56f4-106f-4324-81ee-0177b4415d41",
|
||||
"target": "737e07b8-ffe3-4fff-9fb0-ec8d0eaec455",
|
||||
"source_role": "",
|
||||
"target_role": "",
|
||||
"source_minimum": 0,
|
||||
"source_maximum": null,
|
||||
"target_minimum": 0,
|
||||
"target_maximum": null,
|
||||
"source_navigable": false,
|
||||
"target_navigable": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"7c8604c8-79b1-46cd-bcfd-3177316a2e62": {
|
||||
"id": "7c8604c8-79b1-46cd-bcfd-3177316a2e62",
|
||||
"alias": "navigation_endpoint_review",
|
||||
"name": "Navigation endpoint rationale",
|
||||
"description": "",
|
||||
"oa": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"sa": "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805",
|
||||
"kind": "Manual",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "OA Navigation request",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "SA Navigation request",
|
||||
"description": ""
|
||||
},
|
||||
"semantic": {
|
||||
"facets": [
|
||||
{
|
||||
"Incident": {
|
||||
"keys": {
|
||||
"oa": "7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"sa": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6"
|
||||
},
|
||||
"end": "Source",
|
||||
"review": {
|
||||
"oa": {
|
||||
"Value": true
|
||||
},
|
||||
"sa": {
|
||||
"Value": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"a4dde018-c9b3-4865-a492-a8806be5b885": {
|
||||
"id": "a4dde018-c9b3-4865-a492-a8806be5b885",
|
||||
"alias": "interlock_direct_review",
|
||||
"name": "Interlock direct parent rationale",
|
||||
"description": "",
|
||||
"oa": "7f883080-856b-4494-a251-98ff90202de1",
|
||||
"sa": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
},
|
||||
"bb01f0c1-7805-4ce0-bde3-4a690ece6105": {
|
||||
"id": "bb01f0c1-7805-4ce0-bde3-4a690ece6105",
|
||||
"alias": "startup_ownership_review",
|
||||
"name": "Startup ownership rationale",
|
||||
"description": "",
|
||||
"oa": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"sa": "c8fbca56-14c7-40d7-a45b-29ef0291cb61",
|
||||
"kind": "Manual",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "OA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "SA Startup coordination",
|
||||
"description": ""
|
||||
},
|
||||
"semantic": {
|
||||
"facets": [
|
||||
{
|
||||
"Child": {
|
||||
"keys": {
|
||||
"oa": "7f883080-856b-4494-a251-98ff90202de1",
|
||||
"sa": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6"
|
||||
},
|
||||
"review": {
|
||||
"oa": {
|
||||
"Value": true
|
||||
},
|
||||
"sa": {
|
||||
"Value": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"e6cb8b03-36df-4df7-ae7e-7fe9463ab23b": {
|
||||
"id": "e6cb8b03-36df-4df7-ae7e-7fe9463ab23b",
|
||||
"alias": "association_direct_review",
|
||||
"name": "Association direct endpoint rationale",
|
||||
"description": "",
|
||||
"oa": "7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"sa": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
// Preserve the allocation and endpoint rationale verbatim
|
||||
arcadia 6;
|
||||
project mission "Explicit child allocation and association endpoint review" id "c2e362bc-b4b4-4101-a98c-451c01fcb221" {
|
||||
description "";
|
||||
|
||||
oa_data_type oa_navigation_request "OA Navigation request" id "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_data_type oa_validated_navigation_request "OA Validated navigation request" id "2055bb7c-923d-4cac-99e8-abb493b6fcea" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_activity oa_safety_coordination "OA Safety coordination" id "20a682b5-0384-4692-bd4f-8039a5fef194" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_data_type sa_validated_navigation_request "SA Validated navigation request" id "2d9d56f4-106f-4324-81ee-0177b4415d41" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
sa_data_type sa_route_response "SA Route response" id "737e07b8-ffe3-4fff-9fb0-ec8d0eaec455" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_data_type oa_route_response "OA Route response" id "7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_activity oa_verify_interlock "OA Verify interlock" id "7f883080-856b-4494-a251-98ff90202de1" {
|
||||
description "";
|
||||
parent @oa_startup_coordination;
|
||||
}
|
||||
|
||||
sa_data_type sa_navigation_request "SA Navigation request" id "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805" {
|
||||
default none;
|
||||
definition {
|
||||
Record {
|
||||
supertype none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "";
|
||||
}
|
||||
|
||||
oa_activity oa_startup_coordination "OA Startup coordination" id "c552a009-04b1-4cb2-95f9-c1aad0bf49b9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_startup_coordination "SA Startup coordination" id "c8fbca56-14c7-40d7-a45b-29ef0291cb61" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_safety_coordination "SA Safety coordination" id "f4b1eb8d-1c6d-4824-959c-50b8e9f70638" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_function sa_verify_interlock "SA Verify interlock" id "fcc2dadb-1f39-406f-b001-51d0ae9a69f6" {
|
||||
description "";
|
||||
parent @sa_startup_coordination;
|
||||
}
|
||||
|
||||
data_association oa_request_response_association "OA Request response association" id "7edceeb7-2a73-4698-815e-fb43fa9d5081" {
|
||||
description "";
|
||||
source @oa_navigation_request;
|
||||
source_maximum none;
|
||||
source_minimum 0;
|
||||
source_navigable false;
|
||||
source_role "";
|
||||
target @oa_route_response;
|
||||
target_maximum none;
|
||||
target_minimum 0;
|
||||
target_navigable false;
|
||||
target_role "";
|
||||
}
|
||||
|
||||
data_association sa_request_response_association "SA Request response association" id "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6" {
|
||||
description "";
|
||||
source @sa_navigation_request;
|
||||
source_maximum none;
|
||||
source_minimum 0;
|
||||
source_navigable false;
|
||||
source_role "";
|
||||
target @sa_route_response;
|
||||
target_maximum none;
|
||||
target_minimum 0;
|
||||
target_navigable false;
|
||||
target_role "";
|
||||
}
|
||||
|
||||
trace navigation_endpoint_review "Navigation endpoint rationale" id "7c8604c8-79b1-46cd-bcfd-3177316a2e62" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_navigation_request;
|
||||
sa @sa_navigation_request;
|
||||
}
|
||||
|
||||
trace interlock_direct_review "Interlock direct parent rationale" id "a4dde018-c9b3-4865-a492-a8806be5b885" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_verify_interlock;
|
||||
sa @sa_verify_interlock;
|
||||
}
|
||||
|
||||
trace startup_ownership_review "Startup ownership rationale" id "bb01f0c1-7805-4ce0-bde3-4a690ece6105" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_startup_coordination;
|
||||
sa @sa_startup_coordination;
|
||||
}
|
||||
|
||||
trace association_direct_review "Association direct endpoint rationale" id "e6cb8b03-36df-4df7-ae7e-7fe9463ab23b" {
|
||||
baseline none;
|
||||
description "";
|
||||
kind Manual;
|
||||
oa @oa_request_response_association;
|
||||
sa @sa_request_response_association;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
[
|
||||
{
|
||||
"Algorithm": "SHA256",
|
||||
"Hash": "8740F27BE99624013D9BE876639C0411E1B8C14F0F9A843F43DC71D769EFD79A",
|
||||
"Path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-fixtures\\semantic-attachments.arcadia"
|
||||
},
|
||||
{
|
||||
"Algorithm": "SHA256",
|
||||
"Hash": "9D084DD75A0251D349CC31F9EE98DF58D0BC76859DC3CB1503F242E2F759888A",
|
||||
"Path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-fixtures\\semantic-attachments.after.arcadia"
|
||||
},
|
||||
{
|
||||
"Algorithm": "SHA256",
|
||||
"Hash": "9C188F2890630C7FEEC2BE719A7104AF9690DA7EA836DF18FA78DA3FF2ACFC1B",
|
||||
"Path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-fixtures\\semantic-attachments.json"
|
||||
},
|
||||
{
|
||||
"Algorithm": "SHA256",
|
||||
"Hash": "F09BE41AFD85C18FD52FDF997E9B81C4B7CB2C41E78D167ABCD14CAEA8110333",
|
||||
"Path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-fixtures\\semantic-attachments.after.json"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,287 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "c2e362bc-b4b4-4101-a98c-451c01fcb221",
|
||||
"alias": "mission",
|
||||
"name": "Explicit child allocation and association endpoint review",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc": {
|
||||
"id": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"alias": "oa_navigation_request",
|
||||
"name": "OA Navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"2055bb7c-923d-4cac-99e8-abb493b6fcea": {
|
||||
"id": "2055bb7c-923d-4cac-99e8-abb493b6fcea",
|
||||
"alias": "oa_validated_navigation_request",
|
||||
"name": "OA Validated navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"20a682b5-0384-4692-bd4f-8039a5fef194": {
|
||||
"id": "20a682b5-0384-4692-bd4f-8039a5fef194",
|
||||
"alias": "oa_safety_coordination",
|
||||
"name": "OA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"2d9d56f4-106f-4324-81ee-0177b4415d41": {
|
||||
"id": "2d9d56f4-106f-4324-81ee-0177b4415d41",
|
||||
"alias": "sa_validated_navigation_request",
|
||||
"name": "SA Validated navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"737e07b8-ffe3-4fff-9fb0-ec8d0eaec455": {
|
||||
"id": "737e07b8-ffe3-4fff-9fb0-ec8d0eaec455",
|
||||
"alias": "sa_route_response",
|
||||
"name": "SA Route response",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16": {
|
||||
"id": "7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16",
|
||||
"alias": "oa_route_response",
|
||||
"name": "OA Route response",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"7f883080-856b-4494-a251-98ff90202de1": {
|
||||
"id": "7f883080-856b-4494-a251-98ff90202de1",
|
||||
"alias": "oa_verify_interlock",
|
||||
"name": "OA Verify interlock",
|
||||
"description": "",
|
||||
"parent": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805": {
|
||||
"id": "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805",
|
||||
"alias": "sa_navigation_request",
|
||||
"name": "SA Navigation request",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Record": {
|
||||
"supertype": null
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"c552a009-04b1-4cb2-95f9-c1aad0bf49b9": {
|
||||
"id": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"alias": "oa_startup_coordination",
|
||||
"name": "OA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": "Activity"
|
||||
}
|
||||
},
|
||||
"c8fbca56-14c7-40d7-a45b-29ef0291cb61": {
|
||||
"id": "c8fbca56-14c7-40d7-a45b-29ef0291cb61",
|
||||
"alias": "sa_startup_coordination",
|
||||
"name": "SA Startup coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"f4b1eb8d-1c6d-4824-959c-50b8e9f70638": {
|
||||
"id": "f4b1eb8d-1c6d-4824-959c-50b8e9f70638",
|
||||
"alias": "sa_safety_coordination",
|
||||
"name": "SA Safety coordination",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
},
|
||||
"fcc2dadb-1f39-406f-b001-51d0ae9a69f6": {
|
||||
"id": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6",
|
||||
"alias": "sa_verify_interlock",
|
||||
"name": "SA Verify interlock",
|
||||
"description": "",
|
||||
"parent": "c8fbca56-14c7-40d7-a45b-29ef0291cb61",
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"7edceeb7-2a73-4698-815e-fb43fa9d5081": {
|
||||
"id": "7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"alias": "oa_request_response_association",
|
||||
"name": "OA Request response association",
|
||||
"description": "",
|
||||
"body": {
|
||||
"DataAssociation": {
|
||||
"source": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"target": "7ddaaa50-946f-4ad9-ac82-e3cf60d6ef16",
|
||||
"source_role": "",
|
||||
"target_role": "",
|
||||
"source_minimum": 0,
|
||||
"source_maximum": null,
|
||||
"target_minimum": 0,
|
||||
"target_maximum": null,
|
||||
"source_navigable": false,
|
||||
"target_navigable": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6": {
|
||||
"id": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6",
|
||||
"alias": "sa_request_response_association",
|
||||
"name": "SA Request response association",
|
||||
"description": "",
|
||||
"body": {
|
||||
"DataAssociation": {
|
||||
"source": "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805",
|
||||
"target": "737e07b8-ffe3-4fff-9fb0-ec8d0eaec455",
|
||||
"source_role": "",
|
||||
"target_role": "",
|
||||
"source_minimum": 0,
|
||||
"source_maximum": null,
|
||||
"target_minimum": 0,
|
||||
"target_maximum": null,
|
||||
"source_navigable": false,
|
||||
"target_navigable": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"diagrams": {},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"7c8604c8-79b1-46cd-bcfd-3177316a2e62": {
|
||||
"id": "7c8604c8-79b1-46cd-bcfd-3177316a2e62",
|
||||
"alias": "navigation_endpoint_review",
|
||||
"name": "Navigation endpoint rationale",
|
||||
"description": "",
|
||||
"oa": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"sa": "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
},
|
||||
"a4dde018-c9b3-4865-a492-a8806be5b885": {
|
||||
"id": "a4dde018-c9b3-4865-a492-a8806be5b885",
|
||||
"alias": "interlock_direct_review",
|
||||
"name": "Interlock direct parent rationale",
|
||||
"description": "",
|
||||
"oa": "7f883080-856b-4494-a251-98ff90202de1",
|
||||
"sa": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
},
|
||||
"bb01f0c1-7805-4ce0-bde3-4a690ece6105": {
|
||||
"id": "bb01f0c1-7805-4ce0-bde3-4a690ece6105",
|
||||
"alias": "startup_ownership_review",
|
||||
"name": "Startup ownership rationale",
|
||||
"description": "",
|
||||
"oa": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"sa": "c8fbca56-14c7-40d7-a45b-29ef0291cb61",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
},
|
||||
"e6cb8b03-36df-4df7-ae7e-7fe9463ab23b": {
|
||||
"id": "e6cb8b03-36df-4df7-ae7e-7fe9463ab23b",
|
||||
"alias": "association_direct_review",
|
||||
"name": "Association direct endpoint rationale",
|
||||
"description": "",
|
||||
"oa": "7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"sa": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"candidates": 2,
|
||||
"child_facet": {
|
||||
"Child": {
|
||||
"oa": "7f883080-856b-4494-a251-98ff90202de1",
|
||||
"sa": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6"
|
||||
}
|
||||
},
|
||||
"child_pair": [
|
||||
"7f883080-856b-4494-a251-98ff90202de1",
|
||||
"fcc2dadb-1f39-406f-b001-51d0ae9a69f6"
|
||||
],
|
||||
"child_trace": "a4dde018-c9b3-4865-a492-a8806be5b885",
|
||||
"final_parent": "f4b1eb8d-1c6d-4824-959c-50b8e9f70638",
|
||||
"final_source": "2d9d56f4-106f-4324-81ee-0177b4415d41",
|
||||
"impacts": 0,
|
||||
"incident_facet": {
|
||||
"Incident": {
|
||||
"end": "Source",
|
||||
"keys": {
|
||||
"oa": "7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"sa": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6"
|
||||
}
|
||||
}
|
||||
},
|
||||
"incident_pair": [
|
||||
"7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6"
|
||||
],
|
||||
"owner_trace": "bb01f0c1-7805-4ce0-bde3-4a690ece6105",
|
||||
"project": "c2e362bc-b4b4-4101-a98c-451c01fcb221",
|
||||
"record_trace": "7c8604c8-79b1-46cd-bcfd-3177316a2e62",
|
||||
"relation_trace": "e6cb8b03-36df-4df7-ae7e-7fe9463ab23b",
|
||||
"reviews": 2,
|
||||
"schema": 6
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"transition": {
|
||||
"direction": "OaToSa",
|
||||
"sources": [
|
||||
"c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc"
|
||||
],
|
||||
"scope": "SelectedOnly",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"target": "c8fbca56-14c7-40d7-a45b-29ef0291cb61",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"target": "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [],
|
||||
"resolutions": [],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": []
|
||||
},
|
||||
"traces": {
|
||||
"0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc": "7c8604c8-79b1-46cd-bcfd-3177316a2e62",
|
||||
"c552a009-04b1-4cb2-95f9-c1aad0bf49b9": "bb01f0c1-7805-4ce0-bde3-4a690ece6105"
|
||||
},
|
||||
"references": {
|
||||
"0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc": "85b3f38d-5b88-4ec3-aa7c-1e9fbfdb0805",
|
||||
"7edceeb7-2a73-4698-815e-fb43fa9d5081": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6",
|
||||
"7f883080-856b-4494-a251-98ff90202de1": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6",
|
||||
"c552a009-04b1-4cb2-95f9-c1aad0bf49b9": "c8fbca56-14c7-40d7-a45b-29ef0291cb61"
|
||||
},
|
||||
"reviews": [
|
||||
{
|
||||
"source": "c552a009-04b1-4cb2-95f9-c1aad0bf49b9",
|
||||
"resolutions": [
|
||||
{
|
||||
"facet": {
|
||||
"Child": {
|
||||
"oa": "7f883080-856b-4494-a251-98ff90202de1",
|
||||
"sa": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
}
|
||||
],
|
||||
"reset": []
|
||||
},
|
||||
{
|
||||
"source": "0c5e45b7-cbcd-412a-ae74-f3a7cc6adafc",
|
||||
"resolutions": [
|
||||
{
|
||||
"facet": {
|
||||
"Incident": {
|
||||
"keys": {
|
||||
"oa": "7edceeb7-2a73-4698-815e-fb43fa9d5081",
|
||||
"sa": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6"
|
||||
},
|
||||
"end": "Source"
|
||||
}
|
||||
},
|
||||
"decision": "Candidate"
|
||||
}
|
||||
],
|
||||
"reset": []
|
||||
}
|
||||
],
|
||||
"candidates": [
|
||||
{
|
||||
"Element": {
|
||||
"id": "fcc2dadb-1f39-406f-b001-51d0ae9a69f6",
|
||||
"alias": "sa_verify_interlock",
|
||||
"name": "SA Verify interlock",
|
||||
"description": "",
|
||||
"parent": "f4b1eb8d-1c6d-4824-959c-50b8e9f70638",
|
||||
"body": {
|
||||
"Sa": "Function"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Relation": {
|
||||
"id": "c7a6cb27-52d3-4c42-ad78-abd2aaf4dca6",
|
||||
"alias": "sa_request_response_association",
|
||||
"name": "SA Request response association",
|
||||
"description": "",
|
||||
"body": {
|
||||
"DataAssociation": {
|
||||
"source": "2d9d56f4-106f-4324-81ee-0177b4415d41",
|
||||
"target": "737e07b8-ffe3-4fff-9fb0-ec8d0eaec455",
|
||||
"source_role": "",
|
||||
"target_role": "",
|
||||
"source_minimum": 0,
|
||||
"source_maximum": null,
|
||||
"target_minimum": 0,
|
||||
"target_maximum": null,
|
||||
"source_navigable": false,
|
||||
"target_navigable": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"accepted_impacts": []
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
# Native multi-source semantic fixture
|
||||
|
||||
Validated source6 fixture: `semantic-batch.arcadia` and `.json`. Copy the source to a separate native working location before saving. Initial model: three DataTypes, two traces, no relationships. The first line is an exact source-comment preservation sentinel.
|
||||
|
||||
1. Open the fixture, choose Traceability, select **Normal range rationale**, then **Review semantics**. Normal operation limits maps to Controller admitted range. Select Integer Minimum, choose Set final value, enter `120`. Initial maximum100 makes this single-row proposal invalid; Apply must be disabled.
|
||||
2. In **Choose another trace to add or reopen**, choose **Emergency range rationale**, then **Open row**. There must be two included rows, both targeting Controller admitted range. Select Integer Maximum, choose Set final value and enter `-`. The raw invalid input must remain visible and Apply disabled.
|
||||
3. Optional exclusion/recovery falsifier before final repair: uncheck Include this row, switch to Normal via the retained-row picker and temporarily change minimum to `5`. One included row is now valid. Open the already retained Emergency row again; its `-` must remain and it must remain excluded, while the valid included preview remains available. Checkpoint/recover if exercising workflow recovery. Do not Apply this intermediate state. Return Normal minimum to `120`, reopen Emergency, include it and repair maximum to `150`.
|
||||
4. With Normal minimum120 and Emergency maximum150 included, the single combined preview must become valid although Normal's independent raw group still retains base maximum100. Apply once. The shared target is exactly120..150 degrees; each trace records its own one-bound observation. Both source records stay0..100. One Undo restores all initial model/history/source; one Redo restores the exact after oracle.
|
||||
5. Save/reopen and compare parsed Project with `semantic-batch.after.json`; compare exact saved source with `semantic-batch.after.arcadia`. The after-source file was produced by core `source_project::update_bundle` on the original source, not by reformatting the final Project. Check 1100x700 and1440x900 for retained-row picker, inclusion, property controls, error text and Apply visibility; right-side scrollers have18px gutters.
|
||||
|
||||
Exact trace IDs and target are in `semantic-batch.manifest.json`. `semantic-batch.request.json` is an independently constructed core request with two source reviews, one complete target candidate and zero additional impacts. `semantic-batch.hashes.json` records initial/after golden hashes. No native acceptance is claimed by fixture generation.
|
||||
@@ -0,0 +1,107 @@
|
||||
// Keep this independent engineering explanation verbatim
|
||||
arcadia 6;
|
||||
project mission "Independent controller-limit reviews" id "4f043ea4-04fa-419a-867d-a52836290faa" {
|
||||
description "";
|
||||
|
||||
oa_data_type emergency_operation_limits "Emergency operation limits" id "298094d9-75f3-4299-af3c-5fdfdff5aa0f" {
|
||||
default none;
|
||||
definition {
|
||||
Integer {
|
||||
maximum 100;
|
||||
minimum 0;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "degrees";
|
||||
}
|
||||
|
||||
sa_data_type controller_admitted_range "Controller admitted range" id "5b43cc68-555b-4c9b-823a-660c221514a6" {
|
||||
default none;
|
||||
definition {
|
||||
Integer {
|
||||
maximum 150;
|
||||
minimum 120;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "degrees";
|
||||
}
|
||||
|
||||
oa_data_type normal_operation_limits "Normal operation limits" id "6e7b075b-94a9-43f0-a18b-ee3d60884119" {
|
||||
default none;
|
||||
definition {
|
||||
Integer {
|
||||
maximum 100;
|
||||
minimum 0;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "degrees";
|
||||
}
|
||||
|
||||
trace normal_range_review "Normal range rationale" id "0c923a4f-cbfd-44d0-9e48-203ede7f0b07" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Normal operation limits";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Controller admitted range";
|
||||
};
|
||||
semantic {
|
||||
facets [{
|
||||
Data {
|
||||
IntegerMinimum {
|
||||
oa {
|
||||
Value 0;
|
||||
};
|
||||
sa {
|
||||
Value 120;
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "Independently authored bound decision";
|
||||
kind Manual;
|
||||
oa @normal_operation_limits;
|
||||
sa @controller_admitted_range;
|
||||
}
|
||||
|
||||
trace emergency_range_review "Emergency range rationale" id "431bc20b-3441-4bf4-864b-902388ed9504" {
|
||||
baseline {
|
||||
oa {
|
||||
description "";
|
||||
name "Emergency operation limits";
|
||||
};
|
||||
sa {
|
||||
description "";
|
||||
name "Controller admitted range";
|
||||
};
|
||||
semantic {
|
||||
facets [{
|
||||
Data {
|
||||
IntegerMaximum {
|
||||
oa {
|
||||
Value 100;
|
||||
};
|
||||
sa {
|
||||
Value 150;
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "Independently authored bound decision";
|
||||
kind Manual;
|
||||
oa @emergency_operation_limits;
|
||||
sa @controller_admitted_range;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "4f043ea4-04fa-419a-867d-a52836290faa",
|
||||
"alias": "mission",
|
||||
"name": "Independent controller-limit reviews",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"298094d9-75f3-4299-af3c-5fdfdff5aa0f": {
|
||||
"id": "298094d9-75f3-4299-af3c-5fdfdff5aa0f",
|
||||
"alias": "emergency_operation_limits",
|
||||
"name": "Emergency operation limits",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Integer": {
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": "degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"5b43cc68-555b-4c9b-823a-660c221514a6": {
|
||||
"id": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"alias": "controller_admitted_range",
|
||||
"name": "Controller admitted range",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Integer": {
|
||||
"minimum": 120,
|
||||
"maximum": 150
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": "degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"6e7b075b-94a9-43f0-a18b-ee3d60884119": {
|
||||
"id": "6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"alias": "normal_operation_limits",
|
||||
"name": "Normal operation limits",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Integer": {
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": "degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"0c923a4f-cbfd-44d0-9e48-203ede7f0b07": {
|
||||
"id": "0c923a4f-cbfd-44d0-9e48-203ede7f0b07",
|
||||
"alias": "normal_range_review",
|
||||
"name": "Normal range rationale",
|
||||
"description": "Independently authored bound decision",
|
||||
"oa": "6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"sa": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"kind": "Manual",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Normal operation limits",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Controller admitted range",
|
||||
"description": ""
|
||||
},
|
||||
"semantic": {
|
||||
"facets": [
|
||||
{
|
||||
"Data": {
|
||||
"IntegerMinimum": {
|
||||
"oa": {
|
||||
"Value": 0
|
||||
},
|
||||
"sa": {
|
||||
"Value": 120
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"431bc20b-3441-4bf4-864b-902388ed9504": {
|
||||
"id": "431bc20b-3441-4bf4-864b-902388ed9504",
|
||||
"alias": "emergency_range_review",
|
||||
"name": "Emergency range rationale",
|
||||
"description": "Independently authored bound decision",
|
||||
"oa": "298094d9-75f3-4299-af3c-5fdfdff5aa0f",
|
||||
"sa": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"kind": "Manual",
|
||||
"baseline": {
|
||||
"oa": {
|
||||
"name": "Emergency operation limits",
|
||||
"description": ""
|
||||
},
|
||||
"sa": {
|
||||
"name": "Controller admitted range",
|
||||
"description": ""
|
||||
},
|
||||
"semantic": {
|
||||
"facets": [
|
||||
{
|
||||
"Data": {
|
||||
"IntegerMaximum": {
|
||||
"oa": {
|
||||
"Value": 100
|
||||
},
|
||||
"sa": {
|
||||
"Value": 150
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
// Keep this independent engineering explanation verbatim
|
||||
arcadia 6;
|
||||
project mission "Independent controller-limit reviews" id "4f043ea4-04fa-419a-867d-a52836290faa" {
|
||||
description "";
|
||||
|
||||
oa_data_type emergency_operation_limits "Emergency operation limits" id "298094d9-75f3-4299-af3c-5fdfdff5aa0f" {
|
||||
default none;
|
||||
definition {
|
||||
Integer {
|
||||
maximum 100;
|
||||
minimum 0;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "degrees";
|
||||
}
|
||||
|
||||
sa_data_type controller_admitted_range "Controller admitted range" id "5b43cc68-555b-4c9b-823a-660c221514a6" {
|
||||
default none;
|
||||
definition {
|
||||
Integer {
|
||||
maximum 100;
|
||||
minimum 0;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "degrees";
|
||||
}
|
||||
|
||||
oa_data_type normal_operation_limits "Normal operation limits" id "6e7b075b-94a9-43f0-a18b-ee3d60884119" {
|
||||
default none;
|
||||
definition {
|
||||
Integer {
|
||||
maximum 100;
|
||||
minimum 0;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent none;
|
||||
unit "degrees";
|
||||
}
|
||||
|
||||
trace normal_range_review "Normal range rationale" id "0c923a4f-cbfd-44d0-9e48-203ede7f0b07" {
|
||||
baseline none;
|
||||
description "Independently authored bound decision";
|
||||
kind Manual;
|
||||
oa @normal_operation_limits;
|
||||
sa @controller_admitted_range;
|
||||
}
|
||||
|
||||
trace emergency_range_review "Emergency range rationale" id "431bc20b-3441-4bf4-864b-902388ed9504" {
|
||||
baseline none;
|
||||
description "Independently authored bound decision";
|
||||
kind Manual;
|
||||
oa @emergency_operation_limits;
|
||||
sa @controller_admitted_range;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
[
|
||||
{
|
||||
"file": "semantic-batch.arcadia",
|
||||
"bytes": 1787,
|
||||
"sha256": "5e1f433e04621424edac43e53411624059e873f88dd531bfdb39093953485ed7"
|
||||
},
|
||||
{
|
||||
"file": "semantic-batch.json",
|
||||
"bytes": 2816,
|
||||
"sha256": "1972242d2a8677d004dc3af1081feb292de65fe26128d877dded8661f9906619"
|
||||
},
|
||||
{
|
||||
"file": "semantic-batch.after.arcadia",
|
||||
"bytes": 3134,
|
||||
"sha256": "d3315bba762395205ae761e6e64029e8b4070c15a1299c6114075581db7b0974"
|
||||
},
|
||||
{
|
||||
"file": "semantic-batch.after.json",
|
||||
"bytes": 3927,
|
||||
"sha256": "8f36119c7e893a4af374b13b85b1c2cb3df0196df8d06a551386628fc8b8646d"
|
||||
},
|
||||
{
|
||||
"file": "semantic-batch.request.json",
|
||||
"bytes": 2197,
|
||||
"sha256": "71f23474614aab90398ce24f00f2cf61d6cb9a3a34faa3e12e0c8104e0a71073"
|
||||
},
|
||||
{
|
||||
"file": "semantic-batch.manifest.json",
|
||||
"bytes": 647,
|
||||
"sha256": "1e440efa02e2ccc27585d9a49c7864d53e3e3e7645ccb219f040e00d95331b8e"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"schema_version": 6,
|
||||
"id": "4f043ea4-04fa-419a-867d-a52836290faa",
|
||||
"alias": "mission",
|
||||
"name": "Independent controller-limit reviews",
|
||||
"description": "",
|
||||
"elements": {
|
||||
"298094d9-75f3-4299-af3c-5fdfdff5aa0f": {
|
||||
"id": "298094d9-75f3-4299-af3c-5fdfdff5aa0f",
|
||||
"alias": "emergency_operation_limits",
|
||||
"name": "Emergency operation limits",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Integer": {
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": "degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"5b43cc68-555b-4c9b-823a-660c221514a6": {
|
||||
"id": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"alias": "controller_admitted_range",
|
||||
"name": "Controller admitted range",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Integer": {
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": "degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"6e7b075b-94a9-43f0-a18b-ee3d60884119": {
|
||||
"id": "6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"alias": "normal_operation_limits",
|
||||
"name": "Normal operation limits",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Oa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Integer": {
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": "degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": {},
|
||||
"diagrams": {},
|
||||
"artifact_links": {},
|
||||
"traces": {
|
||||
"0c923a4f-cbfd-44d0-9e48-203ede7f0b07": {
|
||||
"id": "0c923a4f-cbfd-44d0-9e48-203ede7f0b07",
|
||||
"alias": "normal_range_review",
|
||||
"name": "Normal range rationale",
|
||||
"description": "Independently authored bound decision",
|
||||
"oa": "6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"sa": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
},
|
||||
"431bc20b-3441-4bf4-864b-902388ed9504": {
|
||||
"id": "431bc20b-3441-4bf4-864b-902388ed9504",
|
||||
"alias": "emergency_range_review",
|
||||
"name": "Emergency range rationale",
|
||||
"description": "Independently authored bound decision",
|
||||
"oa": "298094d9-75f3-4299-af3c-5fdfdff5aa0f",
|
||||
"sa": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"kind": "Manual",
|
||||
"baseline": null
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"accepted_impacts": 0,
|
||||
"core_candidates": 1,
|
||||
"core_reviews": 2,
|
||||
"exact_source_oracle": "source_project::update_bundle",
|
||||
"final_maximum": 150,
|
||||
"final_minimum": 120,
|
||||
"initial_maximum": 100,
|
||||
"initial_minimum": 0,
|
||||
"project": "4f043ea4-04fa-419a-867d-a52836290faa",
|
||||
"schema": 6,
|
||||
"sources": [
|
||||
"6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"298094d9-75f3-4299-af3c-5fdfdff5aa0f"
|
||||
],
|
||||
"target": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"trace_names": [
|
||||
"Normal range rationale",
|
||||
"Emergency range rationale"
|
||||
],
|
||||
"traces": [
|
||||
"0c923a4f-cbfd-44d0-9e48-203ede7f0b07",
|
||||
"431bc20b-3441-4bf4-864b-902388ed9504"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"transition": {
|
||||
"direction": "OaToSa",
|
||||
"sources": [
|
||||
"6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"298094d9-75f3-4299-af3c-5fdfdff5aa0f"
|
||||
],
|
||||
"scope": "SelectedOnly",
|
||||
"mappings": [
|
||||
{
|
||||
"source": "6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"target": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"target_kind": null
|
||||
},
|
||||
{
|
||||
"source": "298094d9-75f3-4299-af3c-5fdfdff5aa0f",
|
||||
"target": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"target_kind": null
|
||||
}
|
||||
],
|
||||
"fields": [],
|
||||
"resolutions": [],
|
||||
"destination_diagram": null,
|
||||
"communication_endpoints": []
|
||||
},
|
||||
"traces": {
|
||||
"298094d9-75f3-4299-af3c-5fdfdff5aa0f": "431bc20b-3441-4bf4-864b-902388ed9504",
|
||||
"6e7b075b-94a9-43f0-a18b-ee3d60884119": "0c923a4f-cbfd-44d0-9e48-203ede7f0b07"
|
||||
},
|
||||
"references": {
|
||||
"298094d9-75f3-4299-af3c-5fdfdff5aa0f": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"6e7b075b-94a9-43f0-a18b-ee3d60884119": "5b43cc68-555b-4c9b-823a-660c221514a6"
|
||||
},
|
||||
"reviews": [
|
||||
{
|
||||
"source": "6e7b075b-94a9-43f0-a18b-ee3d60884119",
|
||||
"resolutions": [
|
||||
{
|
||||
"facet": {
|
||||
"Data": "IntegerMinimum"
|
||||
},
|
||||
"decision": "Candidate"
|
||||
}
|
||||
],
|
||||
"reset": []
|
||||
},
|
||||
{
|
||||
"source": "298094d9-75f3-4299-af3c-5fdfdff5aa0f",
|
||||
"resolutions": [
|
||||
{
|
||||
"facet": {
|
||||
"Data": "IntegerMaximum"
|
||||
},
|
||||
"decision": "Candidate"
|
||||
}
|
||||
],
|
||||
"reset": []
|
||||
}
|
||||
],
|
||||
"candidates": [
|
||||
{
|
||||
"Element": {
|
||||
"id": "5b43cc68-555b-4c9b-823a-660c221514a6",
|
||||
"alias": "controller_admitted_range",
|
||||
"name": "Controller admitted range",
|
||||
"description": "",
|
||||
"parent": null,
|
||||
"body": {
|
||||
"Sa": {
|
||||
"Shared": {
|
||||
"DataType": {
|
||||
"definition": {
|
||||
"Integer": {
|
||||
"minimum": 120,
|
||||
"maximum": 150
|
||||
}
|
||||
},
|
||||
"default": null,
|
||||
"unit": "degrees"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"accepted_impacts": []
|
||||
}
|
||||
@@ -63,4 +63,4 @@ Source oracles were generated through source_project::update_bundle, retaining
|
||||
unmodified declarations and the fixture comment, rather than replacing the whole
|
||||
file with a freshly formatted model. Generator source is generate-semantic-keyed.rs;
|
||||
it reuses the production-tested r3_semantic payload/scenario-use constructors.
|
||||
Standalone rustc output stays in this directory; Cargo and shared outputs untouched.
|
||||
Standalone rustc output stays in this directory; Cargo and shared outputs untouched.
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"version": 1,
|
||||
"id": "15000000-0000-4000-8000-000000000010",
|
||||
"name": "Source 5 recovery acceptance",
|
||||
"origin": null,
|
||||
"modified": 1788750000,
|
||||
"accepted": {
|
||||
"entry": "project.arcadia",
|
||||
"files": {
|
||||
"project.arcadia": "// Exact source-5 recovery fixture: Unicode 雨, CRLF, and comment number 5.\r\narcadia // preserve header comment\r\n 5;\r\nproject p \"Source 5 recovery acceptance\" id \"15000000-0000-4000-8000-000000000001\" {\r\n include \"work.arcadia\";\r\n}\r\n",
|
||||
"work.arcadia": "// Preserve this fragment exactly.\r\noa_activity a \"Retained work\" id \"15000000-0000-4000-8000-000000000002\" {}\r\n"
|
||||
}
|
||||
},
|
||||
"workspace": {
|
||||
"entry": "project.arcadia",
|
||||
"active": "project.arcadia",
|
||||
"files": {
|
||||
"project.arcadia": [
|
||||
"// Exact source-5 recovery fixture: Unicode 雨, CRLF, and comment number 5.\r\narcadia // preserve header comment\r\n 5;\r\nproject p \"Source 5 recovery acceptance\" id \"15000000-0000-4000-8000-000000000001\" {\r\n include \"work.arcadia\";\r\n}\r\n\r\nunfinished { 雨",
|
||||
"// Exact source-5 recovery fixture: Unicode 雨, CRLF, and comment number 5.\r\narcadia // preserve header comment\r\n 5;\r\nproject p \"Source 5 recovery acceptance\" id \"15000000-0000-4000-8000-000000000001\" {\r\n include \"work.arcadia\";\r\n}\r\n"
|
||||
],
|
||||
"work.arcadia": [
|
||||
"// Preserve this fragment exactly.\r\noa_activity a \"Retained work\" id \"15000000-0000-4000-8000-000000000002\" {}\r\n",
|
||||
"// Preserve this fragment exactly.\r\noa_activity a \"Retained work\" id \"15000000-0000-4000-8000-000000000002\" {}\r\n"
|
||||
]
|
||||
},
|
||||
"reachable": [
|
||||
"project.arcadia",
|
||||
"work.arcadia"
|
||||
],
|
||||
"applied": true,
|
||||
"new_path": "drafts/retained-name.arcadia"
|
||||
},
|
||||
"property": null,
|
||||
"behavior": null,
|
||||
"workflow": null,
|
||||
"selected": "15000000-0000-4000-8000-000000000001"
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
"""Prepare a task-local checkpoint only; never installs it in user recovery data."""
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
entry = (
|
||||
'// Exact source-5 recovery fixture: Unicode 雨, CRLF, and comment number 5.\r\n'
|
||||
'arcadia // preserve header comment\r\n 5;\r\n'
|
||||
'project p "Source 5 recovery acceptance" id "15000000-0000-4000-8000-000000000001" {\r\n'
|
||||
' include "work.arcadia";\r\n}\r\n'
|
||||
)
|
||||
work = (
|
||||
'// Preserve this fragment exactly.\r\n'
|
||||
'oa_activity a "Retained work" id "15000000-0000-4000-8000-000000000002" {}\r\n'
|
||||
)
|
||||
snapshot = {
|
||||
'version': 1,
|
||||
'id': '15000000-0000-4000-8000-000000000010',
|
||||
'name': 'Source 5 recovery acceptance',
|
||||
'origin': None,
|
||||
'modified': 1788750000,
|
||||
'accepted': {'entry': 'project.arcadia', 'files': {'project.arcadia': entry, 'work.arcadia': work}},
|
||||
'workspace': {
|
||||
'entry': 'project.arcadia', 'active': 'project.arcadia',
|
||||
'files': {'project.arcadia': [entry + '\r\nunfinished { 雨', entry], 'work.arcadia': [work, work]},
|
||||
'reachable': ['project.arcadia', 'work.arcadia'], 'applied': True,
|
||||
'new_path': 'drafts/retained-name.arcadia',
|
||||
},
|
||||
'property': None, 'behavior': None, 'workflow': None,
|
||||
'selected': '15000000-0000-4000-8000-000000000001',
|
||||
}
|
||||
path = Path('.local/source5-native-recovery-fixture') / (snapshot['id'] + '.json')
|
||||
path.parent.mkdir(exist_ok=True)
|
||||
path.write_text(json.dumps(snapshot, ensure_ascii=False, indent=2), encoding='utf-8')
|
||||
print(path.resolve())
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Run with PowerShell7 on Windows against a built/staged server. The script launches
|
||||
its own hidden server on a free loopback port, creates synthetic data under a fresh
|
||||
timestamped `.local/rest-coverage-*` directory, captures25 requests/responses and
|
||||
timestamped `.local/rest-coverage-*` directory, captures 25 requests/responses and
|
||||
asserts diagnostic parity, invalid-write rejection, source preservation and restart.
|
||||
It stops only its own process, including on failure. It never attaches to an
|
||||
existing server and does not use user credentials. The token it creates is fixed
|
||||
|
||||
Reference in New Issue
Block a user