@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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: postmarket-surveillance
|
|
3
3
|
title: Post-Market Cybersecurity Surveillance Plan
|
|
4
4
|
standard: FDA Cybersecurity Guidance 2023
|
|
5
|
-
clauses: ["
|
|
5
|
+
clauses: ["VI"]
|
|
6
6
|
required_for: ["FDA_510k", "FDA_PMA"]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -30,7 +30,8 @@ Defines ongoing cybersecurity surveillance for **{{project.product}}** in the po
|
|
|
30
30
|
Describe the process for ongoing monitoring of SOUP components for newly published vulnerabilities.
|
|
31
31
|
|
|
32
32
|
```memo-query
|
|
33
|
-
kind:
|
|
33
|
+
kind: SoftwareModule
|
|
34
|
+
where: moduleKind == "SoftwareModuleKind::soup"
|
|
34
35
|
display: table
|
|
35
36
|
columns: name, doc
|
|
36
37
|
sort: name
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: security-arch
|
|
3
3
|
title: Cybersecurity Architecture Description
|
|
4
4
|
standard: FDA Cybersecurity Guidance 2023
|
|
5
|
-
clauses: ["
|
|
5
|
+
clauses: ["V.B"]
|
|
6
6
|
required_for: ["FDA_510k", "FDA_PMA"]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -45,7 +45,7 @@ empty: "No interfaces defined."
|
|
|
45
45
|
Security controls implemented in **{{project.product}}** are listed below from the model. Each control should trace to at least one identified threat:
|
|
46
46
|
|
|
47
47
|
```memo-query
|
|
48
|
-
kind:
|
|
48
|
+
kind: RiskControlMeasure
|
|
49
49
|
display: table
|
|
50
50
|
columns: name, layer, doc
|
|
51
51
|
sort: name
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: threat-model
|
|
3
3
|
title: Cybersecurity Threat Model
|
|
4
4
|
standard: FDA Cybersecurity Guidance 2023
|
|
5
|
-
clauses: ["
|
|
5
|
+
clauses: ["V.A"]
|
|
6
6
|
required_for: ["FDA_510k", "FDA_PMA"]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -23,7 +23,7 @@ This threat model documents cybersecurity threats for **{{project.product}}** pe
|
|
|
23
23
|
Assets requiring protection (data, functions, interfaces), drawn from the model:
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind: [SoftwareSystem,
|
|
26
|
+
kind: [SoftwareSystem, InterfaceElement, SoftwareModule]
|
|
27
27
|
display: table
|
|
28
28
|
columns: name, kind, layer, doc
|
|
29
29
|
sort: name
|
|
@@ -51,7 +51,7 @@ empty: "No interfaces defined."
|
|
|
51
51
|
The threat catalog below is generated from the model. Each threat should be assessed for likelihood and impact and trace to mitigating security controls:
|
|
52
52
|
|
|
53
53
|
```memo-query
|
|
54
|
-
kind:
|
|
54
|
+
kind: [FMEAWorksheet, FaultTree, HAZOPStudy]
|
|
55
55
|
display: table
|
|
56
56
|
columns: name, layer, doc
|
|
57
57
|
sort: name
|
|
@@ -76,7 +76,7 @@ empty: "No threat model elements defined. Add ThreatModel elements."
|
|
|
76
76
|
Security controls implemented in **{{project.product}}** are listed below from the model. Each control should trace to at least one identified threat:
|
|
77
77
|
|
|
78
78
|
```memo-query
|
|
79
|
-
kind:
|
|
79
|
+
kind: RiskControlMeasure
|
|
80
80
|
display: table
|
|
81
81
|
columns: name, layer, doc
|
|
82
82
|
sort: name
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: vuln-assessment
|
|
3
3
|
title: Vulnerability Assessment and Penetration Testing Report
|
|
4
4
|
standard: FDA Cybersecurity Guidance 2023
|
|
5
|
-
clauses: ["
|
|
5
|
+
clauses: ["V.C"]
|
|
6
6
|
required_for: ["FDA_510k", "FDA_PMA"]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -23,7 +23,7 @@ Documents cybersecurity vulnerability assessment and testing for **{{project.pro
|
|
|
23
23
|
Define the boundaries of this assessment: components, interfaces, and threat classes in and out of scope.
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind: [SoftwareSystem,
|
|
26
|
+
kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule, InterfaceElement, MemoPort]
|
|
27
27
|
display: table
|
|
28
28
|
columns: name, kind, layer
|
|
29
29
|
sort: name
|
|
@@ -37,7 +37,8 @@ empty: "No software assets defined."
|
|
|
37
37
|
Known vulnerabilities in SOUP and third-party components (e.g. from CVE/NVD monitoring) and their disposition:
|
|
38
38
|
|
|
39
39
|
```memo-query
|
|
40
|
-
kind:
|
|
40
|
+
kind: SoftwareModule
|
|
41
|
+
where: moduleKind == "SoftwareModuleKind::soup"
|
|
41
42
|
display: table
|
|
42
43
|
columns: name, doc
|
|
43
44
|
sort: name
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hrs
|
|
3
|
+
title: Hardware Requirements Specification
|
|
4
|
+
standard: IEC 60601-1:2005+AMD1:2012+AMD2:2020
|
|
5
|
+
clauses: ["8", "9", "11", "15", "IEC 60601-1-2:2014+AMD1:2020 §7"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This Hardware Requirements Specification (HRS) defines the safety, construction, and performance requirements for the **{{project.product}}** physical equipment, ensuring compliance with IEC 60601-1 (general safety) and applicable collateral standards (IEC 60601-1-2 for electromagnetic compatibility).
|
|
18
|
+
|
|
19
|
+
Hardware requirements are identified by the model's `requirementKind` attribute. Per-topic sections — construction, electrical, EMC, mechanical — are **not** name filters: each is the set of elements claiming the clause that governs that topic, selected by traversing `ConformsTo` to that clause. A clause is named by its element id rather than by its number, because a clause number is not unique across standards: "8" is a clause of IEC 60601-1, of IEC 60601-1-2 and of IEC 62304.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Hardware Requirements Summary
|
|
24
|
+
|
|
25
|
+
Summary metrics for the hardware requirements captured in the model:
|
|
26
|
+
|
|
27
|
+
```memo-query
|
|
28
|
+
kind: Requirement
|
|
29
|
+
where: requirementKind == "RequirementKind::hardware"
|
|
30
|
+
display: count
|
|
31
|
+
label: Total hardware requirements
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### All Hardware Requirements
|
|
35
|
+
|
|
36
|
+
```memo-query
|
|
37
|
+
kind: Requirement
|
|
38
|
+
where: requirementKind == "RequirementKind::hardware"
|
|
39
|
+
display: table
|
|
40
|
+
columns: name, requirementKind, electricalSafetyRelevant, doc
|
|
41
|
+
sort: name
|
|
42
|
+
empty: "No hardware requirements defined. Add Requirement elements with requirementKind = hardware."
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 3. Physical & Construction Requirements (IEC 60601-1 §15)
|
|
48
|
+
|
|
49
|
+
The physical elements these requirements govern:
|
|
50
|
+
|
|
51
|
+
```memo-query
|
|
52
|
+
kind: [PhysicalAssembly, HardwareAssembly, PhysicalSubassembly, PhysicalComponent, HardwareComponent, PhysicalConnectorPart]
|
|
53
|
+
display: table
|
|
54
|
+
columns: name, kind, layer, doc
|
|
55
|
+
sort: name
|
|
56
|
+
empty: "No physical assemblies or components defined."
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The elements claiming IEC 60601-1 §15 are a `ConformsTo` table:
|
|
60
|
+
|
|
61
|
+
```memo-query
|
|
62
|
+
select: relationships
|
|
63
|
+
kind: conformsTo
|
|
64
|
+
where: target.id == "iec60601_1Clause15"
|
|
65
|
+
display: table
|
|
66
|
+
columns: source, source.kind, target.clauseNumber, target.title
|
|
67
|
+
sort: source
|
|
68
|
+
empty: "No elements claim IEC 60601-1 §15."
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 4. Electrical Safety Requirements (IEC 60601-1 §8)
|
|
74
|
+
|
|
75
|
+
Protection against electric shock, isolation, and medical-grade power supplies. The electrical elements in scope:
|
|
76
|
+
|
|
77
|
+
```memo-query
|
|
78
|
+
kind: [ElectricalComponent, ElectronicComponent, PhysicalConnectorPart]
|
|
79
|
+
display: table
|
|
80
|
+
columns: name, kind, layer, doc
|
|
81
|
+
sort: name
|
|
82
|
+
empty: "No electrical or electronic components defined."
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```memo-query
|
|
86
|
+
select: relationships
|
|
87
|
+
kind: conformsTo
|
|
88
|
+
where: target.id == "iec60601_1Clause8"
|
|
89
|
+
display: table
|
|
90
|
+
columns: source, source.kind, target.clauseNumber, target.title
|
|
91
|
+
sort: source
|
|
92
|
+
empty: "No elements claim IEC 60601-1 §8."
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 5. Electromagnetic Compatibility (IEC 60601-1-2 §7)
|
|
98
|
+
|
|
99
|
+
Immunity from electromagnetic disturbances and limits on emissions.
|
|
100
|
+
|
|
101
|
+
This section is the one that pays for clause-level traceability: once a requirement carries `ConformsTo → IEC 60601-1-2 §7`, "EMC Requirements" stops being a filter over names and becomes *the set of requirements claiming that clause*. The section heading and the standard then come from one source.
|
|
102
|
+
|
|
103
|
+
```memo-query
|
|
104
|
+
select: relationships
|
|
105
|
+
kind: conformsTo
|
|
106
|
+
where: target.id == "iec60601_1_2Clause7"
|
|
107
|
+
display: table
|
|
108
|
+
columns: source, source.kind, target.clauseNumber, target.title
|
|
109
|
+
sort: source
|
|
110
|
+
empty: "No elements claim IEC 60601-1-2 §7."
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 6. Mechanical, Thermal, and Environmental Requirements (IEC 60601-1 §9, §11)
|
|
116
|
+
|
|
117
|
+
Mechanical strength and impact resistance (§9), excessive temperatures and ingress (§11). The elements in scope:
|
|
118
|
+
|
|
119
|
+
```memo-query
|
|
120
|
+
kind: [ThermalComponent, AcousticComponent, FluidicComponent, PneumaticComponent, OpticalComponent]
|
|
121
|
+
display: table
|
|
122
|
+
columns: name, kind, layer, doc
|
|
123
|
+
sort: name
|
|
124
|
+
empty: "No mechanical, thermal, fluidic or optical components defined."
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```memo-query
|
|
128
|
+
select: relationships
|
|
129
|
+
kind: conformsTo
|
|
130
|
+
where: target.id == "iec60601_1Clause9"
|
|
131
|
+
display: table
|
|
132
|
+
columns: source, source.kind, target.clauseNumber, target.title
|
|
133
|
+
sort: source
|
|
134
|
+
empty: "No elements claim IEC 60601-1 §9."
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 7. Hardware Traceability
|
|
140
|
+
|
|
141
|
+
Hardware requirements traced to the elements that satisfy them:
|
|
142
|
+
|
|
143
|
+
```memo-query
|
|
144
|
+
kind: Requirement
|
|
145
|
+
where: requirementKind == "RequirementKind::hardware"
|
|
146
|
+
traverse: outgoing satisfiedBy
|
|
147
|
+
display: table
|
|
148
|
+
columns: name, kind, layer, doc
|
|
149
|
+
sort: name
|
|
150
|
+
empty: "No hardware requirements are linked to a satisfying element. Add SatisfiedBy links."
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
The allocation table proper — *which* element allocates to *which* — is relationship-shaped. It is not filtered to hardware: `AllocatedTo` joins two architecture elements and carries no layer of its own, so the receiving element's kind and layer are shown as columns instead of guessed at by a filter.
|
|
154
|
+
|
|
155
|
+
```memo-query
|
|
156
|
+
select: relationships
|
|
157
|
+
kind: allocatedTo
|
|
158
|
+
display: table
|
|
159
|
+
columns: source, target, target.kind, target.layer
|
|
160
|
+
sort: target
|
|
161
|
+
empty: "No allocations defined."
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
167
|
+
|
|
168
|
+
{{include:shared/snippets/approval-block.md}}
|
|
169
|
+
|
|
170
|
+
{{include:shared/snippets/references-section.md}}
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md
RENAMED
|
@@ -23,7 +23,7 @@ This document provides detailed design specifications for **{{project.product}}*
|
|
|
23
23
|
The software units — the lowest level of decomposition per IEC 62304 — are listed below from the model:
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind:
|
|
26
|
+
kind: SoftwareModule
|
|
27
27
|
display: table
|
|
28
28
|
columns: name, layer, doc
|
|
29
29
|
sort: name
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md
RENAMED
|
@@ -23,7 +23,7 @@ This Integration Test Plan defines the approach for integration testing of **{{p
|
|
|
23
23
|
The software items in scope for this test plan, drawn from the model:
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind: [
|
|
26
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
27
27
|
display: table
|
|
28
28
|
columns: name, kind, layer, doc
|
|
29
29
|
sort: name
|
|
@@ -37,8 +37,8 @@ empty: "No software items defined."
|
|
|
37
37
|
Integration test cases are listed below from the model:
|
|
38
38
|
|
|
39
39
|
```memo-query
|
|
40
|
-
kind:
|
|
41
|
-
where: layer == "
|
|
40
|
+
kind: VerificationCase
|
|
41
|
+
where: layer == "verification_validation"
|
|
42
42
|
display: table
|
|
43
43
|
columns: name, layer, doc
|
|
44
44
|
sort: name
|
|
@@ -33,7 +33,7 @@ empty: "No SoftwareSystem defined."
|
|
|
33
33
|
**Total elements:**
|
|
34
34
|
|
|
35
35
|
```memo-query
|
|
36
|
-
kind: [SoftwareSystem,
|
|
36
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
37
37
|
display: count
|
|
38
38
|
label: Total software elements
|
|
39
39
|
```
|
|
@@ -49,17 +49,17 @@ This section describes the decomposition of the software into software items per
|
|
|
49
49
|
### 3.1 Software Items
|
|
50
50
|
|
|
51
51
|
```memo-query
|
|
52
|
-
kind:
|
|
52
|
+
kind: [HardwareComponent, HardwareAssembly, SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
53
53
|
display: table
|
|
54
54
|
columns: name, layer, doc
|
|
55
55
|
sort: name
|
|
56
|
-
empty: "No
|
|
56
|
+
empty: "No SoftwareElement elements defined."
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
### 3.2 Software Units
|
|
60
60
|
|
|
61
61
|
```memo-query
|
|
62
|
-
kind:
|
|
62
|
+
kind: SoftwareModule
|
|
63
63
|
display: table
|
|
64
64
|
columns: name, layer, doc
|
|
65
65
|
sort: name
|
|
@@ -83,7 +83,8 @@ empty: "No Interface elements defined."
|
|
|
83
83
|
Software of Unknown Provenance (SOUP) used by **{{project.product}}** is listed below per IEC 62304 §5.3.3–5.3.4. For each SOUP item, functional/performance requirements and required hardware/software must be specified:
|
|
84
84
|
|
|
85
85
|
```memo-query
|
|
86
|
-
kind:
|
|
86
|
+
kind: SoftwareModule
|
|
87
|
+
where: moduleKind == "SoftwareModuleKind::soup"
|
|
87
88
|
display: table
|
|
88
89
|
columns: name, doc, layer
|
|
89
90
|
sort: name
|
|
@@ -23,7 +23,7 @@ This Software Bill of Materials (SBOM) provides a complete inventory of software
|
|
|
23
23
|
Software developed in-house for this system is listed below from the model:
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind: [SoftwareSystem,
|
|
26
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
27
27
|
display: table
|
|
28
28
|
columns: name, kind, layer, doc
|
|
29
29
|
sort: name
|
|
@@ -37,7 +37,8 @@ empty: "No first-party software items defined."
|
|
|
37
37
|
All third-party and SOUP components with their versions and origins, generated from the model:
|
|
38
38
|
|
|
39
39
|
```memo-query
|
|
40
|
-
kind:
|
|
40
|
+
kind: SoftwareModule
|
|
41
|
+
where: moduleKind == "SoftwareModuleKind::soup"
|
|
41
42
|
display: table
|
|
42
43
|
columns: name, doc, layer
|
|
43
44
|
sort: name
|
|
@@ -27,11 +27,11 @@ This Software Development Plan (SDP) defines the processes, activities, and task
|
|
|
27
27
|
| {{project.product}} Software System | Class B | |
|
|
28
28
|
|
|
29
29
|
```memo-query
|
|
30
|
-
kind: [SoftwareSystem,
|
|
30
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
31
31
|
display: table
|
|
32
32
|
columns: name, kind, layer, doc
|
|
33
33
|
sort: name
|
|
34
|
-
empty: "No software
|
|
34
|
+
empty: "No structural software elements defined. Add SoftwareSystem or SoftwareElement elements."
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
---
|
|
@@ -57,7 +57,8 @@ Identify the coding standards, review procedures, and quality gates applied duri
|
|
|
57
57
|
### 4.1 Software Items of Unknown Provenance (SOUP)
|
|
58
58
|
|
|
59
59
|
```memo-query
|
|
60
|
-
kind:
|
|
60
|
+
kind: SoftwareModule
|
|
61
|
+
where: moduleKind == "SoftwareModuleKind::soup"
|
|
61
62
|
display: table
|
|
62
63
|
columns: name, doc, layer
|
|
63
64
|
sort: name
|
|
@@ -68,7 +69,7 @@ empty: "No SOUP components defined."
|
|
|
68
69
|
|
|
69
70
|
```memo-query
|
|
70
71
|
kind: Hazard
|
|
71
|
-
where: layer == "
|
|
72
|
+
where: layer == "implementation"
|
|
72
73
|
display: table
|
|
73
74
|
columns: name, doc, layer
|
|
74
75
|
sort: name
|
|
@@ -23,7 +23,8 @@ This document lists all Software of Unknown Provenance (SOUP) components used in
|
|
|
23
23
|
The complete inventory of SOUP and third-party components in **{{project.product}}**, generated from the model:
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind:
|
|
26
|
+
kind: SoftwareModule
|
|
27
|
+
where: moduleKind == "SoftwareModuleKind::soup"
|
|
27
28
|
display: table
|
|
28
29
|
columns: name, layer, doc
|
|
29
30
|
sort: name
|
|
@@ -37,7 +38,8 @@ empty: "No SOUP components defined. Add SOUPComponent elements to the model."
|
|
|
37
38
|
For each SOUP component, the potential impact on device safety must be evaluated.
|
|
38
39
|
|
|
39
40
|
```memo-query
|
|
40
|
-
kind:
|
|
41
|
+
kind: SoftwareModule
|
|
42
|
+
where: moduleKind == "SoftwareModuleKind::soup"
|
|
41
43
|
display: table
|
|
42
44
|
columns: name, doc
|
|
43
45
|
sort: name
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: srs
|
|
3
|
+
title: Software Requirements Specification
|
|
4
|
+
standard: IEC 62304:2006+AMD1:2015
|
|
5
|
+
clauses: ["5.2", "5.2.2", "5.2.3", "5.2.6"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This Software Requirements Specification (SRS) defines the software requirements for **{{project.product}}** in accordance with IEC 62304:2006+AMD1:2015 §5.2.
|
|
18
|
+
|
|
19
|
+
Software, hardware and system requirements are distinguished by the model's own `requirementKind` attribute, never by which layer directory a file sits in and never by what a requirement is called. There is no "software layer": hardware and software are sibling directories inside `implementation`.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Requirements Summary
|
|
24
|
+
|
|
25
|
+
Summary metrics for the requirements captured in the model:
|
|
26
|
+
|
|
27
|
+
```memo-query
|
|
28
|
+
kind: Requirement
|
|
29
|
+
where: requirementKind == "RequirementKind::software"
|
|
30
|
+
display: count
|
|
31
|
+
label: Total software requirements
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```memo-query
|
|
35
|
+
kind: Requirement
|
|
36
|
+
where: requirementKind == "RequirementKind::system"
|
|
37
|
+
display: count
|
|
38
|
+
label: System requirements
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 3. Functional Requirements
|
|
44
|
+
|
|
45
|
+
Requirements carrying a `shall` obligation — the binding ones:
|
|
46
|
+
|
|
47
|
+
```memo-query
|
|
48
|
+
kind: Requirement
|
|
49
|
+
where: obligation == "ObligationKind::shall"
|
|
50
|
+
display: table
|
|
51
|
+
columns: name, requirementKind, safetyClass, doc
|
|
52
|
+
sort: name
|
|
53
|
+
empty: "No requirements carry a `shall` obligation. Set `obligation` on Requirement elements."
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### All Software Requirements
|
|
57
|
+
|
|
58
|
+
```memo-query
|
|
59
|
+
kind: Requirement
|
|
60
|
+
where: requirementKind == "RequirementKind::software"
|
|
61
|
+
display: table
|
|
62
|
+
columns: name, requirementKind, safetyClass, doc
|
|
63
|
+
sort: name
|
|
64
|
+
empty: "No software requirements defined. Add Requirement elements with requirementKind = software."
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 3.1 Hardware-Software Interface Requirements
|
|
70
|
+
|
|
71
|
+
The hardware/software boundary is a modelled element, not a naming convention. The interfaces and ports below are the boundary this software crosses; requirements are traced to them through the model rather than selected by having "interface" in their name.
|
|
72
|
+
|
|
73
|
+
```memo-query
|
|
74
|
+
kind: [InterfaceElement, MemoPort]
|
|
75
|
+
display: table
|
|
76
|
+
columns: name, kind, layer, doc
|
|
77
|
+
sort: name
|
|
78
|
+
empty: "No interfaces or ports defined."
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Requirements satisfied by elements on that boundary:
|
|
82
|
+
|
|
83
|
+
```memo-query
|
|
84
|
+
kind: [InterfaceElement, MemoPort]
|
|
85
|
+
traverse: incoming satisfiedBy
|
|
86
|
+
display: table
|
|
87
|
+
columns: name, kind, layer, doc
|
|
88
|
+
sort: name
|
|
89
|
+
empty: "No software requirements are linked to a satisfying architecture element. Add SatisfiedBy links."
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 4. System Requirements (Allocated to Software)
|
|
95
|
+
|
|
96
|
+
System requirements allocated to software per IEC 62304 §5.2, drawn from the model:
|
|
97
|
+
|
|
98
|
+
```memo-query
|
|
99
|
+
kind: Requirement
|
|
100
|
+
where: requirementKind == "RequirementKind::system"
|
|
101
|
+
display: table
|
|
102
|
+
columns: name, requirementKind, safetyClass, doc
|
|
103
|
+
sort: name
|
|
104
|
+
empty: "No system requirements defined."
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 5. Non-Functional Requirements
|
|
110
|
+
|
|
111
|
+
### 5.1 Performance Requirements
|
|
112
|
+
|
|
113
|
+
_[TODO: Define performance requirements (response time, throughput, memory)]_
|
|
114
|
+
|
|
115
|
+
### 5.2 Safety Requirements
|
|
116
|
+
|
|
117
|
+
Software safety requirements are those whose `safetyClass` is set. The hazards they derive from:
|
|
118
|
+
|
|
119
|
+
```memo-query
|
|
120
|
+
kind: Hazard
|
|
121
|
+
display: table
|
|
122
|
+
columns: name, layer, doc
|
|
123
|
+
sort: name
|
|
124
|
+
empty: "No hazards defined in the risk model."
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 5.3 Security Requirements
|
|
128
|
+
|
|
129
|
+
```memo-query
|
|
130
|
+
kind: SecurityRequirement
|
|
131
|
+
display: table
|
|
132
|
+
columns: name, layer, doc
|
|
133
|
+
sort: name
|
|
134
|
+
empty: "No security requirements defined."
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 6. SOUP Requirements
|
|
140
|
+
|
|
141
|
+
Software of Unknown Provenance depended on by **{{project.product}}**, derived by traversing `dependsOnSoup` from the software items:
|
|
142
|
+
|
|
143
|
+
```memo-query
|
|
144
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
145
|
+
traverse: outgoing dependsOnSoup
|
|
146
|
+
display: table
|
|
147
|
+
columns: name, kind, layer, doc
|
|
148
|
+
sort: name
|
|
149
|
+
empty: "No SOUP identified. Add DependsOnSoup links from software items to the SOUP they depend on."
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 7. Requirements Traceability
|
|
155
|
+
|
|
156
|
+
```memo-query
|
|
157
|
+
kind: Requirement
|
|
158
|
+
where: requirementKind == "RequirementKind::software"
|
|
159
|
+
traverse: outgoing verifiedBy
|
|
160
|
+
display: table
|
|
161
|
+
columns: name, kind, layer, doc
|
|
162
|
+
sort: name
|
|
163
|
+
empty: "No software requirements are linked to a verification case. Add VerifiedBy links."
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
169
|
+
|
|
170
|
+
{{include:shared/snippets/approval-block.md}}
|
|
171
|
+
|
|
172
|
+
{{include:shared/snippets/references-section.md}}
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md
RENAMED
|
@@ -35,7 +35,7 @@ label: Software requirements
|
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
```memo-query
|
|
38
|
-
kind:
|
|
38
|
+
kind: VerificationCase
|
|
39
39
|
display: count
|
|
40
40
|
label: Test cases
|
|
41
41
|
```
|
|
@@ -75,7 +75,7 @@ empty: "No software requirements defined."
|
|
|
75
75
|
This section is generated from the system model. The table below lists the **Software Requirements → Design Elements** elements currently defined:
|
|
76
76
|
|
|
77
77
|
```memo-query
|
|
78
|
-
kind: [
|
|
78
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
79
79
|
display: table
|
|
80
80
|
columns: name, kind, layer, doc
|
|
81
81
|
sort: name
|
|
@@ -89,7 +89,7 @@ empty: "No software design elements defined."
|
|
|
89
89
|
This section is generated from the system model. The table below lists the **Test Cases** elements currently defined:
|
|
90
90
|
|
|
91
91
|
```memo-query
|
|
92
|
-
kind:
|
|
92
|
+
kind: VerificationCase
|
|
93
93
|
display: table
|
|
94
94
|
columns: name, layer, doc
|
|
95
95
|
sort: name
|
|
@@ -37,7 +37,7 @@ empty: "No system requirements defined."
|
|
|
37
37
|
This section is generated from the system model. The table below lists the **System Test Cases** elements currently defined:
|
|
38
38
|
|
|
39
39
|
```memo-query
|
|
40
|
-
kind: [
|
|
40
|
+
kind: [VerificationCase, ValidationCase]
|
|
41
41
|
display: table
|
|
42
42
|
columns: name, kind, layer, doc
|
|
43
43
|
sort: name
|
package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md
RENAMED
|
@@ -31,7 +31,7 @@ _[TODO: Describe participant demographics, number, and selection criteria]_
|
|
|
31
31
|
This section is generated from the system model. The table below lists the **Test Scenarios** elements currently defined:
|
|
32
32
|
|
|
33
33
|
```memo-query
|
|
34
|
-
kind: [UseCase,
|
|
34
|
+
kind: [UseCase, ValidationCase]
|
|
35
35
|
display: table
|
|
36
36
|
columns: name, layer, doc
|
|
37
37
|
sort: name
|