@memoarchitect/ontology 0.6.4 → 0.7.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 (327) hide show
  1. package/README.md +1 -1
  2. package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
  3. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  4. package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
  5. package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
  6. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  7. package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
  8. package/examples/extensions/clinical/memo.package.yaml +18 -9
  9. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +10 -2
  10. package/examples/extensions/template/memo.package.yaml +17 -9
  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/analysis/Samples/01-model-overview.ipynb +148 -0
  15. package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +301 -0
  16. package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +229 -0
  17. package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +200 -0
  18. package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +188 -0
  19. package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +173 -0
  20. package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +180 -0
  21. package/examples/gpca-pump/analysis/Samples/README.md +37 -0
  22. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  23. package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
  24. package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
  25. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
  26. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +22 -12
  27. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +2 -2
  28. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +8 -2
  29. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +5 -5
  30. package/examples/gpca-pump/model/catalog/gpca_context.sysml +3 -8
  31. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
  32. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
  33. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +41 -11
  34. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +19 -8
  35. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +2 -2
  36. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1 -1
  37. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +10 -1
  38. package/examples/gpca-pump/model/catalog/gpca_system.sysml +34 -30
  39. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +59 -31
  40. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +1 -1
  41. package/examples/gpca-pump/model/catalog/project.sysml +21 -0
  42. package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
  43. package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +3 -3
  44. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
  45. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +3 -3
  46. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
  47. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +4 -4
  48. package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  49. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
  50. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
  51. package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
  52. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
  53. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +7 -7
  54. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
  55. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
  56. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +3 -3
  57. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
  58. package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
  59. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +2 -2
  60. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +3 -3
  61. package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
  62. package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
  63. package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  64. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +6 -6
  65. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
  66. package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  67. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +3 -3
  68. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +3 -3
  69. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +2 -2
  70. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
  71. package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
  72. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +3 -3
  73. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +3 -3
  74. package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
  75. package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +4 -4
  76. package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
  77. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +3 -3
  78. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +2 -2
  79. package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
  80. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  81. package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
  82. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +1 -0
  83. package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
  84. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  85. package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
  86. package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
  87. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  88. package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
  89. package/examples/nested-architecture-dsm/README.md +49 -0
  90. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +174 -0
  91. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +183 -0
  92. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
  93. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
  94. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +90 -0
  95. package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
  96. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +49 -0
  97. package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
  98. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -6
  99. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  100. package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
  101. package/examples/software-only-medical-device/model/catalog/project.sysml +24 -0
  102. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  103. package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
  104. package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
  105. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -19
  106. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  107. package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
  108. package/examples/surgical-robot/model/catalog/project.sysml +24 -0
  109. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +5 -3
  110. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  111. package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
  112. package/examples/sysml-diagram-samples/README.md +7 -0
  113. package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
  114. package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
  115. package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
  116. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  117. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +18 -10
  118. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +4 -2
  119. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
  120. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/functional_flow_view.sysml +23 -20
  121. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/interconnection_view.sysml +17 -14
  122. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
  123. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/operational_behaviour_view.sysml +23 -20
  124. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
  125. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +3 -1
  126. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +51 -0
  127. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/state_transition_view.sysml +3 -1
  128. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/tree_view.sysml +3 -1
  129. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +3 -1
  130. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
  131. package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
  132. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +2 -1
  133. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  134. package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
  135. package/examples/ui-screen-regions/README.md +117 -0
  136. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +60 -0
  137. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +189 -0
  138. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
  139. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
  140. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
  141. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
  142. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
  143. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
  144. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
  145. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
  146. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
  147. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
  148. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
  149. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +60 -0
  150. package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
  151. package/examples/ui-screen-regions/model/catalog/traces.sysml +276 -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/memo.manifest.yaml +2 -0
  163. package/methodologies/default/memo.package.yaml +19 -9
  164. package/methodologies/gpca/memo.package.yaml +18 -9
  165. package/ontology/memo.package.yaml +23 -8
  166. package/package.json +1 -3
  167. package/profile/memo.package.yaml +18 -9
  168. package/src/architecture/decisions/memo_decisions.sysml +7 -0
  169. package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
  170. package/src/architecture/functional/functions/memo_functions.sysml +5 -12
  171. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +1 -3
  172. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +18 -5
  173. package/src/architecture/implementation/ui/memo_ui.sysml +210 -27
  174. package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -2
  175. package/src/architecture/logical/structure/memo_logical_structure.sysml +71 -15
  176. package/src/architecture/operational/activities/memo_activities.sysml +0 -1
  177. package/src/architecture/operational/scenarios/memo_scenarios.sysml +2 -2
  178. package/src/architecture/operational/workflows/memo_workflows.sysml +0 -6
  179. package/src/{compliance/change/memo_change.sysml → artifacts/configuration_management/memo_configuration_management.sysml} +5 -3
  180. package/src/artifacts/core/memo_controlled_artifacts.sysml +33 -0
  181. package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
  182. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +1 -1
  183. package/src/assurance/human_factors/memo_human_factors.sysml +1 -1
  184. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +11 -0
  185. package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
  186. package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
  187. package/src/core/annotations/memo_annotations.sysml +77 -0
  188. package/src/core/common/memo_common.sysml +20 -3
  189. package/src/core/consistency_rules/consistency_rules.sysml +7 -0
  190. package/src/core/dimensions/dimensions.sysml +5 -1
  191. package/src/core/enumerations/memo_enumerations.sysml +41 -6
  192. package/src/core/methodology_scope/methodology_scope.sysml +7 -15
  193. package/src/core/relationships/memo_relationships.sysml +4 -2
  194. package/src/memo_namespaces.sysml +97 -67
  195. package/src/methodology/core/memo_core.sysml +45 -2
  196. package/src/methodology/profiles/memo_profiles.sysml +30 -40
  197. package/src/methodology/workflow/memo_workflow.sysml +7 -2
  198. package/src/rules/closure/closure_rules.sysml +104 -31
  199. package/src/rules/coverage/coverage_rules.sysml +4 -256
  200. package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
  201. package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
  202. package/src/rules/ontology/ontology_invariants.sysml +38 -68
  203. package/src/rules/quantitative/quantitative_rules.sysml +8 -8
  204. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +7 -0
  205. package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -1
  206. package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
  207. package/src/viewpoints/context/context_viewpoint.sysml +3 -1
  208. package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
  209. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -1
  210. package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
  211. package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
  212. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +6 -0
  213. package/src/viewpoints/functional/functional_viewpoint.sysml +3 -1
  214. package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +2 -2
  215. package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +2 -2
  216. package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
  217. package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
  218. package/src/viewpoints/operational/operational_viewpoint.sysml +3 -1
  219. package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +2 -2
  220. package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
  221. package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
  222. package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
  223. package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
  224. package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
  225. package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
  226. package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
  227. package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
  228. package/src/viewpoints/software/software_viewpoint.sysml +3 -1
  229. package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
  230. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
  231. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
  232. package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
  233. package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
  234. package/src/viewpoints/verification/verification_viewpoint.sysml +3 -1
  235. package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +2 -2
  236. package/templates/connected-device/memo.package.yaml +11 -5
  237. package/templates/connected-device/model/catalog/project.sysml +28 -0
  238. package/templates/connected-device/syside.toml +1 -1
  239. package/templates/default/memo.package.yaml +11 -5
  240. package/templates/default/model/catalog/project.sysml +28 -0
  241. package/templates/default/syside.toml +1 -1
  242. package/templates/infusion-pump/memo.package.yaml +11 -5
  243. package/templates/infusion-pump/model/catalog/project.sysml +28 -0
  244. package/templates/infusion-pump/syside.toml +1 -1
  245. package/templates/monitoring-device/memo.package.yaml +11 -5
  246. package/templates/monitoring-device/model/catalog/project.sysml +28 -0
  247. package/templates/monitoring-device/syside.toml +1 -1
  248. package/templates/samd/memo.package.yaml +11 -5
  249. package/templates/samd/model/catalog/project.sysml +28 -0
  250. package/templates/samd/syside.toml +1 -1
  251. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
  252. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
  253. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
  254. package/examples/gpca-pump/memo.config.yaml +0 -9
  255. package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
  256. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
  257. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
  258. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
  259. package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
  260. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
  261. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
  262. package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
  263. package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
  264. package/ontology/memo.rendering.yaml +0 -84
  265. package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
  266. package/src/compliance/document_views/memo_document_views.sysml +0 -7
  267. package/src/compliance/iso14971/risk_management_file.sysml +0 -16
  268. package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
  269. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
  270. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +0 -0
  271. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +0 -0
  272. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +0 -0
  273. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +0 -0
  274. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +0 -0
  275. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +0 -0
  276. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +0 -0
  277. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +0 -0
  278. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +0 -0
  279. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +0 -0
  280. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +0 -0
  281. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +0 -0
  282. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +0 -0
  283. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +0 -0
  284. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +0 -0
  285. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
  286. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +0 -0
  287. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +0 -0
  288. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +0 -0
  289. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +0 -0
  290. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +0 -0
  291. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +0 -0
  292. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/srs.md +0 -0
  293. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +0 -0
  294. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +0 -0
  295. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
  296. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +0 -0
  297. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/task-analysis.md +0 -0
  298. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +0 -0
  299. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
  300. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +0 -0
  301. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
  302. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fmea.md +0 -0
  303. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
  304. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +0 -0
  305. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
  306. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
  307. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +0 -0
  308. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
  309. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
  310. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
  311. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
  312. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
  313. /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
  314. /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  315. /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  316. /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
  317. /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  318. /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
  319. /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
  320. /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  321. /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
  322. /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
  323. /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  324. /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  325. /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
  326. /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  327. /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
