@memoarchitect/ontology 0.8.22 → 0.10.9

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 (240) hide show
  1. package/README.md +1 -1
  2. package/examples/connected-patient-monitor/memo.package.yaml +3 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
  4. package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
  5. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  6. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +11 -9
  8. package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
  9. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  10. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  11. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +9 -7
  12. package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
  13. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/memo.identity.yaml +2179 -0
  15. package/examples/gpca-pump/memo.package.yaml +3 -0
  16. package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
  17. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
  18. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
  21. package/examples/gpca-pump/model/catalog/gpca_context.sysml +27 -23
  22. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +15 -15
  23. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
  24. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
  25. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +146 -180
  26. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
  27. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
  28. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
  29. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +21 -33
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -11
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
  33. package/examples/gpca-pump/model/catalog/project.sysml +3 -1
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +7 -7
  35. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +7 -7
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +6 -7
  37. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +7 -8
  38. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +6 -6
  39. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +6 -6
  40. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +6 -6
  41. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +8 -9
  42. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +6 -6
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +6 -6
  44. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +6 -6
  45. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +6 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +7 -7
  47. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +6 -6
  48. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +6 -6
  49. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +8 -9
  50. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +6 -6
  51. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -7
  52. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +6 -7
  53. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +6 -6
  54. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +6 -6
  55. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +6 -7
  56. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +6 -6
  57. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +8 -9
  58. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +6 -7
  59. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +6 -6
  60. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  61. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +10 -8
  62. package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
  63. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  64. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  65. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +7 -5
  66. package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
  67. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  68. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  69. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
  70. package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
  71. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  72. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  73. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
  74. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
  75. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
  76. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
  77. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
  78. package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
  79. package/examples/reusable-instrument/memo.package.yaml +3 -0
  80. package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
  81. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +23 -31
  82. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  83. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  84. package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
  85. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
  86. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
  87. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  88. package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
  89. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -9
  90. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  91. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  92. package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
  93. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -69
  94. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  95. package/examples/surgical-robot/memo.package.yaml +3 -0
  96. package/examples/surgical-robot/model/catalog/project.sysml +3 -1
  97. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
  98. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  99. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  100. package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
  101. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -11
  102. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -7
  103. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +4 -3
  104. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +3 -3
  105. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +17 -16
  106. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +9 -8
  107. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +4 -3
  108. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +3 -3
  109. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +4 -3
  110. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -9
  111. package/examples/temperature-alarm/memo.identity.yaml +64 -0
  112. package/examples/temperature-alarm/memo.package.yaml +3 -0
  113. package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
  114. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +30 -29
  115. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  116. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  117. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
  118. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
  119. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
  120. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
  121. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
  122. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
  123. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
  124. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
  125. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
  126. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
  127. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
  128. package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
  129. package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
  130. package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
  131. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +6 -5
  132. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +6 -5
  133. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +6 -5
  134. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +4 -3
  135. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +4 -3
  136. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +4 -3
  137. package/extensions/aadl/memo.package.yaml +1 -1
  138. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
  139. package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
  140. package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
  141. package/extensions/cloud/memo.package.yaml +1 -1
  142. package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
  143. package/extensions/container/memo.package.yaml +1 -1
  144. package/extensions/container/src/container_extension.sysml +2 -2
  145. package/extensions/container/src/methodology/container_methodology.sysml +3 -1
  146. package/extensions/messaging/memo.package.yaml +1 -1
  147. package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
  148. package/extensions/ros/memo.package.yaml +1 -1
  149. package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
  150. package/extensions/template/src/extension.sysml +3 -1
  151. package/methodologies/default/memo.package.yaml +1 -1
  152. package/methodologies/gpca/memo.package.yaml +1 -1
  153. package/ontology/memo.package.yaml +1 -1
  154. package/package.json +2 -2
  155. package/profile/memo.package.yaml +1 -1
  156. package/src/architecture/functional/behavior/memo_behavior.sysml +5 -5
  157. package/src/architecture/functional/functions/memo_functions.sysml +6 -6
  158. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
  159. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
  160. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
  161. package/src/architecture/implementation/ui/memo_ui.sysml +8 -31
  162. package/src/architecture/logical/interfaces/memo_interfaces.sysml +4 -2
  163. package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
  164. package/src/architecture/operational/activities/memo_activities.sysml +19 -28
  165. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
  166. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
  167. package/src/architecture/operational/context/use_context/memo_use_context.sysml +5 -14
  168. package/src/architecture/operational/scenarios/memo_scenarios.sysml +12 -104
  169. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  170. package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -12
  171. package/src/architecture/operational/workflows/memo_workflows.sysml +20 -42
  172. package/src/architecture/realization/deployment/memo_deployment.sysml +26 -19
  173. package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
  174. package/src/artifacts/standards/cfr_21_820.sysml +80 -89
  175. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
  176. package/src/artifacts/standards/iec_60601_1.sysml +108 -121
  177. package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
  178. package/src/artifacts/standards/iec_60812.sysml +21 -22
  179. package/src/artifacts/standards/iec_62304.sysml +150 -169
  180. package/src/artifacts/standards/iec_62366_1.sysml +80 -89
  181. package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
  182. package/src/artifacts/standards/iso_13485.sysml +80 -89
  183. package/src/artifacts/standards/iso_14971.sysml +66 -73
  184. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
  185. package/src/artifacts/templates/dhf/system/sad.md +3 -3
  186. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
  187. package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
  188. package/src/assurance/requirements/memo_requirements.sysml +2 -18
  189. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
  190. package/src/assurance/safety_risk/memo_risk.sysml +12 -0
  191. package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
  192. package/src/core/common/memo_common.sysml +59 -55
  193. package/src/core/enumerations/memo_enumerations.sysml +1 -1
  194. package/src/core/relationships/memo_relationships.sysml +29 -56
  195. package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
  196. package/src/methodology/core/memo_core.sysml +0 -10
  197. package/src/methodology/profiles/memo_profiles.sysml +18 -16
  198. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  199. package/src/rules/closure/closure_rules.sysml +22 -20
  200. package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
  201. package/src/rules/ontology/ontology_invariants.sysml +121 -48
  202. package/src/rules/quantitative/quantitative_rules.sysml +4 -2
  203. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +58 -57
  204. package/src/viewpoints/clinical/clinical_viewpoint.sysml +5 -4
  205. package/src/viewpoints/context/context_viewpoint.sysml +6 -5
  206. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +6 -5
  207. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +6 -6
  208. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +36 -4
  209. package/src/viewpoints/functional/functional_viewpoint.sysml +6 -5
  210. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +6 -5
  211. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +6 -5
  212. package/src/viewpoints/logical/logical_viewpoint.sysml +5 -4
  213. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +6 -5
  214. package/src/viewpoints/operational/operational_viewpoint.sysml +6 -5
  215. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +7 -6
  216. package/src/viewpoints/physical/physical_viewpoint.sysml +5 -4
  217. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +6 -5
  218. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +6 -5
  219. package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
  220. package/src/viewpoints/requirements/requirements_viewpoint.sysml +5 -4
  221. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +6 -5
  222. package/src/viewpoints/risk/risk_viewpoint.sysml +5 -4
  223. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +6 -5
  224. package/src/viewpoints/software/software_viewpoint.sysml +5 -4
  225. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +6 -5
  226. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +5 -4
  227. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
  228. package/src/viewpoints/usability/usability_viewpoint.sysml +5 -4
  229. package/src/viewpoints/verification/verification_viewpoint.sysml +5 -4
  230. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +6 -5
  231. package/templates/connected-device/memo.package.yaml +2 -0
  232. package/templates/connected-device/model/catalog/project.sysml +3 -1
  233. package/templates/default/memo.package.yaml +2 -0
  234. package/templates/default/model/catalog/project.sysml +3 -1
  235. package/templates/infusion-pump/memo.package.yaml +2 -0
  236. package/templates/infusion-pump/model/catalog/project.sysml +3 -1
  237. package/templates/monitoring-device/memo.package.yaml +2 -0
  238. package/templates/monitoring-device/model/catalog/project.sysml +3 -1
  239. package/templates/samd/memo.package.yaml +2 -0
  240. package/templates/samd/model/catalog/project.sysml +3 -1
