@memoarchitect/ontology 0.7.0 → 0.8.24

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 (270) hide show
  1. package/README.md +4 -2
  2. package/examples/connected-patient-monitor/memo.package.yaml +3 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
  4. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  5. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  6. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +8 -6
  7. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  8. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  9. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +6 -6
  10. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  11. package/examples/gpca-pump/memo.package.yaml +3 -0
  12. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
  13. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
  14. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
  15. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
  16. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
  17. package/examples/gpca-pump/model/catalog/gpca_context.sysml +14 -3
  18. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +8 -5
  19. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
  20. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +97 -103
  21. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
  22. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
  23. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
  24. package/examples/gpca-pump/model/catalog/gpca_system.sysml +17 -17
  25. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -334
  26. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
  27. package/examples/gpca-pump/model/catalog/project.sysml +5 -0
  28. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +2 -4
  29. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
  30. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
  31. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
  32. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
  33. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
  34. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
  35. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -7
  36. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
  37. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
  38. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +2 -4
  39. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
  40. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
  41. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +2 -4
  42. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -8
  44. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
  45. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -6
  47. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
  48. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
  49. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +2 -5
  50. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
  51. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +5 -6
  52. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -6
  53. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
  54. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  55. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
  56. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  57. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  58. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -3
  59. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  60. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  61. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
  62. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  63. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  64. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
  65. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
  66. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
  67. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
  68. package/examples/reusable-instrument/memo.package.yaml +3 -0
  69. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +16 -23
  70. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  71. package/examples/ros-mobile-robot/README.md +40 -0
  72. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  73. package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
  74. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
  75. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
  76. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +12 -0
  77. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  78. package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
  79. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +12 -6
  80. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  81. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  82. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +58 -75
  83. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  84. package/examples/surgical-robot/memo.package.yaml +3 -0
  85. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
  86. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  87. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  88. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -18
  89. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -11
  90. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +43 -68
  91. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +57 -68
  92. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +40 -70
  93. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +4 -8
  94. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -20
  95. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +52 -84
  96. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +22 -33
  97. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +13 -10
  98. package/examples/temperature-alarm/memo.package.yaml +3 -0
  99. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -25
  100. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  101. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  102. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
  103. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
  104. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
  105. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
  106. package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
  107. package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
  108. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +2 -3
  109. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  110. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  111. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
  112. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
  113. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
  114. package/extensions/LICENSES/MIT.txt +19 -0
  115. package/extensions/README.md +94 -0
  116. package/extensions/aadl/memo.package.yaml +18 -0
  117. package/extensions/aadl/src/aadl_extension.sysml +6 -0
  118. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
  119. package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
  120. package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
  121. package/extensions/cloud/memo.package.yaml +18 -0
  122. package/extensions/cloud/src/cloud_extension.sysml +44 -0
  123. package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
  124. package/extensions/container/memo.package.yaml +18 -0
  125. package/extensions/container/src/container_extension.sysml +37 -0
  126. package/extensions/container/src/methodology/container_methodology.sysml +17 -0
  127. package/extensions/messaging/memo.package.yaml +18 -0
  128. package/extensions/messaging/src/messaging_extension.sysml +64 -0
  129. package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
  130. package/extensions/ros/memo.package.yaml +18 -0
  131. package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
  132. package/extensions/ros/src/ros_extension.sysml +200 -0
  133. package/extensions/template/src/extension.sysml +37 -0
  134. package/memo.manifest.yaml +13 -2
  135. package/methodologies/default/memo.package.yaml +1 -1
  136. package/methodologies/gpca/memo.package.yaml +1 -1
  137. package/ontology/memo.package.yaml +1 -1
  138. package/package.json +5 -3
  139. package/profile/memo.package.yaml +1 -1
  140. package/src/architecture/decisions/memo_decisions.sysml +23 -2
  141. package/src/architecture/functional/behavior/memo_behavior.sysml +51 -23
  142. package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
  143. package/src/architecture/functional/functions/memo_functions.sysml +93 -36
  144. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
  145. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
  146. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +40 -13
  147. package/src/architecture/implementation/ui/memo_ui.sysml +83 -43
  148. package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -12
  149. package/src/architecture/logical/structure/memo_logical_structure.sysml +26 -25
  150. package/src/architecture/operational/activities/memo_activities.sysml +27 -29
  151. package/src/architecture/operational/context/actors/memo_actors.sysml +8 -10
  152. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +16 -33
  153. package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -17
  154. package/src/architecture/operational/scenarios/memo_scenarios.sysml +36 -84
  155. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  156. package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -27
  157. package/src/architecture/operational/workflows/memo_workflows.sysml +45 -28
  158. package/src/architecture/realization/deployment/memo_deployment.sysml +115 -20
  159. package/src/architecture/realization/physical/memo_physical_architecture.sysml +29 -4
  160. package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
  161. package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
  162. package/src/artifacts/standards/cfr_21_820.sysml +116 -0
  163. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
  164. package/src/artifacts/standards/iec_60601_1.sysml +149 -0
  165. package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
  166. package/src/artifacts/standards/iec_60812.sysml +51 -0
  167. package/src/artifacts/standards/iec_62304.sysml +210 -0
  168. package/src/artifacts/standards/iec_62366_1.sysml +113 -0
  169. package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
  170. package/src/artifacts/standards/iso_13485.sysml +113 -0
  171. package/src/artifacts/standards/iso_14971.sysml +94 -0
  172. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
  173. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
  174. package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
  175. package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
  176. package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
  177. package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
  178. package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
  179. package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
  180. package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
  181. package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
  182. package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
  183. package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
  184. package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
  185. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
  186. package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
  187. package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
  188. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
  189. package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
  190. package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
  191. package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
  192. package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
  193. package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
  194. package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
  195. package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
  196. package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
  197. package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
  198. package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
  199. package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
  200. package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
  201. package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
  202. package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
  203. package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
  204. package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
  205. package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
  206. package/src/artifacts/templates/dhf/system/sad.md +173 -0
  207. package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
  208. package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
  209. package/src/artifacts/templates/dhf/system/syrs.md +128 -0
  210. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +40 -21
  211. package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
  212. package/src/assurance/requirements/memo_requirements.sysml +7 -20
  213. package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
  214. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
  215. package/src/assurance/safety_risk/memo_risk.sysml +90 -7
  216. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
  217. package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
  218. package/src/core/annotations/memo_annotations.sysml +25 -6
  219. package/src/core/common/memo_common.sysml +130 -21
  220. package/src/core/consistency_rules/consistency_rules.sysml +1 -1
  221. package/src/core/dimensions/dimensions.sysml +12 -0
  222. package/src/core/enumerations/memo_enumerations.sysml +60 -14
  223. package/src/core/relationships/memo_relationships.sysml +199 -196
  224. package/src/memo_namespaces.sysml +30 -0
  225. package/src/methodology/core/memo_core.sysml +24 -0
  226. package/src/methodology/profiles/memo_profiles.sysml +1 -1
  227. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  228. package/src/rules/closure/closure_rules.sysml +20 -20
  229. package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
  230. package/src/rules/ontology/ontology_invariants.sysml +223 -11
  231. package/src/rules/quantitative/quantitative_rules.sysml +2 -2
  232. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +30 -30
  233. package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
  234. package/src/viewpoints/context/context_viewpoint.sysml +2 -3
  235. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
  236. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
  237. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -3
  238. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  239. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -3
  240. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -3
  241. package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
  242. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
  243. package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
  244. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
  245. package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
  246. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
  247. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
  248. package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
  249. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
  250. package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
  251. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
  252. package/src/viewpoints/software/software_viewpoint.sysml +1 -2
  253. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
  254. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
  255. package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
  256. package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
  257. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -3
  258. package/templates/connected-device/memo.package.yaml +2 -0
  259. package/templates/default/memo.package.yaml +2 -0
  260. package/templates/infusion-pump/memo.package.yaml +2 -0
  261. package/templates/monitoring-device/memo.package.yaml +2 -0
  262. package/templates/samd/memo.package.yaml +2 -0
  263. package/examples/extensions/README.md +0 -16
  264. package/examples/extensions/template/src/extension.sysml +0 -15
  265. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  266. /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
  267. /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
  268. /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
  269. /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
  270. /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
