@memoarchitect/ontology 0.7.0 → 0.8.24

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 (270) hide show
  1. package/README.md +4 -2
  2. package/examples/connected-patient-monitor/memo.package.yaml +3 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
  4. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  5. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  6. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +8 -6
  7. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  8. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  9. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +6 -6
  10. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  11. package/examples/gpca-pump/memo.package.yaml +3 -0
  12. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
  13. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
  14. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
  15. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
  16. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
  17. package/examples/gpca-pump/model/catalog/gpca_context.sysml +14 -3
  18. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +8 -5
  19. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
  20. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +97 -103
  21. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
  22. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
  23. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
  24. package/examples/gpca-pump/model/catalog/gpca_system.sysml +17 -17
  25. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -334
  26. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
  27. package/examples/gpca-pump/model/catalog/project.sysml +5 -0
  28. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +2 -4
  29. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
  30. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
  31. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
  32. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
  33. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
  34. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
  35. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -7
  36. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
  37. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
  38. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +2 -4
  39. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
  40. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
  41. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +2 -4
  42. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -8
  44. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
  45. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -6
  47. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
  48. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
  49. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +2 -5
  50. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
  51. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +5 -6
  52. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -6
  53. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
  54. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  55. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
  56. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  57. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  58. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -3
  59. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  60. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  61. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
  62. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  63. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  64. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
  65. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
  66. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
  67. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
  68. package/examples/reusable-instrument/memo.package.yaml +3 -0
  69. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +16 -23
  70. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  71. package/examples/ros-mobile-robot/README.md +40 -0
  72. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  73. package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
  74. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
  75. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
  76. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +12 -0
  77. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  78. package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
  79. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +12 -6
  80. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  81. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  82. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +58 -75
  83. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  84. package/examples/surgical-robot/memo.package.yaml +3 -0
  85. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
  86. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  87. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  88. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -18
  89. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -11
  90. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +43 -68
  91. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +57 -68
  92. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +40 -70
  93. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +4 -8
  94. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -20
  95. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +52 -84
  96. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +22 -33
  97. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +13 -10
  98. package/examples/temperature-alarm/memo.package.yaml +3 -0
  99. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -25
  100. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  101. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  102. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
  103. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
  104. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
  105. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
  106. package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
  107. package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
  108. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +2 -3
  109. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  110. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  111. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
  112. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
  113. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
  114. package/extensions/LICENSES/MIT.txt +19 -0
  115. package/extensions/README.md +94 -0
  116. package/extensions/aadl/memo.package.yaml +18 -0
  117. package/extensions/aadl/src/aadl_extension.sysml +6 -0
  118. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
  119. package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
  120. package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
  121. package/extensions/cloud/memo.package.yaml +18 -0
  122. package/extensions/cloud/src/cloud_extension.sysml +44 -0
  123. package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
  124. package/extensions/container/memo.package.yaml +18 -0
  125. package/extensions/container/src/container_extension.sysml +37 -0
  126. package/extensions/container/src/methodology/container_methodology.sysml +17 -0
  127. package/extensions/messaging/memo.package.yaml +18 -0
  128. package/extensions/messaging/src/messaging_extension.sysml +64 -0
  129. package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
  130. package/extensions/ros/memo.package.yaml +18 -0
  131. package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
  132. package/extensions/ros/src/ros_extension.sysml +200 -0
  133. package/extensions/template/src/extension.sysml +37 -0
  134. package/memo.manifest.yaml +13 -2
  135. package/methodologies/default/memo.package.yaml +1 -1
  136. package/methodologies/gpca/memo.package.yaml +1 -1
  137. package/ontology/memo.package.yaml +1 -1
  138. package/package.json +5 -3
  139. package/profile/memo.package.yaml +1 -1
  140. package/src/architecture/decisions/memo_decisions.sysml +23 -2
  141. package/src/architecture/functional/behavior/memo_behavior.sysml +51 -23
  142. package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
  143. package/src/architecture/functional/functions/memo_functions.sysml +93 -36
  144. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
  145. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
  146. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +40 -13
  147. package/src/architecture/implementation/ui/memo_ui.sysml +83 -43
  148. package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -12
  149. package/src/architecture/logical/structure/memo_logical_structure.sysml +26 -25
  150. package/src/architecture/operational/activities/memo_activities.sysml +27 -29
  151. package/src/architecture/operational/context/actors/memo_actors.sysml +8 -10
  152. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +16 -33
  153. package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -17
  154. package/src/architecture/operational/scenarios/memo_scenarios.sysml +36 -84
  155. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  156. package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -27
  157. package/src/architecture/operational/workflows/memo_workflows.sysml +45 -28
  158. package/src/architecture/realization/deployment/memo_deployment.sysml +115 -20
  159. package/src/architecture/realization/physical/memo_physical_architecture.sysml +29 -4
  160. package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
  161. package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
  162. package/src/artifacts/standards/cfr_21_820.sysml +116 -0
  163. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
  164. package/src/artifacts/standards/iec_60601_1.sysml +149 -0
  165. package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
  166. package/src/artifacts/standards/iec_60812.sysml +51 -0
  167. package/src/artifacts/standards/iec_62304.sysml +210 -0
  168. package/src/artifacts/standards/iec_62366_1.sysml +113 -0
  169. package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
  170. package/src/artifacts/standards/iso_13485.sysml +113 -0
  171. package/src/artifacts/standards/iso_14971.sysml +94 -0
  172. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
  173. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
  174. package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
  175. package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
  176. package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
  177. package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
  178. package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
  179. package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
  180. package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
  181. package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
  182. package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
  183. package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
  184. package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
  185. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
  186. package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
  187. package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
  188. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
  189. package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
  190. package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
  191. package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
  192. package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
  193. package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
  194. package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
  195. package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
  196. package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
  197. package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
  198. package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
  199. package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
  200. package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
  201. package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
  202. package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
  203. package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
  204. package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
  205. package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
  206. package/src/artifacts/templates/dhf/system/sad.md +173 -0
  207. package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
  208. package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
  209. package/src/artifacts/templates/dhf/system/syrs.md +128 -0
  210. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +40 -21
  211. package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
  212. package/src/assurance/requirements/memo_requirements.sysml +7 -20
  213. package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
  214. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
  215. package/src/assurance/safety_risk/memo_risk.sysml +90 -7
  216. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
  217. package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
  218. package/src/core/annotations/memo_annotations.sysml +25 -6
  219. package/src/core/common/memo_common.sysml +130 -21
  220. package/src/core/consistency_rules/consistency_rules.sysml +1 -1
  221. package/src/core/dimensions/dimensions.sysml +12 -0
  222. package/src/core/enumerations/memo_enumerations.sysml +60 -14
  223. package/src/core/relationships/memo_relationships.sysml +199 -196
  224. package/src/memo_namespaces.sysml +30 -0
  225. package/src/methodology/core/memo_core.sysml +24 -0
  226. package/src/methodology/profiles/memo_profiles.sysml +1 -1
  227. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  228. package/src/rules/closure/closure_rules.sysml +20 -20
  229. package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
  230. package/src/rules/ontology/ontology_invariants.sysml +223 -11
  231. package/src/rules/quantitative/quantitative_rules.sysml +2 -2
  232. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +30 -30
  233. package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
  234. package/src/viewpoints/context/context_viewpoint.sysml +2 -3
  235. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
  236. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
  237. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -3
  238. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  239. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -3
  240. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -3
  241. package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
  242. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
  243. package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
  244. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
  245. package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
  246. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
  247. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
  248. package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
  249. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
  250. package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
  251. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
  252. package/src/viewpoints/software/software_viewpoint.sysml +1 -2
  253. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
  254. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
  255. package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
  256. package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
  257. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -3
  258. package/templates/connected-device/memo.package.yaml +2 -0
  259. package/templates/default/memo.package.yaml +2 -0
  260. package/templates/infusion-pump/memo.package.yaml +2 -0
  261. package/templates/monitoring-device/memo.package.yaml +2 -0
  262. package/templates/samd/memo.package.yaml +2 -0
  263. package/examples/extensions/README.md +0 -16
  264. package/examples/extensions/template/src/extension.sysml +0 -15
  265. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  266. /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
  267. /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
  268. /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
  269. /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
  270. /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
