@memoarchitect/ontology 0.6.5 → 0.8.22

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 (394) hide show
  1. package/README.md +4 -2
  2. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
  3. package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
  4. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  5. package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
  6. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
  7. package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
  8. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  9. package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
  10. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
  11. package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
  12. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  13. package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
  15. package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
  16. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +19 -9
  17. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +342 -100
  18. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +27 -13
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +329 -272
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +57 -16
  21. package/examples/gpca-pump/model/catalog/gpca_context.sysml +12 -8
  22. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -10
  23. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
  24. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +181 -264
  25. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +95 -60
  26. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -11
  27. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +102 -101
  28. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
  29. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +47 -30
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +301 -354
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +116 -36
  33. package/examples/gpca-pump/model/catalog/project.sysml +26 -0
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
  35. package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +4 -4
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
  37. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +4 -4
  38. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
  39. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +5 -5
  40. package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  41. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
  42. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
  44. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
  45. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +8 -8
  46. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
  47. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
  48. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +4 -4
  49. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
  50. package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
  51. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +3 -3
  52. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +4 -4
  53. package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
  54. package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
  55. package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  56. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +8 -8
  57. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
  58. package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  59. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +8 -5
  60. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +7 -5
  61. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +3 -3
  62. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
  63. package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
  64. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +4 -4
  65. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +5 -5
  66. package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
  67. package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +8 -6
  68. package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
  69. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +7 -5
  70. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +3 -3
  71. package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
  72. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  73. package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
  74. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -2
  75. package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
  76. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  77. package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
  78. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
  79. package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
  80. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  81. package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
  82. package/examples/nested-architecture-dsm/README.md +49 -0
  83. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +179 -0
  84. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +165 -0
  85. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
  86. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
  87. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +113 -0
  88. package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
  89. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +48 -0
  90. package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
  91. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +11 -8
  92. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  93. package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
  94. package/examples/ros-mobile-robot/README.md +40 -0
  95. package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
  96. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
  97. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
  98. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
  99. package/examples/software-only-medical-device/model/catalog/project.sysml +28 -0
  100. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
  101. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  102. package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
  103. package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
  104. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +57 -57
  105. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  106. package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
  107. package/examples/surgical-robot/model/catalog/project.sysml +24 -0
  108. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +6 -4
  109. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  110. package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
  111. package/examples/sysml-diagram-samples/README.md +7 -0
  112. package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
  113. package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
  114. package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
  115. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  116. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +23 -20
  117. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +11 -11
  118. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
  119. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +143 -0
  120. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +87 -0
  121. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
  122. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +109 -0
  123. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
  124. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +6 -7
  125. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +33 -0
  126. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +80 -0
  127. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +48 -0
  128. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +15 -9
  129. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
  130. package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
  131. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +29 -21
  132. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  133. package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
  134. package/examples/ui-screen-regions/README.md +117 -0
  135. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +84 -0
  136. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +212 -0
  137. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
  138. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
  139. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
  140. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
  141. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
  142. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
  143. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
  144. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
  145. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
  146. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
  147. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
  148. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +75 -0
  149. package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
  150. package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
  151. package/examples/ui-screen-regions/model/catalog/traces.sysml +179 -0
  152. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  153. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
  154. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  155. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
  156. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  157. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
  158. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
  159. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
  160. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
  161. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
  162. package/extensions/LICENSES/MIT.txt +19 -0
  163. package/extensions/README.md +94 -0
  164. package/extensions/aadl/memo.package.yaml +18 -0
  165. package/extensions/aadl/src/aadl_extension.sysml +6 -0
  166. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
  167. package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
  168. package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
  169. package/extensions/clinical/memo.package.yaml +18 -0
  170. package/extensions/clinical/src/methodology/clinical_methodology.sysml +22 -0
  171. package/extensions/cloud/memo.package.yaml +18 -0
  172. package/extensions/cloud/src/cloud_extension.sysml +44 -0
  173. package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
  174. package/extensions/container/memo.package.yaml +18 -0
  175. package/extensions/container/src/container_extension.sysml +37 -0
  176. package/extensions/container/src/methodology/container_methodology.sysml +17 -0
  177. package/extensions/messaging/memo.package.yaml +18 -0
  178. package/extensions/messaging/src/messaging_extension.sysml +64 -0
  179. package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
  180. package/extensions/ros/memo.package.yaml +18 -0
  181. package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
  182. package/extensions/ros/src/ros_extension.sysml +200 -0
  183. package/extensions/template/memo.package.yaml +17 -0
  184. package/extensions/template/src/extension.sysml +37 -0
  185. package/memo.manifest.yaml +15 -2
  186. package/methodologies/default/memo.package.yaml +19 -9
  187. package/methodologies/gpca/memo.package.yaml +18 -9
  188. package/ontology/memo.package.yaml +23 -8
  189. package/package.json +6 -6
  190. package/profile/memo.package.yaml +18 -9
  191. package/src/architecture/decisions/memo_decisions.sysml +28 -0
  192. package/src/architecture/functional/behavior/memo_behavior.sysml +50 -22
  193. package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
  194. package/src/architecture/functional/functions/memo_functions.sysml +93 -43
  195. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -24
  196. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +52 -12
  197. package/src/architecture/implementation/ui/memo_ui.sysml +276 -53
  198. package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -13
  199. package/src/architecture/logical/structure/memo_logical_structure.sysml +92 -35
  200. package/src/architecture/operational/activities/memo_activities.sysml +10 -4
  201. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
  202. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
  203. package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
  204. package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
  205. package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
  206. package/src/architecture/operational/workflows/memo_workflows.sysml +28 -15
  207. package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
  208. package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
  209. package/src/artifacts/configuration_management/memo_configuration_management.sysml +35 -0
  210. package/src/artifacts/core/memo_controlled_artifacts.sysml +35 -0
  211. package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
  212. package/src/artifacts/standards/cfr_21_820.sysml +116 -0
  213. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
  214. package/src/artifacts/standards/iec_60601_1.sysml +149 -0
  215. package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
  216. package/src/artifacts/standards/iec_60812.sysml +51 -0
  217. package/src/artifacts/standards/iec_62304.sysml +210 -0
  218. package/src/artifacts/standards/iec_62366_1.sysml +113 -0
  219. package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
  220. package/src/artifacts/standards/iso_13485.sysml +113 -0
  221. package/src/artifacts/standards/iso_14971.sysml +94 -0
  222. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
  223. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
  224. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +1 -1
  225. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +5 -5
  226. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +1 -1
  227. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +2 -2
  228. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +2 -2
  229. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +2 -2
  230. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +1 -1
  231. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +1 -1
  232. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +3 -3
  233. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +4 -4
  234. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +1 -1
  235. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +3 -2
  236. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +2 -2
  237. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +4 -4
  238. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +4 -3
  239. package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
  240. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +1 -1
  241. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +3 -3
  242. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +6 -5
  243. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +3 -2
  244. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +5 -4
  245. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +4 -2
  246. package/src/artifacts/templates/dhf/iec-62304/srs.md +172 -0
  247. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +3 -3
  248. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +1 -1
  249. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +1 -1
  250. package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +93 -0
  251. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +1 -1
  252. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +3 -3
  253. package/src/artifacts/templates/dhf/iso-14971/fmea.md +116 -0
  254. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +3 -3
  255. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +2 -2
  256. package/src/artifacts/templates/dhf/system/sad.md +173 -0
  257. package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
  258. package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
  259. package/src/artifacts/templates/dhf/system/syrs.md +128 -0
  260. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
  261. package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
  262. package/src/assurance/requirements/memo_requirements.sysml +5 -2
  263. package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
  264. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
  265. package/src/assurance/safety_risk/memo_risk.sysml +78 -7
  266. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +27 -0
  267. package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
  268. package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
  269. package/src/core/annotations/memo_annotations.sysml +96 -0
  270. package/src/core/common/memo_common.sysml +140 -18
  271. package/src/core/consistency_rules/consistency_rules.sysml +7 -0
  272. package/src/core/dimensions/dimensions.sysml +17 -1
  273. package/src/core/enumerations/memo_enumerations.sysml +101 -20
  274. package/src/core/methodology_scope/methodology_scope.sysml +7 -15
  275. package/src/core/relationships/memo_relationships.sysml +199 -194
  276. package/src/memo_namespaces.sysml +127 -67
  277. package/src/methodology/core/memo_core.sysml +69 -2
  278. package/src/methodology/profiles/memo_profiles.sysml +31 -41
  279. package/src/methodology/workflow/memo_workflow.sysml +7 -2
  280. package/src/rules/closure/closure_rules.sysml +104 -31
  281. package/src/rules/coverage/coverage_rules.sysml +4 -256
  282. package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
  283. package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
  284. package/src/rules/ontology/ontology_invariants.sysml +243 -74
  285. package/src/rules/quantitative/quantitative_rules.sysml +8 -8
  286. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +10 -3
  287. package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
  288. package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
  289. package/src/viewpoints/context/context_viewpoint.sysml +4 -2
  290. package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
  291. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
  292. package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
  293. package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
  294. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +5 -0
  295. package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
  296. package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +3 -3
  297. package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +3 -3
  298. package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
  299. package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
  300. package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
  301. package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +3 -3
  302. package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
  303. package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
  304. package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
  305. package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
  306. package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
  307. package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
  308. package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
  309. package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
  310. package/src/viewpoints/software/software_viewpoint.sysml +3 -1
  311. package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
  312. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
  313. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
  314. package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
  315. package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
  316. package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
  317. package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +3 -3
  318. package/templates/connected-device/memo.package.yaml +11 -5
  319. package/templates/connected-device/model/catalog/project.sysml +28 -0
  320. package/templates/connected-device/syside.toml +1 -1
  321. package/templates/default/memo.package.yaml +11 -5
  322. package/templates/default/model/catalog/project.sysml +28 -0
  323. package/templates/default/syside.toml +1 -1
  324. package/templates/infusion-pump/memo.package.yaml +11 -5
  325. package/templates/infusion-pump/model/catalog/project.sysml +28 -0
  326. package/templates/infusion-pump/syside.toml +1 -1
  327. package/templates/monitoring-device/memo.package.yaml +11 -5
  328. package/templates/monitoring-device/model/catalog/project.sysml +28 -0
  329. package/templates/monitoring-device/syside.toml +1 -1
  330. package/templates/samd/memo.package.yaml +11 -5
  331. package/templates/samd/model/catalog/project.sysml +28 -0
  332. package/templates/samd/syside.toml +1 -1
  333. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
  334. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
  335. package/examples/extensions/README.md +0 -16
  336. package/examples/extensions/clinical/memo.package.yaml +0 -9
  337. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -14
  338. package/examples/extensions/template/memo.package.yaml +0 -9
  339. package/examples/extensions/template/src/extension.sysml +0 -15
  340. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
  341. package/examples/gpca-pump/memo.config.yaml +0 -9
  342. package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
  343. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
  344. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
  345. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
  346. package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
  347. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
  348. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
  349. package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
  350. package/examples/sysml-diagram-samples/model/samples/functional_flow_view.sysml +0 -164
  351. package/examples/sysml-diagram-samples/model/samples/interconnection_view.sysml +0 -94
  352. package/examples/sysml-diagram-samples/model/samples/operational_behaviour_view.sysml +0 -135
  353. package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +0 -109
  354. package/examples/sysml-diagram-samples/model/samples/tree_view.sysml +0 -56
  355. package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
  356. package/ontology/memo.rendering.yaml +0 -84
  357. package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
  358. package/src/compliance/change/memo_change.sysml +0 -17
  359. package/src/compliance/dhf-templates/iec-62304/srs.md +0 -138
  360. package/src/compliance/dhf-templates/iec-62366/task-analysis.md +0 -57
  361. package/src/compliance/dhf-templates/iso-14971/fmea.md +0 -93
  362. package/src/compliance/document_views/memo_document_views.sysml +0 -7
  363. package/src/compliance/iso14971/risk_management_file.sysml +0 -16
  364. package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
  365. /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
  366. /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
  367. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
  368. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
  369. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
  370. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
  371. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
  372. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
  373. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
  374. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
  375. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
  376. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
  377. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
  378. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
  379. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
  380. /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
  381. /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  382. /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  383. /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
  384. /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  385. /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
  386. /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
  387. /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  388. /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
  389. /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
  390. /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  391. /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  392. /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
  393. /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  394. /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