@@ -0,0 +1,180 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "memo-1",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Model inventory table\n",
9
+ "\n",
10
+ "Filter a model-independent element table and export the current result to CSV.\n",
11
+ "\n",
12
+ "This sample uses only standard SysML v2 concepts and automatically discovers the project's `model/` or `src/` directory."
13
+ ]
14
+ },
15
+ {
16
+ "cell_type": "code",
17
+ "execution_count": 1,
18
+ "id": "memo-2",
19
+ "metadata": {
20
+ "execution": {
21
+ "iopub.execute_input": "2026-07-29T22:35:06.617815Z",
22
+ "iopub.status.busy": "2026-07-29T22:35:06.617748Z",
23
+ "iopub.status.idle": "2026-07-29T22:35:06.932238Z",
24
+ "shell.execute_reply": "2026-07-29T22:35:06.931715Z"
25
+ }
26
+ },
27
+ "outputs": [
28
+ {
29
+ "name": "stdout",
30
+ "output_type": "stream",
31
+ "text": [
32
+ "Loaded 42 SysML files from /Users/poojakashyap/sandbox/memo-meta/memo/examples/gpca-pump/model\n"
33
+ ]
34
+ }
35
+ ],
36
+ "source": [
37
+ "from pathlib import Path\n",
38
+ "from collections import Counter, defaultdict\n",
39
+ "import syside\n",
40
+ "\n",
41
+ "def find_sysml_root(start=Path.cwd()):\n",
42
+ " \"\"\"Find the nearest model/ or src/ folder containing textual SysML.\"\"\"\n",
43
+ " for directory in (start, *start.parents):\n",
44
+ " for folder_name in ('model', 'src'):\n",
45
+ " candidate = directory / folder_name\n",
46
+ " if candidate.is_dir() and next(candidate.rglob('*.sysml'), None):\n",
47
+ " return candidate\n",
48
+ " raise FileNotFoundError('No model/ or src/ directory containing .sysml files was found')\n",
49
+ "\n",
50
+ "SYSML_ROOT = find_sysml_root()\n",
51
+ "SYSML_FILES = sorted(SYSML_ROOT.rglob('*.sysml'))\n",
52
+ "model, diagnostics = syside.try_load_model([str(path) for path in SYSML_FILES])\n",
53
+ "print(f'Loaded {len(SYSML_FILES)} SysML files from {SYSML_ROOT}')"
54
+ ]
55
+ },
56
+ {
57
+ "cell_type": "code",
58
+ "execution_count": 2,
59
+ "id": "memo-3",
60
+ "metadata": {
61
+ "execution": {
62
+ "iopub.execute_input": "2026-07-29T22:35:06.933891Z",
63
+ "iopub.status.busy": "2026-07-29T22:35:06.933794Z",
64
+ "iopub.status.idle": "2026-07-29T22:35:06.948150Z",
65
+ "shell.execute_reply": "2026-07-29T22:35:06.947725Z"
66
+ }
67
+ },
68
+ "outputs": [
69
+ {
70
+ "data": {
71
+ "text/html": [
72
+ "<p><strong>6,676</strong> matching elements; showing 250.</p>\n",
73
+ "<div style=\"max-height:620px;overflow:auto\"><table style=\"font-size:12px\"><thead style=\"position:sticky;top:0;background:white\"><tr><th>Kind</th><th>Name</th><th>Qualified name</th><th>Owner</th></tr></thead><tbody><tr><td>ActionDefinition</td><td>AcquireSensorData</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::AcquireSensorData</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>ActionDefinition</td><td>ActuatePumpMotor</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::ActuatePumpMotor</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>ActionDefinition</td><td>ComputeFlowCommand</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::ComputeFlowCommand</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>ActionDefinition</td><td>EnforceDoseLimits</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::EnforceDoseLimits</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>ActionDefinition</td><td>EvaluateAlarmConditions</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::EvaluateAlarmConditions</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>ActionDefinition</td><td>LogTherapyEvent</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::LogTherapyEvent</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>ActionUsage</td><td>infusionDeliveryFlow</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>ActionUsage</td><td>acquireSensors</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow::acquireSensors</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow</td></tr><tr><td>ActionUsage</td><td>actuateMotor</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow::actuateMotor</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow</td></tr><tr><td>ActionUsage</td><td>computeFlow</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow::computeFlow</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow</td></tr><tr><td>ActionUsage</td><td>enforceLimits</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow::enforceLimits</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow</td></tr><tr><td>ActionUsage</td><td>evaluateAlarms</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow::evaluateAlarms</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow</td></tr><tr><td>ActionUsage</td><td>logEvent</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow::logEvent</td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions::infusionDeliveryFlow</td></tr><tr><td>ActionUsage</td><td>oaCompleteNominalTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaCompleteNominalTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>deliverWithinLimits</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaCompleteNominalTherapy::deliverWithinLimits</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaCompleteNominalTherapy</td></tr><tr><td>ActionUsage</td><td>recordTherapyEvent</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaCompleteNominalTherapy::recordTherapyEvent</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaCompleteNominalTherapy</td></tr><tr><td>ActionUsage</td><td>oaLoadReservoir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaLoadReservoir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>oaMaintain</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaMaintain</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>oaPrescribe</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaPrescribe</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>oaProgram</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaProgram</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>oaRecoverAfterPowerLoss</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRecoverAfterPowerLoss</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>confirmRestart</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRecoverAfterPowerLoss::confirmRestart</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRecoverAfterPowerLoss</td></tr><tr><td>ActionUsage</td><td>restorePrescription</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRecoverAfterPowerLoss::restorePrescription</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRecoverAfterPowerLoss</td></tr><tr><td>ActionUsage</td><td>switchToBattery</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRecoverAfterPowerLoss::switchToBattery</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRecoverAfterPowerLoss</td></tr><tr><td>ActionUsage</td><td>oaRejectBolusDuringLockout</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRejectBolusDuringLockout</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>checkLockout</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRejectBolusDuringLockout::checkLockout</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRejectBolusDuringLockout</td></tr><tr><td>ActionUsage</td><td>rejectAndLog</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRejectBolusDuringLockout::rejectAndLog</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRejectBolusDuringLockout</td></tr><tr><td>ActionUsage</td><td>oaReplaceEmptyReservoir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReplaceEmptyReservoir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>replaceReservoir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReplaceEmptyReservoir::replaceReservoir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReplaceEmptyReservoir</td></tr><tr><td>ActionUsage</td><td>resumeTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReplaceEmptyReservoir::resumeTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReplaceEmptyReservoir</td></tr><tr><td>ActionUsage</td><td>stopAndAnnunciate</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReplaceEmptyReservoir::stopAndAnnunciate</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReplaceEmptyReservoir</td></tr><tr><td>ActionUsage</td><td>oaRequestBolus</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRequestBolus</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>oaRespondAlarm</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondAlarm</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>oaRespondToAirInLine</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToAirInLine</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>annunciateAir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToAirInLine::annunciateAir</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToAirInLine</td></tr><tr><td>ActionUsage</td><td>reprimeAndRestart</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToAirInLine::reprimeAndRestart</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToAirInLine</td></tr><tr><td>ActionUsage</td><td>stopOrKvo</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToAirInLine::stopOrKvo</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToAirInLine</td></tr><tr><td>ActionUsage</td><td>oaRespondToOcclusion</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToOcclusion</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>annunciateOcclusion</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToOcclusion::annunciateOcclusion</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToOcclusion</td></tr><tr><td>ActionUsage</td><td>pauseInfusion</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToOcclusion::pauseInfusion</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToOcclusion</td></tr><tr><td>ActionUsage</td><td>resolveAndResume</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToOcclusion::resolveAndResume</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaRespondToOcclusion</td></tr><tr><td>ActionUsage</td><td>oaReviewLog</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaReviewLog</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>oaStartTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::oaStartTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>wfManageActiveTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::wfManageActiveTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>wfPrepareAndStartTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::wfPrepareAndStartTherapy</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>wfRespondToTherapyAlarm</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::wfRespondToTherapyAlarm</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>wsProgram</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::wsProgram</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>wsRequestBolus</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::wsRequestBolus</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>wsRespondAlarm</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::wsRespondAlarm</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>ActionUsage</td><td>wsStart</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational::wsStart</td><td>memo_examples_gpca_pump_model_catalog_gpca_operational</td></tr><tr><td>AllocationUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>AllocationUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>AllocationUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>AllocationUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>AllocationUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>AllocationUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_behavior_actions</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmAirSensorSilent</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmOcclusionDrift</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmStuckBolusButton</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmBatteryEarlyDepletion</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feAirDelivered</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feAirDelivered</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feAirDelivered</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feAirDelivered</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feAirDelivered</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feAirDelivered</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feAirDelivered</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feTherapyInterrupted</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feTherapyInterrupted</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feTherapyInterrupted</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feTherapyInterrupted</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feTherapyInterrupted</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feTherapyInterrupted</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::feTherapyInterrupted</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcMotorDriverFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcMotorDriverFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcMotorDriverFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcMotorDriverFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcMotorDriverFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcMotorDriverFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcTransducerAging</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcTransducerAging</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcTransducerAging</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcTransducerAging</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcTransducerAging</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcTransducerAging</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcPendantAbuse</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcPendantAbuse</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcPendantAbuse</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcPendantAbuse</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcPendantAbuse</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fcPendantAbuse</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmFlowCrossCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmFlowCrossCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmFlowCrossCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmFlowCrossCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmFlowCrossCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmPostSensorCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmPostSensorCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmPostSensorCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmPostSensorCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmPostSensorCheck</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmStuckInputMonitor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmStuckInputMonitor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmStuckInputMonitor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmStuckInputMonitor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::dmStuckInputMonitor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaActionAirSensor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaActionAirSensor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaActionAirSensor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaActionAirSensor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaActionAirSensor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaActionAirSensor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fmeaActionAirSensor</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftaOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftaOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftaOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftaOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftaOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftaOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftaOverdose</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteOverdoseTop</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteOverdoseTop</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteOverdoseTop</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteOverdoseTop</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteMotorRunaway</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteCrossCheckFails</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteCrossCheckFails</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteCrossCheckFails</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteCrossCheckFails</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteCrossCheckFails</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteCrossCheckFails</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteLockoutFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteLockoutFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteLockoutFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteLockoutFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteLockoutFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteLockoutFault</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteStuckButtonUndetected</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteStuckButtonUndetected</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteStuckButtonUndetected</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteStuckButtonUndetected</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteStuckButtonUndetected</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::fteStuckButtonUndetected</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgOverdoseOr</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgOverdoseOr</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgOverdoseOr</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgMotorAnd</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgMotorAnd</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgMotorAnd</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgBolusAnd</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgBolusAnd</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::ftgBolusAnd</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsMotorPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsMotorPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsMotorPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsMotorPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsMotorPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsBolusPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsBolusPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsBolusPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsBolusPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_analysis::mcsBolusPath</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcTherapyControl</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcTherapyControl</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcTherapyControl</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcTherapyControl</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcTherapyControl</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcSafetyMonitoring</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcSafetyMonitoring</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcSafetyMonitoring</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcSafetyMonitoring</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcSafetyMonitoring</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcOperatorInterface</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcOperatorInterface</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcOperatorInterface</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcOperatorInterface</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcOperatorInterface</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcDrugDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcDrugDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcDrugDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcDrugDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcDrugDelivery</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcPowerSubsystem</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcPowerSubsystem</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcPowerSubsystem</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcPowerSubsystem</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::lcPowerSubsystem</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::gpcaDeviceSensors</td></tr><tr><td>AttributeUsage</td><td></td><td></td><td>memo_examples_gpca_pump_model_catalog_gpca_architecture::gpcaDeviceSensors</td></tr></tbody></table></div>"
74
+ ],
75
+ "text/plain": [
76
+ "<IPython.core.display.HTML object>"
77
+ ]
78
+ },
79
+ "metadata": {},
80
+ "output_type": "display_data"
81
+ }
82
+ ],
83
+ "source": [
84
+ "from html import escape\n",
85
+ "from IPython.display import HTML, display\n",
86
+ "\n",
87
+ "KIND_FILTER = '' # Example: 'PartUsage' or 'Requirement'\n",
88
+ "NAME_FILTER = '' # Case-insensitive name fragment\n",
89
+ "ROW_LIMIT = 250\n",
90
+ "\n",
91
+ "semantic_elements = (\n",
92
+ " list(model.elements(syside.Usage, include_subtypes=True))\n",
93
+ " + list(model.elements(syside.Definition, include_subtypes=True))\n",
94
+ ")\n",
95
+ "\n",
96
+ "def text(value):\n",
97
+ " return str(value) if value else ''\n",
98
+ "\n",
99
+ "records = []\n",
100
+ "for item in semantic_elements:\n",
101
+ " kind = type(item).__name__\n",
102
+ " name = text(item.name or item.declared_name)\n",
103
+ " qualified_name = text(item.qualified_name)\n",
104
+ " owner = getattr(item, 'owner', None)\n",
105
+ " owner_name = text(getattr(owner, 'qualified_name', None) or getattr(owner, 'name', None))\n",
106
+ " if KIND_FILTER and KIND_FILTER.casefold() not in kind.casefold():\n",
107
+ " continue\n",
108
+ " if NAME_FILTER and NAME_FILTER.casefold() not in (name + ' ' + qualified_name).casefold():\n",
109
+ " continue\n",
110
+ " records.append({'kind': kind, 'name': name, 'qualified_name': qualified_name, 'owner': owner_name})\n",
111
+ "\n",
112
+ "records.sort(key=lambda row: (row['kind'], row['qualified_name'], row['name']))\n",
113
+ "visible = records[:ROW_LIMIT]\n",
114
+ "rows = ''.join(\n",
115
+ " '<tr>' + ''.join(f'<td>{escape(row[key])}</td>' for key in ('kind', 'name', 'qualified_name', 'owner')) + '</tr>'\n",
116
+ " for row in visible\n",
117
+ ")\n",
118
+ "display(HTML(f'''<p><strong>{len(records):,}</strong> matching elements; showing {len(visible):,}.</p>\n",
119
+ "<div style=\"max-height:620px;overflow:auto\"><table style=\"font-size:12px\"><thead style=\"position:sticky;top:0;background:white\"><tr><th>Kind</th><th>Name</th><th>Qualified name</th><th>Owner</th></tr></thead><tbody>{rows}</tbody></table></div>'''))"
120
+ ]
121
+ },
122
+ {
123
+ "cell_type": "code",
124
+ "execution_count": 3,
125
+ "id": "memo-4",
126
+ "metadata": {
127
+ "execution": {
128
+ "iopub.execute_input": "2026-07-29T22:35:06.949118Z",
129
+ "iopub.status.busy": "2026-07-29T22:35:06.949060Z",
130
+ "iopub.status.idle": "2026-07-29T22:35:06.961470Z",
131
+ "shell.execute_reply": "2026-07-29T22:35:06.961042Z"
132
+ }
133
+ },
134
+ "outputs": [
135
+ {
136
+ "name": "stdout",
137
+ "output_type": "stream",
138
+ "text": [
139
+ "Exported 6,676 rows to /Users/poojakashyap/sandbox/memo-meta/memo/examples/gpca-pump/analysis/Samples/model-inventory.csv\n"
140
+ ]
141
+ }
142
+ ],
143
+ "source": [
144
+ "import csv\n",
145
+ "\n",
146
+ "OUTPUT = Path('model-inventory.csv')\n",
147
+ "with OUTPUT.open('w', newline='', encoding='utf-8') as stream:\n",
148
+ " writer = csv.DictWriter(stream, fieldnames=['kind', 'name', 'qualified_name', 'owner'])\n",
149
+ " writer.writeheader()\n",
150
+ " writer.writerows(records)\n",
151
+ "print(f'Exported {len(records):,} rows to {OUTPUT.resolve()}')"
152
+ ]
153
+ }
154
+ ],
155
+ "metadata": {
156
+ "kernelspec": {
157
+ "display_name": "Python 3 (ipykernel)",
158
+ "language": "python",
159
+ "name": "python3"
160
+ },
161
+ "language_info": {
162
+ "codemirror_mode": {
163
+ "name": "ipython",
164
+ "version": 3
165
+ },
166
+ "file_extension": ".py",
167
+ "mimetype": "text/x-python",
168
+ "name": "python",
169
+ "nbconvert_exporter": "python",
170
+ "pygments_lexer": "ipython3",
171
+ "version": "3.12.13"
172
+ },
173
+ "memo": {
174
+ "description": "Filter a model-independent element table and export the current result to CSV.",
175
+ "starter": true
176
+ }
177
+ },
178
+ "nbformat": 4,
179
+ "nbformat_minor": 5
180
+ }
@@ -0,0 +1,37 @@
1
+ # MEMO analysis samples
2
+
3
+ These notebooks are created by `memo init` and are designed to work with any
4
+ MEMO textual SysML v2 project. They locate the nearest `model/` or `src/`
5
+ directory automatically and query it through the typed Syside API.
6
+
7
+ ## Prerequisites
8
+
9
+ Use Python 3.12 or newer with JupyterLab and Syside installed and licensed:
10
+
11
+ ```bash
12
+ python -m venv analysis/.venv
13
+ source analysis/.venv/bin/activate
14
+ python -m pip install jupyterlab syside
15
+ cd analysis
16
+ jupyter lab --port 8888
17
+ ```
18
+
19
+ Configure the Syside license using its supported keyring or environment setup.
20
+ MEMO Architect's **Analysis → Jupyter Notebooks** menu opens the local server at
21
+ `http://127.0.0.1:8888`.
22
+
23
+ ## Included notebooks
24
+
25
+ | Notebook | Purpose |
26
+ |---|---|
27
+ | `01-model-overview.ipynb` | Model size, semantic composition, and diagnostic summary. |
28
+ | `02-architecture-hotspots.ipynb` | Busy containers, deep ownership paths, and dominant types. |
29
+ | `03-model-quality.ipynb` | Diagnostics, unnamed elements, repeated names, and empty definitions. |
30
+ | `04-change-impact-explorer.ipynb` | Search an element and inspect its structural neighborhood. |
31
+ | `05-model-charts.ipynb` | Bar and donut charts rendered without extra plotting packages. |
32
+ | `06-ownership-graph.ipynb` | SVG network graph of model ownership relationships. |
33
+ | `07-model-inventory-table.ipynb` | Filterable inventory parameters, HTML table, and CSV export. |
34
+
35
+ The notebooks use `syside.try_load_model()`, so partial analysis remains
36
+ available while the project contains parser or semantic diagnostics. Review the
37
+ reported diagnostics before treating analysis results as release evidence.
@@ -1,11 +1,10 @@
1
+ // The GPCA methodology package.
2
+ //
3
+ // The `ResolvesToMethodology` connection that used to live here bound a model
4
+ // element to an authored `ResolvedMethodology` instance. A resolved methodology
5
+ // is derived from the project binding and the methodology chain, so there is
6
+ // nothing here to connect to: see `model/catalog/gpca_project.sysml` for the
7
+ // binding, and `gpca_profiles.sysml` for the methodology it selects.
1
8
  package memo_examples_gpca_pump_methodology_gpca_methodology {
2
- private import ScalarValues::*;
3
-
4
- private import memo_methodology_profiles::*;
5
9
  private import memo_examples_gpca_pump_methodology_gpca_profiles::*;
6
- private import memo_core_relationships::*;
7
- private import memo_examples_gpca_pump_model_catalog_gpca_requirements::*;
8
- private import memo_examples_gpca_pump_model_catalog_gpca_architecture::*;
9
-
10
- connection : ResolvesToMethodology connect boundModelElement ::> tlm to resolvedMethodology ::> gpcaMethodResolved;
11
10
  }