@@ -23,7 +23,7 @@ This Software Bill of Materials (SBOM) provides a complete inventory of software
23
23
  Software developed in-house for this system is listed below from the model:
24
24
 
25
25
  ```memo-query
26
- kind: [SoftwareSystem, SoftwareItem, SoftwareUnit]
26
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
27
27
  display: table
28
28
  columns: name, kind, layer, doc
29
29
  sort: name
@@ -37,7 +37,8 @@ empty: "No first-party software items defined."
37
37
  All third-party and SOUP components with their versions and origins, generated from the model:
38
38
 
39
39
  ```memo-query
40
- kind: SOUPComponent
40
+ kind: SoftwareModule
41
+ where: moduleKind == "SoftwareModuleKind::soup"
41
42
  display: table
42
43
  columns: name, doc, layer
43
44
  sort: name
@@ -27,11 +27,11 @@ This Software Development Plan (SDP) defines the processes, activities, and task
27
27
  | {{project.product}} Software System | Class B | |
28
28
 
29
29
  ```memo-query
30
- kind: [SoftwareSystem, SoftwareItem]
30
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
31
31
  display: table
32
32
  columns: name, kind, layer, doc
33
33
  sort: name
34
- empty: "No software items defined. Add SoftwareSystem or SoftwareItem elements."
34
+ empty: "No structural software elements defined. Add SoftwareSystem or SoftwareElement elements."
35
35
  ```
