@memoarchitect/ontology 0.7.0 → 0.8.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/README.md +4 -2
  2. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
  3. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
  4. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
  5. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
  6. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
  7. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
  8. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
  9. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
  10. package/examples/gpca-pump/model/catalog/gpca_context.sysml +9 -0
  11. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +9 -5
  12. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
  13. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +82 -58
  14. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
  15. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
  16. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
  17. package/examples/gpca-pump/model/catalog/gpca_system.sysml +15 -2
  18. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -331
  19. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
  20. package/examples/gpca-pump/model/catalog/project.sysml +5 -0
  21. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +1 -1
  22. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +1 -1
  23. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +1 -1
  24. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +1 -1
  25. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +2 -2
  26. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +1 -1
  27. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +1 -1
  28. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +1 -1
  29. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +2 -2
  30. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -2
  31. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -2
  32. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +1 -1
  33. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +1 -1
  34. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +2 -2
  35. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -2
  36. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +4 -2
  37. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +1 -1
  38. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +3 -2
  39. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
  40. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
  41. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
  42. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
  43. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
  44. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -5
  45. package/examples/ros-mobile-robot/README.md +40 -0
  46. package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
  47. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
  48. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
  49. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
  50. package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
  51. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
  52. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -60
  53. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
  54. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -15
  55. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -9
  56. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +42 -66
  57. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +56 -66
  58. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +26 -55
  59. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +3 -6
  60. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +0 -18
  61. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +51 -82
  62. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +21 -31
  63. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -8
  64. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -21
  65. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
  66. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
  67. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
  68. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
  69. package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
  70. package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
  71. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -1
  72. package/extensions/LICENSES/MIT.txt +19 -0
  73. package/extensions/README.md +94 -0
  74. package/extensions/aadl/memo.package.yaml +18 -0
  75. package/extensions/aadl/src/aadl_extension.sysml +6 -0
  76. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
  77. package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
  78. package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
  79. package/extensions/cloud/memo.package.yaml +18 -0
  80. package/extensions/cloud/src/cloud_extension.sysml +44 -0
  81. package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
  82. package/extensions/container/memo.package.yaml +18 -0
  83. package/extensions/container/src/container_extension.sysml +37 -0
  84. package/extensions/container/src/methodology/container_methodology.sysml +17 -0
  85. package/extensions/messaging/memo.package.yaml +18 -0
  86. package/extensions/messaging/src/messaging_extension.sysml +64 -0
  87. package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
  88. package/extensions/ros/memo.package.yaml +18 -0
  89. package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
  90. package/extensions/ros/src/ros_extension.sysml +200 -0
  91. package/extensions/template/src/extension.sysml +37 -0
  92. package/memo.manifest.yaml +13 -2
  93. package/methodologies/default/memo.package.yaml +1 -1
  94. package/methodologies/gpca/memo.package.yaml +1 -1
  95. package/ontology/memo.package.yaml +1 -1
  96. package/package.json +5 -3
  97. package/profile/memo.package.yaml +1 -1
  98. package/src/architecture/decisions/memo_decisions.sysml +23 -2
  99. package/src/architecture/functional/behavior/memo_behavior.sysml +49 -21
  100. package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
  101. package/src/architecture/functional/functions/memo_functions.sysml +91 -34
  102. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
  103. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +37 -10
  104. package/src/architecture/implementation/ui/memo_ui.sysml +78 -38
  105. package/src/architecture/logical/interfaces/memo_interfaces.sysml +63 -11
  106. package/src/architecture/logical/structure/memo_logical_structure.sysml +21 -20
  107. package/src/architecture/operational/activities/memo_activities.sysml +10 -3
  108. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
  109. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
  110. package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
  111. package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
  112. package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
  113. package/src/architecture/operational/workflows/memo_workflows.sysml +29 -10
  114. package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
  115. package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
  116. package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
  117. package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
  118. package/src/artifacts/standards/cfr_21_820.sysml +116 -0
  119. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
  120. package/src/artifacts/standards/iec_60601_1.sysml +149 -0
  121. package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
  122. package/src/artifacts/standards/iec_60812.sysml +51 -0
  123. package/src/artifacts/standards/iec_62304.sysml +210 -0
  124. package/src/artifacts/standards/iec_62366_1.sysml +113 -0
  125. package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
  126. package/src/artifacts/standards/iso_13485.sysml +113 -0
  127. package/src/artifacts/standards/iso_14971.sysml +94 -0
  128. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
  129. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
  130. package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
  131. package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
  132. package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
  133. package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
  134. package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
  135. package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
  136. package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
  137. package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
  138. package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
  139. package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
  140. package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
  141. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
  142. package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
  143. package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
  144. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
  145. package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
  146. package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
  147. package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
  148. package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
  149. package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
  150. package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
  151. package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
  152. package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
  153. package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
  154. package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
  155. package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
  156. package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
  157. package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
  158. package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
  159. package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
  160. package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
  161. package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
  162. package/src/artifacts/templates/dhf/system/sad.md +173 -0
  163. package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
  164. package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
  165. package/src/artifacts/templates/dhf/system/syrs.md +128 -0
  166. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
  167. package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
  168. package/src/assurance/requirements/memo_requirements.sysml +5 -2
  169. package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
  170. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
  171. package/src/assurance/safety_risk/memo_risk.sysml +78 -7
  172. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
  173. package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
  174. package/src/core/annotations/memo_annotations.sysml +25 -6
  175. package/src/core/common/memo_common.sysml +121 -16
  176. package/src/core/consistency_rules/consistency_rules.sysml +1 -1
  177. package/src/core/dimensions/dimensions.sysml +12 -0
  178. package/src/core/enumerations/memo_enumerations.sysml +60 -14
  179. package/src/core/relationships/memo_relationships.sysml +199 -196
  180. package/src/memo_namespaces.sysml +30 -0
  181. package/src/methodology/core/memo_core.sysml +24 -0
  182. package/src/methodology/profiles/memo_profiles.sysml +1 -1
  183. package/src/rules/ontology/ontology_invariants.sysml +213 -1
  184. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +3 -3
  185. package/src/viewpoints/clinical/clinical_viewpoint.sysml +1 -1
  186. package/src/viewpoints/context/context_viewpoint.sysml +1 -1
  187. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -1
  188. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +1 -0
  189. package/src/viewpoints/functional/functional_viewpoint.sysml +1 -1
  190. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +1 -1
  191. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +1 -1
  192. package/src/viewpoints/operational/operational_viewpoint.sysml +1 -1
  193. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +1 -1
  194. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +1 -1
  195. package/src/viewpoints/verification/verification_viewpoint.sysml +1 -1
  196. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +1 -1
  197. package/examples/extensions/README.md +0 -16
  198. package/examples/extensions/template/src/extension.sysml +0 -15
  199. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  200. /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
  201. /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
  202. /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
  203. /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
  204. /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
