@memoarchitect/ontology 0.7.0 → 0.8.24
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/memo.package.yaml +3 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +8 -6
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/memo.package.yaml +3 -0
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +6 -6
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.package.yaml +3 -0
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +14 -3
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +8 -5
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +97 -103
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +17 -17
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -334
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
- package/examples/gpca-pump/model/catalog/project.sysml +5 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -7
- 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 +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -8
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -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 +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +2 -5
- 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 +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -3
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/memo.package.yaml +3 -0
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +16 -23
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -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 +12 -0
- package/examples/software-only-medical-device/memo.package.yaml +3 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +12 -6
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +58 -75
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
- package/examples/surgical-robot/memo.package.yaml +3 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
- package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -18
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +43 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +57 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +40 -70
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +4 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +52 -84
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +22 -33
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +13 -10
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -25
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
- package/examples/ui-screen-regions/memo.package.yaml +3 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +2 -3
- 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/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
- 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/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/src/extension.sysml +37 -0
- package/memo.manifest.yaml +13 -2
- 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 +5 -3
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +23 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +51 -23
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -36
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +40 -13
- package/src/architecture/implementation/ui/memo_ui.sysml +83 -43
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -12
- package/src/architecture/logical/structure/memo_logical_structure.sysml +26 -25
- package/src/architecture/operational/activities/memo_activities.sysml +27 -29
- package/src/architecture/operational/context/actors/memo_actors.sysml +8 -10
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +16 -33
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -17
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +36 -84
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -27
- package/src/architecture/operational/workflows/memo_workflows.sysml +45 -28
- package/src/architecture/realization/deployment/memo_deployment.sysml +115 -20
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +29 -4
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
- 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/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
- package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
- package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
- package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
- package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
- package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
- package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
- package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
- package/src/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 +40 -21
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +7 -20
- 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 +90 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +25 -6
- package/src/core/common/memo_common.sysml +130 -21
- package/src/core/consistency_rules/consistency_rules.sysml +1 -1
- package/src/core/dimensions/dimensions.sysml +12 -0
- package/src/core/enumerations/memo_enumerations.sysml +60 -14
- package/src/core/relationships/memo_relationships.sysml +199 -196
- package/src/memo_namespaces.sysml +30 -0
- package/src/methodology/core/memo_core.sysml +24 -0
- package/src/methodology/profiles/memo_profiles.sysml +1 -1
- package/src/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +20 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
- package/src/rules/ontology/ontology_invariants.sysml +223 -11
- package/src/rules/quantitative/quantitative_rules.sysml +2 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +30 -30
- 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 +1 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -3
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -3
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
- package/src/viewpoints/software/software_viewpoint.sysml +1 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -3
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/default/memo.package.yaml +2 -0
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/samd/memo.package.yaml +2 -0
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/gpca-pump/gpca-pump.kpar +0 -0
- /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
|
@@ -9,7 +9,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
9
9
|
private import memo_core_common::*;
|
|
10
10
|
|
|
11
11
|
// ── Logical functions ───────────────────────────────────────
|
|
12
|
-
|
|
12
|
+
action fnAcquireSensors : SystemFunction {
|
|
13
13
|
attribute :>> id = "FUNC-001";
|
|
14
14
|
attribute :>> name = "AcquireSensorData";
|
|
15
15
|
attribute :>> functionCategory = "sensing";
|
|
@@ -17,8 +17,49 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
17
17
|
attribute :>> outputSummary = "Debounced, range-checked sensor status vector";
|
|
18
18
|
attribute :>> concernKind = ConcernKind::safety;
|
|
19
19
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
20
|
+
|
|
21
|
+
// ── Component functions decomposing FUNC-001 ─────────────
|
|
22
|
+
// The functional chain does not stop at the system boundary.
|
|
23
|
+
// "Acquire sensor data" is a system responsibility; measuring a flow
|
|
24
|
+
// rate is the flowmeter's, and aggregating the status vector is the
|
|
25
|
+
// sensor subassembly's. Each names its component through
|
|
26
|
+
// AllocatedTo (see gpca_behavior_actions), which CR-ONT-074
|
|
27
|
+
// requires — a component function allocated nowhere is a
|
|
28
|
+
// responsibility nobody has accepted.
|
|
29
|
+
action cfnMeasureFlowRate : ComponentFunction {
|
|
30
|
+
attribute :>> id = "CFUN-001";
|
|
31
|
+
attribute :>> name = "MeasureFlowRate";
|
|
32
|
+
attribute :>> functionCategory = "sensing";
|
|
33
|
+
attribute :>> actionKind = ActionKind::sense;
|
|
34
|
+
attribute :>> trigger = "continuous, sampled every 20 ms execution step";
|
|
35
|
+
attribute :>> outputSummary = "Measured delivered flow rate in mL/h, with a validity flag";
|
|
36
|
+
attribute :>> concernKind = ConcernKind::safety;
|
|
37
|
+
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
38
|
+
}
|
|
39
|
+
action cfnDetectAirInLine : ComponentFunction {
|
|
40
|
+
attribute :>> id = "CFUN-002";
|
|
41
|
+
attribute :>> name = "DetectAirInLine";
|
|
42
|
+
attribute :>> functionCategory = "protection";
|
|
43
|
+
attribute :>> actionKind = ActionKind::sense;
|
|
44
|
+
attribute :>> trigger = "continuous, sampled every 20 ms execution step";
|
|
45
|
+
attribute :>> outputSummary = "Air-in-line present or absent, with accumulated bolus volume";
|
|
46
|
+
attribute :>> concernKind = ConcernKind::safety;
|
|
47
|
+
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
48
|
+
}
|
|
49
|
+
// The subassembly case: a component function need not sit on a leaf part.
|
|
50
|
+
action cfnAggregateSensorStatus : ComponentFunction {
|
|
51
|
+
attribute :>> id = "CFUN-003";
|
|
52
|
+
attribute :>> name = "AggregateSensorStatus";
|
|
53
|
+
attribute :>> functionCategory = "sensing";
|
|
54
|
+
attribute :>> actionKind = ActionKind::transform;
|
|
55
|
+
attribute :>> trigger = "every 20 ms execution step";
|
|
56
|
+
attribute :>> outputSummary = "Debounced, range-checked sensor status vector for the controller";
|
|
57
|
+
attribute :>> concernKind = ConcernKind::safety;
|
|
58
|
+
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
59
|
+
}
|
|
20
60
|
}
|
|
21
|
-
|
|
61
|
+
|
|
62
|
+
action fnValidatePrescription : SystemFunction {
|
|
22
63
|
attribute :>> id = "FUNC-002";
|
|
23
64
|
attribute :>> name = "ValidatePrescription";
|
|
24
65
|
attribute :>> functionCategory = "configuration";
|
|
@@ -27,7 +68,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
27
68
|
attribute :>> concernKind = ConcernKind::safety;
|
|
28
69
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
29
70
|
}
|
|
30
|
-
|
|
71
|
+
action fnMonitorAlarm : SystemFunction {
|
|
31
72
|
attribute :>> id = "FUNC-003";
|
|
32
73
|
attribute :>> name = "MonitorExceptionalConditions";
|
|
33
74
|
attribute :>> functionCategory = "alarm";
|
|
@@ -36,7 +77,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
36
77
|
attribute :>> concernKind = ConcernKind::safety;
|
|
37
78
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
38
79
|
}
|
|
39
|
-
|
|
80
|
+
action fnAnnunciate : SystemFunction {
|
|
40
81
|
attribute :>> id = "FUNC-004";
|
|
41
82
|
attribute :>> name = "AnnunciateAlarms";
|
|
42
83
|
attribute :>> functionCategory = "alarm";
|
|
@@ -45,7 +86,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
45
86
|
attribute :>> concernKind = ConcernKind::safety;
|
|
46
87
|
attribute :>> criticality = CriticalityKind::high;
|
|
47
88
|
}
|
|
48
|
-
|
|
89
|
+
action fnManageInfusion : SystemFunction {
|
|
49
90
|
attribute :>> id = "FUNC-005";
|
|
50
91
|
attribute :>> name = "ManageInfusion";
|
|
51
92
|
attribute :>> functionCategory = "infusion";
|
|
@@ -54,7 +95,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
54
95
|
attribute :>> concernKind = ConcernKind::safety;
|
|
55
96
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
56
97
|
}
|
|
57
|
-
|
|
98
|
+
action fnEnforceLimits : SystemFunction {
|
|
58
99
|
attribute :>> id = "FUNC-006";
|
|
59
100
|
attribute :>> name = "EnforceDoseLimits";
|
|
60
101
|
attribute :>> functionCategory = "infusion";
|
|
@@ -63,7 +104,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
63
104
|
attribute :>> concernKind = ConcernKind::safety;
|
|
64
105
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
65
106
|
}
|
|
66
|
-
|
|
107
|
+
action fnCommandPump : SystemFunction {
|
|
67
108
|
attribute :>> id = "FUNC-007";
|
|
68
109
|
attribute :>> name = "CommandPumpMotor";
|
|
69
110
|
attribute :>> functionCategory = "actuation";
|
|
@@ -72,7 +113,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
72
113
|
attribute :>> concernKind = ConcernKind::safety;
|
|
73
114
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
74
115
|
}
|
|
75
|
-
|
|
116
|
+
action fnLogEvents : SystemFunction {
|
|
76
117
|
attribute :>> id = "FUNC-008";
|
|
77
118
|
attribute :>> name = "LogTherapyEvents";
|
|
78
119
|
attribute :>> functionCategory = "logging";
|
|
@@ -81,7 +122,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
81
122
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
82
123
|
attribute :>> criticality = CriticalityKind::medium;
|
|
83
124
|
}
|
|
84
|
-
|
|
125
|
+
action fnManagePower : SystemFunction {
|
|
85
126
|
attribute :>> id = "FUNC-009";
|
|
86
127
|
attribute :>> name = "ManagePower";
|
|
87
128
|
attribute :>> functionCategory = "platform";
|
|
@@ -90,7 +131,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
90
131
|
attribute :>> concernKind = ConcernKind::reliability;
|
|
91
132
|
attribute :>> criticality = CriticalityKind::high;
|
|
92
133
|
}
|
|
93
|
-
|
|
134
|
+
action fnPresentStatus : SystemFunction {
|
|
94
135
|
attribute :>> id = "FUNC-010";
|
|
95
136
|
attribute :>> name = "PresentStatus";
|
|
96
137
|
attribute :>> functionCategory = "user-interface";
|
|
@@ -99,7 +140,7 @@ package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
|
99
140
|
attribute :>> concernKind = ConcernKind::usability;
|
|
100
141
|
attribute :>> criticality = CriticalityKind::high;
|
|
101
142
|
}
|
|
102
|
-
|
|
143
|
+
action fnSelfTest : SystemFunction {
|
|
103
144
|
attribute :>> id = "FUNC-011";
|
|
104
145
|
attribute :>> name = "ExecuteSelfTest";
|
|
105
146
|
attribute :>> functionCategory = "platform";
|
|
@@ -3,15 +3,17 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_operational_context_actors::*;
|
|
5
5
|
private import memo_architecture_operational_context_use_context::*;
|
|
6
|
+
private import memo_architecture_operational_structure::*;
|
|
6
7
|
private import memo_assurance_requirements::*;
|
|
8
|
+
private import memo_assurance_safety_risk::*;
|
|
7
9
|
private import memo_assurance_human_factors::*;
|
|
8
10
|
private import memo_core_enumerations::*;
|
|
11
|
+
private import memo_examples_gpca_pump_gpca_operational::*;
|
|
9
12
|
|
|
10
13
|
// ── Intended use (ISO 14971 §5.2, IEC 62366-1) ──────────────
|
|
11
14
|
part gpcaIntendedUse : IntendedUse {
|
|
12
15
|
attribute :>> id = "IU-001";
|
|
13
16
|
attribute :>> name = "GPCA_IntendedUse";
|
|
14
|
-
attribute :>> title = "GPCA Pump Intended Use";
|
|
15
17
|
attribute :>> shortDescription = "Patient-controlled analgesia infusion of prescribed opioid analgesics.";
|
|
16
18
|
attribute :>> description = "The GPCA pump delivers a prescribed analgesic drug intravenously at a programmed basal rate, supplemented by square boluses delivered automatically at programmed intervals and by patient-requested bolus doses, subject to lockout intervals and maximum-dose limits.";
|
|
17
19
|
attribute :>> indication = "Management of acute post-operative or chronic pain requiring titrated intravenous opioid analgesia.";
|
|
@@ -19,12 +21,14 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
19
21
|
attribute :>> patientPopulation = "Adult in-patients under clinical supervision.";
|
|
20
22
|
attribute :>> clinicalBenefit = "Timely, patient-titrated analgesia with lower total opioid consumption than fixed-schedule dosing.";
|
|
21
23
|
attribute :>> regulatoryClassification = "FDA Class II infusion pump (21 CFR 880.5725); IEC 62304 software safety class C.";
|
|
24
|
+
attribute :>> missionKind = "therapeutic device mission";
|
|
25
|
+
attribute :>> successCriteria = "Drug delivered per prescription; no overdose or undetected under-infusion; every hazardous condition annunciated within its alarm latency budget.";
|
|
26
|
+
attribute :>> operationalContext = "Acute-care hospital ward, fixed (non-ambulatory) location (UC-001).";
|
|
22
27
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §2.1-2.3 (GPCA overview, system functions, user characteristics)";
|
|
23
28
|
}
|
|
24
29
|
part bolusByProxyMisuse : ReasonablyForeseeableMisuse {
|
|
25
30
|
attribute :>> id = "RFM-001";
|
|
26
31
|
attribute :>> name = "BolusRequestBySomeoneOtherThanPatient";
|
|
27
|
-
attribute :>> title = "Bolus by proxy";
|
|
28
32
|
attribute :>> shortDescription = "A caregiver or visitor presses the patient bolus control.";
|
|
29
33
|
attribute :>> description = "A person other than the patient activates the bolus request control, bypassing the intended patient self-limiting behavior.";
|
|
30
34
|
attribute :>> misuseContext = "Patient-controlled analgesia in a supervised hospital setting.";
|
|
@@ -41,7 +45,6 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
41
45
|
attribute :>> environment = "indoor clinical environment, mains power with battery backup, pole or bed-rail mounted";
|
|
42
46
|
attribute :>> jurisdiction = "generic (FDA/EU reference model)";
|
|
43
47
|
attribute :>> connectedUse = true;
|
|
44
|
-
attribute :>> intendedUseReference = "IU-001";
|
|
45
48
|
}
|
|
46
49
|
// UC-002 (intra-hospital transport) removed: CriSys §2.4 states the
|
|
47
50
|
// system is used in a fixed location and is not ambulatory.
|
|
@@ -53,6 +56,7 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
53
56
|
attribute :>> name = "Patient";
|
|
54
57
|
attribute :>> trainingLevel = "instructed by clinician on bolus request button only";
|
|
55
58
|
attribute :>> description = "Receives the infusion and requests bolus doses via the patient pendant.";
|
|
59
|
+
perform oaRequestBolus;
|
|
56
60
|
}
|
|
57
61
|
part actorNurse : User {
|
|
58
62
|
attribute :>> actorKind = ActorKind::clinician;
|
|
@@ -60,6 +64,10 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
60
64
|
attribute :>> name = "ClinicianNurse";
|
|
61
65
|
attribute :>> trainingLevel = "trained clinical user; programs prescriptions and responds to alarms";
|
|
62
66
|
attribute :>> description = "Loads the drug reservoir, programs and confirms the prescription, starts/stops therapy, and responds to alarms.";
|
|
67
|
+
perform oaProgram;
|
|
68
|
+
perform oaStartTherapy;
|
|
69
|
+
perform oaRespondAlarm;
|
|
70
|
+
perform oaReviewLog;
|
|
63
71
|
}
|
|
64
72
|
part actorPrescriber : User {
|
|
65
73
|
attribute :>> actorKind = ActorKind::clinician;
|
|
@@ -67,6 +75,7 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
67
75
|
attribute :>> name = "PrescribingPhysician";
|
|
68
76
|
attribute :>> trainingLevel = "licensed prescriber";
|
|
69
77
|
attribute :>> description = "Prescribes drug, concentration, basal rate, bolus volume, lockout interval, and maximum dose limits.";
|
|
78
|
+
perform oaPrescribe;
|
|
70
79
|
}
|
|
71
80
|
part actorPharmacist : User {
|
|
72
81
|
attribute :>> actorKind = ActorKind::clinician;
|
|
@@ -74,6 +83,7 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
74
83
|
attribute :>> name = "Pharmacist";
|
|
75
84
|
attribute :>> trainingLevel = "licensed pharmacist";
|
|
76
85
|
attribute :>> description = "Prepares the drug reservoir and verifies drug and concentration against the prescription.";
|
|
86
|
+
perform oaLoadReservoir;
|
|
77
87
|
}
|
|
78
88
|
part actorTechnician : User {
|
|
79
89
|
attribute :>> actorKind = ActorKind::technician;
|
|
@@ -81,6 +91,7 @@ package memo_examples_gpca_pump_gpca_context {
|
|
|
81
91
|
attribute :>> name = "BiomedicalTechnician";
|
|
82
92
|
attribute :>> trainingLevel = "service-trained; authenticated service access";
|
|
83
93
|
attribute :>> description = "Performs maintenance, battery replacement, and calibration through the service interface.";
|
|
94
|
+
perform oaMaintain;
|
|
84
95
|
}
|
|
85
96
|
|
|
86
97
|
// ── Foreseeable use errors (IEC 62366-1, AAMI TIR PCA) ──────
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
package memo_examples_gpca_pump_gpca_cybersecurity {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
|
+
private import memo_core_dimensions::*; // ElementStatusKind
|
|
3
4
|
|
|
4
5
|
private import memo_assurance_cybersecurity::*;
|
|
5
6
|
private import memo_assurance_requirements::*;
|
|
6
7
|
private import memo_assurance_safety_risk::*;
|
|
7
8
|
private import memo_assurance_verification_validation::*;
|
|
8
9
|
private import memo_core_enumerations::*;
|
|
10
|
+
private import memo_core_common::*;
|
|
11
|
+
private import memo_architecture_operational_scenarios::*;
|
|
9
12
|
private import memo_core_relationships::*;
|
|
10
13
|
private import memo_examples_gpca_pump_gpca_architecture::*;
|
|
11
14
|
private import memo_examples_gpca_pump_gpca_risk::*;
|
|
@@ -78,7 +81,7 @@ package memo_examples_gpca_pump_gpca_cybersecurity {
|
|
|
78
81
|
attribute :>> cweReference = "CWE-798";
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
action tamperedConfigurationScenario :
|
|
84
|
+
action tamperedConfigurationScenario : OperativeScenario {
|
|
82
85
|
attribute :>> id = "SCN-001";
|
|
83
86
|
attribute :>> name = "TamperedTherapyConfigurationScenario";
|
|
84
87
|
attribute :>> description = "An attacker with local access to the maintenance port alters lockout or dose parameters, aiming to bypass safety limits; may enable unsafe therapy delivery or bypass safeguards.";
|
|
@@ -128,7 +131,7 @@ package memo_examples_gpca_pump_gpca_cybersecurity {
|
|
|
128
131
|
attribute :>> statement = "The system shall require authenticated and authorized service access before any therapy configuration parameter can be modified.";
|
|
129
132
|
attribute :>> sourceKind = RequirementSourceKind::risk;
|
|
130
133
|
attribute :>> concernKind = ConcernKind::cybersecurity;
|
|
131
|
-
attribute :>>
|
|
134
|
+
attribute :>> status = ElementStatusKind::approved;
|
|
132
135
|
attribute :>> acceptanceCriteria = "Unauthenticated or unauthorized attempts to modify therapy configuration are rejected and logged.";
|
|
133
136
|
attribute :>> subjectDescription = "maintenance and configuration path";
|
|
134
137
|
attribute :>> actorDescription = "service personnel";
|
|
@@ -145,7 +148,9 @@ package memo_examples_gpca_pump_gpca_cybersecurity {
|
|
|
145
148
|
attribute :>> name = "VerifyAuthenticatedServiceAccess";
|
|
146
149
|
attribute :>> methodKind = VerificationMethodKind::test;
|
|
147
150
|
attribute :>> acceptanceCriteria = "Only authenticated and authorized service sessions may modify therapy configuration; all attempts are logged.";
|
|
148
|
-
attribute :>> status =
|
|
151
|
+
attribute :>> status = ElementStatusKind::approved;
|
|
152
|
+
|
|
153
|
+
objective { verify reqAuthenticatedServiceAccess; }
|
|
149
154
|
}
|
|
150
155
|
|
|
151
156
|
connection : ThreatenedBy connect protectedAsset ::> therapyConfigurationAsset to realizedThreat ::> unauthorizedConfigChangeThreat;
|
|
@@ -166,7 +171,5 @@ package memo_examples_gpca_pump_gpca_cybersecurity {
|
|
|
166
171
|
|
|
167
172
|
connection : CrossesTrustBoundary connect boundary ::> maintenancePortBoundary to crossingItem ::> therapyConfigurationAsset;
|
|
168
173
|
|
|
169
|
-
connection : VerifiedBy connect verificationTarget ::> reqAuthenticatedServiceAccess to verificationCase ::> vcAuthenticatedServiceAccess;
|
|
170
|
-
|
|
171
174
|
connection : ProducesEvidence connect producer ::> vcAuthenticatedServiceAccess to producedEvidence ::> evidenceLockout;
|
|
172
175
|
}
|