@memoarchitect/ontology 0.4.6 → 0.6.0

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 (255) hide show
  1. package/README.md +5 -4
  2. package/examples/connected-patient-monitor/README.md +7 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +70 -0
  4. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +3 -0
  5. package/examples/connected-patient-monitor/model/viewpoints/connected_patient_monitor_overview.sysml +6 -0
  6. package/examples/embedded-infusion-pump/README.md +7 -0
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +66 -0
  8. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +3 -0
  9. package/examples/embedded-infusion-pump/model/viewpoints/embedded_infusion_pump_overview.sysml +6 -0
  10. package/examples/extensions/README.md +16 -0
  11. package/examples/extensions/clinical/memo.package.yaml +9 -0
  12. package/examples/extensions/clinical/src/clinical_extension.sysml +3 -0
  13. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +14 -0
  14. package/examples/extensions/clinical/src/procedures/memo_clinical_procedures.sysml +16 -0
  15. package/examples/extensions/template/memo.package.yaml +9 -0
  16. package/examples/extensions/template/src/extension.sysml +15 -0
  17. package/examples/functional-logical-physical/README.md +7 -0
  18. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +50 -0
  19. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +3 -0
  20. package/examples/functional-logical-physical/model/viewpoints/functional_logical_physical_overview.sysml +6 -0
  21. package/examples/gpca-pump/README.md +26 -0
  22. package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +1 -1
  23. package/examples/gpca-pump/memo.config.yaml +2 -2
  24. package/examples/gpca-pump/methodology/gpca_profiles.sysml +1 -1
  25. package/examples/gpca-pump/methodology/gpca_scope.sysml +2 -2
  26. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
  27. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +10 -10
  28. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +17 -6
  29. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +11 -11
  30. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +35 -22
  31. package/examples/gpca-pump/model/catalog/gpca_context.sysml +25 -6
  32. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
  33. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +29 -15
  34. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +293 -169
  35. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +139 -21
  36. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +1 -1
  37. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +210 -105
  38. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +66 -69
  39. package/examples/gpca-pump/model/catalog/gpca_system.sysml +43 -76
  40. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +73 -70
  41. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +27 -27
  42. package/examples/gpca-pump/model/views/context_system_context_view.sysml +2 -2
  43. package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +2 -2
  44. package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +2 -2
  45. package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +1 -1
  46. package/examples/gpca-pump/model/views/document_rmf_view.sysml +2 -2
  47. package/examples/gpca-pump/model/views/document_sdd_view.sysml +2 -2
  48. package/examples/gpca-pump/model/views/document_threat_model_view.sysml +1 -1
  49. package/examples/gpca-pump/model/views/document_usability_view.sysml +1 -1
  50. package/examples/gpca-pump/model/views/document_vv_view.sysml +1 -1
  51. package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +1 -1
  52. package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +1 -1
  53. package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +1 -1
  54. package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +1 -1
  55. package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +1 -1
  56. package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +1 -1
  57. package/examples/gpca-pump/model/views/operational_use_case_view.sysml +6 -6
  58. package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +1 -1
  59. package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +1 -1
  60. package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +2 -2
  61. package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +1 -1
  62. package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +1 -1
  63. package/examples/ivd-laboratory-system/README.md +7 -0
  64. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +58 -0
  65. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +3 -0
  66. package/examples/ivd-laboratory-system/model/viewpoints/ivd_laboratory_system_overview.sysml +6 -0
  67. package/examples/manual-surgical-instrument/README.md +7 -0
  68. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +41 -0
  69. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +3 -0
  70. package/examples/manual-surgical-instrument/model/viewpoints/manual_surgical_instrument_overview.sysml +6 -0
  71. package/examples/multidimensional-layers/README.md +7 -0
  72. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +51 -0
  73. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +4 -0
  74. package/examples/multidimensional-layers/model/viewpoints/multidimensional_layers_overview.sysml +13 -0
  75. package/examples/reusable-instrument/README.md +7 -0
  76. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +71 -0
  77. package/examples/reusable-instrument/model/reusable_instrument.sysml +4 -0
  78. package/examples/reusable-instrument/model/viewpoints/reusable_instrument_overview.sysml +13 -0
  79. package/examples/software-only-medical-device/README.md +7 -0
  80. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +62 -0
  81. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +4 -0
  82. package/examples/software-only-medical-device/model/viewpoints/software_only_medical_device_overview.sysml +13 -0
  83. package/examples/surgical-closure-workflow/README.md +8 -0
  84. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +151 -0
  85. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +4 -0
  86. package/examples/surgical-closure-workflow/model/viewpoints/surgical_closure_workflow_overview.sysml +13 -0
  87. package/examples/surgical-robot/README.md +7 -0
  88. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +58 -0
  89. package/examples/surgical-robot/model/surgical_robot.sysml +4 -0
  90. package/examples/surgical-robot/model/viewpoints/surgical_robot_overview.sysml +13 -0
  91. package/examples/sysml-diagram-samples/README.md +32 -0
  92. package/examples/sysml-diagram-samples/memo.package.yaml +5 -0
  93. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/action_flow_view.sysml +22 -4
  94. package/examples/sysml-diagram-samples/model/samples/context_view.sysml +55 -0
  95. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/functional_flow_view.sysml +17 -6
  96. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/interconnection_view.sysml +4 -3
  97. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/operational_behaviour_view.sysml +32 -42
  98. package/examples/sysml-diagram-samples/model/samples/requirements_view.sysml +63 -0
  99. package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +109 -0
  100. package/examples/{gpca-pump → sysml-diagram-samples}/model/samples/tree_view.sysml +3 -3
  101. package/examples/sysml-diagram-samples/model/samples/use_case_view.sysml +81 -0
  102. package/examples/temperature-alarm/README.md +7 -0
  103. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +140 -0
  104. package/examples/temperature-alarm/model/temperature_alarm.sysml +4 -0
  105. package/examples/temperature-alarm/model/viewpoints/temperature_alarm_overview.sysml +13 -0
  106. package/memo.manifest.yaml +4 -1
  107. package/methodologies/default/memo.package.yaml +1 -1
  108. package/methodologies/gpca/memo.package.yaml +4 -4
  109. package/ontology/memo.package.yaml +1 -1
  110. package/ontology/memo.rendering.yaml +37 -0
  111. package/package.json +17 -7
  112. package/profile/memo.package.yaml +1 -1
  113. package/profile/templates/connected-device/starter.sysml +3 -3
  114. package/profile/templates/infusion-pump/starter.sysml +3 -3
  115. package/profile/templates/monitoring-device/starter.sysml +3 -3
  116. package/profile/templates/samd/starter.sysml +3 -3
  117. package/src/architecture/decisions/memo_decisions.sysml +1 -1
  118. package/src/architecture/{behavior → functional/behavior}/memo_behavior.sysml +12 -11
  119. package/src/architecture/{constraints → functional/constraints}/memo_constraints.sysml +2 -2
  120. package/src/architecture/functional/functions/memo_functions.sysml +81 -0
  121. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +46 -0
  122. package/src/architecture/implementation/hardware/electrical/memo_hardware_electrical.sysml +36 -0
  123. package/src/architecture/implementation/hardware/fluidic/memo_hardware_fluidic.sysml +14 -0
  124. package/src/architecture/implementation/hardware/mechanical/memo_hardware_mechanical.sysml +14 -0
  125. package/src/architecture/implementation/hardware/optical/memo_hardware_optical.sysml +11 -0
  126. package/src/architecture/implementation/hardware/sensing/memo_hardware_sensing.sysml +17 -0
  127. package/src/architecture/implementation/hardware/structure/memo_hardware_structure.sysml +12 -0
  128. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +70 -0
  129. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +80 -0
  130. package/src/architecture/implementation/ui/memo_ui.sysml +159 -0
  131. package/src/architecture/logical/interfaces/memo_interfaces.sysml +102 -0
  132. package/src/architecture/logical/structure/memo_logical_structure.sysml +150 -0
  133. package/src/architecture/operational/activities/memo_activities.sysml +86 -0
  134. package/src/architecture/operational/context/actors/memo_actors.sysml +38 -0
  135. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +64 -0
  136. package/src/architecture/operational/context/use_context/memo_use_context.sysml +53 -0
  137. package/src/architecture/operational/scenarios/memo_scenarios.sysml +116 -0
  138. package/src/architecture/operational/structure/memo_operational.sysml +26 -0
  139. package/src/architecture/operational/use_cases/memo_use_cases.sysml +67 -0
  140. package/src/architecture/operational/workflows/memo_workflows.sysml +126 -0
  141. package/src/architecture/realization/deployment/memo_deployment.sysml +90 -0
  142. package/src/architecture/{physical → realization/physical}/memo_physical_architecture.sysml +12 -1
  143. package/src/artifacts/definitions/memo_artifact_definitions.sysml +1 -1
  144. package/src/{architecture → assurance}/cybersecurity/memo_cybersecurity.sysml +14 -10
  145. package/src/assurance/human_factors/memo_human_factors.sysml +50 -0
  146. package/src/{architecture → assurance}/requirements/memo_requirements.sysml +45 -21
  147. package/src/assurance/requirements/needs/memo_needs.sysml +43 -0
  148. package/src/{architecture → assurance/safety_risk}/analysis/memo_fmea.sysml +13 -13
  149. package/src/{architecture/risk → assurance/safety_risk}/memo_arch_risk.sysml +2 -2
  150. package/src/{architecture/risk → assurance/safety_risk}/memo_risk.sysml +25 -16
  151. package/src/assurance/verification_validation/memo_assurance.sysml +49 -0
  152. package/src/compliance/artifacts/memo_artifacts.sysml +1 -1
  153. package/src/compliance/change/memo_change.sysml +2 -2
  154. package/src/compliance/dhf-templates/21cfr820/design-input.md +1 -1
  155. package/src/compliance/dhf-templates/21cfr820/design-validation.md +1 -1
  156. package/src/compliance/dhf-templates/21cfr820/user-needs.md +2 -2
  157. package/src/compliance/dhf-templates/iec-62366/urra.md +1 -1
  158. package/src/compliance/dhf-templates/iso-14971/fmea.md +1 -1
  159. package/src/compliance/dhf-templates/iso-14971/har.md +4 -4
  160. package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +1 -1
  161. package/src/compliance/dhf-templates/iso-14971/rmp.md +1 -1
  162. package/src/compliance/dhf-templates/iso-14971/rmr.md +1 -1
  163. package/src/compliance/iso14971/risk_management_file.sysml +1 -1
  164. package/src/compliance/postmarket/memo_postmarket.sysml +2 -2
  165. package/src/core/common/memo_common.sysml +123 -14
  166. package/src/core/consistency_rules/consistency_rules.sysml +2 -2
  167. package/src/core/dimensions/dimensions.sysml +45 -24
  168. package/src/core/enumerations/memo_enumerations.sysml +11 -16
  169. package/src/core/methodology_scope/methodology_scope.sysml +10 -28
  170. package/src/core/relationships/memo_relationships.sysml +178 -146
  171. package/src/core/stdlib/{collections.sysml → collections/collections.sysml} +1 -1
  172. package/src/core/stdlib/{functions.sysml → functions/functions.sysml} +1 -1
  173. package/src/core/stdlib/{scalars.sysml → scalars/scalars.sysml} +1 -1
  174. package/src/core/stdlib/{time.sysml → time/time.sysml} +1 -1
  175. package/src/core/terminology/terminology.sysml +35 -0
  176. package/src/memo_namespaces.sysml +247 -302
  177. package/src/methodology/{memo_core.sysml → core/memo_core.sysml} +19 -13
  178. package/src/methodology/{memo_gates.sysml → gates/memo_gates.sysml} +1 -1
  179. package/src/methodology/{memo_patterns.sysml → patterns/memo_patterns.sysml} +1 -1
  180. package/src/methodology/{memo_profiles.sysml → profiles/memo_profiles.sysml} +27 -35
  181. package/src/methodology/{memo_workflow.sysml → workflow/memo_workflow.sysml} +1 -1
  182. package/src/rules/closure/closure_rules.sysml +11 -11
  183. package/src/rules/coverage/coverage_rules.sysml +8 -8
  184. package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
  185. package/src/rules/lifecycle/lifecycle_rules.sysml +1 -1
  186. package/src/rules/ontology/ontology_invariants.sysml +133 -0
  187. package/src/rules/quantitative/quantitative_rules.sysml +2 -2
  188. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +189 -0
  189. package/src/viewpoints/clinical/clinical_viewpoint.sysml +0 -1
  190. package/src/viewpoints/context/context_viewpoint.sysml +1 -2
  191. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -2
  192. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +8 -8
  193. package/src/viewpoints/functional/{function_allocation_view.sysml → function_allocation_view/function_allocation_view.sysml} +1 -1
  194. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  195. package/src/viewpoints/functional/{system_functional_tree_view.sysml → system_functional_tree_view/system_functional_tree_view.sysml} +1 -1
  196. package/src/viewpoints/logical/logical_viewpoint.sysml +0 -1
  197. package/src/viewpoints/operational/operational_viewpoint.sysml +1 -2
  198. package/src/viewpoints/operational/{use_case_view.sysml → use_case_view/use_case_view.sysml} +1 -1
  199. package/src/viewpoints/physical/physical_viewpoint.sysml +0 -1
  200. package/src/viewpoints/requirements/{requirements_traceability_view.sysml → requirements_traceability_view/requirements_traceability_view.sysml} +1 -1
  201. package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
  202. package/src/viewpoints/risk/{risk_chain_view.sysml → risk_chain_view/risk_chain_view.sysml} +2 -2
  203. package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
  204. package/src/viewpoints/software/{software_architecture_view.sysml → software_architecture_view/software_architecture_view.sysml} +1 -1
  205. package/src/viewpoints/software/software_viewpoint.sysml +1 -2
  206. package/src/viewpoints/usability/usability_viewpoint.sysml +0 -1
  207. package/src/viewpoints/verification/verification_viewpoint.sysml +0 -1
  208. package/template/memo.package.yaml +1 -1
  209. package/template/src/catalog/starter.sysml +3 -3
  210. package/examples/gpca-pump/model/samples/README.md +0 -24
  211. package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +0 -9
  212. package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +0 -99
  213. package/src/architecture/assurance/memo_assurance.sysml +0 -29
  214. package/src/architecture/context/memo_context.sysml +0 -58
  215. package/src/architecture/functions/memo_functions.sysml +0 -30
  216. package/src/architecture/hardware_structure/memo_hardware_structure.sysml +0 -15
  217. package/src/architecture/interfaces/memo_interfaces.sysml +0 -103
  218. package/src/architecture/logical_structure/memo_logical_structure.sysml +0 -10
  219. package/src/architecture/operational/memo_operational.sysml +0 -51
  220. package/src/architecture/software_structure/memo_software_structure.sysml +0 -44
  221. package/src/architecture/system/memo_system_analysis.sysml +0 -54
  222. package/src/artifacts/clinical_safety_report.sysml +0 -12
  223. package/src/artifacts/cybersecurity_assessment_report.sysml +0 -12
  224. package/src/artifacts/design_change_log.sysml +0 -12
  225. package/src/artifacts/design_history_file_index.sysml +0 -12
  226. package/src/artifacts/design_input_plan.sysml +0 -12
  227. package/src/artifacts/design_output_plan.sysml +0 -12
  228. package/src/artifacts/evidence_record.sysml +0 -12
  229. package/src/artifacts/failure_mode_effects_analysis.sysml +0 -12
  230. package/src/artifacts/hazard_analysis_report.sysml +0 -12
  231. package/src/artifacts/labeling_specification.sysml +0 -12
  232. package/src/artifacts/requirements_specification.sysml +0 -12
  233. package/src/artifacts/requirements_traceability_matrix.sysml +0 -12
  234. package/src/artifacts/risk_management_plan.sysml +0 -12
  235. package/src/artifacts/software_design_description.sysml +0 -12
  236. package/src/artifacts/software_development_plan.sysml +0 -12
  237. package/src/artifacts/soup_list.sysml +0 -12
  238. package/src/artifacts/system_architecture_description.sysml +0 -12
  239. package/src/artifacts/test_protocol.sysml +0 -12
  240. package/src/artifacts/test_report.sysml +0 -12
  241. package/src/artifacts/threat_model_report.sysml +0 -12
  242. package/src/artifacts/usability_engineering_report.sysml +0 -12
  243. package/src/medical_device_library.sysml +0 -100
  244. /package/src/methodology/{memo_archetypes.sysml → archetypes/memo_archetypes.sysml} +0 -0
  245. /package/src/methodology/{memo_rules.sysml → rules/memo_rules.sysml} +0 -0
  246. /package/src/methodology/{memo_viewpoints.sysml → viewpoints/memo_viewpoints.sysml} +0 -0
  247. /package/src/viewpoints/clinical/{clinical_evidence_view.sysml → clinical_evidence_view/clinical_evidence_view.sysml} +0 -0
  248. /package/src/viewpoints/context/{system_context_view.sysml → system_context_view/system_context_view.sysml} +0 -0
  249. /package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view.sysml → cybersecurity_assessment_view/cybersecurity_assessment_view.sysml} +0 -0
  250. /package/src/viewpoints/cybersecurity/{threat_model_view.sysml → threat_model_view/threat_model_view.sysml} +0 -0
  251. /package/src/viewpoints/logical/{logical_architecture_view.sysml → logical_architecture_view/logical_architecture_view.sysml} +0 -0
  252. /package/src/viewpoints/physical/{network_topology_view.sysml → network_topology_view/network_topology_view.sysml} +0 -0
  253. /package/src/viewpoints/physical/{physical_bom_view.sysml → physical_bom_view/physical_bom_view.sysml} +0 -0
  254. /package/src/viewpoints/usability/{usability_engineering_view.sysml → usability_engineering_view/usability_engineering_view.sysml} +0 -0
  255. /package/src/viewpoints/verification/{verification_coverage_view.sysml → verification_coverage_view/verification_coverage_view.sysml} +0 -0
