@memoarchitect/ontology 0.12.1 → 0.15.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 (317) hide show
  1. package/README.md +5 -3
  2. package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
  3. package/examples/connected-patient-monitor/memo.package.yaml +3 -1
  4. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
  5. package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
  6. package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
  8. package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
  9. package/examples/functional-logical-physical/memo.identity.yaml +28 -0
  10. package/examples/functional-logical-physical/memo.package.yaml +3 -1
  11. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
  12. package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
  13. package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
  14. package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
  15. package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
  16. package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
  17. package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
  18. package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
  19. package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
  20. package/examples/gpca-pump/analysis/Samples/README.md +15 -9
  21. package/examples/gpca-pump/analysis/memo_model.py +243 -0
  22. package/examples/gpca-pump/memo.identity.yaml +521 -26
  23. package/examples/gpca-pump/memo.package.yaml +3 -1
  24. package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
  25. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
  26. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -358
  27. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
  28. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
  29. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
  30. package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
  31. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
  32. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
  33. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
  34. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
  35. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
  36. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
  37. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
  38. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
  39. package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
  40. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
  41. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -91
  42. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
  43. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
  44. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
  45. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
  47. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
  48. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
  49. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
  50. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
  51. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
  52. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
  53. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
  54. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
  55. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
  56. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
  57. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
  58. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
  59. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
  60. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
  61. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
  62. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
  63. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
  64. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
  65. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
  66. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
  67. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
  68. package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
  69. package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
  70. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
  71. package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
  72. package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
  73. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
  74. package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
  75. package/examples/multidimensional-layers/memo.package.yaml +3 -1
  76. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
  77. package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
  78. package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
  79. package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
  80. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
  81. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
  82. package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
  83. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
  84. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
  85. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
  86. package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
  87. package/examples/reusable-instrument/memo.package.yaml +3 -1
  88. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
  89. package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
  90. package/examples/robot-cell-family/README.md +34 -0
  91. package/examples/robot-cell-family/memo.identity.yaml +142 -0
  92. package/examples/robot-cell-family/memo.package.yaml +7 -0
  93. package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
  94. package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
  95. package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
  96. package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
  97. package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
  98. package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
  99. package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
  100. package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
  101. package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
  102. package/examples/robot-platform/memo.package.yaml +3 -0
  103. package/examples/robot-platform/model/platform.sysml +15 -0
  104. package/examples/ros-mobile-robot/README.md +5 -4
  105. package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
  106. package/examples/ros-mobile-robot/memo.package.yaml +3 -1
  107. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
  108. package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
  109. package/examples/software-only-medical-device/memo.package.yaml +3 -1
  110. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
  111. package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
  112. package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
  113. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
  114. package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
  115. package/examples/surgical-robot/memo.package.yaml +3 -1
  116. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
  117. package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
  118. package/examples/sysml-diagram-samples/README.md +1 -0
  119. package/examples/sysml-diagram-samples/memo.identity.yaml +675 -0
  120. package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
  121. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
  122. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +7 -29
  123. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +12 -36
  124. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +13 -25
  125. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +388 -0
  126. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
  127. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +27 -36
  128. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +8 -21
  129. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +17 -65
  130. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +23 -32
  131. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +9 -22
  132. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +7 -22
  133. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +18 -34
  134. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +2 -9
  135. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +18 -42
  136. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +11 -24
  137. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +9 -36
  138. package/examples/sysml-diagram-samples/model/methodology/project.sysml +40 -0
  139. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
  140. package/examples/temperature-alarm/memo.identity.yaml +6 -0
  141. package/examples/temperature-alarm/memo.package.yaml +3 -1
  142. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
  143. package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
  144. package/examples/ui-screen-regions/memo.identity.yaml +33 -0
  145. package/examples/ui-screen-regions/memo.package.yaml +3 -1
  146. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
  147. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
  148. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
  149. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
  150. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
  151. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
  152. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
  153. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
  154. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
  155. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
  156. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
  157. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
  158. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  159. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  160. package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
  161. package/extensions/README.md +65 -16
  162. package/extensions/aadl/memo.package.yaml +1 -1
  163. package/extensions/aadl/src/aadl_extension.sysml +5 -2
  164. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
  165. package/extensions/clinical/memo.package.yaml +1 -1
  166. package/extensions/clinical/src/clinical_extension.sysml +2 -0
  167. package/extensions/cloud/memo.package.yaml +1 -1
  168. package/extensions/container/memo.package.yaml +1 -1
  169. package/extensions/messaging/memo.package.yaml +1 -1
  170. package/extensions/messaging/src/messaging_extension.sysml +2 -2
  171. package/extensions/ros/memo.package.yaml +1 -1
  172. package/extensions/ros/src/ros_extension.sysml +25 -24
  173. package/extensions/template/memo.package.yaml +1 -1
  174. package/extensions/template/model/extension.sysml +25 -0
  175. package/memo.manifest.yaml +1 -7
  176. package/methodologies/default/memo.package.yaml +1 -1
  177. package/methodologies/gpca/memo.package.yaml +1 -1
  178. package/ontology/memo.package.yaml +1 -1
  179. package/package.json +6 -4
  180. package/profile/memo.package.yaml +1 -1
  181. package/src/architecture/decisions/memo_decisions.sysml +9 -2
  182. package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
  183. package/src/architecture/functional/functions/memo_functions.sysml +45 -31
  184. package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
  185. package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
  186. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
  187. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
  188. package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
  189. package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
  190. package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
  191. package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
  192. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
  193. package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
  194. package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
  195. package/src/architecture/operational/structure/memo_operational.sysml +5 -2
  196. package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
  197. package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
  198. package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
  199. package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
  200. package/src/architecture/variability/memo_variability.sysml +87 -0
  201. package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
  202. package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
  203. package/src/artifacts/standards/cfr_21_820.sysml +12 -24
  204. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
  205. package/src/artifacts/standards/iec_60601_1.sysml +16 -32
  206. package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
  207. package/src/artifacts/standards/iec_60812.sysml +4 -8
  208. package/src/artifacts/standards/iec_62304.sysml +607 -47
  209. package/src/artifacts/standards/iec_62366_1.sysml +12 -24
  210. package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
  211. package/src/artifacts/standards/iso_13485.sysml +12 -24
  212. package/src/artifacts/standards/iso_14971.sysml +118 -20
  213. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
  214. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
  215. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
  216. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
  217. package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
  218. package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
  219. package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
  220. package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
  221. package/src/artifacts/templates/dhf/system/sad.md +1 -1
  222. package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
  223. package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
  224. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
  225. package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
  226. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
  227. package/src/assurance/safety_risk/memo_risk.sysml +39 -1
  228. package/src/core/common/memo_common.sysml +51 -68
  229. package/src/core/enumerations/memo_enumerations.sysml +93 -9
  230. package/src/core/relationships/memo_relationships.sysml +17 -11
  231. package/src/core/relationships/memo_workspace_membership.sysml +284 -0
  232. package/src/core/semantics/semantics.sysml +58 -0
  233. package/src/core/terminology/terminology.sysml +7 -0
  234. package/src/memo_namespaces.sysml +6 -0
  235. package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
  236. package/src/methodology/core/memo_core.sysml +85 -29
  237. package/src/methodology/profiles/memo_profiles.sysml +217 -61
  238. package/src/methodology/workflow/memo_workflow.sysml +28 -0
  239. package/src/rules/closure/closure_rules.sysml +250 -4
  240. package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
  241. package/src/rules/ontology/ontology_invariants.sysml +288 -48
  242. package/src/rules/quantitative/quantitative_rules.sysml +4 -0
  243. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
  244. package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -5
  245. package/src/viewpoints/context/context_viewpoint.sysml +4 -5
  246. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
  247. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -5
  248. package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
  249. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +3 -5
  250. package/src/viewpoints/functional/functional_viewpoint.sysml +4 -5
  251. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
  252. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
  253. package/src/viewpoints/logical/logical_viewpoint.sysml +4 -5
  254. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
  255. package/src/viewpoints/operational/operational_viewpoint.sysml +4 -5
  256. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
  257. package/src/viewpoints/physical/physical_viewpoint.sysml +4 -5
  258. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
  259. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
  260. package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
  261. package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -5
  262. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
  263. package/src/viewpoints/risk/risk_viewpoint.sysml +4 -5
  264. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
  265. package/src/viewpoints/software/software_viewpoint.sysml +4 -5
  266. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
  267. package/src/viewpoints/{definitions → stakeholders_concerns}/memo_stakeholders_concerns.sysml +45 -36
  268. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -5
  269. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
  270. package/src/viewpoints/usability/usability_viewpoint.sysml +4 -5
  271. package/src/viewpoints/verification/verification_viewpoint.sysml +4 -5
  272. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
  273. package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
  274. package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
  275. package/templates/default/memo.package.yaml +6 -1
  276. package/templates/default/model/catalog/architecture/system.sysml +7 -3
  277. package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
  278. package/examples/sysml-diagram-samples/model/catalog/project.sysml +0 -26
  279. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
  280. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
  281. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
  282. package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
  283. package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
  284. package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
  285. package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
  286. package/extensions/container/src/methodology/container_methodology.sysml +0 -19
  287. package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
  288. package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
  289. package/extensions/template/src/extension.sysml +0 -39
  290. package/templates/connected-device/memo.package.yaml +0 -13
  291. package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
  292. package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
  293. package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
  294. package/templates/connected-device/model/catalog/project.sysml +0 -30
  295. package/templates/connected-device/package.json +0 -8
  296. package/templates/connected-device/syside.toml +0 -13
  297. package/templates/infusion-pump/memo.package.yaml +0 -13
  298. package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
  299. package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
  300. package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
  301. package/templates/infusion-pump/model/catalog/project.sysml +0 -30
  302. package/templates/infusion-pump/package.json +0 -8
  303. package/templates/infusion-pump/syside.toml +0 -13
  304. package/templates/monitoring-device/memo.package.yaml +0 -13
  305. package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
  306. package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
  307. package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
  308. package/templates/monitoring-device/model/catalog/project.sysml +0 -30
  309. package/templates/monitoring-device/package.json +0 -8
  310. package/templates/monitoring-device/syside.toml +0 -13
  311. package/templates/samd/memo.package.yaml +0 -13
  312. package/templates/samd/model/catalog/architecture/system.sysml +0 -5
  313. package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
  314. package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
  315. package/templates/samd/model/catalog/project.sysml +0 -30
  316. package/templates/samd/package.json +0 -8
  317. package/templates/samd/syside.toml +0 -13