@@ -2,7 +2,7 @@
2
2
  id: incident-response
3
3
  title: Cybersecurity Incident Response Plan
4
4
  standard: FDA Cybersecurity Guidance 2023
5
- clauses: ["5.2"]
5
+ clauses: ["VI"]
6
6
  required_for: ["FDA_510k", "FDA_PMA"]
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  id: postmarket-surveillance
3
3
  title: Post-Market Cybersecurity Surveillance Plan
4
4
  standard: FDA Cybersecurity Guidance 2023
5
- clauses: ["5"]
5
+ clauses: ["VI"]
6
6
  required_for: ["FDA_510k", "FDA_PMA"]
7
7
  ---
8
8
 
@@ -30,7 +30,8 @@ Defines ongoing cybersecurity surveillance for **{{project.product}}** in the po
30
30
  Describe the process for ongoing monitoring of SOUP components for newly published vulnerabilities.
31
31
 
32
32
  ```memo-query
33
- kind: SOUPComponent
33
+ kind: SoftwareModule
34
+ where: moduleKind == "SoftwareModuleKind::soup"
34
35
  display: table
35
36
  columns: name, doc
36
37
  sort: name
@@ -2,7 +2,7 @@
2
2
  id: security-arch
3
3
  title: Cybersecurity Architecture Description
4
4
  standard: FDA Cybersecurity Guidance 2023
5
- clauses: ["3.3"]
5
+ clauses: ["V.B"]
6
6
  required_for: ["FDA_510k", "FDA_PMA"]
7
7
  ---
8
8
 
@@ -45,7 +45,7 @@ empty: "No interfaces defined."
45
45
  Security controls implemented in **{{project.product}}** are listed below from the model. Each control should trace to at least one identified threat:
46
46
 
47
47
  ```memo-query