@@ -2,9 +2,11 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_core_relationships::*;
5
- private import memo_architecture_context::*;
6
- private import memo_architecture_operational::*;
7
- private import memo_architecture_system::*;
5
+ private import memo_architecture_operational_context_actors::*;
6
+ private import memo_architecture_operational_context_use_context::*;
7
+ private import memo_architecture_operational_activities::*;
8
+ private import memo_architecture_operational_structure::*;
9
+ private import memo_architecture_functional_functions::*;
8
10
  private import memo_examples_gpca_pump_model_catalog_gpca_context::*;
9
11
  private import memo_examples_gpca_pump_model_catalog_gpca_operational::*;
10
12
  private import memo_examples_gpca_pump_model_catalog_gpca_system::*;
@@ -49,36 +51,37 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
49
51
  connection : ConnectsPhysically connect source ::> entityNeedle to target ::> actorPatient;
50
52
  connection : ConnectsPhysically connect source ::> entityPowerInfrastructure to target ::> entityGpcaPump;
51
53
  // Intended use and use context anchoring (no floating context nodes)
52
- connection : GovernsUse connect intendedUse ::> gpcaIntendedUse to governedElement ::> entityGpcaPump;
54
+ connection : Governs { attribute :>> governKind = GovernKind::use; connect governor ::> gpcaIntendedUse to governedElement ::> entityGpcaPump; }
53
55
  connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityGpcaPump;
