@memoarchitect/ontology 0.13.2 → 0.15.1

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 (315) 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 -357
  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 -90
  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 +459 -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 +5 -5
  123. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
  124. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
  125. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
  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 +25 -25
  128. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
  129. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
  130. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
  131. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
  132. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
  133. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
  134. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
  135. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
  136. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
  137. package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
  138. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
  139. package/examples/temperature-alarm/memo.identity.yaml +6 -0
  140. package/examples/temperature-alarm/memo.package.yaml +3 -1
  141. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
  142. package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
  143. package/examples/ui-screen-regions/memo.identity.yaml +33 -0
  144. package/examples/ui-screen-regions/memo.package.yaml +3 -1
  145. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
  146. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
  147. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
  148. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
  149. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
  150. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
  151. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
  152. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
  153. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
  154. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
  155. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
  156. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
  157. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  158. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  159. package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
  160. package/extensions/README.md +65 -16
  161. package/extensions/aadl/memo.package.yaml +1 -1
  162. package/extensions/aadl/src/aadl_extension.sysml +5 -2
  163. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
  164. package/extensions/clinical/memo.package.yaml +1 -1
  165. package/extensions/clinical/src/clinical_extension.sysml +2 -0
  166. package/extensions/cloud/memo.package.yaml +1 -1
  167. package/extensions/container/memo.package.yaml +1 -1
  168. package/extensions/messaging/memo.package.yaml +1 -1
  169. package/extensions/messaging/src/messaging_extension.sysml +2 -2
  170. package/extensions/ros/memo.package.yaml +1 -1
  171. package/extensions/ros/src/ros_extension.sysml +25 -24
  172. package/extensions/template/memo.package.yaml +1 -1
  173. package/extensions/template/model/extension.sysml +25 -0
  174. package/memo.manifest.yaml +1 -7
  175. package/methodologies/default/memo.package.yaml +1 -1
  176. package/methodologies/gpca/memo.package.yaml +1 -1
  177. package/ontology/memo.package.yaml +1 -1
  178. package/package.json +6 -4
  179. package/profile/memo.package.yaml +1 -1
  180. package/src/architecture/decisions/memo_decisions.sysml +9 -2
  181. package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
  182. package/src/architecture/functional/functions/memo_functions.sysml +45 -31
  183. package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
  184. package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
  185. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
  186. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
  187. package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
  188. package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
  189. package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
  190. package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
  191. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
  192. package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
  193. package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
  194. package/src/architecture/operational/structure/memo_operational.sysml +5 -2
  195. package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
  196. package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
  197. package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
  198. package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
  199. package/src/architecture/variability/memo_variability.sysml +87 -0
  200. package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
  201. package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
  202. package/src/artifacts/standards/cfr_21_820.sysml +12 -24
  203. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
  204. package/src/artifacts/standards/iec_60601_1.sysml +16 -32
  205. package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
  206. package/src/artifacts/standards/iec_60812.sysml +4 -8
  207. package/src/artifacts/standards/iec_62304.sysml +607 -47
  208. package/src/artifacts/standards/iec_62366_1.sysml +12 -24
  209. package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
  210. package/src/artifacts/standards/iso_13485.sysml +12 -24
  211. package/src/artifacts/standards/iso_14971.sysml +118 -20
  212. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
  213. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
  214. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
  215. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
  216. package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
  217. package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
  218. package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
  219. package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
  220. package/src/artifacts/templates/dhf/system/sad.md +1 -1
  221. package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
  222. package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
  223. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
  224. package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
  225. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
  226. package/src/assurance/safety_risk/memo_risk.sysml +39 -1
  227. package/src/core/common/memo_common.sysml +61 -68
  228. package/src/core/enumerations/memo_enumerations.sysml +93 -9
  229. package/src/core/relationships/memo_relationships.sysml +17 -11
  230. package/src/core/relationships/memo_workspace_membership.sysml +284 -0
  231. package/src/core/semantics/semantics.sysml +58 -0
  232. package/src/core/terminology/terminology.sysml +7 -0
  233. package/src/memo_namespaces.sysml +6 -0
  234. package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
  235. package/src/methodology/core/memo_core.sysml +85 -29
  236. package/src/methodology/profiles/memo_profiles.sysml +217 -61
  237. package/src/methodology/workflow/memo_workflow.sysml +28 -0
  238. package/src/rules/closure/closure_rules.sysml +250 -4
  239. package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
  240. package/src/rules/ontology/ontology_invariants.sysml +288 -48
  241. package/src/rules/quantitative/quantitative_rules.sysml +4 -0
  242. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
  243. package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
  244. package/src/viewpoints/context/context_viewpoint.sysml +2 -3
  245. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
  246. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
  247. package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
  248. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
  249. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  250. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
  251. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
  252. package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
  253. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
  254. package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
  255. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
  256. package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
  257. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
  258. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
  259. package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
  260. package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
  261. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
  262. package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
  263. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
  264. package/src/viewpoints/software/software_viewpoint.sysml +2 -3
  265. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
  266. package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
  267. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
  268. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
  269. package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
  270. package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
  271. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
  272. package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
  273. package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
  274. package/templates/default/memo.package.yaml +6 -1
  275. package/templates/default/model/catalog/architecture/system.sysml +7 -3
  276. package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
  277. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
  278. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
  279. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
  280. package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
  281. package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
  282. package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
  283. package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
  284. package/extensions/container/src/methodology/container_methodology.sysml +0 -19
  285. package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
  286. package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
  287. package/extensions/template/src/extension.sysml +0 -39
  288. package/templates/connected-device/memo.package.yaml +0 -13
  289. package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
  290. package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
  291. package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
  292. package/templates/connected-device/model/catalog/project.sysml +0 -30
  293. package/templates/connected-device/package.json +0 -8
  294. package/templates/connected-device/syside.toml +0 -13
  295. package/templates/infusion-pump/memo.package.yaml +0 -13
  296. package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
  297. package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
  298. package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
  299. package/templates/infusion-pump/model/catalog/project.sysml +0 -30
  300. package/templates/infusion-pump/package.json +0 -8
  301. package/templates/infusion-pump/syside.toml +0 -13
  302. package/templates/monitoring-device/memo.package.yaml +0 -13
  303. package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
  304. package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
  305. package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
  306. package/templates/monitoring-device/model/catalog/project.sysml +0 -30
  307. package/templates/monitoring-device/package.json +0 -8
  308. package/templates/monitoring-device/syside.toml +0 -13
  309. package/templates/samd/memo.package.yaml +0 -13
  310. package/templates/samd/model/catalog/architecture/system.sysml +0 -5
  311. package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
  312. package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
  313. package/templates/samd/model/catalog/project.sysml +0 -30
  314. package/templates/samd/package.json +0 -8
  315. package/templates/samd/syside.toml +0 -13