48
- kind: SecurityControl
48
+ kind: RiskControlMeasure
49
49
  display: table
50
50
  columns: name, layer, doc
51
51
  sort: name
@@ -2,7 +2,7 @@
2
2
  id: threat-model
3
3
  title: Cybersecurity Threat Model
4
4
  standard: FDA Cybersecurity Guidance 2023
5
- clauses: ["3.2"]
5
+ clauses: ["V.A"]
6
6
  required_for: ["FDA_510k", "FDA_PMA"]
7
7
  ---
8
8
 
@@ -23,7 +23,7 @@ This threat model documents cybersecurity threats for **{{project.product}}** pe
23
23
  Assets requiring protection (data, functions, interfaces), drawn from the model:
24
24
 
25
25
  ```memo-query
26
- kind: [SoftwareSystem, Interface, SOUPComponent]
26
+ kind: [SoftwareSystem, InterfaceElement, SoftwareModule]
27
27
  display: table
28
28
  columns: name, kind, layer, doc
29
29
  sort: name
@@ -51,7 +51,7 @@ empty: "No interfaces defined."
51
51
  The threat catalog below is generated from the model. Each threat should be assessed for likelihood and impact and trace to mitigating security controls:
52
52
 
53
53
  ```memo-query
54
- kind: ThreatModel
54
+ kind: [FMEAWorksheet, FaultTree, HAZOPStudy]
55
55
  display: table
