@memoarchitect/ontology 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +70 -0
  3. package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +210 -0
  4. package/examples/gpca-pump/memo.config.yaml +9 -0
  5. package/examples/gpca-pump/methodology/gpca_methodology.sysml +11 -0
  6. package/examples/gpca-pump/methodology/gpca_profiles.sysml +25 -0
  7. package/examples/gpca-pump/methodology/gpca_scope.sysml +25 -0
  8. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +231 -0
  9. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +272 -0
  10. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +81 -0
  11. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +363 -0
  12. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +205 -0
  13. package/examples/gpca-pump/model/catalog/gpca_context.sysml +113 -0
  14. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +172 -0
  15. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +173 -0
  16. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +1062 -0
  17. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +209 -0
  18. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +53 -0
  19. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1505 -0
  20. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +744 -0
  21. package/examples/gpca-pump/model/catalog/gpca_system.sysml +144 -0
  22. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +696 -0
  23. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +285 -0
  24. package/examples/gpca-pump/model/samples/README.md +24 -0
  25. package/examples/gpca-pump/model/samples/action_flow_view.sysml +72 -0
  26. package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +9 -0
  27. package/examples/gpca-pump/model/samples/functional_flow_view.sysml +153 -0
  28. package/examples/gpca-pump/model/samples/interconnection_view.sysml +93 -0
  29. package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +99 -0
  30. package/examples/gpca-pump/model/samples/operational_behaviour_view.sysml +145 -0
  31. package/examples/gpca-pump/model/samples/tree_view.sysml +56 -0
  32. package/examples/gpca-pump/model/views/behavior_action_flow_view.sysml +41 -0
  33. package/examples/gpca-pump/model/views/context_system_context_view.sysml +43 -0
  34. package/examples/gpca-pump/model/views/cybersecurity_cybersecurity_view.sysml +44 -0
  35. package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +29 -0
  36. package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +28 -0
  37. package/examples/gpca-pump/model/views/document_dhf_index_view.sysml +29 -0
  38. package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +29 -0
  39. package/examples/gpca-pump/model/views/document_rmf_view.sysml +29 -0
  40. package/examples/gpca-pump/model/views/document_sdd_view.sysml +29 -0
  41. package/examples/gpca-pump/model/views/document_threat_model_view.sysml +28 -0
  42. package/examples/gpca-pump/model/views/document_usability_view.sysml +28 -0
  43. package/examples/gpca-pump/model/views/document_vv_view.sysml +29 -0
  44. package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +42 -0
  45. package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +41 -0
  46. package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +43 -0
  47. package/examples/gpca-pump/model/views/logical_logical_architecture_view.sysml +42 -0
  48. package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +42 -0
  49. package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +44 -0
  50. package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +41 -0
  51. package/examples/gpca-pump/model/views/operational_use_case_view.sysml +43 -0
  52. package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +41 -0
  53. package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +42 -0
  54. package/examples/gpca-pump/model/views/risk_fmea_view.sysml +42 -0
  55. package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +44 -0
  56. package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +43 -0
  57. package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +42 -0
  58. package/memo.manifest.yaml +13 -0
  59. package/methodologies/default/memo.package.yaml +9 -0
  60. package/methodologies/gpca/memo.package.yaml +9 -0
  61. package/ontology/memo.package.yaml +8 -0
  62. package/ontology/memo.rendering.yaml +47 -0
  63. package/package.json +65 -0
  64. package/profile/archetypes.yaml +36 -0
  65. package/profile/memo.package.yaml +9 -0
  66. package/profile/templates/connected-device/starter.sysml +8 -0
  67. package/profile/templates/infusion-pump/starter.sysml +8 -0
  68. package/profile/templates/monitoring-device/starter.sysml +8 -0
  69. package/profile/templates/samd/starter.sysml +8 -0
  70. package/src/architecture/analysis/memo_fmea.sysml +91 -0
  71. package/src/architecture/assurance/memo_assurance.sysml +29 -0
  72. package/src/architecture/behavior/memo_behavior.sysml +65 -0
  73. package/src/architecture/constraints/memo_constraints.sysml +14 -0
  74. package/src/architecture/context/memo_context.sysml +58 -0
  75. package/src/architecture/cybersecurity/memo_cybersecurity.sysml +99 -0
  76. package/src/architecture/decisions/memo_decisions.sysml +12 -0
  77. package/src/architecture/functions/memo_functions.sysml +30 -0
  78. package/src/architecture/hardware_structure/memo_hardware_structure.sysml +15 -0
  79. package/src/architecture/interfaces/memo_interfaces.sysml +103 -0
  80. package/src/architecture/logical_structure/memo_logical_structure.sysml +10 -0
  81. package/src/architecture/operational/memo_operational.sysml +51 -0
  82. package/src/architecture/physical/memo_physical_architecture.sysml +19 -0
  83. package/src/architecture/requirements/memo_requirements.sysml +69 -0
  84. package/src/architecture/risk/memo_arch_risk.sysml +7 -0
  85. package/src/architecture/risk/memo_risk.sysml +80 -0
  86. package/src/architecture/software_structure/memo_software_structure.sysml +44 -0
  87. package/src/architecture/system/memo_system_analysis.sysml +54 -0
  88. package/src/artifacts/clinical_safety_report.sysml +12 -0
  89. package/src/artifacts/cybersecurity_assessment_report.sysml +12 -0
  90. package/src/artifacts/definitions/memo_artifact_definitions.sysml +12 -0
  91. package/src/artifacts/design_change_log.sysml +12 -0
  92. package/src/artifacts/design_history_file_index.sysml +12 -0
  93. package/src/artifacts/design_input_plan.sysml +12 -0
  94. package/src/artifacts/design_output_plan.sysml +12 -0
  95. package/src/artifacts/evidence_record.sysml +12 -0
  96. package/src/artifacts/failure_mode_effects_analysis.sysml +12 -0
  97. package/src/artifacts/hazard_analysis_report.sysml +12 -0
  98. package/src/artifacts/labeling_specification.sysml +12 -0
  99. package/src/artifacts/requirements_specification.sysml +12 -0
  100. package/src/artifacts/requirements_traceability_matrix.sysml +12 -0
  101. package/src/artifacts/risk_management_plan.sysml +12 -0
  102. package/src/artifacts/software_design_description.sysml +12 -0
  103. package/src/artifacts/software_development_plan.sysml +12 -0
  104. package/src/artifacts/soup_list.sysml +12 -0
  105. package/src/artifacts/system_architecture_description.sysml +12 -0
  106. package/src/artifacts/test_protocol.sysml +12 -0
  107. package/src/artifacts/test_report.sysml +12 -0
  108. package/src/artifacts/threat_model_report.sysml +12 -0
  109. package/src/artifacts/usability_engineering_report.sysml +12 -0
  110. package/src/compliance/artifacts/memo_artifacts.sysml +13 -0
  111. package/src/compliance/change/memo_change.sysml +17 -0
  112. package/src/compliance/dhf-templates/21cfr820/change-record.md +45 -0
  113. package/src/compliance/dhf-templates/21cfr820/design-input.md +67 -0
  114. package/src/compliance/dhf-templates/21cfr820/design-output.md +80 -0
  115. package/src/compliance/dhf-templates/21cfr820/design-review.md +51 -0
  116. package/src/compliance/dhf-templates/21cfr820/design-validation.md +64 -0
  117. package/src/compliance/dhf-templates/21cfr820/design-verification.md +57 -0
  118. package/src/compliance/dhf-templates/21cfr820/dhf-index.md +111 -0
  119. package/src/compliance/dhf-templates/21cfr820/transfer-plan.md +50 -0
  120. package/src/compliance/dhf-templates/21cfr820/user-needs.md +81 -0
  121. package/src/compliance/dhf-templates/21cfr820/vv-plan.md +89 -0
  122. package/src/compliance/dhf-templates/21cfr820/vv-report.md +85 -0
  123. package/src/compliance/dhf-templates/fda-cybersecurity/incident-response.md +66 -0
  124. package/src/compliance/dhf-templates/fda-cybersecurity/postmarket-surveillance.md +63 -0
  125. package/src/compliance/dhf-templates/fda-cybersecurity/security-arch.md +83 -0
  126. package/src/compliance/dhf-templates/fda-cybersecurity/threat-model.md +100 -0
  127. package/src/compliance/dhf-templates/fda-cybersecurity/vuln-assessment.md +77 -0
  128. package/src/compliance/dhf-templates/iec-62304/change-control.md +40 -0
  129. package/src/compliance/dhf-templates/iec-62304/detailed-design.md +69 -0
  130. package/src/compliance/dhf-templates/iec-62304/integration-test.md +68 -0
  131. package/src/compliance/dhf-templates/iec-62304/sad.md +115 -0
  132. package/src/compliance/dhf-templates/iec-62304/sbom.md +67 -0
  133. package/src/compliance/dhf-templates/iec-62304/sdp.md +108 -0
  134. package/src/compliance/dhf-templates/iec-62304/soup.md +77 -0
  135. package/src/compliance/dhf-templates/iec-62304/srs.md +138 -0
  136. package/src/compliance/dhf-templates/iec-62304/sw-traceability.md +111 -0
  137. package/src/compliance/dhf-templates/iec-62304/system-test.md +67 -0
  138. package/src/compliance/dhf-templates/iec-62366/formative-eval.md +47 -0
  139. package/src/compliance/dhf-templates/iec-62366/summative-eval.md +69 -0
  140. package/src/compliance/dhf-templates/iec-62366/task-analysis.md +57 -0
  141. package/src/compliance/dhf-templates/iec-62366/ue-plan.md +81 -0
  142. package/src/compliance/dhf-templates/iec-62366/ui-spec.md +61 -0
  143. package/src/compliance/dhf-templates/iec-62366/urra.md +74 -0
  144. package/src/compliance/dhf-templates/iec-62366/use-spec.md +61 -0
  145. package/src/compliance/dhf-templates/iso-14971/fmea.md +93 -0
  146. package/src/compliance/dhf-templates/iso-14971/fta.md +70 -0
  147. package/src/compliance/dhf-templates/iso-14971/har.md +165 -0
  148. package/src/compliance/dhf-templates/iso-14971/risk-benefit.md +51 -0
  149. package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +51 -0
  150. package/src/compliance/dhf-templates/iso-14971/rmp.md +169 -0
  151. package/src/compliance/dhf-templates/iso-14971/rmr.md +101 -0
  152. package/src/compliance/dhf-templates/shared/snippets/approval-block.md +16 -0
  153. package/src/compliance/dhf-templates/shared/snippets/document-control-header.md +15 -0
  154. package/src/compliance/dhf-templates/shared/snippets/references-section.md +16 -0
  155. package/src/compliance/dhf-templates/shared/snippets/revision-history-table.md +11 -0
  156. package/src/compliance/document_views/memo_document_views.sysml +7 -0
  157. package/src/compliance/iso14971/risk_management_file.sysml +16 -0
  158. package/src/compliance/postmarket/memo_postmarket.sysml +16 -0
  159. package/src/core/common/memo_common.sysml +50 -0
  160. package/src/core/consistency_rules/consistency_rules.sysml +41 -0
  161. package/src/core/dimensions/dimensions.sysml +37 -0
  162. package/src/core/enumerations/memo_enumerations.sysml +562 -0
  163. package/src/core/methodology_scope/methodology_scope.sysml +46 -0
  164. package/src/core/relationships/memo_relationships.sysml +230 -0
  165. package/src/core/semantics/semantics.sysml +20 -0
  166. package/src/core/stdlib/collections.sysml +6 -0
  167. package/src/core/stdlib/functions.sysml +6 -0
  168. package/src/core/stdlib/scalars.sysml +6 -0
  169. package/src/core/stdlib/time.sysml +6 -0
  170. package/src/medical_device_library.sysml +100 -0
  171. package/src/memo_namespaces.sysml +668 -0
  172. package/src/methodology/LICENSES/MIT.txt +19 -0
  173. package/src/methodology/memo_archetypes.sysml +93 -0
  174. package/src/methodology/memo_core.sysml +53 -0
  175. package/src/methodology/memo_gates.sysml +11 -0
  176. package/src/methodology/memo_patterns.sysml +12 -0
  177. package/src/methodology/memo_profiles.sysml +218 -0
  178. package/src/methodology/memo_rules.sysml +15 -0
  179. package/src/methodology/memo_viewpoints.sysml +5 -0
  180. package/src/methodology/memo_workflow.sysml +14 -0
  181. package/src/rules/closure/closure_rules.sysml +180 -0
  182. package/src/rules/coverage/coverage_rules.sysml +258 -0
  183. package/src/rules/crosslayer/cross_layer_rules.sysml +38 -0
  184. package/src/rules/lifecycle/lifecycle_rules.sysml +41 -0
  185. package/src/rules/quantitative/quantitative_rules.sysml +34 -0
  186. package/src/viewpoints/clinical/clinical_evidence_view.sysml +13 -0
  187. package/src/viewpoints/clinical/clinical_viewpoint.sysml +25 -0
  188. package/src/viewpoints/context/context_viewpoint.sysml +25 -0
  189. package/src/viewpoints/context/system_context_view.sysml +29 -0
  190. package/src/viewpoints/cybersecurity/cybersecurity_assessment_view.sysml +13 -0
  191. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +27 -0
  192. package/src/viewpoints/cybersecurity/threat_model_view.sysml +13 -0
  193. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +82 -0
  194. package/src/viewpoints/functional/function_allocation_view.sysml +29 -0
  195. package/src/viewpoints/functional/functional_viewpoint.sysml +25 -0
  196. package/src/viewpoints/functional/system_functional_tree_view.sysml +29 -0
  197. package/src/viewpoints/logical/logical_architecture_view.sysml +29 -0
  198. package/src/viewpoints/logical/logical_viewpoint.sysml +25 -0
  199. package/src/viewpoints/operational/operational_viewpoint.sysml +25 -0
  200. package/src/viewpoints/operational/use_case_view.sysml +29 -0
  201. package/src/viewpoints/physical/network_topology_view.sysml +29 -0
  202. package/src/viewpoints/physical/physical_bom_view.sysml +29 -0
  203. package/src/viewpoints/physical/physical_viewpoint.sysml +25 -0
  204. package/src/viewpoints/requirements/requirements_traceability_view.sysml +29 -0
  205. package/src/viewpoints/requirements/requirements_viewpoint.sysml +25 -0
  206. package/src/viewpoints/risk/risk_chain_view.sysml +30 -0
  207. package/src/viewpoints/risk/risk_viewpoint.sysml +25 -0
  208. package/src/viewpoints/software/software_architecture_view.sysml +29 -0
  209. package/src/viewpoints/software/software_viewpoint.sysml +25 -0
  210. package/src/viewpoints/usability/usability_engineering_view.sysml +13 -0
  211. package/src/viewpoints/usability/usability_viewpoint.sysml +25 -0
  212. package/src/viewpoints/verification/verification_coverage_view.sysml +29 -0
  213. package/src/viewpoints/verification/verification_viewpoint.sysml +25 -0
  214. package/template/memo.package.yaml +5 -0
  215. package/template/src/catalog/starter.sysml +12 -0
  216. package/template/src/documents/.gitkeep +1 -0
  217. package/template/src/views/.gitkeep +1 -0
