@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
@@ -0,0 +1,84 @@
1
+ // IEC 81001-5-1:2021 — Health software and health IT systems safety, effectiveness and security — Part 5-1: Security — Activities in the product life cycle
2
+ //
3
+ // Clause instances, not type machinery. Everything here is data: adding a
4
+ // standard is one file like this one and zero TypeScript changes.
5
+ package memo_artifacts_standards_iec_81001_5_1 {
6
+ private import ScalarValues::*;
7
+ private import memo_core_enumerations::*;
8
+ private import memo_core_relationships::*;
9
+ private import memo_artifacts_standards_traceability::*;
10
+
11
+ item iec81001_5_1 : RegulatoryStandard {
12
+ attribute :>> id = "STD-IEC-81001-5-1";
13
+ attribute :>> name = "IEC81001_5_1";
14
+ attribute :>> designation = "IEC 81001-5-1:2021";
15
+ attribute :>> edition = "2021";
16
+ attribute :>> issuer = "IEC";
17
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
18
+ }
19
+
20
+ item iec81001_5_1Clause4 : StandardClause {
21
+ attribute :>> id = "STD-IEC-81001-5-1-4";
22
+ attribute :>> name = "IEC81001_5_1Clause4";
23
+ attribute :>> clauseNumber = "4";
24
+ attribute :>> title = "general requirements";
25
+ attribute :>> normativeStrength = "shall";
26
+ }
27
+
28
+ item iec81001_5_1Clause5 : StandardClause {
29
+ attribute :>> id = "STD-IEC-81001-5-1-5";
30
+ attribute :>> name = "IEC81001_5_1Clause5";
31
+ attribute :>> clauseNumber = "5";
32
+ attribute :>> title = "software development process";
33
+ attribute :>> normativeStrength = "shall";
34
+ }
35
+
36
+ item iec81001_5_1Clause5_1 : StandardClause {
37
+ attribute :>> id = "STD-IEC-81001-5-1-5-1";
38
+ attribute :>> name = "IEC81001_5_1Clause5_1";
39
+ attribute :>> clauseNumber = "5.1";
40
+ attribute :>> title = "software development planning";
41
+ attribute :>> normativeStrength = "shall";
42
+ }
43
+
44
+ item iec81001_5_1Clause5_2 : StandardClause {
45
+ attribute :>> id = "STD-IEC-81001-5-1-5-2";
46
+ attribute :>> name = "IEC81001_5_1Clause5_2";
47
+ attribute :>> clauseNumber = "5.2";
48
+ attribute :>> title = "software requirements analysis";
49
+ attribute :>> normativeStrength = "shall";
50
+ }
51
+
52
+ item iec81001_5_1Clause5_3 : StandardClause {
53
+ attribute :>> id = "STD-IEC-81001-5-1-5-3";
54
+ attribute :>> name = "IEC81001_5_1Clause5_3";
55
+ attribute :>> clauseNumber = "5.3";
56
+ attribute :>> title = "software architectural design";
57
+ attribute :>> normativeStrength = "shall";
58
+ }
59
+
60
+ item iec81001_5_1Clause5_4 : StandardClause {
61
+ attribute :>> id = "STD-IEC-81001-5-1-5-4";
62
+ attribute :>> name = "IEC81001_5_1Clause5_4";
63
+ attribute :>> clauseNumber = "5.4";
64
+ attribute :>> title = "software design";
65
+ attribute :>> normativeStrength = "shall";
66
+ }
67
+
68
+ item iec81001_5_1Clause5_8 : StandardClause {
69
+ attribute :>> id = "STD-IEC-81001-5-1-5-8";
70
+ attribute :>> name = "IEC81001_5_1Clause5_8";
71
+ attribute :>> clauseNumber = "5.8";
72
+ attribute :>> title = "software release";
73
+ attribute :>> normativeStrength = "shall";
74
+ }
75
+
76
+ connection iec81001_5_1Has4 : Composes connect parent ::> iec81001_5_1 to child ::> iec81001_5_1Clause4;
77
+ connection iec81001_5_1Has5 : Composes connect parent ::> iec81001_5_1 to child ::> iec81001_5_1Clause5;
78
+
79
+ connection iec81001_5_1Has5_1 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_1;
80
+ connection iec81001_5_1Has5_2 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_2;
81
+ connection iec81001_5_1Has5_3 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_3;
82
+ connection iec81001_5_1Has5_4 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_4;
83
+ connection iec81001_5_1Has5_8 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_8;
84
+ }
@@ -0,0 +1,113 @@
1
+ // ISO 13485:2016 — quality management systems for medical devices.
2
+ //
3
+ // Only the design-and-development and document-control clauses MEMO documents
4
+ // actually claim are represented. The rest of the QMS is a management-system
5
+ // concern that no model element traces to, and an unclaimed clause costs
6
+ // nothing to add later.
7
+ package memo_artifacts_standards_iso_13485 {
8
+ private import ScalarValues::*;
9
+ private import memo_core_enumerations::*;
10
+ private import memo_core_relationships::*;
11
+ private import memo_artifacts_standards_traceability::*;
12
+
13
+ item iso13485 : RegulatoryStandard {
14
+ attribute :>> id = "STD-ISO-13485";
15
+ attribute :>> name = "ISO13485";
16
+ attribute :>> designation = "ISO 13485:2016";
17
+ attribute :>> edition = "2016";
18
+ attribute :>> issuer = "ISO";
19
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA);
20
+ }
21
+
22
+ item iso13485Clause4 : StandardClause {
23
+ attribute :>> id = "STD-ISO-13485-4";
24
+ attribute :>> name = "ISO13485Clause4";
25
+ attribute :>> clauseNumber = "4";
26
+ attribute :>> title = "quality management system";
27
+ attribute :>> normativeStrength = "shall";
28
+ }
29
+ item iso13485Clause4_2 : StandardClause {
30
+ attribute :>> id = "STD-ISO-13485-4-2";
31
+ attribute :>> name = "ISO13485Clause4_2";
32
+ attribute :>> clauseNumber = "4.2";
33
+ attribute :>> title = "quality management system documentation";
34
+ attribute :>> normativeStrength = "shall";
35
+ }
36
+ item iso13485Clause4_2_4 : StandardClause {
37
+ attribute :>> id = "STD-ISO-13485-4-2-4";
38
+ attribute :>> name = "ISO13485Clause4_2_4";
39
+ attribute :>> clauseNumber = "4.2.4";
40
+ attribute :>> title = "control of documents";
41
+ attribute :>> normativeStrength = "shall";
42
+ }
43
+ item iso13485Clause7 : StandardClause {
44
+ attribute :>> id = "STD-ISO-13485-7";
45
+ attribute :>> name = "ISO13485Clause7";
46
+ attribute :>> clauseNumber = "7";
47
+ attribute :>> title = "product realization";
48
+ attribute :>> normativeStrength = "shall";
49
+ }
50
+ item iso13485Clause7_3 : StandardClause {
51
+ attribute :>> id = "STD-ISO-13485-7-3";
52
+ attribute :>> name = "ISO13485Clause7_3";
53
+ attribute :>> clauseNumber = "7.3";
54
+ attribute :>> title = "design and development";
55
+ attribute :>> normativeStrength = "shall";
56
+ }
57
+ item iso13485Clause7_3_3 : StandardClause {
58
+ attribute :>> id = "STD-ISO-13485-7-3-3";
59
+ attribute :>> name = "ISO13485Clause7_3_3";
60
+ attribute :>> clauseNumber = "7.3.3";
61
+ attribute :>> title = "design and development inputs";
62
+ attribute :>> normativeStrength = "shall";
63
+ }
64
+ item iso13485Clause7_3_4 : StandardClause {
65
+ attribute :>> id = "STD-ISO-13485-7-3-4";
66
+ attribute :>> name = "ISO13485Clause7_3_4";
67
+ attribute :>> clauseNumber = "7.3.4";
68
+ attribute :>> title = "design and development outputs";
69
+ attribute :>> normativeStrength = "shall";
70
+ }
71
+ item iso13485Clause7_3_6 : StandardClause {
72
+ attribute :>> id = "STD-ISO-13485-7-3-6";
73
+ attribute :>> name = "ISO13485Clause7_3_6";
74
+ attribute :>> clauseNumber = "7.3.6";
75
+ attribute :>> title = "design and development verification";
76
+ attribute :>> normativeStrength = "shall";
77
+ }
78
+ item iso13485Clause7_3_7 : StandardClause {
79
+ attribute :>> id = "STD-ISO-13485-7-3-7";
80
+ attribute :>> name = "ISO13485Clause7_3_7";
81
+ attribute :>> clauseNumber = "7.3.7";
82
+ attribute :>> title = "design and development validation";
83
+ attribute :>> normativeStrength = "shall";
84
+ }
85
+ item iso13485Clause7_3_9 : StandardClause {
86
+ attribute :>> id = "STD-ISO-13485-7-3-9";
87
+ attribute :>> name = "ISO13485Clause7_3_9";
88
+ attribute :>> clauseNumber = "7.3.9";
89
+ attribute :>> title = "control of design and development changes";
90
+ attribute :>> normativeStrength = "shall";
91
+ }
92
+ item iso13485Clause7_3_10 : StandardClause {
93
+ attribute :>> id = "STD-ISO-13485-7-3-10";
94
+ attribute :>> name = "ISO13485Clause7_3_10";
95
+ attribute :>> clauseNumber = "7.3.10";
96
+ attribute :>> title = "design and development files";
97
+ attribute :>> normativeStrength = "shall";
98
+ }
99
+
100
+ connection iso13485Has4 : Composes connect parent ::> iso13485 to child ::> iso13485Clause4;
101
+ connection iso13485Has7 : Composes connect parent ::> iso13485 to child ::> iso13485Clause7;
102
+
103
+ connection iso13485Has4_2 : Composes connect parent ::> iso13485Clause4 to child ::> iso13485Clause4_2;
104
+ connection iso13485Has4_2_4 : Composes connect parent ::> iso13485Clause4_2 to child ::> iso13485Clause4_2_4;
105
+
106
+ connection iso13485Has7_3 : Composes connect parent ::> iso13485Clause7 to child ::> iso13485Clause7_3;
107
+ connection iso13485Has7_3_3 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_3;
108
+ connection iso13485Has7_3_4 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_4;
109
+ connection iso13485Has7_3_6 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_6;
110
+ connection iso13485Has7_3_7 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_7;
111
+ connection iso13485Has7_3_9 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_9;
112
+ connection iso13485Has7_3_10 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_10;
113
+ }
@@ -0,0 +1,94 @@
1
+ // ISO 14971:2019 — application of risk management to medical devices.
2
+ //
3
+ // The risk-management process every other pack feeds. `title` is a
4
+ // MEMO-AUTHORED scope phrase, never the standard's own normative wording.
5
+ package memo_artifacts_standards_iso_14971 {
6
+ private import ScalarValues::*;
7
+ private import memo_core_enumerations::*;
8
+ private import memo_core_relationships::*;
9
+ private import memo_artifacts_standards_traceability::*;
10
+
11
+ item iso14971 : RegulatoryStandard {
12
+ attribute :>> id = "STD-ISO-14971";
13
+ attribute :>> name = "ISO14971";
14
+ attribute :>> designation = "ISO 14971:2019";
15
+ attribute :>> edition = "2019";
16
+ attribute :>> issuer = "ISO";
17
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
18
+ }
19
+
20
+ item iso14971Clause4 : StandardClause {
21
+ attribute :>> id = "STD-ISO-14971-4";
22
+ attribute :>> name = "ISO14971Clause4";
23
+ attribute :>> clauseNumber = "4";
24
+ attribute :>> title = "general requirements for the risk management system";
25
+ attribute :>> normativeStrength = "shall";
26
+ }
27
+ item iso14971Clause4_4 : StandardClause {
28
+ attribute :>> id = "STD-ISO-14971-4-4";
29
+ attribute :>> name = "ISO14971Clause4_4";
30
+ attribute :>> clauseNumber = "4.4";
31
+ attribute :>> title = "risk management plan";
32
+ attribute :>> normativeStrength = "shall";
33
+ }
34
+ item iso14971Clause4_5 : StandardClause {
35
+ attribute :>> id = "STD-ISO-14971-4-5";
36
+ attribute :>> name = "ISO14971Clause4_5";
37
+ attribute :>> clauseNumber = "4.5";
38
+ attribute :>> title = "risk management file";
39
+ attribute :>> normativeStrength = "shall";
40
+ }
41
+ item iso14971Clause5 : StandardClause {
42
+ attribute :>> id = "STD-ISO-14971-5";
43
+ attribute :>> name = "ISO14971Clause5";
44
+ attribute :>> clauseNumber = "5";
45
+ attribute :>> title = "risk analysis";
46
+ attribute :>> normativeStrength = "shall";
47
+ }
48
+ item iso14971Clause6 : StandardClause {
49
+ attribute :>> id = "STD-ISO-14971-6";
50
+ attribute :>> name = "ISO14971Clause6";
51
+ attribute :>> clauseNumber = "6";
52
+ attribute :>> title = "risk evaluation";
53
+ attribute :>> normativeStrength = "shall";
54
+ }
55
+ item iso14971Clause7 : StandardClause {
56
+ attribute :>> id = "STD-ISO-14971-7";
57
+ attribute :>> name = "ISO14971Clause7";
58
+ attribute :>> clauseNumber = "7";
59
+ attribute :>> title = "risk control";
60
+ attribute :>> normativeStrength = "shall";
61
+ }
62
+ item iso14971Clause8 : StandardClause {
63
+ attribute :>> id = "STD-ISO-14971-8";
64
+ attribute :>> name = "ISO14971Clause8";
65
+ attribute :>> clauseNumber = "8";
66
+ attribute :>> title = "evaluation of overall residual risk";
67
+ attribute :>> normativeStrength = "shall";
68
+ }
69
+ item iso14971Clause9 : StandardClause {
70
+ attribute :>> id = "STD-ISO-14971-9";
71
+ attribute :>> name = "ISO14971Clause9";
72
+ attribute :>> clauseNumber = "9";
73
+ attribute :>> title = "risk management review";
74
+ attribute :>> normativeStrength = "shall";
75
+ }
76
+ item iso14971Clause10 : StandardClause {
77
+ attribute :>> id = "STD-ISO-14971-10";
78
+ attribute :>> name = "ISO14971Clause10";
79
+ attribute :>> clauseNumber = "10";
80
+ attribute :>> title = "production and post-production activities";
81
+ attribute :>> normativeStrength = "shall";
82
+ }
83
+
84
+ connection iso14971Has4 : Composes connect parent ::> iso14971 to child ::> iso14971Clause4;
85
+ connection iso14971Has5 : Composes connect parent ::> iso14971 to child ::> iso14971Clause5;
86
+ connection iso14971Has6 : Composes connect parent ::> iso14971 to child ::> iso14971Clause6;
87
+ connection iso14971Has7 : Composes connect parent ::> iso14971 to child ::> iso14971Clause7;
88
+ connection iso14971Has8 : Composes connect parent ::> iso14971 to child ::> iso14971Clause8;
89
+ connection iso14971Has9 : Composes connect parent ::> iso14971 to child ::> iso14971Clause9;
90
+ connection iso14971Has10 : Composes connect parent ::> iso14971 to child ::> iso14971Clause10;
91
+
92
+ connection iso14971Has4_4 : Composes connect parent ::> iso14971Clause4 to child ::> iso14971Clause4_4;
93
+ connection iso14971Has4_5 : Composes connect parent ::> iso14971Clause4 to child ::> iso14971Clause4_5;
94
+ }
@@ -0,0 +1,42 @@
1
+ // ISO/IEC/IEEE 42010:2022 — architecture description.
2
+ //
3
+ // One standard from a joint committee, not three: the spaced slash is what
4
+ // separates two designations, and there is none here.
5
+ //
6
+ // SCOPE PHRASES DELIBERATELY ABSENT — same reason as the IEC 60812 pack. The
7
+ // 2022 edition reorganised the clause structure of 42010:2011, and MEMO has no
8
+ // verified reading of the new numbering. A missing label is a gap a reviewer
9
+ // closes in one line; a guessed one is a citation nobody can check.
10
+ package memo_artifacts_standards_iso_iec_ieee_42010 {
11
+ private import ScalarValues::*;
12
+ private import memo_core_relationships::*;
13
+ private import memo_artifacts_standards_traceability::*;
14
+
15
+ item isoIecIeee42010 : RegulatoryStandard {
16
+ attribute :>> id = "STD-ISO-IEC-IEEE-42010";
17
+ attribute :>> name = "ISOIECIEEE42010";
18
+ attribute :>> designation = "ISO/IEC/IEEE 42010:2022";
19
+ attribute :>> edition = "2022";
20
+ attribute :>> issuer = "ISO/IEC/IEEE";
21
+ // No submission regime mandates this standard: it is a method /
22
+ // reference standard, cited by documents rather than required by a
23
+ // market. Empty is the authored value, not an omission — see
24
+ // appliesToRegime in memo_artifacts_standards_traceability.
25
+ }
26
+
27
+ item isoIecIeee42010Clause5 : StandardClause {
28
+ attribute :>> id = "STD-ISO-IEC-IEEE-42010-5";
29
+ attribute :>> name = "ISOIECIEEE42010Clause5";
30
+ attribute :>> clauseNumber = "5";
31
+ attribute :>> normativeStrength = "shall";
32
+ }
33
+ item isoIecIeee42010Clause6 : StandardClause {
34
+ attribute :>> id = "STD-ISO-IEC-IEEE-42010-6";
35
+ attribute :>> name = "ISOIECIEEE42010Clause6";
36
+ attribute :>> clauseNumber = "6";
37
+ attribute :>> normativeStrength = "shall";
38
+ }
39
+
40
+ connection isoIecIeee42010Has5 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause5;
41
+ connection isoIecIeee42010Has6 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause6;
42
+ }
@@ -0,0 +1,132 @@
1
+ // Clause-level traceability: the project-facing half of the regulatory axis.
2
+ //
3
+ // MEMO carries standards in two mechanisms, and this file is one of them:
4
+ //
5
+ // @StandardReference metadata (core/semantics) — provenance INSIDE the MEMO
6
+ // library: "this ontology type exists because ISO 14971 §5.4 says so".
7
+ // Library-internal, not project data.
8
+ // ConformsTo (here) — PROJECT traceability:
9
+ // "this requirement in this project satisfies IEC 62304 §5.2.2".
10
+ // Queryable, reportable, auditable.
11
+ //
12
+ // Do not add a third. A standard is data in the ontology, not a code path:
13
+ // adding ISO 13485 must be one new file of RegulatoryStandard/StandardClause
14
+ // instances and zero TypeScript changes.
15
+ //
16
+ // Nothing here is abstract. An abstract def cannot be instantiated, so a
17
+ // traceability matrix over abstract clause types is empty by construction —
18
+ // which is the failure mode this whole area exists to prevent.
19
+ //
20
+ // ─── The clause library and how a document cites it ──────────────────────
21
+ //
22
+ // The concrete instances live one file per standard beside this one
23
+ // (iec_62304.sysml, iec_60601_1.sysml, …). A DHF template cites them from its
24
+ // frontmatter, in one of two shapes:
25
+ //
26
+ // clauses: ["5.4"] relative — the clause number
27
+ // belongs to this document's
28
+ // own `standard:`
29
+ // clauses: ["ISO 14971:2019 §7"] qualified — the designation
30
+ // before the section sign, the
31
+ // clause number after it
32
+ //
33
+ // An entry containing "§" is qualified and nothing else is: that is the whole
34
+ // grammar. The designation must match a RegulatoryStandard's `designation`
35
+ // exactly, amendments included, and the clause number must match a
36
+ // StandardClause's `clauseNumber` exactly. Both are checked by
37
+ // standards-library.test.ts in memo-tools, which is what makes "adding a
38
+ // standard is one file" true rather than aspirational.
39
+ package memo_artifacts_standards_traceability {
40
+ private import Metaobjects::SemanticMetadata;
41
+ private import ScalarValues::*;
42
+ private import memo_core_common::*;
43
+ private import memo_core_enumerations::*;
44
+ private import memo_core_relationships::*;
45
+ private import memo_artifacts_core::*;
46
+
47
+ // =========================================================================
48
+ // Standards and clauses
49
+ // =========================================================================
50
+
51
+ item def RegulatoryStandard :> MemoArtifactItem {
52
+ doc /* A regulatory or consensus standard a project claims conformance
53
+ * to, identified by its full designation including edition and
54
+ * amendments (e.g. "IEC 62366-1:2015+AMD1:2020"). Dropping the
55
+ * amendment is a CE/MDR regression, so it is carried explicitly
56
+ * rather than folded into the designation by convention. */
57
+ attribute designation : String;
58
+ attribute edition : String[0..1];
59
+ attribute issuer : String[0..1];
60
+ attribute amendments : String[0..*];
61
+ // Which submission regimes this standard has standing in. Empty is a
62
+ // MEANINGFUL value, not an unset one: it says no regime mandates this
63
+ // standard, which is true of the method and reference standards MEMO
64
+ // carries (IEC 60812's FMEA method, ISO/IEC/IEEE 42010's architecture
65
+ // description). A regime-free standard never contributes to
66
+ // `required(project)` — its clauses are claimable but not required.
67
+ //
68
+ // Because empty means something, it cannot also mean "the pack author
69
+ // forgot". `memo standards check` prints regime-free standards in their
70
+ // own section rather than dropping them, and standards-library.test.ts
71
+ // names the exact set — the same way Phase 2 named the four document
72
+ // types that derive no standards. A forgotten regime is a red test.
73
+ attribute appliesToRegime : RegulatoryRegimeKind[0..*];
74
+ }
75
+
76
+ item def StandardClause :> MemoArtifactItem {
77
+ doc /* One normative clause of a RegulatoryStandard, at the depth at
78
+ * which the standard makes a distinct requirement a MEMO document
79
+ * actually claims. `title` is a MEMO-authored scope phrase — a
80
+ * representative synonym for what the clause governs ("§17" →
81
+ * "electromagnetic compatibility") — never the standard's own
82
+ * normative wording, which is copyrighted. The scope phrase is a
83
+ * label: queries traverse ConformsTo to the clause instance, they
84
+ * never match on its text.
85
+ *
86
+ * Clause containment uses the existing Composes relation
87
+ * (standard as parent, clause as child; clause as parent,
88
+ * sub-clause as child). There is no clause-specific composition
89
+ * type, because whole/part decomposition is already one relation
90
+ * in MEMO. */
91
+ attribute clauseNumber : String;
92
+ attribute title : String[0..1];
93
+ attribute normativeStrength : String[0..1];
94
+ }
95
+
96
+ // =========================================================================
97
+ // Relationships
98
+ // =========================================================================
99
+
100
+ connection def ConformsTo :> MemoRelationship {
101
+ doc /* Any model element claims conformance to a standard clause.
102
+ * This is the edge the standards traceability matrix and the
103
+ * clause coverage report are computed over. */
104
+ end conformingElement : MemoPart :>> source;
105
+ end clause : StandardClause :>> target;
106
+ }
107
+ abstract connection conformsToLinks : ConformsTo[*];
108
+ metadata def <conformsTo> ConformsToMetadata :> SemanticMetadata {
109
+ :> annotatedElement : SysML::ConnectionDefinition;
110
+ :> annotatedElement : SysML::ConnectionUsage;
111
+ :>> baseType = conformsToLinks meta SysML::Usage;
112
+ }
113
+
114
+ connection def TracesToDocument :> MemoRelationship {
115
+ doc /* Where the evidence for a clause claim is written down. The target
116
+ * is the existing controlled-artifact type — MEMO does not model a
117
+ * separate Document/DocumentSection family, because
118
+ * ControlledArtifact / ModelOwnedArtifact / MarkdownDocumentSource
119
+ * already carry version, owner and approval status. Section
120
+ * granularity rides on the link as a reference string rather than
121
+ * as a duplicate element type. */
122
+ attribute sectionReference : String[0..1];
123
+ end tracedElement : MemoPart :>> source;
124
+ end artifact : ControlledArtifact :>> target;
125
+ }
126
+ abstract connection tracesToDocumentLinks : TracesToDocument[*];
127
+ metadata def <tracesToDocument> TracesToDocumentMetadata :> SemanticMetadata {
128
+ :> annotatedElement : SysML::ConnectionDefinition;
129
+ :> annotatedElement : SysML::ConnectionUsage;
130
+ :>> baseType = tracesToDocumentLinks meta SysML::Usage;
131
+ }
132
+ }
@@ -33,7 +33,7 @@ empty: "No system requirements defined."
33
33
  ### 2.2 Design Inputs from User Needs