@@ -0,0 +1,210 @@
1
+ // IEC 62304:2006+AMD1:2015 — medical device software lifecycle processes.
2
+ //
3
+ // Clause instances, not type machinery. Everything here is data: adding a
4
+ // standard is one file like this one and zero TypeScript changes.
5
+ //
6
+ // Depth is representative, not exhaustive — the level at which the standard
7
+ // makes a distinct normative requirement a MEMO document actually claims.
8
+ // A clause nobody claims yet costs nothing to add later.
9
+ //
10
+ // Each `title` is a MEMO-AUTHORED scope phrase, never the standard's own
11
+ // normative wording, which is copyrighted. It is a display label: queries
12
+ // traverse ConformsTo to the clause instance, they never match on its text.
13
+ package memo_artifacts_standards_iec_62304 {
14
+ private import ScalarValues::*;
15
+ private import memo_core_enumerations::*;
16
+ private import memo_core_relationships::*;
17
+ private import memo_artifacts_standards_traceability::*;
18
+
19
+ item iec62304 : RegulatoryStandard {
20
+ attribute :>> id = "STD-IEC-62304";
21
+ attribute :>> name = "IEC62304";
22
+ attribute :>> designation = "IEC 62304:2006+AMD1:2015";
23
+ attribute :>> edition = "2006";
24
+ attribute :>> issuer = "IEC";
25
+ attribute :>> amendments = "AMD1:2015";
26
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
27
+ }
28
+
29
+ // ── 4 General requirements ───────────────────────────────────────────
30
+ item iec62304Clause4 : StandardClause {
31
+ attribute :>> id = "STD-IEC-62304-4";
32
+ attribute :>> name = "IEC62304Clause4";
33
+ attribute :>> clauseNumber = "4";
34
+ attribute :>> title = "general lifecycle prerequisites";
35
+ attribute :>> normativeStrength = "shall";
36
+ }
37
+ item iec62304Clause4_3 : StandardClause {
38
+ attribute :>> id = "STD-IEC-62304-4-3";
39
+ attribute :>> name = "IEC62304Clause4_3";
40
+ attribute :>> clauseNumber = "4.3";
41
+ attribute :>> title = "software safety classification";
42
+ attribute :>> normativeStrength = "shall";
43
+ }
44
+
45
+ // ── 5 Software development process ───────────────────────────────────
46
+ item iec62304Clause5 : StandardClause {
47
+ attribute :>> id = "STD-IEC-62304-5";
48
+ attribute :>> name = "IEC62304Clause5";
49
+ attribute :>> clauseNumber = "5";
50
+ attribute :>> title = "software development process";
51
+ attribute :>> normativeStrength = "shall";
52
+ }
53
+ item iec62304Clause5_1 : StandardClause {
54
+ attribute :>> id = "STD-IEC-62304-5-1";
55
+ attribute :>> name = "IEC62304Clause5_1";
56
+ attribute :>> clauseNumber = "5.1";
57
+ attribute :>> title = "software development planning";
58
+ attribute :>> normativeStrength = "shall";
59
+ }
60
+ item iec62304Clause5_1_1 : StandardClause {
61
+ attribute :>> id = "STD-IEC-62304-5-1-1";
62
+ attribute :>> name = "IEC62304Clause5_1_1";
63
+ attribute :>> clauseNumber = "5.1.1";
64
+ attribute :>> title = "software development plan";
65
+ attribute :>> normativeStrength = "shall";
66
+ }
67
+ item iec62304Clause5_2 : StandardClause {
68
+ attribute :>> id = "STD-IEC-62304-5-2";
69
+ attribute :>> name = "IEC62304Clause5_2";
70
+ attribute :>> clauseNumber = "5.2";
71
+ attribute :>> title = "software requirements analysis";
72
+ attribute :>> normativeStrength = "shall";
73
+ }
74
+ item iec62304Clause5_2_2 : StandardClause {
75
+ attribute :>> id = "STD-IEC-62304-5-2-2";
76
+ attribute :>> name = "IEC62304Clause5_2_2";
77
+ attribute :>> clauseNumber = "5.2.2";
78
+ attribute :>> title = "software requirements content";
79
+ attribute :>> normativeStrength = "shall";
80
+ }
81
+ item iec62304Clause5_2_3 : StandardClause {
82
+ attribute :>> id = "STD-IEC-62304-5-2-3";
83
+ attribute :>> name = "IEC62304Clause5_2_3";
84
+ attribute :>> clauseNumber = "5.2.3";
85
+ attribute :>> title = "risk control measures carried into software requirements";
86
+ attribute :>> normativeStrength = "shall";
87
+ }
88
+ item iec62304Clause5_2_6 : StandardClause {
89
+ attribute :>> id = "STD-IEC-62304-5-2-6";
90
+ attribute :>> name = "IEC62304Clause5_2_6";
91
+ attribute :>> clauseNumber = "5.2.6";
92
+ attribute :>> title = "software requirements verification";
93
+ attribute :>> normativeStrength = "shall";
94
+ }
95
+ item iec62304Clause5_3 : StandardClause {
96
+ attribute :>> id = "STD-IEC-62304-5-3";
97
+ attribute :>> name = "IEC62304Clause5_3";
98
+ attribute :>> clauseNumber = "5.3";
99
+ attribute :>> title = "software architectural design";
100
+ attribute :>> normativeStrength = "shall";
101
+ }
102
+ item iec62304Clause5_4 : StandardClause {
103
+ attribute :>> id = "STD-IEC-62304-5-4";
104
+ attribute :>> name = "IEC62304Clause5_4";
105
+ attribute :>> clauseNumber = "5.4";
106
+ attribute :>> title = "software detailed design";
107
+ attribute :>> normativeStrength = "shall";
108
+ }
109
+ item iec62304Clause5_5 : StandardClause {
110
+ attribute :>> id = "STD-IEC-62304-5-5";
111
+ attribute :>> name = "IEC62304Clause5_5";
112
+ attribute :>> clauseNumber = "5.5";
113
+ attribute :>> title = "software unit implementation and verification";
114
+ attribute :>> normativeStrength = "shall";
115
+ }
116
+ item iec62304Clause5_6 : StandardClause {
117
+ attribute :>> id = "STD-IEC-62304-5-6";
118
+ attribute :>> name = "IEC62304Clause5_6";
119
+ attribute :>> clauseNumber = "5.6";
120
+ attribute :>> title = "software integration and integration testing";
121
+ attribute :>> normativeStrength = "shall";
122
+ }
123
+ item iec62304Clause5_7 : StandardClause {
124
+ attribute :>> id = "STD-IEC-62304-5-7";
125
+ attribute :>> name = "IEC62304Clause5_7";
126
+ attribute :>> clauseNumber = "5.7";
127
+ attribute :>> title = "software system testing";
128
+ attribute :>> normativeStrength = "shall";
129
+ }
130
+ item iec62304Clause5_7_5 : StandardClause {
131
+ attribute :>> id = "STD-IEC-62304-5-7-5";
132
+ attribute :>> name = "IEC62304Clause5_7_5";
133
+ attribute :>> clauseNumber = "5.7.5";
134
+ attribute :>> title = "software system test records";
135
+ attribute :>> normativeStrength = "shall";
136
+ }
137
+ item iec62304Clause5_8 : StandardClause {
138
+ attribute :>> id = "STD-IEC-62304-5-8";
139
+ attribute :>> name = "IEC62304Clause5_8";
140
+ attribute :>> clauseNumber = "5.8";
141
+ attribute :>> title = "software release";
142
+ attribute :>> normativeStrength = "shall";
143
+ }
144
+
145
+ // ── 6-9 Supporting processes ─────────────────────────────────────────
146
+ item iec62304Clause6 : StandardClause {
147
+ attribute :>> id = "STD-IEC-62304-6";
148
+ attribute :>> name = "IEC62304Clause6";
149
+ attribute :>> clauseNumber = "6";
150
+ attribute :>> title = "software maintenance process";
151
+ attribute :>> normativeStrength = "shall";
152
+ }
153
+ item iec62304Clause7 : StandardClause {
154
+ attribute :>> id = "STD-IEC-62304-7";
155
+ attribute :>> name = "IEC62304Clause7";
156
+ attribute :>> clauseNumber = "7";
157
+ attribute :>> title = "software risk management process";
158
+ attribute :>> normativeStrength = "shall";
159
+ }
160
+ item iec62304Clause8 : StandardClause {
161
+ attribute :>> id = "STD-IEC-62304-8";
162
+ attribute :>> name = "IEC62304Clause8";
163
+ attribute :>> clauseNumber = "8";
164
+ attribute :>> title = "software configuration management process";
165
+ attribute :>> normativeStrength = "shall";
166
+ }
167
+ item iec62304Clause8_1_2 : StandardClause {
168
+ attribute :>> id = "STD-IEC-62304-8-1-2";
169
+ attribute :>> name = "IEC62304Clause8_1_2";
170
+ attribute :>> clauseNumber = "8.1.2";
171
+ attribute :>> title = "SOUP identification";
172
+ attribute :>> normativeStrength = "shall";
173
+ }
174
+ item iec62304Clause9 : StandardClause {
175
+ attribute :>> id = "STD-IEC-62304-9";
176
+ attribute :>> name = "IEC62304Clause9";
177
+ attribute :>> clauseNumber = "9";
178
+ attribute :>> title = "software problem resolution process";
179
+ attribute :>> normativeStrength = "shall";
180
+ }
181
+
182
+ // ── Containment ──────────────────────────────────────────────────────
183
+ // The existing Composes relation, standard → clause → sub-clause. There
184
+ // is no clause-specific composition type: whole/part decomposition is
185
+ // already one relation in MEMO.
186
+ connection iec62304Has4 : Composes connect parent ::> iec62304 to child ::> iec62304Clause4;
187
+ connection iec62304Has5 : Composes connect parent ::> iec62304 to child ::> iec62304Clause5;
188
+ connection iec62304Has6 : Composes connect parent ::> iec62304 to child ::> iec62304Clause6;
189
+ connection iec62304Has7 : Composes connect parent ::> iec62304 to child ::> iec62304Clause7;
190
+ connection iec62304Has8 : Composes connect parent ::> iec62304 to child ::> iec62304Clause8;
191
+ connection iec62304Has9 : Composes connect parent ::> iec62304 to child ::> iec62304Clause9;
192
+
193
+ connection iec62304Has4_3 : Composes connect parent ::> iec62304Clause4 to child ::> iec62304Clause4_3;
194
+
195
+ connection iec62304Has5_1 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_1;
196
+ connection iec62304Has5_2 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_2;
197
+ connection iec62304Has5_3 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_3;
198
+ connection iec62304Has5_4 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_4;
199
+ connection iec62304Has5_5 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_5;
200
+ connection iec62304Has5_6 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_6;
201
+ connection iec62304Has5_7 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_7;
202
+ connection iec62304Has5_8 : Composes connect parent ::> iec62304Clause5 to child ::> iec62304Clause5_8;
203
+
204
+ connection iec62304Has5_1_1 : Composes connect parent ::> iec62304Clause5_1 to child ::> iec62304Clause5_1_1;
205
+ connection iec62304Has5_2_2 : Composes connect parent ::> iec62304Clause5_2 to child ::> iec62304Clause5_2_2;
206
+ connection iec62304Has5_2_3 : Composes connect parent ::> iec62304Clause5_2 to child ::> iec62304Clause5_2_3;
207
+ connection iec62304Has5_2_6 : Composes connect parent ::> iec62304Clause5_2 to child ::> iec62304Clause5_2_6;
208
+ connection iec62304Has5_7_5 : Composes connect parent ::> iec62304Clause5_7 to child ::> iec62304Clause5_7_5;
209
+ connection iec62304Has8_1_2 : Composes connect parent ::> iec62304Clause8 to child ::> iec62304Clause8_1_2;
210
+ }
@@ -0,0 +1,113 @@
1
+ // IEC 62366-1:2015+AMD1:2020 — application of usability engineering to
2
+ // medical devices.
3
+ //
4
+ // The amendment is carried in the designation: dropping it is a CE/MDR
5
+ // regression. `title` is a MEMO-AUTHORED scope phrase, never the standard's
6
+ // own normative wording.
7
+ package memo_artifacts_standards_iec_62366_1 {
8
+ private import ScalarValues::*;
9
+ private import memo_core_enumerations::*;
10
+ private import memo_core_relationships::*;
11
+ private import memo_artifacts_standards_traceability::*;
12
+
13
+ item iec62366_1 : RegulatoryStandard {
14
+ attribute :>> id = "STD-IEC-62366-1";
15
+ attribute :>> name = "IEC62366_1";
16
+ attribute :>> designation = "IEC 62366-1:2015+AMD1:2020";
17
+ attribute :>> edition = "2015";
18
+ attribute :>> issuer = "IEC";
19
+ attribute :>> amendments = "AMD1:2020";
20
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
21
+ }
22
+
23
+ item iec62366_1Clause4 : StandardClause {
24
+ attribute :>> id = "STD-IEC-62366-1-4";
25
+ attribute :>> name = "IEC62366_1Clause4";
26
+ attribute :>> clauseNumber = "4";
27
+ attribute :>> title = "general requirements for the usability engineering process";
28
+ attribute :>> normativeStrength = "shall";
29
+ }
30
+ item iec62366_1Clause5 : StandardClause {
31
+ attribute :>> id = "STD-IEC-62366-1-5";
32
+ attribute :>> name = "IEC62366_1Clause5";
33
+ attribute :>> clauseNumber = "5";
34
+ attribute :>> title = "usability engineering process";
35
+ attribute :>> normativeStrength = "shall";
36
+ }
37
+ item iec62366_1Clause5_1 : StandardClause {
38
+ attribute :>> id = "STD-IEC-62366-1-5-1";
39
+ attribute :>> name = "IEC62366_1Clause5_1";
40
+ attribute :>> clauseNumber = "5.1";
41
+ attribute :>> title = "use specification";
42
+ attribute :>> normativeStrength = "shall";
43
+ }
44
+ item iec62366_1Clause5_2 : StandardClause {
45
+ attribute :>> id = "STD-IEC-62366-1-5-2";
46
+ attribute :>> name = "IEC62366_1Clause5_2";
47
+ attribute :>> clauseNumber = "5.2";
48
+ attribute :>> title = "user interface characteristics related to safety";
49
+ attribute :>> normativeStrength = "shall";
50
+ }
51
+ item iec62366_1Clause5_3 : StandardClause {
52
+ attribute :>> id = "STD-IEC-62366-1-5-3";
53
+ attribute :>> name = "IEC62366_1Clause5_3";
54
+ attribute :>> clauseNumber = "5.3";
55
+ attribute :>> title = "known and foreseeable use-related hazards";
56
+ attribute :>> normativeStrength = "shall";
57
+ }
58
+ item iec62366_1Clause5_4 : StandardClause {
59
+ attribute :>> id = "STD-IEC-62366-1-5-4";
60
+ attribute :>> name = "IEC62366_1Clause5_4";
61
+ attribute :>> clauseNumber = "5.4";
62
+ attribute :>> title = "hazard-related use scenarios";
63
+ attribute :>> normativeStrength = "shall";
64
+ }
65
+ item iec62366_1Clause5_5 : StandardClause {
66
+ attribute :>> id = "STD-IEC-62366-1-5-5";
67
+ attribute :>> name = "IEC62366_1Clause5_5";
68
+ attribute :>> clauseNumber = "5.5";
69
+ attribute :>> title = "selection of use scenarios for summative evaluation";
70
+ attribute :>> normativeStrength = "shall";
71
+ }
72
+ item iec62366_1Clause5_6 : StandardClause {
73
+ attribute :>> id = "STD-IEC-62366-1-5-6";
74
+ attribute :>> name = "IEC62366_1Clause5_6";
75
+ attribute :>> clauseNumber = "5.6";
76
+ attribute :>> title = "user interface specification";
77
+ attribute :>> normativeStrength = "shall";
78
+ }
79
+ item iec62366_1Clause5_7 : StandardClause {
80
+ attribute :>> id = "STD-IEC-62366-1-5-7";
81
+ attribute :>> name = "IEC62366_1Clause5_7";
82
+ attribute :>> clauseNumber = "5.7";
83
+ attribute :>> title = "user interface evaluation plan";
84
+ attribute :>> normativeStrength = "shall";
85
+ }
86
+ item iec62366_1Clause5_8 : StandardClause {
87
+ attribute :>> id = "STD-IEC-62366-1-5-8";
88
+ attribute :>> name = "IEC62366_1Clause5_8";
89
+ attribute :>> clauseNumber = "5.8";
90
+ attribute :>> title = "user interface design and formative evaluation";
91
+ attribute :>> normativeStrength = "shall";
92
+ }
93
+ item iec62366_1Clause5_9 : StandardClause {
94
+ attribute :>> id = "STD-IEC-62366-1-5-9";
95
+ attribute :>> name = "IEC62366_1Clause5_9";
96
+ attribute :>> clauseNumber = "5.9";
97
+ attribute :>> title = "summative evaluation of the user interface";
98
+ attribute :>> normativeStrength = "shall";
99
+ }
100
+
101
+ connection iec62366_1Has4 : Composes connect parent ::> iec62366_1 to child ::> iec62366_1Clause4;
102
+ connection iec62366_1Has5 : Composes connect parent ::> iec62366_1 to child ::> iec62366_1Clause5;
103
+
104
+ connection iec62366_1Has5_1 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_1;
105
+ connection iec62366_1Has5_2 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_2;
106
+ connection iec62366_1Has5_3 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_3;
107
+ connection iec62366_1Has5_4 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_4;
108
+ connection iec62366_1Has5_5 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_5;
109
+ connection iec62366_1Has5_6 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_6;
110
+ connection iec62366_1Has5_7 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_7;
111
+ connection iec62366_1Has5_8 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_8;
112
+ connection iec62366_1Has5_9 : Composes connect parent ::> iec62366_1Clause5 to child ::> iec62366_1Clause5_9;
113
+ }
@@ -0,0 +1,84 @@
1
+ // IEC 81001-5-1:2021 — Health software and health IT systems safety, effectiveness and security — Part 5-1: Security — Activities in the product life cycle
2
+ //
3
+ // Clause instances, not type machinery. Everything here is data: adding a
4
+ // standard is one file like this one and zero TypeScript changes.
5
+ package memo_artifacts_standards_iec_81001_5_1 {
6
+ private import ScalarValues::*;
7
+ private import memo_core_enumerations::*;
8
+ private import memo_core_relationships::*;
9
+ private import memo_artifacts_standards_traceability::*;
10
+
11
+ item iec81001_5_1 : RegulatoryStandard {
12
+ attribute :>> id = "STD-IEC-81001-5-1";
13
+ attribute :>> name = "IEC81001_5_1";
14
+ attribute :>> designation = "IEC 81001-5-1:2021";
15
+ attribute :>> edition = "2021";
16
+ attribute :>> issuer = "IEC";
17
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
18
+ }
19
+
20
+ item iec81001_5_1Clause4 : StandardClause {
21
+ attribute :>> id = "STD-IEC-81001-5-1-4";
22
+ attribute :>> name = "IEC81001_5_1Clause4";
23
+ attribute :>> clauseNumber = "4";
24
+ attribute :>> title = "general requirements";
25
+ attribute :>> normativeStrength = "shall";
26
+ }
27
+
28
+ item iec81001_5_1Clause5 : StandardClause {
29
+ attribute :>> id = "STD-IEC-81001-5-1-5";
30
+ attribute :>> name = "IEC81001_5_1Clause5";
31
+ attribute :>> clauseNumber = "5";
32
+ attribute :>> title = "software development process";
33
+ attribute :>> normativeStrength = "shall";
34
+ }
35
+
36
+ item iec81001_5_1Clause5_1 : StandardClause {
37
+ attribute :>> id = "STD-IEC-81001-5-1-5-1";
38
+ attribute :>> name = "IEC81001_5_1Clause5_1";
39
+ attribute :>> clauseNumber = "5.1";
40
+ attribute :>> title = "software development planning";
41
+ attribute :>> normativeStrength = "shall";
42
+ }
43
+
44
+ item iec81001_5_1Clause5_2 : StandardClause {
45
+ attribute :>> id = "STD-IEC-81001-5-1-5-2";
46
+ attribute :>> name = "IEC81001_5_1Clause5_2";
47
+ attribute :>> clauseNumber = "5.2";
48
+ attribute :>> title = "software requirements analysis";
49
+ attribute :>> normativeStrength = "shall";
50
+ }
51
+
52
+ item iec81001_5_1Clause5_3 : StandardClause {
53
+ attribute :>> id = "STD-IEC-81001-5-1-5-3";
54
+ attribute :>> name = "IEC81001_5_1Clause5_3";
55
+ attribute :>> clauseNumber = "5.3";
56
+ attribute :>> title = "software architectural design";
57
+ attribute :>> normativeStrength = "shall";
58
+ }
59
+
60
+ item iec81001_5_1Clause5_4 : StandardClause {
61
+ attribute :>> id = "STD-IEC-81001-5-1-5-4";
62
+ attribute :>> name = "IEC81001_5_1Clause5_4";
63
+ attribute :>> clauseNumber = "5.4";
64
+ attribute :>> title = "software design";
65
+ attribute :>> normativeStrength = "shall";
66
+ }
67
+
68
+ item iec81001_5_1Clause5_8 : StandardClause {
69
+ attribute :>> id = "STD-IEC-81001-5-1-5-8";
70
+ attribute :>> name = "IEC81001_5_1Clause5_8";
71
+ attribute :>> clauseNumber = "5.8";
72
+ attribute :>> title = "software release";
73
+ attribute :>> normativeStrength = "shall";
74
+ }
75
+
76
+ connection iec81001_5_1Has4 : Composes connect parent ::> iec81001_5_1 to child ::> iec81001_5_1Clause4;
77
+ connection iec81001_5_1Has5 : Composes connect parent ::> iec81001_5_1 to child ::> iec81001_5_1Clause5;
78
+
79
+ connection iec81001_5_1Has5_1 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_1;
80
+ connection iec81001_5_1Has5_2 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_2;
81
+ connection iec81001_5_1Has5_3 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_3;
82
+ connection iec81001_5_1Has5_4 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_4;
83
+ connection iec81001_5_1Has5_8 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_8;
84
+ }
@@ -0,0 +1,113 @@
1
+ // ISO 13485:2016 — quality management systems for medical devices.
2
+ //
3
+ // Only the design-and-development and document-control clauses MEMO documents
4
+ // actually claim are represented. The rest of the QMS is a management-system
5
+ // concern that no model element traces to, and an unclaimed clause costs
6
+ // nothing to add later.
7
+ package memo_artifacts_standards_iso_13485 {
8
+ private import ScalarValues::*;
9
+ private import memo_core_enumerations::*;
10
+ private import memo_core_relationships::*;
11
+ private import memo_artifacts_standards_traceability::*;
12
+
13
+ item iso13485 : RegulatoryStandard {
14
+ attribute :>> id = "STD-ISO-13485";
15
+ attribute :>> name = "ISO13485";
16
+ attribute :>> designation = "ISO 13485:2016";
17
+ attribute :>> edition = "2016";
18
+ attribute :>> issuer = "ISO";
19
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA);
20
+ }
21
+
22
+ item iso13485Clause4 : StandardClause {
23
+ attribute :>> id = "STD-ISO-13485-4";
24
+ attribute :>> name = "ISO13485Clause4";
25
+ attribute :>> clauseNumber = "4";
26
+ attribute :>> title = "quality management system";
27
+ attribute :>> normativeStrength = "shall";
28
+ }
29
+ item iso13485Clause4_2 : StandardClause {
30
+ attribute :>> id = "STD-ISO-13485-4-2";
31
+ attribute :>> name = "ISO13485Clause4_2";
32
+ attribute :>> clauseNumber = "4.2";
33
+ attribute :>> title = "quality management system documentation";
34
+ attribute :>> normativeStrength = "shall";
35
+ }
36
+ item iso13485Clause4_2_4 : StandardClause {
37
+ attribute :>> id = "STD-ISO-13485-4-2-4";
38
+ attribute :>> name = "ISO13485Clause4_2_4";
39
+ attribute :>> clauseNumber = "4.2.4";
40
+ attribute :>> title = "control of documents";
41
+ attribute :>> normativeStrength = "shall";
42
+ }
43
+ item iso13485Clause7 : StandardClause {
44
+ attribute :>> id = "STD-ISO-13485-7";
45
+ attribute :>> name = "ISO13485Clause7";
46
+ attribute :>> clauseNumber = "7";
47
+ attribute :>> title = "product realization";
48
+ attribute :>> normativeStrength = "shall";
49
+ }
50
+ item iso13485Clause7_3 : StandardClause {
51
+ attribute :>> id = "STD-ISO-13485-7-3";
52
+ attribute :>> name = "ISO13485Clause7_3";
53
+ attribute :>> clauseNumber = "7.3";
54
+ attribute :>> title = "design and development";
55
+ attribute :>> normativeStrength = "shall";
56
+ }
57
+ item iso13485Clause7_3_3 : StandardClause {
58
+ attribute :>> id = "STD-ISO-13485-7-3-3";
59
+ attribute :>> name = "ISO13485Clause7_3_3";
60
+ attribute :>> clauseNumber = "7.3.3";
61
+ attribute :>> title = "design and development inputs";
62
+ attribute :>> normativeStrength = "shall";
63
+ }
64
+ item iso13485Clause7_3_4 : StandardClause {
65
+ attribute :>> id = "STD-ISO-13485-7-3-4";
66
+ attribute :>> name = "ISO13485Clause7_3_4";
67
+ attribute :>> clauseNumber = "7.3.4";
68
+ attribute :>> title = "design and development outputs";
69
+ attribute :>> normativeStrength = "shall";
70
+ }
71
+ item iso13485Clause7_3_6 : StandardClause {
72
+ attribute :>> id = "STD-ISO-13485-7-3-6";
73
+ attribute :>> name = "ISO13485Clause7_3_6";
74
+ attribute :>> clauseNumber = "7.3.6";
75
+ attribute :>> title = "design and development verification";
76
+ attribute :>> normativeStrength = "shall";
77
+ }
78
+ item iso13485Clause7_3_7 : StandardClause {
79
+ attribute :>> id = "STD-ISO-13485-7-3-7";
80
+ attribute :>> name = "ISO13485Clause7_3_7";
81
+ attribute :>> clauseNumber = "7.3.7";
82
+ attribute :>> title = "design and development validation";
83
+ attribute :>> normativeStrength = "shall";
84
+ }
85
+ item iso13485Clause7_3_9 : StandardClause {
86
+ attribute :>> id = "STD-ISO-13485-7-3-9";
87
+ attribute :>> name = "ISO13485Clause7_3_9";
88
+ attribute :>> clauseNumber = "7.3.9";
89
+ attribute :>> title = "control of design and development changes";
90
+ attribute :>> normativeStrength = "shall";
91
+ }
92
+ item iso13485Clause7_3_10 : StandardClause {
93
+ attribute :>> id = "STD-ISO-13485-7-3-10";
94
+ attribute :>> name = "ISO13485Clause7_3_10";
95
+ attribute :>> clauseNumber = "7.3.10";
96
+ attribute :>> title = "design and development files";
97
+ attribute :>> normativeStrength = "shall";
98
+ }
99
+
100
+ connection iso13485Has4 : Composes connect parent ::> iso13485 to child ::> iso13485Clause4;
101
+ connection iso13485Has7 : Composes connect parent ::> iso13485 to child ::> iso13485Clause7;
102
+
103
+ connection iso13485Has4_2 : Composes connect parent ::> iso13485Clause4 to child ::> iso13485Clause4_2;
104
+ connection iso13485Has4_2_4 : Composes connect parent ::> iso13485Clause4_2 to child ::> iso13485Clause4_2_4;
105
+
106
+ connection iso13485Has7_3 : Composes connect parent ::> iso13485Clause7 to child ::> iso13485Clause7_3;
107
+ connection iso13485Has7_3_3 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_3;
108
+ connection iso13485Has7_3_4 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_4;
109
+ connection iso13485Has7_3_6 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_6;
110
+ connection iso13485Has7_3_7 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_7;
111
+ connection iso13485Has7_3_9 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_9;
112
+ connection iso13485Has7_3_10 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_10;
113
+ }
@@ -0,0 +1,94 @@
1
+ // ISO 14971:2019 — application of risk management to medical devices.
2
+ //
3
+ // The risk-management process every other pack feeds. `title` is a
4
+ // MEMO-AUTHORED scope phrase, never the standard's own normative wording.
5
+ package memo_artifacts_standards_iso_14971 {
6
+ private import ScalarValues::*;
7
+ private import memo_core_enumerations::*;
8
+ private import memo_core_relationships::*;
9
+ private import memo_artifacts_standards_traceability::*;
10
+
11
+ item iso14971 : RegulatoryStandard {
12
+ attribute :>> id = "STD-ISO-14971";
13
+ attribute :>> name = "ISO14971";
14
+ attribute :>> designation = "ISO 14971:2019";
15
+ attribute :>> edition = "2019";
16
+ attribute :>> issuer = "ISO";
17
+ attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
18
+ }
19
+
20
+ item iso14971Clause4 : StandardClause {
21
+ attribute :>> id = "STD-ISO-14971-4";
22
+ attribute :>> name = "ISO14971Clause4";
23
+ attribute :>> clauseNumber = "4";
24
+ attribute :>> title = "general requirements for the risk management system";
25
+ attribute :>> normativeStrength = "shall";
26
+ }
27
+ item iso14971Clause4_4 : StandardClause {
28
+ attribute :>> id = "STD-ISO-14971-4-4";
29
+ attribute :>> name = "ISO14971Clause4_4";
30
+ attribute :>> clauseNumber = "4.4";
31
+ attribute :>> title = "risk management plan";
32
+ attribute :>> normativeStrength = "shall";
33
+ }
34
+ item iso14971Clause4_5 : StandardClause {
35
+ attribute :>> id = "STD-ISO-14971-4-5";
36
+ attribute :>> name = "ISO14971Clause4_5";
37
+ attribute :>> clauseNumber = "4.5";
38
+ attribute :>> title = "risk management file";
39
+ attribute :>> normativeStrength = "shall";
40
+ }
41
+ item iso14971Clause5 : StandardClause {
42
+ attribute :>> id = "STD-ISO-14971-5";
43
+ attribute :>> name = "ISO14971Clause5";
44
+ attribute :>> clauseNumber = "5";
45
+ attribute :>> title = "risk analysis";
46
+ attribute :>> normativeStrength = "shall";
47
+ }
48
+ item iso14971Clause6 : StandardClause {
49
+ attribute :>> id = "STD-ISO-14971-6";
50
+ attribute :>> name = "ISO14971Clause6";
51
+ attribute :>> clauseNumber = "6";
52
+ attribute :>> title = "risk evaluation";
53
+ attribute :>> normativeStrength = "shall";
54
+ }
55
+ item iso14971Clause7 : StandardClause {
56
+ attribute :>> id = "STD-ISO-14971-7";
57
+ attribute :>> name = "ISO14971Clause7";
58
+ attribute :>> clauseNumber = "7";
59
+ attribute :>> title = "risk control";
60
+ attribute :>> normativeStrength = "shall";
61
+ }
62
+ item iso14971Clause8 : StandardClause {
63
+ attribute :>> id = "STD-ISO-14971-8";
64
+ attribute :>> name = "ISO14971Clause8";
65
+ attribute :>> clauseNumber = "8";
66
+ attribute :>> title = "evaluation of overall residual risk";
67
+ attribute :>> normativeStrength = "shall";
68
+ }
69
+ item iso14971Clause9 : StandardClause {
70
+ attribute :>> id = "STD-ISO-14971-9";
71
+ attribute :>> name = "ISO14971Clause9";
72
+ attribute :>> clauseNumber = "9";
73
+ attribute :>> title = "risk management review";
74
+ attribute :>> normativeStrength = "shall";
75
+ }
76
+ item iso14971Clause10 : StandardClause {
77
+ attribute :>> id = "STD-ISO-14971-10";
78
+ attribute :>> name = "ISO14971Clause10";
79
+ attribute :>> clauseNumber = "10";
80
+ attribute :>> title = "production and post-production activities";
81
+ attribute :>> normativeStrength = "shall";
82
+ }
83
+
84
+ connection iso14971Has4 : Composes connect parent ::> iso14971 to child ::> iso14971Clause4;
85
+ connection iso14971Has5 : Composes connect parent ::> iso14971 to child ::> iso14971Clause5;
86
+ connection iso14971Has6 : Composes connect parent ::> iso14971 to child ::> iso14971Clause6;
87
+ connection iso14971Has7 : Composes connect parent ::> iso14971 to child ::> iso14971Clause7;
88
+ connection iso14971Has8 : Composes connect parent ::> iso14971 to child ::> iso14971Clause8;
89
+ connection iso14971Has9 : Composes connect parent ::> iso14971 to child ::> iso14971Clause9;
90
+ connection iso14971Has10 : Composes connect parent ::> iso14971 to child ::> iso14971Clause10;
91
+
92
+ connection iso14971Has4_4 : Composes connect parent ::> iso14971Clause4 to child ::> iso14971Clause4_4;
93
+ connection iso14971Has4_5 : Composes connect parent ::> iso14971Clause4 to child ::> iso14971Clause4_5;
94
+ }
@@ -0,0 +1,42 @@
1
+ // ISO/IEC/IEEE 42010:2022 — architecture description.
2
+ //
3
+ // One standard from a joint committee, not three: the spaced slash is what
4
+ // separates two designations, and there is none here.
5
+ //
6
+ // SCOPE PHRASES DELIBERATELY ABSENT — same reason as the IEC 60812 pack. The
7
+ // 2022 edition reorganised the clause structure of 42010:2011, and MEMO has no
8
+ // verified reading of the new numbering. A missing label is a gap a reviewer
9
+ // closes in one line; a guessed one is a citation nobody can check.
10
+ package memo_artifacts_standards_iso_iec_ieee_42010 {
11
+ private import ScalarValues::*;
12
+ private import memo_core_relationships::*;
13
+ private import memo_artifacts_standards_traceability::*;
14
+
15
+ item isoIecIeee42010 : RegulatoryStandard {
16
+ attribute :>> id = "STD-ISO-IEC-IEEE-42010";
17
+ attribute :>> name = "ISOIECIEEE42010";
18
+ attribute :>> designation = "ISO/IEC/IEEE 42010:2022";
19
+ attribute :>> edition = "2022";
20
+ attribute :>> issuer = "ISO/IEC/IEEE";
21
+ // No submission regime mandates this standard: it is a method /
22
+ // reference standard, cited by documents rather than required by a
23
+ // market. Empty is the authored value, not an omission — see
24
+ // appliesToRegime in memo_artifacts_standards_traceability.
25
+ }
26
+
27
+ item isoIecIeee42010Clause5 : StandardClause {
28
+ attribute :>> id = "STD-ISO-IEC-IEEE-42010-5";
29
+ attribute :>> name = "ISOIECIEEE42010Clause5";
30
+ attribute :>> clauseNumber = "5";
31
+ attribute :>> normativeStrength = "shall";
32
+ }
33
+ item isoIecIeee42010Clause6 : StandardClause {
34
+ attribute :>> id = "STD-ISO-IEC-IEEE-42010-6";
35
+ attribute :>> name = "ISOIECIEEE42010Clause6";
36
+ attribute :>> clauseNumber = "6";
37
+ attribute :>> normativeStrength = "shall";
38
+ }
39
+
40
+ connection isoIecIeee42010Has5 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause5;
41
+ connection isoIecIeee42010Has6 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause6;
42
+ }