@@ -10,104 +10,95 @@ package memo_artifacts_standards_iso_13485 {
10
10
  private import memo_core_relationships::*;
11
11
  private import memo_artifacts_standards_traceability::*;
12
12
 
13
+ private import memo_core_common::*;
14
+ private import memo_core_common::MemoIdentity;
13
15
  item iso13485 : RegulatoryStandard {
14
- attribute :>> id = "STD-ISO-13485";
16
+ @MemoIdentity { :>> providedId = "STD-ISO-13485"; }
15
17
  attribute :>> name = "ISO13485";
16
18
  attribute :>> designation = "ISO 13485:2016";
17
19
  attribute :>> edition = "2016";
18
20
  attribute :>> issuer = "ISO";
19
21
  attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA);
22
+ item iso13485Clause4 : StandardClause {
23
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-4"; }
24
+ attribute :>> name = "ISO13485Clause4";
25
+ attribute :>> clauseNumber = "4";
26
+ attribute :>> title = "quality management system";
27
+ attribute :>> normativeStrength = "shall";
28
+ item iso13485Clause4_2 : StandardClause {
29
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-4-2"; }
30
+ attribute :>> name = "ISO13485Clause4_2";
31
+ attribute :>> clauseNumber = "4.2";
32
+ attribute :>> title = "quality management system documentation";
33
+ attribute :>> normativeStrength = "shall";
34
+ item iso13485Clause4_2_4 : StandardClause {
35
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-4-2-4"; }
36
+ attribute :>> name = "ISO13485Clause4_2_4";
37
+ attribute :>> clauseNumber = "4.2.4";
38
+ attribute :>> title = "control of documents";
39
+ attribute :>> normativeStrength = "shall";
40
+ }
41
+ }
42
+ }
43
+ item iso13485Clause7 : StandardClause {
44
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7"; }
45
+ attribute :>> name = "ISO13485Clause7";
46
+ attribute :>> clauseNumber = "7";
47
+ attribute :>> title = "product realization";
48
+ attribute :>> normativeStrength = "shall";
49
+ item iso13485Clause7_3 : StandardClause {
50
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3"; }
51
+ attribute :>> name = "ISO13485Clause7_3";
52
+ attribute :>> clauseNumber = "7.3";
53
+ attribute :>> title = "design and development";
54
+ attribute :>> normativeStrength = "shall";
55
+ item iso13485Clause7_3_3 : StandardClause {
56
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-3"; }
57
+ attribute :>> name = "ISO13485Clause7_3_3";
58
+ attribute :>> clauseNumber = "7.3.3";
59
+ attribute :>> title = "design and development inputs";
60
+ attribute :>> normativeStrength = "shall";
61
+ }
62
+ item iso13485Clause7_3_4 : StandardClause {
63
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-4"; }
64
+ attribute :>> name = "ISO13485Clause7_3_4";
65
+ attribute :>> clauseNumber = "7.3.4";
66
+ attribute :>> title = "design and development outputs";
67
+ attribute :>> normativeStrength = "shall";
68
+ }
69
+ item iso13485Clause7_3_6 : StandardClause {
70
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-6"; }
71
+ attribute :>> name = "ISO13485Clause7_3_6";
72
+ attribute :>> clauseNumber = "7.3.6";
73
+ attribute :>> title = "design and development verification";
74
+ attribute :>> normativeStrength = "shall";
75
+ }
76
+ item iso13485Clause7_3_7 : StandardClause {
77
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-7"; }
78
+ attribute :>> name = "ISO13485Clause7_3_7";
79
+ attribute :>> clauseNumber = "7.3.7";
80
+ attribute :>> title = "design and development validation";
81
+ attribute :>> normativeStrength = "shall";
82
+ }
83
+ item iso13485Clause7_3_9 : StandardClause {
84
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-9"; }
85
+ attribute :>> name = "ISO13485Clause7_3_9";
86
+ attribute :>> clauseNumber = "7.3.9";
87
+ attribute :>> title = "control of design and development changes";
88
+ attribute :>> normativeStrength = "shall";
89
+ }
90
+ item iso13485Clause7_3_10 : StandardClause {
91
+ @MemoIdentity { :>> providedId = "STD-ISO-13485-7-3-10"; }
92
+ attribute :>> name = "ISO13485Clause7_3_10";
93
+ attribute :>> clauseNumber = "7.3.10";
94
+ attribute :>> title = "design and development files";
95
+ attribute :>> normativeStrength = "shall";
96
+ }
97
+ }
98
+ }
20
99
  }