@@ -1,5 +1,6 @@
1
1
  package memo_examples_gpca_pump_gpca_trace {
2
2
  private import ScalarValues::*;
3
+ private import ModelingMetadata::*;
3
4
 
4
5
  private import memo_core_relationships::*;
5
6
  private import memo_architecture_operational_context_actors::*;
@@ -33,6 +34,10 @@ package memo_examples_gpca_pump_gpca_trace {
33
34
  private import memo_architecture_operational_use_cases::*;
34
35
  private import memo_architecture_operational_workflows::*;
35
36
  private import memo_architecture_realization_deployment::*;
37
+ private import memo_assurance_human_factors::*;
38
+ private import memo_assurance_safety_risk::*;
39
+ private import memo_assurance_safety_risk_analysis::*;
40
+ private import memo_viewpoints_definitions::*;
36
41
 
37
42
  // ── System context interactions (context view) ──────────────
38
43
  connection : InteractsWith connect contextParticipant ::> actorPatient to target ::> entityGpcaPump;
@@ -44,70 +49,50 @@ package memo_examples_gpca_pump_gpca_trace {
44
49
 
45
50
  // ── Fig 2.1 context flows (CriSys §2.1) ─────────────────────
46
51
  // Data flows
47
- connection : ExchangesWith connect source ::> entityPrescription to target ::> actorNurse;
48
- connection : ExchangesWith connect source ::> actorNurse to target ::> entityGpcaPump;
49
- connection : ExchangesWith connect source ::> entityGpcaPump to target ::> actorNurse;
50
- connection : ExchangesWith connect source ::> actorPatient to target ::> entityGpcaPump;
51
- connection : ExchangesWith connect source ::> entityPharmacyDb to target ::> entityGpcaPump;
52
+ flow from entityPrescription to actorNurse;
53
+ flow from actorNurse to entityGpcaPump;
54
+ flow from entityGpcaPump to actorNurse;
55
+ flow from actorPatient to entityGpcaPump;
56
+ flow from entityPharmacyDb to entityGpcaPump;
52
57
  // Physical connections (drug path)
53
- connection : ConnectsPhysically connect source ::> entityDrugReservoir to target ::> entityGpcaPump;
54
- connection : ConnectsPhysically connect source ::> entityGpcaPump to target ::> entityNeedle;
55
- connection : ConnectsPhysically connect source ::> entityNeedle to target ::> actorPatient;
56
- connection : ConnectsPhysically connect source ::> entityPowerInfrastructure to target ::> entityGpcaPump;
58
+ connection connect source ::> entityDrugReservoir to target ::> entityGpcaPump;
59
+ connection connect source ::> entityGpcaPump to target ::> entityNeedle;
60
+ connection connect source ::> entityNeedle to target ::> actorPatient;
61
+ connection connect source ::> entityPowerInfrastructure to target ::> entityGpcaPump;
57
62
  // Intended use and use context anchoring (no floating context nodes)
58
63
  connection : Governs { attribute :>> governKind = GovernKind::'use'; connect governor ::> gpcaIntendedUse to governedElement ::> entityGpcaPump; }
59
64
  connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityGpcaPump;
60
65
  connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityHospital;
61
66
 
62
- // ── Actor participation (use case view) ─────────────────────
63
- connection : Initiates connect initiatingUser ::> actorNurse to initiatedUseCase ::> ucDeliverPcaTherapy;
64
- connection : ParticipatesIn connect participatingActor ::> actorPatient to useCase ::> ucDeliverPcaTherapy;
65
- connection : ParticipatesIn connect participatingActor ::> actorPrescriber to useCase ::> ucDeliverPcaTherapy;
66
- connection : ParticipatesIn connect participatingActor ::> actorPharmacist to useCase ::> ucDeliverPcaTherapy;
67
- connection : Performs connect performer ::> actorPrescriber to performed ::> oaPrescribe;
68
- connection : Performs connect performer ::> actorPharmacist to performed ::> oaLoadReservoir;
69
- connection : Performs connect performer ::> actorNurse to performed ::> oaProgram;
70
- connection : Performs connect performer ::> actorNurse to performed ::> oaStartTherapy;
71
- connection : Performs connect performer ::> actorNurse to performed ::> oaRespondAlarm;
72
- connection : Performs connect performer ::> actorNurse to performed ::> oaReviewLog;
73
- connection : Performs connect performer ::> actorPatient to performed ::> oaRequestBolus;
74
- connection : Performs connect performer ::> actorTechnician to performed ::> oaMaintain;
67
+ // Actor participation (use case view): native `actor`, nested in
68
+ // ucDeliverPcaTherapy's own body in gpca_operational.sysml (R10-S6).
75
69
 
76
70
  // ── Operational thread (therapy lifecycle) ──────────────────
77
- connection : Precedes connect predecessor ::> oaPrescribe to successor ::> oaLoadReservoir;
78
- connection : Precedes connect predecessor ::> oaLoadReservoir to successor ::> oaProgram;
79
- connection : Precedes connect predecessor ::> oaProgram to successor ::> oaStartTherapy;
80
- connection : Precedes connect predecessor ::> oaStartTherapy to successor ::> oaRequestBolus;
81
- connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaStartTherapy to supported ::> ocTitratedAnalgesia; }
82
- connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaRequestBolus to supported ::> ocTitratedAnalgesia; }
83
- connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaRespondAlarm to supported ::> ocFailSafeTherapy; }
71
+ first oaPrescribe then oaLoadReservoir;
72
+ first oaLoadReservoir then oaProgram;
73
+ first oaProgram then oaStartTherapy;
74
+ first oaStartTherapy then oaRequestBolus;
84
75
  connection : DerivesFrom connect sourceDriver ::> oaProgram to targetRequirement ::> reqDrugLibraryLimits;