56
56
  columns: name, layer, doc
57
57
  sort: name
@@ -76,7 +76,7 @@ empty: "No threat model elements defined. Add ThreatModel elements."
76
76
  Security controls implemented in **{{project.product}}** are listed below from the model. Each control should trace to at least one identified threat:
77
77
 
78
78
  ```memo-query
79
- kind: SecurityControl
79
+ kind: RiskControlMeasure
80
80
  display: table
81
81
  columns: name, layer, doc
82
82
  sort: name
@@ -2,7 +2,7 @@
2
2
  id: vuln-assessment
3
3
  title: Vulnerability Assessment and Penetration Testing Report
4
4
  standard: FDA Cybersecurity Guidance 2023
5
- clauses: ["3.4"]
5
+ clauses: ["V.C"]
6
6
  required_for: ["FDA_510k", "FDA_PMA"]
7
7
  ---
8
8
 
@@ -23,7 +23,7 @@ Documents cybersecurity vulnerability assessment and testing for **{{project.pro
23
23
  Define the boundaries of this assessment: components, interfaces, and threat classes in and out of scope.
24
24
 
25
25
  ```memo-query
26
- kind: [SoftwareSystem, SoftwareItem, Interface]
26
+ kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule, InterfaceElement, MemoPort]
27
27
  display: table