54
56
  connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityHospital;
55
57
 
56
58
  // ── Actor participation (use case view) ─────────────────────
57
- connection : InteractsWith connect contextParticipant ::> actorPrescriber to target ::> oaPrescribe;
58
- connection : InteractsWith connect contextParticipant ::> actorPharmacist to target ::> oaLoadReservoir;
59
- connection : InteractsWith connect contextParticipant ::> actorNurse to target ::> oaProgram;
60
- connection : InteractsWith connect contextParticipant ::> actorNurse to target ::> oaStartTherapy;
61
- connection : InteractsWith connect contextParticipant ::> actorNurse to target ::> oaRespondAlarm;
62
- connection : InteractsWith connect contextParticipant ::> actorNurse to target ::> oaReviewLog;
63
- connection : InteractsWith connect contextParticipant ::> actorPatient to target ::> oaRequestBolus;
64
- connection : InteractsWith connect contextParticipant ::> actorTechnician to target ::> oaMaintain;
59
+ connection : Initiates connect initiatingUser ::> actorNurse to initiatedUseCase ::> ucDeliverPcaTherapy;
60
+ connection : ParticipatesIn connect participant ::> actorPatient to useCase ::> ucDeliverPcaTherapy;
61
+ connection : ParticipatesIn connect participant ::> actorPrescriber to useCase ::> ucDeliverPcaTherapy;
62
+ connection : ParticipatesIn connect participant ::> 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;
65
71
 
66
72
  // ── Operational thread (therapy lifecycle) ──────────────────
67
- connection : SequencesStep connect activity ::> oaPrescribe to nextActivity ::> oaLoadReservoir;
68
- connection : SequencesStep connect activity ::> oaLoadReservoir to nextActivity ::> oaProgram;
69
- connection : SequencesStep connect activity ::> oaProgram to nextActivity ::> oaStartTherapy;
70
- connection : SequencesStep connect activity ::> oaStartTherapy to nextActivity ::> oaRequestBolus;
71
- connection : ContributesToCapability connect activity ::> oaStartTherapy to capability ::> ocTitratedAnalgesia;
72
- connection : ContributesToCapability connect activity ::> oaRequestBolus to capability ::> ocTitratedAnalgesia;
73
- connection : ContributesToCapability connect activity ::> oaRespondAlarm to capability ::> ocFailSafeTherapy;
74
- connection : DerivesSystemNeed connect activity ::> oaProgram to systemNeed ::> reqDrugLibraryLimits;
75
- connection : DerivesSystemNeed connect activity ::> oaRequestBolus to systemNeed ::> reqCs25;
76
- connection : DerivesSystemNeed connect activity ::> oaRespondAlarm to systemNeed ::> reqCs59;
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;
77
+ connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaStartTherapy to supported ::> ocTitratedAnalgesia; }
78
+ connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaRequestBolus to supported ::> ocTitratedAnalgesia; }
79
+ connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaRespondAlarm to supported ::> ocFailSafeTherapy; }
80
+ connection : DerivesFrom connect sourceDriver ::> oaProgram to targetRequirement ::> reqDrugLibraryLimits;
81
+ connection : DerivesFrom connect sourceDriver ::> oaRequestBolus to targetRequirement ::> reqCs25;
82
+ connection : DerivesFrom connect sourceDriver ::> oaRespondAlarm to targetRequirement ::> reqCs59;
77
83
 
78
- // ── System capabilities and functional chains ───────────────
79
- connection : RealizesCapability connect functionalChain ::> fcPatientBolus to capability ::> scPatientBolus;
80
- connection : RealizesCapability connect functionalChain ::> fcAlarmStop to capability ::> scAlarmAnnunciation;
81
- connection : RealizesCapability connect functionalChain ::> fcStartup to capability ::> scBasalDelivery;
84
+ // ── Functional chains ───────────────────────────────────────
82
85
  connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnAcquireSensors;
83
86
  connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnEnforceLimits;
84
87
  connection : InvolvesFunction connect functionalChain ::> fcPatientBolus to function ::> fnManageInfusion;
@@ -90,8 +93,8 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
90
93
  connection : InvolvesFunction connect functionalChain ::> fcAlarmStop to function ::> fnAnnunciate;
91
94
  connection : InvolvesFunction connect functionalChain ::> fcStartup to function ::> fnSelfTest;
92
95
  connection : InvolvesFunction connect functionalChain ::> fcStartup to function ::> fnPresentStatus;
93
- connection : RealizesScenario connect functionalChain ::> fcPatientBolus to scenario ::> ssBolusDuringBasal;
94
- connection : RealizesScenario connect functionalChain ::> fcAlarmStop to scenario ::> ssAlarmPause;
96
+ connection : Realizes connect realizing ::> fcPatientBolus to realized ::> ssBolusDuringBasal;
97
+ connection : Realizes connect realizing ::> fcAlarmStop to realized ::> ssAlarmPause;
95
98
  connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusSense;
96
99
  connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusValidate;
97
100
  connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusCommand;
@@ -352,17 +355,17 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
352
355
  connection : AllocatedTo connect function ::> fnSelfTest to allocatedElement ::> systemMonitor;
353
356
 
354
357
  // ── Deployment, hosting, and interface realization ──────────
355
- connection : DeploysOnto connect softwareComponent ::> gpcaSoftware to hostAssembly ::> controllerBoard;
358
+ connection : DeploysTo connect deploymentUnit ::> gpcaSoftware to node ::> controllerBoard;
356
359
  connection : HostedBy connect processingNode ::> mainController to hostAssembly ::> controllerBoard;
