@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package memo_examples_gpca_pump_gpca_trace {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
|
+
private import ModelingMetadata::*;
|
|
3
4
|
|
|
4
5
|
private import memo_core_relationships::*;
|
|
5
6
|
private import memo_architecture_operational_context_actors::*;
|
|
@@ -33,6 +34,10 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
33
34
|
private import memo_architecture_operational_use_cases::*;
|
|
34
35
|
private import memo_architecture_operational_workflows::*;
|
|
35
36
|
private import memo_architecture_realization_deployment::*;
|
|
37
|
+
private import memo_assurance_human_factors::*;
|
|
38
|
+
private import memo_assurance_safety_risk::*;
|
|
39
|
+
private import memo_assurance_safety_risk_analysis::*;
|
|
40
|
+
private import memo_viewpoints_definitions::*;
|
|
36
41
|
|
|
37
42
|
// ── System context interactions (context view) ──────────────
|
|
38
43
|
connection : InteractsWith connect contextParticipant ::> actorPatient to target ::> entityGpcaPump;
|
|
@@ -44,70 +49,50 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
44
49
|
|
|
45
50
|
// ── Fig 2.1 context flows (CriSys §2.1) ─────────────────────
|
|
46
51
|
// Data flows
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
flow from entityPrescription to actorNurse;
|
|
53
|
+
flow from actorNurse to entityGpcaPump;
|
|
54
|
+
flow from entityGpcaPump to actorNurse;
|
|
55
|
+
flow from actorPatient to entityGpcaPump;
|
|
56
|
+
flow from entityPharmacyDb to entityGpcaPump;
|
|
52
57
|
// Physical connections (drug path)
|
|
53
|
-
connection
|
|
54
|
-
connection
|
|
55
|
-
connection
|
|
56
|
-
connection
|
|
58
|
+
connection connect source ::> entityDrugReservoir to target ::> entityGpcaPump;
|
|
59
|
+
connection connect source ::> entityGpcaPump to target ::> entityNeedle;
|
|
60
|
+
connection connect source ::> entityNeedle to target ::> actorPatient;
|
|
61
|
+
connection connect source ::> entityPowerInfrastructure to target ::> entityGpcaPump;
|
|
57
62
|
// Intended use and use context anchoring (no floating context nodes)
|
|
58
63
|
connection : Governs { attribute :>> governKind = GovernKind::'use'; connect governor ::> gpcaIntendedUse to governedElement ::> entityGpcaPump; }
|
|
59
64
|
connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityGpcaPump;
|
|
60
65
|
connection : AppliesInContext connect useContext ::> hospitalWardContext to subjectElement ::> entityHospital;
|
|
61
66
|
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
connection : ParticipatesIn connect participatingActor ::> actorPatient to useCase ::> ucDeliverPcaTherapy;
|
|
65
|
-
connection : ParticipatesIn connect participatingActor ::> actorPrescriber to useCase ::> ucDeliverPcaTherapy;
|
|
66
|
-
connection : ParticipatesIn connect participatingActor ::> actorPharmacist to useCase ::> ucDeliverPcaTherapy;
|
|
67
|
-
connection : Performs connect performer ::> actorPrescriber to performed ::> oaPrescribe;
|
|
68
|
-
connection : Performs connect performer ::> actorPharmacist to performed ::> oaLoadReservoir;
|
|
69
|
-
connection : Performs connect performer ::> actorNurse to performed ::> oaProgram;
|
|
70
|
-
connection : Performs connect performer ::> actorNurse to performed ::> oaStartTherapy;
|
|
71
|
-
connection : Performs connect performer ::> actorNurse to performed ::> oaRespondAlarm;
|
|
72
|
-
connection : Performs connect performer ::> actorNurse to performed ::> oaReviewLog;
|
|
73
|
-
connection : Performs connect performer ::> actorPatient to performed ::> oaRequestBolus;
|
|
74
|
-
connection : Performs connect performer ::> actorTechnician to performed ::> oaMaintain;
|
|
67
|
+
// Actor participation (use case view): native `actor`, nested in
|
|
68
|
+
// ucDeliverPcaTherapy's own body in gpca_operational.sysml (R10-S6).
|
|
75
69
|
|
|
76
70
|
// ── Operational thread (therapy lifecycle) ──────────────────
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaStartTherapy to supported ::> ocTitratedAnalgesia; }
|
|
82
|
-
connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaRequestBolus to supported ::> ocTitratedAnalgesia; }
|
|
83
|
-
connection : Supports { attribute :>> supportKind = SupportKind::capability; connect supporter ::> oaRespondAlarm to supported ::> ocFailSafeTherapy; }
|
|
71
|
+
first oaPrescribe then oaLoadReservoir;
|
|
72
|
+
first oaLoadReservoir then oaProgram;
|
|
73
|
+
first oaProgram then oaStartTherapy;
|
|
74
|
+
first oaStartTherapy then oaRequestBolus;
|
|
84
75
|
connection : DerivesFrom connect sourceDriver ::> oaProgram to targetRequirement ::> reqDrugLibraryLimits;
|
|
85
76
|
connection : DerivesFrom connect sourceDriver ::> oaRequestBolus to targetRequirement ::> reqCs25;
|
|
86
77
|
connection : DerivesFrom connect sourceDriver ::> oaRespondAlarm to targetRequirement ::> reqCs59;
|
|
87
78
|
|
|
88
79
|
// ── Functional chains ───────────────────────────────────────
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusActuate;
|
|
106
|
-
connection : IncludesStep connect functionalChain ::> fcPatientBolus to step ::> fcsBolusLog;
|
|
107
|
-
connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmSense;
|
|
108
|
-
connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmEvaluate;
|
|
109
|
-
connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmStopInfusion;
|
|
110
|
-
connection : IncludesStep connect functionalChain ::> fcAlarmStop to step ::> fcsAlarmAnnunciate;
|
|
80
|
+
// fcPatientBolus/fcAlarmStop already name every one of these functions
|
|
81
|
+
// via their step chain (perform fcsBolusSense; ... ref :>> function =
|
|
82
|
+
// fnAcquireSensors;) in gpca_system.sysml — InvolvesFunction was a
|
|
83
|
+
// flattened restatement of that two-hop path, not new information.
|
|
84
|
+
// fcStartup declares no steps, so its two functions are native `perform`
|
|
85
|
+
// statements directly on fcStartup in gpca_system.sysml instead.
|
|
86
|
+
#refinement dependency fcPatientBolus to ssBolusDuringBasal;
|
|
87
|
+
#refinement dependency fcAlarmStop to ssAlarmPause;
|
|
88
|
+
|
|
89
|
+
// A user task may be realized by several system-side steps: the mapping is
|
|
90
|
+
// refinement, not specialization, because the steps retain distinct
|
|
91
|
+
// functions and exchanged items while tracing the same operative intent.
|
|
92
|
+
// The nine refinement statements themselves live in gpca_operational.sysml,
|
|
93
|
+
// inside wsRequestBolus's/wsRespondAlarm's own owning scope — the
|
|
94
|
+
// `#refinement dependency ... to ...` shorthand's target end does not
|
|
95
|
+
// accept a qualified path, and both steps are nested now.
|
|
111
96
|
|
|
112
97
|
// ── Requirement derivation ──────────────────────────────────
|
|
113
98
|
// MEMO extension requirements (REQ-X) derive from needs and risks.
|
|
@@ -228,249 +213,210 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
228
213
|
connection : DerivesFrom connect sourceDriver ::> needAuditableRecord to targetRequirement ::> reqCs86;
|
|
229
214
|
|
|
230
215
|
// ── Requirement satisfaction ────────────────────────────────
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
262
247
|
// CriSys REQ-CS allocation to the UMN software subsystems
|
|
263
248
|
// (coarse; refined against the AADL architecture in GR.04).
|
|
264
249
|
// Mode control -> TLM; flow production -> Infusion_Manager;
|
|
265
250
|
// notifications -> Alarm; data configuration -> Config;
|
|
266
251
|
// logs -> Logging; enclosure non-behavioral -> DeviceEnclosure.
|
|
267
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs02 to satisfyingElement ::> tlm;
|
|
268
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs03 to satisfyingElement ::> infusionMgr;
|
|
269
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs04 to satisfyingElement ::> tlm;
|
|
270
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs05 to satisfyingElement ::> tlm;
|
|
271
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs06 to satisfyingElement ::> infusionMgr;
|
|
272
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs07 to satisfyingElement ::> tlm;
|
|
273
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs08 to satisfyingElement ::> config;
|
|
274
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs10 to satisfyingElement ::> alarm;
|
|
275
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs11 to satisfyingElement ::> logging;
|
|
276
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs12 to satisfyingElement ::> tlm;
|
|
277
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs13 to satisfyingElement ::> tlm;
|
|
278
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs14 to satisfyingElement ::> infusionMgr;
|
|
279
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs15 to satisfyingElement ::> alarm;
|
|
280
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs16 to satisfyingElement ::> infusionMgr;
|
|
281
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs17 to satisfyingElement ::> alarm;
|
|
282
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs18 to satisfyingElement ::> alarm;
|
|
283
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs20 to satisfyingElement ::> alarm;
|
|
284
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs22 to satisfyingElement ::> alarm;
|
|
285
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs24 to satisfyingElement ::> infusionMgr;
|
|
286
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs26 to satisfyingElement ::> alarm;
|
|
287
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs27 to satisfyingElement ::> alarm;
|
|
288
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs28 to satisfyingElement ::> tlm;
|
|
289
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs29 to satisfyingElement ::> tlm;
|
|
290
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs30 to satisfyingElement ::> tlm;
|
|
291
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs31 to satisfyingElement ::> tlm;
|
|
292
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs32 to satisfyingElement ::> tlm;
|
|
293
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs33 to satisfyingElement ::> tlm;
|
|
294
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs34 to satisfyingElement ::> tlm;
|
|
295
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs35 to satisfyingElement ::> tlm;
|
|
296
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs36 to satisfyingElement ::> tlm;
|
|
297
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs37 to satisfyingElement ::> tlm;
|
|
298
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs38 to satisfyingElement ::> tlm;
|
|
299
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs39 to satisfyingElement ::> tlm;
|
|
300
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs40 to satisfyingElement ::> infusionMgr;
|
|
301
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs41 to satisfyingElement ::> infusionMgr;
|
|
302
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs42 to satisfyingElement ::> infusionMgr;
|
|
303
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs43 to satisfyingElement ::> infusionMgr;
|
|
304
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs44 to satisfyingElement ::> alarm;
|
|
305
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs45 to satisfyingElement ::> tlm;
|
|
306
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs46 to satisfyingElement ::> tlm;
|
|
307
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs47 to satisfyingElement ::> tlm;
|
|
308
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs48 to satisfyingElement ::> config;
|
|
309
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs49 to satisfyingElement ::> config;
|
|
310
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs50 to satisfyingElement ::> config;
|
|
311
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs51 to satisfyingElement ::> config;
|
|
312
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs52 to satisfyingElement ::> config;
|
|
313
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs53 to satisfyingElement ::> config;
|
|
314
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs54 to satisfyingElement ::> config;
|
|
315
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs55 to satisfyingElement ::> config;
|
|
316
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs56 to satisfyingElement ::> config;
|
|
317
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs57 to satisfyingElement ::> config;
|
|
318
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs58 to satisfyingElement ::> config;
|
|
319
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs60 to satisfyingElement ::> alarm;
|
|
320
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs61 to satisfyingElement ::> alarm;
|
|
321
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs62 to satisfyingElement ::> alarm;
|
|
322
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs63 to satisfyingElement ::> alarm;
|
|
323
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs64 to satisfyingElement ::> alarm;
|
|
324
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs65 to satisfyingElement ::> alarm;
|
|
325
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs66 to satisfyingElement ::> alarm;
|
|
326
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs67 to satisfyingElement ::> alarm;
|
|
327
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs68 to satisfyingElement ::> alarm;
|
|
328
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs69 to satisfyingElement ::> alarm;
|
|
329
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs70 to satisfyingElement ::> alarm;
|
|
330
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs71 to satisfyingElement ::> alarm;
|
|
331
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs74 to satisfyingElement ::> alarm;
|
|
332
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs76 to satisfyingElement ::> alarm;
|
|
333
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs79 to satisfyingElement ::> logging;
|
|
334
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs80 to satisfyingElement ::> logging;
|
|
335
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs81 to satisfyingElement ::> logging;
|
|
336
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs82 to satisfyingElement ::> config;
|
|
337
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs83 to satisfyingElement ::> enclosure;
|
|
338
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs84 to satisfyingElement ::> enclosure;
|
|
339
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs85 to satisfyingElement ::> logging;
|
|
340
|
-
connection : SatisfiedBy connect requirementElement ::> reqCs86 to satisfyingElement ::> config;
|
|
341
|
-
connection : SatisfiedBy connect requirementElement ::> reqPumpAccuracy to satisfyingElement ::> pumpMotorAssembly;
|
|
342
|
-
connection : SatisfiedBy connect requirementElement ::> reqAlarmLoudness to satisfyingElement ::> audibleAlarm;
|
|
343
|
-
connection : SatisfiedBy connect requirementElement ::> reqBatteryBackup to satisfyingElement ::> batteryPack;
|
|
344
|
-
connection : SatisfiedBy connect requirementElement ::> reqFreeFlowPrevention to satisfyingElement ::> antiFreeFlowValve;
|
|
345
252
|
|
|
346
|
-
// ── Function allocation ─────────────────────────────────────
|
|
347
|
-
connection : AllocatedTo connect function ::> fnAcquireSensors to allocatedElement ::> gpcaDeviceSensors;
|
|
348
|
-
connection : AllocatedTo connect function ::> fnAcquireSensors to allocatedElement ::> systemStatus;
|
|
349
|
-
connection : AllocatedTo connect function ::> fnPresentStatus to allocatedElement ::> outputBus;
|
|
350
|
-
connection : AllocatedTo connect function ::> fnValidatePrescription to allocatedElement ::> config;
|
|
351
|
-
connection : AllocatedTo connect function ::> fnMonitorAlarm to allocatedElement ::> alarm;
|
|
352
|
-
connection : AllocatedTo connect function ::> fnAnnunciate to allocatedElement ::> audibleAlarm;
|
|
353
|
-
connection : AllocatedTo connect function ::> fnManageInfusion to allocatedElement ::> infusionMgr;
|
|
354
|
-
connection : AllocatedTo connect function ::> fnEnforceLimits to allocatedElement ::> infusionMgr;
|
|
355
|
-
connection : AllocatedTo connect function ::> fnCommandPump to allocatedElement ::> pumpMotorAssembly;
|
|
356
|
-
connection : AllocatedTo connect function ::> fnLogEvents to allocatedElement ::> logging;
|
|
357
|
-
connection : AllocatedTo connect function ::> fnManagePower to allocatedElement ::> systemMonitor;
|
|
358
|
-
connection : AllocatedTo connect function ::> fnPresentStatus to allocatedElement ::> operatorDisplay;
|
|
359
|
-
connection : AllocatedTo connect function ::> fnSelfTest to allocatedElement ::> systemMonitor;
|
|
360
253
|
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
// ── Function allocation ─────────────────────────────────────
|
|
331
|
+
allocate fnAcquireSensors to gpcaDevice.gpcaDeviceSensors;
|
|
332
|
+
allocate fnAcquireSensors to gpcaDevice.gpcaSoftware.systemStatus;
|
|
333
|
+
allocate fnPresentStatus to gpcaDevice.gpcaSoftware.outputBus;
|
|
334
|
+
allocate fnValidatePrescription to gpcaDevice.gpcaSoftware.config;
|
|
335
|
+
allocate fnMonitorAlarm to gpcaDevice.gpcaSoftware.alarm;
|
|
336
|
+
allocate fnAnnunciate to audibleAlarm;
|
|
337
|
+
allocate fnManageInfusion to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
338
|
+
allocate fnEnforceLimits to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
339
|
+
allocate fnCommandPump to pumpMotorAssembly;
|
|
340
|
+
allocate fnLogEvents to gpcaDevice.gpcaSoftware.logging;
|
|
341
|
+
allocate fnManagePower to gpcaDevice.gpcaSoftware.systemMonitor;
|
|
342
|
+
allocate fnPresentStatus to operatorDisplay;
|
|
343
|
+
allocate fnSelfTest to gpcaDevice.gpcaSoftware.systemMonitor;
|
|
361
344
|
// ── Deployment, hosting, and interface realization ──────────
|
|
362
|
-
|
|
345
|
+
allocation gpcaSoftwareDeployment : DeploysTo allocate gpcaDevice.gpcaSoftware to controllerBoard;
|
|
363
346
|
connection : HostedBy connect processingNode ::> mainController to hostAssembly ::> controllerBoard;
|
|
364
|
-
|
|
365
|
-
|
|
347
|
+
#refinement dependency sensorInputInterface to hwSoftwareBus;
|
|
348
|
+
#refinement dependency actuatorCommandInterface to pumpMotorDrive;
|
|
366
349
|
connection : BindsToInterface connect portElement ::> portPatientPendant to boundInterface ::> bolusButtonLine;
|
|
367
350
|
connection : BindsToInterface connect portElement ::> portMotorDrive to boundInterface ::> pumpMotorDrive;
|
|
368
351
|
connection : BindsToInterface connect portElement ::> portSensorHarness to boundInterface ::> occlusionAnalogLine;
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
352
|
+
allocate lfSensorAcquisition to exSensorVector;
|
|
353
|
+
allocate lfFlowCommand to exFlowCommand;
|
|
354
|
+
allocate lfAlarmSignal to exAlarmAnnunciation;
|
|
355
|
+
allocate lfPrescriptionEntry to exPrescriptionEntry;
|
|
374
356
|
// ── Fig 4.1 mode hierarchy (CriSys §4.1) ────────────────────
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
//
|
|
386
|
-
//
|
|
387
|
-
//
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
connection : ExchangesWith connect source ::> config to target ::> infusionMgr;
|
|
418
|
-
connection : ExchangesWith connect source ::> alarm to target ::> infusionMgr;
|
|
419
|
-
connection : ExchangesWith connect source ::> systemStatus to target ::> infusionMgr;
|
|
420
|
-
connection : ExchangesWith connect source ::> infusionMgr to target ::> outputBus;
|
|
421
|
-
connection : ExchangesWith connect source ::> tlm to target ::> systemMonitor;
|
|
422
|
-
connection : ExchangesWith connect source ::> systemMonitor to target ::> outputBus;
|
|
423
|
-
connection : ExchangesWith connect source ::> tlm to target ::> logging;
|
|
424
|
-
connection : ExchangesWith connect source ::> config to target ::> logging;
|
|
425
|
-
connection : ExchangesWith connect source ::> alarm to target ::> logging;
|
|
426
|
-
connection : ExchangesWith connect source ::> systemStatus to target ::> logging;
|
|
427
|
-
connection : ExchangesWith connect source ::> infusionMgr to target ::> logging;
|
|
428
|
-
connection : ExchangesWith connect source ::> logging to target ::> outputBus;
|
|
429
|
-
connection : ExchangesWith connect source ::> outputBus to target ::> portGpcaSwOut;
|
|
357
|
+
|
|
358
|
+
// ── GPCA_SW.Impl connection topology (AADL; CE-101..142) ─────
|
|
359
|
+
// The COMPONENT-granularity half of the 42 GPCA_SW.Impl port
|
|
360
|
+
// connections; immediate semantics per connection are carried on
|
|
361
|
+
// the CE-1xx elements.
|
|
362
|
+
//
|
|
363
|
+
// Only the 27 subcomponent-to-subcomponent edges live here. AADL's
|
|
364
|
+
// other 15 are DELEGATIONS between GPCA_SW's own boundary port and
|
|
365
|
+
// a subcomponent, and a delegation has no component-granularity
|
|
366
|
+
// spelling: writing it `portOpCmdIn -> tlm` mixes a port end with a
|
|
367
|
+
// component end, and SysML v2 rejects it because a boundary port
|
|
368
|
+
// reads as a sink from outside its part. All 15 are already
|
|
369
|
+
// recorded exactly, at port granularity, as `bind` statements in
|
|
370
|
+
// gpca_interfaces.sysml — so nothing is lost by not restating them
|
|
371
|
+
// here in a granularity that cannot express them.
|
|
372
|
+
flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.outputBus;
|
|
373
|
+
flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.systemStatus;
|
|
374
|
+
flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.systemStatus;
|
|
375
|
+
flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.systemStatus;
|
|
376
|
+
flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.outputBus;
|
|
377
|
+
flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.alarm;
|
|
378
|
+
flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.alarm;
|
|
379
|
+
flow from gpcaDevice.gpcaSoftware.systemMonitor to gpcaDevice.gpcaSoftware.alarm;
|
|
380
|
+
flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.alarm;
|
|
381
|
+
flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.alarm;
|
|
382
|
+
flow from gpcaDevice.gpcaSoftware.alarm to gpcaDevice.gpcaSoftware.outputBus;
|
|
383
|
+
flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.config;
|
|
384
|
+
flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.config;
|
|
385
|
+
flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.outputBus;
|
|
386
|
+
flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
387
|
+
flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
388
|
+
flow from gpcaDevice.gpcaSoftware.alarm to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
389
|
+
flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
390
|
+
flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.outputBus;
|
|
391
|
+
flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.systemMonitor;
|
|
392
|
+
flow from gpcaDevice.gpcaSoftware.systemMonitor to gpcaDevice.gpcaSoftware.outputBus;
|
|
393
|
+
flow from gpcaDevice.gpcaSoftware.tlm to gpcaDevice.gpcaSoftware.logging;
|
|
394
|
+
flow from gpcaDevice.gpcaSoftware.config to gpcaDevice.gpcaSoftware.logging;
|
|
395
|
+
flow from gpcaDevice.gpcaSoftware.alarm to gpcaDevice.gpcaSoftware.logging;
|
|
396
|
+
flow from gpcaDevice.gpcaSoftware.systemStatus to gpcaDevice.gpcaSoftware.logging;
|
|
397
|
+
flow from gpcaDevice.gpcaSoftware.infusionMgr to gpcaDevice.gpcaSoftware.logging;
|
|
398
|
+
flow from gpcaDevice.gpcaSoftware.logging to gpcaDevice.gpcaSoftware.outputBus;
|
|
430
399
|
|
|
431
400
|
// ── GPCA_SW boundary features (AADL GPCA_SW.aadl; CITE-002) ──
|
|
432
401
|
// The seven top-level ports are features of GPCA_Software, so
|
|
433
|
-
// interconnection views pin them on the software boundary.
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
connection : Composes connect parent ::> gpcaSoftware to child ::> portSensorIn;
|
|
438
|
-
connection : Composes connect parent ::> gpcaSoftware to child ::> portConstIn;
|
|
439
|
-
connection : Composes connect parent ::> gpcaSoftware to child ::> portDbIn;
|
|
440
|
-
connection : Composes connect parent ::> gpcaSoftware to child ::> portGpcaSwOut;
|
|
441
|
-
|
|
442
|
-
// ── Device/subsystem feature ownership (published AADL, 1:1) ──
|
|
443
|
-
connection : Composes connect parent ::> gpcaDevice to child ::> devOpCmdIn;
|
|
444
|
-
connection : Composes connect parent ::> gpcaDevice to child ::> devDbIn;
|
|
445
|
-
connection : Composes connect parent ::> gpcaDevice to child ::> devPresIn;
|
|
446
|
-
connection : Composes connect parent ::> gpcaDevice to child ::> devPatientIn;
|
|
447
|
-
connection : Composes connect parent ::> gpcaDevice to child ::> devGpcaOut;
|
|
448
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsOpCmdIn;
|
|
449
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsDbIn;
|
|
450
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPresIn;
|
|
451
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPatientIn;
|
|
452
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsOpCmdOut;
|
|
453
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPresOut;
|
|
454
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsPatientOut;
|
|
455
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsSensorOut;
|
|
456
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsConstOut;
|
|
457
|
-
connection : Composes connect parent ::> gpcaDeviceSensors to child ::> snsDbOut;
|
|
458
|
-
connection : Composes connect parent ::> gpcaActuators to child ::> actGpcaSwIn;
|
|
459
|
-
connection : Composes connect parent ::> gpcaActuators to child ::> actGpcaOut;
|
|
402
|
+
// interconnection views pin them on the software boundary. Each software
|
|
403
|
+
// module owns the AADL features it declares, natively: the ports are
|
|
404
|
+
// nested in the module's own body in gpca_architecture.sysml, not wired
|
|
405
|
+
// here with a separate relationship.
|
|
460
406
|
|
|
461
407
|
// ── GPCA_Device.Impl connections (GPCA_Device.aadl, 1:1) ──
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
408
|
+
bind gpcaDevice.devOpCmdIn = gpcaDevice.gpcaDeviceSensors.snsOpCmdIn;
|
|
409
|
+
bind gpcaDevice.devDbIn = gpcaDevice.gpcaDeviceSensors.snsDbIn;
|
|
410
|
+
bind gpcaDevice.devPresIn = gpcaDevice.gpcaDeviceSensors.snsPresIn;
|
|
411
|
+
bind gpcaDevice.devPatientIn = gpcaDevice.gpcaDeviceSensors.snsPatientIn;
|
|
412
|
+
flow from gpcaDevice.gpcaDeviceSensors.snsOpCmdOut to gpcaDevice.gpcaSoftware.portOpCmdIn;
|
|
413
|
+
flow from gpcaDevice.gpcaDeviceSensors.snsPresOut to gpcaDevice.gpcaSoftware.portPresIn;
|
|
414
|
+
flow from gpcaDevice.gpcaDeviceSensors.snsPatientOut to gpcaDevice.gpcaSoftware.portPatientIn;
|
|
415
|
+
flow from gpcaDevice.gpcaDeviceSensors.snsSensorOut to gpcaDevice.gpcaSoftware.portSensorIn;
|
|
416
|
+
flow from gpcaDevice.gpcaDeviceSensors.snsConstOut to gpcaDevice.gpcaSoftware.portConstIn;
|
|
417
|
+
flow from gpcaDevice.gpcaDeviceSensors.snsDbOut to gpcaDevice.gpcaSoftware.portDbIn;
|
|
418
|
+
flow from gpcaDevice.gpcaSoftware.portGpcaSwOut to gpcaDevice.gpcaActuators.actGpcaSwIn;
|
|
419
|
+
bind gpcaDevice.gpcaActuators.actGpcaOut = gpcaDevice.devGpcaOut;
|
|
474
420
|
|
|
475
421
|
// ── Risk chains (ISO 14971, GIIP causal-tree structure) ─────
|
|
476
422
|
// Categorized causes converge on each hazard (GIIP Tables 2-9
|
|
@@ -626,62 +572,61 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
626
572
|
connection : Mitigates { attribute :>> mitigationKind = MitigationKind::cutSet; connect control ::> lockoutControl to mitigatedElement ::> mcsBolusPath; }
|
|
627
573
|
|
|
628
574
|
// ── Verification coverage (IEC 62304 §5.7) ──────────────────
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
|
|
652
598
|
// risk controls
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
|
|
666
612
|
// behavior properties, contracts, and timing
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
|
|
676
622
|
// class-C software items
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
connection : VerifiedBy connect verificationTarget ::> outputBus to verificationCase ::> vcModeRange;
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
|
|
685
630
|
|
|
686
631
|
// ── Validation and usability testing ────────────────────────
|
|
687
632
|
connection : Validates connect validationTarget ::> reqCs59 to validationCase ::> valSimulatedWard;
|
|
@@ -719,9 +664,4 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
719
664
|
connection : ProducesEvidence connect producer ::> vcEventLog to producedEvidence ::> evidenceDoseProgramming;
|
|
720
665
|
connection : ProducesEvidence connect producer ::> vcPumpAccuracy to producedEvidence ::> evidenceDeliveryAccuracy;
|
|
721
666
|
connection : ProducesEvidence connect producer ::> valSummativeUsability to producedEvidence ::> evidenceUsability;
|
|
722
|
-
connection : IncludedIn connect sourceElement ::> evidenceLockout to targetView ::> rmfView;
|
|
723
|
-
connection : IncludedIn connect sourceElement ::> evidenceSafetyAlarmSuite to targetView ::> vvView;
|
|
724
|
-
connection : IncludedIn connect sourceElement ::> evidenceUsability to targetView ::> usabilityView;
|
|
725
|
-
connection : IncludedIn connect sourceElement ::> fmeaDelivery to targetView ::> hazardAnalysisView;
|
|
726
|
-
connection : IncludedIn connect sourceElement ::> ftaOverdose to targetView ::> hazardAnalysisView;
|
|
727
667
|
}
|