@memoarchitect/ontology 0.6.5 → 0.8.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +19 -9
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +342 -100
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +27 -13
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +329 -272
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +57 -16
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +12 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -10
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +181 -264
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +95 -60
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -11
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +102 -101
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +47 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +301 -354
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +116 -36
- package/examples/gpca-pump/model/catalog/project.sysml +26 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +8 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +8 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +3 -3
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -2
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
- package/examples/nested-architecture-dsm/README.md +49 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +179 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +165 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +113 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +48 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +11 -8
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +28 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +57 -57
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
- package/examples/surgical-robot/model/catalog/project.sysml +24 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +6 -4
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
- package/examples/sysml-diagram-samples/README.md +7 -0
- package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +11 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +143 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +87 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +109 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +6 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +80 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +48 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +15 -9
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +29 -21
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
- package/examples/ui-screen-regions/README.md +117 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +84 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +212 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +75 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +179 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/clinical/memo.package.yaml +18 -0
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +22 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/memo.package.yaml +17 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +15 -2
- package/methodologies/default/memo.package.yaml +19 -9
- package/methodologies/gpca/memo.package.yaml +18 -9
- package/ontology/memo.package.yaml +23 -8
- package/package.json +6 -6
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +28 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +50 -22
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -43
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -24
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +52 -12
- package/src/architecture/implementation/ui/memo_ui.sysml +276 -53
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -13
- package/src/architecture/logical/structure/memo_logical_structure.sysml +92 -35
- package/src/architecture/operational/activities/memo_activities.sysml +10 -4
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +28 -15
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +35 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +35 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +5 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +6 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +5 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +172 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +93 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +116 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +78 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +27 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +96 -0
- package/src/core/common/memo_common.sysml +140 -18
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +17 -1
- package/src/core/enumerations/memo_enumerations.sysml +101 -20
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +199 -194
- package/src/memo_namespaces.sysml +127 -67
- package/src/methodology/core/memo_core.sysml +69 -2
- package/src/methodology/profiles/memo_profiles.sysml +31 -41
- package/src/methodology/workflow/memo_workflow.sysml +7 -2
- package/src/rules/closure/closure_rules.sysml +104 -31
- package/src/rules/coverage/coverage_rules.sysml +4 -256
- package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
- package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
- package/src/rules/ontology/ontology_invariants.sysml +243 -74
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +10 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +4 -2
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +5 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +3 -3
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +3 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
- package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +3 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
- package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
- package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
- package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
- package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
- package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
- package/src/viewpoints/software/software_viewpoint.sysml +3 -1
- package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
- package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +3 -3
- package/templates/connected-device/memo.package.yaml +11 -5
- package/templates/connected-device/model/catalog/project.sysml +28 -0
- package/templates/connected-device/syside.toml +1 -1
- package/templates/default/memo.package.yaml +11 -5
- package/templates/default/model/catalog/project.sysml +28 -0
- package/templates/default/syside.toml +1 -1
- package/templates/infusion-pump/memo.package.yaml +11 -5
- package/templates/infusion-pump/model/catalog/project.sysml +28 -0
- package/templates/infusion-pump/syside.toml +1 -1
- package/templates/monitoring-device/memo.package.yaml +11 -5
- package/templates/monitoring-device/model/catalog/project.sysml +28 -0
- package/templates/monitoring-device/syside.toml +1 -1
- package/templates/samd/memo.package.yaml +11 -5
- package/templates/samd/model/catalog/project.sysml +28 -0
- package/templates/samd/syside.toml +1 -1
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/clinical/memo.package.yaml +0 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -14
- package/examples/extensions/template/memo.package.yaml +0 -9
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
- package/examples/gpca-pump/memo.config.yaml +0 -9
- package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
- package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
- package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
- package/examples/sysml-diagram-samples/model/samples/functional_flow_view.sysml +0 -164
- package/examples/sysml-diagram-samples/model/samples/interconnection_view.sysml +0 -94
- package/examples/sysml-diagram-samples/model/samples/operational_behaviour_view.sysml +0 -135
- package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +0 -109
- package/examples/sysml-diagram-samples/model/samples/tree_view.sysml +0 -56
- package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
- package/ontology/memo.rendering.yaml +0 -84
- package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
- package/src/compliance/change/memo_change.sysml +0 -17
- package/src/compliance/dhf-templates/iec-62304/srs.md +0 -138
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +0 -57
- package/src/compliance/dhf-templates/iso-14971/fmea.md +0 -93
- package/src/compliance/document_views/memo_document_views.sysml +0 -7
- package/src/compliance/iso14971/risk_management_file.sysml +0 -16
- package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
- /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_behavior_subsystems {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_functional_functions::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
|
+
private import memo_architecture_logical_interfaces::*;
|
|
7
|
+
private import memo_architecture_operational_use_cases::*;
|
|
8
|
+
private import memo_assurance_requirements::*;
|
|
9
|
+
private import memo_core_common::*;
|
|
6
10
|
|
|
7
11
|
// ── Logical functions ───────────────────────────────────────
|
|
8
|
-
|
|
12
|
+
action fnAcquireSensors : SystemFunction {
|
|
9
13
|
attribute :>> id = "FUNC-001";
|
|
10
14
|
attribute :>> name = "AcquireSensorData";
|
|
11
15
|
attribute :>> functionCategory = "sensing";
|
|
@@ -13,8 +17,49 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
13
17
|
attribute :>> outputSummary = "Debounced, range-checked sensor status vector";
|
|
14
18
|
attribute :>> concernKind = ConcernKind::safety;
|
|
15
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
|
+
}
|
|
16
60
|
}
|
|
17
|
-
|
|
61
|
+
|
|
62
|
+
action fnValidatePrescription : SystemFunction {
|
|
18
63
|
attribute :>> id = "FUNC-002";
|
|
19
64
|
attribute :>> name = "ValidatePrescription";
|
|
20
65
|
attribute :>> functionCategory = "configuration";
|
|
@@ -23,7 +68,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
23
68
|
attribute :>> concernKind = ConcernKind::safety;
|
|
24
69
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
25
70
|
}
|
|
26
|
-
|
|
71
|
+
action fnMonitorAlarm : SystemFunction {
|
|
27
72
|
attribute :>> id = "FUNC-003";
|
|
28
73
|
attribute :>> name = "MonitorExceptionalConditions";
|
|
29
74
|
attribute :>> functionCategory = "alarm";
|
|
@@ -32,7 +77,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
32
77
|
attribute :>> concernKind = ConcernKind::safety;
|
|
33
78
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
34
79
|
}
|
|
35
|
-
|
|
80
|
+
action fnAnnunciate : SystemFunction {
|
|
36
81
|
attribute :>> id = "FUNC-004";
|
|
37
82
|
attribute :>> name = "AnnunciateAlarms";
|
|
38
83
|
attribute :>> functionCategory = "alarm";
|
|
@@ -41,7 +86,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
41
86
|
attribute :>> concernKind = ConcernKind::safety;
|
|
42
87
|
attribute :>> criticality = CriticalityKind::high;
|
|
43
88
|
}
|
|
44
|
-
|
|
89
|
+
action fnManageInfusion : SystemFunction {
|
|
45
90
|
attribute :>> id = "FUNC-005";
|
|
46
91
|
attribute :>> name = "ManageInfusion";
|
|
47
92
|
attribute :>> functionCategory = "infusion";
|
|
@@ -50,7 +95,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
50
95
|
attribute :>> concernKind = ConcernKind::safety;
|
|
51
96
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
52
97
|
}
|
|
53
|
-
|
|
98
|
+
action fnEnforceLimits : SystemFunction {
|
|
54
99
|
attribute :>> id = "FUNC-006";
|
|
55
100
|
attribute :>> name = "EnforceDoseLimits";
|
|
56
101
|
attribute :>> functionCategory = "infusion";
|
|
@@ -59,7 +104,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
59
104
|
attribute :>> concernKind = ConcernKind::safety;
|
|
60
105
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
61
106
|
}
|
|
62
|
-
|
|
107
|
+
action fnCommandPump : SystemFunction {
|
|
63
108
|
attribute :>> id = "FUNC-007";
|
|
64
109
|
attribute :>> name = "CommandPumpMotor";
|
|
65
110
|
attribute :>> functionCategory = "actuation";
|
|
@@ -68,7 +113,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
68
113
|
attribute :>> concernKind = ConcernKind::safety;
|
|
69
114
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
70
115
|
}
|
|
71
|
-
|
|
116
|
+
action fnLogEvents : SystemFunction {
|
|
72
117
|
attribute :>> id = "FUNC-008";
|
|
73
118
|
attribute :>> name = "LogTherapyEvents";
|
|
74
119
|
attribute :>> functionCategory = "logging";
|
|
@@ -77,7 +122,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
77
122
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
78
123
|
attribute :>> criticality = CriticalityKind::medium;
|
|
79
124
|
}
|
|
80
|
-
|
|
125
|
+
action fnManagePower : SystemFunction {
|
|
81
126
|
attribute :>> id = "FUNC-009";
|
|
82
127
|
attribute :>> name = "ManagePower";
|
|
83
128
|
attribute :>> functionCategory = "platform";
|
|
@@ -86,7 +131,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
86
131
|
attribute :>> concernKind = ConcernKind::reliability;
|
|
87
132
|
attribute :>> criticality = CriticalityKind::high;
|
|
88
133
|
}
|
|
89
|
-
|
|
134
|
+
action fnPresentStatus : SystemFunction {
|
|
90
135
|
attribute :>> id = "FUNC-010";
|
|
91
136
|
attribute :>> name = "PresentStatus";
|
|
92
137
|
attribute :>> functionCategory = "user-interface";
|
|
@@ -95,7 +140,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
95
140
|
attribute :>> concernKind = ConcernKind::usability;
|
|
96
141
|
attribute :>> criticality = CriticalityKind::high;
|
|
97
142
|
}
|
|
98
|
-
|
|
143
|
+
action fnSelfTest : SystemFunction {
|
|
99
144
|
attribute :>> id = "FUNC-011";
|
|
100
145
|
attribute :>> name = "ExecuteSelfTest";
|
|
101
146
|
attribute :>> functionCategory = "platform";
|
|
@@ -110,7 +155,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
110
155
|
attribute :>> id = "LF-001";
|
|
111
156
|
attribute :>> name = "SensorAcquisitionFlow";
|
|
112
157
|
attribute :>> flowKind = FlowKind::measurement;
|
|
113
|
-
attribute :>> direction = DirectionKind::input;
|
|
114
158
|
attribute :>> latencyBudgetMs = 20.0;
|
|
115
159
|
attribute :>> staleAfterMs = 40.0;
|
|
116
160
|
attribute :>> integrityLevel = "class C data path";
|
|
@@ -121,7 +165,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
121
165
|
attribute :>> id = "LF-002";
|
|
122
166
|
attribute :>> name = "FlowCommandFlow";
|
|
123
167
|
attribute :>> flowKind = FlowKind::command;
|
|
124
|
-
attribute :>> direction = DirectionKind::output;
|
|
125
168
|
attribute :>> latencyBudgetMs = 20.0;
|
|
126
169
|
attribute :>> staleAfterMs = 20.0;
|
|
127
170
|
attribute :>> integrityLevel = "class C command path";
|
|
@@ -132,7 +175,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
132
175
|
attribute :>> id = "LF-003";
|
|
133
176
|
attribute :>> name = "AlarmSignalFlow";
|
|
134
177
|
attribute :>> flowKind = FlowKind::alarm;
|
|
135
|
-
attribute :>> direction = DirectionKind::output;
|
|
136
178
|
attribute :>> latencyBudgetMs = 20.0;
|
|
137
179
|
attribute :>> staleAfterMs = 20.0;
|
|
138
180
|
attribute :>> integrityLevel = "class C alarm path; same-step delivery to infusion manager";
|
|
@@ -143,7 +185,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems {
|
|
|
143
185
|
attribute :>> id = "LF-004";
|
|
144
186
|
attribute :>> name = "PrescriptionEntryFlow";
|
|
145
187
|
attribute :>> flowKind = FlowKind::configuration;
|
|
146
|
-
attribute :>> direction = DirectionKind::input;
|
|
147
188
|
attribute :>> latencyBudgetMs = 500.0;
|
|
148
189
|
attribute :>> staleAfterMs = 0.0;
|
|
149
190
|
attribute :>> integrityLevel = "confirmed double-entry path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_context {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_operational_context_actors::*;
|
|
@@ -6,6 +6,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_context {
|
|
|
6
6
|
private import memo_assurance_requirements::*;
|
|
7
7
|
private import memo_assurance_human_factors::*;
|
|
8
8
|
private import memo_core_enumerations::*;
|
|
9
|
+
private import memo_examples_gpca_pump_gpca_operational::*;
|
|
9
10
|
|
|
10
11
|
// ── Intended use (ISO 14971 §5.2, IEC 62366-1) ──────────────
|
|
11
12
|
part gpcaIntendedUse : IntendedUse {
|
|
@@ -13,7 +14,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_context {
|
|
|
13
14
|
attribute :>> name = "GPCA_IntendedUse";
|
|
14
15
|
attribute :>> title = "GPCA Pump Intended Use";
|
|
15
16
|
attribute :>> shortDescription = "Patient-controlled analgesia infusion of prescribed opioid analgesics.";
|
|
16
|
-
attribute :>>
|
|
17
|
+
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
18
|
attribute :>> indication = "Management of acute post-operative or chronic pain requiring titrated intravenous opioid analgesia.";
|
|
18
19
|
attribute :>> contraindication = "Patients unable to comprehend or operate the bolus request mechanism; drugs without safe-value records in the hospital pharmacy database.";
|
|
19
20
|
attribute :>> patientPopulation = "Adult in-patients under clinical supervision.";
|
|
@@ -26,7 +27,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_context {
|
|
|
26
27
|
attribute :>> name = "BolusRequestBySomeoneOtherThanPatient";
|
|
27
28
|
attribute :>> title = "Bolus by proxy";
|
|
28
29
|
attribute :>> shortDescription = "A caregiver or visitor presses the patient bolus control.";
|
|
29
|
-
attribute :>>
|
|
30
|
+
attribute :>> description = "A person other than the patient activates the bolus request control, bypassing the intended patient self-limiting behavior.";
|
|
30
31
|
attribute :>> misuseContext = "Patient-controlled analgesia in a supervised hospital setting.";
|
|
31
32
|
attribute :>> foreseeableBasis = "Known PCA use pattern represented in the GPCA hazard analysis.";
|
|
32
33
|
attribute :>> affectedUseContext = "UC-001";
|
|
@@ -51,41 +52,44 @@ package memo_examples_gpca_pump_model_catalog_gpca_context {
|
|
|
51
52
|
attribute :>> actorKind = ActorKind::patient;
|
|
52
53
|
attribute :>> id = "ACT-001";
|
|
53
54
|
attribute :>> name = "Patient";
|
|
54
|
-
attribute :>> actorKind = ActorKind::patient;
|
|
55
55
|
attribute :>> trainingLevel = "instructed by clinician on bolus request button only";
|
|
56
56
|
attribute :>> description = "Receives the infusion and requests bolus doses via the patient pendant.";
|
|
57
|
+
perform oaRequestBolus;
|
|
57
58
|
}
|
|
58
59
|
part actorNurse : User {
|
|
59
60
|
attribute :>> actorKind = ActorKind::clinician;
|
|
60
61
|
attribute :>> id = "ACT-002";
|
|
61
62
|
attribute :>> name = "ClinicianNurse";
|
|
62
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
63
63
|
attribute :>> trainingLevel = "trained clinical user; programs prescriptions and responds to alarms";
|
|
64
64
|
attribute :>> description = "Loads the drug reservoir, programs and confirms the prescription, starts/stops therapy, and responds to alarms.";
|
|
65
|
+
perform oaProgram;
|
|
66
|
+
perform oaStartTherapy;
|
|
67
|
+
perform oaRespondAlarm;
|
|
68
|
+
perform oaReviewLog;
|
|
65
69
|
}
|
|
66
70
|
part actorPrescriber : User {
|
|
67
71
|
attribute :>> actorKind = ActorKind::clinician;
|
|
68
72
|
attribute :>> id = "ACT-003";
|
|
69
73
|
attribute :>> name = "PrescribingPhysician";
|
|
70
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
71
74
|
attribute :>> trainingLevel = "licensed prescriber";
|
|
72
75
|
attribute :>> description = "Prescribes drug, concentration, basal rate, bolus volume, lockout interval, and maximum dose limits.";
|
|
76
|
+
perform oaPrescribe;
|
|
73
77
|
}
|
|
74
78
|
part actorPharmacist : User {
|
|
75
79
|
attribute :>> actorKind = ActorKind::clinician;
|
|
76
80
|
attribute :>> id = "ACT-004";
|
|
77
81
|
attribute :>> name = "Pharmacist";
|
|
78
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
79
82
|
attribute :>> trainingLevel = "licensed pharmacist";
|
|
80
83
|
attribute :>> description = "Prepares the drug reservoir and verifies drug and concentration against the prescription.";
|
|
84
|
+
perform oaLoadReservoir;
|
|
81
85
|
}
|
|
82
86
|
part actorTechnician : User {
|
|
83
87
|
attribute :>> actorKind = ActorKind::technician;
|
|
84
88
|
attribute :>> id = "ACT-005";
|
|
85
89
|
attribute :>> name = "BiomedicalTechnician";
|
|
86
|
-
attribute :>> actorKind = ActorKind::technician;
|
|
87
90
|
attribute :>> trainingLevel = "service-trained; authenticated service access";
|
|
88
91
|
attribute :>> description = "Performs maintenance, battery replacement, and calibration through the service interface.";
|
|
92
|
+
perform oaMaintain;
|
|
89
93
|
}
|
|
90
94
|
|
|
91
95
|
// ── Foreseeable use errors (IEC 62366-1, AAMI TIR PCA) ──────
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
package
|
|
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
|
-
private import
|
|
11
|
-
private import
|
|
12
|
-
private import
|
|
13
|
-
private import
|
|
13
|
+
private import memo_examples_gpca_pump_gpca_architecture::*;
|
|
14
|
+
private import memo_examples_gpca_pump_gpca_risk::*;
|
|
15
|
+
private import memo_examples_gpca_pump_gpca_requirements::*;
|
|
16
|
+
private import memo_examples_gpca_pump_gpca_verification::*;
|
|
14
17
|
|
|
15
18
|
part therapyConfigurationAsset : CybersecurityAsset {
|
|
16
19
|
attribute :>> id = "AST-CYB-001";
|
|
@@ -78,9 +81,10 @@ package memo_examples_gpca_pump_model_catalog_gpca_cybersecurity {
|
|
|
78
81
|
attribute :>> cweReference = "CWE-798";
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
|
|
84
|
+
action tamperedConfigurationScenario : MemoScenario {
|
|
82
85
|
attribute :>> id = "SCN-001";
|
|
83
86
|
attribute :>> name = "TamperedTherapyConfigurationScenario";
|
|
87
|
+
attribute :>> scenarioKind = ScenarioKind::threat;
|
|
84
88
|
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.";
|
|
85
89
|
attribute :>> actorDescription = "unauthorized actor with local access to the maintenance port";
|
|
86
90
|
attribute :>> defaultCategory = ThreatCategoryKind::tampering;
|
|
@@ -128,7 +132,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_cybersecurity {
|
|
|
128
132
|
attribute :>> statement = "The system shall require authenticated and authorized service access before any therapy configuration parameter can be modified.";
|
|
129
133
|
attribute :>> sourceKind = RequirementSourceKind::risk;
|
|
130
134
|
attribute :>> concernKind = ConcernKind::cybersecurity;
|
|
131
|
-
attribute :>>
|
|
135
|
+
attribute :>> status = ElementStatusKind::approved;
|
|
132
136
|
attribute :>> acceptanceCriteria = "Unauthenticated or unauthorized attempts to modify therapy configuration are rejected and logged.";
|
|
133
137
|
attribute :>> subjectDescription = "maintenance and configuration path";
|
|
134
138
|
attribute :>> actorDescription = "service personnel";
|
|
@@ -145,7 +149,9 @@ package memo_examples_gpca_pump_model_catalog_gpca_cybersecurity {
|
|
|
145
149
|
attribute :>> name = "VerifyAuthenticatedServiceAccess";
|
|
146
150
|
attribute :>> methodKind = VerificationMethodKind::test;
|
|
147
151
|
attribute :>> acceptanceCriteria = "Only authenticated and authorized service sessions may modify therapy configuration; all attempts are logged.";
|
|
148
|
-
attribute :>> status =
|
|
152
|
+
attribute :>> status = ElementStatusKind::approved;
|
|
153
|
+
|
|
154
|
+
objective { verify reqAuthenticatedServiceAccess; }
|
|
149
155
|
}
|
|
150
156
|
|
|
151
157
|
connection : ThreatenedBy connect protectedAsset ::> therapyConfigurationAsset to realizedThreat ::> unauthorizedConfigChangeThreat;
|
|
@@ -166,7 +172,5 @@ package memo_examples_gpca_pump_model_catalog_gpca_cybersecurity {
|
|
|
166
172
|
|
|
167
173
|
connection : CrossesTrustBoundary connect boundary ::> maintenancePortBoundary to crossingItem ::> therapyConfigurationAsset;
|
|
168
174
|
|
|
169
|
-
connection : VerifiedBy connect verificationTarget ::> reqAuthenticatedServiceAccess to verificationCase ::> vcAuthenticatedServiceAccess;
|
|
170
|
-
|
|
171
175
|
connection : ProducesEvidence connect producer ::> vcAuthenticatedServiceAccess to producedEvidence ::> evidenceLockout;
|
|
172
176
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_formal_behavior {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_functional_behavior::*;
|
|
@@ -42,7 +42,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
42
42
|
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
43
43
|
attribute :>> id = "AP-002";
|
|
44
44
|
attribute :>> name = "VtbiHighPositive";
|
|
45
|
-
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
46
45
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
47
46
|
attribute :>> formalExpression = "assume DB_IN.VTBI_High > 0";
|
|
48
47
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -51,7 +50,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
51
50
|
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
52
51
|
attribute :>> id = "AP-003";
|
|
53
52
|
attribute :>> name = "EmptyReservoirConstPositive";
|
|
54
|
-
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
55
53
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
56
54
|
attribute :>> formalExpression = "assume CONST_IN.Empty_Reservoir > 0";
|
|
57
55
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -60,7 +58,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
60
58
|
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
61
59
|
attribute :>> id = "AP-001";
|
|
62
60
|
attribute :>> name = "ValidPrescriptionSavedBeforeTherapy";
|
|
63
|
-
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
64
61
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
65
62
|
attribute :>> formalExpression = "assume a saved prescription is available before infusion initiation";
|
|
66
63
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.3.1 (REQ 7)";
|
|
@@ -71,7 +68,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
71
68
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
72
69
|
attribute :>> id = "GP-001";
|
|
73
70
|
attribute :>> name = "ModeRange";
|
|
74
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
75
71
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
76
72
|
attribute :>> formalExpression = "guarantee mode_range: GPCA_SW_OUT.Current_System_Mode in {0, 1, 2, 3, 4, 6, 7, 8} (source enumeration omits 5)";
|
|
77
73
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 1)";
|
|
@@ -80,7 +76,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
80
76
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
81
77
|
attribute :>> id = "GP-004";
|
|
82
78
|
attribute :>> name = "NotStartImpliesModeZero";
|
|
83
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
84
79
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
85
80
|
attribute :>> formalExpression = "guarantee not(OP_CMD_IN.System_Start) => GPCA_SW_OUT.Current_System_Mode = 0";
|
|
86
81
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -89,7 +84,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
89
84
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
90
85
|
attribute :>> id = "GP-005";
|
|
91
86
|
attribute :>> name = "InitialSystemStartImpliesModeOne";
|
|
92
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
93
87
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
94
88
|
attribute :>> formalExpression = "guarantee sys_initial and OP_CMD_IN.System_Start => GPCA_SW_OUT.Current_System_Mode = 1";
|
|
95
89
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 4 allocation: TLM System_Start -> System_On; IM System_On -> mode 1)";
|
|
@@ -98,7 +92,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
98
92
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
99
93
|
attribute :>> id = "GP-006";
|
|
100
94
|
attribute :>> name = "OffToOnImpliesModeOne";
|
|
101
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
102
95
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
103
96
|
attribute :>> formalExpression = "guarantee not(sys_initial) and pre(GPCA_SW_OUT.Current_System_Mode) = 0 and OP_CMD_IN.System_Start => GPCA_SW_OUT.Current_System_Mode = 1";
|
|
104
97
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 4)";
|
|
@@ -107,7 +100,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
107
100
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
108
101
|
attribute :>> id = "GP-007";
|
|
109
102
|
attribute :>> name = "EmptyReservoirImpliesNoFlow";
|
|
110
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
111
103
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
112
104
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and pre(Current_System_Mode) > 1 and GPCA_SW_OUT.Reservoir_Volume < CONST_IN.Empty_Reservoir) => GPCA_SW_OUT.Commanded_Flow_Rate = 0";
|
|
113
105
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 59 'Empty Reservoir')";
|
|
@@ -116,7 +108,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
116
108
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
117
109
|
attribute :>> id = "GP-008";
|
|
118
110
|
attribute :>> name = "OverVtbiImpliesFlowAtMostKvo";
|
|
119
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
120
111
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
121
112
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and pre(Current_System_Mode) > 1 and GPCA_SW_OUT.Volume_Infused > DB_IN.VTBI_High) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
122
113
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (over-infusion => keep-vein-open, not zero)";
|
|
@@ -125,7 +116,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
125
116
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
126
117
|
attribute :>> id = "GP-009";
|
|
127
118
|
attribute :>> name = "AirInLineImpliesFlowAtMostKvo";
|
|
128
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
129
119
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
130
120
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Air_In_Line) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
131
121
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 21 'Air embolism')";
|
|
@@ -134,7 +124,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
134
124
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
135
125
|
attribute :>> id = "GP-010";
|
|
136
126
|
attribute :>> name = "OcclusionImpliesFlowAtMostKvo";
|
|
137
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
138
127
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
139
128
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Occlusion) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
140
129
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -143,7 +132,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
143
132
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
144
133
|
attribute :>> id = "GP-011";
|
|
145
134
|
attribute :>> name = "DoorOpenImpliesFlowAtMostKvo";
|
|
146
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
147
135
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
148
136
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Door_Open) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
149
137
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -152,7 +140,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
152
140
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
153
141
|
attribute :>> id = "GP-003";
|
|
154
142
|
attribute :>> name = "SameStepAlarmKvoGuarantee";
|
|
155
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
156
143
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
157
144
|
attribute :>> formalExpression = "guarantee an infusion-inhibiting notification in a step implies Commanded_Flow_Rate <= Flow_Rate_KVO in the same step (ALARM_OUT -> IM.ALARM_IN is an immediate connection)";
|
|
158
145
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl (ALARM_to_IM immediate) with the flow <= KVO guarantees above";
|
|
@@ -161,7 +148,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
161
148
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
162
149
|
attribute :>> id = "GP-002";
|
|
163
150
|
attribute :>> name = "LockoutGuarantee";
|
|
164
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
165
151
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
166
152
|
attribute :>> formalExpression = "guarantee a BolusRequest_prog inside the LockOutPeriod_pbolus_prog window is ignored and no PATIENT BOLUS is initiated";
|
|
167
153
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.6.1 (REQ 25.3, REQ 26)";
|