28
28
  columns: name, kind, layer
29
29
  sort: name
@@ -37,7 +37,8 @@ empty: "No software assets defined."
37
37
  Known vulnerabilities in SOUP and third-party components (e.g. from CVE/NVD monitoring) and their disposition:
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
43
44
  sort: name
@@ -0,0 +1,170 @@
1
+ ---
2
+ id: hrs
3
+ title: Hardware Requirements Specification
4
+ standard: IEC 60601-1:2005+AMD1:2012+AMD2:2020
5
+ clauses: ["8", "9", "11", "15", "IEC 60601-1-2:2014+AMD1:2020 §7"]
6
+ required_for: ["CE", "FDA_510k", "MDR"]
7
+ ---
8
+
9
+ {{include:shared/snippets/document-control-header.md}}
10
+
11
+ {{toc}}
12
+
13
+ ---
14
+
15
+ ## 1. Purpose
16
+
17
+ This Hardware Requirements Specification (HRS) defines the safety, construction, and performance requirements for the **{{project.product}}** physical equipment, ensuring compliance with IEC 60601-1 (general safety) and applicable collateral standards (IEC 60601-1-2 for electromagnetic compatibility).
18
+
19
+ Hardware requirements are identified by the model's `requirementKind` attribute. Per-topic sections — construction, electrical, EMC, mechanical — are **not** name filters: each is the set of elements claiming the clause that governs that topic, selected by traversing `ConformsTo` to that clause. A clause is named by its element id rather than by its number, because a clause number is not unique across standards: "8" is a clause of IEC 60601-1, of IEC 60601-1-2 and of IEC 62304.
20
+
21
+ ---
22
+
23
+ ## 2. Hardware Requirements Summary
24
+
25
+ Summary metrics for the hardware requirements captured in the model:
26
+
27
+ ```memo-query
28
+ kind: Requirement
29
+ where: requirementKind == "RequirementKind::hardware"
30
+ display: count
31
+ label: Total hardware requirements
32
+ ```
33
+
34
+ ### All Hardware Requirements
35
+
36
+ ```memo-query
37
+ kind: Requirement
38
+ where: requirementKind == "RequirementKind::hardware"
39
+ display: table
40
+ columns: name, requirementKind, electricalSafetyRelevant, doc
41
+ sort: name
42
+ empty: "No hardware requirements defined. Add Requirement elements with requirementKind = hardware."
43
+ ```
44
+
45
+ ---
46
+
47
+ ## 3. Physical & Construction Requirements (IEC 60601-1 §15)
48
+
49
+ The physical elements these requirements govern:
50
+
51
+ ```memo-query
52
+ kind: [PhysicalAssembly, HardwareAssembly, PhysicalSubassembly, PhysicalComponent, HardwareComponent, PhysicalConnectorPart]
53
+ display: table
54
+ columns: name, kind, layer, doc
55
+ sort: name
56
+ empty: "No physical assemblies or components defined."
57
+ ```
58
+
59
+ The elements claiming IEC 60601-1 §15 are a `ConformsTo` table:
60
+
61
+ ```memo-query
62
+ select: relationships
63
+ kind: conformsTo
64
+ where: target.id == "iec60601_1Clause15"
65
+ display: table
66
+ columns: source, source.kind, target.clauseNumber, target.title
67
+ sort: source
68
+ empty: "No elements claim IEC 60601-1 §15."
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 4. Electrical Safety Requirements (IEC 60601-1 §8)
74
+
75
+ Protection against electric shock, isolation, and medical-grade power supplies. The electrical elements in scope:
76
+
77
+ ```memo-query
78
+ kind: [ElectricalComponent, ElectronicComponent, PhysicalConnectorPart]
79
+ display: table
80
+ columns: name, kind, layer, doc
81
+ sort: name
82
+ empty: "No electrical or electronic components defined."
83
+ ```
84
+
85
+ ```memo-query
86
+ select: relationships
87
+ kind: conformsTo
88
+ where: target.id == "iec60601_1Clause8"
89
+ display: table
90
+ columns: source, source.kind, target.clauseNumber, target.title
91
+ sort: source
92
+ empty: "No elements claim IEC 60601-1 §8."
93
+ ```
94
+
95
+ ---
96
+
97
+ ## 5. Electromagnetic Compatibility (IEC 60601-1-2 §7)
98
+
99
+ Immunity from electromagnetic disturbances and limits on emissions.
100
+
101
+ This section is the one that pays for clause-level traceability: once a requirement carries `ConformsTo → IEC 60601-1-2 §7`, "EMC Requirements" stops being a filter over names and becomes *the set of requirements claiming that clause*. The section heading and the standard then come from one source.
102
+
103
+ ```memo-query
104
+ select: relationships
105
+ kind: conformsTo
106
+ where: target.id == "iec60601_1_2Clause7"
107
+ display: table
108
+ columns: source, source.kind, target.clauseNumber, target.title
109
+ sort: source
110
+ empty: "No elements claim IEC 60601-1-2 §7."
111
+ ```
112
+
113
+ ---
114
+
115
+ ## 6. Mechanical, Thermal, and Environmental Requirements (IEC 60601-1 §9, §11)
116
+
117
+ Mechanical strength and impact resistance (§9), excessive temperatures and ingress (§11). The elements in scope:
118
+
119
+ ```memo-query
120
+ kind: [ThermalComponent, AcousticComponent, FluidicComponent, PneumaticComponent, OpticalComponent]
121
+ display: table
122
+ columns: name, kind, layer, doc
123
+ sort: name
124
+ empty: "No mechanical, thermal, fluidic or optical components defined."
125
+ ```
126
+
127
+ ```memo-query
128
+ select: relationships
129
+ kind: conformsTo
130
+ where: target.id == "iec60601_1Clause9"
131
+ display: table
132
+ columns: source, source.kind, target.clauseNumber, target.title
133
+ sort: source
134
+ empty: "No elements claim IEC 60601-1 §9."
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 7. Hardware Traceability
140
+
141
+ Hardware requirements traced to the elements that satisfy them:
142
+
143
+ ```memo-query
144
+ kind: Requirement
145
+ where: requirementKind == "RequirementKind::hardware"
146
+ traverse: outgoing satisfiedBy
147
+ display: table
148
+ columns: name, kind, layer, doc
149
+ sort: name
150
+ empty: "No hardware requirements are linked to a satisfying element. Add SatisfiedBy links."
151
+ ```
152
+
153
+ The allocation table proper — *which* element allocates to *which* — is relationship-shaped. It is not filtered to hardware: `AllocatedTo` joins two architecture elements and carries no layer of its own, so the receiving element's kind and layer are shown as columns instead of guessed at by a filter.
154
+
155
+ ```memo-query
156
+ select: relationships
157
+ kind: allocatedTo
158
+ display: table
159
+ columns: source, target, target.kind, target.layer
160
+ sort: target
161
+ empty: "No allocations defined."
162
+ ```
163
+
164
+ ---
165
+
166
+ {{include:shared/snippets/revision-history-table.md}}
167
+
168
+ {{include:shared/snippets/approval-block.md}}
169
+
170
+ {{include:shared/snippets/references-section.md}}
@@ -23,7 +23,7 @@ This document provides detailed design specifications for **{{project.product}}*
23
23
  The software units — the lowest level of decomposition per IEC 62304 — are listed below from the model:
24
24
 
25
25
  ```memo-query
26
- kind: SoftwareUnit
26
+ kind: SoftwareModule
27
27
  display: table
28
28
  columns: name, layer, doc
29
29
  sort: name
@@ -23,7 +23,7 @@ This Integration Test Plan defines the approach for integration testing of **{{p
23
23
  The software items in scope for this test plan, drawn from the model:
24
24
 
25
25
  ```memo-query
26
- kind: [SoftwareItem, SoftwareUnit]
26
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
27
27
  display: table
28
28
  columns: name, kind, layer, doc
29
29
  sort: name
@@ -37,8 +37,8 @@ empty: "No software items defined."
37
37
  Integration test cases are listed below from the model:
38
38
 
39
39
  ```memo-query
40
- kind: TestCase
41
- where: layer == "verification"
40
+ kind: VerificationCase
41
+ where: layer == "verification_validation"
42
42
  display: table
43
43
  columns: name, layer, doc
44
44
  sort: name
@@ -33,7 +33,7 @@ empty: "No SoftwareSystem defined."
33
33
  **Total elements:**
34
34
 
35
35
  ```memo-query
36
- kind: [SoftwareSystem, SoftwareItem, SoftwareUnit, SOUPComponent]
36
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
37
37
  display: count
38
38
  label: Total software elements