36
36
 
37
37
  ---
@@ -57,7 +57,8 @@ Identify the coding standards, review procedures, and quality gates applied duri
57
57
  ### 4.1 Software Items of Unknown Provenance (SOUP)
58
58
 
59
59
  ```memo-query
60
- kind: SOUPComponent
60
+ kind: SoftwareModule
61
+ where: moduleKind == "SoftwareModuleKind::soup"
61
62
  display: table
62
63
  columns: name, doc, layer
63
64
  sort: name
@@ -68,7 +69,7 @@ empty: "No SOUP components defined."
68
69
 
69
70
  ```memo-query
70
71
  kind: Hazard
71
- where: layer == "software"
72
+ where: layer == "implementation"
72
73
  display: table
73
74
  columns: name, doc, layer
74
75
  sort: name
@@ -23,7 +23,8 @@ This document lists all Software of Unknown Provenance (SOUP) components used in
23
23
  The complete inventory of SOUP and third-party components in **{{project.product}}**, generated from the model:
24
24
 
25
25
  ```memo-query
26
- kind: SOUPComponent
26
+ kind: SoftwareModule
27
+ where: moduleKind == "SoftwareModuleKind::soup"
27
28
  display: table
28
29
  columns: name, layer, doc
29
30
  sort: name
@@ -37,7 +38,8 @@ empty: "No SOUP components defined. Add SOUPComponent elements to the model."
37
38
  For each SOUP component, the potential impact on device safety must be evaluated.
38
39
 
39
40
  ```memo-query
40
- kind: SOUPComponent
41
+ kind: SoftwareModule
42
+ where: moduleKind == "SoftwareModuleKind::soup"
41
43
  display: table
42
44
  columns: name, doc
43
45
  sort: name
@@ -2,7 +2,7 @@
2
2
  id: srs
3
3
  title: Software Requirements Specification
4
4
  standard: IEC 62304:2006+AMD1:2015
5
- clauses: ["5.2"]
5
+ clauses: ["5.2", "5.2.2", "5.2.3", "5.2.6"]
6
6
  required_for: ["CE", "FDA_510k", "MDR"]
7
7
  ---
8
8
 
@@ -14,7 +14,9 @@ required_for: ["CE", "FDA_510k", "MDR"]
14
14
 
15
15
  ## 1. Purpose
16
16
 