85
76
  connection : DerivesFrom connect sourceDriver ::> oaRequestBolus to targetRequirement ::> reqCs25;
86
77
  connection : DerivesFrom connect sourceDriver ::> oaRespondAlarm to targetRequirement ::> reqCs59;
87
78
 
88
79
  // ── Functional chains ───────────────────────────────────────
89
- connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnAcquireSensors;
90
- connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnEnforceLimits;
91
- connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnManageInfusion;
92
- connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnCommandPump;
93
- connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnLogEvents;
94
- connection : InvolvesFunction connect functionalChain ::> fcAlarmStop to function ::> fnAcquireSensors;
95
- connection : InvolvesFunction connect functionalChain ::> fcAlarmStop to function ::> fnMonitorAlarm;
96
- connection : InvolvesFunction connect functionalChain ::> fcAlarmStop to function ::> fnManageInfusion;
97
- connection : InvolvesFunction connect functionalChain ::> fcAlarmStop to function ::> fnAnnunciate;
98
- connection : InvolvesFunction connect functionalChain ::> fcStartup to function ::> fnSelfTest;
99
- connection : InvolvesFunction connect functionalChain ::> fcStartup to function ::> fnPresentStatus;
100
- connection : Realizes connect realizing ::> fcPatientBolus to realized ::> ssBolusDuringBasal;
101
- connection : Realizes connect realizing ::> fcAlarmStop to realized ::> ssAlarmPause;
102
- connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusSense;
103
- connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusValidate;
104
- connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusCommand;
105
- connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusActuate;
106
- connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusLog;
107
- connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmSense;
108
- connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmEvaluate;
109
- connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmStopInfusion;
110
- connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmAnnunciate;
80
+ // fcPatientBolus/fcAlarmStop already name every one of these functions
81
+ // via their step chain (perform fcsBolusSense; ... ref :>> function =
82
+ // fnAcquireSensors;) in gpca_system.sysml — InvolvesFunction was a
83
+ // flattened restatement of that two-hop path, not new information.
84
+ // fcStartup declares no steps, so its two functions are native `perform`
85
+ // statements directly on fcStartup in gpca_system.sysml instead.
86
+ #refinement dependency fcPatientBolus to ssBolusDuringBasal;
87
+ #refinement dependency fcAlarmStop to ssAlarmPause;
88
+
89
+ // A user task may be realized by several system-side steps: the mapping is
90
+ // refinement, not specialization, because the steps retain distinct
91
+ // functions and exchanged items while tracing the same operative intent.
92
+ // The nine refinement statements themselves live in gpca_operational.sysml,
93
+ // inside wsRequestBolus's/wsRespondAlarm's own owning scope — the
94
+ // `#refinement dependency ... to ...` shorthand's target end does not
95
+ // accept a qualified path, and both steps are nested now.
111
96
 
112
97
  // ── Requirement derivation ──────────────────────────────────
113
98
  // MEMO extension requirements (REQ-X) derive from needs and risks.
