@memoarchitect/ontology 0.13.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/README.md +5 -3
  2. package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
  3. package/examples/connected-patient-monitor/memo.package.yaml +3 -1
  4. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
  5. package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
  6. package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
  8. package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
  9. package/examples/functional-logical-physical/memo.identity.yaml +28 -0
  10. package/examples/functional-logical-physical/memo.package.yaml +3 -1
  11. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
  12. package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
  13. package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
  14. package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
  15. package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
  16. package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
  17. package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
  18. package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
  19. package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
  20. package/examples/gpca-pump/analysis/Samples/README.md +15 -9
  21. package/examples/gpca-pump/analysis/memo_model.py +243 -0
  22. package/examples/gpca-pump/memo.identity.yaml +521 -26
  23. package/examples/gpca-pump/memo.package.yaml +3 -1
  24. package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
  25. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
  26. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -357
  27. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
  28. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
  29. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
  30. package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
  31. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
  32. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
  33. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
  34. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
  35. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
  36. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
  37. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
  38. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
  39. package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
  40. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
  41. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -90
  42. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
  43. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
  44. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
  45. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
  47. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
  48. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
  49. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
  50. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
  51. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
  52. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
  53. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
  54. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
  55. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
  56. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
  57. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
  58. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
  59. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
  60. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
  61. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
  62. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
  63. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
  64. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
  65. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
  66. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
  67. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
  68. package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
  69. package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
  70. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
  71. package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
  72. package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
  73. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
  74. package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
  75. package/examples/multidimensional-layers/memo.package.yaml +3 -1
  76. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
  77. package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
  78. package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
  79. package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
  80. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
  81. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
  82. package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
  83. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
  84. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
  85. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
  86. package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
  87. package/examples/reusable-instrument/memo.package.yaml +3 -1
  88. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
  89. package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
  90. package/examples/robot-cell-family/README.md +34 -0
  91. package/examples/robot-cell-family/memo.identity.yaml +142 -0
  92. package/examples/robot-cell-family/memo.package.yaml +7 -0
  93. package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
  94. package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
  95. package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
  96. package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
  97. package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
  98. package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
  99. package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
  100. package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
  101. package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
  102. package/examples/robot-platform/memo.package.yaml +3 -0
  103. package/examples/robot-platform/model/platform.sysml +15 -0
  104. package/examples/ros-mobile-robot/README.md +5 -4
  105. package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
  106. package/examples/ros-mobile-robot/memo.package.yaml +3 -1
  107. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
  108. package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
  109. package/examples/software-only-medical-device/memo.package.yaml +3 -1
  110. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
  111. package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
  112. package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
  113. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
  114. package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
  115. package/examples/surgical-robot/memo.package.yaml +3 -1
  116. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
  117. package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
  118. package/examples/sysml-diagram-samples/README.md +1 -0
  119. package/examples/sysml-diagram-samples/memo.identity.yaml +459 -0
  120. package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
  121. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
  122. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +5 -5
  123. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
  124. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
  125. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
  126. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
  127. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +25 -25
  128. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
  129. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
  130. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
  131. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
  132. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
  133. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
  134. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
  135. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
  136. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
  137. package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
  138. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
  139. package/examples/temperature-alarm/memo.identity.yaml +6 -0
  140. package/examples/temperature-alarm/memo.package.yaml +3 -1
  141. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
  142. package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
  143. package/examples/ui-screen-regions/memo.identity.yaml +33 -0
  144. package/examples/ui-screen-regions/memo.package.yaml +3 -1
  145. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
  146. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
  147. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
  148. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
  149. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
  150. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
  151. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
  152. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
  153. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
  154. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
  155. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
  156. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
  157. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  158. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  159. package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
  160. package/extensions/README.md +65 -16
  161. package/extensions/aadl/memo.package.yaml +1 -1
  162. package/extensions/aadl/src/aadl_extension.sysml +5 -2
  163. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
  164. package/extensions/clinical/memo.package.yaml +1 -1
  165. package/extensions/clinical/src/clinical_extension.sysml +2 -0
  166. package/extensions/cloud/memo.package.yaml +1 -1
  167. package/extensions/container/memo.package.yaml +1 -1
  168. package/extensions/messaging/memo.package.yaml +1 -1
  169. package/extensions/messaging/src/messaging_extension.sysml +2 -2
  170. package/extensions/ros/memo.package.yaml +1 -1
  171. package/extensions/ros/src/ros_extension.sysml +25 -24
  172. package/extensions/template/memo.package.yaml +1 -1
  173. package/extensions/template/model/extension.sysml +25 -0
  174. package/memo.manifest.yaml +1 -7
  175. package/methodologies/default/memo.package.yaml +1 -1
  176. package/methodologies/gpca/memo.package.yaml +1 -1
  177. package/ontology/memo.package.yaml +1 -1
  178. package/package.json +6 -4
  179. package/profile/memo.package.yaml +1 -1
  180. package/src/architecture/decisions/memo_decisions.sysml +9 -2
  181. package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
  182. package/src/architecture/functional/functions/memo_functions.sysml +45 -31
  183. package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
  184. package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
  185. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
  186. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
  187. package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
  188. package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
  189. package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
  190. package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
  191. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
  192. package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
  193. package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
  194. package/src/architecture/operational/structure/memo_operational.sysml +5 -2
  195. package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
  196. package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
  197. package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
  198. package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
  199. package/src/architecture/variability/memo_variability.sysml +87 -0
  200. package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
  201. package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
  202. package/src/artifacts/standards/cfr_21_820.sysml +12 -24
  203. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
  204. package/src/artifacts/standards/iec_60601_1.sysml +16 -32
  205. package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
  206. package/src/artifacts/standards/iec_60812.sysml +4 -8
  207. package/src/artifacts/standards/iec_62304.sysml +607 -47
  208. package/src/artifacts/standards/iec_62366_1.sysml +12 -24
  209. package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
  210. package/src/artifacts/standards/iso_13485.sysml +12 -24
  211. package/src/artifacts/standards/iso_14971.sysml +118 -20
  212. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
  213. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
  214. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
  215. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
  216. package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
  217. package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
  218. package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
  219. package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
  220. package/src/artifacts/templates/dhf/system/sad.md +1 -1
  221. package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
  222. package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
  223. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
  224. package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
  225. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
  226. package/src/assurance/safety_risk/memo_risk.sysml +39 -1
  227. package/src/core/common/memo_common.sysml +51 -68
  228. package/src/core/enumerations/memo_enumerations.sysml +93 -9
  229. package/src/core/relationships/memo_relationships.sysml +17 -11
  230. package/src/core/relationships/memo_workspace_membership.sysml +284 -0
  231. package/src/core/semantics/semantics.sysml +58 -0
  232. package/src/core/terminology/terminology.sysml +7 -0
  233. package/src/memo_namespaces.sysml +6 -0
  234. package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
  235. package/src/methodology/core/memo_core.sysml +85 -29
  236. package/src/methodology/profiles/memo_profiles.sysml +217 -61
  237. package/src/methodology/workflow/memo_workflow.sysml +28 -0
  238. package/src/rules/closure/closure_rules.sysml +250 -4
  239. package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
  240. package/src/rules/ontology/ontology_invariants.sysml +288 -48
  241. package/src/rules/quantitative/quantitative_rules.sysml +4 -0
  242. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
  243. package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
  244. package/src/viewpoints/context/context_viewpoint.sysml +2 -3
  245. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
  246. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
  247. package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
  248. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
  249. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  250. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
  251. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
  252. package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
  253. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
  254. package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
  255. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
  256. package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
  257. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
  258. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
  259. package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
  260. package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
  261. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
  262. package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
  263. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
  264. package/src/viewpoints/software/software_viewpoint.sysml +2 -3
  265. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
  266. package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
  267. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
  268. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
  269. package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
  270. package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
  271. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
  272. package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
  273. package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
  274. package/templates/default/memo.package.yaml +6 -1
  275. package/templates/default/model/catalog/architecture/system.sysml +7 -3
  276. package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
  277. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
  278. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
  279. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
  280. package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
  281. package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
  282. package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
  283. package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
  284. package/extensions/container/src/methodology/container_methodology.sysml +0 -19
  285. package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
  286. package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
  287. package/extensions/template/src/extension.sysml +0 -39
  288. package/templates/connected-device/memo.package.yaml +0 -13
  289. package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
  290. package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
  291. package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
  292. package/templates/connected-device/model/catalog/project.sysml +0 -30
  293. package/templates/connected-device/package.json +0 -8
  294. package/templates/connected-device/syside.toml +0 -13
  295. package/templates/infusion-pump/memo.package.yaml +0 -13
  296. package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
  297. package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
  298. package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
  299. package/templates/infusion-pump/model/catalog/project.sysml +0 -30
  300. package/templates/infusion-pump/package.json +0 -8
  301. package/templates/infusion-pump/syside.toml +0 -13
  302. package/templates/monitoring-device/memo.package.yaml +0 -13
  303. package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
  304. package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
  305. package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
  306. package/templates/monitoring-device/model/catalog/project.sysml +0 -30
  307. package/templates/monitoring-device/package.json +0 -8
  308. package/templates/monitoring-device/syside.toml +0 -13
  309. package/templates/samd/memo.package.yaml +0 -13
  310. package/templates/samd/model/catalog/architecture/system.sysml +0 -5
  311. package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
  312. package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
  313. package/templates/samd/model/catalog/project.sysml +0 -30
  314. package/templates/samd/package.json +0 -8
  315. package/templates/samd/syside.toml +0 -13