357
- connection : RealizesInterface connect logicalInterface ::> sensorInputInterface to physicalInterface ::> hwSoftwareBus;
358
- connection : RealizesInterface connect logicalInterface ::> actuatorCommandInterface to physicalInterface ::> pumpMotorDrive;
360
+ connection : Realizes connect realized ::> sensorInputInterface to realizing ::> hwSoftwareBus;
361
+ connection : Realizes connect realized ::> actuatorCommandInterface to realizing ::> pumpMotorDrive;
359
362
  connection : BindsToInterface connect portElement ::> portPatientPendant to boundInterface ::> bolusButtonLine;
360
363
  connection : BindsToInterface connect portElement ::> portMotorDrive to boundInterface ::> pumpMotorDrive;
361
364
  connection : BindsToInterface connect portElement ::> portSensorHarness to boundInterface ::> occlusionAnalogLine;
362
- connection : AllocatesExchange connect functionalFlow ::> lfSensorAcquisition to componentExchange ::> exSensorVector;
363
- connection : AllocatesExchange connect functionalFlow ::> lfFlowCommand to componentExchange ::> exFlowCommand;
364
- connection : AllocatesExchange connect functionalFlow ::> lfAlarmSignal to componentExchange ::> exAlarmAnnunciation;
365
- connection : AllocatesExchange connect functionalFlow ::> lfPrescriptionEntry to componentExchange ::> exPrescriptionEntry;
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;
366
369
 
367
370
  // ── Fig 4.1 mode hierarchy (CriSys §4.1) ────────────────────
368
371
  connection : Composes connect parent ::> topLevelModeMachine to child ::> modeOFF;
@@ -454,10 +457,10 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
454
457
  connection : TracesRisk connect sourceRiskElement ::> hsExcessInfusion to targetRiskElement ::> harmRespiratoryDepression;
455
458
  connection : TracesRisk connect sourceRiskElement ::> harmRespiratoryDepression to targetRiskElement ::> riskBefore;
456
459
  connection : AssessedAgainst connect risk ::> riskBefore to riskMatrix ::> riskMatrix;
457
- connection : MitigatesHazard connect riskControl ::> lockoutControl to mitigatedHazard ::> overdoseHazard;
458
- connection : MitigatesHazard connect riskControl ::> drugLibraryControl to mitigatedHazard ::> overdoseHazard;
459
- connection : MitigatesHazard connect riskControl ::> watchdogControl to mitigatedHazard ::> overdoseHazard;
460
- connection : MitigatesHazard connect riskControl ::> flowCrossCheckControl to mitigatedHazard ::> overdoseHazard;
460
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> lockoutControl to mitigatedElement ::> overdoseHazard; }
461
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> drugLibraryControl to mitigatedElement ::> overdoseHazard; }
462
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> watchdogControl to mitigatedElement ::> overdoseHazard; }
463
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> flowCrossCheckControl to mitigatedElement ::> overdoseHazard; }
461
464
  connection : TracesRisk connect sourceRiskElement ::> lockoutControl to targetRiskElement ::> riskAfter;
462
465
  connection : AssessedAgainst connect risk ::> riskAfter to riskMatrix ::> riskMatrix;
463
466
  connection : TracesRisk connect sourceRiskElement ::> residualEval to targetRiskElement ::> riskAfter;
@@ -472,9 +475,9 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
472
475
  connection : TracesRisk connect sourceRiskElement ::> hsInterruptedTherapy to targetRiskElement ::> harmUntreatedPain;
473
476
  connection : TracesRisk connect sourceRiskElement ::> harmUntreatedPain to targetRiskElement ::> riskBeforeUnderdose;
474
477
  connection : AssessedAgainst connect risk ::> riskBeforeUnderdose to riskMatrix ::> riskMatrix;
475
- connection : MitigatesHazard connect riskControl ::> occlusionAlarmControl to mitigatedHazard ::> underdoseHazard;
476
- connection : MitigatesHazard connect riskControl ::> reservoirMonitorControl to mitigatedHazard ::> underdoseHazard;
477
- connection : MitigatesHazard connect riskControl ::> flowCrossCheckControl to mitigatedHazard ::> underdoseHazard;
478
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> occlusionAlarmControl to mitigatedElement ::> underdoseHazard; }
479
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> reservoirMonitorControl to mitigatedElement ::> underdoseHazard; }
480
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> flowCrossCheckControl to mitigatedElement ::> underdoseHazard; }
478
481
  connection : TracesRisk connect sourceRiskElement ::> occlusionAlarmControl to targetRiskElement ::> riskAfterUnderdose;
479
482
  connection : AssessedAgainst connect risk ::> riskAfterUnderdose to riskMatrix ::> riskMatrix;
480
483
  connection : TracesRisk connect sourceRiskElement ::> residualEval to targetRiskElement ::> riskAfterUnderdose;
@@ -489,7 +492,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
489
492
  connection : TracesRisk connect sourceRiskElement ::> hsAirTowardPatient to targetRiskElement ::> harmAirEmbolism;
490
493
  connection : TracesRisk connect sourceRiskElement ::> harmAirEmbolism to targetRiskElement ::> riskBeforeAir;
491
494
  connection : AssessedAgainst connect risk ::> riskBeforeAir to riskMatrix ::> riskMatrix;
492
- connection : MitigatesHazard connect riskControl ::> airDetectionControl to mitigatedHazard ::> airEmbolismHazard;
495
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> airDetectionControl to mitigatedElement ::> airEmbolismHazard; }
493
496
  connection : TracesRisk connect sourceRiskElement ::> airDetectionControl to targetRiskElement ::> riskAfterAir;
494
497
  connection : AssessedAgainst connect risk ::> riskAfterAir to riskMatrix ::> riskMatrix;
495
498
  connection : TracesRisk connect sourceRiskElement ::> residualEval to targetRiskElement ::> riskAfterAir;
@@ -504,7 +507,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
504
507
  connection : TracesRisk connect sourceRiskElement ::> hsWrongTherapy to targetRiskElement ::> harmRespiratoryDepression;
505
508
  connection : TracesRisk connect sourceRiskElement ::> hsWrongTherapy to targetRiskElement ::> riskBeforeWrongDose;
506
509
  connection : AssessedAgainst connect risk ::> riskBeforeWrongDose to riskMatrix ::> riskMatrix;
507
- connection : MitigatesHazard connect riskControl ::> drugLibraryControl to mitigatedHazard ::> wrongDoseHazard;
510
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> drugLibraryControl to mitigatedElement ::> wrongDoseHazard; }
508
511
  connection : TracesRisk connect sourceRiskElement ::> drugLibraryControl to targetRiskElement ::> riskAfterWrongDose;
509
512
  connection : AssessedAgainst connect risk ::> riskAfterWrongDose to riskMatrix ::> riskMatrix;
510
513
  connection : TracesRisk connect sourceRiskElement ::> residualEval to targetRiskElement ::> riskAfterWrongDose;
@@ -516,8 +519,8 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
516
519
  connection : TracesRisk connect sourceRiskElement ::> hsFreeFlow to targetRiskElement ::> harmRespiratoryDepression;
517
520
  connection : TracesRisk connect sourceRiskElement ::> hsFreeFlow to targetRiskElement ::> riskBeforeFreeFlow;
518
521
  connection : AssessedAgainst connect risk ::> riskBeforeFreeFlow to riskMatrix ::> riskMatrix;
519
- connection : MitigatesHazard connect riskControl ::> freeFlowValveControl to mitigatedHazard ::> freeFlowHazard;
520
- connection : MitigatesHazard connect riskControl ::> doorInterlockControl to mitigatedHazard ::> freeFlowHazard;
522
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> freeFlowValveControl to mitigatedElement ::> freeFlowHazard; }
523
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> doorInterlockControl to mitigatedElement ::> freeFlowHazard; }
521
524
  connection : TracesRisk connect sourceRiskElement ::> freeFlowValveControl to targetRiskElement ::> riskAfterFreeFlow;
522
525
  connection : AssessedAgainst connect risk ::> riskAfterFreeFlow to riskMatrix ::> riskMatrix;
523
526
  connection : TracesRisk connect sourceRiskElement ::> residualEval to targetRiskElement ::> riskAfterFreeFlow;
@@ -528,8 +531,8 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
528
531
  connection : TracesRisk connect sourceRiskElement ::> hsReverseFlow to targetRiskElement ::> harmUntreatedPain;
529
532
  connection : TracesRisk connect sourceRiskElement ::> harmUntreatedPain to targetRiskElement ::> riskBeforeReverse;