@@ -228,249 +213,210 @@ package memo_examples_gpca_pump_gpca_trace {
228
213
  connection : DerivesFrom connect sourceDriver ::> needAuditableRecord to targetRequirement ::> reqCs86;
229
214
 
230
215
  // ── Requirement satisfaction ────────────────────────────────
231
- connection : SatisfiedBy connect requirementElement ::> reqCs01 to satisfyingElement ::> tlm;
232
- connection : SatisfiedBy connect requirementElement ::> reqCs01 to satisfyingElement ::> outputBus;
233
- connection : SatisfiedBy connect requirementElement ::> reqCs18 to satisfyingElement ::> systemStatus;
234
- connection : SatisfiedBy connect requirementElement ::> reqCs23 to satisfyingElement ::> systemStatus;
235
- connection : SatisfiedBy connect requirementElement ::> reqCs25 to satisfyingElement ::> infusionMgr;
236
- connection : SatisfiedBy connect requirementElement ::> reqCs19 to satisfyingElement ::> alarm;
237
- connection : SatisfiedBy connect requirementElement ::> reqDrugLibraryLimits to satisfyingElement ::> config;
238
- connection : SatisfiedBy connect requirementElement ::> reqCs09 to satisfyingElement ::> config;
239
- connection : SatisfiedBy connect requirementElement ::> reqPowerLossRetention to satisfyingElement ::> config;
240
- connection : SatisfiedBy connect requirementElement ::> reqPost to satisfyingElement ::> systemMonitor;
241
- connection : SatisfiedBy connect requirementElement ::> reqWatchdogSafeState to satisfyingElement ::> systemMonitor;
242
- connection : SatisfiedBy connect requirementElement ::> reqWatchdogSafeState to satisfyingElement ::> controllerBoard;
243
- connection : SatisfiedBy connect requirementElement ::> reqCs59 to satisfyingElement ::> alarm;
244
- connection : SatisfiedBy connect requirementElement ::> reqCs72 to satisfyingElement ::> audibleAlarm;
245
- connection : SatisfiedBy connect requirementElement ::> reqCs73 to satisfyingElement ::> alarm;
246
- connection : SatisfiedBy connect requirementElement ::> reqCs75 to satisfyingElement ::> alarm;
247
- connection : SatisfiedBy connect requirementElement ::> reqCs21 to satisfyingElement ::> airInLineSensor;
248
- connection : SatisfiedBy connect requirementElement ::> reqCs21 to satisfyingElement ::> alarm;
249
- connection : SatisfiedBy connect requirementElement ::> reqOcclusion to satisfyingElement ::> occlusionSensor;
250
- connection : SatisfiedBy connect requirementElement ::> reqOcclusion to satisfyingElement ::> alarm;
251
- connection : SatisfiedBy connect requirementElement ::> reqCs23 to satisfyingElement ::> reservoirSensor;
252
- connection : SatisfiedBy connect requirementElement ::> reqCs23 to satisfyingElement ::> infusionMgr;
253
- connection : SatisfiedBy connect requirementElement ::> reqDoorOpen to satisfyingElement ::> doorSensor;
254
- connection : SatisfiedBy connect requirementElement ::> reqDoorOpen to satisfyingElement ::> infusionMgr;
255
- connection : SatisfiedBy connect requirementElement ::> reqMaxHourlyDose to satisfyingElement ::> infusionMgr;
256
- connection : SatisfiedBy connect requirementElement ::> reqStuckButton to satisfyingElement ::> infusionMgr;
257
- connection : SatisfiedBy connect requirementElement ::> reqFlowCrossCheck to satisfyingElement ::> flowSensor;
258
- connection : SatisfiedBy connect requirementElement ::> reqFlowCrossCheck to satisfyingElement ::> alarm;
259
- connection : SatisfiedBy connect requirementElement ::> reqCs77 to satisfyingElement ::> logging;
260
- connection : SatisfiedBy connect requirementElement ::> reqCs78 to satisfyingElement ::> logging;
261
- connection : SatisfiedBy connect requirementElement ::> reqEventLogging to satisfyingElement ::> logging;
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
262
247
  // CriSys REQ-CS allocation to the UMN software subsystems
263
248
  // (coarse; refined against the AADL architecture in GR.04).
264
249
  // Mode control -> TLM; flow production -> Infusion_Manager;
265
250
  // notifications -> Alarm; data configuration -> Config;
266
251
  // logs -> Logging; enclosure non-behavioral -> DeviceEnclosure.
267
- connection : SatisfiedBy connect requirementElement ::> reqCs02 to satisfyingElement ::> tlm;
268
- connection : SatisfiedBy connect requirementElement ::> reqCs03 to satisfyingElement ::> infusionMgr;
269
- connection : SatisfiedBy connect requirementElement ::> reqCs04 to satisfyingElement ::> tlm;
270
- connection : SatisfiedBy connect requirementElement ::> reqCs05 to satisfyingElement ::> tlm;
271
- connection : SatisfiedBy connect requirementElement ::> reqCs06 to satisfyingElement ::> infusionMgr;
272
- connection : SatisfiedBy connect requirementElement ::> reqCs07 to satisfyingElement ::> tlm;
273
- connection : SatisfiedBy connect requirementElement ::> reqCs08 to satisfyingElement ::> config;
274
- connection : SatisfiedBy connect requirementElement ::> reqCs10 to satisfyingElement ::> alarm;
275
- connection : SatisfiedBy connect requirementElement ::> reqCs11 to satisfyingElement ::> logging;
276
- connection : SatisfiedBy connect requirementElement ::> reqCs12 to satisfyingElement ::> tlm;
277
- connection : SatisfiedBy connect requirementElement ::> reqCs13 to satisfyingElement ::> tlm;
278
- connection : SatisfiedBy connect requirementElement ::> reqCs14 to satisfyingElement ::> infusionMgr;
279
- connection : SatisfiedBy connect requirementElement ::> reqCs15 to satisfyingElement ::> alarm;
280
- connection : SatisfiedBy connect requirementElement ::> reqCs16 to satisfyingElement ::> infusionMgr;
281
- connection : SatisfiedBy connect requirementElement ::> reqCs17 to satisfyingElement ::> alarm;
282
- connection : SatisfiedBy connect requirementElement ::> reqCs18 to satisfyingElement ::> alarm;
283
- connection : SatisfiedBy connect requirementElement ::> reqCs20 to satisfyingElement ::> alarm;
284
- connection : SatisfiedBy connect requirementElement ::> reqCs22 to satisfyingElement ::> alarm;
285
- connection : SatisfiedBy connect requirementElement ::> reqCs24 to satisfyingElement ::> infusionMgr;
286
- connection : SatisfiedBy connect requirementElement ::> reqCs26 to satisfyingElement ::> alarm;
287
- connection : SatisfiedBy connect requirementElement ::> reqCs27 to satisfyingElement ::> alarm;
288
- connection : SatisfiedBy connect requirementElement ::> reqCs28 to satisfyingElement ::> tlm;
289
- connection : SatisfiedBy connect requirementElement ::> reqCs29 to satisfyingElement ::> tlm;
290
- connection : SatisfiedBy connect requirementElement ::> reqCs30 to satisfyingElement ::> tlm;
291
- connection : SatisfiedBy connect requirementElement ::> reqCs31 to satisfyingElement ::> tlm;
292
- connection : SatisfiedBy connect requirementElement ::> reqCs32 to satisfyingElement ::> tlm;
293
- connection : SatisfiedBy connect requirementElement ::> reqCs33 to satisfyingElement ::> tlm;
294
- connection : SatisfiedBy connect requirementElement ::> reqCs34 to satisfyingElement ::> tlm;
295
- connection : SatisfiedBy connect requirementElement ::> reqCs35 to satisfyingElement ::> tlm;
296
- connection : SatisfiedBy connect requirementElement ::> reqCs36 to satisfyingElement ::> tlm;
297
- connection : SatisfiedBy connect requirementElement ::> reqCs37 to satisfyingElement ::> tlm;
298
- connection : SatisfiedBy connect requirementElement ::> reqCs38 to satisfyingElement ::> tlm;
299
- connection : SatisfiedBy connect requirementElement ::> reqCs39 to satisfyingElement ::> tlm;
300
- connection : SatisfiedBy connect requirementElement ::> reqCs40 to satisfyingElement ::> infusionMgr;
301
- connection : SatisfiedBy connect requirementElement ::> reqCs41 to satisfyingElement ::> infusionMgr;
302
- connection : SatisfiedBy connect requirementElement ::> reqCs42 to satisfyingElement ::> infusionMgr;
303
- connection : SatisfiedBy connect requirementElement ::> reqCs43 to satisfyingElement ::> infusionMgr;
304
- connection : SatisfiedBy connect requirementElement ::> reqCs44 to satisfyingElement ::> alarm;
305
- connection : SatisfiedBy connect requirementElement ::> reqCs45 to satisfyingElement ::> tlm;
306
- connection : SatisfiedBy connect requirementElement ::> reqCs46 to satisfyingElement ::> tlm;
307
- connection : SatisfiedBy connect requirementElement ::> reqCs47 to satisfyingElement ::> tlm;
308
- connection : SatisfiedBy connect requirementElement ::> reqCs48 to satisfyingElement ::> config;
309
- connection : SatisfiedBy connect requirementElement ::> reqCs49 to satisfyingElement ::> config;
310
- connection : SatisfiedBy connect requirementElement ::> reqCs50 to satisfyingElement ::> config;
311
- connection : SatisfiedBy connect requirementElement ::> reqCs51 to satisfyingElement ::> config;
312
- connection : SatisfiedBy connect requirementElement ::> reqCs52 to satisfyingElement ::> config;
313
- connection : SatisfiedBy connect requirementElement ::> reqCs53 to satisfyingElement ::> config;
314
- connection : SatisfiedBy connect requirementElement ::> reqCs54 to satisfyingElement ::> config;
315
- connection : SatisfiedBy connect requirementElement ::> reqCs55 to satisfyingElement ::> config;
316
- connection : SatisfiedBy connect requirementElement ::> reqCs56 to satisfyingElement ::> config;
317
- connection : SatisfiedBy connect requirementElement ::> reqCs57 to satisfyingElement ::> config;
318
- connection : SatisfiedBy connect requirementElement ::> reqCs58 to satisfyingElement ::> config;
319
- connection : SatisfiedBy connect requirementElement ::> reqCs60 to satisfyingElement ::> alarm;
320
- connection : SatisfiedBy connect requirementElement ::> reqCs61 to satisfyingElement ::> alarm;
321
- connection : SatisfiedBy connect requirementElement ::> reqCs62 to satisfyingElement ::> alarm;
322
- connection : SatisfiedBy connect requirementElement ::> reqCs63 to satisfyingElement ::> alarm;
323
- connection : SatisfiedBy connect requirementElement ::> reqCs64 to satisfyingElement ::> alarm;
324
- connection : SatisfiedBy connect requirementElement ::> reqCs65 to satisfyingElement ::> alarm;
325
- connection : SatisfiedBy connect requirementElement ::> reqCs66 to satisfyingElement ::> alarm;
326
- connection : SatisfiedBy connect requirementElement ::> reqCs67 to satisfyingElement ::> alarm;
327
- connection : SatisfiedBy connect requirementElement ::> reqCs68 to satisfyingElement ::> alarm;
328
- connection : SatisfiedBy connect requirementElement ::> reqCs69 to satisfyingElement ::> alarm;
329
- connection : SatisfiedBy connect requirementElement ::> reqCs70 to satisfyingElement ::> alarm;
330
- connection : SatisfiedBy connect requirementElement ::> reqCs71 to satisfyingElement ::> alarm;
331
- connection : SatisfiedBy connect requirementElement ::> reqCs74 to satisfyingElement ::> alarm;
332
- connection : SatisfiedBy connect requirementElement ::> reqCs76 to satisfyingElement ::> alarm;
333
- connection : SatisfiedBy connect requirementElement ::> reqCs79 to satisfyingElement ::> logging;
334
- connection : SatisfiedBy connect requirementElement ::> reqCs80 to satisfyingElement ::> logging;
335
- connection : SatisfiedBy connect requirementElement ::> reqCs81 to satisfyingElement ::> logging;
336
- connection : SatisfiedBy connect requirementElement ::> reqCs82 to satisfyingElement ::> config;
337
- connection : SatisfiedBy connect requirementElement ::> reqCs83 to satisfyingElement ::> enclosure;
338
- connection : SatisfiedBy connect requirementElement ::> reqCs84 to satisfyingElement ::> enclosure;
339
- connection : SatisfiedBy connect requirementElement ::> reqCs85 to satisfyingElement ::> logging;
340
- connection : SatisfiedBy connect requirementElement ::> reqCs86 to satisfyingElement ::> config;
341
- connection : SatisfiedBy connect requirementElement ::> reqPumpAccuracy to satisfyingElement ::> pumpMotorAssembly;
342
- connection : SatisfiedBy connect requirementElement ::> reqAlarmLoudness to satisfyingElement ::> audibleAlarm;
343
- connection : SatisfiedBy connect requirementElement ::> reqBatteryBackup to satisfyingElement ::> batteryPack;
344
- connection : SatisfiedBy connect requirementElement ::> reqFreeFlowPrevention to satisfyingElement ::> antiFreeFlowValve;
345
252
 
346
- // ── Function allocation ─────────────────────────────────────
347
- connection : AllocatedTo connect function ::> fnAcquireSensors to allocatedElement ::> gpcaDeviceSensors;
348
- connection : AllocatedTo connect function ::> fnAcquireSensors to allocatedElement ::> systemStatus;
349
- connection : AllocatedTo connect function ::> fnPresentStatus to allocatedElement ::> outputBus;
350
- connection : AllocatedTo connect function ::> fnValidatePrescription to allocatedElement ::> config;
351
- connection : AllocatedTo connect function ::> fnMonitorAlarm to allocatedElement ::> alarm;
352
- connection : AllocatedTo connect function ::> fnAnnunciate to allocatedElement ::> audibleAlarm;
353
- connection : AllocatedTo connect function ::> fnManageInfusion to allocatedElement ::> infusionMgr;
354
- connection : AllocatedTo connect function ::> fnEnforceLimits to allocatedElement ::> infusionMgr;
355
- connection : AllocatedTo connect function ::> fnCommandPump to allocatedElement ::> pumpMotorAssembly;
356
- connection : AllocatedTo connect function ::> fnLogEvents to allocatedElement ::> logging;
357
- connection : AllocatedTo connect function ::> fnManagePower to allocatedElement ::> systemMonitor;
358
- connection : AllocatedTo connect function ::> fnPresentStatus to allocatedElement ::> operatorDisplay;
359
- connection : AllocatedTo connect function ::> fnSelfTest to allocatedElement ::> systemMonitor;
360
253
 
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+ // ── Function allocation ─────────────────────────────────────
331
+ allocate fnAcquireSensors to gpcaDevice.gpcaDeviceSensors;
332
+ allocate fnAcquireSensors to gpcaDevice.gpcaSoftware.systemStatus;
333
+ allocate fnPresentStatus to gpcaDevice.gpcaSoftware.outputBus;
334
+ allocate fnValidatePrescription to gpcaDevice.gpcaSoftware.config;
335
+ allocate fnMonitorAlarm to gpcaDevice.gpcaSoftware.alarm;
336
+ allocate fnAnnunciate to audibleAlarm;
337
+ allocate fnManageInfusion to gpcaDevice.gpcaSoftware.infusionMgr;
338
+ allocate fnEnforceLimits to gpcaDevice.gpcaSoftware.infusionMgr;
339
+ allocate fnCommandPump to pumpMotorAssembly;
340
+ allocate fnLogEvents to gpcaDevice.gpcaSoftware.logging;
341
+ allocate fnManagePower to gpcaDevice.gpcaSoftware.systemMonitor;
342
+ allocate fnPresentStatus to operatorDisplay;
343
+ allocate fnSelfTest to gpcaDevice.gpcaSoftware.systemMonitor;
361
344
  // ── Deployment, hosting, and interface realization ──────────
362
- connection : DeploysTo connect deploymentUnit ::> gpcaSoftware to node ::> controllerBoard;
345
+ allocation gpcaSoftwareDeployment : DeploysTo allocate gpcaDevice.gpcaSoftware to controllerBoard;
363
346
  connection : HostedBy connect processingNode ::> mainController to hostAssembly ::> controllerBoard;
364
- connection : Realizes connect realized ::> sensorInputInterface to realizing ::> hwSoftwareBus;
365
- connection : Realizes connect realized ::> actuatorCommandInterface to realizing ::> pumpMotorDrive;
347
+ #refinement dependency sensorInputInterface to hwSoftwareBus;
348
+ #refinement dependency actuatorCommandInterface to pumpMotorDrive;
366
349
  connection : BindsToInterface connect portElement ::> portPatientPendant to boundInterface ::> bolusButtonLine;
367
350
  connection : BindsToInterface connect portElement ::> portMotorDrive to boundInterface ::> pumpMotorDrive;
368
351
  connection : BindsToInterface connect portElement ::> portSensorHarness to boundInterface ::> occlusionAnalogLine;
369
- connection : AllocatedTo connect function ::> lfSensorAcquisition to allocatedElement ::> exSensorVector;
370
- connection : AllocatedTo connect function ::> lfFlowCommand to allocatedElement ::> exFlowCommand;
371
- connection : AllocatedTo connect function ::> lfAlarmSignal to allocatedElement ::> exAlarmAnnunciation;
372
- connection : AllocatedTo connect function ::> lfPrescriptionEntry to allocatedElement ::> exPrescriptionEntry;
373
-
352
+ allocate lfSensorAcquisition to exSensorVector;
353
+ allocate lfFlowCommand to exFlowCommand;
354
+ allocate lfAlarmSignal to exAlarmAnnunciation;
355
+ allocate lfPrescriptionEntry to exPrescriptionEntry;
374
356
  // ── Fig 4.1 mode hierarchy (CriSys §4.1) ────────────────────
375
- connection : Composes connect parent ::> topLevelModeMachine to child ::> modeOFF;
376
- connection : Composes connect parent ::> topLevelModeMachine to child ::> modeON;
377
- connection : Composes connect parent ::> modeON to child ::> modeIDLE;
378
- connection : Composes connect parent ::> modeON to child ::> modeTHERAPY;
379
- connection : Composes connect parent ::> modeTHERAPY to child ::> modePAUSED;
380
- connection : Composes connect parent ::> modeTHERAPY to child ::> modeACTIVE;
381
- connection : Composes connect parent ::> modeACTIVE to child ::> modeBASAL;
382
- connection : Composes connect parent ::> modeACTIVE to child ::> modeSQUARE;
383
- connection : Composes connect parent ::> modeACTIVE to child ::> modePBOLUS;
384
-
385
- // ── GPCA_SW.Impl connection topology (AADL, 1:1; CE-101..142) ──
386
- // Edges mirror the 42 GPCA_SW.Impl port connections; immediate
387
- // semantics per connection are carried on the CE-1xx elements.
388
- connection : ExchangesWith connect source ::> portOpCmdIn to target ::> tlm;
389
- connection : ExchangesWith connect source ::> portConstIn to target ::> tlm;
390
- connection : ExchangesWith connect source ::> tlm to target ::> outputBus;
391
- connection : ExchangesWith connect source ::> infusionMgr to target ::> systemStatus;
392
- connection : ExchangesWith connect source ::> tlm to target ::> systemStatus;
393
- connection : ExchangesWith connect source ::> portSensorIn to target ::> systemStatus;
394
- connection : ExchangesWith connect source ::> portConstIn to target ::> systemStatus;
395
- connection : ExchangesWith connect source ::> config to target ::> systemStatus;
396
- connection : ExchangesWith connect source ::> systemStatus to target ::> outputBus;
397
- connection : ExchangesWith connect source ::> infusionMgr to target ::> alarm;
398
- connection : ExchangesWith connect source ::> tlm to target ::> alarm;
399
- connection : ExchangesWith connect source ::> systemMonitor to target ::> alarm;
400
- connection : ExchangesWith connect source ::> portOpCmdIn to target ::> alarm;
401
- connection : ExchangesWith connect source ::> portDbIn to target ::> alarm;
402
- connection : ExchangesWith connect source ::> portSensorIn to target ::> alarm;
403
- connection : ExchangesWith connect source ::> portConstIn to target ::> alarm;
404
- connection : ExchangesWith connect source ::> systemStatus to target ::> alarm;
405
- connection : ExchangesWith connect source ::> config to target ::> alarm;
406
- connection : ExchangesWith connect source ::> alarm to target ::> outputBus;
407
- connection : ExchangesWith connect source ::> tlm to target ::> config;
408
- connection : ExchangesWith connect source ::> portPresIn to target ::> config;
409
- connection : ExchangesWith connect source ::> portOpCmdIn to target ::> config;
410
- connection : ExchangesWith connect source ::> portDbIn to target ::> config;
411
- connection : ExchangesWith connect source ::> portConstIn to target ::> config;
412
- connection : ExchangesWith connect source ::> systemStatus to target ::> config;
413
- connection : ExchangesWith connect source ::> config to target ::> outputBus;
414
- connection : ExchangesWith connect source ::> tlm to target ::> infusionMgr;
415
- connection : ExchangesWith connect source ::> portOpCmdIn to target ::> infusionMgr;
416
- connection : ExchangesWith connect source ::> portPatientIn to target ::> infusionMgr;
417
- connection : ExchangesWith connect source ::> config to target ::> infusionMgr;
418
- connection : ExchangesWith connect source ::> alarm to target ::> infusionMgr;
419
- connection : ExchangesWith connect source ::> systemStatus to target ::> infusionMgr;
420
- connection : ExchangesWith connect source ::> infusionMgr to target ::> outputBus;
421
- connection : ExchangesWith connect source ::> tlm to target ::> systemMonitor;
422
- connection : ExchangesWith connect source ::> systemMonitor to target ::> outputBus;
423
- connection : ExchangesWith connect source ::> tlm to target ::> logging;
424
- connection : ExchangesWith connect source ::> config to target ::> logging;
425
- connection : ExchangesWith connect source ::> alarm to target ::> logging;
426
- connection : ExchangesWith connect source ::> systemStatus to target ::> logging;
427
- connection : ExchangesWith connect source ::> infusionMgr to target ::> logging;
428
- connection : ExchangesWith connect source ::> logging to target ::> outputBus;
429
- connection : ExchangesWith connect source ::> outputBus to target ::> portGpcaSwOut;
357
+
358
+ // ── GPCA_SW.Impl connection topology (AADL; CE-101..142) ─────
359
+ // The COMPONENT-granularity half of the 42 GPCA_SW.Impl port
360
+ // connections; immediate semantics per connection are carried on
361
+ // the CE-1xx elements.
362
+ //
363
+ // Only the 27 subcomponent-to-subcomponent edges live here. AADL's
364
+ // other 15 are DELEGATIONS between GPCA_SW's own boundary port and
365
+ // a subcomponent, and a delegation has no component-granularity
366
+ // spelling: writing it `portOpCmdIn -> tlm` mixes a port end with a
367
+ // component end, and SysML v2 rejects it because a boundary port
368
+ // reads as a sink from outside its part. All 15 are already
369
+ // recorded exactly, at port granularity, as `bind` statements in
370
+ // gpca_interfaces.sysml — so nothing is lost by not restating them
371
+ // here in a granularity that cannot express them.
372
+ flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.outputBus;
373
+ flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.systemStatus;
374
+ flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.systemStatus;
375
+ flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.systemStatus;
376
+ flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.outputBus;
377
+ flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.alarm;
378
+ flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.alarm;
379
+ flow from gpcaDevice.gpcaSoftware.systemMonitor to gpcaDevice.gpcaSoftware.alarm;
380
+ flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.alarm;
381
+ flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.alarm;
382
+ flow from gpcaDevice.gpcaSoftware.alarm to gpcaDevice.gpcaSoftware.outputBus;
383
+ flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.config;
384
+ flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.config;
385
+ flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.outputBus;
386
+ flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.infusionMgr;
387
+ flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.infusionMgr;
388
+ flow from gpcaDevice.gpcaSoftware.alarm to gpcaDevice.gpcaSoftware.infusionMgr;
389
+ flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.infusionMgr;
390
+ flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.outputBus;
391
+ flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.systemMonitor;
392
+ flow from gpcaDevice.gpcaSoftware.systemMonitor to gpcaDevice.gpcaSoftware.outputBus;
393
+ flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.logging;
394
+ flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.logging;
395
+ flow from gpcaDevice.gpcaSoftware.alarm to gpcaDevice.gpcaSoftware.logging;
396
+ flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.logging;
397
+ flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.logging;
398
+ flow from gpcaDevice.gpcaSoftware.logging to gpcaDevice.gpcaSoftware.outputBus;
430
399
 
431
400
  // ── GPCA_SW boundary features (AADL GPCA_SW.aadl; CITE-002) ──
432
401
  // The seven top-level ports are features of GPCA_Software, so
433
- // interconnection views pin them on the software boundary.
434
- connection : Composes connect parent ::> gpcaSoftware to child ::> portOpCmdIn;
435
- connection : Composes connect parent ::> gpcaSoftware to child ::> portPresIn;
436
- connection : Composes connect parent ::> gpcaSoftware to child ::> portPatientIn;
437
- connection : Composes connect parent ::> gpcaSoftware to child ::> portSensorIn;
438
- connection : Composes connect parent ::> gpcaSoftware to child ::> portConstIn;
439
- connection : Composes connect parent ::> gpcaSoftware to child ::> portDbIn;
440
- connection : Composes connect parent ::> gpcaSoftware to child ::> portGpcaSwOut;
441
-
442
- // ── Device/subsystem feature ownership (published AADL, 1:1) ──
443
- connection : Composes connect parent ::> gpcaDevice to child ::> devOpCmdIn;
444
- connection : Composes connect parent ::> gpcaDevice to child ::> devDbIn;
445
- connection : Composes connect parent ::> gpcaDevice to child ::> devPresIn;
446
- connection : Composes connect parent ::> gpcaDevice to child ::> devPatientIn;
447
- connection : Composes connect parent ::> gpcaDevice to child ::> devGpcaOut;
448
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsOpCmdIn;
449
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsDbIn;
450
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPresIn;
451
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPatientIn;
452
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsOpCmdOut;
453
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPresOut;
454
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPatientOut;
455
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsSensorOut;
456
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsConstOut;
457
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsDbOut;
458
- connection : Composes connect parent ::> gpcaActuators to child ::> actGpcaSwIn;
459
- connection : Composes connect parent ::> gpcaActuators to child ::> actGpcaOut;
402
+ // interconnection views pin them on the software boundary. Each software
403
+ // module owns the AADL features it declares, natively: the ports are
404
+ // nested in the module's own body in gpca_architecture.sysml, not wired
405
+ // here with a separate relationship.
460
406
 
461
407
  // ── GPCA_Device.Impl connections (GPCA_Device.aadl, 1:1) ──
462
- connection : ExchangesWith connect source ::> devOpCmdIn to target ::> snsOpCmdIn;
463
- connection : ExchangesWith connect source ::> devDbIn to target ::> snsDbIn;
464
- connection : ExchangesWith connect source ::> devPresIn to target ::> snsPresIn;
465
- connection : ExchangesWith connect source ::> devPatientIn to target ::> snsPatientIn;
466
- connection : ExchangesWith connect source ::> snsOpCmdOut to target ::> portOpCmdIn;
467
- connection : ExchangesWith connect source ::> snsPresOut to target ::> portPresIn;
468
- connection : ExchangesWith connect source ::> snsPatientOut to target ::> portPatientIn;
469
- connection : ExchangesWith connect source ::> snsSensorOut to target ::> portSensorIn;
470
- connection : ExchangesWith connect source ::> snsConstOut to target ::> portConstIn;
471
- connection : ExchangesWith connect source ::> snsDbOut to target ::> portDbIn;
472
- connection : ExchangesWith connect source ::> portGpcaSwOut to target ::> actGpcaSwIn;
473
- connection : ExchangesWith connect source ::> actGpcaOut to target ::> devGpcaOut;
408
+ bind gpcaDevice.devOpCmdIn = gpcaDevice.gpcaDeviceSensors.snsOpCmdIn;
409
+ bind gpcaDevice.devDbIn = gpcaDevice.gpcaDeviceSensors.snsDbIn;
410
+ bind gpcaDevice.devPresIn = gpcaDevice.gpcaDeviceSensors.snsPresIn;
411
+ bind gpcaDevice.devPatientIn = gpcaDevice.gpcaDeviceSensors.snsPatientIn;
412
+ flow from gpcaDevice.gpcaDeviceSensors.snsOpCmdOut to gpcaDevice.gpcaSoftware.portOpCmdIn;
413
+ flow from gpcaDevice.gpcaDeviceSensors.snsPresOut to gpcaDevice.gpcaSoftware.portPresIn;
414
+ flow from gpcaDevice.gpcaDeviceSensors.snsPatientOut to gpcaDevice.gpcaSoftware.portPatientIn;
415
+ flow from gpcaDevice.gpcaDeviceSensors.snsSensorOut to gpcaDevice.gpcaSoftware.portSensorIn;
416
+ flow from gpcaDevice.gpcaDeviceSensors.snsConstOut to gpcaDevice.gpcaSoftware.portConstIn;
417
+ flow from gpcaDevice.gpcaDeviceSensors.snsDbOut to gpcaDevice.gpcaSoftware.portDbIn;
418
+ flow from gpcaDevice.gpcaSoftware.portGpcaSwOut to gpcaDevice.gpcaActuators.actGpcaSwIn;
419
+ bind gpcaDevice.gpcaActuators.actGpcaOut = gpcaDevice.devGpcaOut;
474
420
 
475
421
  // ── Risk chains (ISO 14971, GIIP causal-tree structure) ─────
476
422
  // Categorized causes converge on each hazard (GIIP Tables 2-9
@@ -626,62 +572,61 @@ package memo_examples_gpca_pump_gpca_trace {
626
572
  connection : Mitigates { attribute :>> mitigationKind = MitigationKind::cutSet; connect control ::> lockoutControl to mitigatedElement ::> mcsBolusPath; }
627
573
 
628
574
  // ── Verification coverage (IEC 62304 §5.7) ──────────────────
629
- connection : VerifiedBy connect verificationTarget ::> reqCs01 to verificationCase ::> vcModeRange;
630
- connection : VerifiedBy connect verificationTarget ::> reqCs25 to verificationCase ::> vcLockout;
631
- connection : VerifiedBy connect verificationTarget ::> reqCs19 to verificationCase ::> vcSameStepAlarm;
632
- connection : VerifiedBy connect verificationTarget ::> reqDrugLibraryLimits to verificationCase ::> vcDrugLibrary;
633
- connection : VerifiedBy connect verificationTarget ::> reqCs09 to verificationCase ::> vcPrescriptionConfirm;
634
- connection : VerifiedBy connect verificationTarget ::> reqPost to verificationCase ::> vcPost;
635
- connection : VerifiedBy connect verificationTarget ::> reqPowerLossRetention to verificationCase ::> vcPowerLoss;
636
- connection : VerifiedBy connect verificationTarget ::> reqCs72 to verificationCase ::> vcAlarmLoudness;
637
- connection : VerifiedBy connect verificationTarget ::> reqCs75 to verificationCase ::> vcTemporalModeSafety;
638
- connection : VerifiedBy connect verificationTarget ::> reqCs21 to verificationCase ::> vcAirInLine;
639
- connection : VerifiedBy connect verificationTarget ::> reqOcclusion to verificationCase ::> vcOcclusion;
640
- connection : VerifiedBy connect verificationTarget ::> reqCs23 to verificationCase ::> vcEmptyReservoir;
641
- connection : VerifiedBy connect verificationTarget ::> reqDoorOpen to verificationCase ::> vcTemporalModeSafety;
642
- connection : VerifiedBy connect verificationTarget ::> reqMaxHourlyDose to verificationCase ::> vcHourlyMax;
643
- connection : VerifiedBy connect verificationTarget ::> reqCs78 to verificationCase ::> vcEventLog;
644
- connection : VerifiedBy connect verificationTarget ::> reqEventLogging to verificationCase ::> vcEventLog;
645
- connection : VerifiedBy connect verificationTarget ::> reqWatchdogSafeState to verificationCase ::> vcWatchdog;
646
- connection : VerifiedBy connect verificationTarget ::> reqStuckButton to verificationCase ::> vcStuckButton;
647
- connection : VerifiedBy connect verificationTarget ::> reqFlowCrossCheck to verificationCase ::> vcFlowCrossCheck;
648
- connection : VerifiedBy connect verificationTarget ::> reqPumpAccuracy to verificationCase ::> vcPumpAccuracy;
649
- connection : VerifiedBy connect verificationTarget ::> reqAlarmLoudness to verificationCase ::> vcAlarmLoudness;
650
- connection : VerifiedBy connect verificationTarget ::> reqBatteryBackup to verificationCase ::> vcPowerLoss;
651
- connection : VerifiedBy connect verificationTarget ::> reqFreeFlowPrevention to verificationCase ::> vcFreeFlow;
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
652
598
  // risk controls
653
- connection : VerifiedBy connect verificationTarget ::> lockoutControl to verificationCase ::> vcLockout;
654
- connection : VerifiedBy connect verificationTarget ::> airDetectionControl to verificationCase ::> vcAirInLine;
655
- connection : VerifiedBy connect verificationTarget ::> occlusionAlarmControl to verificationCase ::> vcOcclusion;
656
- connection : VerifiedBy connect verificationTarget ::> reservoirMonitorControl to verificationCase ::> vcEmptyReservoir;
657
- connection : VerifiedBy connect verificationTarget ::> drugLibraryControl to verificationCase ::> vcDrugLibrary;
658
- connection : VerifiedBy connect verificationTarget ::> freeFlowValveControl to verificationCase ::> vcFreeFlow;
659
- connection : VerifiedBy connect verificationTarget ::> watchdogControl to verificationCase ::> vcWatchdog;
660
- connection : VerifiedBy connect verificationTarget ::> flowCrossCheckControl to verificationCase ::> vcFlowCrossCheck;
661
- connection : VerifiedBy connect verificationTarget ::> doorInterlockControl to verificationCase ::> vcDoorInterlock;
662
- connection : VerifiedBy connect verificationTarget ::> reverseDeliveryPauseControl to verificationCase ::> vcReverseDeliveryPause;
663
- connection : VerifiedBy connect verificationTarget ::> antiRefluxDesignControl to verificationCase ::> vcAntiRefluxMechanism;
664
- connection : VerifiedBy connect verificationTarget ::> vtbiLimitPauseControl to verificationCase ::> vcVtbiCeiling;
665
- connection : VerifiedBy connect verificationTarget ::> infusionCompleteControl to verificationCase ::> vcInfusionComplete;
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
666
612
  // behavior properties, contracts, and timing
667
- connection : VerifiedBy connect verificationTarget ::> propAlarmStopsSameStep to verificationCase ::> vcSameStepAlarm;
668
- connection : VerifiedBy connect verificationTarget ::> propLockoutTimerMonotonic to verificationCase ::> vcTemporalModeSafety;
669
- connection : VerifiedBy connect verificationTarget ::> guaranteeExclusiveMode to verificationCase ::> vcModeRange;
670
- connection : VerifiedBy connect verificationTarget ::> guaranteeLockoutPreventsBolus to verificationCase ::> vcLockout;
671
- connection : VerifiedBy connect verificationTarget ::> guaranteeAlarmStopsSameStep to verificationCase ::> vcSameStepAlarm;
672
- connection : VerifiedBy connect verificationTarget ::> temporalNoInvalidTransition to verificationCase ::> vcTemporalModeSafety;
673
- connection : VerifiedBy connect verificationTarget ::> tcAlarmLatency to verificationCase ::> vcSameStepAlarm;
674
- connection : VerifiedBy connect verificationTarget ::> tcBolusResponse to verificationCase ::> vcLockout;
675
- connection : VerifiedBy connect verificationTarget ::> tcWatchdogTimeout to verificationCase ::> vcWatchdog;
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
676
622
  // class-C software items
677
- connection : VerifiedBy connect verificationTarget ::> tlm to verificationCase ::> vcModeRange;
678
- connection : VerifiedBy connect verificationTarget ::> alarm to verificationCase ::> vcSameStepAlarm;
679
- connection : VerifiedBy connect verificationTarget ::> infusionMgr to verificationCase ::> vcLockout;
680
- connection : VerifiedBy connect verificationTarget ::> config to verificationCase ::> vcDrugLibrary;
681
- connection : VerifiedBy connect verificationTarget ::> logging to verificationCase ::> vcEventLog;
682
- connection : VerifiedBy connect verificationTarget ::> systemMonitor to verificationCase ::> vcPost;
683
- connection : VerifiedBy connect verificationTarget ::> systemStatus to verificationCase ::> vcEmptyReservoir;
684
- connection : VerifiedBy connect verificationTarget ::> outputBus to verificationCase ::> vcModeRange;
623
+
624
+
625
+
626
+
627
+
628
+
629
+
685
630
 
686
631
  // ── Validation and usability testing ────────────────────────
687
632
  connection : Validates connect validationTarget ::> reqCs59 to validationCase ::> valSimulatedWard;
@@ -719,9 +664,4 @@ package memo_examples_gpca_pump_gpca_trace {
719
664
  connection : ProducesEvidence connect producer ::> vcEventLog to producedEvidence ::> evidenceDoseProgramming;
720
665
  connection : ProducesEvidence connect producer ::> vcPumpAccuracy to producedEvidence ::> evidenceDeliveryAccuracy;
721
666
  connection : ProducesEvidence connect producer ::> valSummativeUsability to producedEvidence ::> evidenceUsability;
722
- connection : IncludedIn connect sourceElement ::> evidenceLockout to targetView ::> rmfView;
723
- connection : IncludedIn connect sourceElement ::> evidenceSafetyAlarmSuite to targetView ::> vvView;
724
- connection : IncludedIn connect sourceElement ::> evidenceUsability to targetView ::> usabilityView;
725
- connection : IncludedIn connect sourceElement ::> fmeaDelivery to targetView ::> hazardAnalysisView;
726
- connection : IncludedIn connect sourceElement ::> ftaOverdose to targetView ::> hazardAnalysisView;
727
667
  }