@memoarchitect/ontology 0.6.5 → 0.8.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +19 -9
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +342 -100
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +27 -13
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +329 -272
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +57 -16
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +12 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -10
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +181 -264
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +95 -60
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -11
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +102 -101
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +47 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +301 -354
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +116 -36
- package/examples/gpca-pump/model/catalog/project.sysml +26 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +8 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +8 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +3 -3
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -2
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
- package/examples/nested-architecture-dsm/README.md +49 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +179 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +165 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +113 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +48 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +11 -8
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +28 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +57 -57
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
- package/examples/surgical-robot/model/catalog/project.sysml +24 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +6 -4
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
- package/examples/sysml-diagram-samples/README.md +7 -0
- package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +11 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +143 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +87 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +109 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +6 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +80 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +48 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +15 -9
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +29 -21
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
- package/examples/ui-screen-regions/README.md +117 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +84 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +212 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +75 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +179 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/clinical/memo.package.yaml +18 -0
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +22 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/memo.package.yaml +17 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +15 -2
- package/methodologies/default/memo.package.yaml +19 -9
- package/methodologies/gpca/memo.package.yaml +18 -9
- package/ontology/memo.package.yaml +23 -8
- package/package.json +6 -6
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +28 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +50 -22
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -43
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -24
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +52 -12
- package/src/architecture/implementation/ui/memo_ui.sysml +276 -53
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -13
- package/src/architecture/logical/structure/memo_logical_structure.sysml +92 -35
- package/src/architecture/operational/activities/memo_activities.sysml +10 -4
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +28 -15
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +35 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +35 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +5 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +6 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +5 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +172 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +93 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +116 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +78 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +27 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +96 -0
- package/src/core/common/memo_common.sysml +140 -18
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +17 -1
- package/src/core/enumerations/memo_enumerations.sysml +101 -20
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +199 -194
- package/src/memo_namespaces.sysml +127 -67
- package/src/methodology/core/memo_core.sysml +69 -2
- package/src/methodology/profiles/memo_profiles.sysml +31 -41
- package/src/methodology/workflow/memo_workflow.sysml +7 -2
- package/src/rules/closure/closure_rules.sysml +104 -31
- package/src/rules/coverage/coverage_rules.sysml +4 -256
- package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
- package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
- package/src/rules/ontology/ontology_invariants.sysml +243 -74
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +10 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +4 -2
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +5 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +3 -3
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +3 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
- package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +3 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
- package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
- package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
- package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
- package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
- package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
- package/src/viewpoints/software/software_viewpoint.sysml +3 -1
- package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
- package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +3 -3
- package/templates/connected-device/memo.package.yaml +11 -5
- package/templates/connected-device/model/catalog/project.sysml +28 -0
- package/templates/connected-device/syside.toml +1 -1
- package/templates/default/memo.package.yaml +11 -5
- package/templates/default/model/catalog/project.sysml +28 -0
- package/templates/default/syside.toml +1 -1
- package/templates/infusion-pump/memo.package.yaml +11 -5
- package/templates/infusion-pump/model/catalog/project.sysml +28 -0
- package/templates/infusion-pump/syside.toml +1 -1
- package/templates/monitoring-device/memo.package.yaml +11 -5
- package/templates/monitoring-device/model/catalog/project.sysml +28 -0
- package/templates/monitoring-device/syside.toml +1 -1
- package/templates/samd/memo.package.yaml +11 -5
- package/templates/samd/model/catalog/project.sysml +28 -0
- package/templates/samd/syside.toml +1 -1
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/clinical/memo.package.yaml +0 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -14
- package/examples/extensions/template/memo.package.yaml +0 -9
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
- package/examples/gpca-pump/memo.config.yaml +0 -9
- package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
- package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
- package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
- package/examples/sysml-diagram-samples/model/samples/functional_flow_view.sysml +0 -164
- package/examples/sysml-diagram-samples/model/samples/interconnection_view.sysml +0 -94
- package/examples/sysml-diagram-samples/model/samples/operational_behaviour_view.sysml +0 -135
- package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +0 -109
- package/examples/sysml-diagram-samples/model/samples/tree_view.sysml +0 -56
- package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
- package/ontology/memo.rendering.yaml +0 -84
- package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
- package/src/compliance/change/memo_change.sysml +0 -17
- package/src/compliance/dhf-templates/iec-62304/srs.md +0 -138
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +0 -57
- package/src/compliance/dhf-templates/iso-14971/fmea.md +0 -93
- package/src/compliance/document_views/memo_document_views.sysml +0 -7
- package/src/compliance/iso14971/risk_management_file.sysml +0 -16
- package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
- /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// IEC 81001-5-1:2021 — Health software and health IT systems safety, effectiveness and security — Part 5-1: Security — Activities in the product life cycle
|
|
2
|
+
//
|
|
3
|
+
// Clause instances, not type machinery. Everything here is data: adding a
|
|
4
|
+
// standard is one file like this one and zero TypeScript changes.
|
|
5
|
+
package memo_artifacts_standards_iec_81001_5_1 {
|
|
6
|
+
private import ScalarValues::*;
|
|
7
|
+
private import memo_core_enumerations::*;
|
|
8
|
+
private import memo_core_relationships::*;
|
|
9
|
+
private import memo_artifacts_standards_traceability::*;
|
|
10
|
+
|
|
11
|
+
item iec81001_5_1 : RegulatoryStandard {
|
|
12
|
+
attribute :>> id = "STD-IEC-81001-5-1";
|
|
13
|
+
attribute :>> name = "IEC81001_5_1";
|
|
14
|
+
attribute :>> designation = "IEC 81001-5-1:2021";
|
|
15
|
+
attribute :>> edition = "2021";
|
|
16
|
+
attribute :>> issuer = "IEC";
|
|
17
|
+
attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
item iec81001_5_1Clause4 : StandardClause {
|
|
21
|
+
attribute :>> id = "STD-IEC-81001-5-1-4";
|
|
22
|
+
attribute :>> name = "IEC81001_5_1Clause4";
|
|
23
|
+
attribute :>> clauseNumber = "4";
|
|
24
|
+
attribute :>> title = "general requirements";
|
|
25
|
+
attribute :>> normativeStrength = "shall";
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
item iec81001_5_1Clause5 : StandardClause {
|
|
29
|
+
attribute :>> id = "STD-IEC-81001-5-1-5";
|
|
30
|
+
attribute :>> name = "IEC81001_5_1Clause5";
|
|
31
|
+
attribute :>> clauseNumber = "5";
|
|
32
|
+
attribute :>> title = "software development process";
|
|
33
|
+
attribute :>> normativeStrength = "shall";
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
item iec81001_5_1Clause5_1 : StandardClause {
|
|
37
|
+
attribute :>> id = "STD-IEC-81001-5-1-5-1";
|
|
38
|
+
attribute :>> name = "IEC81001_5_1Clause5_1";
|
|
39
|
+
attribute :>> clauseNumber = "5.1";
|
|
40
|
+
attribute :>> title = "software development planning";
|
|
41
|
+
attribute :>> normativeStrength = "shall";
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
item iec81001_5_1Clause5_2 : StandardClause {
|
|
45
|
+
attribute :>> id = "STD-IEC-81001-5-1-5-2";
|
|
46
|
+
attribute :>> name = "IEC81001_5_1Clause5_2";
|
|
47
|
+
attribute :>> clauseNumber = "5.2";
|
|
48
|
+
attribute :>> title = "software requirements analysis";
|
|
49
|
+
attribute :>> normativeStrength = "shall";
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
item iec81001_5_1Clause5_3 : StandardClause {
|
|
53
|
+
attribute :>> id = "STD-IEC-81001-5-1-5-3";
|
|
54
|
+
attribute :>> name = "IEC81001_5_1Clause5_3";
|
|
55
|
+
attribute :>> clauseNumber = "5.3";
|
|
56
|
+
attribute :>> title = "software architectural design";
|
|
57
|
+
attribute :>> normativeStrength = "shall";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
item iec81001_5_1Clause5_4 : StandardClause {
|
|
61
|
+
attribute :>> id = "STD-IEC-81001-5-1-5-4";
|
|
62
|
+
attribute :>> name = "IEC81001_5_1Clause5_4";
|
|
63
|
+
attribute :>> clauseNumber = "5.4";
|
|
64
|
+
attribute :>> title = "software design";
|
|
65
|
+
attribute :>> normativeStrength = "shall";
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
item iec81001_5_1Clause5_8 : StandardClause {
|
|
69
|
+
attribute :>> id = "STD-IEC-81001-5-1-5-8";
|
|
70
|
+
attribute :>> name = "IEC81001_5_1Clause5_8";
|
|
71
|
+
attribute :>> clauseNumber = "5.8";
|
|
72
|
+
attribute :>> title = "software release";
|
|
73
|
+
attribute :>> normativeStrength = "shall";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
connection iec81001_5_1Has4 : Composes connect parent ::> iec81001_5_1 to child ::> iec81001_5_1Clause4;
|
|
77
|
+
connection iec81001_5_1Has5 : Composes connect parent ::> iec81001_5_1 to child ::> iec81001_5_1Clause5;
|
|
78
|
+
|
|
79
|
+
connection iec81001_5_1Has5_1 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_1;
|
|
80
|
+
connection iec81001_5_1Has5_2 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_2;
|
|
81
|
+
connection iec81001_5_1Has5_3 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_3;
|
|
82
|
+
connection iec81001_5_1Has5_4 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_4;
|
|
83
|
+
connection iec81001_5_1Has5_8 : Composes connect parent ::> iec81001_5_1Clause5 to child ::> iec81001_5_1Clause5_8;
|
|
84
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// ISO 13485:2016 — quality management systems for medical devices.
|
|
2
|
+
//
|
|
3
|
+
// Only the design-and-development and document-control clauses MEMO documents
|
|
4
|
+
// actually claim are represented. The rest of the QMS is a management-system
|
|
5
|
+
// concern that no model element traces to, and an unclaimed clause costs
|
|
6
|
+
// nothing to add later.
|
|
7
|
+
package memo_artifacts_standards_iso_13485 {
|
|
8
|
+
private import ScalarValues::*;
|
|
9
|
+
private import memo_core_enumerations::*;
|
|
10
|
+
private import memo_core_relationships::*;
|
|
11
|
+
private import memo_artifacts_standards_traceability::*;
|
|
12
|
+
|
|
13
|
+
item iso13485 : RegulatoryStandard {
|
|
14
|
+
attribute :>> id = "STD-ISO-13485";
|
|
15
|
+
attribute :>> name = "ISO13485";
|
|
16
|
+
attribute :>> designation = "ISO 13485:2016";
|
|
17
|
+
attribute :>> edition = "2016";
|
|
18
|
+
attribute :>> issuer = "ISO";
|
|
19
|
+
attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
item iso13485Clause4 : StandardClause {
|
|
23
|
+
attribute :>> id = "STD-ISO-13485-4";
|
|
24
|
+
attribute :>> name = "ISO13485Clause4";
|
|
25
|
+
attribute :>> clauseNumber = "4";
|
|
26
|
+
attribute :>> title = "quality management system";
|
|
27
|
+
attribute :>> normativeStrength = "shall";
|
|
28
|
+
}
|
|
29
|
+
item iso13485Clause4_2 : StandardClause {
|
|
30
|
+
attribute :>> id = "STD-ISO-13485-4-2";
|
|
31
|
+
attribute :>> name = "ISO13485Clause4_2";
|
|
32
|
+
attribute :>> clauseNumber = "4.2";
|
|
33
|
+
attribute :>> title = "quality management system documentation";
|
|
34
|
+
attribute :>> normativeStrength = "shall";
|
|
35
|
+
}
|
|
36
|
+
item iso13485Clause4_2_4 : StandardClause {
|
|
37
|
+
attribute :>> id = "STD-ISO-13485-4-2-4";
|
|
38
|
+
attribute :>> name = "ISO13485Clause4_2_4";
|
|
39
|
+
attribute :>> clauseNumber = "4.2.4";
|
|
40
|
+
attribute :>> title = "control of documents";
|
|
41
|
+
attribute :>> normativeStrength = "shall";
|
|
42
|
+
}
|
|
43
|
+
item iso13485Clause7 : StandardClause {
|
|
44
|
+
attribute :>> id = "STD-ISO-13485-7";
|
|
45
|
+
attribute :>> name = "ISO13485Clause7";
|
|
46
|
+
attribute :>> clauseNumber = "7";
|
|
47
|
+
attribute :>> title = "product realization";
|
|
48
|
+
attribute :>> normativeStrength = "shall";
|
|
49
|
+
}
|
|
50
|
+
item iso13485Clause7_3 : StandardClause {
|
|
51
|
+
attribute :>> id = "STD-ISO-13485-7-3";
|
|
52
|
+
attribute :>> name = "ISO13485Clause7_3";
|
|
53
|
+
attribute :>> clauseNumber = "7.3";
|
|
54
|
+
attribute :>> title = "design and development";
|
|
55
|
+
attribute :>> normativeStrength = "shall";
|
|
56
|
+
}
|
|
57
|
+
item iso13485Clause7_3_3 : StandardClause {
|
|
58
|
+
attribute :>> id = "STD-ISO-13485-7-3-3";
|
|
59
|
+
attribute :>> name = "ISO13485Clause7_3_3";
|
|
60
|
+
attribute :>> clauseNumber = "7.3.3";
|
|
61
|
+
attribute :>> title = "design and development inputs";
|
|
62
|
+
attribute :>> normativeStrength = "shall";
|
|
63
|
+
}
|
|
64
|
+
item iso13485Clause7_3_4 : StandardClause {
|
|
65
|
+
attribute :>> id = "STD-ISO-13485-7-3-4";
|
|
66
|
+
attribute :>> name = "ISO13485Clause7_3_4";
|
|
67
|
+
attribute :>> clauseNumber = "7.3.4";
|
|
68
|
+
attribute :>> title = "design and development outputs";
|
|
69
|
+
attribute :>> normativeStrength = "shall";
|
|
70
|
+
}
|
|
71
|
+
item iso13485Clause7_3_6 : StandardClause {
|
|
72
|
+
attribute :>> id = "STD-ISO-13485-7-3-6";
|
|
73
|
+
attribute :>> name = "ISO13485Clause7_3_6";
|
|
74
|
+
attribute :>> clauseNumber = "7.3.6";
|
|
75
|
+
attribute :>> title = "design and development verification";
|
|
76
|
+
attribute :>> normativeStrength = "shall";
|
|
77
|
+
}
|
|
78
|
+
item iso13485Clause7_3_7 : StandardClause {
|
|
79
|
+
attribute :>> id = "STD-ISO-13485-7-3-7";
|
|
80
|
+
attribute :>> name = "ISO13485Clause7_3_7";
|
|
81
|
+
attribute :>> clauseNumber = "7.3.7";
|
|
82
|
+
attribute :>> title = "design and development validation";
|
|
83
|
+
attribute :>> normativeStrength = "shall";
|
|
84
|
+
}
|
|
85
|
+
item iso13485Clause7_3_9 : StandardClause {
|
|
86
|
+
attribute :>> id = "STD-ISO-13485-7-3-9";
|
|
87
|
+
attribute :>> name = "ISO13485Clause7_3_9";
|
|
88
|
+
attribute :>> clauseNumber = "7.3.9";
|
|
89
|
+
attribute :>> title = "control of design and development changes";
|
|
90
|
+
attribute :>> normativeStrength = "shall";
|
|
91
|
+
}
|
|
92
|
+
item iso13485Clause7_3_10 : StandardClause {
|
|
93
|
+
attribute :>> id = "STD-ISO-13485-7-3-10";
|
|
94
|
+
attribute :>> name = "ISO13485Clause7_3_10";
|
|
95
|
+
attribute :>> clauseNumber = "7.3.10";
|
|
96
|
+
attribute :>> title = "design and development files";
|
|
97
|
+
attribute :>> normativeStrength = "shall";
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
connection iso13485Has4 : Composes connect parent ::> iso13485 to child ::> iso13485Clause4;
|
|
101
|
+
connection iso13485Has7 : Composes connect parent ::> iso13485 to child ::> iso13485Clause7;
|
|
102
|
+
|
|
103
|
+
connection iso13485Has4_2 : Composes connect parent ::> iso13485Clause4 to child ::> iso13485Clause4_2;
|
|
104
|
+
connection iso13485Has4_2_4 : Composes connect parent ::> iso13485Clause4_2 to child ::> iso13485Clause4_2_4;
|
|
105
|
+
|
|
106
|
+
connection iso13485Has7_3 : Composes connect parent ::> iso13485Clause7 to child ::> iso13485Clause7_3;
|
|
107
|
+
connection iso13485Has7_3_3 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_3;
|
|
108
|
+
connection iso13485Has7_3_4 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_4;
|
|
109
|
+
connection iso13485Has7_3_6 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_6;
|
|
110
|
+
connection iso13485Has7_3_7 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_7;
|
|
111
|
+
connection iso13485Has7_3_9 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_9;
|
|
112
|
+
connection iso13485Has7_3_10 : Composes connect parent ::> iso13485Clause7_3 to child ::> iso13485Clause7_3_10;
|
|
113
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// ISO 14971:2019 — application of risk management to medical devices.
|
|
2
|
+
//
|
|
3
|
+
// The risk-management process every other pack feeds. `title` is a
|
|
4
|
+
// MEMO-AUTHORED scope phrase, never the standard's own normative wording.
|
|
5
|
+
package memo_artifacts_standards_iso_14971 {
|
|
6
|
+
private import ScalarValues::*;
|
|
7
|
+
private import memo_core_enumerations::*;
|
|
8
|
+
private import memo_core_relationships::*;
|
|
9
|
+
private import memo_artifacts_standards_traceability::*;
|
|
10
|
+
|
|
11
|
+
item iso14971 : RegulatoryStandard {
|
|
12
|
+
attribute :>> id = "STD-ISO-14971";
|
|
13
|
+
attribute :>> name = "ISO14971";
|
|
14
|
+
attribute :>> designation = "ISO 14971:2019";
|
|
15
|
+
attribute :>> edition = "2019";
|
|
16
|
+
attribute :>> issuer = "ISO";
|
|
17
|
+
attribute :>> appliesToRegime = (RegulatoryRegimeKind::CE, RegulatoryRegimeKind::MDR, RegulatoryRegimeKind::UKCA, RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
item iso14971Clause4 : StandardClause {
|
|
21
|
+
attribute :>> id = "STD-ISO-14971-4";
|
|
22
|
+
attribute :>> name = "ISO14971Clause4";
|
|
23
|
+
attribute :>> clauseNumber = "4";
|
|
24
|
+
attribute :>> title = "general requirements for the risk management system";
|
|
25
|
+
attribute :>> normativeStrength = "shall";
|
|
26
|
+
}
|
|
27
|
+
item iso14971Clause4_4 : StandardClause {
|
|
28
|
+
attribute :>> id = "STD-ISO-14971-4-4";
|
|
29
|
+
attribute :>> name = "ISO14971Clause4_4";
|
|
30
|
+
attribute :>> clauseNumber = "4.4";
|
|
31
|
+
attribute :>> title = "risk management plan";
|
|
32
|
+
attribute :>> normativeStrength = "shall";
|
|
33
|
+
}
|
|
34
|
+
item iso14971Clause4_5 : StandardClause {
|
|
35
|
+
attribute :>> id = "STD-ISO-14971-4-5";
|
|
36
|
+
attribute :>> name = "ISO14971Clause4_5";
|
|
37
|
+
attribute :>> clauseNumber = "4.5";
|
|
38
|
+
attribute :>> title = "risk management file";
|
|
39
|
+
attribute :>> normativeStrength = "shall";
|
|
40
|
+
}
|
|
41
|
+
item iso14971Clause5 : StandardClause {
|
|
42
|
+
attribute :>> id = "STD-ISO-14971-5";
|
|
43
|
+
attribute :>> name = "ISO14971Clause5";
|
|
44
|
+
attribute :>> clauseNumber = "5";
|
|
45
|
+
attribute :>> title = "risk analysis";
|
|
46
|
+
attribute :>> normativeStrength = "shall";
|
|
47
|
+
}
|
|
48
|
+
item iso14971Clause6 : StandardClause {
|
|
49
|
+
attribute :>> id = "STD-ISO-14971-6";
|
|
50
|
+
attribute :>> name = "ISO14971Clause6";
|
|
51
|
+
attribute :>> clauseNumber = "6";
|
|
52
|
+
attribute :>> title = "risk evaluation";
|
|
53
|
+
attribute :>> normativeStrength = "shall";
|
|
54
|
+
}
|
|
55
|
+
item iso14971Clause7 : StandardClause {
|
|
56
|
+
attribute :>> id = "STD-ISO-14971-7";
|
|
57
|
+
attribute :>> name = "ISO14971Clause7";
|
|
58
|
+
attribute :>> clauseNumber = "7";
|
|
59
|
+
attribute :>> title = "risk control";
|
|
60
|
+
attribute :>> normativeStrength = "shall";
|
|
61
|
+
}
|
|
62
|
+
item iso14971Clause8 : StandardClause {
|
|
63
|
+
attribute :>> id = "STD-ISO-14971-8";
|
|
64
|
+
attribute :>> name = "ISO14971Clause8";
|
|
65
|
+
attribute :>> clauseNumber = "8";
|
|
66
|
+
attribute :>> title = "evaluation of overall residual risk";
|
|
67
|
+
attribute :>> normativeStrength = "shall";
|
|
68
|
+
}
|
|
69
|
+
item iso14971Clause9 : StandardClause {
|
|
70
|
+
attribute :>> id = "STD-ISO-14971-9";
|
|
71
|
+
attribute :>> name = "ISO14971Clause9";
|
|
72
|
+
attribute :>> clauseNumber = "9";
|
|
73
|
+
attribute :>> title = "risk management review";
|
|
74
|
+
attribute :>> normativeStrength = "shall";
|
|
75
|
+
}
|
|
76
|
+
item iso14971Clause10 : StandardClause {
|
|
77
|
+
attribute :>> id = "STD-ISO-14971-10";
|
|
78
|
+
attribute :>> name = "ISO14971Clause10";
|
|
79
|
+
attribute :>> clauseNumber = "10";
|
|
80
|
+
attribute :>> title = "production and post-production activities";
|
|
81
|
+
attribute :>> normativeStrength = "shall";
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
connection iso14971Has4 : Composes connect parent ::> iso14971 to child ::> iso14971Clause4;
|
|
85
|
+
connection iso14971Has5 : Composes connect parent ::> iso14971 to child ::> iso14971Clause5;
|
|
86
|
+
connection iso14971Has6 : Composes connect parent ::> iso14971 to child ::> iso14971Clause6;
|
|
87
|
+
connection iso14971Has7 : Composes connect parent ::> iso14971 to child ::> iso14971Clause7;
|
|
88
|
+
connection iso14971Has8 : Composes connect parent ::> iso14971 to child ::> iso14971Clause8;
|
|
89
|
+
connection iso14971Has9 : Composes connect parent ::> iso14971 to child ::> iso14971Clause9;
|
|
90
|
+
connection iso14971Has10 : Composes connect parent ::> iso14971 to child ::> iso14971Clause10;
|
|
91
|
+
|
|
92
|
+
connection iso14971Has4_4 : Composes connect parent ::> iso14971Clause4 to child ::> iso14971Clause4_4;
|
|
93
|
+
connection iso14971Has4_5 : Composes connect parent ::> iso14971Clause4 to child ::> iso14971Clause4_5;
|
|
94
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// ISO/IEC/IEEE 42010:2022 — architecture description.
|
|
2
|
+
//
|
|
3
|
+
// One standard from a joint committee, not three: the spaced slash is what
|
|
4
|
+
// separates two designations, and there is none here.
|
|
5
|
+
//
|
|
6
|
+
// SCOPE PHRASES DELIBERATELY ABSENT — same reason as the IEC 60812 pack. The
|
|
7
|
+
// 2022 edition reorganised the clause structure of 42010:2011, and MEMO has no
|
|
8
|
+
// verified reading of the new numbering. A missing label is a gap a reviewer
|
|
9
|
+
// closes in one line; a guessed one is a citation nobody can check.
|
|
10
|
+
package memo_artifacts_standards_iso_iec_ieee_42010 {
|
|
11
|
+
private import ScalarValues::*;
|
|
12
|
+
private import memo_core_relationships::*;
|
|
13
|
+
private import memo_artifacts_standards_traceability::*;
|
|
14
|
+
|
|
15
|
+
item isoIecIeee42010 : RegulatoryStandard {
|
|
16
|
+
attribute :>> id = "STD-ISO-IEC-IEEE-42010";
|
|
17
|
+
attribute :>> name = "ISOIECIEEE42010";
|
|
18
|
+
attribute :>> designation = "ISO/IEC/IEEE 42010:2022";
|
|
19
|
+
attribute :>> edition = "2022";
|
|
20
|
+
attribute :>> issuer = "ISO/IEC/IEEE";
|
|
21
|
+
// No submission regime mandates this standard: it is a method /
|
|
22
|
+
// reference standard, cited by documents rather than required by a
|
|
23
|
+
// market. Empty is the authored value, not an omission — see
|
|
24
|
+
// appliesToRegime in memo_artifacts_standards_traceability.
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
item isoIecIeee42010Clause5 : StandardClause {
|
|
28
|
+
attribute :>> id = "STD-ISO-IEC-IEEE-42010-5";
|
|
29
|
+
attribute :>> name = "ISOIECIEEE42010Clause5";
|
|
30
|
+
attribute :>> clauseNumber = "5";
|
|
31
|
+
attribute :>> normativeStrength = "shall";
|
|
32
|
+
}
|
|
33
|
+
item isoIecIeee42010Clause6 : StandardClause {
|
|
34
|
+
attribute :>> id = "STD-ISO-IEC-IEEE-42010-6";
|
|
35
|
+
attribute :>> name = "ISOIECIEEE42010Clause6";
|
|
36
|
+
attribute :>> clauseNumber = "6";
|
|
37
|
+
attribute :>> normativeStrength = "shall";
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
connection isoIecIeee42010Has5 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause5;
|
|
41
|
+
connection isoIecIeee42010Has6 : Composes connect parent ::> isoIecIeee42010 to child ::> isoIecIeee42010Clause6;
|
|
42
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Clause-level traceability: the project-facing half of the regulatory axis.
|
|
2
|
+
//
|
|
3
|
+
// MEMO carries standards in two mechanisms, and this file is one of them:
|
|
4
|
+
//
|
|
5
|
+
// @StandardReference metadata (core/semantics) — provenance INSIDE the MEMO
|
|
6
|
+
// library: "this ontology type exists because ISO 14971 §5.4 says so".
|
|
7
|
+
// Library-internal, not project data.
|
|
8
|
+
// ConformsTo (here) — PROJECT traceability:
|
|
9
|
+
// "this requirement in this project satisfies IEC 62304 §5.2.2".
|
|
10
|
+
// Queryable, reportable, auditable.
|
|
11
|
+
//
|
|
12
|
+
// Do not add a third. A standard is data in the ontology, not a code path:
|
|
13
|
+
// adding ISO 13485 must be one new file of RegulatoryStandard/StandardClause
|
|
14
|
+
// instances and zero TypeScript changes.
|
|
15
|
+
//
|
|
16
|
+
// Nothing here is abstract. An abstract def cannot be instantiated, so a
|
|
17
|
+
// traceability matrix over abstract clause types is empty by construction —
|
|
18
|
+
// which is the failure mode this whole area exists to prevent.
|
|
19
|
+
//
|
|
20
|
+
// ─── The clause library and how a document cites it ──────────────────────
|
|
21
|
+
//
|
|
22
|
+
// The concrete instances live one file per standard beside this one
|
|
23
|
+
// (iec_62304.sysml, iec_60601_1.sysml, …). A DHF template cites them from its
|
|
24
|
+
// frontmatter, in one of two shapes:
|
|
25
|
+
//
|
|
26
|
+
// clauses: ["5.4"] relative — the clause number
|
|
27
|
+
// belongs to this document's
|
|
28
|
+
// own `standard:`
|
|
29
|
+
// clauses: ["ISO 14971:2019 §7"] qualified — the designation
|
|
30
|
+
// before the section sign, the
|
|
31
|
+
// clause number after it
|
|
32
|
+
//
|
|
33
|
+
// An entry containing "§" is qualified and nothing else is: that is the whole
|
|
34
|
+
// grammar. The designation must match a RegulatoryStandard's `designation`
|
|
35
|
+
// exactly, amendments included, and the clause number must match a
|
|
36
|
+
// StandardClause's `clauseNumber` exactly. Both are checked by
|
|
37
|
+
// standards-library.test.ts in memo-tools, which is what makes "adding a
|
|
38
|
+
// standard is one file" true rather than aspirational.
|
|
39
|
+
package memo_artifacts_standards_traceability {
|
|
40
|
+
private import Metaobjects::SemanticMetadata;
|
|
41
|
+
private import ScalarValues::*;
|
|
42
|
+
private import memo_core_common::*;
|
|
43
|
+
private import memo_core_enumerations::*;
|
|
44
|
+
private import memo_core_relationships::*;
|
|
45
|
+
private import memo_artifacts_core::*;
|
|
46
|
+
|
|
47
|
+
// =========================================================================
|
|
48
|
+
// Standards and clauses
|
|
49
|
+
// =========================================================================
|
|
50
|
+
|
|
51
|
+
item def RegulatoryStandard :> MemoArtifactItem {
|
|
52
|
+
doc /* A regulatory or consensus standard a project claims conformance
|
|
53
|
+
* to, identified by its full designation including edition and
|
|
54
|
+
* amendments (e.g. "IEC 62366-1:2015+AMD1:2020"). Dropping the
|
|
55
|
+
* amendment is a CE/MDR regression, so it is carried explicitly
|
|
56
|
+
* rather than folded into the designation by convention. */
|
|
57
|
+
attribute designation : String;
|
|
58
|
+
attribute edition : String[0..1];
|
|
59
|
+
attribute issuer : String[0..1];
|
|
60
|
+
attribute amendments : String[0..*];
|
|
61
|
+
// Which submission regimes this standard has standing in. Empty is a
|
|
62
|
+
// MEANINGFUL value, not an unset one: it says no regime mandates this
|
|
63
|
+
// standard, which is true of the method and reference standards MEMO
|
|
64
|
+
// carries (IEC 60812's FMEA method, ISO/IEC/IEEE 42010's architecture
|
|
65
|
+
// description). A regime-free standard never contributes to
|
|
66
|
+
// `required(project)` — its clauses are claimable but not required.
|
|
67
|
+
//
|
|
68
|
+
// Because empty means something, it cannot also mean "the pack author
|
|
69
|
+
// forgot". `memo standards check` prints regime-free standards in their
|
|
70
|
+
// own section rather than dropping them, and standards-library.test.ts
|
|
71
|
+
// names the exact set — the same way Phase 2 named the four document
|
|
72
|
+
// types that derive no standards. A forgotten regime is a red test.
|
|
73
|
+
attribute appliesToRegime : RegulatoryRegimeKind[0..*];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
item def StandardClause :> MemoArtifactItem {
|
|
77
|
+
doc /* One normative clause of a RegulatoryStandard, at the depth at
|
|
78
|
+
* which the standard makes a distinct requirement a MEMO document
|
|
79
|
+
* actually claims. `title` is a MEMO-authored scope phrase — a
|
|
80
|
+
* representative synonym for what the clause governs ("§17" →
|
|
81
|
+
* "electromagnetic compatibility") — never the standard's own
|
|
82
|
+
* normative wording, which is copyrighted. The scope phrase is a
|
|
83
|
+
* label: queries traverse ConformsTo to the clause instance, they
|
|
84
|
+
* never match on its text.
|
|
85
|
+
*
|
|
86
|
+
* Clause containment uses the existing Composes relation
|
|
87
|
+
* (standard as parent, clause as child; clause as parent,
|
|
88
|
+
* sub-clause as child). There is no clause-specific composition
|
|
89
|
+
* type, because whole/part decomposition is already one relation
|
|
90
|
+
* in MEMO. */
|
|
91
|
+
attribute clauseNumber : String;
|
|
92
|
+
attribute title : String[0..1];
|
|
93
|
+
attribute normativeStrength : String[0..1];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// =========================================================================
|
|
97
|
+
// Relationships
|
|
98
|
+
// =========================================================================
|
|
99
|
+
|
|
100
|
+
connection def ConformsTo :> MemoRelationship {
|
|
101
|
+
doc /* Any model element claims conformance to a standard clause.
|
|
102
|
+
* This is the edge the standards traceability matrix and the
|
|
103
|
+
* clause coverage report are computed over. */
|
|
104
|
+
end conformingElement : MemoPart :>> source;
|
|
105
|
+
end clause : StandardClause :>> target;
|
|
106
|
+
}
|
|
107
|
+
abstract connection conformsToLinks : ConformsTo[*];
|
|
108
|
+
metadata def <conformsTo> ConformsToMetadata :> SemanticMetadata {
|
|
109
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
110
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
111
|
+
:>> baseType = conformsToLinks meta SysML::Usage;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
connection def TracesToDocument :> MemoRelationship {
|
|
115
|
+
doc /* Where the evidence for a clause claim is written down. The target
|
|
116
|
+
* is the existing controlled-artifact type — MEMO does not model a
|
|
117
|
+
* separate Document/DocumentSection family, because
|
|
118
|
+
* ControlledArtifact / ModelOwnedArtifact / MarkdownDocumentSource
|
|
119
|
+
* already carry version, owner and approval status. Section
|
|
120
|
+
* granularity rides on the link as a reference string rather than
|
|
121
|
+
* as a duplicate element type. */
|
|
122
|
+
attribute sectionReference : String[0..1];
|
|
123
|
+
end tracedElement : MemoPart :>> source;
|
|
124
|
+
end artifact : ControlledArtifact :>> target;
|
|
125
|
+
}
|
|
126
|
+
abstract connection tracesToDocumentLinks : TracesToDocument[*];
|
|
127
|
+
metadata def <tracesToDocument> TracesToDocumentMetadata :> SemanticMetadata {
|
|
128
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
129
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
130
|
+
:>> baseType = tracesToDocumentLinks meta SysML::Usage;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -23,8 +23,8 @@ Defines design outputs for **{{project.product}}** per 21 CFR 820.30(d). Design
|
|
|
23
23
|
### 2.1 Hardware Design Outputs
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind: [
|
|
27
|
-
where: layer == "
|
|
26
|
+
kind: [HardwareComponent, HardwareAssembly, SoftwareComponent, SoftwareSystem]
|
|
27
|
+
where: layer == "implementation"
|
|
28
28
|
display: table
|
|
29
29
|
columns: name, kind, layer, doc
|
|
30
30
|
sort: name
|
|
@@ -34,8 +34,8 @@ empty: "No hardware design outputs defined."
|
|
|
34
34
|
### 2.2 Software Design Outputs
|
|
35
35
|
|
|
36
36
|
```memo-query
|
|
37
|
-
kind: [
|
|
38
|
-
where: layer == "
|
|
37
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
38
|
+
where: layer == "implementation"
|
|
39
39
|
display: table
|
|
40
40
|
columns: name, kind, layer, doc
|
|
41
41
|
sort: name
|
|
@@ -45,7 +45,7 @@ empty: "No software design outputs defined."
|
|
|
45
45
|
### 2.3 All Design Outputs
|
|
46
46
|
|
|
47
47
|
```memo-query
|
|
48
|
-
kind:
|
|
48
|
+
kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
49
49
|
display: table
|
|
50
50
|
columns: name, layer, doc
|
|
51
51
|
sort: name
|
|
@@ -41,7 +41,7 @@ _[TODO: Track all open action items from design reviews]_
|
|
|
41
41
|
Snapshot of the design state at the time of review, computed from the model:
|
|
42
42
|
|
|
43
43
|
```memo-query
|
|
44
|
-
kind: [Requirement,
|
|
44
|
+
kind: [Requirement, HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
45
45
|
display: count
|
|
46
46
|
label: Total design elements at last review
|
|
47
47
|
```
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md
RENAMED
|
@@ -29,7 +29,7 @@ _[TODO: Reference V&V Plan]_
|
|
|
29
29
|
Describe clinical or bench validation activities demonstrating conformity with user needs under actual or simulated use conditions.
|
|
30
30
|
|
|
31
31
|
```memo-query
|
|
32
|
-
kind:
|
|
32
|
+
kind: ValidationCase
|
|
33
33
|
display: table
|
|
34
34
|
columns: name, layer, doc
|
|
35
35
|
sort: name
|
|
@@ -43,7 +43,7 @@ empty: "No validation activities defined."
|
|
|
43
43
|
Coverage of user needs by validation activities, computed live from the model:
|
|
44
44
|
|
|
45
45
|
```memo-query
|
|
46
|
-
kind: [
|
|
46
|
+
kind: [Requirement, Need]
|
|
47
47
|
display: table
|
|
48
48
|
columns: name, layer, doc
|
|
49
49
|
empty: "No user needs defined."
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md
RENAMED
|
@@ -21,7 +21,7 @@ Documents design verification that design outputs meet design inputs for **{{pro
|
|
|
21
21
|
The verification traceability below is generated live from the model — every requirement should be covered by at least one verification activity:
|
|
22
22
|
|
|
23
23
|
```memo-query
|
|
24
|
-
kind:
|
|
24
|
+
kind: VerificationCase
|
|
25
25
|
display: table
|
|
26
26
|
columns: name, layer, doc
|
|
27
27
|
sort: name
|
|
@@ -35,7 +35,7 @@ empty: "No verification activities defined."
|
|
|
35
35
|
Test executions and their outcomes are summarized below from the model:
|
|
36
36
|
|
|
37
37
|
```memo-query
|
|
38
|
-
kind:
|
|
38
|
+
kind: VerificationCase
|
|
39
39
|
display: table
|
|
40
40
|
columns: name, layer, doc
|
|
41
41
|
sort: name
|
|
@@ -79,7 +79,7 @@ Key characteristics of **{{project.product}}**, drawn from the model:
|
|
|
79
79
|
Summary statistics of the system model at the time this document was generated:
|
|
80
80
|
|
|
81
81
|
```memo-query
|
|
82
|
-
kind:
|
|
82
|
+
kind: Requirement
|
|
83
83
|
display: count
|
|
84
84
|
label: Total requirements
|
|
85
85
|
```
|
|
@@ -91,7 +91,7 @@ label: Total hazards
|
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
```memo-query
|
|
94
|
-
kind:
|
|
94
|
+
kind: VerificationCase
|
|
95
95
|
display: count
|
|
96
96
|
label: Total test cases
|
|
97
97
|
```
|
|
@@ -36,7 +36,7 @@ Checklist of items required before design transfer to production is complete:
|
|
|
36
36
|
Production specifications derived from the design outputs:
|
|
37
37
|
|
|
38
38
|
```memo-query
|
|
39
|
-
kind:
|
|
39
|
+
kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
40
40
|
display: table
|
|
41
41
|
columns: name, layer, doc
|
|
42
42
|
sort: name
|
|
@@ -31,7 +31,7 @@ _[TODO: Describe all intended user groups with their roles, training levels, and
|
|
|
31
31
|
User needs captured for **{{project.product}}** are listed below from the model. Each user need should trace forward to at least one design input:
|
|
32
32
|
|
|
33
33
|
```memo-query
|
|
34
|
-
kind: [
|
|
34
|
+
kind: [Requirement, Need]
|
|
35
35
|
display: table
|
|
36
36
|
columns: name, layer, doc
|
|
37
37
|
sort: name
|
|
@@ -33,7 +33,7 @@ This plan covers:
|
|
|
33
33
|
### 3.1 Requirements to Verify
|
|
34
34
|
|
|
35
35
|
```memo-query
|
|
36
|
-
kind:
|
|
36
|
+
kind: Requirement
|
|
37
37
|
display: table
|
|
38
38
|
columns: name, layer, doc
|
|
39
39
|
sort: name
|
|
@@ -43,7 +43,7 @@ empty: "No requirements defined."
|
|
|
43
43
|
### 3.2 Verification Test Cases
|
|
44
44
|
|
|
45
45
|
```memo-query
|
|
46
|
-
kind:
|
|
46
|
+
kind: VerificationCase
|
|
47
47
|
display: table
|
|
48
48
|
columns: name, kind, layer, doc
|
|
49
49
|
sort: name
|
|
@@ -57,7 +57,7 @@ empty: "No verification test cases defined."
|
|
|
57
57
|
Validation activities demonstrating that **{{project.product}}** meets user needs and intended uses:
|
|
58
58
|
|
|
59
59
|
```memo-query
|
|
60
|
-
kind:
|
|
60
|
+
kind: ValidationCase
|
|
61
61
|
display: table
|
|
62
62
|
columns: name, layer, doc
|
|
63
63
|
sort: name
|
|
@@ -23,13 +23,13 @@ This V&V Report documents the results of all verification and validation activit
|
|
|
23
23
|
Summary metrics computed live from the model:
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind:
|
|
26
|
+
kind: VerificationCase
|
|
27
27
|
display: count
|
|
28
28
|
label: Total test cases
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
```memo-query
|
|
32
|
-
kind: [
|
|
32
|
+
kind: [VerificationCase, ValidationCase]
|
|
33
33
|
display: count
|
|
34
34
|
label: V&V activities
|
|
35
35
|
```
|
|
@@ -41,7 +41,7 @@ label: V&V activities
|
|
|
41
41
|
### 3.1 Test Results by Requirement
|
|
42
42
|
|
|
43
43
|
```memo-query
|
|
44
|
-
kind:
|
|
44
|
+
kind: VerificationCase
|
|
45
45
|
display: table
|
|
46
46
|
columns: name, kind, layer, doc
|
|
47
47
|
sort: name
|
|
@@ -55,7 +55,7 @@ empty: "No verification activities defined."
|
|
|
55
55
|
Results of the validation activities are summarized below:
|
|
56
56
|
|
|
57
57
|
```memo-query
|
|
58
|
-
kind:
|
|
58
|
+
kind: ValidationCase
|
|
59
59
|
display: table
|
|
60
60
|
columns: name, layer, doc
|
|
61
61
|
sort: name
|