@memoarchitect/ontology 0.6.5 → 0.8.22

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