34
34
 
35
35
  ```memo-query
36
- kind: [DesignInput, Need]
36
+ kind: [Requirement, Need]
37
37
  display: table
38
38
  columns: name, layer, doc
39
39
  sort: name
@@ -23,8 +23,8 @@ Defines design outputs for **{{project.product}}** per 21 CFR 820.30(d). Design
23
23
  ### 2.1 Hardware Design Outputs
24
24
 
25
25
  ```memo-query
26
- kind: [Component, Subsystem, DesignOutput]
27
- where: layer == "physical"
26
+ kind: [HardwareComponent, HardwareAssembly, SoftwareComponent, SoftwareSystem]
27
+ where: layer == "implementation"
28
28
  display: table
29
29
  columns: name, kind, layer, doc
30
30
  sort: name
@@ -34,8 +34,8 @@ empty: "No hardware design outputs defined."
34
34
  ### 2.2 Software Design Outputs
35
35
 
36
36
  ```memo-query
37
- kind: [SoftwareItem, SoftwareUnit, DesignOutput]
38
- where: layer == "software"
37
+ kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
38
+ where: layer == "implementation"
39
39
  display: table
40
40
  columns: name, kind, layer, doc
41
41
  sort: name
@@ -45,7 +45,7 @@ empty: "No software design outputs defined."
45
45
  ### 2.3 All Design Outputs
46
46
 
47
47
  ```memo-query
