@memoarchitect/ontology 0.6.5 → 0.7.0
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 +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/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/extensions/clinical/memo.package.yaml +18 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +10 -2
- package/examples/extensions/template/memo.package.yaml +17 -9
- 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/gpca-pump.kpar +0 -0
- 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 +1 -1
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +5 -5
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +3 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +7 -6
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +19 -8
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +2 -2
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +34 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +27 -23
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +1 -1
- package/examples/gpca-pump/model/catalog/project.sysml +21 -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 +3 -3
- 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 +3 -3
- 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 +4 -4
- 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 +7 -7
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +3 -3
- 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 +3 -3
- 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 +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +3 -3
- 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 +6 -6
- 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 +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +2 -2
- 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 +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +3 -3
- 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 +4 -4
- 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 +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +2 -2
- 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 +1 -0
- 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/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 +174 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +183 -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 +90 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +49 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -6
- 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/software-only-medical-device/model/catalog/project.sysml +24 -0
- 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 +23 -19
- 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 +5 -3
- 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 +18 -10
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +4 -2
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/functional_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/interconnection_view.sysml +17 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/operational_behaviour_view.sysml +23 -20
- 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 +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +51 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/state_transition_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/tree_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +3 -1
- 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 +2 -1
- 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 +60 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +189 -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 +60 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +276 -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/memo.manifest.yaml +2 -0
- 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 +2 -4
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +7 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
- package/src/architecture/functional/functions/memo_functions.sysml +5 -12
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +1 -3
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +18 -5
- package/src/architecture/implementation/ui/memo_ui.sysml +210 -27
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -2
- package/src/architecture/logical/structure/memo_logical_structure.sysml +71 -15
- package/src/architecture/operational/activities/memo_activities.sysml +0 -1
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +2 -2
- package/src/architecture/operational/workflows/memo_workflows.sysml +0 -6
- package/src/{compliance/change/memo_change.sysml → artifacts/configuration_management/memo_configuration_management.sysml} +5 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +33 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +1 -1
- package/src/assurance/human_factors/memo_human_factors.sysml +1 -1
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +11 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
- package/src/core/annotations/memo_annotations.sysml +77 -0
- package/src/core/common/memo_common.sysml +20 -3
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +5 -1
- package/src/core/enumerations/memo_enumerations.sysml +41 -6
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +4 -2
- package/src/memo_namespaces.sysml +97 -67
- package/src/methodology/core/memo_core.sysml +45 -2
- package/src/methodology/profiles/memo_profiles.sysml +30 -40
- 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 +30 -73
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +7 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -1
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +3 -1
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -1
- 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 +4 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +3 -1
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +2 -2
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +2 -2
- 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 +3 -1
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +2 -2
- 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 +3 -1
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +2 -2
- 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/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/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/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/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.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-62304/detailed-design.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/srs.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.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/summative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/task-analysis.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.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/urra.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/fmea.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/har.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/rmp.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,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_formal_behavior {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_functional_behavior::*;
|
|
@@ -42,7 +42,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
42
42
|
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
43
43
|
attribute :>> id = "AP-002";
|
|
44
44
|
attribute :>> name = "VtbiHighPositive";
|
|
45
|
-
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
46
45
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
47
46
|
attribute :>> formalExpression = "assume DB_IN.VTBI_High > 0";
|
|
48
47
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -51,7 +50,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
51
50
|
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
52
51
|
attribute :>> id = "AP-003";
|
|
53
52
|
attribute :>> name = "EmptyReservoirConstPositive";
|
|
54
|
-
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
55
53
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
56
54
|
attribute :>> formalExpression = "assume CONST_IN.Empty_Reservoir > 0";
|
|
57
55
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -60,7 +58,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
60
58
|
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
61
59
|
attribute :>> id = "AP-001";
|
|
62
60
|
attribute :>> name = "ValidPrescriptionSavedBeforeTherapy";
|
|
63
|
-
attribute :>> propertyKind = BehaviorPropertyKind::assumption;
|
|
64
61
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
65
62
|
attribute :>> formalExpression = "assume a saved prescription is available before infusion initiation";
|
|
66
63
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.3.1 (REQ 7)";
|
|
@@ -71,7 +68,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
71
68
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
72
69
|
attribute :>> id = "GP-001";
|
|
73
70
|
attribute :>> name = "ModeRange";
|
|
74
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
75
71
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
76
72
|
attribute :>> formalExpression = "guarantee mode_range: GPCA_SW_OUT.Current_System_Mode in {0, 1, 2, 3, 4, 6, 7, 8} (source enumeration omits 5)";
|
|
77
73
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 1)";
|
|
@@ -80,7 +76,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
80
76
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
81
77
|
attribute :>> id = "GP-004";
|
|
82
78
|
attribute :>> name = "NotStartImpliesModeZero";
|
|
83
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
84
79
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
85
80
|
attribute :>> formalExpression = "guarantee not(OP_CMD_IN.System_Start) => GPCA_SW_OUT.Current_System_Mode = 0";
|
|
86
81
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -89,7 +84,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
89
84
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
90
85
|
attribute :>> id = "GP-005";
|
|
91
86
|
attribute :>> name = "InitialSystemStartImpliesModeOne";
|
|
92
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
93
87
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
94
88
|
attribute :>> formalExpression = "guarantee sys_initial and OP_CMD_IN.System_Start => GPCA_SW_OUT.Current_System_Mode = 1";
|
|
95
89
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 4 allocation: TLM System_Start -> System_On; IM System_On -> mode 1)";
|
|
@@ -98,7 +92,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
98
92
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
99
93
|
attribute :>> id = "GP-006";
|
|
100
94
|
attribute :>> name = "OffToOnImpliesModeOne";
|
|
101
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
102
95
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
103
96
|
attribute :>> formalExpression = "guarantee not(sys_initial) and pre(GPCA_SW_OUT.Current_System_Mode) = 0 and OP_CMD_IN.System_Start => GPCA_SW_OUT.Current_System_Mode = 1";
|
|
104
97
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 4)";
|
|
@@ -107,7 +100,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
107
100
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
108
101
|
attribute :>> id = "GP-007";
|
|
109
102
|
attribute :>> name = "EmptyReservoirImpliesNoFlow";
|
|
110
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
111
103
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
112
104
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and pre(Current_System_Mode) > 1 and GPCA_SW_OUT.Reservoir_Volume < CONST_IN.Empty_Reservoir) => GPCA_SW_OUT.Commanded_Flow_Rate = 0";
|
|
113
105
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 59 'Empty Reservoir')";
|
|
@@ -116,7 +108,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
116
108
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
117
109
|
attribute :>> id = "GP-008";
|
|
118
110
|
attribute :>> name = "OverVtbiImpliesFlowAtMostKvo";
|
|
119
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
120
111
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
121
112
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and pre(Current_System_Mode) > 1 and GPCA_SW_OUT.Volume_Infused > DB_IN.VTBI_High) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
122
113
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (over-infusion => keep-vein-open, not zero)";
|
|
@@ -125,7 +116,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
125
116
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
126
117
|
attribute :>> id = "GP-009";
|
|
127
118
|
attribute :>> name = "AirInLineImpliesFlowAtMostKvo";
|
|
128
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
129
119
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
130
120
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Air_In_Line) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
131
121
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 21 'Air embolism')";
|
|
@@ -134,7 +124,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
134
124
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
135
125
|
attribute :>> id = "GP-010";
|
|
136
126
|
attribute :>> name = "OcclusionImpliesFlowAtMostKvo";
|
|
137
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
138
127
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
139
128
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Occlusion) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
140
129
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -143,7 +132,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
143
132
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
144
133
|
attribute :>> id = "GP-011";
|
|
145
134
|
attribute :>> name = "DoorOpenImpliesFlowAtMostKvo";
|
|
146
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
147
135
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
148
136
|
attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Door_Open) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
|
|
149
137
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
|
|
@@ -152,7 +140,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
152
140
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
153
141
|
attribute :>> id = "GP-003";
|
|
154
142
|
attribute :>> name = "SameStepAlarmKvoGuarantee";
|
|
155
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
156
143
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
157
144
|
attribute :>> formalExpression = "guarantee an infusion-inhibiting notification in a step implies Commanded_Flow_Rate <= Flow_Rate_KVO in the same step (ALARM_OUT -> IM.ALARM_IN is an immediate connection)";
|
|
158
145
|
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl (ALARM_to_IM immediate) with the flow <= KVO guarantees above";
|
|
@@ -161,7 +148,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
|
|
|
161
148
|
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
162
149
|
attribute :>> id = "GP-002";
|
|
163
150
|
attribute :>> name = "LockoutGuarantee";
|
|
164
|
-
attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
|
|
165
151
|
attribute :>> languageKind = PropertyLanguageKind::agreeLike;
|
|
166
152
|
attribute :>> formalExpression = "guarantee a BolusRequest_prog inside the LockOutPeriod_pbolus_prog window is ignored and no PATIENT BOLUS is initiated";
|
|
167
153
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.6.1 (REQ 25.3, REQ 26)";
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_interfaces {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_logical_interfaces::*;
|
|
5
5
|
private import memo_architecture_realization_physical::*;
|
|
6
6
|
private import memo_architecture_functional_functions::*;
|
|
7
|
-
private import
|
|
8
|
-
private import
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_examples_gpca_pump_gpca_architecture::*;
|
|
9
|
+
private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
|
|
9
10
|
private import memo_core_enumerations::*;
|
|
10
11
|
private import memo_core_dimensions::*;
|
|
11
12
|
abstract interface def SensorDataInterface :> DataInterface {
|
|
@@ -13,7 +14,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
13
14
|
attribute :>> protocolSemantics = "flow, air, occlusion, door, battery, cpu, memory, pump state";
|
|
14
15
|
}
|
|
15
16
|
port def SensorInputPort :> SensorPort {
|
|
16
|
-
|
|
17
|
+
in item sensorData : MemoExchangeItem;
|
|
17
18
|
attribute :>> interfaceType = "SensorDataInterface";
|
|
18
19
|
attribute :>> sensorDomain = "physiological and device state";
|
|
19
20
|
}
|
|
@@ -54,7 +55,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
54
55
|
attribute :>> name = "HW_SW_DataBus";
|
|
55
56
|
attribute :>> interfaceKind = InterfaceKind::digitalSignal;
|
|
56
57
|
attribute :>> protocol = "immediate data port mapping";
|
|
57
|
-
attribute :>> directionality = DirectionKind::
|
|
58
|
+
attribute :>> directionality = DirectionKind::inputOutput;
|
|
58
59
|
attribute :>> bandwidth = "implementation-defined";
|
|
59
60
|
attribute :>> timingConstraint = "same execution step where required";
|
|
60
61
|
attribute :>> electricalStandard = "logical/AADL";
|
|
@@ -150,7 +151,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
|
150
151
|
attribute :>> id = "SI-005";
|
|
151
152
|
attribute :>> name = "HospitalPharmacyDatabaseInterface";
|
|
152
153
|
attribute :>> interfaceKind = InterfaceKind::data;
|
|
153
|
-
attribute :>> direction = DirectionKind::
|
|
154
|
+
attribute :>> direction = DirectionKind::inputOutput;
|
|
154
155
|
attribute :>> protocol = "CriSys I 9, I 10, I 11";
|
|
155
156
|
attribute :>> protocolSemantics = "Retrieves the safe-value set (concentration, VTBI, flow rate, bolus interval/count, KVO rate) where DrugName_hd = DrugName_prog; resets to defaults when no record matches";
|
|
156
157
|
attribute :>> interactionPattern = "query/response safe-value lookup";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_operational {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_operational_structure::*;
|
|
@@ -7,7 +7,8 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
7
7
|
private import memo_architecture_operational_use_cases::*;
|
|
8
8
|
private import memo_architecture_operational_workflows::*;
|
|
9
9
|
private import memo_core_enumerations::*;
|
|
10
|
-
private import
|
|
10
|
+
private import memo_examples_gpca_pump_gpca_context::*;
|
|
11
|
+
private import memo_core_relationships::*;
|
|
11
12
|
|
|
12
13
|
// ── Operational entities beyond the human actors ────────────
|
|
13
14
|
part entityPharmacy : OperationalEntity {
|
|
@@ -234,7 +235,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
234
235
|
}
|
|
235
236
|
|
|
236
237
|
// ── Operational scenarios ───────────────────────────────────
|
|
237
|
-
|
|
238
|
+
action osNominalTherapy : OperativeScenario {
|
|
238
239
|
attribute :>> id = "OS-001";
|
|
239
240
|
attribute :>> name = "NominalTherapySession";
|
|
240
241
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
@@ -247,10 +248,11 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
247
248
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
248
249
|
ref :>> activities = oaCompleteNominalTherapy;
|
|
249
250
|
}
|
|
250
|
-
|
|
251
|
+
action osLockoutBolus : OperativeScenario {
|
|
251
252
|
attribute :>> id = "OS-002";
|
|
252
253
|
attribute :>> name = "BolusRequestDuringLockout";
|
|
253
254
|
attribute :>> variantKind = ScenarioVariantKind::alternate;
|
|
255
|
+
attribute :>> variationPoint = "patient bolus request during the nominal therapy lockout interval";
|
|
254
256
|
attribute :>> operationalCondition = OperationalConditionKind::foreseeableMisuse;
|
|
255
257
|
attribute :>> preCondition = "basal infusion active; lockout interval running";
|
|
256
258
|
attribute :>> postCondition = "request ignored, logged; basal continues unchanged";
|
|
@@ -258,12 +260,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
258
260
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.9 PATIENT BOLUS mode (lockout requirements)";
|
|
259
261
|
ref :>> parentWorkflow = wfManageActiveTherapy;
|
|
260
262
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
263
|
+
ref :>> baseScenario = osNominalTherapy;
|
|
261
264
|
ref :>> activities = oaRejectBolusDuringLockout;
|
|
262
265
|
}
|
|
263
|
-
|
|
266
|
+
action osOcclusionAlarm : OperativeScenario {
|
|
264
267
|
attribute :>> id = "OS-003";
|
|
265
268
|
attribute :>> name = "OcclusionDetectedDuringInfusion";
|
|
266
269
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
270
|
+
attribute :>> variationPoint = "occlusion detected while nominal infusion is active";
|
|
267
271
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
268
272
|
attribute :>> preCondition = "therapy active; downstream line becomes blocked";
|
|
269
273
|
attribute :>> postCondition = "infusion paused, alarm annunciated, clinician clears occlusion and resumes";
|
|
@@ -271,12 +275,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
271
275
|
attribute :>> sourceReference = "CITE-004: GIP Hazard Analysis v1.0 (2009), §2.2 Alarms and Alerts (occlusion)";
|
|
272
276
|
ref :>> parentWorkflow = wfRespondToTherapyAlarm;
|
|
273
277
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
278
|
+
ref :>> baseScenario = osNominalTherapy;
|
|
274
279
|
ref :>> activities = oaRespondToOcclusion;
|
|
275
280
|
}
|
|
276
|
-
|
|
281
|
+
action osAirInLine : OperativeScenario {
|
|
277
282
|
attribute :>> id = "OS-004";
|
|
278
283
|
attribute :>> name = "AirInLineDetected";
|
|
279
284
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
285
|
+
attribute :>> variationPoint = "air-in-line detected while nominal infusion is active";
|
|
280
286
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
281
287
|
attribute :>> preCondition = "therapy active; air bubble enters tubing";
|
|
282
288
|
attribute :>> postCondition = "infusion stopped before air reaches patient; alarm annunciated";
|
|
@@ -284,12 +290,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
284
290
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 Notification Requirements (REQ 59: Air embolism)";
|
|
285
291
|
ref :>> parentWorkflow = wfRespondToTherapyAlarm;
|
|
286
292
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
293
|
+
ref :>> baseScenario = osNominalTherapy;
|
|
287
294
|
ref :>> activities = oaRespondToAirInLine;
|
|
288
295
|
}
|
|
289
|
-
|
|
296
|
+
action osEmptyReservoir : OperativeScenario {
|
|
290
297
|
attribute :>> id = "OS-005";
|
|
291
298
|
attribute :>> name = "ReservoirEmptyDuringTherapy";
|
|
292
299
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
300
|
+
attribute :>> variationPoint = "reservoir-empty threshold reached during nominal therapy";
|
|
293
301
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
294
302
|
attribute :>> preCondition = "therapy active; reservoir volume reaches empty threshold";
|
|
295
303
|
attribute :>> postCondition = "infusion stopped, alarm raised, reservoir replaced";
|
|
@@ -297,12 +305,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
297
305
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 Notification Requirements (REQ 59: Empty Reservoir)";
|
|
298
306
|
ref :>> parentWorkflow = wfRespondToTherapyAlarm;
|
|
299
307
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
308
|
+
ref :>> baseScenario = osNominalTherapy;
|
|
300
309
|
ref :>> activities = oaReplaceEmptyReservoir;
|
|
301
310
|
}
|
|
302
|
-
|
|
311
|
+
action osPowerLoss : OperativeScenario {
|
|
303
312
|
attribute :>> id = "OS-006";
|
|
304
313
|
attribute :>> name = "MainsPowerLossAndRecovery";
|
|
305
314
|
attribute :>> variantKind = ScenarioVariantKind::recovery;
|
|
315
|
+
attribute :>> variationPoint = "mains supply lost during nominal therapy";
|
|
306
316
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
307
317
|
attribute :>> preCondition = "therapy active on mains power";
|
|
308
318
|
attribute :>> postCondition = "therapy continues on battery; prescription preserved across full power loss";
|
|
@@ -310,6 +320,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
310
320
|
attribute :>> sourceReference = "CITE-004: GIP Hazard Analysis v1.0 (2009), §2.4.3 Electrical Hazards (battery failure)";
|
|
311
321
|
ref :>> parentWorkflow = wfRespondToTherapyAlarm;
|
|
312
322
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
323
|
+
ref :>> baseScenario = osNominalTherapy;
|
|
313
324
|
ref :>> activities = oaRecoverAfterPowerLoss;
|
|
314
325
|
}
|
|
315
326
|
connection : Realizes connect realizing ::> osNominalTherapy to realized ::> ucDeliverPcaTherapy;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_physical {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_realization_physical::*;
|
|
@@ -41,7 +41,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_physical {
|
|
|
41
41
|
attribute :>> name = "ServiceMaintenancePort";
|
|
42
42
|
attribute :>> portKind = InterfaceKind::api;
|
|
43
43
|
attribute :>> connectorType = "covered UART/USB service connector";
|
|
44
|
-
attribute :>> direction = DirectionKind::
|
|
44
|
+
attribute :>> direction = DirectionKind::inputOutput;
|
|
45
45
|
}
|
|
46
46
|
part portMainsInlet : PhysicalPort {
|
|
47
47
|
attribute :>> id = "PP-005";
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_system {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_architecture_functional_functions::*;
|
|
5
|
-
private import
|
|
5
|
+
private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
|
|
6
6
|
private import memo_architecture_operational_scenarios::*;
|
|
7
7
|
private import memo_core_enumerations::*;
|
|
8
|
+
private import memo_architecture_operational_structure::*;
|
|
9
|
+
private import memo_architecture_operational_use_cases::*;
|
|
10
|
+
private import memo_core_common::*;
|
|
8
11
|
|
|
9
12
|
part gpcaMission : Mission {
|
|
10
13
|
attribute :>> id = "MSN-001";
|
|
@@ -21,68 +24,69 @@ package memo_examples_gpca_pump_model_catalog_gpca_system {
|
|
|
21
24
|
attribute :>> id = "FC-001";
|
|
22
25
|
attribute :>> name = "PatientBolusChain";
|
|
23
26
|
attribute :>> flowCategory = FunctionalFlowKind::nominal;
|
|
24
|
-
ref :>> startFunction = fnAcquireSensors;
|
|
25
|
-
ref :>> endFunction = fnCommandPump;
|
|
26
27
|
attribute :>> endToEndLatencyBudgetMs = "100";
|
|
27
28
|
attribute :>> safetyRelevant = true;
|
|
28
29
|
attribute :>> securityRelevant = false;
|
|
29
30
|
attribute :>> description = "Bolus button press through lockout/max-dose check to pump actuation and logging.";
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
action fcsBolusSense : FunctionalFlowStep {
|
|
32
33
|
attribute :>> id = "FCS-001"; attribute :>> name = "SenseBolusRequest";
|
|
33
|
-
|
|
34
|
+
ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddBolusRequest;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
+
action fcsBolusValidate : FunctionalFlowStep {
|
|
36
37
|
attribute :>> id = "FCS-002"; attribute :>> name = "CheckLockoutAndMaxDose";
|
|
37
|
-
|
|
38
|
+
ref :>> function = fnEnforceLimits; ref :>> exchangedItem = ddPrescription;
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
+
action fcsBolusCommand : FunctionalFlowStep {
|
|
40
41
|
attribute :>> id = "FCS-003"; attribute :>> name = "CommandBolusFlow";
|
|
41
|
-
|
|
42
|
+
ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdFlowCommand;
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
action fcsBolusActuate : FunctionalFlowStep {
|
|
44
45
|
attribute :>> id = "FCS-004"; attribute :>> name = "ActuatePumpMotor";
|
|
45
|
-
|
|
46
|
+
ref :>> function = fnCommandPump; ref :>> exchangedItem = cdFlowCommand;
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
+
action fcsBolusLog : FunctionalFlowStep {
|
|
48
49
|
attribute :>> id = "FCS-005"; attribute :>> name = "LogBolusOutcome";
|
|
49
|
-
|
|
50
|
+
ref :>> function = fnLogEvents; ref :>> exchangedItem = ddEventRecord;
|
|
50
51
|
}
|
|
52
|
+
first fcsBolusSense then fcsBolusValidate;
|
|
53
|
+
first fcsBolusValidate then fcsBolusCommand;
|
|
54
|
+
first fcsBolusCommand then fcsBolusActuate;
|
|
55
|
+
first fcsBolusActuate then fcsBolusLog;
|
|
51
56
|
|
|
52
57
|
part fcAlarmStop : FunctionalFlow {
|
|
53
58
|
attribute :>> id = "FC-002";
|
|
54
59
|
attribute :>> name = "AlarmDetectionToSafeStateChain";
|
|
55
60
|
attribute :>> flowCategory = FunctionalFlowKind::alarm;
|
|
56
|
-
ref :>> startFunction = fnAcquireSensors;
|
|
57
|
-
ref :>> endFunction = fnAnnunciate;
|
|
58
61
|
attribute :>> endToEndLatencyBudgetMs = "20";
|
|
59
62
|
attribute :>> safetyRelevant = true;
|
|
60
63
|
attribute :>> securityRelevant = false;
|
|
61
64
|
attribute :>> description = "Sensor condition through alarm evaluation to same-step transition to PAUSED (KVO flow, REQ 43) and annunciation.";
|
|
62
65
|
}
|
|
63
|
-
|
|
66
|
+
action fcsAlarmSense : FunctionalFlowStep {
|
|
64
67
|
attribute :>> id = "FCS-006"; attribute :>> name = "SenseAlarmCondition";
|
|
65
|
-
|
|
68
|
+
ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddSensorVector;
|
|
66
69
|
}
|
|
67
|
-
|
|
70
|
+
action fcsAlarmEvaluate : FunctionalFlowStep {
|
|
68
71
|
attribute :>> id = "FCS-007"; attribute :>> name = "EvaluateAlarmCondition";
|
|
69
|
-
|
|
72
|
+
ref :>> function = fnMonitorAlarm; ref :>> exchangedItem = ddSensorVector;
|
|
70
73
|
}
|
|
71
|
-
|
|
74
|
+
action fcsAlarmStopInfusion : FunctionalFlowStep {
|
|
72
75
|
attribute :>> id = "FCS-008"; attribute :>> name = "LimitFlowToKvoSameStep";
|
|
73
|
-
|
|
76
|
+
ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdAlarmSignal;
|
|
74
77
|
}
|
|
75
|
-
|
|
78
|
+
action fcsAlarmAnnunciate : FunctionalFlowStep {
|
|
76
79
|
attribute :>> id = "FCS-009"; attribute :>> name = "AnnunciateAudibleVisual";
|
|
77
|
-
|
|
80
|
+
ref :>> function = fnAnnunciate; ref :>> exchangedItem = cdAlarmSignal;
|
|
78
81
|
}
|
|
82
|
+
first fcsAlarmSense then fcsAlarmEvaluate;
|
|
83
|
+
first fcsAlarmEvaluate then fcsAlarmStopInfusion;
|
|
84
|
+
first fcsAlarmStopInfusion then fcsAlarmAnnunciate;
|
|
79
85
|
|
|
80
86
|
part fcStartup : FunctionalFlow {
|
|
81
87
|
attribute :>> id = "FC-003";
|
|
82
88
|
attribute :>> name = "PowerOnSelfTestChain";
|
|
83
89
|
attribute :>> flowCategory = FunctionalFlowKind::startup;
|
|
84
|
-
ref :>> startFunction = fnManagePower;
|
|
85
|
-
ref :>> endFunction = fnPresentStatus;
|
|
86
90
|
attribute :>> endToEndLatencyBudgetMs = "5000";
|
|
87
91
|
attribute :>> safetyRelevant = true;
|
|
88
92
|
attribute :>> securityRelevant = false;
|
|
@@ -90,22 +94,22 @@ package memo_examples_gpca_pump_model_catalog_gpca_system {
|
|
|
90
94
|
}
|
|
91
95
|
|
|
92
96
|
// ── System scenarios ────────────────────────────────────────
|
|
93
|
-
|
|
97
|
+
action ssBolusDuringBasal : FunctionalScenario {
|
|
94
98
|
attribute :>> id = "SS-001";
|
|
95
99
|
attribute :>> name = "PatientBolusDuringBasal";
|
|
96
100
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
97
101
|
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
98
|
-
attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
|
|
99
102
|
attribute :>> preCondition = "BASAL mode active; no REQ 25 ignore condition holds";
|
|
100
103
|
attribute :>> postCondition = "PATIENT_BOLUS mode entered, bolus delivered, return to BASAL";
|
|
101
104
|
}
|
|
102
|
-
|
|
105
|
+
action ssAlarmPause : FunctionalScenario {
|
|
103
106
|
attribute :>> id = "SS-002";
|
|
104
107
|
attribute :>> name = "InhibitingNotificationPausesInfusion";
|
|
105
108
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
109
|
+
attribute :>> variationPoint = "an infusion-inhibiting notification interrupts active therapy";
|
|
106
110
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
107
|
-
attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
|
|
108
111
|
attribute :>> preCondition = "any ACTIVE therapy mode; infusion-inhibiting notification detected (REQ 59)";
|
|
109
112
|
attribute :>> postCondition = "PAUSED mode entered in same execution step at FlowRate_kvo_hd keep-vein-open flow; notification annunciated per REQ 59";
|
|
113
|
+
ref :>> baseScenario = ssBolusDuringBasal;
|
|
110
114
|
}
|
|
111
115
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_gpca_trace {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_core_relationships::*;
|
|
@@ -7,28 +7,32 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
|
|
|
7
7
|
private import memo_architecture_operational_activities::*;
|
|
8
8
|
private import memo_architecture_operational_structure::*;
|
|
9
9
|
private import memo_architecture_functional_functions::*;
|
|
10
|
-
private import
|
|
11
|
-
private import
|
|
12
|
-
private import
|
|
13
|
-
private import
|
|
14
|
-
private import
|
|
15
|
-
private import
|
|
16
|
-
private import
|
|
17
|
-
private import
|
|
18
|
-
private import
|
|
19
|
-
private import
|
|
20
|
-
private import
|
|
21
|
-
private import
|
|
22
|
-
private import
|
|
23
|
-
private import
|
|
24
|
-
private import
|
|
25
|
-
private import
|
|
26
|
-
private import
|
|
27
|
-
private import
|
|
28
|
-
private import
|
|
29
|
-
private import
|
|
30
|
-
private import
|
|
31
|
-
private import
|
|
10
|
+
private import memo_examples_gpca_pump_gpca_context::*;
|
|
11
|
+
private import memo_examples_gpca_pump_gpca_operational::*;
|
|
12
|
+
private import memo_examples_gpca_pump_gpca_system::*;
|
|
13
|
+
private import memo_examples_gpca_pump_gpca_requirements::*;
|
|
14
|
+
private import memo_examples_gpca_pump_gpca_architecture::*;
|
|
15
|
+
private import memo_examples_gpca_pump_gpca_physical::*;
|
|
16
|
+
private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
|
|
17
|
+
private import memo_examples_gpca_pump_gpca_behavior_modes::*;
|
|
18
|
+
private import memo_examples_gpca_pump_gpca_interfaces::*;
|
|
19
|
+
private import memo_examples_gpca_pump_gpca_risk::*;
|
|
20
|
+
private import memo_examples_gpca_pump_gpca_analysis::*;
|
|
21
|
+
private import memo_examples_gpca_pump_gpca_verification::*;
|
|
22
|
+
private import memo_examples_gpca_pump_viewpoints_logical_views_document_architecture_description_view::*;
|
|
23
|
+
private import memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view::*;
|
|
24
|
+
private import memo_examples_gpca_pump_viewpoints_requirements_views_document_dhf_index_view::*;
|
|
25
|
+
private import memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_view::*;
|
|
26
|
+
private import memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view::*;
|
|
27
|
+
private import memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view::*;
|
|
28
|
+
private import memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_threat_model_view::*;
|
|
29
|
+
private import memo_examples_gpca_pump_viewpoints_usability_views_document_usability_view::*;
|
|
30
|
+
private import memo_examples_gpca_pump_viewpoints_verification_views_document_vv_view::*;
|
|
31
|
+
private import memo_examples_gpca_pump_gpca_formal_behavior::*;
|
|
32
|
+
private import memo_architecture_operational_context_stakeholders::*;
|
|
33
|
+
private import memo_architecture_operational_use_cases::*;
|
|
34
|
+
private import memo_architecture_operational_workflows::*;
|
|
35
|
+
private import memo_architecture_realization_deployment::*;
|
|
32
36
|
|
|
33
37
|
// ── System context interactions (context view) ──────────────
|
|
34
38
|
connection : InteractsWith connect contextParticipant ::> actorPatient to target ::> entityGpcaPump;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// GPCA project identity and method binding.
|
|
2
|
+
//
|
|
3
|
+
// This file is the project's native entrypoint. It imports the methodology it
|
|
4
|
+
// selects and states the selection as a typed SysML reference — no YAML field
|
|
5
|
+
// participates in the choice.
|
|
6
|
+
package memo_examples_gpca_pump_project {
|
|
7
|
+
private import ScalarValues::*;
|
|
8
|
+
|
|
9
|
+
private import memo_methodology_core::*;
|
|
10
|
+
private import memo_core_enumerations::*;
|
|
11
|
+
private import memo_examples_gpca_pump_methodology_gpca_profiles::*;
|
|
12
|
+
|
|
13
|
+
part gpcaProjectBinding : ProjectMethodBinding {
|
|
14
|
+
attribute :>> id = "PMB-GPCA-001";
|
|
15
|
+
attribute :>> name = "GPCAProjectMethodBinding";
|
|
16
|
+
attribute :>> projectName = "GPCA Infusion Pump";
|
|
17
|
+
ref :>> selectedMethodology = gpcaMethodDefinition;
|
|
18
|
+
// The project adds nothing to the methodology's selection.
|
|
19
|
+
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// context viewpoint.
|
|
2
|
+
//
|
|
3
|
+
// This project does not define its own viewpoint here; it binds the reusable
|
|
4
|
+
// MEMO viewpoint that frames these concerns. The views it governs sit beneath
|
|
5
|
+
// `views/`.
|
|
6
|
+
package memo_examples_gpca_pump_viewpoints_context {
|
|
7
|
+
public import memo_viewpoints_context_context_viewpoint::*;
|
|
8
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_viewpoints_context_views_context_system_context_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
@@ -14,13 +14,13 @@ package memo_examples_gpca_pump_model_views_context_system_context_view {
|
|
|
14
14
|
private import memo_core_enumerations::*;
|
|
15
15
|
|
|
16
16
|
view gpcaSystemContextView : MemoDiagramView {
|
|
17
|
-
expose
|
|
17
|
+
expose memo_examples_gpca_pump_viewpoints_context_views_context_system_context_view::*;
|
|
18
18
|
attribute depth = 2;
|
|
19
19
|
attribute :>> id = "VIEW-CTX-101";
|
|
20
20
|
attribute :>> name = "GPCA_SystemContextView";
|
|
21
21
|
attribute :>> title = "GPCA System Context View";
|
|
22
22
|
attribute :>> shortDescription = "Actors, use contexts, and external entities at the GPCA system boundary.";
|
|
23
|
-
attribute :>>
|
|
23
|
+
attribute :>> description = "Shows the CriSys Fig 2.1 boundary: patient, clinician, prescription, drug reservoir, needle, hospital pharmacy database, and hospital environment around the pump, with directional data flows, physical drug-path connections, and the intended use anchoring the boundary.";
|
|
24
24
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
25
25
|
attribute :>> presentationKind = (PresentationKind::blockDiagram);
|
|
26
26
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// cybersecurity viewpoint.
|
|
2
|
+
//
|
|
3
|
+
// This project does not define its own viewpoint here; it binds the reusable
|
|
4
|
+
// MEMO viewpoint that frames these concerns. The views it governs sit beneath
|
|
5
|
+
// `views/`.
|
|
6
|
+
package memo_examples_gpca_pump_viewpoints_cybersecurity {
|
|
7
|
+
public import memo_viewpoints_cybersecurity_cybersecurity_viewpoint::*;
|
|
8
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cybersecurity_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
@@ -15,13 +15,13 @@ package memo_examples_gpca_pump_model_views_cybersecurity_cybersecurity_view {
|
|
|
15
15
|
private import memo_core_enumerations::*;
|
|
16
16
|
|
|
17
17
|
view gpcaCybersecurityView : MemoDiagramView {
|
|
18
|
-
expose
|
|
18
|
+
expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cybersecurity_view::*;
|
|
19
19
|
attribute depth = 2;
|
|
20
20
|
attribute :>> id = "VIEW-CYB-001";
|
|
21
21
|
attribute :>> name = "GPCA_CybersecurityView";
|
|
22
22
|
attribute :>> title = "GPCA Cybersecurity View";
|
|
23
23
|
attribute :>> shortDescription = "Shows GPCA assets, trust boundaries, threats, vulnerabilities, and mitigations.";
|
|
24
|
-
attribute :>>
|
|
24
|
+
attribute :>> description = "Product-specific cybersecurity view intended for secure product development and cross-reference into cybersecurity risk documentation.";
|
|
25
25
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
26
26
|
attribute :>> presentationKind = (PresentationKind::custom);
|
|
27
27
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
3
|
|
|
4
4
|
private import memo_viewpoints_definitions::*;
|
|
5
|
-
private import
|
|
5
|
+
private import memo_viewpoints_cybersecurity_views_cybersecurity_assessment_view::*;
|
|
6
6
|
private import memo_viewpoints_cybersecurity_cybersecurity_viewpoint::*;
|
|
7
7
|
private import memo_core_enumerations::*;
|
|
8
8
|
|
|
9
9
|
view cyberAssessmentView : MemoCybersecurityAssessmentView {
|
|
10
|
-
expose
|
|
10
|
+
expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view::*;
|
|
11
11
|
attribute :>> id = "DOC-003";
|
|
12
12
|
attribute :>> name = "GPCAMemoCybersecurityAssessmentView";
|
|
13
13
|
attribute :>> title = "GPCA Cybersecurity Assessment View";
|
|
14
14
|
attribute :>> shortDescription = "Cybersecurity risk-assessment-oriented document view for GPCA.";
|
|
15
|
-
attribute :>>
|
|
15
|
+
attribute :>> description = "Captures GPCA cyber risks, mitigations, security requirements, verification, and safety/privacy traceability for cybersecurity assessment records.";
|
|
16
16
|
attribute :>> version = "0.1";
|
|
17
17
|
attribute :>> lifecycleState = LifecycleStateKind::development;
|
|
18
18
|
attribute :>> marketScope = "generic";
|