21
100
 
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
101
 
100
- connection iso13485Has4 : Composes connect parent ::> iso13485 to child ::> iso13485Clause4;
101
- connection iso13485Has7 : Composes connect parent ::> iso13485 to child ::> iso13485Clause7;
102
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
103
 
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
104
  }
@@ -8,87 +8,80 @@ package memo_artifacts_standards_iso_14971 {
8
8
  private import memo_core_relationships::*;
9
9
  private import memo_artifacts_standards_traceability::*;
10
10
 
11
+ private import memo_core_common::*;
12
+ private import memo_core_common::MemoIdentity;
11
13
  item iso14971 : RegulatoryStandard {
12
- attribute :>> id = "STD-ISO-14971";
14
+ @MemoIdentity { :>> providedId = "STD-ISO-14971"; }
13
15
  attribute :>> name = "ISO14971";
14
16
  attribute :>> designation = "ISO 14971:2019";
15
17
  attribute :>> edition = "2019";
16
18
  attribute :>> issuer = "ISO";
17
19
  attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
20
+ item iso14971Clause4 : StandardClause {
21
+ @MemoIdentity { :>> providedId = "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
+ item iso14971Clause4_4 : StandardClause {
27
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-4-4"; }
28
+ attribute :>> name = "ISO14971Clause4_4";
29
+ attribute :>> clauseNumber = "4.4";
30
+ attribute :>> title = "risk management plan";
31
+ attribute :>> normativeStrength = "shall";
32
+ }
33
+ item iso14971Clause4_5 : StandardClause {
34
+ @MemoIdentity { :>> providedId = "STD-ISO-14971-4-5"; }
35
+ attribute :>> name = "ISO14971Clause4_5";
36
+ attribute :>> clauseNumber = "4.5";
37
+ attribute :>> title = "risk management file";
38
+ attribute :>> normativeStrength = "shall";
39
+ }
40
+ }
41
+ item iso14971Clause5 : StandardClause {
42
+ @MemoIdentity { :>> providedId = "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
+ @MemoIdentity { :>> providedId = "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
+ @MemoIdentity { :>> providedId = "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
+ @MemoIdentity { :>> providedId = "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
+ @MemoIdentity { :>> providedId = "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
+ @MemoIdentity { :>> providedId = "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
+ }
18
83
  }
19
84
 
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
85
 
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
86
 
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
87
  }
@@ -12,8 +12,10 @@ package memo_artifacts_standards_iso_iec_ieee_42010 {
12
12
  private import memo_core_relationships::*;
13
13
  private import memo_artifacts_standards_traceability::*;
14
14
 
15
+ private import memo_core_common::*;
16
+ private import memo_core_common::MemoIdentity;
15
17
  item isoIecIeee42010 : RegulatoryStandard {
16
- attribute :>> id = "STD-ISO-IEC-IEEE-42010";
18
+ @MemoIdentity { :>> providedId = "STD-ISO-IEC-IEEE-42010"; }
17
19
  attribute :>> name = "ISOIECIEEE42010";
18
20
  attribute :>> designation = "ISO/IEC/IEEE 42010:2022";
19
21
  attribute :>> edition = "2022";
@@ -22,21 +24,19 @@ package memo_artifacts_standards_iso_iec_ieee_42010 {
22
24
  // reference standard, cited by documents rather than required by a
23
25
  // market. Empty is the authored value, not an omission — see
24
26
  // appliesToRegime in memo_artifacts_standards_traceability.
27
+ item isoIecIeee42010Clause5 : StandardClause {
28
+ @MemoIdentity { :>> providedId = "STD-ISO-IEC-IEEE-42010-5"; }
29
+ attribute :>> name = "ISOIECIEEE42010Clause5";
30
+ attribute :>> clauseNumber = "5";
31
+ attribute :>> normativeStrength = "shall";
32
+ }
33
+ item isoIecIeee42010Clause6 : StandardClause {
34
+ @MemoIdentity { :>> providedId = "STD-ISO-IEC-IEEE-42010-6"; }
35
+ attribute :>> name = "ISOIECIEEE42010Clause6";
36
+ attribute :>> clauseNumber = "6";
37
+ attribute :>> normativeStrength = "shall";
38
+ }
25
39
  }
26
40
 
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
41
 
40
- connection isoIecIeee42010Has5 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause5;
41
- connection isoIecIeee42010Has6 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause6;
42
42
  }
@@ -75,7 +75,7 @@ Runtime behaviour: the components executing in the system and the connectors thr
75
75
  #### 3.2.1 Runtime Environments
76
76
 
77
77
  ```memo-query
78
- kind: [RuntimeEnvironment, DeploymentUnit]
78
+ kind: [RuntimeEnvironment, SoftwareDeploymentUnit]
79
79
  display: table
80
80
  columns: name, layer, doc
81
81
  sort: name
@@ -101,12 +101,12 @@ Software elements mapped to their execution environments.
101
101
  #### 3.3.1 Deployment Units
102
102
 
103
103
  ```memo-query
104
- kind: DeploymentUnit
104
+ kind: SoftwareDeploymentUnit
105
105
  traverse: outgoing deploysTo
106
106
  display: table
107
107
  columns: name, kind, layer, doc
108
108
  sort: name
109
- empty: "No deployments defined. Add DeploysTo links from DeploymentUnit to the processing node."
109
+ empty: "No deployments defined. Add DeploysTo links from SoftwareDeploymentUnit to the processing node."
110
110
  ```
111
111
 
112
112
  ---
@@ -10,7 +10,7 @@ package memo_assurance_cybersecurity {
10
10
  private import memo_assurance_verification_validation::*;
11
11
  private import memo_architecture_operational_scenarios::*;
12
12
 
13
- part def CybersecurityAsset specializes ArchitectureElement {
13
+ part def CybersecurityAsset specializes MemoPart {
14
14
  attribute assetKind : AssetKind;
15
15
  attribute confidentialityNeed : String;
16
16
  attribute integrityNeed : String;
@@ -99,7 +99,7 @@ package memo_assurance_cybersecurity {
99
99
  }
100
100
  connection def RealizedByScenario :> MemoRelationship {
101
101
  end realizedThreat : RequirementDriver :>> source;
102
- end scenario : MemoScenario :>> target;
102
+ end scenario : OperativeScenario :>> target;
103
103
  }
104
104
  abstract connection realizedByScenarioLinks : RealizedByScenario[*];
105
105
  metadata def <realizedByScenario> RealizedByScenarioMetadata :> SemanticMetadata {
@@ -21,7 +21,7 @@ package memo_assurance_human_factors {
21
21
  }
22
22
 
23
23
  connection def CommitsUseError :> MemoRelationship {
24
- end task : UserTask :>> source;
24
+ end task : OperativeAction :>> source;
25
25
  end useError : UseError :>> target;
26
26
  }
27
27
  abstract connection commitsUseErrorLinks : CommitsUseError[*];
@@ -32,7 +32,7 @@ package memo_assurance_human_factors {
32
32
  }
33
33
  connection def EvaluatesTask :> MemoRelationship {
34
34
  end evaluation : MemoEvidence :>> source;
35
- end task : UserTask :>> target;
35
+ end task : OperativeAction :>> target;
36
36
  }
37
37
  abstract connection evaluatesTaskLinks : EvaluatesTask[*];
38
38
  metadata def <evaluatesTask> EvaluatesTaskMetadata :> SemanticMetadata {
@@ -7,22 +7,6 @@ package memo_assurance_requirements {
7
7
  private import memo_assurance_requirements_needs::*;
8
8
  part def RiskDriver specializes RequirementDriver { attribute driverKind : String; }
9
9
 
10
- // ISO 14971 risk-analysis inputs. These are model elements so hazards,
11
- // scenarios, requirements, and DHF records can trace to the exact use
12
- // definition or foreseeable misuse that motivated them.
13
- part def IntendedUse specializes DocumentedElement {
14
- attribute indication : String;
15
- attribute contraindication : String;
16
- attribute patientPopulation : String;
17
- attribute clinicalBenefit : String;
18
- attribute regulatoryClassification : String;
19
- }
20
- part def ReasonablyForeseeableMisuse specializes DocumentedElement {
21
- attribute misuseContext : String;
22
- attribute foreseeableBasis : String;
23
- attribute affectedUseContext : String;
24
- }
25
-
26
10
  // The kind of requirement. Was a subclass branch (SystemRequirement /
27
11
  // SoftwareRequirement / HardwareRequirement) plus a parallel design-control
28
12
  // specification hierarchy (DesignControlSpecification / System- / Software- /
@@ -42,14 +26,14 @@ package memo_assurance_requirements {
42
26
 
43
27
  requirement def Requirement specializes MemoRequirement {
44
28
  attribute requirementKind : RequirementKind;
45
- attribute statement : String;
29
+ attribute :>> statement : String;
46
30
  attribute sourceKind : RequirementSourceKind;
47
31
  attribute concernKind : ConcernKind;
48
32
  // Editorial state is the inherited `status : ElementStatusKind` — the
49
33
  // one status vocabulary in MEMO. Whether a requirement is implemented,
50
34
  // verified, or validated is read from its Realizes / VerifiedBy /
51
35
  // Validates links, not restated here.
52
- attribute acceptanceCriteria : String;
36
+ attribute :>> acceptanceCriteria : String;
53
37
  attribute subjectDescription : String;
54
38
  attribute actorDescription : String;
55
39
  attribute assumptionSummary : String;
@@ -184,7 +184,7 @@ package memo_assurance_safety_risk_analysis {
184
184
  :>> baseType = identifiesHazardLinks meta SysML::Usage;
185
185
  }
186
186
  connection def HasFailureMode :> MemoRelationship {
187
- end element : ArchitectureElement :>> source;
187
+ end element : MemoPart :>> source;
188
188
  end failureMode : FailureMode :>> target;
189
189
  }
190
190
  abstract connection hasFailureModeLinks : HasFailureMode[*];
@@ -6,6 +6,18 @@ package memo_assurance_safety_risk {
6
6
  private import memo_core_common::*;
7
7
  private import memo_core_enumerations::*;
8
8
  private import memo_assurance_requirements::*;
9
+
10
+ // ISO 14971 / IEC 62366-1 risk-analysis input. A model element so hazards,
11
+ // scenarios, requirements, and DHF records can trace to the foreseeable
12
+ // misuse that motivated them. Its counterpart, IntendedUse, is now the
13
+ // operational-world root (memo_architecture_operational_structure::IntendedUse,
14
+ // a MemoMission).
15
+ part def ReasonablyForeseeableMisuse specializes MemoPart {
16
+ attribute misuseContext : String;
17
+ attribute foreseeableBasis : String;
18
+ attribute affectedUseContext : String;
19
+ }
20
+
9
21
  part def Risk specializes RiskDriver {
10
22
  attribute probabilityEstimate : ProbabilityKind;
11
23
  attribute severityEstimate : SeverityKind;
@@ -19,8 +19,10 @@ package memo_assurance_verification_validation {
19
19
  // EXECUTION state, not an editorial one; execution state belongs in an
20
20
  // attribute of its own (see RiskControlMeasure.verificationStatus), not in
21
21
  // a second spelling of `status`.
22
- verification def VerificationCase :> MemoVerificationCase {
23
- attribute methodKind : VerificationMethodKind;
22
+ // Specializes the standard library verification case as well as MEMO's
23
+ // base, rather than shadowing it — see the note on UseCase.
24
+ verification def VerificationCase :> MemoVerificationCase, VerificationCases::VerificationCase {
25
+ attribute methodKind : MemoVerificationMethodKind;
24
26
  attribute acceptanceCriteria : String;
25
27
  }
26
28
  verification def ValidationCase :> MemoVerificationCase {
@@ -32,14 +34,7 @@ package memo_assurance_verification_validation {
32
34
  // Operational validation confirms the user's goal is achieved in the
33
35
  // use environment (§5): ValidationCase validates a UseCase.
34
36
  // Safety-critical functions must trace to verification (rules/coverage).
35
- connection def ExecutesScenario :> MemoRelationship {
36
- end verificationCase : VerificationCase :>> source;
37
- end scenario : MemoScenario :>> target;
38
- }
39
- abstract connection executesScenarioLinks : ExecutesScenario[*];
40
- metadata def <executesScenario> ExecutesScenarioMetadata :> SemanticMetadata {
41
- :> annotatedElement : SysML::ConnectionDefinition;
42
- :> annotatedElement : SysML::ConnectionUsage;
43
- :>> baseType = executesScenarioLinks meta SysML::Usage;
44
- }
37
+ // `ExecutesScenario` is native `perform` (2026-08-18): OperativeScenario
38
+ // is an `action def`, so write `perform <scenario>;` inside the
39
+ // verification case, as `InvolvesFunction` already does.
45
40
  }