48
- kind: DesignOutput
48
+ kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
49
49
  display: table
50
50
  columns: name, layer, doc
51
51
  sort: name
@@ -41,7 +41,7 @@ _[TODO: Track all open action items from design reviews]_
41
41
  Snapshot of the design state at the time of review, computed from the model:
42
42
 
43
43
  ```memo-query
44
- kind: [Requirement, Requirement, DesignInput, DesignOutput]
44
+ kind: [Requirement, HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
45
45
  display: count
46
46
  label: Total design elements at last review
47
47
  ```
@@ -29,7 +29,7 @@ _[TODO: Reference V&V Plan]_
29
29
  Describe clinical or bench validation activities demonstrating conformity with user needs under actual or simulated use conditions.
30
30
 
31
31
  ```memo-query
32
- kind: ValidationActivity
32
+ kind: ValidationCase
33
33
  display: table
34
34
  columns: name, layer, doc
35
35
  sort: name
@@ -43,7 +43,7 @@ empty: "No validation activities defined."
43
43
  Coverage of user needs by validation activities, computed live from the model:
44
44
 
45
45
  ```memo-query
46
- kind: [Need, Requirement]
46
+ kind: [Requirement, Need]
47
47
  display: table
48
48
  columns: name, layer, doc
49
49
  empty: "No user needs defined."
