@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
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// scenario. Workflows are action defs: steps, decisions, forks/joins, and
|
|
6
6
|
// successions use native SysML v2 action semantics where portable.
|
|
7
7
|
package memo_architecture_operational_workflows {
|
|
8
|
+
private import Metaobjects::SemanticMetadata;
|
|
8
9
|
private import ScalarValues::*;
|
|
9
10
|
|
|
10
11
|
private import memo_core_common::*;
|
|
@@ -36,19 +37,18 @@ package memo_architecture_operational_workflows {
|
|
|
36
37
|
attribute completionCondition : String;
|
|
37
38
|
attribute recoveryPathSummary : String;
|
|
38
39
|
attribute timingConstraints : String;
|
|
39
|
-
ref involvedActors :
|
|
40
|
+
ref involvedActors : OperationalParticipant[0..*];
|
|
40
41
|
attribute environmentSummary : String;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
// A step in a workflow wraps an operational activity or user task by
|
|
44
45
|
// reference — the same activity may appear in several workflows.
|
|
45
46
|
action def WorkflowStep specializes MemoAction {
|
|
46
|
-
attribute stepOrder : Integer;
|
|
47
47
|
attribute entryCondition : String;
|
|
48
48
|
attribute exitCondition : String;
|
|
49
49
|
ref performedActivity : OperationalActivity[0..1];
|
|
50
50
|
ref performedTask : UserTask[0..1];
|
|
51
|
-
ref responsibleRole :
|
|
51
|
+
ref responsibleRole : OperationalParticipant[0..1];
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
// decision / fork / join / handoff.
|
|
@@ -69,8 +69,8 @@ package memo_architecture_operational_workflows {
|
|
|
69
69
|
attribute parallelismRationale : String[0..1];
|
|
70
70
|
attribute joinCondition : String[0..1];
|
|
71
71
|
attribute informationTransferred : String[0..1];
|
|
72
|
-
ref fromRole :
|
|
73
|
-
ref toRole :
|
|
72
|
+
ref fromRole : OperationalParticipant[0..1];
|
|
73
|
+
ref toRole : OperationalParticipant[0..1];
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
// Resources a workflow requires: information, materials, or equipment by
|
|
@@ -94,17 +94,24 @@ package memo_architecture_operational_workflows {
|
|
|
94
94
|
// The accepted endpoints span SysML metaclasses: an operational
|
|
95
95
|
// workflow or other action may support a use case, task, or
|
|
96
96
|
// capability. They therefore have no single MEMO base type.
|
|
97
|
-
end supporter;
|
|
98
|
-
end supported;
|
|
97
|
+
end supporter :>> source;
|
|
98
|
+
end supported : MemoAction :>> target;
|
|
99
99
|
}
|
|
100
|
-
connection
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
abstract connection supportsLinks : Supports[*];
|
|
101
|
+
metadata def <supports> SupportsMetadata :> SemanticMetadata {
|
|
102
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
103
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
104
|
+
:>> baseType = supportsLinks meta SysML::Usage;
|
|
104
105
|
}
|
|
105
106
|
connection def RequiresResource :> MemoRelationship {
|
|
106
|
-
end workflow : OperationalWorkflow;
|
|
107
|
-
end resource : WorkflowResource;
|
|
107
|
+
end workflow : OperationalWorkflow :>> source;
|
|
108
|
+
end resource : WorkflowResource :>> target;
|
|
109
|
+
}
|
|
110
|
+
abstract connection requiresResourceLinks : RequiresResource[*];
|
|
111
|
+
metadata def <requiresResource> RequiresResourceMetadata :> SemanticMetadata {
|
|
112
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
113
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
114
|
+
:>> baseType = requiresResourceLinks meta SysML::Usage;
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
// ── Workflow transformation (as-is → to-be) ──────────────────
|
|
@@ -119,8 +126,14 @@ package memo_architecture_operational_workflows {
|
|
|
119
126
|
attribute transformKind : TransformKind;
|
|
120
127
|
attribute transformation : StepTransformationKind[0..1];
|
|
121
128
|
attribute transformationRationale : String[0..1];
|
|
122
|
-
end source :
|
|
123
|
-
end target :
|
|
129
|
+
end source : MemoAction;
|
|
130
|
+
end target : MemoAction;
|
|
131
|
+
}
|
|
132
|
+
abstract connection transformsLinks : Transforms[*];
|
|
133
|
+
metadata def <transforms> TransformsMetadata :> SemanticMetadata {
|
|
134
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
135
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
136
|
+
:>> baseType = transformsLinks meta SysML::Usage;
|
|
124
137
|
}
|
|
125
138
|
// The device or system whose introduction enables a workflow.
|
|
126
139
|
}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
|
-
// Deployment (allocation) view: SoftwareModule buildsInto
|
|
2
|
-
// DeploymentUnit
|
|
3
|
-
//
|
|
4
|
-
//
|
|
1
|
+
// Deployment (allocation) view: SoftwareModule buildsInto DeploymentUnit;
|
|
2
|
+
// DeploymentUnit deploysTo ProcessingNode. Software deploys only to capable
|
|
3
|
+
// execution nodes (rules/crosslayer).
|
|
4
|
+
//
|
|
5
|
+
// `HostedBy` is NOT part of that chain, and this comment used to claim it was
|
|
6
|
+
// ("SoftwareComponent hostedBy ProcessingNode"). It is
|
|
7
|
+
// `processingNode : ArchitectureElement -> hostAssembly : ArchitectureElement`:
|
|
8
|
+
// physical hosting of a node by the assembly it is mounted in, running the
|
|
9
|
+
// other way and between different things. Software reaches a node through
|
|
10
|
+
// DeploysTo.
|
|
5
11
|
package memo_architecture_realization_deployment {
|
|
12
|
+
private import Metaobjects::SemanticMetadata;
|
|
6
13
|
private import ScalarValues::*;
|
|
14
|
+
// The standard's allocation base, which the two AADL bindings below root
|
|
15
|
+
// on alongside MemoRelationship.
|
|
16
|
+
private import Allocations::Allocation;
|
|
7
17
|
|
|
8
18
|
private import memo_core_common::*;
|
|
9
19
|
private import memo_core_enumerations::*;
|
|
10
20
|
private import memo_core_relationships::*;
|
|
11
21
|
private import memo_architecture_implementation_software_structure::*;
|
|
12
22
|
private import memo_architecture_implementation_software_runtime::*;
|
|
23
|
+
private import memo_architecture_implementation_hardware_electrical::*; // NetworkMedium
|
|
13
24
|
private import memo_architecture_realization_physical::*;
|
|
14
25
|
private import memo_architecture_functional_functions::*;
|
|
15
26
|
private import memo_architecture_logical_structure::*;
|
|
27
|
+
private import memo_architecture_logical_interfaces::*; // ComponentExchange
|
|
16
28
|
|
|
17
29
|
part def DeploymentUnit specializes ArchitectureElement {
|
|
18
30
|
attribute unitKind : String;
|
|
@@ -29,17 +41,88 @@ package memo_architecture_realization_deployment {
|
|
|
29
41
|
}
|
|
30
42
|
|
|
31
43
|
connection def BuildsInto :> MemoRelationship {
|
|
32
|
-
end module : SoftwareModule;
|
|
33
|
-
end deploymentUnit : DeploymentUnit;
|
|
44
|
+
end module : SoftwareModule :>> source;
|
|
45
|
+
end deploymentUnit : DeploymentUnit :>> target;
|
|
46
|
+
}
|
|
47
|
+
abstract connection buildsIntoLinks : BuildsInto[*];
|
|
48
|
+
metadata def <buildsInto> BuildsIntoMetadata :> SemanticMetadata {
|
|
49
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
50
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
51
|
+
:>> baseType = buildsIntoLinks meta SysML::Usage;
|
|
34
52
|
}
|
|
35
53
|
connection def DeploysTo :> MemoRelationship {
|
|
36
54
|
attribute deploymentKind : DeploymentKind;
|
|
37
|
-
end deploymentUnit : DeploymentUnit;
|
|
38
|
-
end node : ProcessingNode;
|
|
55
|
+
end deploymentUnit : DeploymentUnit :>> source;
|
|
56
|
+
end node : ProcessingNode :>> target;
|
|
57
|
+
}
|
|
58
|
+
abstract connection deploysToLinks : DeploysTo[*];
|
|
59
|
+
metadata def <deploysTo> DeploysToMetadata :> SemanticMetadata {
|
|
60
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
61
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
62
|
+
:>> baseType = deploysToLinks meta SysML::Usage;
|
|
39
63
|
}
|
|
40
64
|
connection def ProvidesEnvironment :> MemoRelationship {
|
|
41
|
-
end node : ProcessingNode;
|
|
42
|
-
end environment : RuntimeEnvironment;
|
|
65
|
+
end node : ProcessingNode :>> source;
|
|
66
|
+
end environment : RuntimeEnvironment :>> target;
|
|
67
|
+
}
|
|
68
|
+
abstract connection providesEnvironmentLinks : ProvidesEnvironment[*];
|
|
69
|
+
metadata def <providesEnvironment> ProvidesEnvironmentMetadata :> SemanticMetadata {
|
|
70
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
71
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
72
|
+
:>> baseType = providesEnvironmentLinks meta SysML::Usage;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// ─── AADL bindings (SAE AS5506) — plan C1 ────────────────────────────
|
|
76
|
+
//
|
|
77
|
+
// AADL's analytic power is that EVERYTHING is bound to something, and the
|
|
78
|
+
// binding is where latency, bandwidth and fault propagation accrue. MEMO
|
|
79
|
+
// had one binding of three: `DeploysTo` is `actual_processor_binding`.
|
|
80
|
+
// Without the other two, `SoftwareComponent.memoryBudget` is unanalysable
|
|
81
|
+
// and `EndToEndFlow.latencyBudgetMs` cannot be checked against the media
|
|
82
|
+
// the flow traverses — the analysis the flow comment below describes and
|
|
83
|
+
// the model could not perform.
|
|
84
|
+
//
|
|
85
|
+
// Both are `allocation def`s rooted on the standard's
|
|
86
|
+
// `Allocations::Allocation`, because a binding IS an allocation and the
|
|
87
|
+
// language says so. The double specialization keeps MEMO's identification
|
|
88
|
+
// core from `MemoRelationship` while adding the standard's allocation
|
|
89
|
+
// semantics; both root on `Connections::BinaryConnection`, so this is a
|
|
90
|
+
// diamond and not a conflict. Verified under `syside check` against a
|
|
91
|
+
// negative control (a non-existent supertype is reported), so the clean
|
|
92
|
+
// result is the checker agreeing rather than the checker skipping.
|
|
93
|
+
|
|
94
|
+
// AADL `actual_memory_binding`. Which memory a software component's code
|
|
95
|
+
// and data occupy — what makes a memory budget a claim about a device
|
|
96
|
+
// rather than a string.
|
|
97
|
+
allocation def MemoryBinding :> MemoRelationship, Allocations::Allocation {
|
|
98
|
+
attribute bindingKind : String;
|
|
99
|
+
end boundComponent : SoftwareComponent :>> source;
|
|
100
|
+
end memory : MemoryDevice :>> target;
|
|
101
|
+
}
|
|
102
|
+
abstract connection memoryBindingLinks : MemoryBinding[*];
|
|
103
|
+
metadata def <memoryBinding> MemoryBindingMetadata :> SemanticMetadata {
|
|
104
|
+
:> annotatedElement : SysML::AllocationDefinition;
|
|
105
|
+
:> annotatedElement : SysML::AllocationUsage;
|
|
106
|
+
:>> baseType = memoryBindingLinks meta SysML::Usage;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// AADL `actual_connection_binding`. Which physical medium carries a
|
|
110
|
+
// component exchange. The source is the ComponentExchange rather than the
|
|
111
|
+
// `ComponentConnects` link, because the exchange is the ELEMENT that owns
|
|
112
|
+
// the budget (§19.3) and a link instance is not something the graph can
|
|
113
|
+
// bind to; it is also exactly where the latency the medium contributes has
|
|
114
|
+
// to be accounted.
|
|
115
|
+
allocation def ConnectionBinding :> MemoRelationship, Allocations::Allocation {
|
|
116
|
+
attribute allocatedBandwidth : String;
|
|
117
|
+
attribute mediumLatencyMs : Real;
|
|
118
|
+
end boundExchange : ComponentExchange :>> source;
|
|
119
|
+
end medium : NetworkMedium :>> target;
|
|
120
|
+
}
|
|
121
|
+
abstract connection connectionBindingLinks : ConnectionBinding[*];
|
|
122
|
+
metadata def <connectionBinding> ConnectionBindingMetadata :> SemanticMetadata {
|
|
123
|
+
:> annotatedElement : SysML::AllocationDefinition;
|
|
124
|
+
:> annotatedElement : SysML::AllocationUsage;
|
|
125
|
+
:>> baseType = connectionBindingLinks meta SysML::Usage;
|
|
43
126
|
}
|
|
44
127
|
|
|
45
128
|
// ─── AADL-style flow modeling (SAE AS5506) ───────────────────────────
|
|
@@ -68,8 +151,8 @@ package memo_architecture_realization_deployment {
|
|
|
68
151
|
part def EndToEndFlow specializes ArchitectureElement {
|
|
69
152
|
attribute latencyBudgetMs : Real;
|
|
70
153
|
attribute analysisPurpose : String;
|
|
71
|
-
ref sourceFunction :
|
|
72
|
-
ref sinkFunction :
|
|
154
|
+
ref sourceFunction : MemoFunction[0..1];
|
|
155
|
+
ref sinkFunction : MemoFunction[0..1];
|
|
73
156
|
ref logicalSegments : LogicalComponent[0..*];
|
|
74
157
|
// Runtime C&C components (SEI) — the elements actually bound to hardware.
|
|
75
158
|
ref softwareSegments : SoftwareComponent[0..*];
|
|
@@ -79,12 +162,24 @@ package memo_architecture_realization_deployment {
|
|
|
79
162
|
// segment per traversed component boundary (AADL flow-spec → end-to-end).
|
|
80
163
|
connection def FlowComprisesSpec :> MemoRelationship {
|
|
81
164
|
attribute segmentOrder : Integer;
|
|
82
|
-
end endToEndFlow : EndToEndFlow;
|
|
83
|
-
end spec : FlowSpecification;
|
|
165
|
+
end endToEndFlow : EndToEndFlow :>> source;
|
|
166
|
+
end spec : FlowSpecification :>> target;
|
|
167
|
+
}
|
|
168
|
+
abstract connection flowComprisesSpecLinks : FlowComprisesSpec[*];
|
|
169
|
+
metadata def <flowComprisesSpec> FlowComprisesSpecMetadata :> SemanticMetadata {
|
|
170
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
171
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
172
|
+
:>> baseType = flowComprisesSpecLinks meta SysML::Usage;
|
|
84
173
|
}
|
|
85
174
|
// The flow traverses a software→hardware binding; latency accrues here.
|
|
86
175
|
connection def FlowTraversesBinding :> MemoRelationship {
|
|
87
|
-
end endToEndFlow : EndToEndFlow;
|
|
88
|
-
end deploymentUnit : DeploymentUnit;
|
|
176
|
+
end endToEndFlow : EndToEndFlow :>> source;
|
|
177
|
+
end deploymentUnit : DeploymentUnit :>> target;
|
|
178
|
+
}
|
|
179
|
+
abstract connection flowTraversesBindingLinks : FlowTraversesBinding[*];
|
|
180
|
+
metadata def <flowTraversesBinding> FlowTraversesBindingMetadata :> SemanticMetadata {
|
|
181
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
182
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
183
|
+
:>> baseType = flowTraversesBindingLinks meta SysML::Usage;
|
|
89
184
|
}
|
|
90
185
|
}
|
|
@@ -22,9 +22,34 @@ package memo_architecture_realization_physical {
|
|
|
22
22
|
attribute capacityMB : String;
|
|
23
23
|
attribute nonVolatile : Boolean;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
// A physical boundary feature: the connector the outside world plugs into.
|
|
26
|
+
//
|
|
27
|
+
// A `port def` (Track A1), not a part. It was `part def PhysicalPort
|
|
28
|
+
// specializes InterfaceElement` for one reason — the exchange endpoints
|
|
29
|
+
// were `MemoPart`-typed, so anything that terminated an exchange had to be
|
|
30
|
+
// a part (CR-ONT-002, since rewritten). Track A0 made those ends
|
|
31
|
+
// metaclass-neutral, and KerML forbids a port from specializing a
|
|
32
|
+
// part-based type, so the specialization moves to `MemoPort`.
|
|
33
|
+
//
|
|
34
|
+
// `direction` is gone: the port usage carries `in` / `out` / `inout`
|
|
35
|
+
// natively (Track A2). `DirectionKind` survives for the non-port
|
|
36
|
+
// constructs that still need it — see memo_core_enumerations.
|
|
37
|
+
//
|
|
38
|
+
// `portKind` is declared here AND on SoftwarePort rather than on a shared
|
|
39
|
+
// base. `MemoPort` is the identification core and nothing else — the block
|
|
40
|
+
// comment in memo_core_common makes that a stated invariant across all
|
|
41
|
+
// five bases — and pushing `portKind` down onto DataPort, SensorPort,
|
|
42
|
+
// CommandPort, and LogicalPort would give them a second classifier beside
|
|
43
|
+
// the ones they already carry (`interfaceType`, `sensorDomain`,
|
|
44
|
+
// `commandDomain`, `contentKind`). An intermediate `abstract port def`
|
|
45
|
+
// holding one attribute is a class standing in for an attribute, which is
|
|
46
|
+
// what the lean direction removes. One attribute, two sites, no new type.
|
|
47
|
+
port def PhysicalPort specializes MemoPort {
|
|
26
48
|
attribute portKind : InterfaceKind;
|
|
49
|
+
// AADL port category (plan C2) — see SoftwarePort. A physical port
|
|
50
|
+
// carries it for the same reason: a sampled sensor line and a queued
|
|
51
|
+
// interrupt line fail differently under overload.
|
|
52
|
+
attribute portCategory : PortCategoryKind;
|
|
27
53
|
attribute connectorType : String;
|
|
28
|
-
attribute direction : DirectionKind;
|
|
29
54
|
}
|
|
30
55
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
package memo_artifacts_configuration_management {
|
|
2
|
+
private import Metaobjects::SemanticMetadata;
|
|
3
|
+
private import ScalarValues::*;
|
|
4
|
+
private import memo_core_relationships::*; // MemoRelationship
|
|
5
|
+
|
|
6
|
+
private import memo_core_common::*;
|
|
7
|
+
private import memo_core_enumerations::*;
|
|
8
|
+
|
|
9
|
+
part def ChangeRequest :> MemoPart {
|
|
10
|
+
attribute changeType : ChangeTypeKind;
|
|
11
|
+
attribute impactAssessment : String;
|
|
12
|
+
attribute approvalStatus : String;
|
|
13
|
+
attribute affectedBaseline : String;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
part def ConfigurationItem :> MemoPart {
|
|
17
|
+
attribute version : String;
|
|
18
|
+
attribute baseline : String;
|
|
19
|
+
attribute controlLevel : String;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ── Relations owned by this package ─────────────────────────────
|
|
23
|
+
// Moved out of memo_core_relationships: their ends are typed against
|
|
24
|
+
// types declared here, and core must not depend on a domain package.
|
|
25
|
+
connection def Changes :> MemoRelationship {
|
|
26
|
+
end changeRequest : ChangeRequest :>> source;
|
|
27
|
+
end changedElement : MemoPart :>> target;
|
|
28
|
+
}
|
|
29
|
+
abstract connection changesLinks : Changes[*];
|
|
30
|
+
metadata def <changes> ChangesMetadata :> SemanticMetadata {
|
|
31
|
+
:> annotatedElement : SysML::ConnectionDefinition;
|
|
32
|
+
:> annotatedElement : SysML::ConnectionUsage;
|
|
33
|
+
:>> baseType = changesLinks meta SysML::Usage;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
package memo_artifacts_core {
|
|
2
|
+
private import ScalarValues::*;
|
|
3
|
+
|
|
4
|
+
private import memo_core_common::*;
|
|
5
|
+
private import memo_core_enumerations::*;
|
|
6
|
+
|
|
7
|
+
abstract item def MemoArtifactItem :> MemoItem;
|
|
8
|
+
|
|
9
|
+
item def ControlledArtifact :> MemoArtifactItem {
|
|
10
|
+
attribute version : String;
|
|
11
|
+
attribute artifactKind : ArtifactKind;
|
|
12
|
+
attribute owner : String;
|
|
13
|
+
attribute approvalStatus : String;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
part def ModelOwnedArtifact :> ControlledArtifact {
|
|
17
|
+
attribute uri : String;
|
|
18
|
+
attribute mediaType : String;
|
|
19
|
+
attribute contentHash : String;
|
|
20
|
+
attribute artifactVersion : String[0..1];
|
|
21
|
+
attribute authoredLanguage : String[0..1];
|
|
22
|
+
attribute executionEnvironment : String[0..1];
|
|
23
|
+
attribute generated : Boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
part def ADRArtifact :> ModelOwnedArtifact {
|
|
27
|
+
attribute decisionId : String;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
part def MarkdownDocumentSource :> ModelOwnedArtifact {}
|
|
31
|
+
part def ModelQueryScript :> ModelOwnedArtifact {}
|
|
32
|
+
part def AnalysisNotebook :> ModelOwnedArtifact {}
|
|
33
|
+
part def ModelDataset :> ModelOwnedArtifact {}
|
|
34
|
+
part def GeneratedReport :> ModelOwnedArtifact {}
|
|
35
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
package memo_artifacts_documents_risk_management {
|
|
2
|
+
private import ScalarValues::*;
|
|
3
|
+
|
|
4
|
+
private import memo_artifacts_core::*;
|
|
5
|
+
|
|
6
|
+
part def RiskManagementFile :> ModelOwnedArtifact {
|
|
7
|
+
attribute standardReference : String;
|
|
8
|
+
attribute clause : String;
|
|
9
|
+
attribute edition : String;
|
|
10
|
+
attribute completenessStatus : String;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// 21 CFR Part 820 — FDA Quality System Regulation, design controls.
|
|
2
|
+
//
|
|
3
|
+
// Only §820.30 (design controls) and its paragraphs are represented: those are
|
|
4
|
+
// the provisions a design history file traces to. The production, purchasing
|
|
5
|
+
// and records subparts are QMS scope that no model element claims.
|
|
6
|
+
//
|
|
7
|
+
// Terminology: under QMSR (effective February 2026) Part 820 incorporates
|
|
8
|
+
// ISO 13485:2016 by reference, so a project may end up claiming both this pack
|
|
9
|
+
// and the 13485 one for the same document. That is two claims about one
|
|
10
|
+
// artifact, which is exactly what ConformsTo is for — it is not a duplicate
|
|
11
|
+
// registry.
|
|
12
|
+
package memo_artifacts_standards_cfr_21_820 {
|
|
13
|
+
private import ScalarValues::*;
|
|
14
|
+
private import memo_core_enumerations::*;
|
|
15
|
+
private import memo_core_relationships::*;
|
|
16
|
+
private import memo_artifacts_standards_traceability::*;
|
|
17
|
+
|
|
18
|
+
item cfr21Part820 : RegulatoryStandard {
|
|
19
|
+
attribute :>> id = "STD-21-CFR-820";
|
|
20
|
+
attribute :>> name = "CFR21Part820";
|
|
21
|
+
attribute :>> designation = "21 CFR Part 820";
|
|
22
|
+
attribute :>> issuer = "FDA";
|
|
23
|
+
attribute :>> appliesToRegime = (RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
item cfr820_30 : StandardClause {
|
|
27
|
+
attribute :>> id = "STD-21-CFR-820-30";
|
|
28
|
+
attribute :>> name = "CFR820_30";
|
|
29
|
+
attribute :>> clauseNumber = "820.30";
|
|
30
|
+
attribute :>> title = "design controls";
|
|
31
|
+
attribute :>> normativeStrength = "shall";
|
|
32
|
+
}
|
|
33
|
+
item cfr820_30a : StandardClause {
|
|
34
|
+
attribute :>> id = "STD-21-CFR-820-30-A";
|
|
35
|
+
attribute :>> name = "CFR820_30a";
|
|
36
|
+
attribute :>> clauseNumber = "820.30(a)";
|
|
37
|
+
attribute :>> title = "general design control applicability";
|
|
38
|
+
attribute :>> normativeStrength = "shall";
|
|
39
|
+
}
|
|
40
|
+
item cfr820_30b : StandardClause {
|
|
41
|
+
attribute :>> id = "STD-21-CFR-820-30-B";
|
|
42
|
+
attribute :>> name = "CFR820_30b";
|
|
43
|
+
attribute :>> clauseNumber = "820.30(b)";
|
|
44
|
+
attribute :>> title = "design and development planning";
|
|
45
|
+
attribute :>> normativeStrength = "shall";
|
|
46
|
+
}
|
|
47
|
+
item cfr820_30c : StandardClause {
|
|
48
|
+
attribute :>> id = "STD-21-CFR-820-30-C";
|
|
49
|
+
attribute :>> name = "CFR820_30c";
|
|
50
|
+
attribute :>> clauseNumber = "820.30(c)";
|
|
51
|
+
attribute :>> title = "design input";
|
|
52
|
+
attribute :>> normativeStrength = "shall";
|
|
53
|
+
}
|
|
54
|
+
item cfr820_30d : StandardClause {
|
|
55
|
+
attribute :>> id = "STD-21-CFR-820-30-D";
|
|
56
|
+
attribute :>> name = "CFR820_30d";
|
|
57
|
+
attribute :>> clauseNumber = "820.30(d)";
|
|
58
|
+
attribute :>> title = "design output";
|
|
59
|
+
attribute :>> normativeStrength = "shall";
|
|
60
|
+
}
|
|
61
|
+
item cfr820_30e : StandardClause {
|
|
62
|
+
attribute :>> id = "STD-21-CFR-820-30-E";
|
|
63
|
+
attribute :>> name = "CFR820_30e";
|
|
64
|
+
attribute :>> clauseNumber = "820.30(e)";
|
|
65
|
+
attribute :>> title = "design review";
|
|
66
|
+
attribute :>> normativeStrength = "shall";
|
|
67
|
+
}
|
|
68
|
+
item cfr820_30f : StandardClause {
|
|
69
|
+
attribute :>> id = "STD-21-CFR-820-30-F";
|
|
70
|
+
attribute :>> name = "CFR820_30f";
|
|
71
|
+
attribute :>> clauseNumber = "820.30(f)";
|
|
72
|
+
attribute :>> title = "design verification";
|
|
73
|
+
attribute :>> normativeStrength = "shall";
|
|
74
|
+
}
|
|
75
|
+
item cfr820_30g : StandardClause {
|
|
76
|
+
attribute :>> id = "STD-21-CFR-820-30-G";
|
|
77
|
+
attribute :>> name = "CFR820_30g";
|
|
78
|
+
attribute :>> clauseNumber = "820.30(g)";
|
|
79
|
+
attribute :>> title = "design validation";
|
|
80
|
+
attribute :>> normativeStrength = "shall";
|
|
81
|
+
}
|
|
82
|
+
item cfr820_30h : StandardClause {
|
|
83
|
+
attribute :>> id = "STD-21-CFR-820-30-H";
|
|
84
|
+
attribute :>> name = "CFR820_30h";
|
|
85
|
+
attribute :>> clauseNumber = "820.30(h)";
|
|
86
|
+
attribute :>> title = "design transfer";
|
|
87
|
+
attribute :>> normativeStrength = "shall";
|
|
88
|
+
}
|
|
89
|
+
item cfr820_30i : StandardClause {
|
|
90
|
+
attribute :>> id = "STD-21-CFR-820-30-I";
|
|
91
|
+
attribute :>> name = "CFR820_30i";
|
|
92
|
+
attribute :>> clauseNumber = "820.30(i)";
|
|
93
|
+
attribute :>> title = "design changes";
|
|
94
|
+
attribute :>> normativeStrength = "shall";
|
|
95
|
+
}
|
|
96
|
+
item cfr820_30j : StandardClause {
|
|
97
|
+
attribute :>> id = "STD-21-CFR-820-30-J";
|
|
98
|
+
attribute :>> name = "CFR820_30j";
|
|
99
|
+
attribute :>> clauseNumber = "820.30(j)";
|
|
100
|
+
attribute :>> title = "design history file";
|
|
101
|
+
attribute :>> normativeStrength = "shall";
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
connection cfr820Has30 : Composes connect parent ::> cfr21Part820 to child ::> cfr820_30;
|
|
105
|
+
|
|
106
|
+
connection cfr820_30HasA : Composes connect parent ::> cfr820_30 to child ::> cfr820_30a;
|
|
107
|
+
connection cfr820_30HasB : Composes connect parent ::> cfr820_30 to child ::> cfr820_30b;
|
|
108
|
+
connection cfr820_30HasC : Composes connect parent ::> cfr820_30 to child ::> cfr820_30c;
|
|
109
|
+
connection cfr820_30HasD : Composes connect parent ::> cfr820_30 to child ::> cfr820_30d;
|
|
110
|
+
connection cfr820_30HasE : Composes connect parent ::> cfr820_30 to child ::> cfr820_30e;
|
|
111
|
+
connection cfr820_30HasF : Composes connect parent ::> cfr820_30 to child ::> cfr820_30f;
|
|
112
|
+
connection cfr820_30HasG : Composes connect parent ::> cfr820_30 to child ::> cfr820_30g;
|
|
113
|
+
connection cfr820_30HasH : Composes connect parent ::> cfr820_30 to child ::> cfr820_30h;
|
|
114
|
+
connection cfr820_30HasI : Composes connect parent ::> cfr820_30 to child ::> cfr820_30i;
|
|
115
|
+
connection cfr820_30HasJ : Composes connect parent ::> cfr820_30 to child ::> cfr820_30j;
|
|
116
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// FDA guidance — "Cybersecurity in Medical Devices: Quality System
|
|
2
|
+
// Considerations and Content of Premarket Submissions" (September 2023).
|
|
3
|
+
//
|
|
4
|
+
// Guidance, not a consensus standard, so every clause here carries
|
|
5
|
+
// normativeStrength = "informative": FDA guidance describes current thinking
|
|
6
|
+
// and is not binding. It is modelled as a RegulatoryStandard all the same,
|
|
7
|
+
// because a submission traces to it exactly the way it traces to IEC 62304 —
|
|
8
|
+
// the traceability question is identical, only the enforceability differs, and
|
|
9
|
+
// that difference is data on the clause rather than a second mechanism.
|
|
10
|
+
//
|
|
11
|
+
// Reference granularity is the guidance's own lettered section structure
|
|
12
|
+
// (IV, V.A, …), not a decimal clause numbering — this document has none. The
|
|
13
|
+
// templates previously cited decimal numbers ("3.2", "5.2") that match no
|
|
14
|
+
// section of the published guidance; those were replaced when this pack landed.
|
|
15
|
+
package memo_artifacts_standards_fda_cybersecurity_2023 {
|
|
16
|
+
private import ScalarValues::*;
|
|
17
|
+
private import memo_core_enumerations::*;
|
|
18
|
+
private import memo_core_relationships::*;
|
|
19
|
+
private import memo_artifacts_standards_traceability::*;
|
|
20
|
+
|
|
21
|
+
item fdaCybersecurity2023 : RegulatoryStandard {
|
|
22
|
+
attribute :>> id = "STD-FDA-CYBER-2023";
|
|
23
|
+
attribute :>> name = "FDACybersecurity2023";
|
|
24
|
+
attribute :>> designation = "FDA Cybersecurity Guidance 2023";
|
|
25
|
+
attribute :>> edition = "2023-09";
|
|
26
|
+
attribute :>> issuer = "FDA";
|
|
27
|
+
attribute :>> appliesToRegime = (RegulatoryRegimeKind::FDA_510k, RegulatoryRegimeKind::FDA_PMA);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
item fdaCyberSection4 : StandardClause {
|
|
31
|
+
attribute :>> id = "STD-FDA-CYBER-2023-IV";
|
|
32
|
+
attribute :>> name = "FDACyberSectionIV";
|
|
33
|
+
attribute :>> clauseNumber = "IV";
|
|
34
|
+
attribute :>> title = "general cybersecurity principles";
|
|
35
|
+
attribute :>> normativeStrength = "informative";
|
|
36
|
+
}
|
|
37
|
+
item fdaCyberSection5 : StandardClause {
|
|
38
|
+
attribute :>> id = "STD-FDA-CYBER-2023-V";
|
|
39
|
+
attribute :>> name = "FDACyberSectionV";
|
|
40
|
+
attribute :>> clauseNumber = "V";
|
|
41
|
+
attribute :>> title = "secure product development framework";
|
|
42
|
+
attribute :>> normativeStrength = "informative";
|
|
43
|
+
}
|
|
44
|
+
item fdaCyberSection5A : StandardClause {
|
|
45
|
+
attribute :>> id = "STD-FDA-CYBER-2023-V-A";
|
|
46
|
+
attribute :>> name = "FDACyberSectionVA";
|
|
47
|
+
attribute :>> clauseNumber = "V.A";
|
|
48
|
+
attribute :>> title = "security risk management";
|
|
49
|
+
attribute :>> normativeStrength = "informative";
|
|
50
|
+
}
|
|
51
|
+
item fdaCyberSection5B : StandardClause {
|
|
52
|
+
attribute :>> id = "STD-FDA-CYBER-2023-V-B";
|
|
53
|
+
attribute :>> name = "FDACyberSectionVB";
|
|
54
|
+
attribute :>> clauseNumber = "V.B";
|
|
55
|
+
attribute :>> title = "security architecture";
|
|
56
|
+
attribute :>> normativeStrength = "informative";
|
|
57
|
+
}
|
|
58
|
+
item fdaCyberSection5C : StandardClause {
|
|
59
|
+
attribute :>> id = "STD-FDA-CYBER-2023-V-C";
|
|
60
|
+
attribute :>> name = "FDACyberSectionVC";
|
|
61
|
+
attribute :>> clauseNumber = "V.C";
|
|
62
|
+
attribute :>> title = "cybersecurity testing";
|
|
63
|
+
attribute :>> normativeStrength = "informative";
|
|
64
|
+
}
|
|
65
|
+
item fdaCyberSection6 : StandardClause {
|
|
66
|
+
attribute :>> id = "STD-FDA-CYBER-2023-VI";
|
|
67
|
+
attribute :>> name = "FDACyberSectionVI";
|
|
68
|
+
attribute :>> clauseNumber = "VI";
|
|
69
|
+
attribute :>> title = "cybersecurity transparency and vulnerability management";
|
|
70
|
+
attribute :>> normativeStrength = "informative";
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
connection fdaCyberHas4 : Composes connect parent ::> fdaCybersecurity2023 to child ::> fdaCyberSection4;
|
|
74
|
+
connection fdaCyberHas5 : Composes connect parent ::> fdaCybersecurity2023 to child ::> fdaCyberSection5;
|
|
75
|
+
connection fdaCyberHas6 : Composes connect parent ::> fdaCybersecurity2023 to child ::> fdaCyberSection6;
|
|
76
|
+
|
|
77
|
+
connection fdaCyberHas5A : Composes connect parent ::> fdaCyberSection5 to child ::> fdaCyberSection5A;
|
|
78
|
+
connection fdaCyberHas5B : Composes connect parent ::> fdaCyberSection5 to child ::> fdaCyberSection5B;
|
|
79
|
+
connection fdaCyberHas5C : Composes connect parent ::> fdaCyberSection5 to child ::> fdaCyberSection5C;
|
|
80
|
+
}
|