530
533
  connection : AssessedAgainst connect risk ::> riskBeforeReverse to riskMatrix ::> riskMatrix;
531
- connection : MitigatesHazard connect riskControl ::> reverseDeliveryPauseControl to mitigatedHazard ::> reverseDeliveryHazard;
532
- connection : MitigatesHazard connect riskControl ::> antiRefluxDesignControl to mitigatedHazard ::> reverseDeliveryHazard;
534
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> reverseDeliveryPauseControl to mitigatedElement ::> reverseDeliveryHazard; }
535
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> antiRefluxDesignControl to mitigatedElement ::> reverseDeliveryHazard; }
533
536
  connection : TracesRisk connect sourceRiskElement ::> reverseDeliveryPauseControl to targetRiskElement ::> riskAfterReverse;
534
537
  connection : AssessedAgainst connect risk ::> riskAfterReverse to riskMatrix ::> riskMatrix;
535
538
  connection : TracesRisk connect sourceRiskElement ::> residualEval to targetRiskElement ::> riskAfterReverse;
@@ -541,9 +544,9 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
541
544
  connection : TracesRisk connect sourceRiskElement ::> hsVtbiExceeded to targetRiskElement ::> harmRespiratoryDepression;
542
545
  connection : TracesRisk connect sourceRiskElement ::> harmRespiratoryDepression to targetRiskElement ::> riskBeforeVtbi;
543
546
  connection : AssessedAgainst connect risk ::> riskBeforeVtbi to riskMatrix ::> riskMatrix;
544
- connection : MitigatesHazard connect riskControl ::> vtbiLimitPauseControl to mitigatedHazard ::> vtbiOverInfusionHazard;
545
- connection : MitigatesHazard connect riskControl ::> infusionCompleteControl to mitigatedHazard ::> vtbiOverInfusionHazard;
546
- connection : MitigatesHazard connect riskControl ::> drugLibraryControl to mitigatedHazard ::> vtbiOverInfusionHazard;
547
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> vtbiLimitPauseControl to mitigatedElement ::> vtbiOverInfusionHazard; }
548
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> infusionCompleteControl to mitigatedElement ::> vtbiOverInfusionHazard; }
549
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::hazard; connect control ::> drugLibraryControl to mitigatedElement ::> vtbiOverInfusionHazard; }
547
550
  connection : TracesRisk connect sourceRiskElement ::> vtbiLimitPauseControl to targetRiskElement ::> riskAfterVtbi;
548
551
  connection : AssessedAgainst connect risk ::> riskAfterVtbi to riskMatrix ::> riskMatrix;
549
552
  connection : TracesRisk connect sourceRiskElement ::> residualEval to targetRiskElement ::> riskAfterVtbi;
@@ -560,23 +563,23 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
560
563
  connection : HasFailureMode connect element ::> occlusionSensor to failureMode ::> fmOcclusionDrift;
561
564
  connection : HasFailureMode connect element ::> bolusButton to failureMode ::> fmStuckBolusButton;
562
565
  connection : HasFailureMode connect element ::> batteryPack to failureMode ::> fmBatteryEarlyDepletion;
563
- connection : CausesEffect connect failureMode ::> fmMotorRunaway to failureEffect ::> feOverdose;
564
- connection : CausesEffect connect failureMode ::> fmStuckBolusButton to failureEffect ::> feOverdose;
565
- connection : CausesEffect connect failureMode ::> fmAirSensorSilent to failureEffect ::> feAirDelivered;
566
- connection : CausesEffect connect failureMode ::> fmOcclusionDrift to failureEffect ::> feTherapyInterrupted;
567
- connection : CausedBy connect failureMode ::> fmMotorRunaway to failureCause ::> fcMotorDriverFault;
568
- connection : CausedBy connect failureMode ::> fmAirSensorSilent to failureCause ::> fcTransducerAging;
569
- connection : CausedBy connect failureMode ::> fmStuckBolusButton to failureCause ::> fcPendantAbuse;
566
+ connection : Causes { attribute :>> causeKind = CauseKind::failureCausesEffect; connect cause ::> fmMotorRunaway to effect ::> feOverdose; }
567
+ connection : Causes { attribute :>> causeKind = CauseKind::failureCausesEffect; connect cause ::> fmStuckBolusButton to effect ::> feOverdose; }
568
+ connection : Causes { attribute :>> causeKind = CauseKind::failureCausesEffect; connect cause ::> fmAirSensorSilent to effect ::> feAirDelivered; }
569
+ connection : Causes { attribute :>> causeKind = CauseKind::failureCausesEffect; connect cause ::> fmOcclusionDrift to effect ::> feTherapyInterrupted; }
570
+ connection : Causes { attribute :>> causeKind = CauseKind::failureCausedBy; connect cause ::> fcMotorDriverFault to effect ::> fmMotorRunaway; }
571
+ connection : Causes { attribute :>> causeKind = CauseKind::failureCausedBy; connect cause ::> fcTransducerAging to effect ::> fmAirSensorSilent; }
572
+ connection : Causes { attribute :>> causeKind = CauseKind::failureCausedBy; connect cause ::> fcPendantAbuse to effect ::> fmStuckBolusButton; }
570
573
  connection : DetectedBy connect failureMode ::> fmMotorRunaway to detectionMethod ::> dmFlowCrossCheck;
571
574
  connection : DetectedBy connect failureMode ::> fmAirSensorSilent to detectionMethod ::> dmPostSensorCheck;
572
575
  connection : DetectedBy connect failureMode ::> fmStuckBolusButton to detectionMethod ::> dmStuckInputMonitor;
573
- connection : AddressedByAction connect failureMode ::> fmAirSensorSilent to fmeaAction ::> fmeaActionAirSensor;
574
- connection : ContributesToHazard connect failureMode ::> fmMotorRunaway to hazard ::> overdoseHazard;
575
- connection : ContributesToHazard connect failureMode ::> fmStuckBolusButton to hazard ::> overdoseHazard;
576
- connection : ContributesToHazard connect failureMode ::> fmAirSensorSilent to hazard ::> airEmbolismHazard;
577
- connection : ContributesToHazard connect failureMode ::> fmOcclusionDrift to hazard ::> underdoseHazard;
578
- connection : MitigatedByControl connect failureMode ::> fmMotorRunaway to riskControl ::> flowCrossCheckControl;
579
- connection : MitigatedByControl connect failureMode ::> fmStuckBolusButton to riskControl ::> lockoutControl;
576
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::fmeaAction; connect control ::> fmeaActionAirSensor to mitigatedElement ::> fmAirSensorSilent; }
577
+ connection : Causes { attribute :>> causeKind = CauseKind::contributesToHazard; connect cause ::> fmMotorRunaway to effect ::> overdoseHazard; }
578
+ connection : Causes { attribute :>> causeKind = CauseKind::contributesToHazard; connect cause ::> fmStuckBolusButton to effect ::> overdoseHazard; }
579
+ connection : Causes { attribute :>> causeKind = CauseKind::contributesToHazard; connect cause ::> fmAirSensorSilent to effect ::> airEmbolismHazard; }
580
+ connection : Causes { attribute :>> causeKind = CauseKind::contributesToHazard; connect cause ::> fmOcclusionDrift to effect ::> underdoseHazard; }
581
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::failureMode; connect control ::> flowCrossCheckControl to mitigatedElement ::> fmMotorRunaway; }
582
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::failureMode; connect control ::> lockoutControl to mitigatedElement ::> fmStuckBolusButton; }
580
583
  connection : InputToGate connect input ::> fteMotorRunaway to gate ::> ftgMotorAnd;
581
584
  connection : InputToGate connect input ::> fteCrossCheckFails to gate ::> ftgMotorAnd;
582
585
  connection : InputToGate connect input ::> fteLockoutFault to gate ::> ftgBolusAnd;
@@ -584,15 +587,15 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
584
587
  connection : InputToGate connect input ::> ftgMotorAnd to gate ::> ftgOverdoseOr;
585
588
  connection : InputToGate connect input ::> ftgBolusAnd to gate ::> ftgOverdoseOr;
586
589
  connection : ProducesEvent connect gate ::> ftgOverdoseOr to eventElement ::> fteOverdoseTop;