@@ -21,7 +21,7 @@ Documents design verification that design outputs meet design inputs for **{{pro
21
21
  The verification traceability below is generated live from the model — every requirement should be covered by at least one verification activity:
22
22
 
23
23
  ```memo-query
24
- kind: VerificationActivity
24
+ kind: VerificationCase
25
25
  display: table
26
26
  columns: name, layer, doc
27
27
  sort: name
@@ -35,7 +35,7 @@ empty: "No verification activities defined."
35
35
  Test executions and their outcomes are summarized below from the model:
36
36
 
37
37
  ```memo-query
38
- kind: TestCase
38
+ kind: VerificationCase
39
39
  display: table
40
40
  columns: name, layer, doc
41
41
  sort: name
@@ -79,7 +79,7 @@ Key characteristics of **{{project.product}}**, drawn from the model:
79
79
  Summary statistics of the system model at the time this document was generated:
80
80
 
81
81
  ```memo-query
82
- kind: [Requirement, Requirement]
82
+ kind: Requirement
83
83
  display: count
84
84
  label: Total requirements
85
85
  ```
@@ -91,7 +91,7 @@ label: Total hazards
91
91
  ```
92
92
 
93
93
  ```memo-query
94
- kind: [TestCase, VerificationActivity]
94
+ kind: VerificationCase
95
95
  display: count
96
96
  label: Total test cases
97
97
  ```
@@ -36,7 +36,7 @@ Checklist of items required before design transfer to production is complete:
36
36
  Production specifications derived from the design outputs:
37
37
 
38
38
  ```memo-query
39
- kind: DesignOutput
39
+ kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
40
40
  display: table
41
41
  columns: name, layer, doc
42
42
  sort: name
@@ -31,7 +31,7 @@ _[TODO: Describe all intended user groups with their roles, training levels, and
31
31
  User needs captured for **{{project.product}}** are listed below from the model. Each user need should trace forward to at least one design input:
32
32
 
33
33
  ```memo-query
34
- kind: [Need, Requirement]
34
+ kind: [Requirement, Need]
35
35
  display: table
36
36
  columns: name, layer, doc
37
37
  sort: name
@@ -33,7 +33,7 @@ This plan covers:
33
33
  ### 3.1 Requirements to Verify
34
34
 
35
35
  ```memo-query
36
- kind: [Requirement, Requirement]
36
+ kind: Requirement
37
37
  display: table
38
38
  columns: name, layer, doc
39
39
  sort: name
@@ -43,7 +43,7 @@ empty: "No requirements defined."
43
43
  ### 3.2 Verification Test Cases
44
44
 
45
45
  ```memo-query
46
- kind: [TestCase, VerificationActivity]
46
+ kind: VerificationCase
47
47
  display: table
48
48
  columns: name, kind, layer, doc
49
49
  sort: name
@@ -57,7 +57,7 @@ empty: "No verification test cases defined."
57
57
  Validation activities demonstrating that **{{project.product}}** meets user needs and intended uses:
58
58
 
59
59
  ```memo-query
60
- kind: ValidationActivity
60
+ kind: ValidationCase
61
61
  display: table
62
62
  columns: name, layer, doc
63
63
  sort: name
@@ -23,13 +23,13 @@ This V&V Report documents the results of all verification and validation activit
23
23
  Summary metrics computed live from the model:
24
24
 
25
25
  ```memo-query
26
- kind: TestCase
26
+ kind: VerificationCase
27
27
  display: count
28
28
  label: Total test cases
29
29
  ```
30
30
 
31
31
  ```memo-query
32
- kind: [VerificationActivity, ValidationActivity]
32
+ kind: [VerificationCase, ValidationCase]
33
33
  display: count
34
34
  label: V&V activities
35
35
  ```
@@ -41,7 +41,7 @@ label: V&V activities
41
41
  ### 3.1 Test Results by Requirement
42
42
 
43
43
  ```memo-query
44
- kind: [TestCase, VerificationActivity]
44
+ kind: VerificationCase
45
45
  display: table
46
46
  columns: name, kind, layer, doc
47
47
  sort: name
@@ -55,7 +55,7 @@ empty: "No verification activities defined."
55
55
  Results of the validation activities are summarized below:
56
56
 
57
57
  ```memo-query
58
- kind: ValidationActivity
58
+ kind: ValidationCase
59
59
  display: table
60
60
  columns: name, layer, doc
61
61
  sort: name