Files
ARCADIA-Studio/harness/experiments/textual-authoring-20260911/alarm-response.arcadia
T

111 lines
4.3 KiB
Plaintext

arcadia 7;
project alarm_response "Alarm response" {
description "A complete small OA/SA source-authoring example. Numerical annotations are descriptive.";
oa_actor plant_operator "Plant operator" {}
oa_entity maintenance "Maintenance team" {}
oa_activity manage_alarm "Manage a pressure alarm" {
oa_activity detect_alarm "Detect alarm" {}
// Assessing the alarm is work decomposition, independently allocated below.
oa_activity assess_alarm "Assess alarm" {}
}
oa_capability safe_response "Respond safely" {}
oa_exchange_item alarm_report "Alarm report" {
mechanism Flow;
oa_data_field reported_pressure "Reported pressure" {
type_ref Real;
unit "kPa";
}
}
allocation operator_detects "Operator detects" {
source @plant_operator; target @detect_alarm;
}
allocation team_assesses "Team assesses" {
source @maintenance; target @assess_alarm;
}
interaction alarm_message "Pressure alarm report" {
source @detect_alarm; target @assess_alarm; items [@alarm_report];
}
capability_involvement assessment_supports_response "Assessment supports safe response" {
source @assess_alarm; target @safe_response;
}
oa_process triage "Alarm triage" {
steps [@detect_once, @assess_once];
oa_occurrence detect_once "Detect this alarm" {
body { Action { action @detect_alarm; lifeline none; }; };
}
oa_occurrence assess_once "Assess this alarm" {
body { Action { action @assess_alarm; lifeline none; }; };
}
}
sequence_link assessment_after_detection "Assess after detecting" {
source @detect_once; target @assess_once;
}
chain_involvement triage_supports_response "Triage supports safe response" {
source @triage; target @safe_response;
}
oa_scenario notification "Alarm notification" {
viewpoint OperationalActivity;
context @safe_response;
steps [@notify_once];
oa_lifeline detector_line "Detector" { represented @detect_alarm; }
oa_lifeline assessor_line "Assessor" { represented @assess_alarm; }
oa_occurrence notify_once "Report this pressure" {
body { Exchange {
exchange @alarm_message; sender @detector_line; receiver @assessor_line;
message_kind Asynchronous; reply_to none;
values [{ field @reported_pressure; path []; expression "420"; }];
}; };
}
}
sa_system alarm_console "Alarm console" {
sa_state_machine console_status "Console status" {
sa_region console_region "Main region" {
sa_initial console_start "Start" {}
sa_state console_ready "Ready" {}
sa_state console_alerting "Alerting" {}
}
}
}
sa_function classify_alarm "Classify alarm" {}
sa_functional_chain classification_flow "Alarm classification" {
steps [@classify_once];
sa_occurrence classify_once "Classify this alarm" {
body { Action { action @classify_alarm; lifeline none; }; };
}
}
allocation console_classifies "Console classifies" {
source @alarm_console; target @classify_alarm;
}
sa_event alarm_received "Alarm received" {}
state_transition initialize_console "Initialize" {
source @console_start; target @console_ready;
}
state_transition display_alarm "Display alarm" {
source @console_ready; target @console_alerting; triggers [@alarm_received];
}
trace assessment_refinement "Alarm classification refines assessment" {
oa @assess_alarm; sa @classify_alarm;
baseline {
oa { name "Assess alarm"; description ""; };
sa { name "Classify alarm"; description ""; };
};
}
artifact response_procedure "Response procedure" {
owner @assess_alarm; uri "procedures/alarm-response.md"; revision "review-1";
}
diagram response_view "Operational work" { projection FunctionalDataflow; }
node detector_card {
diagram @response_view; element @detect_alarm;
position { x 40; y 40; };
}
node assessor_card {
diagram @response_view; element @assess_alarm;
position { x 400; y 40; };
}
}