17
- This Software Requirements Specification (SRS) defines the software requirements for **{{project.product}}** in accordance with IEC 62304:2006 §5.2.
17
+ This Software Requirements Specification (SRS) defines the software requirements for **{{project.product}}** in accordance with IEC 62304:2006+AMD1:2015 §5.2.
18
+
19
+ Software, hardware and system requirements are distinguished by the model's own `requirementKind` attribute, never by which layer directory a file sits in and never by what a requirement is called. There is no "software layer": hardware and software are sibling directories inside `implementation`.
18
20
 
19
21
  ---
20
22
 
@@ -24,12 +26,14 @@ Summary metrics for the requirements captured in the model:
24
26
 
25
27
  ```memo-query
26
28
  kind: Requirement
29
+ where: requirementKind == "RequirementKind::software"
27
30
  display: count
28
31
  label: Total software requirements
29
32
  ```
30
33
 
31
34
  ```memo-query
32
35
  kind: Requirement
36
+ where: requirementKind == "RequirementKind::system"
33
37
  display: count
34
38
  label: System requirements
35
39
  ```
@@ -38,25 +42,51 @@ label: System requirements
38
42
 
39
43
  ## 3. Functional Requirements
40
44
 
41
- Functional requirements are listed below from the model:
45
+ Requirements carrying a `shall` obligation — the binding ones:
42
46
 
43
47
  ```memo-query
44
48
  kind: Requirement
45
- where: doc contains "shall"
49
+ where: obligation == "ObligationKind::shall"
46
50
  display: table
47
- columns: name, layer, doc
51
+ columns: name, requirementKind, safetyClass, doc
48
52
  sort: name
49
- empty: "No functional software requirements defined."
53
+ empty: "No requirements carry a `shall` obligation. Set `obligation` on Requirement elements."
50
54
  ```
51
55
 
52
56
  ### All Software Requirements
53
57
 
54
58
  ```memo-query
55
59
  kind: Requirement
60
+ where: requirementKind == "RequirementKind::software"
61
+ display: table
62
+ columns: name, requirementKind, safetyClass, doc
63
+ sort: name
64
+ empty: "No software requirements defined. Add Requirement elements with requirementKind = software."
65
+ ```
66
+
67
+ ---
68
+
69
+ ## 3.1 Hardware-Software Interface Requirements
70
+
71
+ The hardware/software boundary is a modelled element, not a naming convention. The interfaces and ports below are the boundary this software crosses; requirements are traced to them through the model rather than selected by having "interface" in their name.
72
+
73
+ ```memo-query
74
+ kind: [InterfaceElement, MemoPort]
56
75
  display: table
57
76
  columns: name, kind, layer, doc
58
77
  sort: name
59
- empty: "No software requirements defined. Add Requirement elements to model/requirements/*.sysml."
78
+ empty: "No interfaces or ports defined."
79
+ ```
80
+
81
+ Requirements satisfied by elements on that boundary:
82
+
83
+ ```memo-query
84
+ kind: [InterfaceElement, MemoPort]
85
+ traverse: incoming satisfiedBy
86
+ display: table
87
+ columns: name, kind, layer, doc
88
+ sort: name
89
+ empty: "No software requirements are linked to a satisfying architecture element. Add SatisfiedBy links."
60
90
  ```
61
91
 
62
92
  ---
@@ -67,8 +97,9 @@ System requirements allocated to software per IEC 62304 §5.2, drawn from the mo
67
97
 
68
98
  ```memo-query
69
99
  kind: Requirement
100
+ where: requirementKind == "RequirementKind::system"
70
101
  display: table
71
- columns: name, layer, doc
102
+ columns: name, requirementKind, safetyClass, doc
72
103
  sort: name
73
104
  empty: "No system requirements defined."
74
105
  ```
@@ -83,21 +114,23 @@ _[TODO: Define performance requirements (response time, throughput, memory)]_
83
114
 
84
115
  ### 5.2 Safety Requirements
85
116
 
117
+ Software safety requirements are those whose `safetyClass` is set. The hazards they derive from:
118
+
86
119
  ```memo-query
87
120
  kind: Hazard
88
- where: layer == "software"
89
121
  display: table
90
- columns: name, doc
122
+ columns: name, layer, doc
91
123
  sort: name
92
- empty: "No software safety requirements derived from hazard analysis."
124
+ empty: "No hazards defined in the risk model."
93
125
  ```