@@ -0,0 +1,144 @@
1
+ package memo_examples_gpca_pump_model_catalog_gpca_system {
2
+ private import ScalarValues::*;
3
+
4
+ private import memo_architecture_system::*;
5
+ private import memo_core_enumerations::*;
6
+
7
+ part gpcaMission : Mission {
8
+ attribute :>> id = "MSN-001";
9
+ attribute :>> name = "GPCA_Mission";
10
+ attribute :>> title = "Safe Patient-Controlled Analgesia";
11
+ attribute :>> shortDescription = "Deliver prescribed analgesia with patient-controlled boluses, never exceeding safe dose limits.";
12
+ attribute :>> missionKind = "therapeutic device mission";
13
+ attribute :>> successCriteria = "Drug delivered per prescription; no overdose or undetected under-infusion; every hazardous condition annunciated within its alarm latency budget.";
14
+ attribute :>> operationalContext = "Acute-care hospital ward, fixed (non-ambulatory) location (UC-001).";
15
+ }
16
+
17
+ // ── System capabilities ─────────────────────────────────────
18
+ part scBasalDelivery : SystemCapability {
19
+ attribute :>> id = "SC-001";
20
+ attribute :>> name = "BasalRateDelivery";
21
+ attribute :>> capabilityKind = "therapy";
22
+ attribute :>> primaryFunction = "FUNC-005: ManageInfusion";
23
+ attribute :>> safetyRelevant = true;
24
+ }
25
+ part scPatientBolus : SystemCapability {
26
+ attribute :>> id = "SC-002";
27
+ attribute :>> name = "PatientBolusDelivery";
28
+ attribute :>> capabilityKind = "therapy";
29
+ attribute :>> primaryFunction = "FUNC-006: EnforceDoseLimits";
30
+ attribute :>> safetyRelevant = true;
31
+ }
32
+ part scAlarmAnnunciation : SystemCapability {
33
+ attribute :>> id = "SC-003";
34
+ attribute :>> name = "AlarmDetectionAndAnnunciation";
35
+ attribute :>> capabilityKind = "safety";
36
+ attribute :>> primaryFunction = "FUNC-003: MonitorExceptionalConditions";
37
+ attribute :>> safetyRelevant = true;
38
+ }
39
+ part scPrescriptionMgmt : SystemCapability {
40
+ attribute :>> id = "SC-004";
41
+ attribute :>> name = "PrescriptionProgrammingAndChecking";
42
+ attribute :>> capabilityKind = "configuration";
43
+ attribute :>> primaryFunction = "FUNC-002: ValidatePrescription";
44
+ attribute :>> safetyRelevant = true;
45
+ }
46
+ part scEventLogging : SystemCapability {
47
+ attribute :>> id = "SC-005";
48
+ attribute :>> name = "TherapyEventLogging";
49
+ attribute :>> capabilityKind = "record-keeping";
50
+ attribute :>> primaryFunction = "FUNC-008: LogTherapyEvents";
51
+ attribute :>> safetyRelevant = false;
52
+ }
53
+
54
+ // ── Functional chains ───────────────────────────────────────
55
+ part fcPatientBolus : FunctionalChain {
56
+ attribute :>> id = "FC-001";
57
+ attribute :>> name = "PatientBolusChain";
58
+ attribute :>> chainKind = FunctionalChainKind::nominal;
59
+ attribute :>> startFunction = "FUNC-001: AcquireSensorData";
60
+ attribute :>> endFunction = "FUNC-007: CommandPumpMotor";
61
+ attribute :>> endToEndLatencyBudgetMs = "100";
62
+ attribute :>> safetyRelevant = true;
63
+ attribute :>> securityRelevant = false;
64
+ attribute :>> description = "Bolus button press through lockout/max-dose check to pump actuation and logging.";
65
+ }
66
+ part fcsBolusSense : FunctionalChainStep {
67
+ attribute :>> id = "FCS-001"; attribute :>> name = "SenseBolusRequest";
68
+ attribute :>> stepOrder = "1"; attribute :>> allocatedFunction = "FUNC-001"; attribute :>> exchangeItem = "DD-002: BolusRequestSignal";
69
+ }
70
+ part fcsBolusValidate : FunctionalChainStep {
71
+ attribute :>> id = "FCS-002"; attribute :>> name = "CheckLockoutAndMaxDose";
72
+ attribute :>> stepOrder = "2"; attribute :>> allocatedFunction = "FUNC-006"; attribute :>> exchangeItem = "DD-001: PrescriptionRecord";
73
+ }
74
+ part fcsBolusCommand : FunctionalChainStep {
75
+ attribute :>> id = "FCS-003"; attribute :>> name = "CommandBolusFlow";
76
+ attribute :>> stepOrder = "3"; attribute :>> allocatedFunction = "FUNC-005"; attribute :>> exchangeItem = "CD-001: FlowCommand";
77
+ }
78
+ part fcsBolusActuate : FunctionalChainStep {
79
+ attribute :>> id = "FCS-004"; attribute :>> name = "ActuatePumpMotor";
80
+ attribute :>> stepOrder = "4"; attribute :>> allocatedFunction = "FUNC-007"; attribute :>> exchangeItem = "CD-001: FlowCommand";
81
+ }
82
+ part fcsBolusLog : FunctionalChainStep {
83
+ attribute :>> id = "FCS-005"; attribute :>> name = "LogBolusOutcome";
84
+ attribute :>> stepOrder = "5"; attribute :>> allocatedFunction = "FUNC-008"; attribute :>> exchangeItem = "DD-004: TherapyEventRecord";
85
+ }
86
+
87
+ part fcAlarmStop : FunctionalChain {
88
+ attribute :>> id = "FC-002";
89
+ attribute :>> name = "AlarmDetectionToSafeStateChain";
90
+ attribute :>> chainKind = FunctionalChainKind::alarm;
91
+ attribute :>> startFunction = "FUNC-001: AcquireSensorData";
92
+ attribute :>> endFunction = "FUNC-004: AnnunciateAlarms";
93
+ attribute :>> endToEndLatencyBudgetMs = "20";
94
+ attribute :>> safetyRelevant = true;
95
+ attribute :>> securityRelevant = false;
96
+ attribute :>> description = "Sensor condition through alarm evaluation to same-step transition to PAUSED (KVO flow, REQ 43) and annunciation.";
97
+ }
98
+ part fcsAlarmSense : FunctionalChainStep {
99
+ attribute :>> id = "FCS-006"; attribute :>> name = "SenseAlarmCondition";
100
+ attribute :>> stepOrder = "1"; attribute :>> allocatedFunction = "FUNC-001"; attribute :>> exchangeItem = "DD-003: SensorStatusVector";
101
+ }
102
+ part fcsAlarmEvaluate : FunctionalChainStep {
103
+ attribute :>> id = "FCS-007"; attribute :>> name = "EvaluateAlarmCondition";
104
+ attribute :>> stepOrder = "2"; attribute :>> allocatedFunction = "FUNC-003"; attribute :>> exchangeItem = "DD-003: SensorStatusVector";
105
+ }
106
+ part fcsAlarmStopInfusion : FunctionalChainStep {
107
+ attribute :>> id = "FCS-008"; attribute :>> name = "LimitFlowToKvoSameStep";
108
+ attribute :>> stepOrder = "3"; attribute :>> allocatedFunction = "FUNC-005"; attribute :>> exchangeItem = "CD-002: AlarmSignal";
109
+ }
110
+ part fcsAlarmAnnunciate : FunctionalChainStep {
111
+ attribute :>> id = "FCS-009"; attribute :>> name = "AnnunciateAudibleVisual";
112
+ attribute :>> stepOrder = "4"; attribute :>> allocatedFunction = "FUNC-004"; attribute :>> exchangeItem = "CD-002: AlarmSignal";
113
+ }
114
+
115
+ part fcStartup : FunctionalChain {
116
+ attribute :>> id = "FC-003";
117
+ attribute :>> name = "PowerOnSelfTestChain";
118
+ attribute :>> chainKind = FunctionalChainKind::startup;
119
+ attribute :>> startFunction = "FUNC-009: ManagePower";
120
+ attribute :>> endFunction = "FUNC-010: PresentStatus";
121
+ attribute :>> endToEndLatencyBudgetMs = "5000";
122
+ attribute :>> safetyRelevant = true;
123
+ attribute :>> securityRelevant = false;
124
+ attribute :>> description = "Power-on through CPU/memory/sensor self test to IDLE with status display; failed POST blocks therapy.";
125
+ }
126
+
127
+ // ── System scenarios ────────────────────────────────────────
128
+ part ssBolusDuringBasal : SystemScenario {
129
+ attribute :>> id = "SS-001";
130
+ attribute :>> name = "PatientBolusDuringBasal";
131
+ attribute :>> scenarioKind = ScenarioKind::nominal;
132
+ attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
133
+ attribute :>> precondition = "BASAL mode active; no REQ 25 ignore condition holds";
134
+ attribute :>> postcondition = "PATIENT_BOLUS mode entered, bolus delivered, return to BASAL";
135
+ }
136
+ part ssAlarmPause : SystemScenario {
137
+ attribute :>> id = "SS-002";
138
+ attribute :>> name = "InhibitingNotificationPausesInfusion";
139
+ attribute :>> scenarioKind = ScenarioKind::alarm;
140
+ attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
141
+ attribute :>> precondition = "any ACTIVE therapy mode; infusion-inhibiting notification detected (REQ 59)";
142
+ attribute :>> postcondition = "PAUSED mode entered in same execution step at FlowRate_kvo_hd keep-vein-open flow; notification annunciated per REQ 59";
143
+ }
144
+ }