587
- connection : LeadsToHazard connect topEvent ::> fteOverdoseTop to hazard ::> overdoseHazard;
588
- connection : OriginatesFrom connect eventElement ::> fteMotorRunaway to origin ::> pumpMotorAssembly;
589
- connection : OriginatesFrom connect eventElement ::> fteStuckButtonUndetected to origin ::> bolusButton;
590
+ connection : Causes { attribute :>> causeKind = CauseKind::leadsToHazard; connect cause ::> fteOverdoseTop to effect ::> overdoseHazard; }
591
+ connection : Causes { attribute :>> causeKind = CauseKind::originatesFrom; connect cause ::> pumpMotorAssembly to effect ::> fteMotorRunaway; }
592
+ connection : Causes { attribute :>> causeKind = CauseKind::originatesFrom; connect cause ::> bolusButton to effect ::> fteStuckButtonUndetected; }
590
593
  connection : ContainsEvent connect cutSet ::> mcsMotorPath to eventElement ::> fteMotorRunaway;
591
594
  connection : ContainsEvent connect cutSet ::> mcsMotorPath to eventElement ::> fteCrossCheckFails;
592
595
  connection : ContainsEvent connect cutSet ::> mcsBolusPath to eventElement ::> fteLockoutFault;
593
596
  connection : ContainsEvent connect cutSet ::> mcsBolusPath to eventElement ::> fteStuckButtonUndetected;
594
- connection : BrokenByControl connect cutSet ::> mcsMotorPath to riskControl ::> flowCrossCheckControl;
595
- connection : BrokenByControl connect cutSet ::> mcsBolusPath to riskControl ::> lockoutControl;
597
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::cutSet; connect control ::> flowCrossCheckControl to mitigatedElement ::> mcsMotorPath; }
598
+ connection : Mitigates { attribute :>> mitigationKind = MitigationKind::cutSet; connect control ::> lockoutControl to mitigatedElement ::> mcsBolusPath; }
596
599
 
597
600
  // ── Verification coverage (IEC 62304 §5.7) ──────────────────
598
601
  connection : VerifiedBy connect verificationTarget ::> reqCs01 to verificationCase ::> vcModeRange;