@@ -1,4 +1,4 @@
1
- // Temperature Alarm — project identity and method binding.
1
+ // Temperature Alarm — model identity and method binding.
2
2
  //
3
3
  // The native entrypoint. The imports name what this project contains and the
4
4
  // binding names the methodology it is governed by. No YAML file participates.
@@ -16,10 +16,9 @@ package memo_examples_temperature_alarm_project {
16
16
 
17
17
  private import memo_core_common::*;
18
18
  private import memo_core_common::MemoIdentity;
19
- part projectBinding : ProjectMethodBinding {
20
- @MemoIdentity { :>> providedId = "PMB-TEMPERATURE-ALARM-001"; }
21
- attribute :>> name = "TemperatureAlarmProjectMethodBinding";
22
- attribute :>> projectName = "Temperature Alarm";
19
+ part projectBinding : ModelMethodBinding {
20
+ @MemoIdentity { :>> providedId = "PMB-TEMPERATURE-ALARM-001"; :>> label = "TemperatureAlarmModelMethodBinding"; }
21
+ attribute :>> modelName = "Temperature Alarm";
23
22
  ref :>> selectedMethodology = mdDefaultDefinition;
24
23
  attribute :>> scopeMode = ScopeModeKind::explicit;
25
24
  }
@@ -8,6 +8,21 @@ elements:
8
8
  "memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay":
9
9
  shortId: "SYS-1"
10
10
  uuid: "9b45772b-7d7d-53e2-97b6-f10d92dc10e4"
11
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnPresentBatteryStatus":
12
+ shortId: "SYS-2"
13
+ uuid: "96aa292d-dbbf-514d-be51-baa7c23b4a4b"
14
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnPresentDeliveryStatus":
15
+ shortId: "SYS-3"
16
+ uuid: "0b73c191-7803-58ab-a4d1-4630b3528825"
17
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnPresentLocalTime":
18
+ shortId: "SYS-4"
19
+ uuid: "daa13f3a-026a-5208-bbda-c6d4ef7f4684"
20
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnSetInfusionRate":
21
+ shortId: "SYS-5"
22
+ uuid: "84ed7035-7c68-51e5-bf83-bb64d76f2df4"
23
+ "memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnValidateDrugSelection":
24
+ shortId: "SYS-6"
25
+ uuid: "710bc732-5946-52ab-a720-ad7284248936"
11
26
  "memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentBatteryStatus":
12
27
  shortId: "SYS-2"
13
28
  uuid: "96aa292d-dbbf-514d-be51-baa7c23b4a4b"
@@ -35,12 +50,27 @@ elements:
35
50
  "memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen":
36
51
  shortId: "UIE-4"
37
52
  uuid: "20084808-1df8-5082-a777-5630903a9d17"
53
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::elDrugSelectorRegion":
54
+ shortId: "UIE-3"
55
+ uuid: "d920531b-65e4-5b63-a450-fc5c3bd33646"
56
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::elDrugSelectorRegion::elDrugMenuExpanded":
57
+ shortId: "UIE-1"
58
+ uuid: "efcfbe2b-af48-51dc-81e2-e46c067bbf46"
59
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::elDrugSelectorRegion::elDrugSelectorClosed":
60
+ shortId: "UIE-2"
61
+ uuid: "7b27669f-d11c-5580-91cd-9353ef088458"
62
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::uiElement12":
63
+ shortId: "UIE-7"
64
+ uuid: "1b7cc4c8-3e31-5ba8-b99b-5069491aeb0a"
38
65
  "memo_examples_ui_screen_regions_architecture_implementation_ui::elRateConfirmDialog":
39
66
  shortId: "UIE-5"
40
67
  uuid: "5a7e1a4a-a1af-5294-817e-2dcf64f7717e"
41
68
  "memo_examples_ui_screen_regions_architecture_implementation_ui::elSettingsScreen":
42
69
  shortId: "UIE-6"
43
70
  uuid: "61a7a5d8-ab25-5fc7-b41f-340ab47b7b56"
71
+ "memo_examples_ui_screen_regions_architecture_implementation_ui::elSettingsScreen::elRateConfirmDialog":
72
+ shortId: "UIE-5"
73
+ uuid: "5a7e1a4a-a1af-5294-817e-2dcf64f7717e"
44
74
  "memo_examples_ui_screen_regions_architecture_implementation_ui::uiElement12":
45
75
  shortId: "UIE-7"
46
76
  uuid: "1b7cc4c8-3e31-5ba8-b99b-5069491aeb0a"
@@ -74,6 +104,9 @@ elements:
74
104
  "memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarScope":
75
105
  shortId: "MDL-3"
76
106
  uuid: "b9b7b12d-f223-57ea-8d1b-da58b140b671"
107
+ "memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarScope::cmtStatusBarReply":
108
+ shortId: "MDL-2"
109
+ uuid: "d99e8642-f5e1-5d31-8cb0-174b25cd1249"
77
110
  "memo_examples_ui_screen_regions_artifacts_reviews_notes::noteCaptureReview":
78
111
  shortId: "MDL-4"
79
112
  uuid: "0e6d1f04-2e80-52dd-90f3-4eeed99b5799"
@@ -1,3 +1,5 @@
1
1
  name: ui-screen-regions
2
- entrypoint: model/catalog/project.sysml
2
+ entrypoint: model/methodology/project.sysml
3
3
  include: [model]
4
+ toolchain:
5
+ packager: internal
@@ -19,43 +19,43 @@ package memo_examples_ui_screen_regions_architecture_functional_functions {
19
19
  private import memo_core_common::*;
20
20
  private import memo_core_common::MemoIdentity;
21
21
  action fnManageInfusionDisplay : SystemFunction {
22
- @MemoIdentity { :>> providedId = "UIR-FN-002"; } attribute :>> name = "ManageInfusionDisplay";
22
+ @MemoIdentity { :>> providedId = "UIR-FN-002"; :>> label = "ManageInfusionDisplay"; }
23
23
  @MemoIdentity { :>> shortDescription = "Coordinate the running-infusion display and its interactive regions."; }
24
- attribute :>> description = "Maintains the clinician-facing infusion state and delegates rate programming, drug selection, and status presentation to focused child functions.";
24
+ doc /* Maintains the clinician-facing infusion state and delegates rate programming, drug selection, and status presentation to focused child functions. */
25
25
  attribute :>> criticality = CriticalityKind::high;
26
26
 
27
27
  action fnSetInfusionRate : SystemFunction {
28
- @MemoIdentity { :>> providedId = "UIR-FN-001"; } attribute :>> name = "SetInfusionRate";
28
+ @MemoIdentity { :>> providedId = "UIR-FN-001"; :>> label = "SetInfusionRate"; }
29
29
  @MemoIdentity { :>> shortDescription = "Apply a clinician-entered rate to the pump controller."; }
30
- attribute :>> description = "Validates a requested infusion rate against the drug library limits and the pump's mechanical range, then commits it to the controller as the active setpoint.";
30
+ doc /* Validates a requested infusion rate against the drug library limits and the pump's mechanical range, then commits it to the controller as the active setpoint. */
31
31
  attribute :>> criticality = CriticalityKind::high;
32
32
  }
33
33
 
34
34
  action fnValidateDrugSelection : SystemFunction {
35
- @MemoIdentity { :>> providedId = "UIR-FN-003"; } attribute :>> name = "ValidateDrugSelection";
35
+ @MemoIdentity { :>> providedId = "UIR-FN-003"; :>> label = "ValidateDrugSelection"; }
36
36
  @MemoIdentity { :>> shortDescription = "Validate a selected drug and concentration against the active care-area library."; }
37
- attribute :>> description = "Accepts only a drug and concentration present in the active drug library, then supplies its dosing limits to rate validation.";
37
+ doc /* Accepts only a drug and concentration present in the active drug library, then supplies its dosing limits to rate validation. */
38
38
  attribute :>> criticality = CriticalityKind::high;
39
39
  }
40
40
 
41
41
  action fnPresentDeliveryStatus : SystemFunction {
42
- @MemoIdentity { :>> providedId = "UIR-FN-004"; } attribute :>> name = "PresentDeliveryStatus";
42
+ @MemoIdentity { :>> providedId = "UIR-FN-004"; :>> label = "PresentDeliveryStatus"; }
43
43
  @MemoIdentity { :>> shortDescription = "Present current rate and cumulative delivered volume."; }
44
- attribute :>> description = "Refreshes the rate and volume-delivered indicators from controller state at the specified display update interval.";
44
+ doc /* Refreshes the rate and volume-delivered indicators from controller state at the specified display update interval. */
45
45
  attribute :>> criticality = CriticalityKind::medium;
46
46
  }
47
47
 
48
48
  action fnPresentLocalTime : SystemFunction {
49
- @MemoIdentity { :>> providedId = "UIR-FN-005"; } attribute :>> name = "PresentLocalTime";
49
+ @MemoIdentity { :>> providedId = "UIR-FN-005"; :>> label = "PresentLocalTime"; }
50
50
  @MemoIdentity { :>> shortDescription = "Read the synchronized clock and present local time."; }
51
- attribute :>> description = "Formats the device clock as local 24-hour time and refreshes the status-bar value once per second.";
51
+ doc /* Formats the device clock as local 24-hour time and refreshes the status-bar value once per second. */
52
52
  attribute :>> criticality = CriticalityKind::medium;
53
53
  }
54
54
 
55
55
  action fnPresentBatteryStatus : SystemFunction {
56
- @MemoIdentity { :>> providedId = "UIR-FN-006"; } attribute :>> name = "PresentBatteryStatus";
56
+ @MemoIdentity { :>> providedId = "UIR-FN-006"; :>> label = "PresentBatteryStatus"; }
57
57
  @MemoIdentity { :>> shortDescription = "Present battery state of charge and low-battery status."; }
58
- attribute :>> description = "Converts battery telemetry into percentage, icon state, and low-battery prominence for the running-infusion screen.";
58
+ doc /* Converts battery telemetry into percentage, icon state, and low-battery prominence for the running-infusion screen. */
59
59
  attribute :>> criticality = CriticalityKind::medium;
60
60
  }
61
61
 
@@ -26,9 +26,9 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
26
26
  // segregation is documented, and nothing here is segregated — one UI
27
27
  // process draws the lot, so the chrome inherits C like the rate field.
28
28
  part uiPumpPanel : UserInterface {
29
- @MemoIdentity { :>> providedId = "UIR-UI-001"; } attribute :>> name = "PumpFrontPanel";
29
+ @MemoIdentity { :>> providedId = "UIR-UI-001"; :>> label = "PumpFrontPanel"; }
30
30
  @MemoIdentity { :>> shortDescription = "Front-panel touchscreen."; }
31
- attribute :>> description = "The 7-inch capacitive touchscreen on the pump front panel, the sole interface for programming and monitoring an infusion at the bedside.";
31
+ doc /* The 7-inch capacitive touchscreen on the pump front panel, the sole interface for programming and monitoring an infusion at the bedside. */
32
32
  attribute :>> modality = "visual + touch";
33
33
  attribute :>> uiTechnology = "embedded Qt";
34
34
  }
@@ -37,9 +37,9 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
37
37
  // A screen is a UIElement whose formKind is `screen`. Its bounds are the
38
38
  // full frame; every descendant's bounds are relative to ITS parent.
39
39
  part elMainScreen : UIElement {
40
- @MemoIdentity { :>> providedId = "UIE-001"; } attribute :>> name = "MainInfusionScreen";
40
+ @MemoIdentity { :>> providedId = "UIE-001"; :>> label = "MainInfusionScreen"; }
41
41
  @MemoIdentity { :>> shortDescription = "Primary running-infusion screen."; }
42
- attribute :>> description = "The screen shown while an infusion is running: current rate, volume delivered, and access to settings. The default view the clinician comes back to after any subordinate task.";
42
+ doc /* The screen shown while an infusion is running: current rate, volume delivered, and access to settings. The default view the clinician comes back to after any subordinate task. */
43
43
  attribute :>> formKind = UIElementFormKind::screen;
44
44
  attribute :>> safetyClass = SafetyClassKind::C;
45
45
  attribute :>> navigationRole = "home";
@@ -59,10 +59,10 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
59
59
  // boundary on the main screen and let the reviewer double-click to
60
60
  // recurse into its children.
61
61
  part elDrugSelectorRegion : UIElement {
62
- attribute redefines name = "DrugSelectorRegion";
62
+ @MemoIdentity { :>> label = "DrugSelectorRegion"; }
63
63
  @MemoIdentity { :>> providedId = "UIE-005"; }
64
64
  @MemoIdentity { :>> shortDescription = "Reusable region containing drug-selector states."; }
65
- attribute redefines description = "Parent geometry region for the drug selector. Its state presentations are sibling UI elements, permitting the same region definition to be reused in flat, spatial, or 3-D renderings.";
65
+ doc /* Parent geometry region for the drug selector. Its state presentations are sibling UI elements, permitting the same region definition to be reused in flat, spatial, or 3-D renderings. */
66
66
  attribute redefines formKind = UIElementFormKind::panel;
67
67
  attribute redefines safetyClass = SafetyClassKind::C;
68
68
  attribute redefines labelText = "DRUG";
@@ -79,9 +79,9 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
79
79
  }
80
80
 
81
81
  part elDrugSelectorClosed : UIElement {
82
- @MemoIdentity { :>> providedId = "UIE-010"; } attribute :>> name = "ClosedDrugSelector";
82
+ @MemoIdentity { :>> providedId = "UIE-010"; :>> label = "ClosedDrugSelector"; }
83
83
  @MemoIdentity { :>> shortDescription = "Closed drug selector shown on the main screen."; }
84
- attribute :>> description = "The compact, normal-state selector. It is a sibling of the expanded menu rather than a different identity for the parent region.";
84
+ doc /* The compact, normal-state selector. It is a sibling of the expanded menu rather than a different identity for the parent region. */
85
85
  attribute :>> formKind = UIElementFormKind::selector;
86
86
  attribute :>> safetyClass = SafetyClassKind::C;
87
87
  attribute :>> labelText = "Norepinephrine 8 mg / 250 mL";
@@ -99,10 +99,10 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
99
99
  // states that covering adjacent content is intended dropdown
100
100
  // behaviour, not a defect.
101
101
  part elDrugMenuExpanded : UIElement {
102
- attribute redefines name = "ExpandedDrugMenu";
102
+ @MemoIdentity { :>> label = "ExpandedDrugMenu"; }
103
103
  @MemoIdentity { :>> providedId = "UIE-011"; }
104
104
  @MemoIdentity { :>> shortDescription = "Expanded drug library choices."; }
105
- attribute redefines description = "Expanded state listing Norepinephrine, Dopamine, and Heparin. It shares the DrugSelectorRegion parent with the closed state and can extend beyond that parent's normal inline allocation.";
105
+ doc /* Expanded state listing Norepinephrine, Dopamine, and Heparin. It shares the DrugSelectorRegion parent with the closed state and can extend beyond that parent's normal inline allocation. */
106
106
  attribute redefines formKind = UIElementFormKind::selector;
107
107
  attribute redefines safetyClass = SafetyClassKind::C;
108
108
  attribute redefines labelText = "Norepinephrine; Dopamine; Heparin";
@@ -119,7 +119,7 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
119
119
  }
120
120
  }
121
121
  part uiElement12 : UIElement {
122
- attribute redefines name = "Region UIE-012";
122
+ @MemoIdentity { :>> label = "Region UIE-012"; }
123
123
  @MemoIdentity { :>> providedId = "UIE-012"; }
124
124
  attribute redefines formKind = UIElementFormKind::panel;
125
125
  attribute redefines disclosureKind = UIDisclosureKind::inline;
@@ -138,9 +138,9 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
138
138
 
139
139
  // ── The settings screen: a sibling root, not a child ────────
140
140
  part elSettingsScreen : UIElement {
141
- @MemoIdentity { :>> providedId = "UIE-008"; } attribute :>> name = "InfusionSettingsScreen";
141
+ @MemoIdentity { :>> providedId = "UIE-008"; :>> label = "InfusionSettingsScreen"; }
142
142
  @MemoIdentity { :>> shortDescription = "Settings screen reached from the main screen."; }
143
- attribute :>> description = "Secondary screen for changing infusion parameters mid-run. It is a root in its own right with its own capture and its own coordinate frame — it is not laid out inside the main screen, so no geometric rule relates the two.";
143
+ doc /* Secondary screen for changing infusion parameters mid-run. It is a root in its own right with its own capture and its own coordinate frame — it is not laid out inside the main screen, so no geometric rule relates the two. */
144
144
  attribute :>> formKind = UIElementFormKind::screen;
145
145
  attribute :>> safetyClass = SafetyClassKind::C;
146
146
  attribute :>> navigationRole = "subordinate";
@@ -156,9 +156,9 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
156
156
  // pending rate change awaits explicit confirmation and intentionally
157
157
  // covers the settings form beneath it.
158
158
  part elRateConfirmDialog : UIElement {
159
- @MemoIdentity { :>> providedId = "UIE-009"; } attribute :>> name = "RateChangeConfirmationDialog";
159
+ @MemoIdentity { :>> providedId = "UIE-009"; :>> label = "RateChangeConfirmationDialog"; }
160
160
  @MemoIdentity { :>> shortDescription = "Modal confirmation popup for a new infusion rate."; }
161
- attribute :>> description = "Restates the pending infusion rate above the settings screen and requires an explicit confirm or cancel disposition before the value can reach the controller.";
161
+ doc /* Restates the pending infusion rate above the settings screen and requires an explicit confirm or cancel disposition before the value can reach the controller. */
162
162
  attribute :>> formKind = UIElementFormKind::dialog;
163
163
  attribute :>> safetyClass = SafetyClassKind::C;
164
164
  attribute :>> labelText = "Confirm rate change?";
@@ -177,7 +177,7 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
177
177
 
178
178
  // ── UI actions and the functions they invoke ────────────────
179
179
  action uiaEditRate : UIAction {
180
- @MemoIdentity { :>> providedId = "UIR-UIA-001"; } attribute :>> name = "EditInfusionRate";
180
+ @MemoIdentity { :>> providedId = "UIR-UIA-001"; :>> label = "EditInfusionRate"; }
181
181
  attribute :>> intent = InteractionIntentKind::userInput;
182
182
  attribute :>> confirmationRequired = true;
183
183
  attribute :>> feedbackProvided = "new rate echoed on a confirmation dialog before it is applied";
@@ -185,14 +185,14 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
185
185
  }
186
186
 
187
187
  action uiaOpenSettings : UIAction {
188
- @MemoIdentity { :>> providedId = "UIR-UIA-002"; } attribute :>> name = "OpenInfusionSettings";
188
+ @MemoIdentity { :>> providedId = "UIR-UIA-002"; :>> label = "OpenInfusionSettings"; }
189
189
  attribute :>> intent = InteractionIntentKind::navigation;
190
190
  attribute :>> confirmationRequired = false;
191
191
  perform fnManageInfusionDisplay;
192
192
  }
193
193
 
194
194
  action uiaSelectDrug : UIAction {
195
- @MemoIdentity { :>> providedId = "UIR-UIA-003"; } attribute :>> name = "SelectDrug";
195
+ @MemoIdentity { :>> providedId = "UIR-UIA-003"; :>> label = "SelectDrug"; }
196
196
  attribute :>> intent = InteractionIntentKind::userInput;
197
197
  attribute :>> confirmationRequired = true;
198
198
  perform fnManageInfusionDisplay.fnValidateDrugSelection;
@@ -22,9 +22,9 @@ package memo_examples_ui_screen_regions_artifacts_assets {
22
22
  private import memo_core_common::MemoIdentity;
23
23
  // ── The captures ────────────────────────────────────────────
24
24
  part capMain : ScreenCapture {
25
- @MemoIdentity { :>> providedId = "UIR-CAP-001"; } attribute :>> name = "MainScreenCapture_v2.4.1";
25
+ @MemoIdentity { :>> providedId = "UIR-CAP-001"; :>> label = "MainScreenCapture_v2.4.1"; }
26
26
  @MemoIdentity { :>> shortDescription = "Main infusion screen, build 2.4.1."; }
27
- attribute :>> description = "Screenshot of the running-infusion screen taken from release candidate 2.4.1 on the 7-inch panel at 1024×600, English (US), daylight theme, clinician role.";
27
+ doc /* Screenshot of the running-infusion screen taken from release candidate 2.4.1 on the 7-inch panel at 1024×600, English (US), daylight theme, clinician role. */
28
28
  attribute :>> imageUri = "model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png";
29
29
  attribute :>> imageHash = "sha256:086d8a3c2956ad8ed81f1e565a97308b55ba8a384c22c1b2138626ad8928a88a";
30
30
  attribute :>> pixelWidth = 1024;
@@ -35,9 +35,9 @@ package memo_examples_ui_screen_regions_artifacts_assets {
35
35
  }
36
36
 
37
37
  part capDrugSelector : ScreenCapture {
38
- @MemoIdentity { :>> providedId = "UIC-003"; } attribute :>> name = "ExpandedDrugSelectorCapture_v2.4.1";
38
+ @MemoIdentity { :>> providedId = "UIC-003"; :>> label = "ExpandedDrugSelectorCapture_v2.4.1"; }
39
39
  @MemoIdentity { :>> shortDescription = "Expanded drug-selector region crop."; }
40
- attribute :>> description = "Focused capture of the reusable DrugSelectorRegion in its expanded state, used when a reviewer drills into the region from the main layout.";
40
+ doc /* Focused capture of the reusable DrugSelectorRegion in its expanded state, used when a reviewer drills into the region from the main layout. */
41
41
  attribute :>> imageUri = "model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png";
42
42
  attribute :>> imageHash = "sha256:2265b48864be8561a86099a99cf8aea2f4fcf06c19ccacbcc55784fbb1c37975";
43
43
  attribute :>> pixelWidth = 798;
@@ -48,9 +48,9 @@ package memo_examples_ui_screen_regions_artifacts_assets {
48
48
  }
49
49
 
50
50
  part capSettings : ScreenCapture {
51
- @MemoIdentity { :>> providedId = "UIR-CAP-002"; } attribute :>> name = "SettingsScreenCapture_v2.4.1";
51
+ @MemoIdentity { :>> providedId = "UIR-CAP-002"; :>> label = "SettingsScreenCapture_v2.4.1"; }
52
52
  @MemoIdentity { :>> shortDescription = "Infusion settings screen, build 2.4.1."; }
53
- attribute :>> description = "Screenshot of the settings screen reached from the main screen's settings row, same build and capture conditions as the main screen capture.";
53
+ doc /* Screenshot of the settings screen reached from the main screen's settings row, same build and capture conditions as the main screen capture. */
54
54
  attribute :>> imageUri = "model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png";
55
55
  attribute :>> imageHash = "sha256:2ad7f11427fdb2eb179cf94d96a1679a2ece31505d247ee0b659bec06a669dbf";
56
56
  attribute :>> pixelWidth = 1024;
@@ -23,7 +23,7 @@ package memo_examples_ui_screen_regions_artifacts_reviews_comments {
23
23
  // separate from `description`: what the element IS versus what someone
24
24
  // SAID about it. A generated DHF section renders the former only.
25
25
  part cmtDecimalSalience : ModelComment {
26
- @MemoIdentity { :>> providedId = "UIR-CMT-001"; } attribute :>> name = "DecimalSalienceReview";
26
+ @MemoIdentity { :>> providedId = "UIR-CMT-001"; :>> label = "DecimalSalienceReview"; }
27
27
  @MemoIdentity { :>> shortDescription = "Decimal point too small at 1 m — raised in HF review."; }
28
28
  attribute :>> body = "In the 2026-07-16 formative session, 3 of 8 participants hesitated over 12.5 vs 125 at bedside distance. Recommend enlarging the decimal separator or splitting the fractional digit into a smaller trailing glyph.";
29
29
  attribute :>> author = "r.mehta";
@@ -33,14 +33,14 @@ package memo_examples_ui_screen_regions_artifacts_reviews_comments {
33
33
  }
34
34
 
35
35
  part cmtStatusBarScope : ModelComment {
36
- @MemoIdentity { :>> providedId = "UIR-CMT-002"; } attribute :>> name = "StatusBarScopeQuery";
36
+ @MemoIdentity { :>> providedId = "UIR-CMT-002"; :>> label = "StatusBarScopeQuery"; }
37
37
  @MemoIdentity { :>> shortDescription = "Is the battery icon really decoration?"; }
38
38
  attribute :>> body = "Battery state is arguably an indicator, not chrome — a depleted battery during infusion is a hazard path. Should the battery icon be split out as its own indicator element with its own bounds?";
39
39
  attribute :>> author = "j.okafor";
40
40
  attribute :>> createdAt = "2026-07-16T09:05:00Z";
41
41
  attribute :>> commentStatus = CommentStatusKind::acknowledged;
42
42
  part cmtStatusBarReply : ModelComment {
43
- @MemoIdentity { :>> providedId = "UIR-CMT-003"; } attribute :>> name = "StatusBarScopeReply";
43
+ @MemoIdentity { :>> providedId = "UIR-CMT-003"; :>> label = "StatusBarScopeReply"; }
44
44
  @MemoIdentity { :>> shortDescription = "Agreed — split in the next markup pass."; }
45
45
  attribute :>> body = "Agreed. Battery indication is in the alarm system's scope and will become its own indicator element once that requirement lands. Keeping the strip as decoration until then rather than classifying it as something it is not.";
46
46
  attribute :>> author = "r.mehta";
@@ -18,7 +18,7 @@ package memo_examples_ui_screen_regions_artifacts_reviews_notes {
18
18
  private import memo_core_common::*;
19
19
  private import memo_core_common::MemoIdentity;
20
20
  part noteCaptureReview : ModelNote {
21
- @MemoIdentity { :>> providedId = "UIR-NOTE-001"; } attribute :>> name = "CaptureReviewNote";
21
+ @MemoIdentity { :>> providedId = "UIR-NOTE-001"; :>> label = "CaptureReviewNote"; }
22
22
  @MemoIdentity { :>> shortDescription = "Reconfirm automatic regions after every capture replacement."; }
23
23
  attribute :>> body = "Normalized manual bounds migrate between captures; automatically detected regions require renewed reviewer confirmation.";
24
24
  attribute :>> author = "r.mehta";
@@ -18,7 +18,7 @@ package memo_examples_ui_screen_regions_artifacts_reviews_rationales {
18
18
  private import memo_core_common::*;
19
19
  private import memo_core_common::MemoIdentity;
20
20
  part ratOverlayGeometry : ModelRationale {
21
- @MemoIdentity { :>> providedId = "UIR-RAT-001"; } attribute :>> name = "OverlayGeometryRationale";
21
+ @MemoIdentity { :>> providedId = "UIR-RAT-001"; :>> label = "OverlayGeometryRationale"; }
22
22
  @MemoIdentity { :>> shortDescription = "The drug menu intentionally escapes its parent bounds."; }
23
23
  attribute :>> body = "The open drug selector overlays adjacent content, so disclosureKind carries the intended behavior and the renderer must not clip it to RatePanel.";
24
24
  attribute :>> author = "j.okafor";
@@ -19,41 +19,41 @@ package memo_examples_ui_screen_regions_assurance_human_factors {
19
19
  private import memo_core_common::MemoIdentity;
20
20
  // ── The risk side ───────────────────────────────────────────
21
21
  part ueMisreadRate : UseError {
22
- @MemoIdentity { :>> providedId = "UIR-UE-001"; } attribute :>> name = "MisreadRateDecimalPoint";
22
+ @MemoIdentity { :>> providedId = "UIR-UE-001"; :>> label = "MisreadRateDecimalPoint"; }
23
23
  @MemoIdentity { :>> shortDescription = "Decimal point missed; rate read 10× high or low."; }
24
- attribute :>> description = "The clinician reads 12.5 mL/h as 125 mL/h, or the reverse, because the decimal point is not salient at a glance from the bedside.";
24
+ doc /* The clinician reads 12.5 mL/h as 125 mL/h, or the reverse, because the decimal point is not salient at a glance from the bedside. */
25
25
  attribute :>> errorCategory = UseErrorCategoryKind::perception;
26
26
  attribute :>> severity = SeverityKind::serious;
27
27
  }
28
28
 
29
29
  part ueSelectWrongDrug : UseError {
30
- @MemoIdentity { :>> providedId = "UIR-UE-002"; } attribute :>> name = "SelectWrongDrugConcentration";
30
+ @MemoIdentity { :>> providedId = "UIR-UE-002"; :>> label = "SelectWrongDrugConcentration"; }
31
31
  @MemoIdentity { :>> shortDescription = "Clinician selects the wrong drug or concentration from the expanded list."; }
32
- attribute :>> description = "A visually adjacent drug-library entry is selected during programming and is not detected before delivery parameters are calculated.";
32
+ doc /* A visually adjacent drug-library entry is selected during programming and is not detected before delivery parameters are calculated. */
33
33
  attribute :>> errorCategory = UseErrorCategoryKind::actionCategory;
34
34
  attribute :>> severity = SeverityKind::serious;
35
35
  }
36
36
 
37
37
  part ueMissLowBattery : UseError {
38
- @MemoIdentity { :>> providedId = "UIR-UE-003"; } attribute :>> name = "MissLowBatteryStatus";
38
+ @MemoIdentity { :>> providedId = "UIR-UE-003"; :>> label = "MissLowBatteryStatus"; }
39
39
  @MemoIdentity { :>> shortDescription = "Clinician does not notice that remaining battery operation is limited."; }
40
- attribute :>> description = "During transport or a mains outage, an inconspicuous or stale battery indicator is not noticed before the pump loses power.";
40
+ doc /* During transport or a mains outage, an inconspicuous or stale battery indicator is not noticed before the pump loses power. */
41
41
  attribute :>> errorCategory = UseErrorCategoryKind::perception;
42
42
  attribute :>> severity = SeverityKind::critical;
43
43
  }
44
44
 
45
45
  part ueRelyOnStaleVolume : UseError {
46
- @MemoIdentity { :>> providedId = "UIR-UE-004"; } attribute :>> name = "RelyOnStaleDeliveredVolume";
46
+ @MemoIdentity { :>> providedId = "UIR-UE-004"; :>> label = "RelyOnStaleDeliveredVolume"; }
47
47
  @MemoIdentity { :>> shortDescription = "Clinician bases a therapy decision on a stale delivered-volume value."; }
48
- attribute :>> description = "The displayed cumulative volume stops refreshing while the controller continues delivery, causing the clinician to underestimate administered therapy.";
48
+ doc /* The displayed cumulative volume stops refreshing while the controller continues delivery, causing the clinician to underestimate administered therapy. */
49
49
  attribute :>> errorCategory = UseErrorCategoryKind::cognition;
50
50
  attribute :>> severity = SeverityKind::serious;
51
51
  }
52
52
 
53
53
  part ueMisreadDisplayedTime : UseError {
54
- @MemoIdentity { :>> providedId = "UIR-UE-005"; } attribute :>> name = "RelyOnIncorrectDisplayedTime";
54
+ @MemoIdentity { :>> providedId = "UIR-UE-005"; :>> label = "RelyOnIncorrectDisplayedTime"; }
55
55
  @MemoIdentity { :>> shortDescription = "Clinician associates a therapy observation with an incorrect time."; }
56
- attribute :>> description = "A stale or unsynchronized screen clock causes an observation to be correlated with the wrong therapy event during handoff or incident review.";
56
+ doc /* A stale or unsynchronized screen clock causes an observation to be correlated with the wrong therapy event during handoff or incident review. */
57
57
  attribute :>> errorCategory = UseErrorCategoryKind::cognition;
58
58
  attribute :>> severity = SeverityKind::minor;
59
59
  }
@@ -18,7 +18,7 @@ package memo_examples_ui_screen_regions_assurance_requirements_needs {
18
18
  private import memo_core_common::*;
19
19
  private import memo_core_common::MemoIdentity;
20
20
  requirement needReadableProgramming : Need {
21
- @MemoIdentity { :>> providedId = "UIR-NEED-001"; } attribute :>> name = "ReadableAndConfirmableProgramming";
21
+ @MemoIdentity { :>> providedId = "UIR-NEED-001"; :>> label = "ReadableAndConfirmableProgramming"; }
22
22
  attribute :>> needKind = NeedKind::'stakeholder';
23
23
  attribute :>> statement = "Clinicians need infusion programming to be readable and explicitly confirmed before therapy changes.";
24
24
  attribute :>> priority = "high";
@@ -20,7 +20,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
20
20
  private import memo_core_common::MemoIdentity;
21
21
  // ── The spec side ───────────────────────────────────────────
22
22
  requirement reqRateEntry : Requirement {
23
- @MemoIdentity { :>> providedId = "UIR-REQ-001"; } attribute :>> name = "RateEntryConfirmation";
23
+ @MemoIdentity { :>> providedId = "UIR-REQ-001"; :>> label = "RateEntryConfirmation"; }
24
24
  attribute :>> requirementType = RequirementTypeKind::software;
25
25
  attribute :>> statement = "When the clinician enters a new infusion rate, the pump shall display the entered rate for explicit confirmation before applying it.";
26
26
  attribute :>> notation = RequirementNotationKind::ears;
@@ -33,7 +33,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
33
33
  }
34
34
 
35
35
  requirement reqRateLegibility : Requirement {
36
- @MemoIdentity { :>> providedId = "UIR-REQ-002"; } attribute :>> name = "RateLegibility";
36
+ @MemoIdentity { :>> providedId = "UIR-REQ-002"; :>> label = "RateLegibility"; }
37
37
  attribute :>> requirementType = RequirementTypeKind::system;
38
38
  attribute :>> statement = "The pump shall display the active infusion rate legibly at 1 m under 100–1000 lux ambient illumination.";
39
39
  attribute :>> notation = RequirementNotationKind::sophist;
@@ -47,7 +47,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
47
47
  }
48
48
 
49
49
  requirement reqVolumeDisplay : Requirement {
50
- @MemoIdentity { :>> providedId = "UIR-REQ-003"; } attribute :>> name = "VolumeDeliveredDisplay";
50
+ @MemoIdentity { :>> providedId = "UIR-REQ-003"; :>> label = "VolumeDeliveredDisplay"; }
51
51
  attribute :>> requirementType = RequirementTypeKind::software;
52
52
  attribute :>> statement = "The pump shall display cumulative volume delivered for the active infusion, updated at least once per second.";
53
53
  attribute :>> notation = RequirementNotationKind::ears;
@@ -59,7 +59,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
59
59
  }
60
60
 
61
61
  requirement reqDrugLibrarySelection : Requirement {
62
- @MemoIdentity { :>> providedId = "UIR-REQ-004"; } attribute :>> name = "DrugLibrarySelection";
62
+ @MemoIdentity { :>> providedId = "UIR-REQ-004"; :>> label = "DrugLibrarySelection"; }
63
63
  attribute :>> requirementType = RequirementTypeKind::software;
64
64
  attribute :>> statement = "The pump shall permit selection only from drug and concentration entries enabled for the active care area.";
65
65
  attribute :>> notation = RequirementNotationKind::ears;
@@ -72,7 +72,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
72
72
  }
73
73
 
74
74
  requirement reqDisplayFreshness : Requirement {
75
- @MemoIdentity { :>> providedId = "UIR-REQ-005"; } attribute :>> name = "InfusionStatusFreshness";
75
+ @MemoIdentity { :>> providedId = "UIR-REQ-005"; :>> label = "InfusionStatusFreshness"; }
76
76
  attribute :>> requirementType = RequirementTypeKind::system;
77
77
  attribute :>> statement = "The pump shall refresh the displayed active rate and cumulative delivered volume at least once per second while an infusion is running.";
78
78
  attribute :>> notation = RequirementNotationKind::sophist;
@@ -86,7 +86,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
86
86
  }
87
87
 
88
88
  requirement reqActiveRateDisplay : Requirement {
89
- @MemoIdentity { :>> providedId = "UIR-REQ-006"; } attribute :>> name = "ActiveInfusionRateDisplay";
89
+ @MemoIdentity { :>> providedId = "UIR-REQ-006"; :>> label = "ActiveInfusionRateDisplay"; }
90
90
  attribute :>> requirementType = RequirementTypeKind::software;
91
91
  attribute :>> statement = "While an infusion is running, the pump shall display the active infusion rate value and its mL/h unit.";
92
92
  attribute :>> notation = RequirementNotationKind::ears;
@@ -99,7 +99,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
99
99
  }
100
100
 
101
101
  requirement reqDrugIdentityDisplay : Requirement {
102
- @MemoIdentity { :>> providedId = "UIR-REQ-007"; } attribute :>> name = "ActiveDrugIdentityDisplay";
102
+ @MemoIdentity { :>> providedId = "UIR-REQ-007"; :>> label = "ActiveDrugIdentityDisplay"; }
103
103
  attribute :>> requirementType = RequirementTypeKind::software;
104
104
  attribute :>> statement = "Where a drug-library entry is active, the pump shall display the selected drug name and concentration on the running-infusion screen.";
105
105
  attribute :>> notation = RequirementNotationKind::ears;
@@ -112,7 +112,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
112
112
  }
113
113
 
114
114
  requirement reqTimeDisplay : Requirement {
115
- @MemoIdentity { :>> providedId = "UIR-REQ-008"; } attribute :>> name = "LocalTimeDisplay";
115
+ @MemoIdentity { :>> providedId = "UIR-REQ-008"; :>> label = "LocalTimeDisplay"; }
116
116
  attribute :>> requirementType = RequirementTypeKind::software;
117
117
  attribute :>> statement = "While the running-infusion screen is visible, the pump shall display synchronized local time in 24-hour HH:mm format.";
118
118
  attribute :>> notation = RequirementNotationKind::ears;
@@ -124,7 +124,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
124
124
  }
125
125
 
126
126
  requirement reqTimeAccuracy : Requirement {
127
- @MemoIdentity { :>> providedId = "UIR-REQ-009"; } attribute :>> name = "DisplayedTimeAccuracy";
127
+ @MemoIdentity { :>> providedId = "UIR-REQ-009"; :>> label = "DisplayedTimeAccuracy"; }
128
128
  attribute :>> requirementType = RequirementTypeKind::system;
129
129
  attribute :>> statement = "The running-infusion display shall present local time within 2 seconds of the synchronized device clock and refresh the visible minute within 1 second of rollover.";
130
130
  attribute :>> notation = RequirementNotationKind::sophist;
@@ -138,7 +138,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
138
138
  }
139
139
 
140
140
  requirement reqBatteryStatusDisplay : Requirement {
141
- @MemoIdentity { :>> providedId = "UIR-REQ-010"; } attribute :>> name = "BatteryStatusDisplay";
141
+ @MemoIdentity { :>> providedId = "UIR-REQ-010"; :>> label = "BatteryStatusDisplay"; }
142
142
  attribute :>> requirementType = RequirementTypeKind::software;
143
143
  attribute :>> statement = "While the pump is operating, the pump shall display battery state of charge as a percentage and graphical icon.";
144
144
  attribute :>> notation = RequirementNotationKind::ears;
@@ -151,7 +151,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
151
151
  }
152
152
 
153
153
  requirement reqBatteryWarningPerformance : Requirement {
154
- @MemoIdentity { :>> providedId = "UIR-REQ-011"; } attribute :>> name = "LowBatteryStatusLatency";
154
+ @MemoIdentity { :>> providedId = "UIR-REQ-011"; :>> label = "LowBatteryStatusLatency"; }
155
155
  attribute :>> requirementType = RequirementTypeKind::system;
156
156
  attribute :>> statement = "When estimated battery operating time falls below 30 minutes, the pump shall present a visually prominent low-battery state within 1 second.";
157
157
  attribute :>> notation = RequirementNotationKind::sophist;
@@ -165,7 +165,7 @@ package memo_examples_ui_screen_regions_assurance_requirements {
165
165
  }
166
166
 
167
167
  requirement reqDrugSelectionPerformance : Requirement {
168
- @MemoIdentity { :>> providedId = "UIR-REQ-012"; } attribute :>> name = "DrugSelectorResponseTime";
168
+ @MemoIdentity { :>> providedId = "UIR-REQ-012"; :>> label = "DrugSelectorResponseTime"; }
169
169
  attribute :>> requirementType = RequirementTypeKind::software;
170
170
  attribute :>> statement = "When the clinician activates the drug selector, the pump shall display the enabled drug list within 250 milliseconds.";
171
171
  attribute :>> notation = RequirementNotationKind::ears;