94
126
 
95
127
  ### 5.3 Security Requirements
96
128
 
97
129
  ```memo-query
98
- kind: [SecurityControl, ThreatModel]
130
+ kind: SecurityRequirement
99
131
  display: table
100
132
  columns: name, layer, doc
133
+ sort: name
101
134
  empty: "No security requirements defined."
102
135
  ```
103
136
 
@@ -105,28 +138,29 @@ empty: "No security requirements defined."
105
138
 
106
139
  ## 6. SOUP Requirements
107
140
 
108
- This section is generated from the system model. The table below lists the **SOUP Requirements** elements currently defined:
141
+ Software of Unknown Provenance depended on by **{{project.product}}**, derived by traversing `dependsOnSoup` from the software items:
109
142
 
110
143
  ```memo-query
111
- kind: SOUPComponent
144
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
145
+ traverse: outgoing dependsOnSoup
112
146
  display: table
113
- columns: name, doc
147
+ columns: name, kind, layer, doc
114
148
  sort: name
115
- empty: "No SOUP components identified."
149
+ empty: "No SOUP identified. Add DependsOnSoup links from software items to the SOUP they depend on."
116
150
  ```
117
151
 
118
152
  ---
119
153
 
120
154
  ## 7. Requirements Traceability
121
155
 
122
- This section is generated from the system model. The table below lists the **Requirements Traceability** elements currently defined:
123
-
124
156
  ```memo-query
125
157
  kind: Requirement
158
+ where: requirementKind == "RequirementKind::software"
159
+ traverse: outgoing verifiedBy
126
160
  display: table
127
- columns: name, layer
161
+ columns: name, kind, layer, doc
128
162
  sort: name
129
- empty: "No software requirements to trace."
163
+ empty: "No software requirements are linked to a verification case. Add VerifiedBy links."
130
164
  ```
131
165
 
132
166
  ---
@@ -35,7 +35,7 @@ label: Software requirements
35
35
  ```
36
36
 
37
37
  ```memo-query
38
- kind: TestCase
38
+ kind: VerificationCase
39
39
  display: count
40
40
  label: Test cases
41
41
  ```
@@ -75,7 +75,7 @@ empty: "No software requirements defined."
75
75
  This section is generated from the system model. The table below lists the **Software Requirements → Design Elements** elements currently defined:
76
76
 
77
77
  ```memo-query
78
- kind: [SoftwareItem, SoftwareUnit]
78
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
79
79
  display: table
80
80
  columns: name, kind, layer, doc
81
81
  sort: name
@@ -89,7 +89,7 @@ empty: "No software design elements defined."
89
89
  This section is generated from the system model. The table below lists the **Test Cases** elements currently defined:
90
90
 
91
91
  ```memo-query
92
- kind: TestCase
92
+ kind: VerificationCase
93
93
  display: table
94
94
  columns: name, layer, doc
95
95
  sort: name
@@ -37,7 +37,7 @@ empty: "No system requirements defined."
37
37
  This section is generated from the system model. The table below lists the **System Test Cases** elements currently defined:
38
38
 
39
39
  ```memo-query
40
- kind: [TestCase, ValidationActivity]
40
+ kind: [VerificationCase, ValidationCase]
41
41
  display: table
42
42
  columns: name, kind, layer, doc
43
43
  sort: name
@@ -31,7 +31,7 @@ _[TODO: Describe participant demographics, number, and selection criteria]_
31
31
  This section is generated from the system model. The table below lists the **Test Scenarios** elements currently defined:
32
32
 