@@ -12,86 +12,74 @@ package memo_artifacts_standards_iec_62366_1 {
12
12
 
13
13
  private import memo_core_common::*;
14
14
  private import memo_core_common::MemoIdentity;
15
- item iec62366_1 : RegulatoryStandard {
15
+ part iec62366_1 : RegulatoryStandard {
16
16
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1"; }
17
- attribute :>> name = "IEC62366_1";
18
17
  attribute :>> designation = "IEC 62366-1:2015+AMD1:2020";
19
18
  attribute :>> edition = "2015";
20
19
  attribute :>> issuer = "IEC";
21
20
  attribute :>> amendments = "AMD1:2020";
22
21
  attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
23
- item iec62366_1Clause4 : StandardClause {
22
+ part iec62366_1Clause4 : StandardClause {
24
23
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-4"; }
25
- attribute :>> name = "IEC62366_1Clause4";
26
24
  attribute :>> clauseNumber = "4";
27
25
  attribute :>> title = "general requirements for the usability engineering process";
28
26
  attribute :>> normativeStrength = "shall";
29
27
  }
30
- item iec62366_1Clause5 : StandardClause {
28
+ part iec62366_1Clause5 : StandardClause {
31
29
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5"; }
32
- attribute :>> name = "IEC62366_1Clause5";
33
30
  attribute :>> clauseNumber = "5";
34
31
  attribute :>> title = "usability engineering process";
35
32
  attribute :>> normativeStrength = "shall";
36
- item iec62366_1Clause5_1 : StandardClause {
33
+ part iec62366_1Clause5_1 : StandardClause {
37
34
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-1"; }
38
- attribute :>> name = "IEC62366_1Clause5_1";
39
35
  attribute :>> clauseNumber = "5.1";
40
36
  attribute :>> title = "use specification";
41
37
  attribute :>> normativeStrength = "shall";
42
38
  }
43
- item iec62366_1Clause5_2 : StandardClause {
39
+ part iec62366_1Clause5_2 : StandardClause {
44
40
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-2"; }
45
- attribute :>> name = "IEC62366_1Clause5_2";
46
41
  attribute :>> clauseNumber = "5.2";
47
42
  attribute :>> title = "user interface characteristics related to safety";
48
43
  attribute :>> normativeStrength = "shall";
49
44
  }
50
- item iec62366_1Clause5_3 : StandardClause {
45
+ part iec62366_1Clause5_3 : StandardClause {
51
46
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-3"; }
52
- attribute :>> name = "IEC62366_1Clause5_3";
53
47
  attribute :>> clauseNumber = "5.3";
54
48
  attribute :>> title = "known and foreseeable use-related hazards";
55
49
  attribute :>> normativeStrength = "shall";
56
50
  }
57
- item iec62366_1Clause5_4 : StandardClause {
51
+ part iec62366_1Clause5_4 : StandardClause {
58
52
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-4"; }
59
- attribute :>> name = "IEC62366_1Clause5_4";
60
53
  attribute :>> clauseNumber = "5.4";
61
54
  attribute :>> title = "hazard-related use scenarios";
62
55
  attribute :>> normativeStrength = "shall";
63
56
  }
64
- item iec62366_1Clause5_5 : StandardClause {
57
+ part iec62366_1Clause5_5 : StandardClause {
65
58
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-5"; }
66
- attribute :>> name = "IEC62366_1Clause5_5";
67
59
  attribute :>> clauseNumber = "5.5";
68
60
  attribute :>> title = "selection of use scenarios for summative evaluation";
69
61
  attribute :>> normativeStrength = "shall";
70
62
  }
71
- item iec62366_1Clause5_6 : StandardClause {
63
+ part iec62366_1Clause5_6 : StandardClause {
72
64
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-6"; }
73
- attribute :>> name = "IEC62366_1Clause5_6";
74
65
  attribute :>> clauseNumber = "5.6";
75
66
  attribute :>> title = "user interface specification";
76
67
  attribute :>> normativeStrength = "shall";
77
68
  }
78
- item iec62366_1Clause5_7 : StandardClause {
69
+ part iec62366_1Clause5_7 : StandardClause {
79
70
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-7"; }
80
- attribute :>> name = "IEC62366_1Clause5_7";
81
71
  attribute :>> clauseNumber = "5.7";
82
72
  attribute :>> title = "user interface evaluation plan";
83
73
  attribute :>> normativeStrength = "shall";
84
74
  }
85
- item iec62366_1Clause5_8 : StandardClause {
75
+ part iec62366_1Clause5_8 : StandardClause {
86
76
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-8"; }
87
- attribute :>> name = "IEC62366_1Clause5_8";
88
77
  attribute :>> clauseNumber = "5.8";
89
78
  attribute :>> title = "user interface design and formative evaluation";
90
79
  attribute :>> normativeStrength = "shall";
91
80
  }
92
- item iec62366_1Clause5_9 : StandardClause {
81
+ part iec62366_1Clause5_9 : StandardClause {
93
82
  @MemoIdentity { :>> providedId = "STD-IEC-62366-1-5-9"; }
94
- attribute :>> name = "IEC62366_1Clause5_9";
95
83
  attribute :>> clauseNumber = "5.9";
96
84
  attribute :>> title = "summative evaluation of the user interface";
97
85
  attribute :>> normativeStrength = "shall";
@@ -10,57 +10,49 @@ package memo_artifacts_standards_iec_81001_5_1 {
10
10
 
11
11
  private import memo_core_common::*;
12
12
  private import memo_core_common::MemoIdentity;
13
- item iec81001_5_1 : RegulatoryStandard {
13
+ part iec81001_5_1 : RegulatoryStandard {
14
14
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1"; }
15
- attribute :>> name = "IEC81001_5_1";
16
15
  attribute :>> designation = "IEC 81001-5-1:2021";
17
16
  attribute :>> edition = "2021";
18
17
  attribute :>> issuer = "IEC";
19
18
  attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
20
- item iec81001_5_1Clause4 : StandardClause {
19
+ part iec81001_5_1Clause4 : StandardClause {
21
20
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1-4"; }
22
- attribute :>> name = "IEC81001_5_1Clause4";
23
21
  attribute :>> clauseNumber = "4";
24
22
  attribute :>> title = "general requirements";
25
23
  attribute :>> normativeStrength = "shall";
26
24
  }
27
- item iec81001_5_1Clause5 : StandardClause {
25
+ part iec81001_5_1Clause5 : StandardClause {
28
26
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1-5"; }
29
- attribute :>> name = "IEC81001_5_1Clause5";
30
27
  attribute :>> clauseNumber = "5";
31
28
  attribute :>> title = "software development process";
32
29
  attribute :>> normativeStrength = "shall";
33
- item iec81001_5_1Clause5_1 : StandardClause {
30
+ part iec81001_5_1Clause5_1 : StandardClause {
34
31
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1-5-1"; }
35
- attribute :>> name = "IEC81001_5_1Clause5_1";
36
32
  attribute :>> clauseNumber = "5.1";
37
33
  attribute :>> title = "software development planning";
38
34
  attribute :>> normativeStrength = "shall";
39
35
  }
40
- item iec81001_5_1Clause5_2 : StandardClause {
36
+ part iec81001_5_1Clause5_2 : StandardClause {
41
37
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1-5-2"; }
42
- attribute :>> name = "IEC81001_5_1Clause5_2";
43
38
  attribute :>> clauseNumber = "5.2";
44
39
  attribute :>> title = "software requirements analysis";
45
40
  attribute :>> normativeStrength = "shall";
46
41
  }
47
- item iec81001_5_1Clause5_3 : StandardClause {
42
+ part iec81001_5_1Clause5_3 : StandardClause {
48
43
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1-5-3"; }
49
- attribute :>> name = "IEC81001_5_1Clause5_3";
50
44
  attribute :>> clauseNumber = "5.3";
51
45
  attribute :>> title = "software architectural design";
52
46
  attribute :>> normativeStrength = "shall";
53
47
  }
54
- item iec81001_5_1Clause5_4 : StandardClause {
48
+ part iec81001_5_1Clause5_4 : StandardClause {
55
49
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1-5-4"; }
56
- attribute :>> name = "IEC81001_5_1Clause5_4";
57
50
  attribute :>> clauseNumber = "5.4";
58
51
  attribute :>> title = "software design";
59
52
  attribute :>> normativeStrength = "shall";
60
53
  }
61
- item iec81001_5_1Clause5_8 : StandardClause {
54
+ part iec81001_5_1Clause5_8 : StandardClause {
62
55
  @MemoIdentity { :>> providedId = "STD-IEC-81001-5-1-5-8"; }
63
- attribute :>> name = "IEC81001_5_1Clause5_8";
64
56
  attribute :>> clauseNumber = "5.8";
65
57
  attribute :>> title = "software release";
66
58
  attribute :>> normativeStrength = "shall";
@@ -12,84 +12,72 @@ package memo_artifacts_standards_iso_13485 {
12
12
 
13
13
  private import memo_core_common::*;
14
14
  private import memo_core_common::MemoIdentity;
15
- item iso13485 : RegulatoryStandard {
15
+ part iso13485 : RegulatoryStandard {
16
16
  @MemoIdentity { :>> providedId = "STD-ISO-13485"; }
17
- attribute :>> name = "ISO13485";
18
17
  attribute :>> designation = "ISO 13485:2016";
19
18
  attribute :>> edition = "2016";
20
19
  attribute :>> issuer = "ISO";
21
20
  attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA);
22
- item iso13485Clause4 : StandardClause {
21
+ part iso13485Clause4 : StandardClause {
23
22
  @MemoIdentity { :>> providedId = "STD-ISO-13485-4"; }
24
- attribute :>> name = "ISO13485Clause4";
25
23
  attribute :>> clauseNumber = "4";
26
24
  attribute :>> title = "quality management system";
27
25
  attribute :>> normativeStrength = "shall";
28
- item iso13485Clause4_2 : StandardClause {
26
+ part iso13485Clause4_2 : StandardClause {
29
27
  @MemoIdentity { :>> providedId = "STD-ISO-13485-4-2"; }
30
- attribute :>> name = "ISO13485Clause4_2";
31
28
  attribute :>> clauseNumber = "4.2";
32
29
  attribute :>> title = "quality management system documentation";
33
30
  attribute :>> normativeStrength = "shall";
34
- item iso13485Clause4_2_4 : StandardClause {
31
+ part iso13485Clause4_2_4 : StandardClause {
35
32
  @MemoIdentity { :>> providedId = "STD-ISO-13485-4-2-4"; }
36
- attribute :>> name = "ISO13485Clause4_2_4";
37
33
  attribute :>> clauseNumber = "4.2.4";
38
34
  attribute :>> title = "control of documents";
39
35
  attribute :>> normativeStrength = "shall";
40
36
  }
41
37
  }
42
38
  }
43
- item iso13485Clause7 : StandardClause {
39
+ part iso13485Clause7 : StandardClause {
44
40
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7"; }
45
- attribute :>> name = "ISO13485Clause7";
46
41
  attribute :>> clauseNumber = "7";
47
42
  attribute :>> title = "product realization";
48
43
  attribute :>> normativeStrength = "shall";
49
- item iso13485Clause7_3 : StandardClause {
44
+ part iso13485Clause7_3 : StandardClause {
50
45
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3"; }
51
- attribute :>> name = "ISO13485Clause7_3";
52
46
  attribute :>> clauseNumber = "7.3";
53
47
  attribute :>> title = "design and development";
54
48
  attribute :>> normativeStrength = "shall";
55
- item iso13485Clause7_3_3 : StandardClause {
49
+ part iso13485Clause7_3_3 : StandardClause {
56
50
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-3"; }
57
- attribute :>> name = "ISO13485Clause7_3_3";
58
51
  attribute :>> clauseNumber = "7.3.3";
59
52
  attribute :>> title = "design and development inputs";
60
53
  attribute :>> normativeStrength = "shall";
61
54
  }
62
- item iso13485Clause7_3_4 : StandardClause {
55
+ part iso13485Clause7_3_4 : StandardClause {
63
56
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-4"; }
64
- attribute :>> name = "ISO13485Clause7_3_4";
65
57
  attribute :>> clauseNumber = "7.3.4";
66
58
  attribute :>> title = "design and development outputs";
67
59
  attribute :>> normativeStrength = "shall";
68
60
  }
69
- item iso13485Clause7_3_6 : StandardClause {
61
+ part iso13485Clause7_3_6 : StandardClause {
70
62
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-6"; }
71
- attribute :>> name = "ISO13485Clause7_3_6";
72
63
  attribute :>> clauseNumber = "7.3.6";
73
64
  attribute :>> title = "design and development verification";
74
65
  attribute :>> normativeStrength = "shall";
75
66
  }
76
- item iso13485Clause7_3_7 : StandardClause {
67
+ part iso13485Clause7_3_7 : StandardClause {
77
68
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-7"; }
78
- attribute :>> name = "ISO13485Clause7_3_7";
79
69
  attribute :>> clauseNumber = "7.3.7";
80
70
  attribute :>> title = "design and development validation";
81
71
  attribute :>> normativeStrength = "shall";
82
72
  }
83
- item iso13485Clause7_3_9 : StandardClause {
73
+ part iso13485Clause7_3_9 : StandardClause {
84
74
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-9"; }
85
- attribute :>> name = "ISO13485Clause7_3_9";
86
75
  attribute :>> clauseNumber = "7.3.9";
87
76
  attribute :>> title = "control of design and development changes";
88
77
  attribute :>> normativeStrength = "shall";
89
78
  }
90
- item iso13485Clause7_3_10 : StandardClause {
79
+ part iso13485Clause7_3_10 : StandardClause {
91
80
  @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-10"; }
92
- attribute :>> name = "ISO13485Clause7_3_10";
93
81
  attribute :>> clauseNumber = "7.3.10";
94
82
  attribute :>> title = "design and development files";
95
83
  attribute :>> normativeStrength = "shall";
@@ -10,75 +10,173 @@ package memo_artifacts_standards_iso_14971 {
10
10
 
11
11
  private import memo_core_common::*;
12
12
  private import memo_core_common::MemoIdentity;
13
- item iso14971 : RegulatoryStandard {
13
+ part iso14971 : RegulatoryStandard {
14
14
  @MemoIdentity { :>> providedId = "STD-ISO-14971"; }
15
- attribute :>> name = "ISO14971";
16
15
  attribute :>> designation = "ISO 14971:2019";
17
16
  attribute :>> edition = "2019";
18
17
  attribute :>> issuer = "ISO";
19
18
  attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
20
- item iso14971Clause4 : StandardClause {
19
+ part iso14971Clause4 : StandardClause {
21
20
  @MemoIdentity { :>> providedId = "STD-ISO-14971-4"; }
22
- attribute :>> name = "ISO14971Clause4";
23
21
  attribute :>> clauseNumber = "4";
24
22
  attribute :>> title = "general requirements for the risk management system";
25
23
  attribute :>> normativeStrength = "shall";
26
- item iso14971Clause4_4 : StandardClause {
24
+ part iso14971Clause4_1 : StandardClause {
25
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-4-1"; }
26
+ attribute :>> clauseNumber = "4.1";
27
+ attribute :>> title = "risk management process";
28
+ attribute :>> normativeStrength = "shall";
29
+ }
30
+ part iso14971Clause4_2 : StandardClause {
31
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-4-2"; }
32
+ attribute :>> clauseNumber = "4.2";
33
+ attribute :>> title = "management responsibilities";
34
+ attribute :>> normativeStrength = "shall";
35
+ }
36
+ part iso14971Clause4_3 : StandardClause {
37
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-4-3"; }
38
+ attribute :>> clauseNumber = "4.3";
39
+ attribute :>> title = "competence of personnel";
40
+ attribute :>> normativeStrength = "shall";
41
+ }
42
+ part iso14971Clause4_4 : StandardClause {
27
43
  @MemoIdentity { :>> providedId = "STD-ISO-14971-4-4"; }
28
- attribute :>> name = "ISO14971Clause4_4";
29
44
  attribute :>> clauseNumber = "4.4";
30
45
  attribute :>> title = "risk management plan";
31
46
  attribute :>> normativeStrength = "shall";
32
47
  }
33
- item iso14971Clause4_5 : StandardClause {
48
+ part iso14971Clause4_5 : StandardClause {
34
49
  @MemoIdentity { :>> providedId = "STD-ISO-14971-4-5"; }
35
- attribute :>> name = "ISO14971Clause4_5";
36
50
  attribute :>> clauseNumber = "4.5";
37
51
  attribute :>> title = "risk management file";
38
52
  attribute :>> normativeStrength = "shall";
39
53
  }
40
54
  }
41
- item iso14971Clause5 : StandardClause {
55
+ part iso14971Clause5 : StandardClause {
42
56
  @MemoIdentity { :>> providedId = "STD-ISO-14971-5"; }
43
- attribute :>> name = "ISO14971Clause5";
44
57
  attribute :>> clauseNumber = "5";
45
58
  attribute :>> title = "risk analysis";
46
59
  attribute :>> normativeStrength = "shall";
60
+ part iso14971Clause5_1 : StandardClause {
61
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-5-1"; }
62
+ attribute :>> clauseNumber = "5.1";
63
+ attribute :>> title = "risk analysis process";
64
+ attribute :>> normativeStrength = "shall";
65
+ }
66
+ part iso14971Clause5_2 : StandardClause {
67
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-5-2"; }
68
+ attribute :>> clauseNumber = "5.2";
69
+ attribute :>> title = "intended use and reasonably foreseeable misuse";
70
+ attribute :>> normativeStrength = "shall";
71
+ }
72
+ part iso14971Clause5_3 : StandardClause {
73
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-5-3"; }
74
+ attribute :>> clauseNumber = "5.3";
75
+ attribute :>> title = "safety characteristics";
76
+ attribute :>> normativeStrength = "shall";
77
+ }
78
+ part iso14971Clause5_4 : StandardClause {
79
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-5-4"; }
80
+ attribute :>> clauseNumber = "5.4";
81
+ attribute :>> title = "hazards and hazardous situations";
82
+ attribute :>> normativeStrength = "shall";
83
+ }
84
+ part iso14971Clause5_5 : StandardClause {
85
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-5-5"; }
86
+ attribute :>> clauseNumber = "5.5";
87
+ attribute :>> title = "risk estimation";
88
+ attribute :>> normativeStrength = "shall";
89
+ }
47
90
  }
48
- item iso14971Clause6 : StandardClause {
91
+ part iso14971Clause6 : StandardClause {
49
92
  @MemoIdentity { :>> providedId = "STD-ISO-14971-6"; }
50
- attribute :>> name = "ISO14971Clause6";
51
93
  attribute :>> clauseNumber = "6";
52
94
  attribute :>> title = "risk evaluation";
53
95
  attribute :>> normativeStrength = "shall";
54
96
  }
55
- item iso14971Clause7 : StandardClause {
97
+ part iso14971Clause7 : StandardClause {
56
98
  @MemoIdentity { :>> providedId = "STD-ISO-14971-7"; }
57
- attribute :>> name = "ISO14971Clause7";
58
99
  attribute :>> clauseNumber = "7";
59
100
  attribute :>> title = "risk control";
60
101
  attribute :>> normativeStrength = "shall";
102
+ part iso14971Clause7_1 : StandardClause {
103
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-7-1"; }
104
+ attribute :>> clauseNumber = "7.1";
105
+ attribute :>> title = "risk control option analysis";
106
+ attribute :>> normativeStrength = "shall";
107
+ }
108
+ part iso14971Clause7_2 : StandardClause {
109
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-7-2"; }
110
+ attribute :>> clauseNumber = "7.2";
111
+ attribute :>> title = "implementation of risk control measures and verification of their effectiveness";
112
+ attribute :>> normativeStrength = "shall";
113
+ }
114
+ part iso14971Clause7_3 : StandardClause {
115
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-7-3"; }
116
+ attribute :>> clauseNumber = "7.3";
117
+ attribute :>> title = "residual risk evaluation";
118
+ attribute :>> normativeStrength = "shall";
119
+ }
120
+ part iso14971Clause7_4 : StandardClause {
121
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-7-4"; }
122
+ attribute :>> clauseNumber = "7.4";
123
+ attribute :>> title = "benefit-risk analysis";
124
+ attribute :>> normativeStrength = "shall";
125
+ }
126
+ part iso14971Clause7_5 : StandardClause {
127
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-7-5"; }
128
+ attribute :>> clauseNumber = "7.5";
129
+ attribute :>> title = "risks arising from risk control measures";
130
+ attribute :>> normativeStrength = "shall";
131
+ }
132
+ part iso14971Clause7_6 : StandardClause {
133
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-7-6"; }
134
+ attribute :>> clauseNumber = "7.6";
135
+ attribute :>> title = "completeness of risk control";
136
+ attribute :>> normativeStrength = "shall";
137
+ }
61
138
  }
62
- item iso14971Clause8 : StandardClause {
139
+ part iso14971Clause8 : StandardClause {
63
140
  @MemoIdentity { :>> providedId = "STD-ISO-14971-8"; }
64
- attribute :>> name = "ISO14971Clause8";
65
141
  attribute :>> clauseNumber = "8";
66
142
  attribute :>> title = "evaluation of overall residual risk";
67
143
  attribute :>> normativeStrength = "shall";
68
144
  }
69
- item iso14971Clause9 : StandardClause {
145
+ part iso14971Clause9 : StandardClause {
70
146
  @MemoIdentity { :>> providedId = "STD-ISO-14971-9"; }
71
- attribute :>> name = "ISO14971Clause9";
72
147
  attribute :>> clauseNumber = "9";
73
148
  attribute :>> title = "risk management review";
74
149
  attribute :>> normativeStrength = "shall";
75
150
  }
76
- item iso14971Clause10 : StandardClause {
151
+ part iso14971Clause10 : StandardClause {
77
152
  @MemoIdentity { :>> providedId = "STD-ISO-14971-10"; }
78
- attribute :>> name = "ISO14971Clause10";
79
153
  attribute :>> clauseNumber = "10";
80
154
  attribute :>> title = "production and post-production activities";
81
155
  attribute :>> normativeStrength = "shall";
156
+ part iso14971Clause10_1 : StandardClause {
157
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-10-1"; }
158
+ attribute :>> clauseNumber = "10.1";
159
+ attribute :>> title = "production and post-production activities in general";
160
+ attribute :>> normativeStrength = "shall";
161
+ }
162
+ part iso14971Clause10_2 : StandardClause {
163
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-10-2"; }
164
+ attribute :>> clauseNumber = "10.2";
165
+ attribute :>> title = "information collection";
166
+ attribute :>> normativeStrength = "shall";
167
+ }
168
+ part iso14971Clause10_3 : StandardClause {
169
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-10-3"; }
170
+ attribute :>> clauseNumber = "10.3";
171
+ attribute :>> title = "information review";
172
+ attribute :>> normativeStrength = "shall";
173
+ }
174
+ part iso14971Clause10_4 : StandardClause {
175
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-10-4"; }
176
+ attribute :>> clauseNumber = "10.4";
177
+ attribute :>> title = "actions";
178
+ attribute :>> normativeStrength = "shall";
179
+ }
82
180
  }
83
181
  }
84
182
 
@@ -14,9 +14,8 @@ package memo_artifacts_standards_iso_iec_ieee_42010 {
14
14
 
15
15
  private import memo_core_common::*;
16
16
  private import memo_core_common::MemoIdentity;
17
- item isoIecIeee42010 : RegulatoryStandard {
17
+ part isoIecIeee42010 : RegulatoryStandard {
18
18
  @MemoIdentity { :>> providedId = "STD-ISO-IEC-IEEE-42010"; }
19
- attribute :>> name = "ISOIECIEEE42010";
20
19
  attribute :>> designation = "ISO/IEC/IEEE 42010:2022";
21
20
  attribute :>> edition = "2022";
22
21
  attribute :>> issuer = "ISO/IEC/IEEE";
@@ -24,15 +23,13 @@ package memo_artifacts_standards_iso_iec_ieee_42010 {
24
23
  // reference standard, cited by documents rather than required by a
25
24
  // market. Empty is the authored value, not an omission — see
26
25
  // appliesToRegime in memo_artifacts_standards_traceability.
27
- item isoIecIeee42010Clause5 : StandardClause {
26
+ part isoIecIeee42010Clause5 : StandardClause {
28
27
  @MemoIdentity { :>> providedId = "STD-ISO-IEC-IEEE-42010-5"; }
29
- attribute :>> name = "ISOIECIEEE42010Clause5";
30
28
  attribute :>> clauseNumber = "5";
31
29
  attribute :>> normativeStrength = "shall";
32
30
  }
33
- item isoIecIeee42010Clause6 : StandardClause {
31
+ part isoIecIeee42010Clause6 : StandardClause {
34
32
  @MemoIdentity { :>> providedId = "STD-ISO-IEC-IEEE-42010-6"; }
35
- attribute :>> name = "ISOIECIEEE42010Clause6";
36
33
  attribute :>> clauseNumber = "6";
37
34
  attribute :>> normativeStrength = "shall";
38
35
  }
@@ -48,7 +48,7 @@ package memo_artifacts_standards_traceability {
48
48
  // Standards and clauses
49
49
  // =========================================================================
50
50
 
51
- item def RegulatoryStandard :> MemoArtifactItem {
51
+ part def RegulatoryStandard :> MemoArtifact {
52
52
  doc /* A regulatory or consensus standard a project claims conformance
53
53
  * to, identified by its full designation including edition and
54
54
  * amendments (e.g. "IEC 62366-1:2015+AMD1:2020"). Dropping the
@@ -73,7 +73,7 @@ package memo_artifacts_standards_traceability {
73
73
  attribute appliesToRegime : RegulatoryRegimeKind[0..*];
74
74
  }
75
75
 
76
- item def StandardClause :> MemoArtifactItem {
76
+ part def StandardClause :> MemoArtifact {
77
77
  doc /* One normative clause of a RegulatoryStandard, at the depth at
78
78
  * which the standard makes a distinct requirement a MEMO document
79
79
  * actually claims. `title` is a MEMO-authored scope phrase — a
@@ -101,7 +101,10 @@ package memo_artifacts_standards_traceability {
101
101
  doc /* Any model element claims conformance to a standard clause.
102
102
  * This is the edge the standards traceability matrix and the
103
103
  * clause coverage report are computed over. */
104
- end conformingElement : MemoPart :>> source;
104
+ // Untyped, as the doc above says. A requirement conforming to a
105
+ // clause is the commonest case and is not a part, so `MemoPart` here
106
+ // rejected most of what the matrix exists to show.
107
+ end conformingElement :>> source;
105
108
  end clause : StandardClause :>> target;
106
109
  }
107
110
  abstract connection conformsToLinks : ConformsTo[*];
@@ -120,7 +123,7 @@ package memo_artifacts_standards_traceability {
120
123
  * granularity rides on the link as a reference string rather than
121
124
  * as a duplicate element type. */
122
125
  attribute sectionReference : String[0..1];
123
- end tracedElement : MemoPart :>> source;
126
+ end tracedElement : MemoArtifact :>> source;
124
127
  end artifact : ControlledArtifact :>> target;
125
128
  }
126
129
  abstract connection tracesToDocumentLinks : TracesToDocument[*];
@@ -129,4 +132,11 @@ package memo_artifacts_standards_traceability {
129
132
  :> annotatedElement : SysML::ConnectionUsage;
130
133
  :>> baseType = tracesToDocumentLinks meta SysML::Usage;
131
134
  }
135
+
136
+ // A rule's trace to the clause it enforces: `#EnforcesClause dependency from
137
+ // <Rule> to <clause>, <clause>;`. A rule may trace to several clauses, from
138
+ // several standards, or to none (a rule MEMO or a user holds for its own
139
+ // reasons). A SysML Dependency, so it needs no MEMO grammar and any
140
+ // SysML v2 tool reads it as client and supplier.
141
+ metadata def EnforcesClause;
132
142
  }
@@ -30,8 +30,7 @@ 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: SoftwareModule
34
- where: moduleKind == "SoftwareModuleKind::soup"
33
+ kind: [SOUPSoftwareModule, OTSSoftwareModule]
35
34
  display: table
36
35
  columns: name, doc
37
36
  sort: name
@@ -37,8 +37,7 @@ 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: SoftwareModule
41
- where: moduleKind == "SoftwareModuleKind::soup"
40
+ kind: [SOUPSoftwareModule, OTSSoftwareModule]
42
41
  display: table
43
42
  columns: name, doc
44
43
  sort: name
@@ -83,8 +83,7 @@ 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: SoftwareModule
87
- where: moduleKind == "SoftwareModuleKind::soup"
86
+ kind: [SOUPSoftwareModule, OTSSoftwareModule]
88
87
  display: table
89
88
  columns: name, doc, layer
90
89
  sort: name
@@ -37,8 +37,7 @@ 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: SoftwareModule
41
- where: moduleKind == "SoftwareModuleKind::soup"
40
+ kind: [SOUPSoftwareModule, OTSSoftwareModule]
42
41
  display: table
43
42
  columns: name, doc, layer
44
43
  sort: name
@@ -57,8 +57,7 @@ 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: SoftwareModule
61
- where: moduleKind == "SoftwareModuleKind::soup"
60
+ kind: [SOUPSoftwareModule, OTSSoftwareModule]
62
61
  display: table
63
62
  columns: name, doc, layer
64
63
  sort: name
@@ -23,12 +23,11 @@ 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: SoftwareModule
27
- where: moduleKind == "SoftwareModuleKind::soup"
26
+ kind: [SOUPSoftwareModule, OTSSoftwareModule]
28
27
  display: table
29
28
  columns: name, layer, doc
30
29
  sort: name
31
- empty: "No SOUP components defined. Add SOUPComponent elements to the model."
30
+ empty: "No SOUP components defined. Add SOUPSoftwareModule or OTSSoftwareModule elements to the model."
32
31
  ```
33
32
 
34
33
  ---
@@ -38,8 +37,7 @@ empty: "No SOUP components defined. Add SOUPComponent elements to the model."
38
37
  For each SOUP component, the potential impact on device safety must be evaluated.
39
38
 
40
39
  ```memo-query
41
- kind: SoftwareModule
42
- where: moduleKind == "SoftwareModuleKind::soup"
40
+ kind: [SOUPSoftwareModule, OTSSoftwareModule]
43
41
  display: table
44
42
  columns: name, doc
45
43
  sort: name
@@ -123,7 +123,7 @@ _[TODO: Describe how safety-critical items are segregated from non-safety-critic
123
123
 
124
124
  ## 5. SOUP Components
125
125
 
126
- Software of Unknown Provenance used by **{{project.product}}**, derived by traversing `dependsOnSoup` from the software items. MEMO has no `SOUPComponent` kind: SOUP is a *relationship* a project's own software item has to a third-party item, which is why it is traversed rather than typed.
126
+ Software of Unknown Provenance used by **{{project.product}}**, derived by traversing `dependsOnSoup` from the software items. A SOUP item is typed `SOUPSoftwareModule` (an `OTSSoftwareModule` is one); this section lists the ones a project software item depends on.
127
127
 
128
128
  ```memo-query
129
129
  kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]