@memoarchitect/ontology 0.13.2 → 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 -357
- 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 -90
- 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 +459 -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 +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
- 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 +25 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
- package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
- 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 +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- 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 +2 -3
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
- 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 +2 -3
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +2 -3
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- 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/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
|
@@ -29,49 +29,49 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
29
29
|
// Use the canonical MEMO operational system type—never a sample-local
|
|
30
30
|
// placeholder—so ontology-driven Explorer grouping remains authoritative.
|
|
31
31
|
part opCareSystem : OperationalEntity {
|
|
32
|
-
|
|
32
|
+
@MemoIdentity { :>> label = "PCA Care System"; }
|
|
33
33
|
attribute :>> entityKind = OperationalEntityKind::device;
|
|
34
34
|
attribute :>> responsibility = "System of interest for this context view.";
|
|
35
35
|
part opClinicalTeam : User {
|
|
36
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
36
|
+
attribute :>> actorKind = ActorKind::clinician; @MemoIdentity { :>> label = "Clinical Team"; }
|
|
37
37
|
part opRolePhysician : User {
|
|
38
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
38
|
+
attribute :>> actorKind = ActorKind::clinician; @MemoIdentity { :>> label = "Physician"; } }
|
|
39
39
|
part opRoleNurse : User {
|
|
40
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
40
|
+
attribute :>> actorKind = ActorKind::clinician; @MemoIdentity { :>> label = "Nurse"; } }
|
|
41
41
|
part opRoleBiomed : User {
|
|
42
|
-
attribute :>> actorKind = ActorKind::technician;
|
|
42
|
+
attribute :>> actorKind = ActorKind::technician; @MemoIdentity { :>> label = "Biomed Tech"; } }
|
|
43
43
|
}
|
|
44
44
|
part opPatientGroup : User {
|
|
45
|
-
attribute :>> actorKind = ActorKind::patient;
|
|
45
|
+
attribute :>> actorKind = ActorKind::patient; @MemoIdentity { :>> label = "Patient Interaction"; }
|
|
46
46
|
part opRolePatient : User {
|
|
47
|
-
attribute :>> actorKind = ActorKind::patient;
|
|
47
|
+
attribute :>> actorKind = ActorKind::patient; @MemoIdentity { :>> label = "Patient"; } }
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
action opSetupFlow : OperativeAction {
|
|
52
|
-
action opPrescribe : OpPrescribeTherapy {
|
|
53
|
-
action opVerify : OpVerifyPrescription {
|
|
52
|
+
action opPrescribe : OpPrescribeTherapy {@MemoIdentity { :>> label = "Prescribe Therapy"; } }
|
|
53
|
+
action opVerify : OpVerifyPrescription {@MemoIdentity { :>> label = "Verify Prescription"; } }
|
|
54
54
|
fork opForkPrep;
|
|
55
|
-
action opPrime : OperativeAction {
|
|
56
|
-
action opSelfTest : OperativeAction {
|
|
55
|
+
action opPrime : OperativeAction {@MemoIdentity { :>> label = "Prime Pump & Load Reservoir"; } }
|
|
56
|
+
action opSelfTest : OperativeAction {@MemoIdentity { :>> label = "Run Device Self-Test"; } }
|
|
57
57
|
join opJoinPrep;
|
|
58
|
-
action opProgram : OperativeAction {
|
|
59
|
-
action opConnect : OperativeAction {
|
|
60
|
-
action opStart : OperativeAction {
|
|
58
|
+
action opProgram : OperativeAction {@MemoIdentity { :>> label = "Program Pump Parameters"; } }
|
|
59
|
+
action opConnect : OperativeAction {@MemoIdentity { :>> label = "Connect to Patient"; } }
|
|
60
|
+
action opStart : OperativeAction {@MemoIdentity { :>> label = "Start Infusion"; } }
|
|
61
61
|
action opAdminister : OperativeAction {
|
|
62
|
-
|
|
63
|
-
action opRequestBolus : OpRequestBolus {
|
|
64
|
-
action opCheckLockout : OpCheckLockout {
|
|
65
|
-
action opDeliverDose : OperativeAction {
|
|
66
|
-
action opLogEvent : OperativeAction {
|
|
67
|
-
flow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
|
|
62
|
+
@MemoIdentity { :>> label = "Administer PCA Therapy"; }
|
|
63
|
+
action opRequestBolus : OpRequestBolus {@MemoIdentity { :>> label = "Request Bolus"; } }
|
|
64
|
+
action opCheckLockout : OpCheckLockout {@MemoIdentity { :>> label = "Check Lockout"; } }
|
|
65
|
+
action opDeliverDose : OperativeAction {@MemoIdentity { :>> label = "Deliver Dose"; } }
|
|
66
|
+
action opLogEvent : OperativeAction {@MemoIdentity { :>> label = "Log Dose Event"; } }
|
|
67
|
+
flow opBolusRequestFlow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
|
|
68
68
|
first start then opRequestBolus;
|
|
69
69
|
first opRequestBolus then opCheckLockout;
|
|
70
70
|
first opCheckLockout then opDeliverDose;
|
|
71
71
|
first opDeliverDose then opLogEvent;
|
|
72
72
|
first opLogEvent then done;
|
|
73
73
|
}
|
|
74
|
-
flow of OpPrescription from opPrescribe.prescription to opVerify.prescription;
|
|
74
|
+
flow opPrescriptionFlow of OpPrescription from opPrescribe.prescription to opVerify.prescription;
|
|
75
75
|
first start then opPrescribe;
|
|
76
76
|
first opPrescribe then opVerify;
|
|
77
77
|
first opVerify then opForkPrep;
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml
CHANGED
|
@@ -17,39 +17,39 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_package_
|
|
|
17
17
|
|
|
18
18
|
package presentation {
|
|
19
19
|
part dashboardUI : LogicalComponent {
|
|
20
|
-
|
|
20
|
+
@MemoIdentity { :>> label = "Dashboard UI"; }
|
|
21
21
|
out port apiCall : DataPort { out item payload : MemoItem; }
|
|
22
22
|
}
|
|
23
23
|
part settingsUI : LogicalComponent {
|
|
24
|
-
|
|
24
|
+
@MemoIdentity { :>> label = "Settings UI"; }
|
|
25
25
|
out port configRequest : DataPort { out item payload : MemoItem; }
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
package domain {
|
|
30
30
|
part therapyEngine : LogicalComponent {
|
|
31
|
-
|
|
31
|
+
@MemoIdentity { :>> label = "Therapy Engine"; }
|
|
32
32
|
in port incomingRequest : DataPort { in item payload : MemoItem; }
|
|
33
33
|
out port statusUpdate : DataPort { out item payload : MemoItem; }
|
|
34
34
|
}
|
|
35
35
|
part alarmManager : LogicalComponent {
|
|
36
|
-
|
|
36
|
+
@MemoIdentity { :>> label = "Alarm Manager"; }
|
|
37
37
|
in port trigger : DataPort { in item payload : MemoItem; }
|
|
38
38
|
}
|
|
39
39
|
part configService : LogicalComponent {
|
|
40
|
-
|
|
40
|
+
@MemoIdentity { :>> label = "Configuration Service"; }
|
|
41
41
|
in port configIn : DataPort { in item payload : MemoItem; }
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
package infrastructure {
|
|
46
46
|
part dataStore : LogicalComponent {
|
|
47
|
-
|
|
47
|
+
@MemoIdentity { :>> label = "Data Store"; }
|
|
48
48
|
in port writePort : DataPort { in item payload : MemoItem; }
|
|
49
49
|
out port readPort : DataPort { out item payload : MemoItem; }
|
|
50
50
|
}
|
|
51
51
|
part networkAdapter : LogicalComponent {
|
|
52
|
-
|
|
52
|
+
@MemoIdentity { :>> label = "Network Adapter"; }
|
|
53
53
|
inout port netIO : DataPort { inout item payload : MemoItem; }
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -16,28 +16,28 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
|
|
|
16
16
|
private import memo_core_common::MemoIdentity;
|
|
17
17
|
requirement needSafeTherapy : Need {
|
|
18
18
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
19
|
-
@MemoIdentity { :>> providedId = "NEED-1";
|
|
19
|
+
@MemoIdentity { :>> providedId = "NEED-1"; :>> label = "SafeTherapy"; }
|
|
20
20
|
attribute :>> statement = "The device shall support safe patient-controlled infusion therapy.";
|
|
21
21
|
}
|
|
22
22
|
requirement needTimelyAlarms : Need {
|
|
23
23
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
24
|
-
@MemoIdentity { :>> providedId = "NEED-2";
|
|
24
|
+
@MemoIdentity { :>> providedId = "NEED-2"; :>> label = "TimelyAlarms"; }
|
|
25
25
|
attribute :>> statement = "Clinicians shall be notified promptly of any condition that endangers therapy.";
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
requirement reqDoseLimit : Requirement {
|
|
29
29
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
30
|
-
@MemoIdentity { :>> providedId = "REQ-1";
|
|
30
|
+
@MemoIdentity { :>> providedId = "REQ-1"; :>> label = "DoseLimitEnforcement"; }
|
|
31
31
|
attribute :>> statement = "The pump shall not deliver more than the prescribed maximum dose in any one-hour window.";
|
|
32
32
|
}
|
|
33
33
|
requirement reqOcclusionAlarm : Requirement {
|
|
34
34
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
35
|
-
@MemoIdentity { :>> providedId = "REQ-2";
|
|
35
|
+
@MemoIdentity { :>> providedId = "REQ-2"; :>> label = "OcclusionAlarm"; }
|
|
36
36
|
attribute :>> statement = "The pump shall raise an alarm within two seconds of detecting a downstream occlusion.";
|
|
37
37
|
}
|
|
38
38
|
requirement reqAlarmLoudness : Requirement {
|
|
39
39
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
40
|
-
@MemoIdentity { :>> providedId = "REQ-3";
|
|
40
|
+
@MemoIdentity { :>> providedId = "REQ-3"; :>> label = "AlarmLoudness"; }
|
|
41
41
|
attribute :>> statement = "An active alarm shall be audible at 65 dBA at one metre.";
|
|
42
42
|
}
|
|
43
43
|
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_sequence_view {
|
|
2
2
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
3
3
|
// Sequence sample (sequence view kind, `seq` diagram type). A FunctionalFlow
|
|
4
|
-
// owns an ordered chain of
|
|
4
|
+
// owns an ordered chain of nested actions (its steps); each step is `allocate`d to
|
|
5
5
|
// the lifeline (an actor or component) that performs it, and the sequence
|
|
6
6
|
// template lays lifelines out as columns with one row per step in
|
|
7
7
|
// declaration order.
|
|
@@ -19,9 +19,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_sequence
|
|
|
19
19
|
private import memo_core_common::MemoIdentity;
|
|
20
20
|
|
|
21
21
|
// Lifelines — the actor and components each step is allocated to.
|
|
22
|
-
part clinician : User {
|
|
23
|
-
part pumpController : LogicalComponent {
|
|
24
|
-
part pumpMechanism : LogicalComponent {
|
|
22
|
+
part clinician : User { }
|
|
23
|
+
part pumpController : LogicalComponent {@MemoIdentity { :>> label = "Pump Controller"; } }
|
|
24
|
+
part pumpMechanism : LogicalComponent {@MemoIdentity { :>> label = "Pump Mechanism"; } }
|
|
25
25
|
|
|
26
26
|
// Combined fragment definitions — referenced by steps' `fragment` attribute.
|
|
27
27
|
part monitorLoop {
|
|
@@ -36,22 +36,22 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_sequence
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
action startInfusion : FunctionalFlow {
|
|
39
|
-
|
|
39
|
+
@MemoIdentity { :>> label = "Start Infusion"; }
|
|
40
40
|
|
|
41
|
-
action stepRequestStart
|
|
42
|
-
action stepValidate
|
|
43
|
-
action stepCommandMotor
|
|
44
|
-
action stepConfirm
|
|
41
|
+
action stepRequestStart {@MemoIdentity { :>> label = "Request start infusion"; } }
|
|
42
|
+
action stepValidate {@MemoIdentity { :>> label = "Validate prescribed rate"; } }
|
|
43
|
+
action stepCommandMotor {@MemoIdentity { :>> label = "Command motor drive"; } }
|
|
44
|
+
action stepConfirm {@MemoIdentity { :>> label = "Confirm delivery started"; } }
|
|
45
45
|
|
|
46
46
|
// Steps inside the monitoring loop fragment
|
|
47
|
-
action stepReadSensor
|
|
48
|
-
action stepCheckVitals
|
|
47
|
+
action stepReadSensor {@MemoIdentity { :>> label = "Read sensor data"; } attribute stepOrder = "5"; attribute fragment = "monitorLoop"; }
|
|
48
|
+
action stepCheckVitals {@MemoIdentity { :>> label = "Check vital signs"; } attribute stepOrder = "6"; attribute fragment = "monitorLoop"; }
|
|
49
49
|
|
|
50
50
|
// Steps inside the alt (error-handling) fragment
|
|
51
|
-
action stepRetryDelivery
|
|
52
|
-
action stepAlertUser
|
|
51
|
+
action stepRetryDelivery {@MemoIdentity { :>> label = "Retry delivery"; } attribute stepOrder = "7"; attribute fragment = "errorHandling"; attribute fragmentOperand = "1"; }
|
|
52
|
+
action stepAlertUser {@MemoIdentity { :>> label = "Alert user"; } attribute stepOrder = "8"; attribute fragment = "errorHandling"; attribute fragmentOperand = "2"; }
|
|
53
53
|
|
|
54
|
-
action stepNotify
|
|
54
|
+
action stepNotify {@MemoIdentity { :>> label = "Notify delivery started"; } attribute stepOrder = "9"; }
|
|
55
55
|
|
|
56
56
|
first start then stepRequestStart;
|
|
57
57
|
first stepRequestStart then stepValidate;
|
|
@@ -14,52 +14,51 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_tr
|
|
|
14
14
|
|
|
15
15
|
private import memo_core_common::MemoIdentity;
|
|
16
16
|
state pumpModes : StateMachine {
|
|
17
|
-
|
|
17
|
+
@MemoIdentity { :>> label = "Pump Operating Modes"; }
|
|
18
18
|
|
|
19
|
-
state idle : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
19
|
+
state idle : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
20
20
|
|
|
21
21
|
// Infusing is a composite state: its substates show what the pump is
|
|
22
22
|
// doing while it is infusing, and containment is the nesting itself —
|
|
23
23
|
// not a parallel set of Composes edges.
|
|
24
24
|
state infusing : MemoState {
|
|
25
25
|
attribute :>> stateKind = StateKind::mode;
|
|
26
|
-
attribute :>> name = "Infusing";
|
|
27
26
|
|
|
28
|
-
state priming : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
29
|
-
state delivering : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
30
|
-
state holding : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
27
|
+
state priming : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
28
|
+
state delivering : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
29
|
+
state holding : MemoState { attribute :>> stateKind = StateKind::mode; @MemoIdentity { :>> label = "Holding (KVO)"; } }
|
|
31
30
|
|
|
32
31
|
transition tPrimed first priming then delivering {
|
|
33
|
-
@
|
|
32
|
+
@MemoIdentity { :>> label = "primed"; } @TransitionRecord { :>> trigger = "primeComplete"; }
|
|
34
33
|
}
|
|
35
34
|
transition tKvo first delivering then holding {
|
|
36
|
-
@
|
|
35
|
+
@MemoIdentity { :>> label = "keepVeinOpen"; } @TransitionRecord { :>> trigger = "doseComplete"; }
|
|
37
36
|
}
|
|
38
37
|
transition tResumeDose first holding then delivering {
|
|
39
|
-
@
|
|
38
|
+
@MemoIdentity { :>> label = "resumeDose"; } @TransitionRecord { :>> trigger = "doseScheduled"; }
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
state paused : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
44
|
-
state alarm : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
42
|
+
state paused : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
43
|
+
state alarm : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
45
44
|
|
|
46
45
|
transition tStart first idle then infusing {
|
|
47
|
-
@
|
|
46
|
+
@MemoIdentity { :>> label = "start"; } @TransitionRecord { :>> trigger = "startInfusion"; }
|
|
48
47
|
}
|
|
49
48
|
transition tPause first infusing then paused {
|
|
50
|
-
@
|
|
49
|
+
@MemoIdentity { :>> label = "pause"; } @TransitionRecord { :>> trigger = "pauseRequested"; }
|
|
51
50
|
}
|
|
52
51
|
transition tResume first paused then infusing {
|
|
53
|
-
@
|
|
52
|
+
@MemoIdentity { :>> label = "resume"; } @TransitionRecord { :>> trigger = "resumeRequested"; }
|
|
54
53
|
}
|
|
55
54
|
transition tFault first infusing then alarm {
|
|
56
|
-
@
|
|
55
|
+
@MemoIdentity { :>> label = "fault"; } @TransitionRecord { :>> trigger = "occlusionDetected"; }
|
|
57
56
|
}
|
|
58
57
|
transition tRecover first alarm then idle {
|
|
59
|
-
@
|
|
58
|
+
@MemoIdentity { :>> label = "acknowledge"; } @TransitionRecord { :>> trigger = "alarmCleared"; }
|
|
60
59
|
}
|
|
61
60
|
transition tStop first infusing then idle {
|
|
62
|
-
@
|
|
61
|
+
@MemoIdentity { :>> label = "stop"; } @TransitionRecord { :>> trigger = "stopInfusion"; }
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml
CHANGED
|
@@ -12,24 +12,24 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_vie
|
|
|
12
12
|
private import memo_core_common::*;
|
|
13
13
|
private import memo_core_common::MemoIdentity;
|
|
14
14
|
part rootA : HardwareAssembly {
|
|
15
|
-
|
|
15
|
+
@MemoIdentity { :>> label = "Root A"; }
|
|
16
16
|
part branchA1 : HardwareAssembly {
|
|
17
|
-
|
|
17
|
+
@MemoIdentity { :>> label = "Branch A.1"; }
|
|
18
18
|
part leafA11 : HardwareAssembly {
|
|
19
|
-
|
|
19
|
+
@MemoIdentity { :>> label = "Leaf A.1.1"; }
|
|
20
20
|
attribute :>> partNumber = "PN-1";
|
|
21
21
|
}
|
|
22
|
-
part leafA12 : HardwareAssembly {
|
|
22
|
+
part leafA12 : HardwareAssembly {@MemoIdentity { :>> label = "Leaf A.1.2"; } }
|
|
23
23
|
}
|
|
24
24
|
part branchA2 : HardwareAssembly {
|
|
25
|
-
|
|
26
|
-
part leafA21 : HardwareAssembly {
|
|
25
|
+
@MemoIdentity { :>> label = "Branch A.2 With A Deliberately Long Label"; }
|
|
26
|
+
part leafA21 : HardwareAssembly {@MemoIdentity { :>> label = "Leaf A.2.1"; } }
|
|
27
27
|
}
|
|
28
28
|
part rootB : HardwareAssembly {
|
|
29
|
-
|
|
29
|
+
@MemoIdentity { :>> label = "Root B"; }
|
|
30
30
|
part branchB1 : HardwareAssembly {
|
|
31
|
-
|
|
32
|
-
part leafB11 : HardwareAssembly {
|
|
31
|
+
@MemoIdentity { :>> label = "Branch B.1"; }
|
|
32
|
+
part leafB11 : HardwareAssembly {@MemoIdentity { :>> label = "Leaf B.1.1"; } }
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml
CHANGED
|
@@ -22,32 +22,28 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
22
22
|
// Product-neutral fixture for the UML-style use-case presentation.
|
|
23
23
|
part patient : User {
|
|
24
24
|
attribute :>> actorKind = ActorKind::patient;
|
|
25
|
-
attribute :>> name = "Patient";
|
|
26
25
|
}
|
|
27
26
|
part clinician : User {
|
|
28
27
|
attribute :>> actorKind = ActorKind::clinician;
|
|
29
|
-
attribute :>> name = "Clinician";
|
|
30
28
|
}
|
|
31
29
|
part serviceTechnician : User {
|
|
32
30
|
attribute :>> actorKind = ActorKind::technician;
|
|
33
|
-
|
|
31
|
+
@MemoIdentity { :>> label = "Service Technician"; }
|
|
34
32
|
}
|
|
35
33
|
part nursingStaff : User {
|
|
36
34
|
attribute :>> actorKind = ActorKind::clinician;
|
|
37
|
-
|
|
35
|
+
@MemoIdentity { :>> label = "Nursing Staff"; }
|
|
38
36
|
}
|
|
39
37
|
|
|
40
38
|
use case reviewStatus : UseCase {
|
|
41
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-1"; }
|
|
42
|
-
attribute :>> name = "Review Device Status";
|
|
39
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-1"; :>> label = "Review Device Status"; }
|
|
43
40
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
44
41
|
include validateTherapySettings;
|
|
45
42
|
subject supportingSystem;
|
|
46
43
|
actor patientActor = patient;
|
|
47
44
|
}
|
|
48
45
|
use case configureTherapy : UseCase {
|
|
49
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-2"; }
|
|
50
|
-
attribute :>> name = "Configure Therapy";
|
|
46
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-2"; :>> label = "Configure Therapy"; }
|
|
51
47
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
52
48
|
include reviewStatus;
|
|
53
49
|
subject supportingSystem;
|
|
@@ -55,23 +51,20 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
55
51
|
actor patientActor = patient;
|
|
56
52
|
}
|
|
57
53
|
use case maintainDevice : UseCase {
|
|
58
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-3"; }
|
|
59
|
-
attribute :>> name = "Maintain Device";
|
|
54
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-3"; :>> label = "Maintain Device"; }
|
|
60
55
|
attribute :>> useCaseKind = UseCaseKind::service;
|
|
61
56
|
subject supportingSystem;
|
|
62
57
|
actor serviceTechnicianActor = serviceTechnician;
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
use case documentTreatment : UseCase {
|
|
66
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-4"; }
|
|
67
|
-
attribute :>> name = "Document Treatment";
|
|
61
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-4"; :>> label = "Document Treatment"; }
|
|
68
62
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
69
63
|
}
|
|
70
64
|
|
|
71
65
|
// L2 child of Review Device Status: makes L0 → L1 → L2 selectable.
|
|
72
66
|
use case validateTherapySettings : UseCase {
|
|
73
|
-
@MemoIdentity { :>> providedId = "UC-SAMPLE-5"; }
|
|
74
|
-
attribute :>> name = "Validate Therapy Settings";
|
|
67
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-5"; :>> label = "Validate Therapy Settings"; }
|
|
75
68
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
76
69
|
subject supportingSystem;
|
|
77
70
|
actor clinicianActor = clinician;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Sysml Diagram Samples —
|
|
1
|
+
// Sysml Diagram Samples — 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.
|
|
@@ -19,6 +19,7 @@ package memo_examples_sysml_diagram_samples_project {
|
|
|
19
19
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_functional_flow_view::*;
|
|
20
20
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_grid_view::*;
|
|
21
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::*;
|
|
22
23
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operational_behaviour_view::*;
|
|
23
24
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_package_view::*;
|
|
24
25
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view::*;
|
|
@@ -30,10 +31,9 @@ package memo_examples_sysml_diagram_samples_project {
|
|
|
30
31
|
|
|
31
32
|
private import memo_core_common::*;
|
|
32
33
|
private import memo_core_common::MemoIdentity;
|
|
33
|
-
part projectBinding :
|
|
34
|
-
@MemoIdentity { :>> providedId = "PMB-DIAGRAM-SAMPLES-1"; }
|
|
35
|
-
attribute :>>
|
|
36
|
-
attribute :>> projectName = "Sysml Diagram Samples";
|
|
34
|
+
part projectBinding : ModelMethodBinding {
|
|
35
|
+
@MemoIdentity { :>> providedId = "PMB-DIAGRAM-SAMPLES-1"; :>> label = "SysmlDiagramSamplesModelMethodBinding"; }
|
|
36
|
+
attribute :>> modelName = "Sysml Diagram Samples";
|
|
37
37
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
38
38
|
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
39
39
|
}
|
|
@@ -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
|
}
|