33
33
  ```memo-query
34
- kind: [UseCase, ValidationActivity]
34
+ kind: [UseCase, ValidationCase]
35
35
  display: table
36
36
  columns: name, layer, doc
37
37
  sort: name
@@ -14,26 +14,62 @@ required_for: ["CE", "MDR"]
14
14
 
15
15
  ## 1. Purpose
16
16
 
17
- Documents task analysis for **{{project.product}}** per IEC 62366-1:2015 §5.4, identifying tasks that could cause hazardous situations if performed incorrectly.
17
+ Documents task analysis for **{{project.product}}** per IEC 62366-1:2015+AMD1:2020 §5.4, identifying the tasks users perform — through software user interfaces and through physical interaction with the equipment — and which of them could cause a hazardous situation if performed incorrectly.
18
18
 
19
19
  ---
20
20
 
21
21
  ## 2. User Tasks
22
22
 
23
- This section is generated from the system model. The table below lists the **User Tasks** elements currently defined:
23
+ This section is generated from the system model. The table below lists the user tasks and task steps currently defined:
24
24
 
25
25
  ```memo-query
26
- kind: UserActivity
26
+ kind: [UserTask, TaskStep]
27
27
  display: table
28
28
  columns: name, layer, doc
29
29
  sort: name
30
- empty: "No UserActivity elements defined."
30
+ empty: "No UserTask or TaskStep elements defined."
31
+ ```
32
+
33
+ ### 2.1 Task Boundary — What Each Task Acts Through
34
+
35
+ A task is cyber-physical when the element it is allocated to is a user interface, an operator interface element, or a port. The set below is derived by traversing `allocatedTo` from the tasks above, so it follows the model rather than the wording of a task name.
36
+
37
+ ```memo-query
38
+ kind: [UserTask, TaskStep]
39
+ traverse: outgoing allocatedTo
40
+ display: table
41
+ columns: name, kind, layer, doc
42
+ sort: name
43
+ empty: "No tasks are allocated to an interface element. Add AllocatedTo links from UserTask to the UI, operator interface, or port the task acts through."
44
+ ```
45
+
46
+ ### 2.2 Operator-Facing Boundary Elements
47
+
48
+ The user-facing elements a task can act through, hardware and software alike:
49
+
50
+ ```memo-query
51
+ kind: [UserInterface, OperatorInterfaceElement, Interface, MemoPort, PhysicalPort]
52
+ display: table
53
+ columns: name, kind, layer, doc
54
+ sort: name
55
+ empty: "No user interface or operator interface elements defined."
31
56
  ```
32
57
 
33
58
  ---
34
59
 
35
60
  ## 3. Critical Tasks
36
61
 
62
+ A task is critical when incorrect performance can lead to a hazardous situation. The table below is derived by traversing `causes` from the task set — the `useErrorLeadsToHazard` edge of IEC 62366-1 §5.4:
63
+
64
+ ```memo-query
65
+ kind: [UserTask, TaskStep]
66
+ traverse: outgoing causes
67
+ display: table
68
+ columns: name, kind, layer, doc
69
+ sort: name
70
+ empty: "No hazardous situations linked to user tasks. Add Causes links (causeKind = useErrorLeadsToHazard) from UserTask to HazardousSituation."
71
+ ```
72
+
37
73
  Complete this section for **{{project.product}}** using the guidance below.
38
74
 
39
75
  _[TODO: Identify which tasks are critical (could lead to hazardous situation if performed incorrectly)]_
@@ -39,7 +39,7 @@ _[TODO: Describe all use environments: clinical, home, ambulatory, etc.]_
39
39
  This section is generated from the system model. The table below lists the **Use-Related Hazards** elements currently defined:
40
40
 
41
41
  ```memo-query
42
- kind: [UseCase, UserActivity]
42
+ kind: [UseCase, UserTask]
43
43
  display: table
44
44
  columns: name, layer, doc
45
45
  sort: name
@@ -23,7 +23,7 @@ This Use-Related Risk Analysis (URRA) identifies use errors and use-related haza
23
23
  This section is generated from the system model. The table below lists the **Use Scenarios** elements currently defined:
24
24
 
25
25
  ```memo-query
26
- kind: [UseCase, UserActivity]
26
+ kind: [UseCase, UserTask]
27
27
  display: table
28
28
  columns: name, layer, doc
29
29
  sort: name
@@ -38,7 +38,7 @@ This section is generated from the system model. The table below lists the **Use
38
38
 
39
39
  ```memo-query
40
40
  kind: [Hazard, HazardousSituation]
41
- where: layer == "ui"
41
+ where: layer == "human-factors"
42
42
  display: table
