@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
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_interconnection_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_context_use_context::*;
|
|
@@ -19,7 +20,7 @@ package diagram_samples {
|
|
|
19
20
|
// real containment, not a port-to-port `Composes` edge, which is what
|
|
20
21
|
// CR-ONT-65 used to forbid before nesting made the rule unnecessary.
|
|
21
22
|
part coffeeMachine : LogicalComponent {
|
|
22
|
-
|
|
23
|
+
@MemoIdentity { :>> label = "Coffee Machine"; }
|
|
23
24
|
in port mainsWaterIn : DataPort { in item payload : MemoItem; }
|
|
24
25
|
out port beverageOut : DataPort { out item payload : MemoItem; }
|
|
25
26
|
inout port serviceInterface : DataPort {
|
|
@@ -28,58 +29,56 @@ package diagram_samples {
|
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
part waterTank : LogicalComponent {
|
|
31
|
-
|
|
32
|
+
@MemoIdentity { :>> label = "Water Reservoir"; }
|
|
32
33
|
out port tankWaterOut : DataPort { out item payload : MemoItem; }
|
|
33
34
|
in port tankWaterIn : DataPort { in item payload : MemoItem; }
|
|
34
35
|
}
|
|
35
36
|
part heaterAssembly : LogicalComponent {
|
|
36
|
-
|
|
37
|
+
@MemoIdentity { :>> label = "Thermal Control Assembly"; }
|
|
37
38
|
in port heaterWaterIn : DataPort { in item payload : MemoItem; }
|
|
38
39
|
out port heatedWaterOut : DataPort { out item payload : MemoItem; }
|
|
39
40
|
|
|
40
41
|
part thermostat : LogicalComponent {
|
|
41
|
-
attribute :>> name = "Thermostat";
|
|
42
42
|
in port tempReadingIn : DataPort { in item payload : MemoItem; }
|
|
43
43
|
out port powerCommandOut : DataPort { out item payload : MemoItem; }
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
part heatingElement : LogicalComponent {
|
|
47
|
-
|
|
47
|
+
@MemoIdentity { :>> label = "Water Heating Element"; }
|
|
48
48
|
in port powerIn : DataPort { in item payload : MemoItem; }
|
|
49
49
|
out port heaterStatusOut : DataPort { out item payload : MemoItem; }
|
|
50
50
|
|
|
51
51
|
part resistiveCoil : LogicalComponent {
|
|
52
|
-
|
|
52
|
+
@MemoIdentity { :>> label = "Resistive Coil"; }
|
|
53
53
|
in port coilPowerIn : DataPort { in item payload : MemoItem; }
|
|
54
54
|
out port heatOut : DataPort { out item payload : MemoItem; }
|
|
55
55
|
}
|
|
56
56
|
part temperatureSensor : LogicalComponent {
|
|
57
|
-
|
|
57
|
+
@MemoIdentity { :>> label = "Temperature Sensor"; }
|
|
58
58
|
in port heatIn : DataPort { in item payload : MemoItem; }
|
|
59
59
|
out port sensorReadingOut : DataPort { out item payload : MemoItem; }
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
part brewGroup : LogicalComponent {
|
|
64
|
-
|
|
64
|
+
@MemoIdentity { :>> label = "Brew Group"; }
|
|
65
65
|
in port brewWaterIn : DataPort { in item payload : MemoItem; }
|
|
66
66
|
out port brewedCoffeeOut : DataPort { out item payload : MemoItem; }
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
part waterSupply : LogicalComponent {
|
|
70
|
-
|
|
70
|
+
@MemoIdentity { :>> label = "Water Supply"; }
|
|
71
71
|
out port supplyWaterOut : DataPort { out item payload : MemoItem; }
|
|
72
72
|
}
|
|
73
73
|
part cup : LogicalComponent {
|
|
74
|
-
attribute :>> name = "Cup";
|
|
75
74
|
in port cupBeverageIn : DataPort { in item payload : MemoItem; }
|
|
76
75
|
}
|
|
77
76
|
|
|
78
77
|
// Transport between two components: `out` to `in`, one item moving.
|
|
79
|
-
flow from waterSupply.supplyWaterOut to coffeeMachine.mainsWaterIn;
|
|
80
|
-
flow from coffeeMachine.waterTank.tankWaterOut to coffeeMachine.heaterAssembly.heaterWaterIn;
|
|
81
|
-
flow from coffeeMachine.heaterAssembly.heatedWaterOut to coffeeMachine.brewGroup.brewWaterIn;
|
|
82
|
-
flow from coffeeMachine.beverageOut to cup.cupBeverageIn;
|
|
78
|
+
flow supplyWaterOutToMainsWaterIn from waterSupply.supplyWaterOut to coffeeMachine.mainsWaterIn;
|
|
79
|
+
flow tankWaterOutToHeaterWaterIn from coffeeMachine.waterTank.tankWaterOut to coffeeMachine.heaterAssembly.heaterWaterIn;
|
|
80
|
+
flow heatedWaterOutToBrewWaterIn from coffeeMachine.heaterAssembly.heatedWaterOut to coffeeMachine.brewGroup.brewWaterIn;
|
|
81
|
+
flow beverageOutToCupBeverageIn from coffeeMachine.beverageOut to cup.cupBeverageIn;
|
|
83
82
|
|
|
84
83
|
// Delegation between a boundary port and the interior it stands for. These
|
|
85
84
|
// are `in`-to-`in` and `out`-to-`out`, because nothing travels: the two
|
|
@@ -90,58 +89,11 @@ package diagram_samples {
|
|
|
90
89
|
bind coffeeMachine.heaterAssembly.heatingElement.heaterStatusOut = coffeeMachine.serviceInterface.diagnostics;
|
|
91
90
|
|
|
92
91
|
// Internal flows within the heater assembly
|
|
93
|
-
flow from coffeeMachine.heaterAssembly.thermostat.powerCommandOut to coffeeMachine.heaterAssembly.heatingElement.powerIn;
|
|
94
|
-
flow from coffeeMachine.heaterAssembly.heatingElement.heaterStatusOut to coffeeMachine.heaterAssembly.thermostat.tempReadingIn;
|
|
92
|
+
flow powerCommandOutToPowerIn from coffeeMachine.heaterAssembly.thermostat.powerCommandOut to coffeeMachine.heaterAssembly.heatingElement.powerIn;
|
|
93
|
+
flow heaterStatusOutToTempReadingIn from coffeeMachine.heaterAssembly.heatingElement.heaterStatusOut to coffeeMachine.heaterAssembly.thermostat.tempReadingIn;
|
|
95
94
|
|
|
96
95
|
// Internal flows within the heating element
|
|
97
|
-
flow from coffeeMachine.heaterAssembly.heatingElement.resistiveCoil.heatOut to coffeeMachine.heaterAssembly.heatingElement.temperatureSensor.heatIn;
|
|
96
|
+
flow heatOutToHeatIn from coffeeMachine.heaterAssembly.heatingElement.resistiveCoil.heatOut to coffeeMachine.heaterAssembly.heatingElement.temperatureSensor.heatIn;
|
|
98
97
|
bind coffeeMachine.heaterAssembly.heatingElement.powerIn = coffeeMachine.heaterAssembly.heatingElement.resistiveCoil.coilPowerIn;
|
|
99
98
|
bind coffeeMachine.heaterAssembly.heatingElement.temperatureSensor.sensorReadingOut = coffeeMachine.heaterAssembly.heatingElement.heaterStatusOut;
|
|
100
|
-
|
|
101
|
-
// Child IBD view — the heater assembly's own internal wiring. Its subject
|
|
102
|
-
// is `heaterAssembly`, so the parent IBD shows a "navigate to view" button
|
|
103
|
-
// on the Thermal Control Assembly part.
|
|
104
|
-
view heaterAssemblyIBD : MemoDiagramView {
|
|
105
|
-
expose coffeeMachine.heaterAssembly::**;
|
|
106
|
-
attribute depth = 2;
|
|
107
|
-
@MemoIdentity { :>> shortDescription = "Internal wiring of the Thermal Control Assembly — heating element and its status output."; }
|
|
108
|
-
attribute :>> viewKind = DiagramViewKind::interconnection;
|
|
109
|
-
attribute :>> diagramType = "ibd";
|
|
110
|
-
attribute :>> rendererProfile = "ibd";
|
|
111
|
-
ref :>> viewpointDefinition = ibdViewpoint;
|
|
112
|
-
part :>> selectionQuery {
|
|
113
|
-
attribute :>> includeRelationshipKinds = ("Composes", "flow", "bind");
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
view heatingElementIBD : MemoDiagramView {
|
|
118
|
-
expose coffeeMachine.heaterAssembly.heatingElement::**;
|
|
119
|
-
attribute depth = 2;
|
|
120
|
-
@MemoIdentity { :>> shortDescription = "Third-level IBD — resistive coil and temperature sensor inside the heating element."; }
|
|
121
|
-
attribute :>> viewKind = DiagramViewKind::interconnection;
|
|
122
|
-
attribute :>> diagramType = "ibd";
|
|
123
|
-
attribute :>> rendererProfile = "ibd";
|
|
124
|
-
ref :>> viewpointDefinition = ibdViewpoint;
|
|
125
|
-
part :>> selectionQuery {
|
|
126
|
-
attribute :>> includeRelationshipKinds = ("Composes", "flow", "bind");
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
view beverageMachineIBD : MemoDiagramView {
|
|
131
|
-
expose coffeeMachine::**;
|
|
132
|
-
expose waterSupply::**;
|
|
133
|
-
expose cup::**;
|
|
134
|
-
attribute depth = 2;
|
|
135
|
-
@MemoIdentity { :>> shortDescription = "Balanced internal architecture with readable boundary ports, nested service diagnostics, and external water and beverage interfaces."; }
|
|
136
|
-
attribute :>> viewKind = DiagramViewKind::interconnection;
|
|
137
|
-
attribute :>> diagramType = "ibd";
|
|
138
|
-
// The dedicated IBD renderer (Base -> Ibd class hierarchy): square
|
|
139
|
-
// wall ports, orange-in/green-out, solid grabbable nested-connector
|
|
140
|
-
// housings, orthogonal crossing-bridge routing, monochrome shading.
|
|
141
|
-
attribute :>> rendererProfile = "ibd";
|
|
142
|
-
ref :>> viewpointDefinition = ibdViewpoint;
|
|
143
|
-
part :>> selectionQuery {
|
|
144
|
-
attribute :>> includeRelationshipKinds = ("Composes", "flow", "bind");
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
99
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operational_behaviour_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_core_relationships::*;
|
|
@@ -28,49 +29,49 @@ package diagram_samples {
|
|
|
28
29
|
// Use the canonical MEMO operational system type—never a sample-local
|
|
29
30
|
// placeholder—so ontology-driven Explorer grouping remains authoritative.
|
|
30
31
|
part opCareSystem : OperationalEntity {
|
|
31
|
-
|
|
32
|
+
@MemoIdentity { :>> label = "PCA Care System"; }
|
|
32
33
|
attribute :>> entityKind = OperationalEntityKind::device;
|
|
33
34
|
attribute :>> responsibility = "System of interest for this context view.";
|
|
34
35
|
part opClinicalTeam : User {
|
|
35
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
36
|
+
attribute :>> actorKind = ActorKind::clinician; @MemoIdentity { :>> label = "Clinical Team"; }
|
|
36
37
|
part opRolePhysician : User {
|
|
37
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
38
|
+
attribute :>> actorKind = ActorKind::clinician; @MemoIdentity { :>> label = "Physician"; } }
|
|
38
39
|
part opRoleNurse : User {
|
|
39
|
-
attribute :>> actorKind = ActorKind::clinician;
|
|
40
|
+
attribute :>> actorKind = ActorKind::clinician; @MemoIdentity { :>> label = "Nurse"; } }
|
|
40
41
|
part opRoleBiomed : User {
|
|
41
|
-
attribute :>> actorKind = ActorKind::technician;
|
|
42
|
+
attribute :>> actorKind = ActorKind::technician; @MemoIdentity { :>> label = "Biomed Tech"; } }
|
|
42
43
|
}
|
|
43
44
|
part opPatientGroup : User {
|
|
44
|
-
attribute :>> actorKind = ActorKind::patient;
|
|
45
|
+
attribute :>> actorKind = ActorKind::patient; @MemoIdentity { :>> label = "Patient Interaction"; }
|
|
45
46
|
part opRolePatient : User {
|
|
46
|
-
attribute :>> actorKind = ActorKind::patient;
|
|
47
|
+
attribute :>> actorKind = ActorKind::patient; @MemoIdentity { :>> label = "Patient"; } }
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
action opSetupFlow : OperativeAction {
|
|
51
|
-
action opPrescribe : OpPrescribeTherapy {
|
|
52
|
-
action opVerify : OpVerifyPrescription {
|
|
52
|
+
action opPrescribe : OpPrescribeTherapy {@MemoIdentity { :>> label = "Prescribe Therapy"; } }
|
|
53
|
+
action opVerify : OpVerifyPrescription {@MemoIdentity { :>> label = "Verify Prescription"; } }
|
|
53
54
|
fork opForkPrep;
|
|
54
|
-
action opPrime : OperativeAction {
|
|
55
|
-
action opSelfTest : OperativeAction {
|
|
55
|
+
action opPrime : OperativeAction {@MemoIdentity { :>> label = "Prime Pump & Load Reservoir"; } }
|
|
56
|
+
action opSelfTest : OperativeAction {@MemoIdentity { :>> label = "Run Device Self-Test"; } }
|
|
56
57
|
join opJoinPrep;
|
|
57
|
-
action opProgram : OperativeAction {
|
|
58
|
-
action opConnect : OperativeAction {
|
|
59
|
-
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"; } }
|
|
60
61
|
action opAdminister : OperativeAction {
|
|
61
|
-
|
|
62
|
-
action opRequestBolus : OpRequestBolus {
|
|
63
|
-
action opCheckLockout : OpCheckLockout {
|
|
64
|
-
action opDeliverDose : OperativeAction {
|
|
65
|
-
action opLogEvent : OperativeAction {
|
|
66
|
-
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;
|
|
67
68
|
first start then opRequestBolus;
|
|
68
69
|
first opRequestBolus then opCheckLockout;
|
|
69
70
|
first opCheckLockout then opDeliverDose;
|
|
70
71
|
first opDeliverDose then opLogEvent;
|
|
71
72
|
first opLogEvent then done;
|
|
72
73
|
}
|
|
73
|
-
flow of OpPrescription from opPrescribe.prescription to opVerify.prescription;
|
|
74
|
+
flow opPrescriptionFlow of OpPrescription from opPrescribe.prescription to opVerify.prescription;
|
|
74
75
|
first start then opPrescribe;
|
|
75
76
|
first opPrescribe then opVerify;
|
|
76
77
|
first opVerify then opForkPrep;
|
|
@@ -97,14 +98,4 @@ package diagram_samples {
|
|
|
97
98
|
allocate opSetupFlow.opAdminister.opCheckLockout to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
98
99
|
allocate opSetupFlow.opAdminister.opDeliverDose to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
99
100
|
allocate opSetupFlow.opAdminister.opLogEvent to opCareSystem.opClinicalTeam.opRoleNurse;
|
|
100
|
-
|
|
101
|
-
view clinicalSetupActivity : MemoDiagramView {
|
|
102
|
-
expose opSetupFlow::**;
|
|
103
|
-
expose opCareSystem::**;
|
|
104
|
-
attribute depth = 2;
|
|
105
|
-
@MemoIdentity { :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step."; }
|
|
106
|
-
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
107
|
-
attribute :>> diagramType = "ofd";
|
|
108
|
-
ref :>> viewpointDefinition = actionFlowViewpoint;
|
|
109
|
-
}
|
|
110
101
|
}
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_package_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
2
3
|
private import ScalarValues::*;
|
|
3
4
|
private import memo_architecture_logical_structure::*;
|
|
4
5
|
private import memo_architecture_logical_interfaces::*;
|
|
@@ -16,54 +17,40 @@ package diagram_samples {
|
|
|
16
17
|
|
|
17
18
|
package presentation {
|
|
18
19
|
part dashboardUI : LogicalComponent {
|
|
19
|
-
|
|
20
|
+
@MemoIdentity { :>> label = "Dashboard UI"; }
|
|
20
21
|
out port apiCall : DataPort { out item payload : MemoItem; }
|
|
21
22
|
}
|
|
22
23
|
part settingsUI : LogicalComponent {
|
|
23
|
-
|
|
24
|
+
@MemoIdentity { :>> label = "Settings UI"; }
|
|
24
25
|
out port configRequest : DataPort { out item payload : MemoItem; }
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
package domain {
|
|
29
30
|
part therapyEngine : LogicalComponent {
|
|
30
|
-
|
|
31
|
+
@MemoIdentity { :>> label = "Therapy Engine"; }
|
|
31
32
|
in port incomingRequest : DataPort { in item payload : MemoItem; }
|
|
32
33
|
out port statusUpdate : DataPort { out item payload : MemoItem; }
|
|
33
34
|
}
|
|
34
35
|
part alarmManager : LogicalComponent {
|
|
35
|
-
|
|
36
|
+
@MemoIdentity { :>> label = "Alarm Manager"; }
|
|
36
37
|
in port trigger : DataPort { in item payload : MemoItem; }
|
|
37
38
|
}
|
|
38
39
|
part configService : LogicalComponent {
|
|
39
|
-
|
|
40
|
+
@MemoIdentity { :>> label = "Configuration Service"; }
|
|
40
41
|
in port configIn : DataPort { in item payload : MemoItem; }
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
package infrastructure {
|
|
45
46
|
part dataStore : LogicalComponent {
|
|
46
|
-
|
|
47
|
+
@MemoIdentity { :>> label = "Data Store"; }
|
|
47
48
|
in port writePort : DataPort { in item payload : MemoItem; }
|
|
48
49
|
out port readPort : DataPort { out item payload : MemoItem; }
|
|
49
50
|
}
|
|
50
51
|
part networkAdapter : LogicalComponent {
|
|
51
|
-
|
|
52
|
+
@MemoIdentity { :>> label = "Network Adapter"; }
|
|
52
53
|
inout port netIO : DataPort { inout item payload : MemoItem; }
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
-
view threeLayerPackages : MemoDiagramView {
|
|
57
|
-
expose presentation::**;
|
|
58
|
-
expose domain::**;
|
|
59
|
-
expose infrastructure::**;
|
|
60
|
-
attribute depth = 2;
|
|
61
|
-
@MemoIdentity { :>> shortDescription = "Three-layer package overview — presentation, domain, infrastructure — rendered as a browser membership tree."; }
|
|
62
|
-
attribute :>> viewKind = DiagramViewKind::browser;
|
|
63
|
-
attribute :>> diagramType = "pkg";
|
|
64
|
-
ref :>> viewpointDefinition = browserViewpoint;
|
|
65
|
-
part :>> selectionQuery {
|
|
66
|
-
attribute :>> includeRelationshipKinds = ("Composes");
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
56
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
2
3
|
// Requirements sample (general view kind, `req` diagram type). Stakeholder needs
|
|
3
4
|
// on the left derive into system requirements; `DerivesFrom` edges render as the
|
|
4
5
|
// requirements-diagram trace lines.
|
|
@@ -15,28 +16,28 @@ package diagram_samples {
|
|
|
15
16
|
private import memo_core_common::MemoIdentity;
|
|
16
17
|
requirement needSafeTherapy : Need {
|
|
17
18
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
18
|
-
@MemoIdentity { :>> providedId = "NEED-1";
|
|
19
|
+
@MemoIdentity { :>> providedId = "NEED-1"; :>> label = "SafeTherapy"; }
|
|
19
20
|
attribute :>> statement = "The device shall support safe patient-controlled infusion therapy.";
|
|
20
21
|
}
|
|
21
22
|
requirement needTimelyAlarms : Need {
|
|
22
23
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
23
|
-
@MemoIdentity { :>> providedId = "NEED-2";
|
|
24
|
+
@MemoIdentity { :>> providedId = "NEED-2"; :>> label = "TimelyAlarms"; }
|
|
24
25
|
attribute :>> statement = "Clinicians shall be notified promptly of any condition that endangers therapy.";
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
requirement reqDoseLimit : Requirement {
|
|
28
29
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
29
|
-
@MemoIdentity { :>> providedId = "REQ-1";
|
|
30
|
+
@MemoIdentity { :>> providedId = "REQ-1"; :>> label = "DoseLimitEnforcement"; }
|
|
30
31
|
attribute :>> statement = "The pump shall not deliver more than the prescribed maximum dose in any one-hour window.";
|
|
31
32
|
}
|
|
32
33
|
requirement reqOcclusionAlarm : Requirement {
|
|
33
34
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
34
|
-
@MemoIdentity { :>> providedId = "REQ-2";
|
|
35
|
+
@MemoIdentity { :>> providedId = "REQ-2"; :>> label = "OcclusionAlarm"; }
|
|
35
36
|
attribute :>> statement = "The pump shall raise an alarm within two seconds of detecting a downstream occlusion.";
|
|
36
37
|
}
|
|
37
38
|
requirement reqAlarmLoudness : Requirement {
|
|
38
39
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
39
|
-
@MemoIdentity { :>> providedId = "REQ-3";
|
|
40
|
+
@MemoIdentity { :>> providedId = "REQ-3"; :>> label = "AlarmLoudness"; }
|
|
40
41
|
attribute :>> statement = "An active alarm shall be audible at 65 dBA at one metre.";
|
|
41
42
|
}
|
|
42
43
|
|
|
@@ -44,20 +45,4 @@ package diagram_samples {
|
|
|
44
45
|
connection : DerivesFrom connect sourceDriver ::> needSafeTherapy to targetRequirement ::> reqOcclusionAlarm;
|
|
45
46
|
connection : DerivesFrom connect sourceDriver ::> needTimelyAlarms to targetRequirement ::> reqOcclusionAlarm;
|
|
46
47
|
connection : DerivesFrom connect sourceDriver ::> needTimelyAlarms to targetRequirement ::> reqAlarmLoudness;
|
|
47
|
-
|
|
48
|
-
view needsToRequirements : MemoDiagramView {
|
|
49
|
-
expose needSafeTherapy::**;
|
|
50
|
-
expose needTimelyAlarms::**;
|
|
51
|
-
expose reqDoseLimit;
|
|
52
|
-
expose reqOcclusionAlarm;
|
|
53
|
-
expose reqAlarmLoudness;
|
|
54
|
-
attribute depth = 1;
|
|
55
|
-
@MemoIdentity { :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges."; }
|
|
56
|
-
attribute :>> viewKind = DiagramViewKind::general;
|
|
57
|
-
attribute :>> diagramType = "req";
|
|
58
|
-
ref :>> viewpointDefinition = requirementsDiagramViewpoint;
|
|
59
|
-
part :>> selectionQuery {
|
|
60
|
-
attribute :>> includeRelationshipKinds = ("DerivesFrom");
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
48
|
}
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_sequence_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
2
3
|
// Sequence sample (sequence view kind, `seq` diagram type). A FunctionalFlow
|
|
3
|
-
// owns an ordered chain of
|
|
4
|
+
// owns an ordered chain of nested actions (its steps); each step is `allocate`d to
|
|
4
5
|
// the lifeline (an actor or component) that performs it, and the sequence
|
|
5
6
|
// template lays lifelines out as columns with one row per step in
|
|
6
7
|
// declaration order.
|
|
@@ -18,39 +19,39 @@ package diagram_samples {
|
|
|
18
19
|
private import memo_core_common::MemoIdentity;
|
|
19
20
|
|
|
20
21
|
// Lifelines — the actor and components each step is allocated to.
|
|
21
|
-
part clinician : User {
|
|
22
|
-
part pumpController : LogicalComponent {
|
|
23
|
-
part pumpMechanism : LogicalComponent {
|
|
22
|
+
part clinician : User { }
|
|
23
|
+
part pumpController : LogicalComponent {@MemoIdentity { :>> label = "Pump Controller"; } }
|
|
24
|
+
part pumpMechanism : LogicalComponent {@MemoIdentity { :>> label = "Pump Mechanism"; } }
|
|
24
25
|
|
|
25
26
|
// Combined fragment definitions — referenced by steps' `fragment` attribute.
|
|
26
27
|
part monitorLoop {
|
|
27
|
-
attribute
|
|
28
|
+
attribute name = "Monitor Loop";
|
|
28
29
|
attribute fragmentType = "loop";
|
|
29
30
|
attribute guard = "vitals abnormal";
|
|
30
31
|
}
|
|
31
32
|
part errorHandling {
|
|
32
|
-
attribute
|
|
33
|
+
attribute name = "Error Handling";
|
|
33
34
|
attribute fragmentType = "alt";
|
|
34
35
|
attribute fragmentGuards = "[error recoverable]|[else]";
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
action startInfusion : FunctionalFlow {
|
|
38
|
-
|
|
39
|
+
@MemoIdentity { :>> label = "Start Infusion"; }
|
|
39
40
|
|
|
40
|
-
action stepRequestStart
|
|
41
|
-
action stepValidate
|
|
42
|
-
action stepCommandMotor
|
|
43
|
-
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"; } }
|
|
44
45
|
|
|
45
46
|
// Steps inside the monitoring loop fragment
|
|
46
|
-
action stepReadSensor
|
|
47
|
-
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"; }
|
|
48
49
|
|
|
49
50
|
// Steps inside the alt (error-handling) fragment
|
|
50
|
-
action stepRetryDelivery
|
|
51
|
-
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"; }
|
|
52
53
|
|
|
53
|
-
action stepNotify
|
|
54
|
+
action stepNotify {@MemoIdentity { :>> label = "Notify delivery started"; } attribute stepOrder = "9"; }
|
|
54
55
|
|
|
55
56
|
first start then stepRequestStart;
|
|
56
57
|
first stepRequestStart then stepValidate;
|
|
@@ -77,21 +78,4 @@ package diagram_samples {
|
|
|
77
78
|
allocate startInfusion.stepRetryDelivery to pumpController;
|
|
78
79
|
allocate startInfusion.stepAlertUser to clinician;
|
|
79
80
|
allocate startInfusion.stepNotify to clinician;
|
|
80
|
-
|
|
81
|
-
view startInfusionSequence : MemoDiagramView {
|
|
82
|
-
expose startInfusion::**;
|
|
83
|
-
expose clinician::**;
|
|
84
|
-
expose pumpController::**;
|
|
85
|
-
expose pumpMechanism::**;
|
|
86
|
-
expose monitorLoop::**;
|
|
87
|
-
expose errorHandling::**;
|
|
88
|
-
attribute depth = 2;
|
|
89
|
-
@MemoIdentity { :>> shortDescription = "Start-infusion sequence with combined fragments — loop for sensor monitoring and alt for error handling."; }
|
|
90
|
-
attribute :>> viewKind = DiagramViewKind::sequence;
|
|
91
|
-
attribute :>> diagramType = "seq";
|
|
92
|
-
ref :>> viewpointDefinition = sequenceViewpoint;
|
|
93
|
-
part :>> selectionQuery {
|
|
94
|
-
attribute :>> includeElementKinds = ("FunctionalFlowStep", "User", "LogicalComponent", "Part");
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
81
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard_activity_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
2
3
|
// Standard SysML v2 activity sample (actionflow view kind, `afd` diagram type).
|
|
3
4
|
//
|
|
4
5
|
// The view over `activity_example::CustomerProcess`, the standard-SysML activity
|
|
@@ -23,12 +24,4 @@ package diagram_samples {
|
|
|
23
24
|
|
|
24
25
|
private import memo_core_common::*;
|
|
25
26
|
private import memo_core_common::MemoIdentity;
|
|
26
|
-
view orderFulfillmentActivity : MemoDiagramView {
|
|
27
|
-
expose FulfillOrder::**;
|
|
28
|
-
attribute depth = 2;
|
|
29
|
-
@MemoIdentity { :>> shortDescription = "Order fulfilment — accept, validate, decide, fork into parallel shipment and invoice, join, notify, send receipt, and terminate."; }
|
|
30
|
-
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
31
|
-
attribute :>> diagramType = "afd";
|
|
32
|
-
ref :>> viewpointDefinition = actionFlowViewpoint;
|
|
33
|
-
}
|
|
34
27
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
package
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_transition_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
2
3
|
// State transition sample (statetransition view kind, `stm` diagram type). A
|
|
3
4
|
// behaviour machine owns its mode states by containing them, and each native
|
|
4
5
|
// transition lives inside the state whose substates it connects.
|
|
@@ -13,76 +14,51 @@ package diagram_samples {
|
|
|
13
14
|
|
|
14
15
|
private import memo_core_common::MemoIdentity;
|
|
15
16
|
state pumpModes : StateMachine {
|
|
16
|
-
|
|
17
|
+
@MemoIdentity { :>> label = "Pump Operating Modes"; }
|
|
17
18
|
|
|
18
|
-
state idle : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
19
|
+
state idle : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
19
20
|
|
|
20
21
|
// Infusing is a composite state: its substates show what the pump is
|
|
21
22
|
// doing while it is infusing, and containment is the nesting itself —
|
|
22
23
|
// not a parallel set of Composes edges.
|
|
23
24
|
state infusing : MemoState {
|
|
24
25
|
attribute :>> stateKind = StateKind::mode;
|
|
25
|
-
attribute :>> name = "Infusing";
|
|
26
26
|
|
|
27
|
-
state priming : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
28
|
-
state delivering : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
29
|
-
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)"; } }
|
|
30
30
|
|
|
31
31
|
transition tPrimed first priming then delivering {
|
|
32
|
-
@
|
|
32
|
+
@MemoIdentity { :>> label = "primed"; } @TransitionRecord { :>> trigger = "primeComplete"; }
|
|
33
33
|
}
|
|
34
34
|
transition tKvo first delivering then holding {
|
|
35
|
-
@
|
|
35
|
+
@MemoIdentity { :>> label = "keepVeinOpen"; } @TransitionRecord { :>> trigger = "doseComplete"; }
|
|
36
36
|
}
|
|
37
37
|
transition tResumeDose first holding then delivering {
|
|
38
|
-
@
|
|
38
|
+
@MemoIdentity { :>> label = "resumeDose"; } @TransitionRecord { :>> trigger = "doseScheduled"; }
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
state paused : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
43
|
-
state alarm : MemoState { attribute :>> stateKind = StateKind::mode;
|
|
42
|
+
state paused : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
43
|
+
state alarm : MemoState { attribute :>> stateKind = StateKind::mode; }
|
|
44
44
|
|
|
45
45
|
transition tStart first idle then infusing {
|
|
46
|
-
@
|
|
46
|
+
@MemoIdentity { :>> label = "start"; } @TransitionRecord { :>> trigger = "startInfusion"; }
|
|
47
47
|
}
|
|
48
48
|
transition tPause first infusing then paused {
|
|
49
|
-
@
|
|
49
|
+
@MemoIdentity { :>> label = "pause"; } @TransitionRecord { :>> trigger = "pauseRequested"; }
|
|
50
50
|
}
|
|
51
51
|
transition tResume first paused then infusing {
|
|
52
|
-
@
|
|
52
|
+
@MemoIdentity { :>> label = "resume"; } @TransitionRecord { :>> trigger = "resumeRequested"; }
|
|
53
53
|
}
|
|
54
54
|
transition tFault first infusing then alarm {
|
|
55
|
-
@
|
|
55
|
+
@MemoIdentity { :>> label = "fault"; } @TransitionRecord { :>> trigger = "occlusionDetected"; }
|
|
56
56
|
}
|
|
57
57
|
transition tRecover first alarm then idle {
|
|
58
|
-
@
|
|
58
|
+
@MemoIdentity { :>> label = "acknowledge"; } @TransitionRecord { :>> trigger = "alarmCleared"; }
|
|
59
59
|
}
|
|
60
60
|
transition tStop first infusing then idle {
|
|
61
|
-
@
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
view pumpModeStateMachine : MemoDiagramView {
|
|
66
|
-
expose pumpModes::**;
|
|
67
|
-
attribute depth = 2;
|
|
68
|
-
@MemoIdentity { :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding."; }
|
|
69
|
-
attribute :>> viewKind = DiagramViewKind::statetransition;
|
|
70
|
-
attribute :>> diagramType = "stm";
|
|
71
|
-
ref :>> viewpointDefinition = stateMachineViewpoint;
|
|
72
|
-
part :>> selectionQuery {
|
|
73
|
-
attribute :>> includeElementKinds = ("StateMachine", "MemoState");
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
view infusingSubStates : MemoDiagramView {
|
|
78
|
-
expose pumpModes.infusing::**;
|
|
79
|
-
attribute depth = 2;
|
|
80
|
-
@MemoIdentity { :>> shortDescription = "Sub-states of the Infusing composite state — Priming, Delivering, and Holding with their internal transitions."; }
|
|
81
|
-
attribute :>> viewKind = DiagramViewKind::statetransition;
|
|
82
|
-
attribute :>> diagramType = "stm";
|
|
83
|
-
ref :>> viewpointDefinition = stateMachineViewpoint;
|
|
84
|
-
part :>> selectionQuery {
|
|
85
|
-
attribute :>> includeElementKinds = ("MemoState");
|
|
61
|
+
@MemoIdentity { :>> label = "stop"; } @TransitionRecord { :>> trigger = "stopInfusion"; }
|
|
86
62
|
}
|
|
87
63
|
}
|
|
88
64
|
|