@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,17 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_architecture {
|
|
2
|
+
private import memo_examples_gpca_pump_gpca_requirements::*;
|
|
3
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view::*;
|
|
2
4
|
private import ScalarValues::*;
|
|
3
5
|
|
|
4
6
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
5
7
|
private import memo_architecture_implementation_software_structure::*;
|
|
6
8
|
private import memo_architecture_logical_structure::*;
|
|
9
|
+
private import memo_architecture_logical_interfaces::*;
|
|
10
|
+
private import memo_architecture_realization_physical::*;
|
|
7
11
|
private import memo_core_relationships::*;
|
|
8
12
|
private import memo_core_enumerations::*;
|
|
13
|
+
private import memo_core_common::*;
|
|
14
|
+
private import memo_core_dimensions::*;
|
|
9
15
|
|
|
10
16
|
// ── Logical components ──────────────────────────────────────
|
|
11
17
|
part lcTherapyControl : LogicalComponent {
|
|
@@ -44,6 +50,10 @@ package memo_examples_gpca_pump_model_catalog_gpca_architecture {
|
|
|
44
50
|
attribute :>> safetyPartition = "supporting partition";
|
|
45
51
|
}
|
|
46
52
|
|
|
53
|
+
// Native SysML message: the safety monitor's alarm notification is a flow
|
|
54
|
+
// between the two logical components, not an opaque InteractionMessage.
|
|
55
|
+
message alarmNotification of LogicalExchangeItem from lcSafetyMonitoring to lcOperatorInterface;
|
|
56
|
+
|
|
47
57
|
// ── Device (UMN AADL architectural model) ───────────────────
|
|
48
58
|
// The AADL top-level `GPCA_Device` system. GPCA_Device.Impl declares only
|
|
49
59
|
// GPCA_HW_Sensors, GPCA_SW, and GPCA_HW_Actuators as subcomponents.
|
|
@@ -53,22 +63,226 @@ package memo_examples_gpca_pump_model_catalog_gpca_architecture {
|
|
|
53
63
|
attribute :>> responsibility = "AADL device boundary containing the sensor wrapper, GPCA software, and actuator wrapper.";
|
|
54
64
|
attribute :>> safetyRole = "device boundary carrying the intended use and the risk-control architecture";
|
|
55
65
|
attribute :>> partNumber = "GPCA-DEV-001";
|
|
56
|
-
}
|
|
57
66
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
attribute :>> id = "
|
|
61
|
-
attribute :>> name = "
|
|
62
|
-
attribute :>>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
in port devOpCmdIn : PhysicalPort { attribute :>> id = "PORT-DEV-01"; attribute :>> name = "OP_CMD_IN"; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
68
|
+
in port devDbIn : PhysicalPort { attribute :>> id = "PORT-DEV-02"; attribute :>> name = "DB_IN"; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
69
|
+
in port devPresIn : PhysicalPort { attribute :>> id = "PORT-DEV-03"; attribute :>> name = "PRES_IN"; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
70
|
+
in port devPatientIn : PhysicalPort { attribute :>> id = "PORT-DEV-04"; attribute :>> name = "PATIENT_IN"; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
71
|
+
out port devGpcaOut : PhysicalPort { attribute :>> id = "PORT-DEV-05"; attribute :>> name = "GPCA_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_Device.aadl"; }
|
|
72
|
+
|
|
73
|
+
part gpcaDeviceSensors : HardwareAssembly {
|
|
74
|
+
attribute :>> id = "HW-001";
|
|
75
|
+
attribute :>> name = "GPCA_HW_Sensors";
|
|
76
|
+
attribute :>> responsibility = "Map inputs to software-visible signals.";
|
|
77
|
+
attribute :>> safetyRole = "input acquisition";
|
|
78
|
+
|
|
79
|
+
in port snsOpCmdIn : PhysicalPort { attribute :>> id = "PORT-SNS-01"; attribute :>> name = "OP_CMD_IN"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
80
|
+
in port snsDbIn : PhysicalPort { attribute :>> id = "PORT-SNS-02"; attribute :>> name = "DB_IN"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
81
|
+
in port snsPresIn : PhysicalPort { attribute :>> id = "PORT-SNS-03"; attribute :>> name = "PRES_IN"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
82
|
+
in port snsPatientIn : PhysicalPort { attribute :>> id = "PORT-SNS-04"; attribute :>> name = "PATIENT_IN"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
83
|
+
out port snsOpCmdOut : PhysicalPort { attribute :>> id = "PORT-SNS-05"; attribute :>> name = "OP_CMD_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
84
|
+
out port snsPresOut : PhysicalPort { attribute :>> id = "PORT-SNS-06"; attribute :>> name = "PRES_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
85
|
+
out port snsPatientOut : PhysicalPort { attribute :>> id = "PORT-SNS-07"; attribute :>> name = "PATIENT_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
86
|
+
out port snsSensorOut : PhysicalPort { attribute :>> id = "PORT-SNS-08"; attribute :>> name = "SENSOR_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
87
|
+
out port snsConstOut : PhysicalPort { attribute :>> id = "PORT-SNS-09"; attribute :>> name = "CONST_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
88
|
+
out port snsDbOut : PhysicalPort { attribute :>> id = "PORT-SNS-10"; attribute :>> name = "DB_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Sensors.aadl"; }
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
part gpcaActuators : HardwareAssembly {
|
|
92
|
+
attribute :>> id = "HW-002";
|
|
93
|
+
attribute :>> name = "GPCA_HW_Actuators";
|
|
94
|
+
attribute :>> responsibility = "Expose software outputs to physical outputs.";
|
|
95
|
+
attribute :>> safetyRole = "actuation and operator output";
|
|
96
|
+
|
|
97
|
+
in port actGpcaSwIn : PhysicalPort { attribute :>> id = "PORT-ACT-01"; attribute :>> name = "GPCA_SW_IN"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Actuators.aadl"; }
|
|
98
|
+
out port actGpcaOut : PhysicalPort { attribute :>> id = "PORT-ACT-02"; attribute :>> name = "GPCA_OUT"; attribute :>> sourceReference = "CITE-002: GPCA_HW_Actuators.aadl"; }
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
part gpcaSoftware : SoftwareSystem {
|
|
102
|
+
attribute :>> id = "SWS-001";
|
|
103
|
+
attribute :>> name = "GPCA_Software";
|
|
104
|
+
attribute :>> version = "2.0";
|
|
105
|
+
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
106
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
107
|
+
attribute :>> complexity = ComplexityKind::high;
|
|
108
|
+
attribute :>> operatingSystem = "synchronous data-flow execution; AADL immediate port semantics (source specifies no timing)";
|
|
109
|
+
|
|
110
|
+
in port portOpCmdIn : SoftwarePort {
|
|
111
|
+
attribute :>> id = "PORT-01"; attribute :>> name = "OP_CMD_IN";
|
|
112
|
+
attribute :>> description = "Operator commands (System_Start/Stop, Infusion_Initiate/Inhibit, Notification_Cancel, Disable/Enable_Audio, DataConfig) from the data entry interface (I 2).";
|
|
113
|
+
attribute :>> portKind = InterfaceKind::control;
|
|
114
|
+
attribute :>> dataTypeName = "DATATYPES::Operator_Commands.Impl";
|
|
115
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
116
|
+
}
|
|
117
|
+
in port portPresIn : SoftwarePort {
|
|
118
|
+
attribute :>> id = "PORT-02"; attribute :>> name = "PRES_IN";
|
|
119
|
+
attribute :>> description = "Prescription data entry fields (I 1, 13 fields PatientID_prog..NumberMax_pbolus_prog).";
|
|
120
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
121
|
+
attribute :>> dataTypeName = "DATATYPES::Prescription_Inputs.Impl";
|
|
122
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
123
|
+
}
|
|
124
|
+
in port portPatientIn : SoftwarePort {
|
|
125
|
+
attribute :>> id = "PORT-03"; attribute :>> name = "PATIENT_IN";
|
|
126
|
+
attribute :>> description = "Patient bolus request (I 4, BolusRequest_prog).";
|
|
127
|
+
attribute :>> portKind = InterfaceKind::userInteraction;
|
|
128
|
+
attribute :>> dataTypeName = "DATATYPES::Patient_Inputs.Impl";
|
|
129
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
130
|
+
}
|
|
131
|
+
in port portSensorIn : SoftwarePort {
|
|
132
|
+
attribute :>> id = "PORT-04"; attribute :>> name = "SENSOR_IN";
|
|
133
|
+
attribute :>> description = "Device sensor inputs (air-in-line, occlusion, door, reservoir, flow).";
|
|
134
|
+
attribute :>> portKind = InterfaceKind::digitalSignal;
|
|
135
|
+
attribute :>> dataTypeName = "DATATYPES::Device_Sensor_Inputs.Impl";
|
|
136
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
137
|
+
}
|
|
138
|
+
in port portConstIn : SoftwarePort {
|
|
139
|
+
attribute :>> id = "PORT-05"; attribute :>> name = "CONST_IN";
|
|
140
|
+
attribute :>> description = "Device configuration constants (App. A.4 values such as Empty_Reservoir, tolerances).";
|
|
141
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
142
|
+
attribute :>> dataTypeName = "DATATYPES::Device_Configuration_Inputs.Impl";
|
|
143
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
144
|
+
}
|
|
145
|
+
in port portDbIn : SoftwarePort {
|
|
146
|
+
attribute :>> id = "PORT-06"; attribute :>> name = "DB_IN";
|
|
147
|
+
attribute :>> description = "Hospital pharmacy database safe values (I 9-I 11); realizes SI-005 HospitalPharmacyDatabaseInterface.";
|
|
148
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
149
|
+
attribute :>> dataTypeName = "DATATYPES::Drug_Database_Inputs.Impl";
|
|
150
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
151
|
+
}
|
|
152
|
+
out port portGpcaSwOut : SoftwarePort {
|
|
153
|
+
attribute :>> id = "PORT-07"; attribute :>> name = "GPCA_SW_OUT";
|
|
154
|
+
attribute :>> description = "Aggregated software output vector (Current_System_Mode, Commanded_Flow_Rate, notifications, prescription echo, status).";
|
|
155
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
156
|
+
attribute :>> dataTypeName = "DATATYPES::GPCA_SW_Outputs.Impl";
|
|
157
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
part tlm : SoftwareModule {
|
|
161
|
+
attribute :>> id = "SW-001";
|
|
162
|
+
attribute :>> name = "Top_Level_Mode";
|
|
163
|
+
attribute :>> responsibility = "Ensure system ON/OFF behavior and startup/shutdown checks.";
|
|
164
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
165
|
+
attribute :>> complexity = ComplexityKind::medium;
|
|
166
|
+
|
|
167
|
+
in port portTlmConstIn : SoftwarePort { attribute :>> id = "PORT-TLM-01"; attribute :>> name = "CONST_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (TLM)"; }
|
|
168
|
+
in port portTlmOpCmdIn : SoftwarePort { attribute :>> id = "PORT-TLM-02"; attribute :>> name = "OP_CMD_IN"; attribute :>> portKind = InterfaceKind::control; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (TLM)"; }
|
|
169
|
+
out port portTlmTlmModeOut : SoftwarePort { attribute :>> id = "PORT-TLM-03"; attribute :>> name = "TLM_MODE_OUT"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (TLM)"; }
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
part config : SoftwareModule {
|
|
173
|
+
attribute :>> id = "SW-002";
|
|
174
|
+
attribute :>> name = "Config";
|
|
175
|
+
attribute :>> responsibility = "Prescription entry, drug-library limit checking, confirmation, and persistent storage.";
|
|
176
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
177
|
+
attribute :>> complexity = ComplexityKind::high;
|
|
178
|
+
|
|
179
|
+
out port portConfigConfigOut : SoftwarePort { attribute :>> id = "PORT-CFG-01"; attribute :>> name = "CONFIG_OUT"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (CONFIG)"; }
|
|
180
|
+
in port portConfigConstIn : SoftwarePort { attribute :>> id = "PORT-CFG-02"; attribute :>> name = "CONST_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (CONFIG)"; }
|
|
181
|
+
in port portConfigDbIn : SoftwarePort { attribute :>> id = "PORT-CFG-03"; attribute :>> name = "DB_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (CONFIG)"; }
|
|
182
|
+
in port portConfigOpCmdIn : SoftwarePort { attribute :>> id = "PORT-CFG-04"; attribute :>> name = "OP_CMD_IN"; attribute :>> portKind = InterfaceKind::control; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (CONFIG)"; }
|
|
183
|
+
in port portConfigPresIn : SoftwarePort { attribute :>> id = "PORT-CFG-05"; attribute :>> name = "PRES_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (CONFIG)"; }
|
|
184
|
+
in port portConfigSysStatIn : SoftwarePort { attribute :>> id = "PORT-CFG-06"; attribute :>> name = "SYS_STAT_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (CONFIG)"; }
|
|
185
|
+
in port portConfigTlmModeIn : SoftwarePort { attribute :>> id = "PORT-CFG-07"; attribute :>> name = "TLM_MODE_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (CONFIG)"; }
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
part alarm : SoftwareModule {
|
|
189
|
+
attribute :>> id = "SW-003";
|
|
190
|
+
attribute :>> name = "Alarm";
|
|
191
|
+
attribute :>> responsibility = "Monitor and notify exceptional conditions.";
|
|
192
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
193
|
+
attribute :>> complexity = ComplexityKind::high;
|
|
194
|
+
|
|
195
|
+
out port portAlarmAlarmOut : SoftwarePort { attribute :>> id = "PORT-ALM-01"; attribute :>> name = "ALARM_OUT"; attribute :>> portKind = InterfaceKind::notification; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
196
|
+
in port portAlarmConfigIn : SoftwarePort { attribute :>> id = "PORT-ALM-02"; attribute :>> name = "CONFIG_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
197
|
+
in port portAlarmConstIn : SoftwarePort { attribute :>> id = "PORT-ALM-03"; attribute :>> name = "CONST_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
198
|
+
in port portAlarmDbIn : SoftwarePort { attribute :>> id = "PORT-ALM-04"; attribute :>> name = "DB_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
199
|
+
in port portAlarmImIn : SoftwarePort { attribute :>> id = "PORT-ALM-05"; attribute :>> name = "IM_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
200
|
+
in port portAlarmOpCmdIn : SoftwarePort { attribute :>> id = "PORT-ALM-06"; attribute :>> name = "OP_CMD_IN"; attribute :>> portKind = InterfaceKind::control; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
201
|
+
in port portAlarmSensorIn : SoftwarePort { attribute :>> id = "PORT-ALM-07"; attribute :>> name = "SENSOR_IN"; attribute :>> portKind = InterfaceKind::digitalSignal; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
202
|
+
in port portAlarmSysMonIn : SoftwarePort { attribute :>> id = "PORT-ALM-08"; attribute :>> name = "SYS_MON_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
203
|
+
in port portAlarmSysStatIn : SoftwarePort { attribute :>> id = "PORT-ALM-09"; attribute :>> name = "SYS_STAT_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
204
|
+
in port portAlarmTlmModeIn : SoftwarePort { attribute :>> id = "PORT-ALM-10"; attribute :>> name = "TLM_MODE_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (ALARM)"; }
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
part logging : SoftwareModule {
|
|
208
|
+
attribute :>> id = "SW-004";
|
|
209
|
+
attribute :>> name = "Logging";
|
|
210
|
+
attribute :>> responsibility = "Append-only event log of doses, mode changes, alarms, and configuration changes.";
|
|
211
|
+
attribute :>> safetyClass = SafetyClassKind::B;
|
|
212
|
+
attribute :>> complexity = ComplexityKind::medium;
|
|
213
|
+
|
|
214
|
+
in port portLogAlarmIn : SoftwarePort { attribute :>> id = "PORT-LOG-01"; attribute :>> name = "ALARM_IN"; attribute :>> portKind = InterfaceKind::notification; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (LOG)"; }
|
|
215
|
+
in port portLogConfigIn : SoftwarePort { attribute :>> id = "PORT-LOG-02"; attribute :>> name = "CONFIG_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (LOG)"; }
|
|
216
|
+
in port portLogImIn : SoftwarePort { attribute :>> id = "PORT-LOG-03"; attribute :>> name = "IM_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (LOG)"; }
|
|
217
|
+
out port portLogLogOut : SoftwarePort { attribute :>> id = "PORT-LOG-04"; attribute :>> name = "LOG_OUT"; attribute :>> portKind = InterfaceKind::logging; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (LOG)"; }
|
|
218
|
+
in port portLogSysStatIn : SoftwarePort { attribute :>> id = "PORT-LOG-05"; attribute :>> name = "SYS_STAT_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (LOG)"; }
|
|
219
|
+
in port portLogTlmModeIn : SoftwarePort { attribute :>> id = "PORT-LOG-06"; attribute :>> name = "TLM_MODE_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (LOG)"; }
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
part infusionMgr : SoftwareModule {
|
|
223
|
+
attribute :>> id = "SW-005";
|
|
224
|
+
attribute :>> name = "Infusion_Manager";
|
|
225
|
+
attribute :>> responsibility = "Handle drug infusion commands and therapy parameters.";
|
|
226
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
227
|
+
attribute :>> complexity = ComplexityKind::high;
|
|
228
|
+
|
|
229
|
+
in port portImAlarmIn : SoftwarePort { attribute :>> id = "PORT-IM-01"; attribute :>> name = "ALARM_IN"; attribute :>> portKind = InterfaceKind::notification; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (IM)"; }
|
|
230
|
+
in port portImConfigIn : SoftwarePort { attribute :>> id = "PORT-IM-02"; attribute :>> name = "CONFIG_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (IM)"; }
|
|
231
|
+
out port portImImOut : SoftwarePort { attribute :>> id = "PORT-IM-03"; attribute :>> name = "IM_OUT"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (IM)"; }
|
|
232
|
+
in port portImOpCmdIn : SoftwarePort { attribute :>> id = "PORT-IM-04"; attribute :>> name = "OP_CMD_IN"; attribute :>> portKind = InterfaceKind::control; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (IM)"; }
|
|
233
|
+
in port portImPatientIn : SoftwarePort { attribute :>> id = "PORT-IM-05"; attribute :>> name = "PATIENT_IN"; attribute :>> portKind = InterfaceKind::userInteraction; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (IM)"; }
|
|
234
|
+
in port portImSysStatIn : SoftwarePort { attribute :>> id = "PORT-IM-06"; attribute :>> name = "SYS_STAT_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (IM)"; }
|
|
235
|
+
in port portImTlmModeIn : SoftwarePort { attribute :>> id = "PORT-IM-07"; attribute :>> name = "TLM_MODE_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (IM)"; }
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
part systemMonitor : SoftwareModule {
|
|
239
|
+
attribute :>> id = "SW-006";
|
|
240
|
+
attribute :>> name = "System_Monitor";
|
|
241
|
+
attribute :>> responsibility = "POST, periodic CPU/RAM/ROM checks, watchdog kicking, and battery supervision.";
|
|
242
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
243
|
+
attribute :>> complexity = ComplexityKind::medium;
|
|
244
|
+
|
|
245
|
+
out port portSysMonSysMonOut : SoftwarePort { attribute :>> id = "PORT-MON-01"; attribute :>> name = "SYS_MON_OUT"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_MON)"; }
|
|
246
|
+
in port portSysMonTlmModeIn : SoftwarePort { attribute :>> id = "PORT-MON-02"; attribute :>> name = "TLM_MODE_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_MON)"; }
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
part systemStatus : SoftwareModule {
|
|
250
|
+
attribute :>> id = "SW-007";
|
|
251
|
+
attribute :>> name = "System_Status";
|
|
252
|
+
attribute :>> responsibility = "Maintain the shared system status vector (Reservoir_Volume, Volume_Infused, Reservoir_Empty, In_Therapy) consumed by Alarm, Config, and Infusion_Manager.";
|
|
253
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
254
|
+
attribute :>> complexity = ComplexityKind::medium;
|
|
255
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/System_Status.aadl";
|
|
256
|
+
|
|
257
|
+
in port portSysStatConfigIn : SoftwarePort { attribute :>> id = "PORT-STAT-01"; attribute :>> name = "CONFIG_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_STAT)"; }
|
|
258
|
+
in port portSysStatConstIn : SoftwarePort { attribute :>> id = "PORT-STAT-02"; attribute :>> name = "CONST_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_STAT)"; }
|
|
259
|
+
in port portSysStatImIn : SoftwarePort { attribute :>> id = "PORT-STAT-03"; attribute :>> name = "IM_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_STAT)"; }
|
|
260
|
+
in port portSysStatSensorIn : SoftwarePort { attribute :>> id = "PORT-STAT-04"; attribute :>> name = "SENSOR_IN"; attribute :>> portKind = InterfaceKind::digitalSignal; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_STAT)"; }
|
|
261
|
+
out port portSysStatSysStatOut : SoftwarePort { attribute :>> id = "PORT-STAT-05"; attribute :>> name = "SYS_STAT_OUT"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_STAT)"; }
|
|
262
|
+
in port portSysStatTlmModeIn : SoftwarePort { attribute :>> id = "PORT-STAT-06"; attribute :>> name = "TLM_MODE_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (SYS_STAT)"; }
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
part outputBus : SoftwareModule {
|
|
266
|
+
attribute :>> id = "SW-008";
|
|
267
|
+
attribute :>> name = "OutputBus";
|
|
268
|
+
attribute :>> responsibility = "Aggregate all subsystem outputs into the single GPCA_SW_OUT output vector (mode, commanded flow rate, notifications, prescription echo, status).";
|
|
269
|
+
attribute :>> safetyClass = SafetyClassKind::C;
|
|
270
|
+
attribute :>> complexity = ComplexityKind::low;
|
|
271
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/OutputBus.aadl";
|
|
272
|
+
|
|
273
|
+
in port portOutputAlarmIn : SoftwarePort { attribute :>> id = "PORT-OUT-01"; attribute :>> name = "ALARM_IN"; attribute :>> portKind = InterfaceKind::notification; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
274
|
+
in port portOutputConfigIn : SoftwarePort { attribute :>> id = "PORT-OUT-02"; attribute :>> name = "CONFIG_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
275
|
+
out port portOutputGpcaSwOut : SoftwarePort { attribute :>> id = "PORT-OUT-03"; attribute :>> name = "GPCA_SW_OUT"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
276
|
+
in port portOutputImIn : SoftwarePort { attribute :>> id = "PORT-OUT-04"; attribute :>> name = "IM_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
277
|
+
in port portOutputLogIn : SoftwarePort { attribute :>> id = "PORT-OUT-05"; attribute :>> name = "LOG_IN"; attribute :>> portKind = InterfaceKind::logging; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
278
|
+
in port portOutputSysMonIn : SoftwarePort { attribute :>> id = "PORT-OUT-06"; attribute :>> name = "SYS_MON_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
279
|
+
in port portOutputSysStatIn : SoftwarePort { attribute :>> id = "PORT-OUT-07"; attribute :>> name = "SYS_STAT_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
280
|
+
in port portOutputTlmModeIn : SoftwarePort { attribute :>> id = "PORT-OUT-08"; attribute :>> name = "TLM_MODE_IN"; attribute :>> portKind = InterfaceKind::data; attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (OUTPUT)"; }
|
|
281
|
+
}
|
|
282
|
+
}
|
|
70
283
|
}
|
|
71
284
|
|
|
285
|
+
// ── Hardware: aggregates (UMN AADL architectural model) ─────
|
|
72
286
|
// ── Hardware: sensor suite ──────────────────────────────────
|
|
73
287
|
part airInLineSensor : HardwareAssembly {
|
|
74
288
|
attribute :>> id = "HW-006";
|
|
@@ -191,92 +405,120 @@ package memo_examples_gpca_pump_model_catalog_gpca_architecture {
|
|
|
191
405
|
attribute :>> partNumber = "GPCA-MECH-ENC";
|
|
192
406
|
}
|
|
193
407
|
|
|
194
|
-
// ── Software system and components (UMN behavioral model) ───
|
|
195
|
-
part gpcaSoftware : SoftwareSystem {
|
|
196
|
-
attribute :>> id = "SWS-001";
|
|
197
|
-
attribute :>> name = "GPCA_Software";
|
|
198
|
-
attribute :>> version = "2.0";
|
|
199
|
-
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
200
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
201
|
-
attribute :>> complexity = ComplexityKind::high;
|
|
202
|
-
attribute :>> operatingSystem = "synchronous data-flow execution; AADL immediate port semantics (source specifies no timing)";
|
|
203
|
-
}
|
|
204
|
-
part tlm : SoftwareModule {
|
|
205
|
-
attribute :>> id = "SW-001";
|
|
206
|
-
attribute :>> name = "Top_Level_Mode";
|
|
207
|
-
attribute :>> responsibility = "Ensure system ON/OFF behavior and startup/shutdown checks.";
|
|
208
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
209
|
-
attribute :>> complexity = ComplexityKind::medium;
|
|
210
|
-
}
|
|
211
|
-
part config : SoftwareModule {
|
|
212
|
-
attribute :>> id = "SW-002";
|
|
213
|
-
attribute :>> name = "Config";
|
|
214
|
-
attribute :>> responsibility = "Prescription entry, drug-library limit checking, confirmation, and persistent storage.";
|
|
215
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
216
|
-
attribute :>> complexity = ComplexityKind::high;
|
|
217
|
-
}
|
|
218
|
-
part alarm : SoftwareModule {
|
|
219
|
-
attribute :>> id = "SW-003";
|
|
220
|
-
attribute :>> name = "Alarm";
|
|
221
|
-
attribute :>> responsibility = "Monitor and notify exceptional conditions.";
|
|
222
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
223
|
-
attribute :>> complexity = ComplexityKind::high;
|
|
224
|
-
}
|
|
225
|
-
part logging : SoftwareModule {
|
|
226
|
-
attribute :>> id = "SW-004";
|
|
227
|
-
attribute :>> name = "Logging";
|
|
228
|
-
attribute :>> responsibility = "Append-only event log of doses, mode changes, alarms, and configuration changes.";
|
|
229
|
-
attribute :>> safetyClass = SafetyClassKind::B;
|
|
230
|
-
attribute :>> complexity = ComplexityKind::medium;
|
|
231
|
-
}
|
|
232
|
-
part infusionMgr : SoftwareModule {
|
|
233
|
-
attribute :>> id = "SW-005";
|
|
234
|
-
attribute :>> name = "Infusion_Manager";
|
|
235
|
-
attribute :>> responsibility = "Handle drug infusion commands and therapy parameters.";
|
|
236
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
237
|
-
attribute :>> complexity = ComplexityKind::high;
|
|
238
|
-
}
|
|
239
|
-
part systemMonitor : SoftwareModule {
|
|
240
|
-
attribute :>> id = "SW-006";
|
|
241
|
-
attribute :>> name = "System_Monitor";
|
|
242
|
-
attribute :>> responsibility = "POST, periodic CPU/RAM/ROM checks, watchdog kicking, and battery supervision.";
|
|
243
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
244
|
-
attribute :>> complexity = ComplexityKind::medium;
|
|
245
|
-
}
|
|
246
|
-
part systemStatus : SoftwareModule {
|
|
247
|
-
attribute :>> id = "SW-007";
|
|
248
|
-
attribute :>> name = "System_Status";
|
|
249
|
-
attribute :>> responsibility = "Maintain the shared system status vector (Reservoir_Volume, Volume_Infused, Reservoir_Empty, In_Therapy) consumed by Alarm, Config, and Infusion_Manager.";
|
|
250
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
251
|
-
attribute :>> complexity = ComplexityKind::medium;
|
|
252
|
-
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/System_Status.aadl";
|
|
253
|
-
}
|
|
254
|
-
part outputBus : SoftwareModule {
|
|
255
|
-
attribute :>> id = "SW-008";
|
|
256
|
-
attribute :>> name = "OutputBus";
|
|
257
|
-
attribute :>> responsibility = "Aggregate all subsystem outputs into the single GPCA_SW_OUT output vector (mode, commanded flow rate, notifications, prescription echo, status).";
|
|
258
|
-
attribute :>> safetyClass = SafetyClassKind::C;
|
|
259
|
-
attribute :>> complexity = ComplexityKind::low;
|
|
260
|
-
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/OutputBus.aadl";
|
|
261
|
-
}
|
|
262
|
-
|
|
263
408
|
// ── Structural composition ──────────────────────────────────
|
|
264
409
|
// Device level (GPCA_Device.aadl): the assemblies and the software system
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
410
|
+
// are nested directly in gpcaDevice's body above, native containment
|
|
411
|
+
// instead of a Composes edge. The software modules (MEMO design
|
|
412
|
+
// extensions derived from system requirements and hazard analysis, not
|
|
413
|
+
// subcomponents in the published AADL packages) are nested the same way,
|
|
414
|
+
// inside gpcaSoftware's own body.
|
|
415
|
+
satisfy reqCs01 by gpcaDevice.gpcaSoftware.tlm;
|
|
416
|
+
satisfy reqCs01 by gpcaDevice.gpcaSoftware.outputBus;
|
|
417
|
+
satisfy reqCs18 by gpcaDevice.gpcaSoftware.systemStatus;
|
|
418
|
+
satisfy reqCs23 by gpcaDevice.gpcaSoftware.systemStatus;
|
|
419
|
+
satisfy reqCs25 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
420
|
+
satisfy reqCs19 by gpcaDevice.gpcaSoftware.alarm;
|
|
421
|
+
satisfy reqDrugLibraryLimits by gpcaDevice.gpcaSoftware.config;
|
|
422
|
+
satisfy reqCs09 by gpcaDevice.gpcaSoftware.config;
|
|
423
|
+
satisfy reqPowerLossRetention by gpcaDevice.gpcaSoftware.config;
|
|
424
|
+
satisfy reqPost by gpcaDevice.gpcaSoftware.systemMonitor;
|
|
425
|
+
satisfy reqWatchdogSafeState by gpcaDevice.gpcaSoftware.systemMonitor;
|
|
426
|
+
satisfy reqWatchdogSafeState by controllerBoard;
|
|
427
|
+
satisfy reqCs59 by gpcaDevice.gpcaSoftware.alarm;
|
|
428
|
+
satisfy reqCs72 by audibleAlarm;
|
|
429
|
+
satisfy reqCs73 by gpcaDevice.gpcaSoftware.alarm;
|
|
430
|
+
satisfy reqCs75 by gpcaDevice.gpcaSoftware.alarm;
|
|
431
|
+
satisfy reqCs21 by airInLineSensor;
|
|
432
|
+
satisfy reqCs21 by gpcaDevice.gpcaSoftware.alarm;
|
|
433
|
+
satisfy reqOcclusion by occlusionSensor;
|
|
434
|
+
satisfy reqOcclusion by gpcaDevice.gpcaSoftware.alarm;
|
|
435
|
+
satisfy reqCs23 by reservoirSensor;
|
|
436
|
+
satisfy reqCs23 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
437
|
+
satisfy reqDoorOpen by doorSensor;
|
|
438
|
+
satisfy reqDoorOpen by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
439
|
+
satisfy reqMaxHourlyDose by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
440
|
+
satisfy reqStuckButton by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
441
|
+
satisfy reqFlowCrossCheck by flowSensor;
|
|
442
|
+
satisfy reqFlowCrossCheck by gpcaDevice.gpcaSoftware.alarm;
|
|
443
|
+
satisfy reqCs77 by gpcaDevice.gpcaSoftware.logging;
|
|
444
|
+
satisfy reqCs78 by gpcaDevice.gpcaSoftware.logging;
|
|
445
|
+
satisfy reqEventLogging by gpcaDevice.gpcaSoftware.logging;
|
|
446
|
+
satisfy reqCs02 by gpcaDevice.gpcaSoftware.tlm;
|
|
447
|
+
satisfy reqCs03 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
448
|
+
satisfy reqCs04 by gpcaDevice.gpcaSoftware.tlm;
|
|
449
|
+
satisfy reqCs05 by gpcaDevice.gpcaSoftware.tlm;
|
|
450
|
+
satisfy reqCs06 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
451
|
+
satisfy reqCs07 by gpcaDevice.gpcaSoftware.tlm;
|
|
452
|
+
satisfy reqCs08 by gpcaDevice.gpcaSoftware.config;
|
|
453
|
+
satisfy reqCs10 by gpcaDevice.gpcaSoftware.alarm;
|
|
454
|
+
satisfy reqCs11 by gpcaDevice.gpcaSoftware.logging;
|
|
455
|
+
satisfy reqCs12 by gpcaDevice.gpcaSoftware.tlm;
|
|
456
|
+
satisfy reqCs13 by gpcaDevice.gpcaSoftware.tlm;
|
|
457
|
+
satisfy reqCs14 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
458
|
+
satisfy reqCs15 by gpcaDevice.gpcaSoftware.alarm;
|
|
459
|
+
satisfy reqCs16 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
460
|
+
satisfy reqCs17 by gpcaDevice.gpcaSoftware.alarm;
|
|
461
|
+
satisfy reqCs18 by gpcaDevice.gpcaSoftware.alarm;
|
|
462
|
+
satisfy reqCs20 by gpcaDevice.gpcaSoftware.alarm;
|
|
463
|
+
satisfy reqCs22 by gpcaDevice.gpcaSoftware.alarm;
|
|
464
|
+
satisfy reqCs24 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
465
|
+
satisfy reqCs26 by gpcaDevice.gpcaSoftware.alarm;
|
|
466
|
+
satisfy reqCs27 by gpcaDevice.gpcaSoftware.alarm;
|
|
467
|
+
satisfy reqCs28 by gpcaDevice.gpcaSoftware.tlm;
|
|
468
|
+
satisfy reqCs29 by gpcaDevice.gpcaSoftware.tlm;
|
|
469
|
+
satisfy reqCs30 by gpcaDevice.gpcaSoftware.tlm;
|
|
470
|
+
satisfy reqCs31 by gpcaDevice.gpcaSoftware.tlm;
|
|
471
|
+
satisfy reqCs32 by gpcaDevice.gpcaSoftware.tlm;
|
|
472
|
+
satisfy reqCs33 by gpcaDevice.gpcaSoftware.tlm;
|
|
473
|
+
satisfy reqCs34 by gpcaDevice.gpcaSoftware.tlm;
|
|
474
|
+
satisfy reqCs35 by gpcaDevice.gpcaSoftware.tlm;
|
|
475
|
+
satisfy reqCs36 by gpcaDevice.gpcaSoftware.tlm;
|
|
476
|
+
satisfy reqCs37 by gpcaDevice.gpcaSoftware.tlm;
|
|
477
|
+
satisfy reqCs38 by gpcaDevice.gpcaSoftware.tlm;
|
|
478
|
+
satisfy reqCs39 by gpcaDevice.gpcaSoftware.tlm;
|
|
479
|
+
satisfy reqCs40 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
480
|
+
satisfy reqCs41 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
481
|
+
satisfy reqCs42 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
482
|
+
satisfy reqCs43 by gpcaDevice.gpcaSoftware.infusionMgr;
|
|
483
|
+
satisfy reqCs44 by gpcaDevice.gpcaSoftware.alarm;
|
|
484
|
+
satisfy reqCs45 by gpcaDevice.gpcaSoftware.tlm;
|
|
485
|
+
satisfy reqCs46 by gpcaDevice.gpcaSoftware.tlm;
|
|
486
|
+
satisfy reqCs47 by gpcaDevice.gpcaSoftware.tlm;
|
|
487
|
+
satisfy reqCs48 by gpcaDevice.gpcaSoftware.config;
|
|
488
|
+
satisfy reqCs49 by gpcaDevice.gpcaSoftware.config;
|
|
489
|
+
satisfy reqCs50 by gpcaDevice.gpcaSoftware.config;
|
|
490
|
+
satisfy reqCs51 by gpcaDevice.gpcaSoftware.config;
|
|
491
|
+
satisfy reqCs52 by gpcaDevice.gpcaSoftware.config;
|
|
492
|
+
satisfy reqCs53 by gpcaDevice.gpcaSoftware.config;
|
|
493
|
+
satisfy reqCs54 by gpcaDevice.gpcaSoftware.config;
|
|
494
|
+
satisfy reqCs55 by gpcaDevice.gpcaSoftware.config;
|
|
495
|
+
satisfy reqCs56 by gpcaDevice.gpcaSoftware.config;
|
|
496
|
+
satisfy reqCs57 by gpcaDevice.gpcaSoftware.config;
|
|
497
|
+
satisfy reqCs58 by gpcaDevice.gpcaSoftware.config;
|
|
498
|
+
satisfy reqCs60 by gpcaDevice.gpcaSoftware.alarm;
|
|
499
|
+
satisfy reqCs61 by gpcaDevice.gpcaSoftware.alarm;
|
|
500
|
+
satisfy reqCs62 by gpcaDevice.gpcaSoftware.alarm;
|
|
501
|
+
satisfy reqCs63 by gpcaDevice.gpcaSoftware.alarm;
|
|
502
|
+
satisfy reqCs64 by gpcaDevice.gpcaSoftware.alarm;
|
|
503
|
+
satisfy reqCs65 by gpcaDevice.gpcaSoftware.alarm;
|
|
504
|
+
satisfy reqCs66 by gpcaDevice.gpcaSoftware.alarm;
|
|
505
|
+
satisfy reqCs67 by gpcaDevice.gpcaSoftware.alarm;
|
|
506
|
+
satisfy reqCs68 by gpcaDevice.gpcaSoftware.alarm;
|
|
507
|
+
satisfy reqCs69 by gpcaDevice.gpcaSoftware.alarm;
|
|
508
|
+
satisfy reqCs70 by gpcaDevice.gpcaSoftware.alarm;
|
|
509
|
+
satisfy reqCs71 by gpcaDevice.gpcaSoftware.alarm;
|
|
510
|
+
satisfy reqCs74 by gpcaDevice.gpcaSoftware.alarm;
|
|
511
|
+
satisfy reqCs76 by gpcaDevice.gpcaSoftware.alarm;
|
|
512
|
+
satisfy reqCs79 by gpcaDevice.gpcaSoftware.logging;
|
|
513
|
+
satisfy reqCs80 by gpcaDevice.gpcaSoftware.logging;
|
|
514
|
+
satisfy reqCs81 by gpcaDevice.gpcaSoftware.logging;
|
|
515
|
+
satisfy reqCs82 by gpcaDevice.gpcaSoftware.config;
|
|
516
|
+
satisfy reqCs83 by enclosure;
|
|
517
|
+
satisfy reqCs84 by enclosure;
|
|
518
|
+
satisfy reqCs85 by gpcaDevice.gpcaSoftware.logging;
|
|
519
|
+
satisfy reqCs86 by gpcaDevice.gpcaSoftware.config;
|
|
520
|
+
satisfy reqPumpAccuracy by pumpMotorAssembly;
|
|
521
|
+
satisfy reqAlarmLoudness by audibleAlarm;
|
|
522
|
+
satisfy reqBatteryBackup by batteryPack;
|
|
523
|
+
satisfy reqFreeFlowPrevention by antiFreeFlowValve;
|
|
282
524
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_behavior_actions {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
|
-
private import
|
|
3
|
+
private import memo_examples_gpca_pump_gpca_architecture::*;
|
|
4
4
|
|
|
5
5
|
private import memo_architecture_functional_behavior::*;
|
|
6
|
+
private import memo_core_common::*;
|
|
7
|
+
private import memo_core_relationships::*;
|
|
8
|
+
private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
|
|
6
9
|
private import memo_architecture_logical_interfaces::*;
|
|
7
10
|
private import memo_core_enumerations::*;
|
|
8
11
|
|
|
@@ -33,27 +36,27 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_actions {
|
|
|
33
36
|
attribute :>> itemKind = InterfaceItemKind::'event';
|
|
34
37
|
}
|
|
35
38
|
|
|
36
|
-
action def AcquireSensorData {
|
|
39
|
+
action def AcquireSensorData :> FunctionalAction {
|
|
37
40
|
out sensorStatus : SensorStatusVector;
|
|
38
41
|
}
|
|
39
|
-
action def EvaluateAlarmConditions {
|
|
42
|
+
action def EvaluateAlarmConditions :> FunctionalAction {
|
|
40
43
|
in sensorStatus : SensorStatusVector;
|
|
41
44
|
out alarmSignal : AlarmSignal;
|
|
42
45
|
}
|
|
43
|
-
action def EnforceDoseLimits {
|
|
46
|
+
action def EnforceDoseLimits :> FunctionalAction {
|
|
44
47
|
in bolusRequest : BolusRequestSignal;
|
|
45
48
|
out authorizedBolus : BolusRequestSignal;
|
|
46
49
|
}
|
|
47
|
-
action def ComputeFlowCommand {
|
|
50
|
+
action def ComputeFlowCommand :> FunctionalAction {
|
|
48
51
|
in alarmSignal : AlarmSignal;
|
|
49
52
|
in authorizedBolus : BolusRequestSignal;
|
|
50
53
|
out flowCommand : FlowCommand;
|
|
51
54
|
}
|
|
52
|
-
action def ActuatePumpMotor {
|
|
55
|
+
action def ActuatePumpMotor :> FunctionalAction {
|
|
53
56
|
in flowCommand : FlowCommand;
|
|
54
57
|
out actuation : FlowCommand;
|
|
55
58
|
}
|
|
56
|
-
action def LogTherapyEvent {
|
|
59
|
+
action def LogTherapyEvent :> FunctionalAction {
|
|
57
60
|
in actuation : FlowCommand;
|
|
58
61
|
out eventRecord : TherapyEventRecord;
|
|
59
62
|
}
|
|
@@ -83,10 +86,21 @@ package memo_examples_gpca_pump_model_catalog_gpca_behavior_actions {
|
|
|
83
86
|
}
|
|
84
87
|
|
|
85
88
|
// ── Swimlane allocation to the logical architecture ─────────
|
|
86
|
-
allocate infusionDeliveryFlow.acquireSensors to gpcaDeviceSensors;
|
|
87
|
-
allocate infusionDeliveryFlow.evaluateAlarms to alarm;
|
|
88
|
-
allocate infusionDeliveryFlow.enforceLimits to infusionMgr;
|
|
89
|
-
allocate infusionDeliveryFlow.computeFlow to infusionMgr;
|
|
89
|
+
allocate infusionDeliveryFlow.acquireSensors to gpcaDevice.gpcaDeviceSensors;
|
|
90
|
+
allocate infusionDeliveryFlow.evaluateAlarms to gpcaDevice.gpcaSoftware.alarm;
|
|
91
|
+
allocate infusionDeliveryFlow.enforceLimits to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
92
|
+
allocate infusionDeliveryFlow.computeFlow to gpcaDevice.gpcaSoftware.infusionMgr;
|
|
90
93
|
allocate infusionDeliveryFlow.actuateMotor to pumpMotorAssembly;
|
|
91
|
-
allocate infusionDeliveryFlow.logEvent to logging;
|
|
94
|
+
allocate infusionDeliveryFlow.logEvent to gpcaDevice.gpcaSoftware.logging;
|
|
95
|
+
|
|
96
|
+
// ── Functional decomposition and component allocation ───────
|
|
97
|
+
// FUNC-001 "AcquireSensorData" is what the SYSTEM is answerable for.
|
|
98
|
+
// Decomposing it names who is answerable for each piece: the flowmeter for
|
|
99
|
+
// the flow rate, the air detector for air in line, the sensor subassembly
|
|
100
|
+
// for the aggregated vector — native nesting in gpca_behavior_subsystems.
|
|
101
|
+
// AllocatedTo carries the ownership, a different statement from
|
|
102
|
+
// containment, which is what CR-ONT-075 keeps apart.
|
|
103
|
+
allocate fnAcquireSensors.cfnMeasureFlowRate to flowSensor;
|
|
104
|
+
allocate fnAcquireSensors.cfnDetectAirInLine to airInLineSensor;
|
|
105
|
+
allocate fnAcquireSensors.cfnAggregateSensorStatus to gpcaDevice.gpcaDeviceSensors;
|
|
92
106
|
}
|