39
39
  ```
@@ -49,17 +49,17 @@ This section describes the decomposition of the software into software items per
49
49
  ### 3.1 Software Items
50
50
 
51
51
  ```memo-query
52
- kind: SoftwareItem
52
+ kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
53
53
  display: table
54
54
  columns: name, layer, doc
55
55
  sort: name
56
- empty: "No SoftwareItem elements defined."
56
+ empty: "No SoftwareElement elements defined."
57
57
  ```
58
58
 
59
59
  ### 3.2 Software Units
60
60
 
61
61
  ```memo-query
62
- kind: SoftwareUnit
62
+ kind: SoftwareModule
63
63
  display: table
64
64
  columns: name, layer, doc
65
65
  sort: name
@@ -83,7 +83,8 @@ empty: "No Interface elements defined."
83
83
  Software of Unknown Provenance (SOUP) used by **{{project.product}}** is listed below per IEC 62304 §5.3.3–5.3.4. For each SOUP item, functional/performance requirements and required hardware/software must be specified:
84
84
 
85
85
  ```memo-query
86
- kind: SOUPComponent
86
+ kind: SoftwareModule
87
+ where: moduleKind == "SoftwareModuleKind::soup"
87
88
  display: table
88
89
  columns: name, doc, layer
89
90
  sort: name
@@ -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
@@ -0,0 +1,172 @@
1
+ ---
2
+ id: srs
3
+ title: Software Requirements Specification
4
+ standard: IEC 62304:2006+AMD1:2015
5
+ clauses: ["5.2", "5.2.2", "5.2.3", "5.2.6"]
6
+ required_for: ["CE", "FDA_510k", "MDR"]
7
+ ---
8
+
9
+ {{include:shared/snippets/document-control-header.md}}
10
+
11
+ {{toc}}
12
+
13
+ ---
14
+
15
+ ## 1. Purpose
16
+
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`.
20
+
21
+ ---
22
+
23
+ ## 2. Requirements Summary
24
+
25
+ Summary metrics for the requirements captured in the model:
26
+
27
+ ```memo-query
28
+ kind: Requirement
29
+ where: requirementKind == "RequirementKind::software"
30
+ display: count
31
+ label: Total software requirements
32
+ ```
33
+
34
+ ```memo-query
35
+ kind: Requirement
36
+ where: requirementKind == "RequirementKind::system"
37
+ display: count
38
+ label: System requirements
39
+ ```
40
+
41
+ ---
42
+
43
+ ## 3. Functional Requirements
44
+
45
+ Requirements carrying a `shall` obligation — the binding ones:
46
+
47
+ ```memo-query
48
+ kind: Requirement
49
+ where: obligation == "ObligationKind::shall"
50
+ display: table
51
+ columns: name, requirementKind, safetyClass, doc
52
+ sort: name
53
+ empty: "No requirements carry a `shall` obligation. Set `obligation` on Requirement elements."
54
+ ```
55
+
56
+ ### All Software Requirements
57
+
58
+ ```memo-query
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]
75
+ display: table
76
+ columns: name, kind, layer, doc
77
+ sort: name
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."
90
+ ```
91
+
92
+ ---
93
+
94
+ ## 4. System Requirements (Allocated to Software)
95
+
96
+ System requirements allocated to software per IEC 62304 §5.2, drawn from the model:
97
+
98
+ ```memo-query
99
+ kind: Requirement
100
+ where: requirementKind == "RequirementKind::system"
101
+ display: table
102
+ columns: name, requirementKind, safetyClass, doc
103
+ sort: name
104
+ empty: "No system requirements defined."
105
+ ```
106
+
107
+ ---
108
+
109
+ ## 5. Non-Functional Requirements
110
+
111
+ ### 5.1 Performance Requirements
112
+
113
+ _[TODO: Define performance requirements (response time, throughput, memory)]_
114
+
115
+ ### 5.2 Safety Requirements
116
+
117
+ Software safety requirements are those whose `safetyClass` is set. The hazards they derive from:
118
+
119
+ ```memo-query
120
+ kind: Hazard
121
+ display: table
122
+ columns: name, layer, doc
123
+ sort: name
124
+ empty: "No hazards defined in the risk model."
125
+ ```
126
+
127
+ ### 5.3 Security Requirements
128
+
129
+ ```memo-query
130
+ kind: SecurityRequirement
131
+ display: table
132
+ columns: name, layer, doc
133
+ sort: name
134
+ empty: "No security requirements defined."
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 6. SOUP Requirements
140
+
141
+ Software of Unknown Provenance depended on by **{{project.product}}**, derived by traversing `dependsOnSoup` from the software items:
142
+
143
+ ```memo-query
144
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
145
+ traverse: outgoing dependsOnSoup
146
+ display: table
147
+ columns: name, kind, layer, doc
148
+ sort: name
149
+ empty: "No SOUP identified. Add DependsOnSoup links from software items to the SOUP they depend on."
150
+ ```
151
+
152
+ ---
153
+
154
+ ## 7. Requirements Traceability
155
+
156
+ ```memo-query
157
+ kind: Requirement
158
+ where: requirementKind == "RequirementKind::software"
159
+ traverse: outgoing verifiedBy
160
+ display: table
161
+ columns: name, kind, layer, doc
162
+ sort: name
163
+ empty: "No software requirements are linked to a verification case. Add VerifiedBy links."
164
+ ```
165
+
166
+ ---
167
+
168
+ {{include:shared/snippets/revision-history-table.md}}
169
+
170
+ {{include:shared/snippets/approval-block.md}}
171
+
172
+ {{include:shared/snippets/references-section.md}}
@@ -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