43
43
  columns: name, doc, layer
44
44
  sort: name
@@ -60,7 +60,7 @@ _[TODO: Identify the critical tasks whose failure could cause a hazardous situat
60
60
  This section is generated from the system model. The table below lists the **Mitigation Measures** elements currently defined:
61
61
 
62
62
  ```memo-query
63
- kind: [RiskControlMeasure, UsabilityRequirement]
63
+ kind: [RiskControlMeasure, Requirement]
64
64
  display: table
65
65
  columns: name, layer, doc
66
66
  sort: name
@@ -2,7 +2,7 @@
2
2
  id: fmea
3
3
  title: Failure Mode and Effects Analysis
4
4
  standard: IEC 60812:2018
5
- clauses: ["5", "6", "7"]
5
+ clauses: ["5", "6", "7", "ISO 14971:2019 §7"]
6
6
  required_for: ["CE", "FDA_510k", "FDA_PMA"]
7
7
  ---
8
8
 
@@ -14,61 +14,84 @@ required_for: ["CE", "FDA_510k", "FDA_PMA"]
14
14
 
15
15
  ## 1. Purpose and Scope
16
16
 
17
- This FMEA documents failure modes for **{{project.product}}** components, their effects, severity, and mitigations. Combines hardware, software, and system-level failure analysis.
17
+ This FMEA documents failure modes for **{{project.product}}** components, their effects, severity, and mitigations, across the hardware layer, the software layer, and the boundary between them. IEC 60812 is the analysis method; the results feed the ISO 14971 risk management process.
18
18
 
19
19
  ---
20
20
 
21
21
  ## 2. Component Inventory
22
22
 
23
- This section is generated from the system model. The table below lists the **Component Inventory** elements currently defined:
23
+ This section is generated from the system model. The table below lists the components in scope of this analysis:
24
24
 
25
25
  ```memo-query
26
- kind: [Component, Subsystem, SoftwareItem]
26
+ kind: [PhysicalAssembly, HardwareAssembly, PhysicalComponent, HardwareComponent, SoftwareSystem, SoftwareComponent, SoftwareModule]
27
27
  display: table
28
28
  columns: name, kind, layer, doc
29
29
  sort: name
30
- empty: "No components defined. Add Component, Subsystem, or SoftwareItem elements."
30
+ empty: "No components defined. Add hardware or software architecture elements."
31
31
  ```
32
32
 
33
33
  ---
34
34
 
35
35
  ## 3. FMEA Worksheet
36
36
 
37
- ### 3.1 Hardware Failures
37
+ Each subsection traverses `hasFailureMode` from a set of architecture elements, so a failure mode appears under hardware, software, or the interface according to **what it is attached to in the model** — not according to what it is called.
38
+
39
+ ### 3.1 Hardware Failure Modes
40
+
41
+ Physical component failures: electrical shorts, mechanical wear, sensor drift, power loss.
38
42
 
39
43
  ```memo-query
40
- kind: Component
44
+ kind: [PhysicalAssembly, HardwareAssembly, PhysicalSubassembly, PhysicalComponent, HardwareComponent, ElectricalComponent, ElectronicComponent, ThermalComponent, FluidicComponent]
45
+ traverse: outgoing hasFailureMode
41
46
  display: table
42
- columns: name, layer, doc
47
+ columns: name, effect, severityRating, probability, doc
43
48
  sort: name
44
- empty: "No hardware components defined."
49
+ empty: "No hardware failure modes defined. Link FailureMode elements to hardware components with HasFailureMode."
45
50
  ```
46
51
 
47
- ### 3.2 Software Failures
52
+ ### 3.2 Software Failure Modes
53
+
54
+ Software failures: logic errors, memory exhaustion, data corruption, timing violations.
48
55
 
49
56
  ```memo-query
50
- kind: [SoftwareItem, SoftwareUnit]
57
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
58
+ traverse: outgoing hasFailureMode
51
59
  display: table
52
- columns: name, kind, layer, doc
60
+ columns: name, effect, severityRating, probability, doc
53
61
  sort: name
54
- empty: "No software items defined."
62
+ empty: "No software failure modes defined. Link FailureMode elements to software items with HasFailureMode."
55
63
  ```
56
64
 
57
- ### 3.3 Interface Failures
65
+ ### 3.3 Hardware-Software Interface Failure Modes
66
+
67
+ Failures at the boundary between hardware and software — sensor data misinterpreted, actuator commands lost, protocol desynchronisation. The boundary is queried through the interface and port types, never by matching a name.
58
68
 
59
69
  ```memo-query
60
- kind: Interface
70
+ kind: [InterfaceElement, MemoPort]
71
+ traverse: incoming hasFailureMode
61
72
  display: table
62
- columns: name, layer, doc
73
+ columns: name, effect, severityRating, probability, doc
74
+ sort: name
75
+ empty: "No interface failure modes defined. Link FailureMode elements to interfaces or ports with HasFailureMode."
76
+ ```
77
+
78
+ ### 3.4 Interface Inventory
79
+
80
+ The boundary elements the section above analyses:
81
+
82
+ ```memo-query
83
+ kind: [InterfaceElement, MemoPort]
84
+ display: table
85
+ columns: name, kind, layer, doc
63
86
  sort: name
64
- empty: "No interfaces defined."
87
+ empty: "No interfaces or ports defined."
65
88
  ```
66
89
 
67
90
  ---
68
91
 
69
92
  ## 4. Risk Controls for FMEA Items
70
93
 
71
- This section is generated from the system model. The table below lists the **Risk Controls for FMEA Items** elements currently defined:
94
+ Risk control measures defined for **{{project.product}}**. A failure mode with no risk control belongs in §5.
72
95
 
73
96
  ```memo-query
74
97
  kind: RiskControlMeasure
@@ -84,7 +107,7 @@ empty: "No risk controls defined."
84
107
 
85
108
  Complete this section for **{{project.product}}** using the guidance below.
86
109
 
87
- _[TODO: List any failure modes without risk controls and justify residual risk]_
110
+ _[TODO: List any failure modes without risk controls and justify residual risk per ISO 14971:2019 §7.4 and §8]_
88
111
 
89
112
  ---
90
113
 
@@ -50,7 +50,7 @@ All foreseeable hazards arising from the device, its intended use, and reasonabl
50
50
 
51
51
  ```memo-query
52
52
  kind: Hazard
53
- where: doc contains "energy"
53
+ where: hazardType == "HazardTypeKind::energyExposure"
54
54
  display: table
55
55
  columns: name, doc, layer
56
56
  sort: name
@@ -61,7 +61,7 @@ empty: "No energy hazards identified."
61
61
 
62
62
  ```memo-query
63
63
  kind: Hazard
64
- where: doc contains "biolog"
64
+ where: hazardType == "HazardTypeKind::biologicalContamination"
65
65
  display: table
66
66
  columns: name, doc, layer
67
67
  empty: "No biological/chemical hazards identified."
@@ -114,7 +114,7 @@ empty: "No harm elements defined. Add Harm elements linked to HazardousSituation
114
114
 
115
115
  ```memo-query
116
116
  kind: RiskControlMeasure
117
- where: doc contains "design"
117
+ where: controlKind == "RiskControlKind::inherentSafeDesign"
118
118
  display: table
119
119
  columns: name, doc, layer
120
120
  empty: "No inherent safety controls."
@@ -64,7 +64,7 @@ Complete the table below for **{{project.product}}**:
64
64
  ### 4.1 Severity Levels
65
65
 
66
66
  ```memo-query
67
- kind: RiskAcceptabilityCriteria
67
+ kind: Requirement
68
68
  display: table
69
69
  columns: name, doc, layer
70
70
  empty: "No risk acceptability criteria defined. Add RiskAcceptabilityCriteria elements to the model."
@@ -83,7 +83,7 @@ Residual risk is acceptable when:
83
83
 
84
84
  ```memo-query
85
85
  kind: Hazard
86
- where: layer == "risk"
86
+ where: layer == "safety_risk"
87
87
  display: count
88
88
  label: Total hazards in model
89
89
  ```