@@ -1,25 +1,103 @@
1
+ // GPCA prototype methodology.
2
+ //
3
+ // Converted from subtraction to explicit selection at the native semantic flip.
4
+ // Before, this methodology said "the default, minus cybersecurity and SOUP" by
5
+ // listing `excludedKind` entries on a separate `MethodologyScope` part. ADR-1-15
6
+ // requires a methodology to declare its own final effective lists, so the
7
+ // selection is now stated positively here and the scope part is gone.
8
+ //
9
+ // Two differences from the pre-flip behaviour are deliberate and recorded:
10
+ //
11
+ // 1. Cybersecurity is excluded by *not* selecting `memo_assurance_cybersecurity`
12
+ // and by two explicit RulePolicy entries disabling the cybersecurity closure
13
+ // rules. Before, `excludedKind` named eleven cybersecurity kinds; naming the
14
+ // discipline once is the same selection stated at the level the methodology
15
+ // metamodel supports.
16
+ // 2. `SoftwareModule[moduleKind=soup]` cannot be expressed as an inclusion.
17
+ // Explicit selection works over kinds, not over instance attribute values,
18
+ // so a per-instance filter has no positive form. The GPCA model declares no
19
+ // SOUP module, so the effective element set is unchanged; the intent is
20
+ // recorded in this methodology's description and belongs to a project rule
21
+ // if it ever needs enforcing.
22
+ //
23
+ // The authored `gpcaMethodResolved : ResolvedMethodology` is gone. A resolved
24
+ // methodology is derived from the binding and the methodology chain; authoring
25
+ // one by hand created a second answer that no resolver produced.
1
26
  package memo_examples_gpca_pump_methodology_gpca_profiles {
2
27
  private import ScalarValues::*;
3
28
 
4
29
  private import memo_methodology_core::*;
5
30
  private import memo_methodology_profiles::*;
6
31
  private import memo_core_enumerations::*;
32
+ private import memo_rules_closure::*;
7
33
 
8
34
  part gpcaMethodDefinition : MethodologyDefinition {
9
35
  attribute :>> id = "METH-GPCA-001";
10
36
  attribute :>> name = "GPCAPrototypeMethodology";
11
- attribute :>> version = "1.0";
37
+ attribute :>> version = "0.6.5";
12
38
  attribute :>> domain = "medical device modeling";
13
- attribute :>> description = "GPCA infusion pump methodology — subtraction-based tailoring for non-networked prototype. Excludes cybersecurity layer and SOUP modules.";
14
- attribute :>> baseMethodName = "MedicalDeviceLightDefault";
15
- }
39
+ attribute :>> description = "GPCA infusion pump methodology for the non-networked prototype variant. Explicitly selects the five architecture layers and four of the five assurance disciplines; cybersecurity is out of scope because the prototype has no network interface. The prototype uses no SOUP.";
40
+ ref :>> baseMethodology = mdDefaultDefinition;
41
+ attribute :>> scopeMode = ScopeModeKind::explicit;
42
+
43
+ attribute :>> includedLayer = (
44
+ "memo_architecture_operational",
45
+ "memo_architecture_functional",
46
+ "memo_architecture_logical",
47
+ "memo_architecture_implementation",
48
+ "memo_architecture_realization"
49
+ );
50
+
51
+ // Explicit means explicit. A methodology that names its assurance
52
+ // disciplines and stops there selects no rules at all, because rules
53
+ // live in their own packages. Before the flip an empty list read as
54
+ // "everything", which hid exactly this: the selection said nothing and
55
+ // the tools behaved as though it said everything.
56
+ attribute :>> includedModule = (
57
+ "memo_core_common",
58
+ "memo_core_enumerations",
59
+ "memo_core_relationships",
60
+ "memo_core_annotations",
61
+ "memo_core_consistency_rules",
62
+ "memo_assurance_requirements",
63
+ "memo_assurance_requirements_needs",
64
+ "memo_assurance_safety_risk",
65
+ "memo_assurance_human_factors",
66
+ "memo_assurance_verification_validation",
67
+ "memo_rules_closure",
68
+ "memo_rules_crosslayer",
69
+ "memo_rules_quantitative",
70
+ "memo_rules_ontology"
71
+ );
72
+
73
+ attribute :>> includedStandard = (
74
+ "ISO 14971",
75
+ "IEC 62304",
76
+ "21 CFR 820",
77
+ "ISO 13485",
78
+ "ISO 14155",
79
+ "IEC 62366",
80
+ "IEC 60601-1"
81
+ );
82
+
83
+ attribute :>> includedArtifactKind = ("RiskManagementPlan");
84
+
85
+ attribute :>> includedViewpoint = ("VP-CTX", "VP-LOG", "VP-RISK");
86
+
87
+ part disableThreatMitigation : RulePolicy :> rulePolicy {
88
+ ref :>> targetRule : ThreatMitigationRule;
89
+ attribute :>> disposition = RuleDispositionKind::disabled;
90
+ attribute :>> rationaleText = "CR-MED-040 requires every threat to carry a mitigation. The prototype has no network or removable-media interface, so no threat is in scope and the rule can only report on elements this variant does not model.";
91
+ attribute :>> authority = "GPCA Systems Engineering Lead";
92
+ attribute :>> approvalReference = "GPCA-DHF-CR-0007";
93
+ }
16
94
 
17
- part gpcaMethodResolved : ResolvedMethodology {
18
- attribute :>> id = "RMETH-GPCA-001";
19
- attribute :>> name = "GPCAPrototypeResolved";
20
- attribute :>> version = "1.0";
21
- attribute :>> safetyClassification = SafetyClassKind::C;
22
- attribute :>> lifecycleStage = LifecycleStateKind::development;
23
- attribute :>> resolutionSummary = "GPCA infusion pump — IEC 62304 Class C at development stage. Default scope minus cybersecurity and SOUP, as the prototype is non-networked.";
95
+ part disableAssetThreatLink : RulePolicy :> rulePolicy {
96
+ ref :>> targetRule : AssetThreatLinkRule;
97
+ attribute :>> disposition = RuleDispositionKind::disabled;
98
+ attribute :>> rationaleText = "CR-MED-041 requires every cybersecurity asset to trace to a threat. Cybersecurity is not a selected discipline for this variant, so the rule has no subjects and its absence is recorded here rather than left implicit.";
99
+ attribute :>> authority = "GPCA Systems Engineering Lead";
100
+ attribute :>> approvalReference = "GPCA-DHF-CR-0007";
101
+ }
24
102
  }
25
103
  }
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_analysis {
1
+ package memo_examples_gpca_pump_gpca_analysis {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_assurance_safety_risk_analysis::*;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_architecture {
1
+ package memo_examples_gpca_pump_gpca_architecture {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_implementation_hardware_structure::*;
@@ -44,6 +44,17 @@ package memo_examples_gpca_pump_model_catalog_gpca_architecture {
44
44
  attribute :>> safetyPartition = "supporting partition";
45
45
  }
46
46
 
47
+ // ── Device (UMN AADL architectural model) ───────────────────
48
+ // The AADL top-level `GPCA_Device` system. GPCA_Device.Impl declares only
49
+ // GPCA_HW_Sensors, GPCA_SW, and GPCA_HW_Actuators as subcomponents.
50
+ part gpcaDevice : PhysicalAssembly {
51
+ attribute :>> id = "HW-000";
52
+ attribute :>> name = "GPCA_Device";
53
+ attribute :>> responsibility = "AADL device boundary containing the sensor wrapper, GPCA software, and actuator wrapper.";
54
+ attribute :>> safetyRole = "device boundary carrying the intended use and the risk-control architecture";
55
+ attribute :>> partNumber = "GPCA-DEV-001";
56
+ }
57
+
47
58
  // ── Hardware: aggregates (UMN AADL architectural model) ─────
48
59
  part gpcaDeviceSensors : HardwareAssembly {
49
60
  attribute :>> id = "HW-001";
@@ -250,17 +261,16 @@ package memo_examples_gpca_pump_model_catalog_gpca_architecture {
250
261
  }
251
262
 
252
263
  // ── Structural composition ──────────────────────────────────
253
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> airInLineSensor;
254
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> occlusionSensor;
255
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> reservoirSensor;
256
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> doorSensor;
257
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> flowSensor;
258
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> bolusButton;
259
- connection : Composes connect parent ::> gpcaDeviceSensors to child ::> operatorKeypad;
260
- connection : Composes connect parent ::> gpcaActuators to child ::> pumpMotorAssembly;
261
- connection : Composes connect parent ::> gpcaActuators to child ::> antiFreeFlowValve;
262
- connection : Composes connect parent ::> gpcaActuators to child ::> audibleAlarm;
263
- connection : Composes connect parent ::> gpcaActuators to child ::> operatorDisplay;
264
+ // Device level (GPCA_Device.aadl): the assemblies and the software system
265
+ // the device is built from.
266
+ connection : Composes connect parent ::> gpcaDevice to child ::> gpcaDeviceSensors;
267
+ connection : Composes connect parent ::> gpcaDevice to child ::> gpcaActuators;
268
+ connection : Composes connect parent ::> gpcaDevice to child ::> gpcaSoftware;
269
+
270
+ // The physical parts below are MEMO design extensions derived from system
271
+ // requirements and hazard analysis, not subcomponents in the published
272
+ // AADL packages. They intentionally remain outside this AADL composition
273
+ // until a project authority defines their interfaces and ownership.
264
274
  connection : Composes connect parent ::> gpcaSoftware to child ::> tlm;
265
275
  connection : Composes connect parent ::> gpcaSoftware to child ::> config;
266
276
  connection : Composes connect parent ::> gpcaSoftware to child ::> alarm;
@@ -1,6 +1,6 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_behavior_actions {
1
+ package memo_examples_gpca_pump_gpca_behavior_actions {
2
2
  private import ScalarValues::*;
3
- private import memo_examples_gpca_pump_model_catalog_gpca_architecture::*;
3
+ private import memo_examples_gpca_pump_gpca_architecture::*;
4
4
 
5
5
  private import memo_architecture_functional_behavior::*;
6
6
  private import memo_architecture_logical_interfaces::*;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_behavior_modes {
1
+ package memo_examples_gpca_pump_gpca_behavior_modes {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_functional_behavior::*;
@@ -13,13 +13,19 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_modes {
13
13
  // auto-initiate on the prescribed schedule (REQ 24), with no
14
14
  // external trigger. Mode-tree containment edges (Composes)
15
15
  // live in gpca_trace.sysml.
16
+ // Audit scope: this is a requirements-level therapy-mode abstraction, not
17
+ // a full transcription of CITE-009's monolithic Stateflow chart. The
18
+ // source chart also contains detailed Configuration, Alarms,
19
+ // System_Monitor, Log, and Infusion_Manager state behavior that remains
20
+ // outside this compact mode view.
16
21
  // ═════════════════════════════════════════════════════════════
17
22
  state topLevelModeMachine : StateMachine {
18
23
  attribute :>> id = "BM-001";
19
24
  attribute :>> name = "TopLevelModeMachine";
20
25
  attribute :>> machineKind = "hierarchical state machine";
21
26
  attribute :>> executionSemantics = "single-step synchronous; sub-modes inherit all parent-mode requirements";
22
- attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1 Fig 4.1";
27
+ attribute fidelityScope = "Requirements-derived therapy mode hierarchy; partial abstraction of CITE-009, not a state-for-state Stateflow transcription";
28
+ attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1 Fig 4.1; CITE-009: CriSys PCA Pump Software Model";
23
29
  }
24
30
 
25
31
  // ── Mode states (Fig 4.1) ───────────────────────────────────
@@ -1,8 +1,12 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
1
+ package memo_examples_gpca_pump_gpca_behavior_subsystems {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_functional_functions::*;
5
5
  private import memo_core_enumerations::*;
6
+ private import memo_architecture_logical_interfaces::*;
7
+ private import memo_architecture_operational_use_cases::*;
8
+ private import memo_assurance_requirements::*;
9
+ private import memo_core_common::*;
6
10
 
7
11
  // ── Logical functions ───────────────────────────────────────
8
12
  part fnAcquireSensors : SystemFunction {
@@ -110,7 +114,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
110
114
  attribute :>> id = "LF-001";
111
115
  attribute :>> name = "SensorAcquisitionFlow";
112
116
  attribute :>> flowKind = FlowKind::measurement;
113
- attribute :>> direction = DirectionKind::input;
114
117
  attribute :>> latencyBudgetMs = 20.0;
115
118
  attribute :>> staleAfterMs = 40.0;
116
119
  attribute :>> integrityLevel = "class C data path";
@@ -121,7 +124,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
121
124
  attribute :>> id = "LF-002";
122
125
  attribute :>> name = "FlowCommandFlow";
123
126
  attribute :>> flowKind = FlowKind::command;
124
- attribute :>> direction = DirectionKind::output;
125
127
  attribute :>> latencyBudgetMs = 20.0;
126
128
  attribute :>> staleAfterMs = 20.0;
127
129
  attribute :>> integrityLevel = "class C command path";
@@ -132,7 +134,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
132
134
  attribute :>> id = "LF-003";
133
135
  attribute :>> name = "AlarmSignalFlow";
134
136
  attribute :>> flowKind = FlowKind::alarm;
135
- attribute :>> direction = DirectionKind::output;
136
137
  attribute :>> latencyBudgetMs = 20.0;
137
138
  attribute :>> staleAfterMs = 20.0;
138
139
  attribute :>> integrityLevel = "class C alarm path; same-step delivery to infusion manager";
@@ -143,7 +144,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
143
144
  attribute :>> id = "LF-004";
144
145
  attribute :>> name = "PrescriptionEntryFlow";
145
146
  attribute :>> flowKind = FlowKind::configuration;
146
- attribute :>> direction = DirectionKind::input;
147
147
  attribute :>> latencyBudgetMs = 500.0;
148
148
  attribute :>> staleAfterMs = 0.0;
149
149
  attribute :>> integrityLevel = "confirmed double-entry path";