@@ -1,116 +1,116 @@
1
1
  package memo_examples_gpca_pump_model_catalog_gpca_verification {
2
2
  private import ScalarValues::*;
3
3
 
4
- private import memo_architecture_assurance::*;
4
+ private import memo_assurance_verification_validation::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
7
  // ── Verification cases ──────────────────────────────────────
8
- part vcModeRange : VerificationCase {
8
+ verification vcModeRange : VerificationCase {
9
9
  attribute :>> id = "VER-001";
10
10
  attribute :>> name = "VerifyModeRange";
11
11
  attribute :>> methodKind = VerificationMethodKind::formalProof;
12
12
  attribute :>> acceptanceCriteria = "Current_System_mode only takes valid exclusive values";
13
13
  attribute :>> status = "planned";
14
14
  }
15
- part vcLockout : VerificationCase {
15
+ verification vcLockout : VerificationCase {
16
16
  attribute :>> id = "VER-002";
17
17
  attribute :>> name = "VerifyBolusLockout";
18
18
  attribute :>> methodKind = VerificationMethodKind::test;
19
19
  attribute :>> acceptanceCriteria = "No patient bolus initiated when lockout or max bolus constraints active";
20
20
  attribute :>> status = "planned";
21
21
  }
22
- part vcSameStepAlarm : VerificationCase {
22
+ verification vcSameStepAlarm : VerificationCase {
23
23
  attribute :>> id = "VER-003";
24
24
  attribute :>> name = "VerifySameStepAlarmStop";
25
25
  attribute :>> methodKind = VerificationMethodKind::modelChecking;
26
26
  attribute :>> acceptanceCriteria = "Alarm output affects infusion in same execution step";
27
27
  attribute :>> status = "planned";
28
28
  }
29
- part vcTemporalModeSafety : VerificationCase {
29
+ verification vcTemporalModeSafety : VerificationCase {
30
30
  attribute :>> id = "VER-004";
31
31
  attribute :>> name = "VerifyTemporalModeSafety";
32
32
  attribute :>> methodKind = VerificationMethodKind::modelChecking;
33
33
  attribute :>> acceptanceCriteria = "No invalid transitions and pause on critical alarms";
34
34
  attribute :>> status = "planned";
35
35
  }
36
- part vcAirInLine : VerificationCase {
36
+ verification vcAirInLine : VerificationCase {
37
37
  attribute :>> id = "VER-005";
38
38
  attribute :>> name = "VerifyAirInLineStop";
39
39
  attribute :>> methodKind = VerificationMethodKind::test;
40
40
  attribute :>> acceptanceCriteria = "Injected air above threshold pauses infusion and annunciates per the REQ 59 High-priority actions (REQ-CS-21)";
41
41
  attribute :>> status = "planned";
42
42
  }
43
- part vcOcclusion : VerificationCase {
43
+ verification vcOcclusion : VerificationCase {
44
44
  attribute :>> id = "VER-006";
45
45
  attribute :>> name = "VerifyOcclusionDetection";
46
46
  attribute :>> methodKind = VerificationMethodKind::test;
47
47
  attribute :>> acceptanceCriteria = "Clamped line above pressure threshold pauses infusion and annunciates (REQ-X-04)";
48
48
  attribute :>> status = "planned";
49
49
  }
50
- part vcEmptyReservoir : VerificationCase {
50
+ verification vcEmptyReservoir : VerificationCase {
51
51
  attribute :>> id = "VER-007";
52
52
  attribute :>> name = "VerifyEmptyReservoirStop";
53
53
  attribute :>> methodKind = VerificationMethodKind::test;
54
54
  attribute :>> acceptanceCriteria = "Reservoir-empty assertion transitions to PAUSED (KVO flow) and annunciates per the REQ 59 High-priority actions (REQ-CS-23)";
55
55
  attribute :>> status = "planned";
56
56
  }
57
- part vcPost : VerificationCase {
57
+ verification vcPost : VerificationCase {
58
58
  attribute :>> id = "VER-008";
59
59
  attribute :>> name = "VerifyPowerOnSelfTest";
60
60
  attribute :>> methodKind = VerificationMethodKind::test;
61
61
  attribute :>> acceptanceCriteria = "Each injected POST fault (CPU, RAM, ROM, watchdog, sensors) blocks therapy and alarms (REQ-X-02)";
62
62
  attribute :>> status = "planned";
63
63
  }
64
- part vcPowerLoss : VerificationCase {
64
+ verification vcPowerLoss : VerificationCase {
65
65
  attribute :>> id = "VER-009";
66
66
  attribute :>> name = "VerifyPowerLossRetentionAndResume";
67
67
  attribute :>> methodKind = VerificationMethodKind::test;
68
68
  attribute :>> acceptanceCriteria = "Prescription and log intact after power cycle; therapy resumes only after confirmation (REQ-X-03)";
69
69
  attribute :>> status = "planned";
70
70
  }
71
- part vcWatchdog : VerificationCase {
71
+ verification vcWatchdog : VerificationCase {
72
72
  attribute :>> id = "VER-010";
73
73
  attribute :>> name = "VerifyWatchdogSafeState";
74
74
  attribute :>> methodKind = VerificationMethodKind::test;
75
75
  attribute :>> acceptanceCriteria = "Induced CPU hang forces zero flow and continuous alarm within 60 ms (REQ-X-08, TC-003)";
76
76
  attribute :>> status = "planned";
77
77
  }
78
- part vcHourlyMax : VerificationCase {
78
+ verification vcHourlyMax : VerificationCase {
79
79
  attribute :>> id = "VER-011";
80
80
  attribute :>> name = "VerifyHourlyDoseCeiling";
81
81
  attribute :>> methodKind = VerificationMethodKind::simulation;
82
82
  attribute :>> acceptanceCriteria = "Randomized bolus/basal schedules never exceed hourly maximum in sliding window (REQ-X-06)";
83
83
  attribute :>> status = "planned";
84
84
  }
85
- part vcPumpAccuracy : VerificationCase {
85
+ verification vcPumpAccuracy : VerificationCase {
86
86
  attribute :>> id = "VER-012";
87
87
  attribute :>> name = "VerifyDeliveryAccuracy";
88
88
  attribute :>> methodKind = VerificationMethodKind::test;
89
89
  attribute :>> acceptanceCriteria = "Gravimetric bench measurement within ±5% (Tolerance_Min_const) across rate range (REQ-X-11)";
90
90
  attribute :>> status = "planned";
91
91
  }
92
- part vcAlarmLoudness : VerificationCase {
92
+ verification vcAlarmLoudness : VerificationCase {
93
93
  attribute :>> id = "VER-013";
94
94
  attribute :>> name = "VerifyAlarmSoundPressure";
95
95
  attribute :>> methodKind = VerificationMethodKind::test;
96
96
  attribute :>> acceptanceCriteria = "Each priority tone meets Audio_level_const, 50 db for 2 s per I 8 (REQ-X-12)";
97
97
  attribute :>> status = "planned";
98
98
  }
99
- part vcFreeFlow : VerificationCase {
99
+ verification vcFreeFlow : VerificationCase {
100
100
  attribute :>> id = "VER-014";
101
101
  attribute :>> name = "VerifyAntiFreeFlowValve";
102
102
  attribute :>> methodKind = VerificationMethodKind::test;
103
103
  attribute :>> acceptanceCriteria = "No gravity flow with set disengaged under worst-case head height (REQ-X-14)";
104
104
  attribute :>> status = "planned";
105
105
  }
106
- part vcStuckButton : VerificationCase {
106
+ verification vcStuckButton : VerificationCase {
107
107
  attribute :>> id = "VER-015";
108
108
  attribute :>> name = "VerifyStuckButtonDetection";
109
109
  attribute :>> methodKind = VerificationMethodKind::test;
110
110
  attribute :>> acceptanceCriteria = "Shorted pendant input yields no bolus and Medium-priority notification after 60 s (REQ-X-09)";
111
111
  attribute :>> status = "planned";
112
112
  }
113
- part vcFlowCrossCheck : VerificationCase {
113
+ verification vcFlowCrossCheck : VerificationCase {
114
114
  attribute :>> id = "VER-016";
115
115
  attribute :>> name = "VerifyFlowCrossCheck";
116
116
  attribute :>> methodKind = VerificationMethodKind::test;
@@ -118,56 +118,56 @@ package memo_examples_gpca_pump_model_catalog_gpca_verification {
118
118
  attribute :>> status = "planned";
119
119
  }
120
120
 
121
- part vcDrugLibrary : VerificationCase {
121
+ verification vcDrugLibrary : VerificationCase {
122
122
  attribute :>> id = "VER-017";
123
123
  attribute :>> name = "VerifyDrugLibraryEnforcement";
124
124
  attribute :>> methodKind = VerificationMethodKind::test;
125
125
  attribute :>> acceptanceCriteria = "Hard-limit entries rejected, soft-limit entries require confirmation, both logged (REQ-X-01)";
126
126
  attribute :>> status = "planned";
127
127
  }
128
- part vcPrescriptionConfirm : VerificationCase {
128
+ verification vcPrescriptionConfirm : VerificationCase {
129
129
  attribute :>> id = "VER-018";
130
130
  attribute :>> name = "VerifyPrescriptionConfirmation";
131
131
  attribute :>> methodKind = VerificationMethodKind::demonstration;
132
132
  attribute :>> acceptanceCriteria = "Therapy cannot start without distinct confirmation; displayed values equal stored values (REQ-CS-09)";
133
133
  attribute :>> status = "planned";
134
134
  }
135
- part vcEventLog : VerificationCase {
135
+ verification vcEventLog : VerificationCase {
136
136
  attribute :>> id = "VER-019";
137
137
  attribute :>> name = "VerifyEventLogIntegrity";
138
138
  attribute :>> methodKind = VerificationMethodKind::test;
139
139
  attribute :>> acceptanceCriteria = "Operational/error log entries per REQ-CS-78..81; tampering detectable (REQ-X-07)";
140
140
  attribute :>> status = "planned";
141
141
  }
142
- part vcReverseDeliveryPause : VerificationCase {
142
+ verification vcReverseDeliveryPause : VerificationCase {
143
143
  attribute :>> id = "VER-020";
144
144
  attribute :>> name = "VerifyReverseDeliveryPause";
145
145
  attribute :>> methodKind = VerificationMethodKind::modelChecking;
146
146
  attribute :>> acceptanceCriteria = "Continuous or cumulative reverse delivery beyond the REQ-CS-22 duration limits transitions to PAUSED and raises the Reverse Delivery notification (NOTIF-04)";
147
147
  attribute :>> status = "planned";
148
148
  }
149
- part vcAntiRefluxMechanism : VerificationCase {
149
+ verification vcAntiRefluxMechanism : VerificationCase {
150
150
  attribute :>> id = "VER-021";
151
151
  attribute :>> name = "VerifyContinuousReverseDeliveryPrevention";
152
152
  attribute :>> methodKind = VerificationMethodKind::test;
153
153
  attribute :>> acceptanceCriteria = "During normal use and single fault condition, continuous reverse delivery is not possible (IEC 601-2-24 basis per GPCA safety requirements)";
154
154
  attribute :>> status = "planned";
155
155
  }
156
- part vcVtbiCeiling : VerificationCase {
156
+ verification vcVtbiCeiling : VerificationCase {
157
157
  attribute :>> id = "VER-022";
158
158
  attribute :>> name = "VerifyVtbiCeilingPause";
159
159
  attribute :>> methodKind = VerificationMethodKind::modelChecking;
160
160
  attribute :>> acceptanceCriteria = "Actual volume infused above the drug-database maximum VTBI transitions to PAUSED with flow at most KVO (REQ-CS-20, AGREE GP-008) and raises NOTIF-06";
161
161
  attribute :>> status = "planned";
162
162
  }
163
- part vcInfusionComplete : VerificationCase {
163
+ verification vcInfusionComplete : VerificationCase {
164
164
  attribute :>> id = "VER-023";
165
165
  attribute :>> name = "VerifyInfusionCompleteStop";
166
166
  attribute :>> methodKind = VerificationMethodKind::test;
167
167
  attribute :>> acceptanceCriteria = "Reaching prescribed total duration or maximum VTBI transitions ACTIVE to IDLE with Infusion Complete actions (REQ-CS-28)";
168
168
  attribute :>> status = "planned";
169
169
  }
170
- part vcDoorInterlock : VerificationCase {
170
+ verification vcDoorInterlock : VerificationCase {
171
171
  attribute :>> id = "VER-024";
172
172
  attribute :>> name = "VerifyDoorOpenDeliveryInhibit";
173
173
  attribute :>> methodKind = VerificationMethodKind::test;
@@ -176,7 +176,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_verification {
176
176
  }
177
177
 
178
178
  // ── Validation cases (design validation / IEC 62366) ────────
179
- part valSimulatedWard : ValidationCase {
179
+ verification valSimulatedWard : ValidationCase {
180
180
  attribute :>> id = "VAL-001";
181
181
  attribute :>> name = "SimulatedWardTherapyValidation";
182
182
  attribute :>> validationMethod = ValidationMethodKind::simulatedUse;
@@ -184,7 +184,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_verification {
184
184
  attribute :>> acceptanceCriteria = "Complete therapy scenarios OS-001..OS-006 executed without unresolved use difficulty";
185
185
  attribute :>> clinicalContext = "post-operative PCA therapy in acute care";
186
186
  }
187
- part valSummativeUsability : ValidationCase {
187
+ verification valSummativeUsability : ValidationCase {
188
188
  attribute :>> id = "VAL-002";
189
189
  attribute :>> name = "SummativeUsabilityTest";
190
190
  attribute :>> validationMethod = ValidationMethodKind::summativeUsabilityTest;
@@ -32,8 +32,8 @@ package memo_examples_gpca_pump_model_views_context_system_context_view {
32
32
  part :>> selectionQuery {
33
33
  attribute :>> id = "QRY-CTX-101";
34
34
  attribute :>> name = "GPCA_SystemContextQuery";
35
- attribute :>> includeElementKinds = ("Actor", "UseContext", "IntendedUse", "OperationalEntity");
36
- attribute :>> includeRelationshipKinds = ("InteractsWith", "ExchangesWith", "ConnectsPhysically", "GovernsUse", "AppliesInContext");
35
+ attribute :>> includeElementKinds = ("Actor", "UseContext", "IntendedUse", "ReasonablyForeseeableMisuse", "OperationalEntity");
36
+ attribute :>> includeRelationshipKinds = ("InteractsWith", "ExchangesWith", "ConnectsPhysically", "Governs", "AppliesInContext");
37
37
  attribute :>> includeLayers = ("context", "operational");
38
38
  attribute :>> selectionExpression = "product == 'GPCA'";
39
39
  attribute :>> rationaleText = "Auto-populate the GPCA context view from the context layer.";
@@ -21,8 +21,8 @@ package memo_examples_gpca_pump_model_views_document_architecture_description_vi
21
21
  part :>> selectionQuery {
22
22
  attribute :>> id = "QRY-DOC-005";
23
23
  attribute :>> name = "architectureDescriptionViewQuery";
24
- attribute :>> includeElementKinds = ("LogicalComponent", "LogicalFunction", "ComponentExchange", "SoftwareSystem", "SoftwareComponent", "HardwareAssembly", "ProcessingNode", "PhysicalPort", "FunctionalChain", "FunctionalChainStep");
25
- attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "AllocatesExchange", "RealizesInterface", "BindsToInterface", "InvolvesFunction", "SequencesStep", "DeploysOnto", "HostedBy");
24
+ attribute :>> includeElementKinds = ("LogicalComponent", "SystemFunction", "ComponentExchange", "SoftwareSystem", "SoftwareModule", "HardwareAssembly", "ProcessingNode", "PhysicalPort", "FunctionalFlow", "FunctionalFlowStep");
25
+ attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "Realizes", "BindsToInterface", "InvolvesFunction", "Precedes", "DeploysTo", "HostedBy");
26
26
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
27
27
  }
28
28
  }
@@ -20,8 +20,8 @@ package memo_examples_gpca_pump_model_views_document_cyber_assessment_view {
20
20
  part :>> selectionQuery {
21
21
  attribute :>> id = "QRY-DOC-009";
22
22
  attribute :>> name = "cyberAssessmentViewQuery";
23
- attribute :>> includeElementKinds = ("CyberRisk", "CyberHazard", "CybersecurityAsset", "CyberMitigation", "SecurityRequirement", "SecurityClaim", "SBOMEntry", "SOUPComponent");
24
- attribute :>> includeRelationshipKinds = ("ImpactsSafety", "MitigatesVulnerability", "DerivesCyberRequirement", "AssessedAgainst", "DependsOnSoup");
23
+ attribute :>> includeElementKinds = ("CyberRisk", "CyberHazard", "CybersecurityAsset", "CyberMitigation", "SecurityRequirement", "SecurityClaim", "SBOMEntry", "SoftwareModule[moduleKind=soup]");
24
+ attribute :>> includeRelationshipKinds = ("ImpactsSafety", "Mitigates", "DerivesCyberRequirement", "AssessedAgainst", "DependsOnSoup");
25
25
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
26
26
  }
27
27
  }
@@ -22,7 +22,7 @@ package memo_examples_gpca_pump_model_views_document_hazard_analysis_view {
22
22
  attribute :>> id = "QRY-DOC-003";
23
23
  attribute :>> name = "hazardAnalysisViewQuery";
24
24
  attribute :>> includeElementKinds = ("FMEAWorksheet", "FailureMode", "FailureCause", "FailureEffect", "DetectionMethod", "FMEAAction", "FaultTree", "FaultTreeEvent", "FaultTreeGate", "MinimalCutSet", "Hazard", "HazardCause", "SequenceOfEvents");
25
- attribute :>> includeRelationshipKinds = ("HasFailureMode", "CausedBy", "CausesEffect", "DetectedBy", "AddressedByAction", "InputToGate", "ContainsEvent", "OriginatesFrom", "ContributesToHazard", "BrokenByControl", "IncludedIn");
25
+ attribute :>> includeRelationshipKinds = ("HasFailureMode", "Causes", "DetectedBy", "Mitigates", "InputToGate", "ContainsEvent", "Mitigates", "IncludedIn");
26
26
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
27
27
  }
28
28
  }
@@ -21,8 +21,8 @@ package memo_examples_gpca_pump_model_views_document_rmf_view {
21
21
  part :>> selectionQuery {
22
22
  attribute :>> id = "QRY-DOC-001";
23
23
  attribute :>> name = "rmfViewQuery";
24
- attribute :>> includeElementKinds = ("Hazard", "HazardCause", "HazardousSituation", "Harm", "SequenceOfEvents", "Risk", "RiskBeforeMitigation", "RiskAfterMitigation", "RiskControl", "OverallResidualRiskEvaluation", "VerificationCase", "Evidence");
25
- attribute :>> includeRelationshipKinds = ("ContributesToHazard", "LeadsToHazard", "CausedBy", "MitigatesHazard", "MitigatedByControl", "TracesRisk", "AssessedAgainst", "VerifiedBy", "ProducesEvidence", "IncludedIn");
24
+ attribute :>> includeElementKinds = ("IntendedUse", "ReasonablyForeseeableMisuse", "SafetyRelatedCharacteristic", "Hazard", "HazardCause", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation", "VerificationCase", "Evidence");
25
+ attribute :>> includeRelationshipKinds = ("Causes", "Mitigates", "Mitigates", "TracesRisk", "AssessedAgainst", "VerifiedBy", "ProducesEvidence", "IncludedIn");
26
26
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
27
27
  }
28
28
  }
@@ -21,8 +21,8 @@ package memo_examples_gpca_pump_model_views_document_sdd_view {
21
21
  part :>> selectionQuery {
22
22
  attribute :>> id = "QRY-DOC-004";
23
23
  attribute :>> name = "sddViewQuery";
24
- attribute :>> includeElementKinds = ("SoftwareSystem", "SoftwareComponent", "ModeState", "Transition", "SoftwareInterface", "LogicalFunction", "TimingConstraint", "SOUPComponent");
25
- attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "BindsToInterface", "RealizesInterface", "DependsOnSoup", "Changes");
24
+ attribute :>> includeElementKinds = ("SoftwareSystem", "SoftwareModule", "ModeState", "Transition", "Interface", "SystemFunction", "TimingConstraint", "SoftwareModule[moduleKind=soup]");
25
+ attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "BindsToInterface", "Realizes", "DependsOnSoup", "Changes");
26
26
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
27
27
  }
28
28
  }
@@ -21,7 +21,7 @@ package memo_examples_gpca_pump_model_views_document_threat_model_view {
21
21
  attribute :>> id = "QRY-DOC-008";
22
22
  attribute :>> name = "threatModelViewQuery";
23
23
  attribute :>> includeElementKinds = ("Threat", "ThreatScenario", "Vulnerability", "CybersecurityAsset", "TrustBoundary", "AttackSurface", "CyberMitigation", "SecurityRequirement");
24
- attribute :>> includeRelationshipKinds = ("ThreatenedBy", "Exploits", "RealizedByScenario", "CrossesTrustBoundary", "MitigatesVulnerability", "DerivesCyberRequirement");
24
+ attribute :>> includeRelationshipKinds = ("ThreatenedBy", "Exploits", "RealizedByScenario", "CrossesTrustBoundary", "Mitigates", "DerivesCyberRequirement");
25
25
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
26
26
  }
27
27
  }
@@ -20,7 +20,7 @@ package memo_examples_gpca_pump_model_views_document_usability_view {
20
20
  part :>> selectionQuery {
21
21
  attribute :>> id = "QRY-DOC-002";
22
22
  attribute :>> name = "usabilityViewQuery";
23
- attribute :>> includeElementKinds = ("UseError", "UseContext", "Actor", "ValidationCase", "OperationalScenario", "IntendedUse");
23
+ attribute :>> includeElementKinds = ("UseError", "UseContext", "Actor", "ValidationCase", "OperationalScenario", "IntendedUse", "ReasonablyForeseeableMisuse");
24
24
  attribute :>> includeRelationshipKinds = ("TestedByUsability", "RealizedByScenario", "InteractsWith", "IncludedIn");
25
25
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
26
26
  }
@@ -21,7 +21,7 @@ package memo_examples_gpca_pump_model_views_document_vv_view {
21
21
  part :>> selectionQuery {
22
22
  attribute :>> id = "QRY-DOC-006";
23
23
  attribute :>> name = "vvViewQuery";
24
- attribute :>> includeElementKinds = ("VerificationCase", "ValidationCase", "TestArtifact", "Evidence", "SystemRequirement", "SoftwareRequirement", "HardwareRequirement", "RiskControl");
24
+ attribute :>> includeElementKinds = ("VerificationCase", "ValidationCase", "TestArtifact", "Evidence", "Requirement", "RiskControlMeasure");
25
25
  attribute :>> includeRelationshipKinds = ("VerifiedBy", "Validates", "TestedByUsability", "ProducesEvidence", "IncludedIn");
26
26
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
27
27
  }