111 lines
4.3 KiB
Plaintext
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; };
|
|
}
|
|
}
|