@memoarchitect/ontology 0.12.1 → 0.15.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 +5 -3
- package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
- package/examples/connected-patient-monitor/memo.package.yaml +3 -1
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
- package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
- package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/functional-logical-physical/memo.identity.yaml +28 -0
- package/examples/functional-logical-physical/memo.package.yaml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
- package/examples/gpca-pump/analysis/Samples/README.md +15 -9
- package/examples/gpca-pump/analysis/memo_model.py +243 -0
- package/examples/gpca-pump/memo.identity.yaml +521 -26
- package/examples/gpca-pump/memo.package.yaml +3 -1
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -358
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -91
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
- package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
- package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/multidimensional-layers/memo.package.yaml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
- package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
- package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
- package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/reusable-instrument/memo.package.yaml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
- package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/robot-cell-family/README.md +34 -0
- package/examples/robot-cell-family/memo.identity.yaml +142 -0
- package/examples/robot-cell-family/memo.package.yaml +7 -0
- package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
- package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
- package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
- package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
- package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
- package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
- package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
- package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
- package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
- package/examples/robot-platform/memo.package.yaml +3 -0
- package/examples/robot-platform/model/platform.sysml +15 -0
- package/examples/ros-mobile-robot/README.md +5 -4
- package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
- package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
- package/examples/software-only-medical-device/memo.package.yaml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
- package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
- package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
- package/examples/surgical-robot/memo.package.yaml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
- package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/sysml-diagram-samples/README.md +1 -0
- package/examples/sysml-diagram-samples/memo.identity.yaml +675 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +7 -29
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +12 -36
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +13 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +388 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +27 -36
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +8 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +17 -65
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +23 -32
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +9 -22
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +7 -22
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +18 -34
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +2 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +18 -42
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +11 -24
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +9 -36
- package/examples/sysml-diagram-samples/model/methodology/project.sysml +40 -0
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
- package/examples/temperature-alarm/memo.identity.yaml +6 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
- package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/ui-screen-regions/memo.identity.yaml +33 -0
- package/examples/ui-screen-regions/memo.package.yaml +3 -1
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
- package/extensions/README.md +65 -16
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/aadl_extension.sysml +5 -2
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
- package/extensions/clinical/memo.package.yaml +1 -1
- package/extensions/clinical/src/clinical_extension.sysml +2 -0
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/messaging_extension.sysml +2 -2
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/ros_extension.sysml +25 -24
- package/extensions/template/memo.package.yaml +1 -1
- package/extensions/template/model/extension.sysml +25 -0
- package/memo.manifest.yaml +1 -7
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +6 -4
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +9 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
- package/src/architecture/functional/functions/memo_functions.sysml +45 -31
- package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
- package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
- package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
- package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
- package/src/architecture/operational/structure/memo_operational.sysml +5 -2
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
- package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
- package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
- package/src/architecture/variability/memo_variability.sysml +87 -0
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
- package/src/artifacts/standards/cfr_21_820.sysml +12 -24
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
- package/src/artifacts/standards/iec_60601_1.sysml +16 -32
- package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
- package/src/artifacts/standards/iec_60812.sysml +4 -8
- package/src/artifacts/standards/iec_62304.sysml +607 -47
- package/src/artifacts/standards/iec_62366_1.sysml +12 -24
- package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
- package/src/artifacts/standards/iso_13485.sysml +12 -24
- package/src/artifacts/standards/iso_14971.sysml +118 -20
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
- package/src/artifacts/templates/dhf/system/sad.md +1 -1
- package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
- package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
- package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
- package/src/assurance/safety_risk/memo_risk.sysml +39 -1
- package/src/core/common/memo_common.sysml +51 -68
- package/src/core/enumerations/memo_enumerations.sysml +93 -9
- package/src/core/relationships/memo_relationships.sysml +17 -11
- package/src/core/relationships/memo_workspace_membership.sysml +284 -0
- package/src/core/semantics/semantics.sysml +58 -0
- package/src/core/terminology/terminology.sysml +7 -0
- package/src/memo_namespaces.sysml +6 -0
- package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
- package/src/methodology/core/memo_core.sysml +85 -29
- package/src/methodology/profiles/memo_profiles.sysml +217 -61
- package/src/methodology/workflow/memo_workflow.sysml +28 -0
- package/src/rules/closure/closure_rules.sysml +250 -4
- package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
- package/src/rules/ontology/ontology_invariants.sysml +288 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -0
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -5
- package/src/viewpoints/context/context_viewpoint.sysml +4 -5
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -5
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +3 -5
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -5
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
- package/src/viewpoints/logical/logical_viewpoint.sysml +4 -5
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -5
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +4 -5
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
- package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -5
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +4 -5
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +4 -5
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/{definitions → stakeholders_concerns}/memo_stakeholders_concerns.sysml +45 -36
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -5
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +4 -5
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -5
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
- package/templates/default/memo.package.yaml +6 -1
- package/templates/default/model/catalog/architecture/system.sysml +7 -3
- package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +0 -26
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
- package/extensions/container/src/methodology/container_methodology.sysml +0 -19
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
- package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
- package/extensions/template/src/extension.sysml +0 -39
- package/templates/connected-device/memo.package.yaml +0 -13
- package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/connected-device/model/catalog/project.sysml +0 -30
- package/templates/connected-device/package.json +0 -8
- package/templates/connected-device/syside.toml +0 -13
- package/templates/infusion-pump/memo.package.yaml +0 -13
- package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
- package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/infusion-pump/model/catalog/project.sysml +0 -30
- package/templates/infusion-pump/package.json +0 -8
- package/templates/infusion-pump/syside.toml +0 -13
- package/templates/monitoring-device/memo.package.yaml +0 -13
- package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/monitoring-device/model/catalog/project.sysml +0 -30
- package/templates/monitoring-device/package.json +0 -8
- package/templates/monitoring-device/syside.toml +0 -13
- package/templates/samd/memo.package.yaml +0 -13
- package/templates/samd/model/catalog/architecture/system.sysml +0 -5
- package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/samd/model/catalog/project.sysml +0 -30
- package/templates/samd/package.json +0 -8
- package/templates/samd/syside.toml +0 -13
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
2
3
|
private import ScalarValues::*;
|
|
3
4
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
4
5
|
|
|
@@ -11,39 +12,25 @@ package diagram_samples {
|
|
|
11
12
|
private import memo_core_common::*;
|
|
12
13
|
private import memo_core_common::MemoIdentity;
|
|
13
14
|
part rootA : HardwareAssembly {
|
|
14
|
-
|
|
15
|
+
@MemoIdentity { :>> label = "Root A"; }
|
|
15
16
|
part branchA1 : HardwareAssembly {
|
|
16
|
-
|
|
17
|
+
@MemoIdentity { :>> label = "Branch A.1"; }
|
|
17
18
|
part leafA11 : HardwareAssembly {
|
|
18
|
-
|
|
19
|
+
@MemoIdentity { :>> label = "Leaf A.1.1"; }
|
|
19
20
|
attribute :>> partNumber = "PN-1";
|
|
20
21
|
}
|
|
21
|
-
part leafA12 : HardwareAssembly {
|
|
22
|
+
part leafA12 : HardwareAssembly {@MemoIdentity { :>> label = "Leaf A.1.2"; } }
|
|
22
23
|
}
|
|
23
24
|
part branchA2 : HardwareAssembly {
|
|
24
|
-
|
|
25
|
-
part leafA21 : HardwareAssembly {
|
|
25
|
+
@MemoIdentity { :>> label = "Branch A.2 With A Deliberately Long Label"; }
|
|
26
|
+
part leafA21 : HardwareAssembly {@MemoIdentity { :>> label = "Leaf A.2.1"; } }
|
|
26
27
|
}
|
|
27
28
|
part rootB : HardwareAssembly {
|
|
28
|
-
|
|
29
|
+
@MemoIdentity { :>> label = "Root B"; }
|
|
29
30
|
part branchB1 : HardwareAssembly {
|
|
30
|
-
|
|
31
|
-
part leafB11 : HardwareAssembly {
|
|
31
|
+
@MemoIdentity { :>> label = "Branch B.1"; }
|
|
32
|
+
part leafB11 : HardwareAssembly {@MemoIdentity { :>> label = "Leaf B.1.1"; } }
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
view blockDecomposition : MemoDiagramView {
|
|
37
|
-
expose rootA::**;
|
|
38
|
-
attribute depth = 2;
|
|
39
|
-
@MemoIdentity { :>> shortDescription = "Block decomposition tree — hardware assemblies with varied branch depths."; }
|
|
40
|
-
attribute :>> viewKind = DiagramViewKind::general;
|
|
41
|
-
attribute :>> diagramType = "bdd";
|
|
42
|
-
ref :>> viewpointDefinition = treeViewpoint;
|
|
43
|
-
attribute :>> layoutHint = "tree";
|
|
44
|
-
attribute :>> styleHint = "expanded:rootA,rootB,branchA1,branchB1";
|
|
45
|
-
part :>> selectionQuery {
|
|
46
|
-
attribute :>> includeRelationshipKinds = ("Composes");
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
36
|
}
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
2
3
|
private import ScalarValues::*;
|
|
3
4
|
private import memo_architecture_operational_context_actors::*;
|
|
4
5
|
private import memo_architecture_operational_use_cases::*;
|
|
@@ -21,32 +22,28 @@ package diagram_samples {
|
|
|
21
22
|
// Product-neutral fixture for the UML-style use-case presentation.
|
|
22
23
|
part patient : User {
|
|
23
24
|
attribute :>> actorKind = ActorKind::patient;
|
|
24
|
-
attribute :>> name = "Patient";
|
|
25
25
|
}
|
|
26
26
|
part clinician : User {
|
|
27
27
|
attribute :>> actorKind = ActorKind::clinician;
|
|
28
|
-
attribute :>> name = "Clinician";
|
|
29
28
|
}
|
|
30
29
|
part serviceTechnician : User {
|
|
31
30
|
attribute :>> actorKind = ActorKind::technician;
|
|
32
|
-
|
|
31
|
+
@MemoIdentity { :>> label = "Service Technician"; }
|
|
33
32
|
}
|
|
34
33
|
part nursingStaff : User {
|
|
35
34
|
attribute :>> actorKind = ActorKind::clinician;
|
|
36
|
-
|
|
35
|
+
@MemoIdentity { :>> label = "Nursing Staff"; }
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
use case reviewStatus : UseCase {
|
|
40
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-1"; }
|
|
41
|
-
attribute :>> name = "Review Device Status";
|
|
39
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-1"; :>> label = "Review Device Status"; }
|
|
42
40
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
43
41
|
include validateTherapySettings;
|
|
44
42
|
subject supportingSystem;
|
|
45
43
|
actor patientActor = patient;
|
|
46
44
|
}
|
|
47
45
|
use case configureTherapy : UseCase {
|
|
48
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-2"; }
|
|
49
|
-
attribute :>> name = "Configure Therapy";
|
|
46
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-2"; :>> label = "Configure Therapy"; }
|
|
50
47
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
51
48
|
include reviewStatus;
|
|
52
49
|
subject supportingSystem;
|
|
@@ -54,23 +51,20 @@ package diagram_samples {
|
|
|
54
51
|
actor patientActor = patient;
|
|
55
52
|
}
|
|
56
53
|
use case maintainDevice : UseCase {
|
|
57
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-3"; }
|
|
58
|
-
attribute :>> name = "Maintain Device";
|
|
54
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-3"; :>> label = "Maintain Device"; }
|
|
59
55
|
attribute :>> useCaseKind = UseCaseKind::service;
|
|
60
56
|
subject supportingSystem;
|
|
61
57
|
actor serviceTechnicianActor = serviceTechnician;
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
use case documentTreatment : UseCase {
|
|
65
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-4"; }
|
|
66
|
-
attribute :>> name = "Document Treatment";
|
|
61
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-4"; :>> label = "Document Treatment"; }
|
|
67
62
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
68
63
|
}
|
|
69
64
|
|
|
70
65
|
// L2 child of Review Device Status: makes L0 → L1 → L2 selectable.
|
|
71
66
|
use case validateTherapySettings : UseCase {
|
|
72
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-5"; }
|
|
73
|
-
attribute :>> name = "Validate Therapy Settings";
|
|
67
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-5"; :>> label = "Validate Therapy Settings"; }
|
|
74
68
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
75
69
|
subject supportingSystem;
|
|
76
70
|
actor clinicianActor = clinician;
|
|
@@ -89,25 +83,4 @@ package diagram_samples {
|
|
|
89
83
|
// Status — the general case is browsing status; configuring therapy is a
|
|
90
84
|
// more specific variant.
|
|
91
85
|
connection : Specialization connect configureTherapy to reviewStatus;
|
|
92
|
-
|
|
93
|
-
view deviceUseCases : MemoDiagramView {
|
|
94
|
-
expose patient;
|
|
95
|
-
expose clinician;
|
|
96
|
-
expose serviceTechnician;
|
|
97
|
-
expose nursingStaff;
|
|
98
|
-
expose reviewStatus;
|
|
99
|
-
expose configureTherapy;
|
|
100
|
-
expose maintainDevice;
|
|
101
|
-
expose documentTreatment;
|
|
102
|
-
expose validateTherapySettings;
|
|
103
|
-
@MemoIdentity { :>> shortDescription = "Actors outside a device boundary with include, extend, generalization, hierarchy-level, and orthogonal-routing presentation."; }
|
|
104
|
-
attribute :>> viewKind = DiagramViewKind::general;
|
|
105
|
-
attribute :>> diagramType = "ucd";
|
|
106
|
-
ref :>> viewpointDefinition = useCaseViewpoint;
|
|
107
|
-
part :>> selectionQuery {
|
|
108
|
-
attribute :>> includeElementKinds = ("User", "UseCase");
|
|
109
|
-
attribute :>> includeRelationshipKinds = ("ParticipatesIn", "IncludesStep", "Extends", "Specialization");
|
|
110
|
-
}
|
|
111
|
-
attribute :>> layoutHint = "usecase:level=all;edge=rounded";
|
|
112
|
-
}
|
|
113
86
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Sysml Diagram Samples — model identity and method binding.
|
|
2
|
+
//
|
|
3
|
+
// The native entrypoint. The imports name what this project contains and the
|
|
4
|
+
// binding names the methodology it is governed by. No YAML file participates.
|
|
5
|
+
package memo_examples_sysml_diagram_samples_project {
|
|
6
|
+
private import ScalarValues::*;
|
|
7
|
+
|
|
8
|
+
private import memo_core_enumerations::*;
|
|
9
|
+
private import memo_methodology_core::*;
|
|
10
|
+
private import memo_methodology_profiles::*;
|
|
11
|
+
|
|
12
|
+
// The project's own content, imported so the catalog is one reachable
|
|
13
|
+
// closure from a single entrypoint.
|
|
14
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
15
|
+
private import diagram_samples::*;
|
|
16
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_flow_view::*;
|
|
17
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_browser_view::*;
|
|
18
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_view::*;
|
|
19
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_functional_flow_view::*;
|
|
20
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_grid_view::*;
|
|
21
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_interconnection_view::*;
|
|
22
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_drill_down_view::*;
|
|
23
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operational_behaviour_view::*;
|
|
24
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_package_view::*;
|
|
25
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view::*;
|
|
26
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_sequence_view::*;
|
|
27
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard_activity_view::*;
|
|
28
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_transition_view::*;
|
|
29
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_view::*;
|
|
30
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case_view::*;
|
|
31
|
+
|
|
32
|
+
private import memo_core_common::*;
|
|
33
|
+
private import memo_core_common::MemoIdentity;
|
|
34
|
+
part projectBinding : ModelMethodBinding {
|
|
35
|
+
@MemoIdentity { :>> providedId = "PMB-DIAGRAM-SAMPLES-1"; :>> label = "SysmlDiagramSamplesModelMethodBinding"; }
|
|
36
|
+
attribute :>> modelName = "Sysml Diagram Samples";
|
|
37
|
+
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
38
|
+
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -25,7 +25,7 @@ package activity_example {
|
|
|
25
25
|
|
|
26
26
|
succession first start then receiveOrder;
|
|
27
27
|
succession first receiveOrder then validateOrder;
|
|
28
|
-
flow of Order from receiveOrder.order to validateOrder.order;
|
|
28
|
+
flow orderFlow of Order from receiveOrder.order to validateOrder.order;
|
|
29
29
|
succession first validateOrder then routeOrder;
|
|
30
30
|
succession first routeOrder if true then processOrder;
|
|
31
31
|
succession first routeOrder if false then rejectOrder;
|
|
@@ -8,6 +8,9 @@ elements:
|
|
|
8
8
|
"memo_examples_temperature_alarm::actAcknowledgeAlarm":
|
|
9
9
|
shortId: "OPR-1"
|
|
10
10
|
uuid: "ea2b4f6a-a25b-5c93-84a2-2c149dc5b870"
|
|
11
|
+
"memo_examples_temperature_alarm::actAcknowledgeAlarm::taskAckAlarm":
|
|
12
|
+
shortId: "OPR-2"
|
|
13
|
+
uuid: "2a25bec5-50f6-5bef-ad59-750b277515db"
|
|
11
14
|
"memo_examples_temperature_alarm::chMonitor":
|
|
12
15
|
shortId: "LGC-1"
|
|
13
16
|
uuid: "0f804fdc-4ead-5205-a108-91ce7e4b4d04"
|
|
@@ -50,6 +53,9 @@ elements:
|
|
|
50
53
|
"memo_examples_temperature_alarm::uvAckTask":
|
|
51
54
|
shortId: "MMX-3"
|
|
52
55
|
uuid: "d268c19e-41da-5657-ac04-2f9bcdc29713"
|
|
56
|
+
"memo_examples_temperature_alarm::valAckTask":
|
|
57
|
+
shortId: "VLD-1"
|
|
58
|
+
uuid: "0cf87665-ade5-5bb2-9fd5-081e946aeb07"
|
|
53
59
|
"memo_examples_temperature_alarm::vcAlarmLatency":
|
|
54
60
|
shortId: "VRF-1"
|
|
55
61
|
uuid: "e4853bd5-0672-5040-af70-0c7f9177ee7a"
|
|
@@ -27,64 +27,70 @@ package memo_examples_temperature_alarm {
|
|
|
27
27
|
|
|
28
28
|
private import memo_core_common::MemoIdentity;
|
|
29
29
|
// ── Operational intent ──────────────────────────────────────
|
|
30
|
+
// --8<-- [start:operational]
|
|
30
31
|
part icuNurse : User {
|
|
31
32
|
attribute :>> actorKind = ActorKind::clinician;
|
|
32
|
-
@MemoIdentity { :>> providedId = "TA-USR-001"; }
|
|
33
|
+
@MemoIdentity { :>> providedId = "TA-USR-001"; }
|
|
33
34
|
}
|
|
34
35
|
use case ucMonitorTemp : UseCase {
|
|
35
36
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
36
|
-
@MemoIdentity { :>> providedId = "TA-UC-001"; }
|
|
37
|
-
attribute :>> name = "MonitorPatientTemperature";
|
|
37
|
+
@MemoIdentity { :>> providedId = "TA-UC-001"; :>> label = "MonitorPatientTemperature"; }
|
|
38
38
|
attribute :>> goalStatement = "Continuously monitor core temperature and be alerted when it leaves the safe range.";
|
|
39
39
|
subject supportingSystem;
|
|
40
40
|
actor icuNurseInitiator = icuNurse;
|
|
41
41
|
}
|
|
42
42
|
action actAcknowledgeAlarm : OperativeAction {
|
|
43
|
-
@MemoIdentity { :>> providedId = "TA-ACT-001";
|
|
43
|
+
@MemoIdentity { :>> providedId = "TA-ACT-001"; :>> label = "ReviewAndAcknowledgeAlarm"; }
|
|
44
44
|
attribute :>> criticality = CriticalityKind::high;
|
|
45
45
|
|
|
46
46
|
action taskAckAlarm : OperativeAction {
|
|
47
47
|
attribute :>> criticality = CriticalityKind::high;
|
|
48
|
-
@MemoIdentity { :>> providedId = "TA-TASK-001";
|
|
48
|
+
@MemoIdentity { :>> providedId = "TA-TASK-001"; :>> label = "AcknowledgeTemperatureAlarm"; }
|
|
49
49
|
attribute :>> taskGoal = "recognize, assess, and acknowledge the alarm";
|
|
50
50
|
attribute :>> potentialHarm = "delayed intervention for hypo-/hyperthermia";
|
|
51
51
|
attribute :>> severityIfFailed = SeverityKind::serious;
|
|
52
|
+
// --8<-- [end:operational]
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
// ── Functional and logical slices ───────────────────────────
|
|
57
|
+
// --8<-- [start:functional]
|
|
56
58
|
action fnDetectDeviation : SystemFunction {
|
|
57
|
-
@MemoIdentity { :>> providedId = "TA-FN-001";
|
|
59
|
+
@MemoIdentity { :>> providedId = "TA-FN-001"; :>> label = "DetectTemperatureDeviation"; }
|
|
58
60
|
attribute :>> criticality = CriticalityKind::high;
|
|
59
61
|
// This function is owned by the functional architecture layer (its
|
|
60
62
|
// package). Its safety and verification character are typed
|
|
61
63
|
// relationships to assurance-owned elements, not tags on the function.
|
|
64
|
+
// --8<-- [end:functional]
|
|
62
65
|
}
|
|
66
|
+
// --8<-- [start:logical]
|
|
63
67
|
part chMonitor : LogicalComponent {
|
|
64
|
-
@MemoIdentity { :>> providedId = "TA-LC-001";
|
|
68
|
+
@MemoIdentity { :>> providedId = "TA-LC-001"; :>> label = "TemperatureMonitorChannel"; }
|
|
65
69
|
attribute :>> channelRole = ChannelRoleKind::monitor;
|
|
66
70
|
}
|
|
67
71
|
part chPrimary : LogicalComponent {
|
|
68
|
-
@MemoIdentity { :>> providedId = "TA-LC-002";
|
|
72
|
+
@MemoIdentity { :>> providedId = "TA-LC-002"; :>> label = "MeasurementChannel"; }
|
|
69
73
|
attribute :>> channelRole = ChannelRoleKind::primary;
|
|
70
74
|
}
|
|
71
75
|
connection : IndependentOf connect channel ::> chMonitor to otherChannel ::> chPrimary {
|
|
72
76
|
attribute :>> independenceBasis = "separate sensing element and power rail";
|
|
73
77
|
}
|
|
74
78
|
allocate fnDetectDeviation to chMonitor;
|
|
79
|
+
// --8<-- [end:logical]
|
|
75
80
|
// ── UI: alarm element and acknowledgement action ────────────
|
|
81
|
+
// --8<-- [start:implementation]
|
|
76
82
|
part uiBedside : UserInterface {
|
|
77
|
-
@MemoIdentity { :>> providedId = "TA-UI-001";
|
|
83
|
+
@MemoIdentity { :>> providedId = "TA-UI-001"; :>> label = "BedsideDisplay"; }
|
|
78
84
|
attribute :>> modality = "visual + audible";
|
|
79
85
|
}
|
|
80
86
|
part elAlarmBanner : UIElement {
|
|
81
|
-
@MemoIdentity { :>> providedId = "TA-EL-001";
|
|
87
|
+
@MemoIdentity { :>> providedId = "TA-EL-001"; :>> label = "TempAlarmBanner"; }
|
|
82
88
|
attribute :>> alarmPriority = NotificationPriorityKind::high;
|
|
83
89
|
attribute :>> annunciationModality = "flashing banner + tone";
|
|
84
90
|
attribute :>> silenceable = true;
|
|
85
91
|
}
|
|
86
92
|
action uiaAcknowledge : UIAction {
|
|
87
|
-
@MemoIdentity { :>> providedId = "TA-UIA-001";
|
|
93
|
+
@MemoIdentity { :>> providedId = "TA-UIA-001"; :>> label = "AcknowledgeAlarm"; }
|
|
88
94
|
attribute :>> intent = InteractionIntentKind::acknowledgement;
|
|
89
95
|
attribute :>> confirmationRequired = true;
|
|
90
96
|
perform fnDetectDeviation;
|
|
@@ -93,36 +99,42 @@ package memo_examples_temperature_alarm {
|
|
|
93
99
|
// Was `Supports`, a zero-attribute duplicate of both `Enables` and the
|
|
94
100
|
// native `dependency`.
|
|
95
101
|
dependency from uiBedside to actAcknowledgeAlarm::taskAckAlarm;
|
|
102
|
+
// --8<-- [end:implementation]
|
|
96
103
|
|
|
97
104
|
// ── Risk chain with use error ───────────────────────────────
|
|
105
|
+
// --8<-- [start:human-factors]
|
|
98
106
|
part ueSilenceAndForget : UseError {
|
|
99
|
-
@MemoIdentity { :>> providedId = "TA-UE-001";
|
|
107
|
+
@MemoIdentity { :>> providedId = "TA-UE-001"; :>> label = "SilenceWithoutAssessment"; }
|
|
100
108
|
attribute :>> errorCategory = UseErrorCategoryKind::memoryRecall;
|
|
101
109
|
attribute :>> severity = SeverityKind::serious;
|
|
102
110
|
}
|
|
111
|
+
// --8<-- [start:safety-risk]
|
|
103
112
|
item hzUndetectedDeviation : Hazard {
|
|
104
|
-
@MemoIdentity { :>> providedId = "TA-HZ-001";
|
|
113
|
+
@MemoIdentity { :>> providedId = "TA-HZ-001"; :>> label = "UndetectedTemperatureDeviation"; }
|
|
105
114
|
attribute :>> hazardType = HazardTypeKind::informationError;
|
|
106
115
|
attribute :>> severity = SeverityKind::serious;
|
|
107
116
|
attribute :>> foreseeable = true;
|
|
108
117
|
}
|
|
109
118
|
part rcReAnnunciate : RiskControlMeasure {
|
|
110
|
-
@MemoIdentity { :>> providedId = "TA-RC-001";
|
|
119
|
+
@MemoIdentity { :>> providedId = "TA-RC-001"; :>> label = "AutoReAnnunciationAfterSilence"; }
|
|
111
120
|
attribute :>> controlKind = RiskControlKind::alarm;
|
|
112
121
|
attribute :>> implementationKind = RiskControlImplementationKind::softwareDesign;
|
|
113
122
|
}
|
|
114
123
|
connection : CommitsUseError connect task ::> actAcknowledgeAlarm.taskAckAlarm to useError ::> ueSilenceAndForget;
|
|
115
|
-
|
|
116
|
-
connection :
|
|
124
|
+
// --8<-- [end:human-factors]
|
|
125
|
+
connection : Causes connect cause ::> ueSilenceAndForget to effect ::> hzUndetectedDeviation { attribute :>> causeKind = CauseKind::useErrorLeadsToHazard; }
|
|
126
|
+
connection : Mitigates connect control ::> rcReAnnunciate to mitigatedElement ::> hzUndetectedDeviation { attribute :>> mitigationKind = MitigationKind::hazard; }
|
|
117
127
|
connection : ControlImplementedBy connect riskControl ::> rcReAnnunciate to implementingElement ::> elAlarmBanner;
|
|
128
|
+
// --8<-- [end:safety-risk]
|
|
118
129
|
|
|
119
130
|
// ── Verification, validation, evidence ──────────────────────
|
|
131
|
+
// --8<-- [start:verification-validation]
|
|
120
132
|
action vsAlarmLatency : OperativeScenario {
|
|
121
|
-
@MemoIdentity { :>> providedId = "TA-VS-001";
|
|
133
|
+
@MemoIdentity { :>> providedId = "TA-VS-001"; :>> label = "AlarmLatencyScenario"; }
|
|
122
134
|
attribute :>> pathSummary = "Induce out-of-range temperature; measure detection-to-annunciation latency.";
|
|
123
135
|
}
|
|
124
136
|
verification vcAlarmLatency : VerificationCase {
|
|
125
|
-
@MemoIdentity { :>> providedId = "TA-VC-001";
|
|
137
|
+
@MemoIdentity { :>> providedId = "TA-VC-001"; :>> label = "VerifyAlarmLatency"; }
|
|
126
138
|
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
127
139
|
attribute :>> acceptanceCriteria = "annunciation within 2 s of sustained deviation";
|
|
128
140
|
|
|
@@ -134,16 +146,26 @@ package memo_examples_temperature_alarm {
|
|
|
134
146
|
}
|
|
135
147
|
part uvAckTask : MemoEvidence {
|
|
136
148
|
attribute :>> evidenceKind = EvidenceKind::usabilityValidation;
|
|
137
|
-
@MemoIdentity { :>> providedId = "TA-UV-001";
|
|
149
|
+
@MemoIdentity { :>> providedId = "TA-UV-001"; :>> label = "SummativeAlarmAcknowledgement"; }
|
|
138
150
|
attribute :>> participantProfile = "15 ICU nurses, representative shift conditions";
|
|
139
151
|
attribute :>> participantCount = 15;
|
|
140
152
|
attribute :>> acceptanceCriteria = "no critical-task failures; all alarms assessed before silencing";
|
|
141
153
|
}
|
|
142
154
|
part evLatencyReport : MemoEvidence {
|
|
143
155
|
attribute :>> evidenceKind = EvidenceKind::evidence;
|
|
144
|
-
@MemoIdentity { :>> providedId = "TA-EV-001";
|
|
156
|
+
@MemoIdentity { :>> providedId = "TA-EV-001"; :>> label = "AlarmLatencyTestReport"; }
|
|
145
157
|
attribute :>> evidenceType = "test report";
|
|
146
158
|
}
|
|
147
|
-
|
|
159
|
+
// The summative test is the validation case; uvAckTask is the record it
|
|
160
|
+
// produced. Validates ends at a case, never at the evidence itself.
|
|
161
|
+
verification valAckTask : ValidationCase {
|
|
162
|
+
@MemoIdentity { :>> providedId = "TA-VAL-001"; :>> label = "SummativeAlarmAcknowledgementTest"; }
|
|
163
|
+
attribute :>> validationMethod = ValidationMethodKind::summativeUsabilityTest;
|
|
164
|
+
attribute :>> userParticipation = "15 ICU nurses, representative shift conditions";
|
|
165
|
+
attribute :>> acceptanceCriteria = "no critical-task failures; all alarms assessed before silencing";
|
|
166
|
+
}
|
|
167
|
+
connection : Validates connect validationTarget ::> actAcknowledgeAlarm.taskAckAlarm to validationCase ::> valAckTask;
|
|
168
|
+
connection : ProducesEvidence connect producer ::> valAckTask to producedEvidence ::> uvAckTask;
|
|
148
169
|
connection : ProducesEvidence connect producer ::> vcAlarmLatency to producedEvidence ::> evLatencyReport;
|
|
170
|
+
// --8<-- [end:verification-validation]
|
|
149
171
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Temperature Alarm —
|
|
1
|
+
// Temperature Alarm — model identity and method binding.
|
|
2
2
|
//
|
|
3
3
|
// The native entrypoint. The imports name what this project contains and the
|
|
4
4
|
// binding names the methodology it is governed by. No YAML file participates.
|
|
@@ -16,10 +16,9 @@ package memo_examples_temperature_alarm_project {
|
|
|
16
16
|
|
|
17
17
|
private import memo_core_common::*;
|
|
18
18
|
private import memo_core_common::MemoIdentity;
|
|
19
|
-
part projectBinding :
|
|
20
|
-
@MemoIdentity { :>> providedId = "PMB-TEMPERATURE-ALARM-001"; }
|
|
21
|
-
attribute :>>
|
|
22
|
-
attribute :>> projectName = "Temperature Alarm";
|
|
19
|
+
part projectBinding : ModelMethodBinding {
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-TEMPERATURE-ALARM-001"; :>> label = "TemperatureAlarmModelMethodBinding"; }
|
|
21
|
+
attribute :>> modelName = "Temperature Alarm";
|
|
23
22
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
24
23
|
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
25
24
|
}
|
|
@@ -8,6 +8,21 @@ elements:
|
|
|
8
8
|
"memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay":
|
|
9
9
|
shortId: "SYS-1"
|
|
10
10
|
uuid: "9b45772b-7d7d-53e2-97b6-f10d92dc10e4"
|
|
11
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnPresentBatteryStatus":
|
|
12
|
+
shortId: "SYS-2"
|
|
13
|
+
uuid: "96aa292d-dbbf-514d-be51-baa7c23b4a4b"
|
|
14
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnPresentDeliveryStatus":
|
|
15
|
+
shortId: "SYS-3"
|
|
16
|
+
uuid: "0b73c191-7803-58ab-a4d1-4630b3528825"
|
|
17
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnPresentLocalTime":
|
|
18
|
+
shortId: "SYS-4"
|
|
19
|
+
uuid: "daa13f3a-026a-5208-bbda-c6d4ef7f4684"
|
|
20
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnSetInfusionRate":
|
|
21
|
+
shortId: "SYS-5"
|
|
22
|
+
uuid: "84ed7035-7c68-51e5-bf83-bb64d76f2df4"
|
|
23
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay::fnValidateDrugSelection":
|
|
24
|
+
shortId: "SYS-6"
|
|
25
|
+
uuid: "710bc732-5946-52ab-a720-ad7284248936"
|
|
11
26
|
"memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentBatteryStatus":
|
|
12
27
|
shortId: "SYS-2"
|
|
13
28
|
uuid: "96aa292d-dbbf-514d-be51-baa7c23b4a4b"
|
|
@@ -35,12 +50,27 @@ elements:
|
|
|
35
50
|
"memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen":
|
|
36
51
|
shortId: "UIE-4"
|
|
37
52
|
uuid: "20084808-1df8-5082-a777-5630903a9d17"
|
|
53
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::elDrugSelectorRegion":
|
|
54
|
+
shortId: "UIE-3"
|
|
55
|
+
uuid: "d920531b-65e4-5b63-a450-fc5c3bd33646"
|
|
56
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::elDrugSelectorRegion::elDrugMenuExpanded":
|
|
57
|
+
shortId: "UIE-1"
|
|
58
|
+
uuid: "efcfbe2b-af48-51dc-81e2-e46c067bbf46"
|
|
59
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::elDrugSelectorRegion::elDrugSelectorClosed":
|
|
60
|
+
shortId: "UIE-2"
|
|
61
|
+
uuid: "7b27669f-d11c-5580-91cd-9353ef088458"
|
|
62
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen::uiElement12":
|
|
63
|
+
shortId: "UIE-7"
|
|
64
|
+
uuid: "1b7cc4c8-3e31-5ba8-b99b-5069491aeb0a"
|
|
38
65
|
"memo_examples_ui_screen_regions_architecture_implementation_ui::elRateConfirmDialog":
|
|
39
66
|
shortId: "UIE-5"
|
|
40
67
|
uuid: "5a7e1a4a-a1af-5294-817e-2dcf64f7717e"
|
|
41
68
|
"memo_examples_ui_screen_regions_architecture_implementation_ui::elSettingsScreen":
|
|
42
69
|
shortId: "UIE-6"
|
|
43
70
|
uuid: "61a7a5d8-ab25-5fc7-b41f-340ab47b7b56"
|
|
71
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elSettingsScreen::elRateConfirmDialog":
|
|
72
|
+
shortId: "UIE-5"
|
|
73
|
+
uuid: "5a7e1a4a-a1af-5294-817e-2dcf64f7717e"
|
|
44
74
|
"memo_examples_ui_screen_regions_architecture_implementation_ui::uiElement12":
|
|
45
75
|
shortId: "UIE-7"
|
|
46
76
|
uuid: "1b7cc4c8-3e31-5ba8-b99b-5069491aeb0a"
|
|
@@ -74,6 +104,9 @@ elements:
|
|
|
74
104
|
"memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarScope":
|
|
75
105
|
shortId: "MDL-3"
|
|
76
106
|
uuid: "b9b7b12d-f223-57ea-8d1b-da58b140b671"
|
|
107
|
+
"memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarScope::cmtStatusBarReply":
|
|
108
|
+
shortId: "MDL-2"
|
|
109
|
+
uuid: "d99e8642-f5e1-5d31-8cb0-174b25cd1249"
|
|
77
110
|
"memo_examples_ui_screen_regions_artifacts_reviews_notes::noteCaptureReview":
|
|
78
111
|
shortId: "MDL-4"
|
|
79
112
|
uuid: "0e6d1f04-2e80-52dd-90f3-4eeed99b5799"
|
|
@@ -19,43 +19,43 @@ package memo_examples_ui_screen_regions_architecture_functional_functions {
|
|
|
19
19
|
private import memo_core_common::*;
|
|
20
20
|
private import memo_core_common::MemoIdentity;
|
|
21
21
|
action fnManageInfusionDisplay : SystemFunction {
|
|
22
|
-
@MemoIdentity { :>> providedId = "UIR-FN-002";
|
|
22
|
+
@MemoIdentity { :>> providedId = "UIR-FN-002"; :>> label = "ManageInfusionDisplay"; }
|
|
23
23
|
@MemoIdentity { :>> shortDescription = "Coordinate the running-infusion display and its interactive regions."; }
|
|
24
|
-
|
|
24
|
+
doc /* Maintains the clinician-facing infusion state and delegates rate programming, drug selection, and status presentation to focused child functions. */
|
|
25
25
|
attribute :>> criticality = CriticalityKind::high;
|
|
26
26
|
|
|
27
27
|
action fnSetInfusionRate : SystemFunction {
|
|
28
|
-
@MemoIdentity { :>> providedId = "UIR-FN-001";
|
|
28
|
+
@MemoIdentity { :>> providedId = "UIR-FN-001"; :>> label = "SetInfusionRate"; }
|
|
29
29
|
@MemoIdentity { :>> shortDescription = "Apply a clinician-entered rate to the pump controller."; }
|
|
30
|
-
|
|
30
|
+
doc /* Validates a requested infusion rate against the drug library limits and the pump's mechanical range, then commits it to the controller as the active setpoint. */
|
|
31
31
|
attribute :>> criticality = CriticalityKind::high;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
action fnValidateDrugSelection : SystemFunction {
|
|
35
|
-
@MemoIdentity { :>> providedId = "UIR-FN-003";
|
|
35
|
+
@MemoIdentity { :>> providedId = "UIR-FN-003"; :>> label = "ValidateDrugSelection"; }
|
|
36
36
|
@MemoIdentity { :>> shortDescription = "Validate a selected drug and concentration against the active care-area library."; }
|
|
37
|
-
|
|
37
|
+
doc /* Accepts only a drug and concentration present in the active drug library, then supplies its dosing limits to rate validation. */
|
|
38
38
|
attribute :>> criticality = CriticalityKind::high;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
action fnPresentDeliveryStatus : SystemFunction {
|
|
42
|
-
@MemoIdentity { :>> providedId = "UIR-FN-004";
|
|
42
|
+
@MemoIdentity { :>> providedId = "UIR-FN-004"; :>> label = "PresentDeliveryStatus"; }
|
|
43
43
|
@MemoIdentity { :>> shortDescription = "Present current rate and cumulative delivered volume."; }
|
|
44
|
-
|
|
44
|
+
doc /* Refreshes the rate and volume-delivered indicators from controller state at the specified display update interval. */
|
|
45
45
|
attribute :>> criticality = CriticalityKind::medium;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
action fnPresentLocalTime : SystemFunction {
|
|
49
|
-
@MemoIdentity { :>> providedId = "UIR-FN-005";
|
|
49
|
+
@MemoIdentity { :>> providedId = "UIR-FN-005"; :>> label = "PresentLocalTime"; }
|
|
50
50
|
@MemoIdentity { :>> shortDescription = "Read the synchronized clock and present local time."; }
|
|
51
|
-
|
|
51
|
+
doc /* Formats the device clock as local 24-hour time and refreshes the status-bar value once per second. */
|
|
52
52
|
attribute :>> criticality = CriticalityKind::medium;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
action fnPresentBatteryStatus : SystemFunction {
|
|
56
|
-
@MemoIdentity { :>> providedId = "UIR-FN-006";
|
|
56
|
+
@MemoIdentity { :>> providedId = "UIR-FN-006"; :>> label = "PresentBatteryStatus"; }
|
|
57
57
|
@MemoIdentity { :>> shortDescription = "Present battery state of charge and low-battery status."; }
|
|
58
|
-
|
|
58
|
+
doc /* Converts battery telemetry into percentage, icon state, and low-battery prominence for the running-infusion screen. */
|
|
59
59
|
attribute :>> criticality = CriticalityKind::medium;
|
|
60
60
|
}
|
|
61
61
|
|