@memoarchitect/ontology 0.13.2 → 0.15.1
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 +5 -3
- package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
- package/examples/connected-patient-monitor/memo.package.yaml +3 -1
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
- package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
- package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/functional-logical-physical/memo.identity.yaml +28 -0
- package/examples/functional-logical-physical/memo.package.yaml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
- package/examples/gpca-pump/analysis/Samples/README.md +15 -9
- package/examples/gpca-pump/analysis/memo_model.py +243 -0
- package/examples/gpca-pump/memo.identity.yaml +521 -26
- package/examples/gpca-pump/memo.package.yaml +3 -1
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -357
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -90
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
- package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
- package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/multidimensional-layers/memo.package.yaml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
- package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
- package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
- package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/reusable-instrument/memo.package.yaml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
- package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/robot-cell-family/README.md +34 -0
- package/examples/robot-cell-family/memo.identity.yaml +142 -0
- package/examples/robot-cell-family/memo.package.yaml +7 -0
- package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
- package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
- package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
- package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
- package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
- package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
- package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
- package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
- package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
- package/examples/robot-platform/memo.package.yaml +3 -0
- package/examples/robot-platform/model/platform.sysml +15 -0
- package/examples/ros-mobile-robot/README.md +5 -4
- package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
- package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
- package/examples/software-only-medical-device/memo.package.yaml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
- package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
- package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
- package/examples/surgical-robot/memo.package.yaml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
- package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/sysml-diagram-samples/README.md +1 -0
- package/examples/sysml-diagram-samples/memo.identity.yaml +459 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +25 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
- package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
- package/examples/temperature-alarm/memo.identity.yaml +6 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
- package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/ui-screen-regions/memo.identity.yaml +33 -0
- package/examples/ui-screen-regions/memo.package.yaml +3 -1
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
- package/extensions/README.md +65 -16
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/aadl_extension.sysml +5 -2
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
- package/extensions/clinical/memo.package.yaml +1 -1
- package/extensions/clinical/src/clinical_extension.sysml +2 -0
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/messaging_extension.sysml +2 -2
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/ros_extension.sysml +25 -24
- package/extensions/template/memo.package.yaml +1 -1
- package/extensions/template/model/extension.sysml +25 -0
- package/memo.manifest.yaml +1 -7
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +6 -4
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +9 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
- package/src/architecture/functional/functions/memo_functions.sysml +45 -31
- package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
- package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
- package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
- package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
- package/src/architecture/operational/structure/memo_operational.sysml +5 -2
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
- package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
- package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
- package/src/architecture/variability/memo_variability.sysml +87 -0
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
- package/src/artifacts/standards/cfr_21_820.sysml +12 -24
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
- package/src/artifacts/standards/iec_60601_1.sysml +16 -32
- package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
- package/src/artifacts/standards/iec_60812.sysml +4 -8
- package/src/artifacts/standards/iec_62304.sysml +607 -47
- package/src/artifacts/standards/iec_62366_1.sysml +12 -24
- package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
- package/src/artifacts/standards/iso_13485.sysml +12 -24
- package/src/artifacts/standards/iso_14971.sysml +118 -20
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
- package/src/artifacts/templates/dhf/system/sad.md +1 -1
- package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
- package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
- package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
- package/src/assurance/safety_risk/memo_risk.sysml +39 -1
- package/src/core/common/memo_common.sysml +61 -68
- package/src/core/enumerations/memo_enumerations.sysml +93 -9
- package/src/core/relationships/memo_relationships.sysml +17 -11
- package/src/core/relationships/memo_workspace_membership.sysml +284 -0
- package/src/core/semantics/semantics.sysml +58 -0
- package/src/core/terminology/terminology.sysml +7 -0
- package/src/memo_namespaces.sysml +6 -0
- package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
- package/src/methodology/core/memo_core.sysml +85 -29
- package/src/methodology/profiles/memo_profiles.sysml +217 -61
- package/src/methodology/workflow/memo_workflow.sysml +28 -0
- package/src/rules/closure/closure_rules.sysml +250 -4
- package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
- package/src/rules/ontology/ontology_invariants.sysml +288 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -0
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
- package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
- package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +2 -3
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
- package/templates/default/memo.package.yaml +6 -1
- package/templates/default/model/catalog/architecture/system.sysml +7 -3
- package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
- package/extensions/container/src/methodology/container_methodology.sysml +0 -19
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
- package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
- package/extensions/template/src/extension.sysml +0 -39
- package/templates/connected-device/memo.package.yaml +0 -13
- package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/connected-device/model/catalog/project.sysml +0 -30
- package/templates/connected-device/package.json +0 -8
- package/templates/connected-device/syside.toml +0 -13
- package/templates/infusion-pump/memo.package.yaml +0 -13
- package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
- package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/infusion-pump/model/catalog/project.sysml +0 -30
- package/templates/infusion-pump/package.json +0 -8
- package/templates/infusion-pump/syside.toml +0 -13
- package/templates/monitoring-device/memo.package.yaml +0 -13
- package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/monitoring-device/model/catalog/project.sysml +0 -30
- package/templates/monitoring-device/package.json +0 -8
- package/templates/monitoring-device/syside.toml +0 -13
- package/templates/samd/memo.package.yaml +0 -13
- package/templates/samd/model/catalog/architecture/system.sysml +0 -5
- package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/samd/model/catalog/project.sysml +0 -30
- package/templates/samd/package.json +0 -8
- package/templates/samd/syside.toml +0 -13
|
@@ -34,6 +34,8 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
34
34
|
private import memo_architecture_operational_use_cases::*;
|
|
35
35
|
private import memo_architecture_operational_workflows::*;
|
|
36
36
|
private import memo_architecture_realization_deployment::*;
|
|
37
|
+
private import memo_core_enumerations::DeploymentKind;
|
|
38
|
+
private import memo_core_common::MemoIdentity;
|
|
37
39
|
private import memo_assurance_human_factors::*;
|
|
38
40
|
private import memo_assurance_safety_risk::*;
|
|
39
41
|
private import memo_assurance_safety_risk_analysis::*;
|
|
@@ -48,19 +50,20 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
48
50
|
connection connect actorPharmacist to entityPharmacy;
|
|
49
51
|
|
|
50
52
|
// ── Fig 2.1 context flows (CriSys §2.1) ─────────────────────
|
|
51
|
-
// Data
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
// Data exchanges: who exchanges data with whom (the figure names no item),
|
|
54
|
+
// so each is a connection from the source to the receiver.
|
|
55
|
+
connection entityPrescriptionToActorNurse connect entityPrescription to actorNurse;
|
|
56
|
+
connection actorNurseToEntityGpcaPump connect actorNurse to entityGpcaPump;
|
|
57
|
+
connection entityGpcaPumpToActorNurse connect entityGpcaPump to actorNurse;
|
|
58
|
+
connection actorPatientToEntityGpcaPump connect actorPatient to entityGpcaPump;
|
|
59
|
+
connection entityPharmacyDbToEntityGpcaPump connect entityPharmacyDb to entityGpcaPump;
|
|
57
60
|
// Physical connections (drug path)
|
|
58
61
|
connection connect source ::> entityDrugReservoir to target ::> entityGpcaPump;
|
|
59
62
|
connection connect source ::> entityGpcaPump to target ::> entityNeedle;
|
|
60
63
|
connection connect source ::> entityNeedle to target ::> actorPatient;
|
|
61
64
|
connection connect source ::> entityPowerInfrastructure to target ::> entityGpcaPump;
|
|
62
65
|
// Intended use and use context anchoring (no floating context nodes)
|
|
63
|
-
connection : Governs { attribute :>> governKind = GovernKind::'use';
|
|
66
|
+
connection : Governs connect governor ::> gpcaIntendedUse to governedElement ::> entityGpcaPump { attribute :>> governKind = GovernKind::'use'; }
|
|
64
67
|
connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityGpcaPump;
|
|
65
68
|
connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityHospital;
|
|
66
69
|
|
|
@@ -77,10 +80,10 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
77
80
|
connection : DerivesFrom connect sourceDriver ::> oaRespondAlarm to targetRequirement ::> reqCs59;
|
|
78
81
|
|
|
79
82
|
// ── Functional chains ───────────────────────────────────────
|
|
80
|
-
// fcPatientBolus/fcAlarmStop already name every one of these functions
|
|
81
|
-
//
|
|
82
|
-
// fnAcquireSensors
|
|
83
|
-
// flattened restatement of that
|
|
83
|
+
// fcPatientBolus/fcAlarmStop already name every one of these functions:
|
|
84
|
+
// each step subsets the function it performs (`action fcsBolusSense :>
|
|
85
|
+
// fnAcquireSensors`) in gpca_system.sysml — InvolvesFunction was a
|
|
86
|
+
// flattened restatement of that, not new information.
|
|
84
87
|
// fcStartup declares no steps, so its two functions are native `perform`
|
|
85
88
|
// statements directly on fcStartup in gpca_system.sysml instead.
|
|
86
89
|
#refinement dependency fcPatientBolus to ssBolusDuringBasal;
|
|
@@ -92,15 +95,17 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
92
95
|
// The nine refinement statements themselves live in gpca_operational.sysml,
|
|
93
96
|
// inside wsRequestBolus's/wsRespondAlarm's own owning scope — the
|
|
94
97
|
// `#refinement dependency ... to ...` shorthand's target end does not
|
|
95
|
-
// accept a qualified path, and
|
|
98
|
+
// accept a qualified path, and the operative actions are nested.
|
|
96
99
|
|
|
97
100
|
// ── Requirement derivation ──────────────────────────────────
|
|
98
101
|
// MEMO extension requirements (REQ-X) derive from needs and risks.
|
|
102
|
+
// --8<-- [start:derives]
|
|
99
103
|
connection : DerivesFrom connect sourceDriver ::> needSafeTherapy to targetRequirement ::> reqPost;
|
|
100
104
|
connection : DerivesFrom connect sourceDriver ::> needEffectiveAnalgesia to targetRequirement ::> reqPumpAccuracy;
|
|
101
105
|
connection : DerivesFrom connect sourceDriver ::> needEffectiveAnalgesia to targetRequirement ::> reqBatteryBackup;
|
|
102
106
|
connection : DerivesFrom connect sourceDriver ::> needTimelyAlarms to targetRequirement ::> reqAlarmLoudness;
|
|
103
107
|
connection : DerivesFrom connect sourceDriver ::> needAuditableRecord to targetRequirement ::> reqEventLogging;
|
|
108
|
+
// --8<-- [end:derives]
|
|
104
109
|
connection : DerivesFrom connect sourceDriver ::> overdoseHazard to targetRequirement ::> reqCs25;
|
|
105
110
|
connection : DerivesFrom connect sourceDriver ::> underdoseHazard to targetRequirement ::> reqOcclusion;
|
|
106
111
|
connection : DerivesFrom connect sourceDriver ::> airEmbolismHazard to targetRequirement ::> reqCs21;
|
|
@@ -329,23 +334,43 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
329
334
|
|
|
330
335
|
// ── Function allocation ─────────────────────────────────────
|
|
331
336
|
allocate fnAcquireSensors to gpcaDevice.gpcaDeviceSensors;
|
|
332
|
-
allocate fnAcquireSensors to
|
|
333
|
-
allocate fnPresentStatus to
|
|
334
|
-
allocate fnValidatePrescription to
|
|
335
|
-
allocate fnMonitorAlarm to
|
|
337
|
+
allocate fnAcquireSensors to gpcaSoftware.systemStatus;
|
|
338
|
+
allocate fnPresentStatus to gpcaSoftware.outputBus;
|
|
339
|
+
allocate fnValidatePrescription to gpcaSoftware.config;
|
|
340
|
+
allocate fnMonitorAlarm to gpcaSoftware.alarm;
|
|
336
341
|
allocate fnAnnunciate to audibleAlarm;
|
|
337
|
-
allocate fnManageInfusion to
|
|
338
|
-
allocate fnEnforceLimits to
|
|
342
|
+
allocate fnManageInfusion to gpcaSoftware.infusionMgr;
|
|
343
|
+
allocate fnEnforceLimits to gpcaSoftware.infusionMgr;
|
|
339
344
|
allocate fnCommandPump to pumpMotorAssembly;
|
|
340
|
-
allocate fnLogEvents to
|
|
341
|
-
allocate fnManagePower to
|
|
345
|
+
allocate fnLogEvents to gpcaSoftware.logging;
|
|
346
|
+
allocate fnManagePower to gpcaSoftware.systemMonitor;
|
|
342
347
|
allocate fnPresentStatus to operatorDisplay;
|
|
343
|
-
allocate fnSelfTest to
|
|
348
|
+
allocate fnSelfTest to gpcaSoftware.systemMonitor;
|
|
344
349
|
// ── Deployment, hosting, and interface realization ──────────
|
|
345
|
-
|
|
350
|
+
// Software reaches the hardware as a built image on the processor that
|
|
351
|
+
// runs it: modules build into the image, the image deploys to the MCU.
|
|
352
|
+
// This edge used to deploy the software system onto the circuit board,
|
|
353
|
+
// which DeploysTo's ends reject — a system is not a deployment unit and a
|
|
354
|
+
// board is not a processing node (mainController, hosted by the board).
|
|
355
|
+
// --8<-- [start:deployment]
|
|
356
|
+
part gpcaFirmwareImage : SoftwareDeploymentUnit {
|
|
357
|
+
@MemoIdentity { :>> providedId = "DU-001"; :>> label = "GPCAFirmwareImage"; }
|
|
358
|
+
attribute :>> unitKind = "firmware image";
|
|
359
|
+
attribute :>> version = "2.0";
|
|
360
|
+
}
|
|
361
|
+
allocation : BuildsInto allocate gpcaSoftware.tlm to gpcaFirmwareImage;
|
|
362
|
+
allocation : BuildsInto allocate gpcaSoftware.config to gpcaFirmwareImage;
|
|
363
|
+
allocation : BuildsInto allocate gpcaSoftware.alarm to gpcaFirmwareImage;
|
|
364
|
+
allocation : BuildsInto allocate gpcaSoftware.logging to gpcaFirmwareImage;
|
|
365
|
+
allocation : BuildsInto allocate gpcaSoftware.infusionMgr to gpcaFirmwareImage;
|
|
366
|
+
allocation : BuildsInto allocate gpcaSoftware.systemMonitor to gpcaFirmwareImage;
|
|
367
|
+
allocation gpcaSoftwareDeployment : DeploysTo allocate gpcaFirmwareImage to mainController {
|
|
368
|
+
attribute :>> deploymentKind = DeploymentKind::embedded;
|
|
369
|
+
}
|
|
346
370
|
allocation : HostedBy allocate mainController to controllerBoard;
|
|
347
371
|
#refinement dependency sensorInputInterface to hwSoftwareBus;
|
|
348
372
|
#refinement dependency actuatorCommandInterface to pumpMotorDrive;
|
|
373
|
+
// --8<-- [end:deployment]
|
|
349
374
|
connection : BindsToInterface connect portElement ::> portPatientPendant to boundInterface ::> bolusButtonLine;
|
|
350
375
|
connection : BindsToInterface connect portElement ::> portMotorDrive to boundInterface ::> pumpMotorDrive;
|
|
351
376
|
connection : BindsToInterface connect portElement ::> portSensorHarness to boundInterface ::> occlusionAnalogLine;
|
|
@@ -369,33 +394,33 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
369
394
|
// recorded exactly, at port granularity, as `bind` statements in
|
|
370
395
|
// gpca_interfaces.sysml — so nothing is lost by not restating them
|
|
371
396
|
// here in a granularity that cannot express them.
|
|
372
|
-
flow from
|
|
373
|
-
flow from
|
|
374
|
-
flow from
|
|
375
|
-
flow from
|
|
376
|
-
flow from
|
|
377
|
-
flow from
|
|
378
|
-
flow from
|
|
379
|
-
flow from
|
|
380
|
-
flow from
|
|
381
|
-
flow from
|
|
382
|
-
flow from
|
|
383
|
-
flow from
|
|
384
|
-
flow from
|
|
385
|
-
flow from
|
|
386
|
-
flow from
|
|
387
|
-
flow from
|
|
388
|
-
flow from
|
|
389
|
-
flow from
|
|
390
|
-
flow from
|
|
391
|
-
flow from
|
|
392
|
-
flow from
|
|
393
|
-
flow from
|
|
394
|
-
flow from
|
|
395
|
-
flow from
|
|
396
|
-
flow from
|
|
397
|
-
flow from
|
|
398
|
-
flow from
|
|
397
|
+
flow tlmToOutputBus from gpcaSoftware.tlm to gpcaSoftware.outputBus;
|
|
398
|
+
flow infusionMgrToSystemStatus from gpcaSoftware.infusionMgr to gpcaSoftware.systemStatus;
|
|
399
|
+
flow tlmToSystemStatus from gpcaSoftware.tlm to gpcaSoftware.systemStatus;
|
|
400
|
+
flow configToSystemStatus from gpcaSoftware.config to gpcaSoftware.systemStatus;
|
|
401
|
+
flow systemStatusToOutputBus from gpcaSoftware.systemStatus to gpcaSoftware.outputBus;
|
|
402
|
+
flow infusionMgrToAlarm from gpcaSoftware.infusionMgr to gpcaSoftware.alarm;
|
|
403
|
+
flow tlmToAlarm from gpcaSoftware.tlm to gpcaSoftware.alarm;
|
|
404
|
+
flow systemMonitorToAlarm from gpcaSoftware.systemMonitor to gpcaSoftware.alarm;
|
|
405
|
+
flow systemStatusToAlarm from gpcaSoftware.systemStatus to gpcaSoftware.alarm;
|
|
406
|
+
flow configToAlarm from gpcaSoftware.config to gpcaSoftware.alarm;
|
|
407
|
+
flow alarmToOutputBus from gpcaSoftware.alarm to gpcaSoftware.outputBus;
|
|
408
|
+
flow tlmToConfig from gpcaSoftware.tlm to gpcaSoftware.config;
|
|
409
|
+
flow systemStatusToConfig from gpcaSoftware.systemStatus to gpcaSoftware.config;
|
|
410
|
+
flow configToOutputBus from gpcaSoftware.config to gpcaSoftware.outputBus;
|
|
411
|
+
flow tlmToInfusionMgr from gpcaSoftware.tlm to gpcaSoftware.infusionMgr;
|
|
412
|
+
flow configToInfusionMgr from gpcaSoftware.config to gpcaSoftware.infusionMgr;
|
|
413
|
+
flow alarmToInfusionMgr from gpcaSoftware.alarm to gpcaSoftware.infusionMgr;
|
|
414
|
+
flow systemStatusToInfusionMgr from gpcaSoftware.systemStatus to gpcaSoftware.infusionMgr;
|
|
415
|
+
flow infusionMgrToOutputBus from gpcaSoftware.infusionMgr to gpcaSoftware.outputBus;
|
|
416
|
+
flow tlmToSystemMonitor from gpcaSoftware.tlm to gpcaSoftware.systemMonitor;
|
|
417
|
+
flow systemMonitorToOutputBus from gpcaSoftware.systemMonitor to gpcaSoftware.outputBus;
|
|
418
|
+
flow tlmToLogging from gpcaSoftware.tlm to gpcaSoftware.logging;
|
|
419
|
+
flow configToLogging from gpcaSoftware.config to gpcaSoftware.logging;
|
|
420
|
+
flow alarmToLogging from gpcaSoftware.alarm to gpcaSoftware.logging;
|
|
421
|
+
flow systemStatusToLogging from gpcaSoftware.systemStatus to gpcaSoftware.logging;
|
|
422
|
+
flow infusionMgrToLogging from gpcaSoftware.infusionMgr to gpcaSoftware.logging;
|
|
423
|
+
flow loggingToOutputBus from gpcaSoftware.logging to gpcaSoftware.outputBus;
|
|
399
424
|
|
|
400
425
|
// ── GPCA_SW boundary features (AADL GPCA_SW.aadl; CITE-002) ──
|
|
401
426
|
// The seven top-level ports are features of GPCA_Software, so
|
|
@@ -409,13 +434,13 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
409
434
|
bind gpcaDevice.devDbIn = gpcaDevice.gpcaDeviceSensors.snsDbIn;
|
|
410
435
|
bind gpcaDevice.devPresIn = gpcaDevice.gpcaDeviceSensors.snsPresIn;
|
|
411
436
|
bind gpcaDevice.devPatientIn = gpcaDevice.gpcaDeviceSensors.snsPatientIn;
|
|
412
|
-
flow from gpcaDevice.gpcaDeviceSensors.snsOpCmdOut to
|
|
413
|
-
flow from gpcaDevice.gpcaDeviceSensors.snsPresOut to
|
|
414
|
-
flow from gpcaDevice.gpcaDeviceSensors.snsPatientOut to
|
|
415
|
-
flow from gpcaDevice.gpcaDeviceSensors.snsSensorOut to
|
|
416
|
-
flow from gpcaDevice.gpcaDeviceSensors.snsConstOut to
|
|
417
|
-
flow from gpcaDevice.gpcaDeviceSensors.snsDbOut to
|
|
418
|
-
flow from
|
|
437
|
+
flow snsOpCmdOutToPortOpCmdIn from gpcaDevice.gpcaDeviceSensors.snsOpCmdOut to gpcaSoftware.portOpCmdIn;
|
|
438
|
+
flow snsPresOutToPortPresIn from gpcaDevice.gpcaDeviceSensors.snsPresOut to gpcaSoftware.portPresIn;
|
|
439
|
+
flow snsPatientOutToPortPatientIn from gpcaDevice.gpcaDeviceSensors.snsPatientOut to gpcaSoftware.portPatientIn;
|
|
440
|
+
flow snsSensorOutToPortSensorIn from gpcaDevice.gpcaDeviceSensors.snsSensorOut to gpcaSoftware.portSensorIn;
|
|
441
|
+
flow snsConstOutToPortConstIn from gpcaDevice.gpcaDeviceSensors.snsConstOut to gpcaSoftware.portConstIn;
|
|
442
|
+
flow snsDbOutToPortDbIn from gpcaDevice.gpcaDeviceSensors.snsDbOut to gpcaSoftware.portDbIn;
|
|
443
|
+
flow portGpcaSwOutToActGpcaSwIn from gpcaSoftware.portGpcaSwOut to gpcaDevice.gpcaActuators.actGpcaSwIn;
|
|
419
444
|
bind gpcaDevice.gpcaActuators.actGpcaOut = gpcaDevice.devGpcaOut;
|
|
420
445
|
|
|
421
446
|
// ── Risk chains (ISO 14971, GIIP causal-tree structure) ─────
|
|
@@ -429,15 +454,15 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
429
454
|
connection : TracesRisk connect sourceRiskElement ::> overdoseHazard to targetRiskElement ::> seqFrequentBolus;
|
|
430
455
|
connection : TracesRisk connect sourceRiskElement ::> seqFrequentBolus to targetRiskElement ::> hsExcessInfusion;
|
|
431
456
|
connection : TracesRisk connect sourceRiskElement ::> hsExcessInfusion to targetRiskElement ::> harmRespiratoryDepression;
|
|
432
|
-
connection :
|
|
457
|
+
connection : EstimatedFor connect risk ::> riskBefore to riskElement ::> harmRespiratoryDepression;
|
|
433
458
|
connection : AssessedAgainst connect risk ::> riskBefore to riskMatrix ::> riskMatrix;
|
|
434
|
-
connection : Mitigates
|
|
435
|
-
connection : Mitigates
|
|
436
|
-
connection : Mitigates
|
|
437
|
-
connection : Mitigates
|
|
438
|
-
connection :
|
|
459
|
+
connection : Mitigates connect control ::> lockoutControl to mitigatedElement ::> overdoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
460
|
+
connection : Mitigates connect control ::> drugLibraryControl to mitigatedElement ::> overdoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
461
|
+
connection : Mitigates connect control ::> watchdogControl to mitigatedElement ::> overdoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
462
|
+
connection : Mitigates connect control ::> flowCrossCheckControl to mitigatedElement ::> overdoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
463
|
+
connection : ReducedBy connect residualRisk ::> riskAfter to control ::> lockoutControl;
|
|
439
464
|
connection : AssessedAgainst connect risk ::> riskAfter to riskMatrix ::> riskMatrix;
|
|
440
|
-
connection :
|
|
465
|
+
connection : EvaluatedIn connect residualRisk ::> riskAfter to evaluation ::> residualEval;
|
|
441
466
|
// HZ-002 under-infusion
|
|
442
467
|
connection : TracesRisk connect sourceRiskElement ::> causeOcclusion to targetRiskElement ::> underdoseHazard;
|
|
443
468
|
connection : TracesRisk connect sourceRiskElement ::> causeReservoirEmpty to targetRiskElement ::> underdoseHazard;
|
|
@@ -447,14 +472,14 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
447
472
|
connection : TracesRisk connect sourceRiskElement ::> underdoseHazard to targetRiskElement ::> seqOcclusion;
|
|
448
473
|
connection : TracesRisk connect sourceRiskElement ::> seqOcclusion to targetRiskElement ::> hsInterruptedTherapy;
|
|
449
474
|
connection : TracesRisk connect sourceRiskElement ::> hsInterruptedTherapy to targetRiskElement ::> harmUntreatedPain;
|
|
450
|
-
connection :
|
|
475
|
+
connection : EstimatedFor connect risk ::> riskBeforeUnderdose to riskElement ::> harmUntreatedPain;
|
|
451
476
|
connection : AssessedAgainst connect risk ::> riskBeforeUnderdose to riskMatrix ::> riskMatrix;
|
|
452
|
-
connection : Mitigates
|
|
453
|
-
connection : Mitigates
|
|
454
|
-
connection : Mitigates
|
|
455
|
-
connection :
|
|
477
|
+
connection : Mitigates connect control ::> occlusionAlarmControl to mitigatedElement ::> underdoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
478
|
+
connection : Mitigates connect control ::> reservoirMonitorControl to mitigatedElement ::> underdoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
479
|
+
connection : Mitigates connect control ::> flowCrossCheckControl to mitigatedElement ::> underdoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
480
|
+
connection : ReducedBy connect residualRisk ::> riskAfterUnderdose to control ::> occlusionAlarmControl;
|
|
456
481
|
connection : AssessedAgainst connect risk ::> riskAfterUnderdose to riskMatrix ::> riskMatrix;
|
|
457
|
-
connection :
|
|
482
|
+
connection : EvaluatedIn connect residualRisk ::> riskAfterUnderdose to evaluation ::> residualEval;
|
|
458
483
|
// HZ-003 air embolism (shares the air-in-line and empty-reservoir causes)
|
|
459
484
|
connection : TracesRisk connect sourceRiskElement ::> causeAirInLine to targetRiskElement ::> airEmbolismHazard;
|
|
460
485
|
connection : TracesRisk connect sourceRiskElement ::> causeReservoirEmpty to targetRiskElement ::> airEmbolismHazard;
|
|
@@ -464,12 +489,12 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
464
489
|
connection : TracesRisk connect sourceRiskElement ::> airEmbolismHazard to targetRiskElement ::> seqAirInLine;
|
|
465
490
|
connection : TracesRisk connect sourceRiskElement ::> seqAirInLine to targetRiskElement ::> hsAirTowardPatient;
|
|
466
491
|
connection : TracesRisk connect sourceRiskElement ::> hsAirTowardPatient to targetRiskElement ::> harmAirEmbolism;
|
|
467
|
-
connection :
|
|
492
|
+
connection : EstimatedFor connect risk ::> riskBeforeAir to riskElement ::> harmAirEmbolism;
|
|
468
493
|
connection : AssessedAgainst connect risk ::> riskBeforeAir to riskMatrix ::> riskMatrix;
|
|
469
|
-
connection : Mitigates
|
|
470
|
-
connection :
|
|
494
|
+
connection : Mitigates connect control ::> airDetectionControl to mitigatedElement ::> airEmbolismHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
495
|
+
connection : ReducedBy connect residualRisk ::> riskAfterAir to control ::> airDetectionControl;
|
|
471
496
|
connection : AssessedAgainst connect risk ::> riskAfterAir to riskMatrix ::> riskMatrix;
|
|
472
|
-
connection :
|
|
497
|
+
connection : EvaluatedIn connect residualRisk ::> riskAfterAir to evaluation ::> residualEval;
|
|
473
498
|
// HZ-004 misprogramming / wrong drug
|
|
474
499
|
connection : TracesRisk connect sourceRiskElement ::> causeWrongPrescriptionEntered to targetRiskElement ::> wrongDoseHazard;
|
|
475
500
|
connection : TracesRisk connect sourceRiskElement ::> causeWrongDoseUnits to targetRiskElement ::> wrongDoseHazard;
|
|
@@ -479,56 +504,56 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
479
504
|
connection : TracesRisk connect sourceRiskElement ::> wrongDoseHazard to targetRiskElement ::> seqMisprogram;
|
|
480
505
|
connection : TracesRisk connect sourceRiskElement ::> seqMisprogram to targetRiskElement ::> hsWrongTherapy;
|
|
481
506
|
connection : TracesRisk connect sourceRiskElement ::> hsWrongTherapy to targetRiskElement ::> harmRespiratoryDepression;
|
|
482
|
-
connection :
|
|
507
|
+
connection : EstimatedFor connect risk ::> riskBeforeWrongDose to riskElement ::> hsWrongTherapy;
|
|
483
508
|
connection : AssessedAgainst connect risk ::> riskBeforeWrongDose to riskMatrix ::> riskMatrix;
|
|
484
|
-
connection : Mitigates
|
|
485
|
-
connection :
|
|
509
|
+
connection : Mitigates connect control ::> drugLibraryControl to mitigatedElement ::> wrongDoseHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
510
|
+
connection : ReducedBy connect residualRisk ::> riskAfterWrongDose to control ::> drugLibraryControl;
|
|
486
511
|
connection : AssessedAgainst connect risk ::> riskAfterWrongDose to riskMatrix ::> riskMatrix;
|
|
487
|
-
connection :
|
|
512
|
+
connection : EvaluatedIn connect residualRisk ::> riskAfterWrongDose to evaluation ::> residualEval;
|
|
488
513
|
// HZ-005 free flow
|
|
489
514
|
connection : TracesRisk connect sourceRiskElement ::> causeSetDisengaged to targetRiskElement ::> freeFlowHazard;
|
|
490
515
|
connection : TracesRisk connect sourceRiskElement ::> causeDoorOpenedDuringInfusion to targetRiskElement ::> freeFlowHazard;
|
|
491
516
|
connection : TracesRisk connect sourceRiskElement ::> freeFlowHazard to targetRiskElement ::> seqFreeFlow;
|
|
492
517
|
connection : TracesRisk connect sourceRiskElement ::> seqFreeFlow to targetRiskElement ::> hsFreeFlow;
|
|
493
518
|
connection : TracesRisk connect sourceRiskElement ::> hsFreeFlow to targetRiskElement ::> harmRespiratoryDepression;
|
|
494
|
-
connection :
|
|
519
|
+
connection : EstimatedFor connect risk ::> riskBeforeFreeFlow to riskElement ::> hsFreeFlow;
|
|
495
520
|
connection : AssessedAgainst connect risk ::> riskBeforeFreeFlow to riskMatrix ::> riskMatrix;
|
|
496
|
-
connection : Mitigates
|
|
497
|
-
connection : Mitigates
|
|
498
|
-
connection :
|
|
521
|
+
connection : Mitigates connect control ::> freeFlowValveControl to mitigatedElement ::> freeFlowHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
522
|
+
connection : Mitigates connect control ::> doorInterlockControl to mitigatedElement ::> freeFlowHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
523
|
+
connection : ReducedBy connect residualRisk ::> riskAfterFreeFlow to control ::> freeFlowValveControl;
|
|
499
524
|
connection : AssessedAgainst connect risk ::> riskAfterFreeFlow to riskMatrix ::> riskMatrix;
|
|
500
|
-
connection :
|
|
525
|
+
connection : EvaluatedIn connect residualRisk ::> riskAfterFreeFlow to evaluation ::> residualEval;
|
|
501
526
|
// HZ-006 reverse delivery (CriSys REQ 22; GIP HID 1.14)
|
|
502
527
|
connection : TracesRisk connect sourceRiskElement ::> causeBleedBack to targetRiskElement ::> reverseDeliveryHazard;
|
|
503
528
|
connection : TracesRisk connect sourceRiskElement ::> reverseDeliveryHazard to targetRiskElement ::> seqReverseDelivery;
|
|
504
529
|
connection : TracesRisk connect sourceRiskElement ::> seqReverseDelivery to targetRiskElement ::> hsReverseFlow;
|
|
505
530
|
connection : TracesRisk connect sourceRiskElement ::> hsReverseFlow to targetRiskElement ::> harmUntreatedPain;
|
|
506
|
-
connection :
|
|
531
|
+
connection : EstimatedFor connect risk ::> riskBeforeReverse to riskElement ::> harmUntreatedPain;
|
|
507
532
|
connection : AssessedAgainst connect risk ::> riskBeforeReverse to riskMatrix ::> riskMatrix;
|
|
508
|
-
connection : Mitigates
|
|
509
|
-
connection : Mitigates
|
|
510
|
-
connection :
|
|
533
|
+
connection : Mitigates connect control ::> reverseDeliveryPauseControl to mitigatedElement ::> reverseDeliveryHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
534
|
+
connection : Mitigates connect control ::> antiRefluxDesignControl to mitigatedElement ::> reverseDeliveryHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
535
|
+
connection : ReducedBy connect residualRisk ::> riskAfterReverse to control ::> reverseDeliveryPauseControl;
|
|
511
536
|
connection : AssessedAgainst connect risk ::> riskAfterReverse to riskMatrix ::> riskMatrix;
|
|
512
|
-
connection :
|
|
537
|
+
connection : EvaluatedIn connect residualRisk ::> riskAfterReverse to evaluation ::> residualEval;
|
|
513
538
|
// HZ-007 VTBI over-infusion (CriSys REQ 20/28; GIP use hazard 8.1)
|
|
514
539
|
connection : TracesRisk connect sourceRiskElement ::> causeVtbiTooHigh to targetRiskElement ::> vtbiOverInfusionHazard;
|
|
515
540
|
connection : TracesRisk connect sourceRiskElement ::> causeStaleDrugLibrary to targetRiskElement ::> vtbiOverInfusionHazard;
|
|
516
541
|
connection : TracesRisk connect sourceRiskElement ::> vtbiOverInfusionHazard to targetRiskElement ::> seqVtbiExceeded;
|
|
517
542
|
connection : TracesRisk connect sourceRiskElement ::> seqVtbiExceeded to targetRiskElement ::> hsVtbiExceeded;
|
|
518
543
|
connection : TracesRisk connect sourceRiskElement ::> hsVtbiExceeded to targetRiskElement ::> harmRespiratoryDepression;
|
|
519
|
-
connection :
|
|
544
|
+
connection : EstimatedFor connect risk ::> riskBeforeVtbi to riskElement ::> harmRespiratoryDepression;
|
|
520
545
|
connection : AssessedAgainst connect risk ::> riskBeforeVtbi to riskMatrix ::> riskMatrix;
|
|
521
|
-
connection : Mitigates
|
|
522
|
-
connection : Mitigates
|
|
523
|
-
connection : Mitigates
|
|
524
|
-
connection :
|
|
546
|
+
connection : Mitigates connect control ::> vtbiLimitPauseControl to mitigatedElement ::> vtbiOverInfusionHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
547
|
+
connection : Mitigates connect control ::> infusionCompleteControl to mitigatedElement ::> vtbiOverInfusionHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
548
|
+
connection : Mitigates connect control ::> drugLibraryControl to mitigatedElement ::> vtbiOverInfusionHazard { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
549
|
+
connection : ReducedBy connect residualRisk ::> riskAfterVtbi to control ::> vtbiLimitPauseControl;
|
|
525
550
|
connection : AssessedAgainst connect risk ::> riskAfterVtbi to riskMatrix ::> riskMatrix;
|
|
526
|
-
connection :
|
|
551
|
+
connection : EvaluatedIn connect residualRisk ::> riskAfterVtbi to evaluation ::> residualEval;
|
|
527
552
|
// Use errors feeding the risk chains (IEC 62366-1 §5.3)
|
|
528
|
-
connection :
|
|
529
|
-
connection :
|
|
530
|
-
connection :
|
|
531
|
-
connection :
|
|
553
|
+
connection : Causes connect cause ::> ueMisprogrammedRate to effect ::> seqMisprogram { attribute :>> causeKind = CauseKind::useErrorLeadsToHazard; }
|
|
554
|
+
connection : Causes connect cause ::> ueWrongDrugLoaded to effect ::> seqMisprogram { attribute :>> causeKind = CauseKind::useErrorLeadsToHazard; }
|
|
555
|
+
connection : Causes connect cause ::> ueBolusByProxy to effect ::> causeFrequentBolus { attribute :>> causeKind = CauseKind::useErrorLeadsToHazard; }
|
|
556
|
+
connection : Causes connect cause ::> ueAlarmDisregard to effect ::> seqOcclusion { attribute :>> causeKind = CauseKind::useErrorLeadsToHazard; }
|
|
532
557
|
|
|
533
558
|
// ── FMEA and fault tree integration ─────────────────────────
|
|
534
559
|
// Was `AnalyzedBy`: a zero-attribute edge from an element to the
|
|
@@ -539,23 +564,23 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
539
564
|
connection : HasFailureMode connect element ::> occlusionSensor to failureMode ::> fmOcclusionDrift;
|
|
540
565
|
connection : HasFailureMode connect element ::> bolusButton to failureMode ::> fmStuckBolusButton;
|
|
541
566
|
connection : HasFailureMode connect element ::> batteryPack to failureMode ::> fmBatteryEarlyDepletion;
|
|
542
|
-
connection : Causes
|
|
543
|
-
connection : Causes
|
|
544
|
-
connection : Causes
|
|
545
|
-
connection : Causes
|
|
546
|
-
connection : Causes
|
|
547
|
-
connection : Causes
|
|
548
|
-
connection : Causes
|
|
567
|
+
connection : Causes connect cause ::> fmMotorRunaway to effect ::> feOverdose { attribute :>> causeKind = CauseKind::failureCausesEffect; }
|
|
568
|
+
connection : Causes connect cause ::> fmStuckBolusButton to effect ::> feOverdose { attribute :>> causeKind = CauseKind::failureCausesEffect; }
|
|
569
|
+
connection : Causes connect cause ::> fmAirSensorSilent to effect ::> feAirDelivered { attribute :>> causeKind = CauseKind::failureCausesEffect; }
|
|
570
|
+
connection : Causes connect cause ::> fmOcclusionDrift to effect ::> feTherapyInterrupted { attribute :>> causeKind = CauseKind::failureCausesEffect; }
|
|
571
|
+
connection : Causes connect cause ::> fcMotorDriverFault to effect ::> fmMotorRunaway { attribute :>> causeKind = CauseKind::failureCausedBy; }
|
|
572
|
+
connection : Causes connect cause ::> fcTransducerAging to effect ::> fmAirSensorSilent { attribute :>> causeKind = CauseKind::failureCausedBy; }
|
|
573
|
+
connection : Causes connect cause ::> fcPendantAbuse to effect ::> fmStuckBolusButton { attribute :>> causeKind = CauseKind::failureCausedBy; }
|
|
549
574
|
connection : DetectedBy connect failureMode ::> fmMotorRunaway to detectionMethod ::> dmFlowCrossCheck;
|
|
550
575
|
connection : DetectedBy connect failureMode ::> fmAirSensorSilent to detectionMethod ::> dmPostSensorCheck;
|
|
551
576
|
connection : DetectedBy connect failureMode ::> fmStuckBolusButton to detectionMethod ::> dmStuckInputMonitor;
|
|
552
|
-
connection : Mitigates
|
|
553
|
-
connection : Causes
|
|
554
|
-
connection : Causes
|
|
555
|
-
connection : Causes
|
|
556
|
-
connection : Causes
|
|
557
|
-
connection : Mitigates
|
|
558
|
-
connection : Mitigates
|
|
577
|
+
connection : Mitigates connect control ::> fmeaActionAirSensor to mitigatedElement ::> fmAirSensorSilent { attribute :>> mitigationKind = MitigationKind::fmeaAction; }
|
|
578
|
+
connection : Causes connect cause ::> fmMotorRunaway to effect ::> overdoseHazard { attribute :>> causeKind = CauseKind::contributesToHazard; }
|
|
579
|
+
connection : Causes connect cause ::> fmStuckBolusButton to effect ::> overdoseHazard { attribute :>> causeKind = CauseKind::contributesToHazard; }
|
|
580
|
+
connection : Causes connect cause ::> fmAirSensorSilent to effect ::> airEmbolismHazard { attribute :>> causeKind = CauseKind::contributesToHazard; }
|
|
581
|
+
connection : Causes connect cause ::> fmOcclusionDrift to effect ::> underdoseHazard { attribute :>> causeKind = CauseKind::contributesToHazard; }
|
|
582
|
+
connection : Mitigates connect control ::> flowCrossCheckControl to mitigatedElement ::> fmMotorRunaway { attribute :>> mitigationKind = MitigationKind::failureMode; }
|
|
583
|
+
connection : Mitigates connect control ::> lockoutControl to mitigatedElement ::> fmStuckBolusButton { attribute :>> mitigationKind = MitigationKind::failureMode; }
|
|
559
584
|
connection : InputToGate connect input ::> fteMotorRunaway to gate ::> ftgMotorAnd;
|
|
560
585
|
connection : InputToGate connect input ::> fteCrossCheckFails to gate ::> ftgMotorAnd;
|
|
561
586
|
connection : InputToGate connect input ::> fteLockoutFault to gate ::> ftgBolusAnd;
|
|
@@ -563,15 +588,15 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
563
588
|
connection : InputToGate connect input ::> ftgMotorAnd to gate ::> ftgOverdoseOr;
|
|
564
589
|
connection : InputToGate connect input ::> ftgBolusAnd to gate ::> ftgOverdoseOr;
|
|
565
590
|
connection : ProducesEvent connect gate ::> ftgOverdoseOr to eventElement ::> fteOverdoseTop;
|
|
566
|
-
connection : Causes
|
|
567
|
-
connection : Causes
|
|
568
|
-
connection : Causes
|
|
591
|
+
connection : Causes connect cause ::> fteOverdoseTop to effect ::> overdoseHazard { attribute :>> causeKind = CauseKind::leadsToHazard; }
|
|
592
|
+
connection : Causes connect cause ::> pumpMotorAssembly to effect ::> fteMotorRunaway { attribute :>> causeKind = CauseKind::originatesFrom; }
|
|
593
|
+
connection : Causes connect cause ::> bolusButton to effect ::> fteStuckButtonUndetected { attribute :>> causeKind = CauseKind::originatesFrom; }
|
|
569
594
|
connection : ContainsEvent connect cutSet ::> mcsMotorPath to eventElement ::> fteMotorRunaway;
|
|
570
595
|
connection : ContainsEvent connect cutSet ::> mcsMotorPath to eventElement ::> fteCrossCheckFails;
|
|
571
596
|
connection : ContainsEvent connect cutSet ::> mcsBolusPath to eventElement ::> fteLockoutFault;
|
|
572
597
|
connection : ContainsEvent connect cutSet ::> mcsBolusPath to eventElement ::> fteStuckButtonUndetected;
|
|
573
|
-
connection : Mitigates
|
|
574
|
-
connection : Mitigates
|
|
598
|
+
connection : Mitigates connect control ::> flowCrossCheckControl to mitigatedElement ::> mcsMotorPath { attribute :>> mitigationKind = MitigationKind::cutSet; }
|
|
599
|
+
connection : Mitigates connect control ::> lockoutControl to mitigatedElement ::> mcsBolusPath { attribute :>> mitigationKind = MitigationKind::cutSet; }
|
|
575
600
|
|
|
576
601
|
// ── Verification coverage (IEC 62304 §5.7) ──────────────────
|
|
577
602
|
|
|
@@ -639,6 +664,12 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
639
664
|
connection : TestedByUsability connect uiElementOrTask ::> ueWrongDrugLoaded to usabilityTest ::> valSummativeUsability;
|
|
640
665
|
connection : TestedByUsability connect uiElementOrTask ::> ueAlarmDisregard to usabilityTest ::> valSummativeUsability;
|
|
641
666
|
connection : TestedByUsability connect uiElementOrTask ::> oaProgram to usabilityTest ::> valSummativeUsability;
|
|
667
|
+
// VAL-002's acceptance criteria name UE-001..UE-004, and each of those is
|
|
668
|
+
// committed during one task (CommitsUseError, gpca_context). Only the
|
|
669
|
+
// programming task was linked; the other three are the same evaluation.
|
|
670
|
+
connection : TestedByUsability connect uiElementOrTask ::> oaRequestBolus to usabilityTest ::> valSummativeUsability;
|
|
671
|
+
connection : TestedByUsability connect uiElementOrTask ::> oaLoadReservoir to usabilityTest ::> valSummativeUsability;
|
|
672
|
+
connection : TestedByUsability connect uiElementOrTask ::> oaRespondAlarm to usabilityTest ::> valSummativeUsability;
|
|
642
673
|
|
|
643
674
|
// ── Evidence production and document inclusion ──────────────
|
|
644
675
|
connection : ProducesEvidence connect producer ::> vcLockout to producedEvidence ::> evidenceLockout;
|