@@ -2,9 +2,9 @@ package memo_examples_gpca_pump_gpca_verification {
2
2
  private import memo_examples_gpca_pump_gpca_requirements::*;
3
3
  private import memo_examples_gpca_pump_gpca_formal_behavior::*;
4
4
  private import memo_examples_gpca_pump_gpca_architecture::*;
5
+ private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
5
6
  private import memo_examples_gpca_pump_gpca_risk::*;
6
7
  private import memo_examples_gpca_pump_gpca_behavior_modes::*;
7
- private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view::*;
8
8
  private import ScalarValues::*;
9
9
  private import memo_core_dimensions::*; // ElementStatusKind
10
10
 
@@ -14,59 +14,60 @@ package memo_examples_gpca_pump_gpca_verification {
14
14
 
15
15
  private import memo_core_common::MemoIdentity;
16
16
  // ── Verification cases ──────────────────────────────────────
17
+ // A safety-critical function is verified when a test traces to it
18
+ // (CR-ONT-040), which is not the same as the requirement it satisfies being
19
+ // verified or the module it is allocated to being tested. Each function is
20
+ // named as a subject of the case whose acceptance criteria exercise the
21
+ // output its `outputSummary` describes. AcquireSensorData and
22
+ // AggregateSensorStatus are not: no case here tests the debounced,
23
+ // range-checked status vector, and naming one would claim a test that
24
+ // does not exist.
17
25
  verification vcModeRange : VerificationCase {
18
- @MemoIdentity { :>> providedId = "VER-001"; }
19
- attribute :>> name = "VerifyModeRange";
26
+ @MemoIdentity { :>> providedId = "VER-001"; :>> label = "VerifyModeRange"; }
20
27
  attribute :>> methodKind = MemoVerificationMethodKind::formalProof;
21
28
  attribute :>> acceptanceCriteria = "Current_System_mode only takes valid exclusive values";
22
29
  attribute :>> status = ElementStatusKind::approved;
23
30
 
24
- objective { verify reqCs01; }
25
- subject verified : Base::Anything[*] = (guaranteeExclusiveMode, gpcaDevice.gpcaSoftware.tlm, gpcaDevice.gpcaSoftware.outputBus);
31
+ objective { verify reqCs01; verify guaranteeExclusiveMode; }
32
+ subject verified : Base::Anything[*] = (gpcaSoftware.tlm, gpcaSoftware.outputBus, fnManageInfusion);
26
33
  }
27
34
  verification vcLockout : VerificationCase {
28
- @MemoIdentity { :>> providedId = "VER-002"; }
29
- attribute :>> name = "VerifyBolusLockout";
35
+ @MemoIdentity { :>> providedId = "VER-002"; :>> label = "VerifyBolusLockout"; }
30
36
  attribute :>> methodKind = MemoVerificationMethodKind::test;
31
37
  attribute :>> acceptanceCriteria = "No patient bolus initiated when lockout or max bolus constraints active";
32
38
  attribute :>> status = ElementStatusKind::approved;
33
39
 
34
- objective { verify reqCs25; }
35
- subject verified : Base::Anything[*] = (lockoutControl, guaranteeLockoutPreventsBolus, tcBolusResponse, gpcaDevice.gpcaSoftware.infusionMgr);
40
+ objective { verify reqCs25; verify guaranteeLockoutPreventsBolus; verify tcBolusResponse; }
41
+ subject verified : Base::Anything[*] = (lockoutControl, gpcaSoftware.infusionMgr, fnEnforceLimits);
36
42
  }
37
43
  verification vcSameStepAlarm : VerificationCase {
38
- @MemoIdentity { :>> providedId = "VER-003"; }
39
- attribute :>> name = "VerifySameStepAlarmStop";
44
+ @MemoIdentity { :>> providedId = "VER-003"; :>> label = "VerifySameStepAlarmStop"; }
40
45
  attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
41
46
  attribute :>> acceptanceCriteria = "Alarm output affects infusion in same execution step";
42
47
  attribute :>> status = ElementStatusKind::approved;
43
48
 
44
- objective { verify reqCs19; }
45
- subject verified : Base::Anything[*] = (propAlarmStopsSameStep, guaranteeAlarmStopsSameStep, tcAlarmLatency, gpcaDevice.gpcaSoftware.alarm);
49
+ objective { verify reqCs19; verify propAlarmStopsSameStep; verify guaranteeAlarmStopsSameStep; verify tcAlarmLatency; }
50
+ subject verified : Base::Anything[*] = (gpcaSoftware.alarm, fnMonitorAlarm);
46
51
  }
47
52
  verification vcTemporalModeSafety : VerificationCase {
48
- @MemoIdentity { :>> providedId = "VER-004"; }
49
- attribute :>> name = "VerifyTemporalModeSafety";
53
+ @MemoIdentity { :>> providedId = "VER-004"; :>> label = "VerifyTemporalModeSafety"; }
50
54
  attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
51
55
  attribute :>> acceptanceCriteria = "No invalid transitions and pause on critical alarms";
52
56
  attribute :>> status = ElementStatusKind::approved;
53
57
 
54
- objective { verify reqCs75; verify reqDoorOpen; }
55
- subject verified : Base::Anything[*] = (propLockoutTimerMonotonic, temporalNoInvalidTransition);
58
+ objective { verify reqCs75; verify reqDoorOpen; verify propLockoutTimerMonotonic; verify temporalNoInvalidTransition; }
56
59
  }
57
60
  verification vcAirInLine : VerificationCase {
58
- @MemoIdentity { :>> providedId = "VER-005"; }
59
- attribute :>> name = "VerifyAirInLineStop";
61
+ @MemoIdentity { :>> providedId = "VER-005"; :>> label = "VerifyAirInLineStop"; }
60
62
  attribute :>> methodKind = MemoVerificationMethodKind::test;
61
63
  attribute :>> acceptanceCriteria = "Injected air above threshold pauses infusion and annunciates per the REQ 59 High-priority actions (REQ-CS-21)";
62
64
  attribute :>> status = ElementStatusKind::approved;
63
65
 
64
66
  objective { verify reqCs21; }
65
- subject verified : Base::Anything[*] = (airDetectionControl);
67
+ subject verified : Base::Anything[*] = (airDetectionControl, fnAcquireSensors.cfnDetectAirInLine);
66
68
  }
67
69
  verification vcOcclusion : VerificationCase {
68
- @MemoIdentity { :>> providedId = "VER-006"; }
69
- attribute :>> name = "VerifyOcclusionDetection";
70
+ @MemoIdentity { :>> providedId = "VER-006"; :>> label = "VerifyOcclusionDetection"; }
70
71
  attribute :>> methodKind = MemoVerificationMethodKind::test;
71
72
  attribute :>> acceptanceCriteria = "Clamped line above pressure threshold pauses infusion and annunciates (REQ-X-04)";
72
73
  attribute :>> status = ElementStatusKind::approved;
@@ -75,47 +76,43 @@ package memo_examples_gpca_pump_gpca_verification {
75
76
  subject verified : Base::Anything[*] = (occlusionAlarmControl);
76
77
  }
77
78
  verification vcEmptyReservoir : VerificationCase {
78
- @MemoIdentity { :>> providedId = "VER-007"; }
79
- attribute :>> name = "VerifyEmptyReservoirStop";
79
+ @MemoIdentity { :>> providedId = "VER-007"; :>> label = "VerifyEmptyReservoirStop"; }
80
80
  attribute :>> methodKind = MemoVerificationMethodKind::test;
81
81
  attribute :>> acceptanceCriteria = "Reservoir-empty assertion transitions to PAUSED (KVO flow) and annunciates per the REQ 59 High-priority actions (REQ-CS-23)";
82
82
  attribute :>> status = ElementStatusKind::approved;
83
83
 
84
84
  objective { verify reqCs23; }
85
- subject verified : Base::Anything[*] = (reservoirMonitorControl, gpcaDevice.gpcaSoftware.systemStatus);
85
+ subject verified : Base::Anything[*] = (reservoirMonitorControl, gpcaSoftware.systemStatus);
86
86
  }
87
87
  verification vcPost : VerificationCase {
88
- @MemoIdentity { :>> providedId = "VER-008"; }
89
- attribute :>> name = "VerifyPowerOnSelfTest";
88
+ @MemoIdentity { :>> providedId = "VER-008"; :>> label = "VerifyPowerOnSelfTest"; }
90
89
  attribute :>> methodKind = MemoVerificationMethodKind::test;
91
90
  attribute :>> acceptanceCriteria = "Each injected POST fault (CPU, RAM, ROM, watchdog, sensors) blocks therapy and alarms (REQ-X-02)";
92
91
  attribute :>> status = ElementStatusKind::approved;
93
92
 
94
93
  objective { verify reqPost; }
95
- subject verified : Base::Anything[*] = (gpcaDevice.gpcaSoftware.systemMonitor);
94
+ subject verified : Base::Anything[*] = (gpcaSoftware.systemMonitor, fnSelfTest);
96
95
  }
97
96
  verification vcPowerLoss : VerificationCase {
98
- @MemoIdentity { :>> providedId = "VER-009"; }
99
- attribute :>> name = "VerifyPowerLossRetentionAndResume";
97
+ @MemoIdentity { :>> providedId = "VER-009"; :>> label = "VerifyPowerLossRetentionAndResume"; }
100
98
  attribute :>> methodKind = MemoVerificationMethodKind::test;
101
99
  attribute :>> acceptanceCriteria = "Prescription and log intact after power cycle; therapy resumes only after confirmation (REQ-X-03)";
102
100
  attribute :>> status = ElementStatusKind::approved;
103
101
 
104
102
  objective { verify reqPowerLossRetention; verify reqBatteryBackup; }
103
+ subject verified : Base::Anything[*] = (fnManagePower);
105
104
  }
106
105
  verification vcWatchdog : VerificationCase {
107
- @MemoIdentity { :>> providedId = "VER-010"; }
108
- attribute :>> name = "VerifyWatchdogSafeState";
106
+ @MemoIdentity { :>> providedId = "VER-010"; :>> label = "VerifyWatchdogSafeState"; }
109
107
  attribute :>> methodKind = MemoVerificationMethodKind::test;
110
108
  attribute :>> acceptanceCriteria = "Induced CPU hang forces zero flow and continuous alarm within 60 ms (REQ-X-08, TC-003)";
111
109
  attribute :>> status = ElementStatusKind::approved;
112
110
 
113
- objective { verify reqWatchdogSafeState; }
114
- subject verified : Base::Anything[*] = (watchdogControl, tcWatchdogTimeout);
111
+ objective { verify reqWatchdogSafeState; verify tcWatchdogTimeout; }
112
+ subject verified : Base::Anything[*] = watchdogControl;
115
113
  }
116
114
  verification vcHourlyMax : VerificationCase {
117
- @MemoIdentity { :>> providedId = "VER-011"; }
118
- attribute :>> name = "VerifyHourlyDoseCeiling";
115
+ @MemoIdentity { :>> providedId = "VER-011"; :>> label = "VerifyHourlyDoseCeiling"; }
119
116
  attribute :>> methodKind = MemoVerificationMethodKind::simulation;
120
117
  attribute :>> acceptanceCriteria = "Randomized bolus/basal schedules never exceed hourly maximum in sliding window (REQ-X-06)";
121
118
  attribute :>> status = ElementStatusKind::approved;
@@ -123,26 +120,25 @@ package memo_examples_gpca_pump_gpca_verification {
123
120
  objective { verify reqMaxHourlyDose; }
124
121
  }
125
122
  verification vcPumpAccuracy : VerificationCase {
126
- @MemoIdentity { :>> providedId = "VER-012"; }
127
- attribute :>> name = "VerifyDeliveryAccuracy";
123
+ @MemoIdentity { :>> providedId = "VER-012"; :>> label = "VerifyDeliveryAccuracy"; }
128
124
  attribute :>> methodKind = MemoVerificationMethodKind::test;
129
125
  attribute :>> acceptanceCriteria = "Gravimetric bench measurement within ±5% (Tolerance_Min_const) across rate range (REQ-X-11)";
130
126
  attribute :>> status = ElementStatusKind::approved;
131
127
 
132
128
  objective { verify reqPumpAccuracy; }
129
+ subject verified : Base::Anything[*] = (fnCommandPump);
133
130
  }
134
131
  verification vcAlarmLoudness : VerificationCase {
135
- @MemoIdentity { :>> providedId = "VER-013"; }
136
- attribute :>> name = "VerifyAlarmSoundPressure";
132
+ @MemoIdentity { :>> providedId = "VER-013"; :>> label = "VerifyAlarmSoundPressure"; }
137
133
  attribute :>> methodKind = MemoVerificationMethodKind::test;
138
134
  attribute :>> acceptanceCriteria = "Each priority tone meets Audio_level_const, 50 db for 2 s per I 8 (REQ-X-12)";
139
135
  attribute :>> status = ElementStatusKind::approved;
140
136
 
141
137
  objective { verify reqCs72; verify reqAlarmLoudness; }
138
+ subject verified : Base::Anything[*] = (fnAnnunciate);
142
139
  }
143
140
  verification vcFreeFlow : VerificationCase {
144
- @MemoIdentity { :>> providedId = "VER-014"; }
145
- attribute :>> name = "VerifyAntiFreeFlowValve";
141
+ @MemoIdentity { :>> providedId = "VER-014"; :>> label = "VerifyAntiFreeFlowValve"; }
146
142
  attribute :>> methodKind = MemoVerificationMethodKind::test;
147
143
  attribute :>> acceptanceCriteria = "No gravity flow with set disengaged under worst-case head height (REQ-X-14)";
148
144
  attribute :>> status = ElementStatusKind::approved;
@@ -151,8 +147,7 @@ package memo_examples_gpca_pump_gpca_verification {
151
147
  subject verified : Base::Anything[*] = (freeFlowValveControl);
152
148
  }
153
149
  verification vcStuckButton : VerificationCase {
154
- @MemoIdentity { :>> providedId = "VER-015"; }
155
- attribute :>> name = "VerifyStuckButtonDetection";
150
+ @MemoIdentity { :>> providedId = "VER-015"; :>> label = "VerifyStuckButtonDetection"; }
156
151
  attribute :>> methodKind = MemoVerificationMethodKind::test;
157
152
  attribute :>> acceptanceCriteria = "Shorted pendant input yields no bolus and Medium-priority notification after 60 s (REQ-X-09)";
158
153
  attribute :>> status = ElementStatusKind::approved;
@@ -160,48 +155,44 @@ package memo_examples_gpca_pump_gpca_verification {
160
155
  objective { verify reqStuckButton; }
161
156
  }
162
157
  verification vcFlowCrossCheck : VerificationCase {
163
- @MemoIdentity { :>> providedId = "VER-016"; }
164
- attribute :>> name = "VerifyFlowCrossCheck";
158
+ @MemoIdentity { :>> providedId = "VER-016"; :>> label = "VerifyFlowCrossCheck"; }
165
159
  attribute :>> methodKind = MemoVerificationMethodKind::test;
166
160
  attribute :>> acceptanceCriteria = "Injected deviation beyond Tolerance_Min_const sustained past Max_Duration_OverInfusion_const pauses therapy and annunciates (REQ-X-10)";
167
161
  attribute :>> status = ElementStatusKind::approved;
168
162
 
169
163
  objective { verify reqFlowCrossCheck; }
170
- subject verified : Base::Anything[*] = (flowCrossCheckControl);
164
+ subject verified : Base::Anything[*] = (flowCrossCheckControl, fnAcquireSensors.cfnMeasureFlowRate);
171
165
  }
172
166
 
173
167
  verification vcDrugLibrary : VerificationCase {
174
- @MemoIdentity { :>> providedId = "VER-017"; }
175
- attribute :>> name = "VerifyDrugLibraryEnforcement";
168
+ @MemoIdentity { :>> providedId = "VER-017"; :>> label = "VerifyDrugLibraryEnforcement"; }
176
169
  attribute :>> methodKind = MemoVerificationMethodKind::test;
177
170
  attribute :>> acceptanceCriteria = "Hard-limit entries rejected, soft-limit entries require confirmation, both logged (REQ-X-01)";
178
171
  attribute :>> status = ElementStatusKind::approved;
179
172
 
180
173
  objective { verify reqDrugLibraryLimits; }
181
- subject verified : Base::Anything[*] = (drugLibraryControl, gpcaDevice.gpcaSoftware.config);
174
+ subject verified : Base::Anything[*] = (drugLibraryControl, gpcaSoftware.config, fnValidatePrescription);
182
175
  }
183
176
  verification vcPrescriptionConfirm : VerificationCase {
184
- @MemoIdentity { :>> providedId = "VER-018"; }
185
- attribute :>> name = "VerifyPrescriptionConfirmation";
177
+ @MemoIdentity { :>> providedId = "VER-018"; :>> label = "VerifyPrescriptionConfirmation"; }
186
178
  attribute :>> methodKind = MemoVerificationMethodKind::demonstration;
187
179
  attribute :>> acceptanceCriteria = "Therapy cannot start without distinct confirmation; displayed values equal stored values (REQ-CS-09)";
188
180
  attribute :>> status = ElementStatusKind::approved;
189
181
 
190
182
  objective { verify reqCs09; }
183
+ subject verified : Base::Anything[*] = (fnPresentStatus);
191
184
  }
192
185
  verification vcEventLog : VerificationCase {
193
- @MemoIdentity { :>> providedId = "VER-019"; }
194
- attribute :>> name = "VerifyEventLogIntegrity";
186
+ @MemoIdentity { :>> providedId = "VER-019"; :>> label = "VerifyEventLogIntegrity"; }
195
187
  attribute :>> methodKind = MemoVerificationMethodKind::test;
196
188
  attribute :>> acceptanceCriteria = "Operational/error log entries per REQ-CS-78..81; tampering detectable (REQ-X-07)";
197
189
  attribute :>> status = ElementStatusKind::approved;
198
190
 
199
191
  objective { verify reqCs78; verify reqEventLogging; }
200
- subject verified : Base::Anything[*] = (gpcaDevice.gpcaSoftware.logging);
192
+ subject verified : Base::Anything[*] = (gpcaSoftware.logging);
201
193
  }
202
194
  verification vcReverseDeliveryPause : VerificationCase {
203
- @MemoIdentity { :>> providedId = "VER-020"; }
204
- attribute :>> name = "VerifyReverseDeliveryPause";
195
+ @MemoIdentity { :>> providedId = "VER-020"; :>> label = "VerifyReverseDeliveryPause"; }
205
196
  attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
206
197
  attribute :>> acceptanceCriteria = "Continuous or cumulative reverse delivery beyond the REQ-CS-22 duration limits transitions to PAUSED and raises the Reverse Delivery notification (NOTIF-04)";
207
198
  attribute :>> status = ElementStatusKind::approved;
@@ -209,8 +200,7 @@ package memo_examples_gpca_pump_gpca_verification {
209
200
  subject verified : Base::Anything[*] = (reverseDeliveryPauseControl);
210
201
  }
211
202
  verification vcAntiRefluxMechanism : VerificationCase {
212
- @MemoIdentity { :>> providedId = "VER-021"; }
213
- attribute :>> name = "VerifyContinuousReverseDeliveryPrevention";
203
+ @MemoIdentity { :>> providedId = "VER-021"; :>> label = "VerifyContinuousReverseDeliveryPrevention"; }
214
204
  attribute :>> methodKind = MemoVerificationMethodKind::test;
215
205
  attribute :>> acceptanceCriteria = "During normal use and single fault condition, continuous reverse delivery is not possible (IEC 601-2-24 basis per GPCA safety requirements)";
216
206
  attribute :>> status = ElementStatusKind::approved;
@@ -218,8 +208,7 @@ package memo_examples_gpca_pump_gpca_verification {
218
208
  subject verified : Base::Anything[*] = (antiRefluxDesignControl);
219
209
  }
220
210
  verification vcVtbiCeiling : VerificationCase {
221
- @MemoIdentity { :>> providedId = "VER-022"; }
222
- attribute :>> name = "VerifyVtbiCeilingPause";
211
+ @MemoIdentity { :>> providedId = "VER-022"; :>> label = "VerifyVtbiCeilingPause"; }
223
212
  attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
224
213
  attribute :>> acceptanceCriteria = "Actual volume infused above the drug-database maximum VTBI transitions to PAUSED with flow at most KVO (REQ-CS-20, AGREE GP-008) and raises NOTIF-06";
225
214
  attribute :>> status = ElementStatusKind::approved;
@@ -227,8 +216,7 @@ package memo_examples_gpca_pump_gpca_verification {
227
216
  subject verified : Base::Anything[*] = (vtbiLimitPauseControl);
228
217
  }
229
218
  verification vcInfusionComplete : VerificationCase {
230
- @MemoIdentity { :>> providedId = "VER-023"; }
231
- attribute :>> name = "VerifyInfusionCompleteStop";
219
+ @MemoIdentity { :>> providedId = "VER-023"; :>> label = "VerifyInfusionCompleteStop"; }
232
220
  attribute :>> methodKind = MemoVerificationMethodKind::test;
233
221
  attribute :>> acceptanceCriteria = "Reaching prescribed total duration or maximum VTBI transitions ACTIVE to IDLE with Infusion Complete actions (REQ-CS-28)";
234
222
  attribute :>> status = ElementStatusKind::approved;
@@ -236,8 +224,7 @@ package memo_examples_gpca_pump_gpca_verification {
236
224
  subject verified : Base::Anything[*] = (infusionCompleteControl);
237
225
  }
238
226
  verification vcDoorInterlock : VerificationCase {
239
- @MemoIdentity { :>> providedId = "VER-024"; }
240
- attribute :>> name = "VerifyDoorOpenDeliveryInhibit";
227
+ @MemoIdentity { :>> providedId = "VER-024"; :>> label = "VerifyDoorOpenDeliveryInhibit"; }
241
228
  attribute :>> methodKind = MemoVerificationMethodKind::test;
242
229
  attribute :>> acceptanceCriteria = "Door open during THERAPY limits flow to at most KVO and raises a notification (AGREE GP-011; REQ-X-05)";
243
230
  attribute :>> status = ElementStatusKind::approved;
@@ -247,16 +234,14 @@ package memo_examples_gpca_pump_gpca_verification {
247
234
 
248
235
  // ── Validation cases (design validation / IEC 62366) ────────
249
236
  verification valSimulatedWard : ValidationCase {
250
- @MemoIdentity { :>> providedId = "VAL-001"; }
251
- attribute :>> name = "SimulatedWardTherapyValidation";
237
+ @MemoIdentity { :>> providedId = "VAL-001"; :>> label = "SimulatedWardTherapyValidation"; }
252
238
  attribute :>> validationMethod = ValidationMethodKind::simulatedUse;
253
239
  attribute :>> userParticipation = "nurses and physicians on a simulated ward";
254
240
  attribute :>> acceptanceCriteria = "Complete therapy scenarios OS-001..OS-006 executed without unresolved use difficulty";
255
241
  attribute :>> clinicalContext = "post-operative PCA therapy in acute care";
256
242
  }
257
243
  verification valSummativeUsability : ValidationCase {
258
- @MemoIdentity { :>> providedId = "VAL-002"; }
259
- attribute :>> name = "SummativeUsabilityTest";
244
+ @MemoIdentity { :>> providedId = "VAL-002"; :>> label = "SummativeUsabilityTest"; }
260
245
  attribute :>> validationMethod = ValidationMethodKind::summativeUsabilityTest;
261
246
  attribute :>> userParticipation = "15 representative clinical users per user group";
262
247
  attribute :>> acceptanceCriteria = "No critical use errors (UE-001..UE-004) observed on safety-related tasks; residual difficulty acceptable per IEC 62366-1";
@@ -266,8 +251,7 @@ package memo_examples_gpca_pump_gpca_verification {
266
251
  // ── Test artifacts and evidence ─────────────────────────────
267
252
  part testReportLockout : MemoEvidence {
268
253
  attribute :>> evidenceKind = EvidenceKind::testArtifact;
269
- @MemoIdentity { :>> providedId = "TEST-001"; }
270
- attribute :>> name = "BolusLockoutTestReport";
254
+ @MemoIdentity { :>> providedId = "TEST-001"; :>> label = "BolusLockoutTestReport"; }
271
255
  attribute :>> version = "0.1";
272
256
  attribute :>> lifecycleState = LifecycleStateKind::development;
273
257
  attribute :>> artifactKind = ArtifactKind::testReport;
@@ -275,8 +259,7 @@ package memo_examples_gpca_pump_gpca_verification {
275
259
  }
276
260
  part testProtocolSafetySuite : MemoEvidence {
277
261
  attribute :>> evidenceKind = EvidenceKind::testArtifact;
278
- @MemoIdentity { :>> providedId = "TEST-002"; }
279
- attribute :>> name = "SafetyAlarmTestProtocol";
262
+ @MemoIdentity { :>> providedId = "TEST-002"; :>> label = "SafetyAlarmTestProtocol"; }
280
263
  attribute :>> version = "0.1";
281
264
  attribute :>> lifecycleState = LifecycleStateKind::development;
282
265
  attribute :>> artifactKind = ArtifactKind::testProtocol;
@@ -284,8 +267,7 @@ package memo_examples_gpca_pump_gpca_verification {
284
267
  }
285
268
  part evidenceLockout : MemoEvidence {
286
269
  attribute :>> evidenceKind = EvidenceKind::evidence;
287
- @MemoIdentity { :>> providedId = "EVD-001"; }
288
- attribute :>> name = "BolusLockoutEvidence";
270
+ @MemoIdentity { :>> providedId = "EVD-001"; :>> label = "BolusLockoutEvidence"; }
289
271
  attribute :>> version = "0.1";
290
272
  attribute :>> lifecycleState = LifecycleStateKind::development;
291
273
  attribute :>> evidenceType = "verification evidence";
@@ -293,8 +275,7 @@ package memo_examples_gpca_pump_gpca_verification {
293
275
  }
294
276
  part evidenceModeRange : MemoEvidence {
295
277
  attribute :>> evidenceKind = EvidenceKind::evidence;
296
- @MemoIdentity { :>> providedId = "EVD-002"; }
297
- attribute :>> name = "ModeRangeEvidence";
278
+ @MemoIdentity { :>> providedId = "EVD-002"; :>> label = "ModeRangeEvidence"; }
298
279
  attribute :>> version = "0.1";
299
280
  attribute :>> lifecycleState = LifecycleStateKind::development;
300
281
  attribute :>> evidenceType = "formal proof evidence";
@@ -302,8 +283,7 @@ package memo_examples_gpca_pump_gpca_verification {
302
283
  }
303
284
  part evidenceSameStepAlarm : MemoEvidence {
304
285
  attribute :>> evidenceKind = EvidenceKind::evidence;
305
- @MemoIdentity { :>> providedId = "EVD-003"; }
306
- attribute :>> name = "SameStepAlarmEvidence";
286
+ @MemoIdentity { :>> providedId = "EVD-003"; :>> label = "SameStepAlarmEvidence"; }
307
287
  attribute :>> version = "0.1";
308
288
  attribute :>> lifecycleState = LifecycleStateKind::development;
309
289
  attribute :>> evidenceType = "model checking evidence";
@@ -311,8 +291,7 @@ package memo_examples_gpca_pump_gpca_verification {
311
291
  }
312
292
  part evidenceTemporalModeSafety : MemoEvidence {
313
293
  attribute :>> evidenceKind = EvidenceKind::evidence;
314
- @MemoIdentity { :>> providedId = "EVD-004"; }
315
- attribute :>> name = "TemporalModeSafetyEvidence";
294
+ @MemoIdentity { :>> providedId = "EVD-004"; :>> label = "TemporalModeSafetyEvidence"; }
316
295
  attribute :>> version = "0.1";
317
296
  attribute :>> lifecycleState = LifecycleStateKind::development;
318
297
  attribute :>> evidenceType = "model checking evidence";
@@ -320,8 +299,7 @@ package memo_examples_gpca_pump_gpca_verification {
320
299
  }
321
300
  part evidenceSafetyAlarmSuite : MemoEvidence {
322
301
  attribute :>> evidenceKind = EvidenceKind::evidence;
323
- @MemoIdentity { :>> providedId = "EVD-005"; }
324
- attribute :>> name = "SafetyAlarmSuiteEvidence";
302
+ @MemoIdentity { :>> providedId = "EVD-005"; :>> label = "SafetyAlarmSuiteEvidence"; }
325
303
  attribute :>> version = "0.1";
326
304
  attribute :>> lifecycleState = LifecycleStateKind::development;
327
305
  attribute :>> evidenceType = "bench test evidence for alarm-driven safe states";
@@ -329,8 +307,7 @@ package memo_examples_gpca_pump_gpca_verification {
329
307
  }
330
308
  part evidenceUsability : MemoEvidence {
331
309
  attribute :>> evidenceKind = EvidenceKind::evidence;
332
- @MemoIdentity { :>> providedId = "EVD-006"; }
333
- attribute :>> name = "SummativeUsabilityEvidence";
310
+ @MemoIdentity { :>> providedId = "EVD-006"; :>> label = "SummativeUsabilityEvidence"; }
334
311
  attribute :>> version = "0.1";
335
312
  attribute :>> lifecycleState = LifecycleStateKind::development;
336
313
  attribute :>> evidenceType = "summative usability report per IEC 62366-1";
@@ -338,8 +315,7 @@ package memo_examples_gpca_pump_gpca_verification {
338
315
  }
339
316
  part evidenceHardwareBench : MemoEvidence {
340
317
  attribute :>> evidenceKind = EvidenceKind::evidence;
341
- @MemoIdentity { :>> providedId = "EVD-008"; }
342
- attribute :>> name = "HardwareBenchEvidence";
318
+ @MemoIdentity { :>> providedId = "EVD-008"; :>> label = "HardwareBenchEvidence"; }
343
319
  attribute :>> version = "0.1";
344
320
  attribute :>> lifecycleState = LifecycleStateKind::development;
345
321
  attribute :>> evidenceType = "bench evidence for alarm loudness and anti-free-flow valve";
@@ -347,8 +323,7 @@ package memo_examples_gpca_pump_gpca_verification {
347
323
  }
348
324
  part evidenceDoseProgramming : MemoEvidence {
349
325
  attribute :>> evidenceKind = EvidenceKind::evidence;
350
- @MemoIdentity { :>> providedId = "EVD-009"; }
351
- attribute :>> name = "DoseProgrammingEvidence";
326
+ @MemoIdentity { :>> providedId = "EVD-009"; :>> label = "DoseProgrammingEvidence"; }
352
327
  attribute :>> version = "0.1";
353
328
  attribute :>> lifecycleState = LifecycleStateKind::development;
354
329
  attribute :>> evidenceType = "test evidence for prescription limits, confirmation, dose ceiling, and event log";
@@ -356,8 +331,7 @@ package memo_examples_gpca_pump_gpca_verification {
356
331
  }
357
332
  part evidenceDeliveryAccuracy : MemoEvidence {
358
333
  attribute :>> evidenceKind = EvidenceKind::evidence;
359
- @MemoIdentity { :>> providedId = "EVD-007"; }
360
- attribute :>> name = "DeliveryAccuracyEvidence";
334
+ @MemoIdentity { :>> providedId = "EVD-007"; :>> label = "DeliveryAccuracyEvidence"; }
361
335
  attribute :>> version = "0.1";
362
336
  attribute :>> lifecycleState = LifecycleStateKind::development;
363
337
  attribute :>> evidenceType = "gravimetric bench test evidence";
@@ -18,10 +18,9 @@ package memo_examples_gpca_pump_viewpoints_context_views_context_system_context_
18
18
  view gpcaSystemContextView : MemoDiagramView {
19
19
  expose memo_examples_gpca_pump_viewpoints_context_views_context_system_context_view::*;
20
20
  attribute depth = 2;
21
- @MemoIdentity { :>> providedId = "VIEW-CTX-101"; }
22
- attribute :>> name = "GPCA_SystemContextView";
21
+ @MemoIdentity { :>> providedId = "VIEW-CTX-101"; :>> label = "GPCA_SystemContextView"; }
23
22
  @MemoIdentity { :>> shortDescription = "Actors, use contexts, and external entities at the GPCA system boundary."; }
24
- attribute :>> description = "Shows the CriSys Fig 2.1 boundary: patient, clinician, prescription, drug reservoir, needle, hospital pharmacy database, and hospital environment around the pump, with directional data flows, physical drug-path connections, and the intended use anchoring the boundary.";
23
+ doc /* Shows the CriSys Fig 2.1 boundary: patient, clinician, prescription, drug reservoir, needle, hospital pharmacy database, and hospital environment around the pump, with directional data flows, physical drug-path connections, and the intended use anchoring the boundary. */
25
24
  attribute :>> outputKind = (ViewOutputKind::diagram);
26
25
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
27
26
  attribute :>> viewKind = DiagramViewKind::general;
@@ -30,9 +29,8 @@ package memo_examples_gpca_pump_viewpoints_context_views_context_system_context_
30
29
  attribute :>> autoPopulate = true;
31
30
  attribute :>> queryDescription = "Include actors, use contexts, intended use, and external operational entities.";
32
31
  part :>> selectionQuery {
33
- @MemoIdentity { :>> providedId = "QRY-CTX-101"; }
34
- attribute :>> name = "GPCA_SystemContextQuery";
35
- attribute :>> includeElementKinds = ("Actor", "UseContext", "IntendedUse", "ReasonablyForeseeableMisuse", "OperationalEntity");
32
+ @MemoIdentity { :>> providedId = "QRY-CTX-101"; :>> label = "GPCA_SystemContextQuery"; }
33
+ attribute :>> includeElementKinds = ("OperationalParticipant", "UseContext", "IntendedUse", "ReasonablyForeseeableMisuse", "OperationalEntity");
36
34
  attribute :>> includeRelationshipKinds = ("connect", "flow", "Governs", "AppliesInContext");
37
35
  attribute :>> includeLayers = ("context", "operational");
38
36
  attribute :>> selectionExpression = "product == 'GPCA'";
@@ -19,10 +19,9 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cyb
19
19
  view gpcaCybersecurityView : MemoDiagramView {
20
20
  expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cybersecurity_view::*;
21
21
  attribute depth = 2;
22
- @MemoIdentity { :>> providedId = "VIEW-CYB-001"; }
23
- attribute :>> name = "GPCA_CybersecurityView";
22
+ @MemoIdentity { :>> providedId = "VIEW-CYB-001"; :>> label = "GPCA_CybersecurityView"; }
24
23
  @MemoIdentity { :>> shortDescription = "Shows GPCA assets, trust boundaries, threats, vulnerabilities, and mitigations."; }
25
- attribute :>> description = "Product-specific cybersecurity view intended for secure product development and cross-reference into cybersecurity risk documentation.";
24
+ doc /* Product-specific cybersecurity view intended for secure product development and cross-reference into cybersecurity risk documentation. */
26
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
27
26
  attribute :>> presentationKind = (PresentationKind::custom);
28
27
  attribute :>> viewKind = DiagramViewKind::general;
@@ -31,9 +30,8 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cyb
31
30
  attribute :>> autoPopulate = true;
32
31
  attribute :>> queryDescription = "Include cyber assets, trust boundaries, threats, vulnerabilities, cyber hazards, cyber risks, mitigations, security requirements, and verification.";
33
32
  part :>> selectionQuery {
34
- @MemoIdentity { :>> providedId = "QRY-CYB-001"; }
35
- attribute :>> name = "GPCA_CybersecurityQuery";
36
- attribute :>> includeElementKinds = ("CybersecurityAsset", "Threat", "Vulnerability", "CyberHazard", "CyberRisk", "CyberMitigation", "SecurityRequirement", "TrustBoundary", "OperativeScenario[scenarioKind=threat]");
33
+ @MemoIdentity { :>> providedId = "QRY-CYB-001"; :>> label = "GPCA_CybersecurityQuery"; }
34
+ attribute :>> includeElementKinds = ("CybersecurityAsset", "Threat", "Vulnerability", "CyberHazard", "CyberRisk", "CyberMitigation", "SecurityRequirement", "TrustBoundary", "OperativeScenario");
37
35
  attribute :>> includeLayers = ("cybersecurity", "risk", "assurance");
38
36
  attribute :>> includeConcerns = (ConcernKind::cybersecurity, ConcernKind::privacy, ConcernKind::safety);
39
37
  attribute :>> selectionExpression = "product == 'GPCA'";
@@ -10,18 +10,16 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_as
10
10
  private import memo_core_common::MemoIdentity;
11
11
  view cyberAssessmentView : MemoCybersecurityAssessmentView {
12
12
  expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view::*;
13
- @MemoIdentity { :>> providedId = "DOC-003"; }
14
- attribute :>> name = "GPCAMemoCybersecurityAssessmentView";
13
+ @MemoIdentity { :>> providedId = "DOC-003"; :>> label = "GPCAMemoCybersecurityAssessmentView"; }
15
14
  @MemoIdentity { :>> shortDescription = "Cybersecurity risk-assessment-oriented document view for GPCA."; }
16
- attribute :>> description = "Captures GPCA cyber risks, mitigations, security requirements, verification, and safety/privacy traceability for cybersecurity assessment records.";
15
+ doc /* Captures GPCA cyber risks, mitigations, security requirements, verification, and safety/privacy traceability for cybersecurity assessment records. */
17
16
  attribute :>> version = "0.1";
18
17
  attribute :>> lifecycleState = LifecycleStateKind::development;
19
18
  attribute :>> marketScope = "generic";
20
19
  ref :>> viewpointDefinition = cybersecurityViewpoint;
21
20
  part :>> selectionQuery {
22
- @MemoIdentity { :>> providedId = "QRY-DOC-009"; }
23
- attribute :>> name = "cyberAssessmentViewQuery";
24
- attribute :>> includeElementKinds = ("CyberRisk", "CyberHazard", "CybersecurityAsset", "CyberMitigation", "SecurityRequirement", "SecurityClaim", "SBOMEntry", "SoftwareModule[moduleKind=soup]");
21
+ @MemoIdentity { :>> providedId = "QRY-DOC-009"; :>> label = "cyberAssessmentViewQuery"; }
22
+ attribute :>> includeElementKinds = ("CyberRisk", "CyberHazard", "CybersecurityAsset", "CyberMitigation", "SecurityRequirement", "SBOMEntry", "SoftwareModule");
25
23
  attribute :>> includeRelationshipKinds = ("ImpactsSafety", "Mitigates", "DerivesCyberRequirement", "AssessedAgainst", "DependsOnSoup");
26
24
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
27
25
  }
@@ -10,18 +10,16 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_threat_m
10
10
  private import memo_core_common::MemoIdentity;
11
11
  view threatModelView : MemoCybersecurityThreatModelView {
12
12
  expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_threat_model_view::*;
13
- @MemoIdentity { :>> providedId = "DOC-002"; }
14
- attribute :>> name = "GPCACyberThreatModelView";
13
+ @MemoIdentity { :>> providedId = "DOC-002"; :>> label = "GPCACyberThreatModelView"; }
15
14
  @MemoIdentity { :>> shortDescription = "Threat-model-oriented document view for GPCA."; }
16
- attribute :>> description = "Captures GPCA cyber assets, trust boundaries, threats, threat scenarios, vulnerabilities, and mitigations for secure product development records.";
15
+ doc /* Captures GPCA cyber assets, trust boundaries, threats, threat scenarios, vulnerabilities, and mitigations for secure product development records. */
17
16
  attribute :>> version = "0.1";
18
17
  attribute :>> lifecycleState = LifecycleStateKind::development;
19
18
  attribute :>> marketScope = "generic";
20
19
  ref :>> viewpointDefinition = cybersecurityViewpoint;
21
20
  part :>> selectionQuery {
22
- @MemoIdentity { :>> providedId = "QRY-DOC-008"; }
23
- attribute :>> name = "threatModelViewQuery";
24
- attribute :>> includeElementKinds = ("Threat", "OperativeScenario[scenarioKind=threat]", "Vulnerability", "CybersecurityAsset", "TrustBoundary", "AttackSurface", "CyberMitigation", "SecurityRequirement");
21
+ @MemoIdentity { :>> providedId = "QRY-DOC-008"; :>> label = "threatModelViewQuery"; }
22
+ attribute :>> includeElementKinds = ("Threat", "OperativeScenario", "Vulnerability", "CybersecurityAsset", "TrustBoundary", "AttackSurface", "CyberMitigation", "SecurityRequirement");
25
23
  attribute :>> includeRelationshipKinds = ("ThreatenedBy", "Exploits", "RealizedByScenario", "CrossesTrustBoundary", "Mitigates", "DerivesCyberRequirement");
26
24
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
27
25
  }
@@ -18,8 +18,7 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
18
18
  view gpcaFunctionAllocationView : MemoDiagramView {
19
19
  expose memo_examples_gpca_pump_viewpoints_functional_views_functional_function_allocation_view::*;
20
20
  attribute depth = 2;
21
- @MemoIdentity { :>> providedId = "VIEW-FUN-102"; }
22
- attribute :>> name = "GPCA_FunctionAllocationView";
21
+ @MemoIdentity { :>> providedId = "VIEW-FUN-102"; :>> label = "GPCA_FunctionAllocationView"; }
23
22
  @MemoIdentity { :>> shortDescription = "Allocation of logical functions to software components and hardware assemblies."; }
24
23
  attribute :>> outputKind = (ViewOutputKind::matrix);
25
24
  attribute :>> presentationKind = (PresentationKind::traceMatrix);
@@ -29,8 +28,7 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
29
28
  attribute :>> autoPopulate = true;
30
29
  attribute :>> queryDescription = "Include logical functions with their AllocatedTo targets.";
31
30
  part :>> selectionQuery {
32
- @MemoIdentity { :>> providedId = "QRY-FUN-102"; }
33
- attribute :>> name = "GPCA_FunctionAllocationQuery";
31
+ @MemoIdentity { :>> providedId = "QRY-FUN-102"; :>> label = "GPCA_FunctionAllocationQuery"; }
34
32
  attribute :>> includeElementKinds = ("SystemFunction", "SoftwareModule", "HardwareAssembly");
35
33
  attribute :>> includeRelationshipKinds = ("AllocatedTo");
36
34
  attribute :>> includeLayers = ("functions", "software_structure", "hardware_structure");
@@ -18,10 +18,9 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
18
18
  view gpcaFunctionBrowserView : MemoDiagramView {
19
19
  expose memo_examples_gpca_pump_viewpoints_functional_views_functional_function_browser_view::*;
20
20
  attribute depth = 2;
21
- @MemoIdentity { :>> providedId = "VIEW-FUN-103"; }
22
- attribute :>> name = "GPCA_FunctionBrowserView";
21
+ @MemoIdentity { :>> providedId = "VIEW-FUN-103"; :>> label = "GPCA_FunctionBrowserView"; }
23
22
  @MemoIdentity { :>> shortDescription = "Membership tree over the functions layer: logical functions, flows, and the exchange item definitions, grouped by kind."; }
24
- attribute :>> description = "Browser view (SysML v2 browser view kind) exposing the functions-layer membership hierarchy as a first-class view: the eleven logical functions, the logical flows connecting them, and the data/control definitions they exchange — with kind icons, expand/collapse, and filtering.";
23
+ doc /* Browser view (SysML v2 browser view kind) exposing the functions-layer membership hierarchy as a first-class view: the eleven logical functions, the logical flows connecting them, and the data/control definitions they exchange — with kind icons, expand/collapse, and filtering. */
25
24
  attribute :>> outputKind = (ViewOutputKind::diagram);
26
25
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
27
26
  attribute :>> viewKind = DiagramViewKind::browser;
@@ -29,9 +28,11 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
29
28
  attribute :>> autoPopulate = true;
30
29
  attribute :>> queryDescription = "Include the functions layer's functions, flows, and exchange item definitions.";
31
30
  part :>> selectionQuery {
32
- @MemoIdentity { :>> providedId = "QRY-FUN-103"; }
33
- attribute :>> name = "GPCA_FunctionBrowserQuery";
34
- attribute :>> includeElementKinds = ("SystemFunction", "FunctionalExchange", "InterfaceItem");
31
+ @MemoIdentity { :>> providedId = "QRY-FUN-103"; :>> label = "GPCA_FunctionBrowserQuery"; }
32
+ // No "FunctionalExchange": an exchange is a flow between two
33
+ // functions, not an element, so it is drawn as the edge between
34
+ // the selected functions rather than selected by kind.
35
+ attribute :>> includeElementKinds = ("SystemFunction", "InterfaceItem");
35
36
  attribute :>> includeLayers = ("functions");
36
37
  attribute :>> selectionExpression = "product == 'GPCA'";
37
38
  attribute :>> rationaleText = "Auto-populate the function browser from the functions layer.";
@@ -18,10 +18,9 @@ package memo_examples_gpca_pump_viewpoints_logical_views_behavior_action_flow_vi
18
18
  view gpcaActionFlowView : MemoDiagramView {
19
19
  expose memo_examples_gpca_pump_viewpoints_logical_views_behavior_action_flow_view::*;
20
20
  attribute depth = 2;
21
- @MemoIdentity { :>> providedId = "VIEW-BHV-003"; }
22
- attribute :>> name = "GPCA_InfusionDeliveryActionFlowView";
21
+ @MemoIdentity { :>> providedId = "VIEW-BHV-003"; :>> label = "GPCA_InfusionDeliveryActionFlowView"; }
23
22
  @MemoIdentity { :>> shortDescription = "The 20 ms execution-step pipeline from sensor acquisition through alarm evaluation and dose limiting to pump actuation and event logging."; }
24
- attribute :>> description = "Action flow over the infusionDeliveryFlow composite action: typed action steps with in/out parameters, item flows carrying the DD/CD exchange items, succession ordering from start to done, and swimlane allocation onto the logical architecture (sensors, alarm, infusion manager, pump motor, logging).";
23
+ doc /* Action flow over the infusionDeliveryFlow composite action: typed action steps with in/out parameters, item flows carrying the DD/CD exchange items, succession ordering from start to done, and swimlane allocation onto the logical architecture (sensors, alarm, infusion manager, pump motor, logging). */
25
24
  attribute :>> outputKind = (ViewOutputKind::diagram);
26
25
  attribute :>> presentationKind = (PresentationKind::activityDiagram);
27
26
  attribute :>> viewKind = DiagramViewKind::actionflow;
@@ -30,9 +29,8 @@ package memo_examples_gpca_pump_viewpoints_logical_views_behavior_action_flow_vi
30
29
  attribute :>> autoPopulate = true;
31
30
  attribute :>> queryDescription = "Include the nested action usages of the infusion delivery flow with their flows and successions.";
32
31
  part :>> selectionQuery {
33
- @MemoIdentity { :>> providedId = "QRY-BHV-103"; }
34
- attribute :>> name = "GPCA_ActionFlowQuery";
35
- attribute :>> includeElementKinds = ("ActionUsage");
32
+ @MemoIdentity { :>> providedId = "QRY-BHV-103"; :>> label = "GPCA_ActionFlowQuery"; }
33
+ attribute :>> includeElementKinds = ("MemoAction");
36
34
  attribute :>> selectionExpression = "product == 'GPCA'";
37
35
  attribute :>> rationaleText = "Auto-populate the action flow view from the behavior layer's action usages.";
38
36
  }