@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
|
@@ -13,71 +13,61 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned {
|
|
|
13
13
|
private import memo_core_common::MemoIdentity;
|
|
14
14
|
|
|
15
15
|
viewpoint contextDiagramViewpoint : MemoViewpoint {
|
|
16
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-CTX"; }
|
|
17
|
-
attribute :>> name = "Context Diagram";
|
|
16
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-CTX"; :>> label = "Context Diagram"; }
|
|
18
17
|
@MemoIdentity { :>> shortDescription = "System context — actors, external systems, and boundary interactions."; }
|
|
19
18
|
attribute :>> explorerOrder = 1;
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
viewpoint actionFlowViewpoint : MemoViewpoint {
|
|
23
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-AFD"; }
|
|
24
|
-
attribute :>> name = "Action Flow";
|
|
22
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-AFD"; :>> label = "Action Flow"; }
|
|
25
23
|
@MemoIdentity { :>> shortDescription = "Swimlane action flows with typed item flows and composite actions."; }
|
|
26
24
|
attribute :>> explorerOrder = 2;
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
viewpoint ibdViewpoint : MemoViewpoint {
|
|
30
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-IBD"; }
|
|
31
|
-
attribute :>> name = "Internal Block Diagram";
|
|
28
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-IBD"; :>> label = "Internal Block Diagram"; }
|
|
32
29
|
@MemoIdentity { :>> shortDescription = "Internal structure — parts, ports, and connectors."; }
|
|
33
30
|
attribute :>> explorerOrder = 3;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
33
|
viewpoint stateMachineViewpoint : MemoViewpoint {
|
|
37
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-STD"; }
|
|
38
|
-
attribute :>> name = "State Machine";
|
|
34
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-STD"; :>> label = "State Machine"; }
|
|
39
35
|
@MemoIdentity { :>> shortDescription = "State transitions with composite states and guards."; }
|
|
40
36
|
attribute :>> explorerOrder = 4;
|
|
41
37
|
}
|
|
42
38
|
|
|
43
39
|
viewpoint sequenceViewpoint : MemoViewpoint {
|
|
44
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-SEQ"; }
|
|
45
|
-
attribute :>> name = "Sequence Diagram";
|
|
40
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-SEQ"; :>> label = "Sequence Diagram"; }
|
|
46
41
|
@MemoIdentity { :>> shortDescription = "Message sequences with combined fragments (loop, alt)."; }
|
|
47
42
|
attribute :>> explorerOrder = 5;
|
|
48
43
|
}
|
|
49
44
|
|
|
50
45
|
viewpoint useCaseViewpoint : MemoViewpoint {
|
|
51
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-UCD"; }
|
|
52
|
-
attribute :>> name = "Use Case Diagram";
|
|
46
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-UCD"; :>> label = "Use Case Diagram"; }
|
|
53
47
|
@MemoIdentity { :>> shortDescription = "Actors, use cases, include/extend/generalization."; }
|
|
54
48
|
attribute :>> explorerOrder = 6;
|
|
55
49
|
}
|
|
56
50
|
|
|
57
51
|
viewpoint requirementsDiagramViewpoint : MemoViewpoint {
|
|
58
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-REQ"; }
|
|
59
|
-
attribute :>> name = "Requirements Diagram";
|
|
52
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-REQ"; :>> label = "Requirements Diagram"; }
|
|
60
53
|
@MemoIdentity { :>> shortDescription = "Needs, requirements, and derivation traces."; }
|
|
61
54
|
attribute :>> explorerOrder = 7;
|
|
62
55
|
}
|
|
63
56
|
|
|
64
57
|
viewpoint browserViewpoint : MemoViewpoint {
|
|
65
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-BRW"; }
|
|
66
|
-
attribute :>> name = "Browser View";
|
|
58
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-BRW"; :>> label = "Browser View"; }
|
|
67
59
|
@MemoIdentity { :>> shortDescription = "Hierarchical membership tree of model elements."; }
|
|
68
60
|
attribute :>> explorerOrder = 8;
|
|
69
61
|
}
|
|
70
62
|
|
|
71
63
|
viewpoint gridViewpoint : MemoViewpoint {
|
|
72
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-GRD"; }
|
|
73
|
-
attribute :>> name = "Grid / Table View";
|
|
64
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-GRD"; :>> label = "Grid / Table View"; }
|
|
74
65
|
@MemoIdentity { :>> shortDescription = "Tabular worksheet rendering of model attributes."; }
|
|
75
66
|
attribute :>> explorerOrder = 9;
|
|
76
67
|
}
|
|
77
68
|
|
|
78
69
|
viewpoint treeViewpoint : MemoViewpoint {
|
|
79
|
-
@MemoIdentity { :>> providedId = "VP-DEMO-TRE"; }
|
|
80
|
-
attribute :>> name = "Decomposition Diagram";
|
|
70
|
+
@MemoIdentity { :>> providedId = "VP-DEMO-TRE"; :>> label = "Decomposition Diagram"; }
|
|
81
71
|
@MemoIdentity { :>> shortDescription = "Block decomposition — hierarchical breakdown rendered as a tree."; }
|
|
82
72
|
attribute :>> explorerOrder = 10;
|
|
83
73
|
}
|
|
@@ -26,8 +26,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
|
|
|
26
26
|
action def ProcessInput specializes SystemFunction { in item validated : EnergyToken; out item result : MaterialBatch; }
|
|
27
27
|
action def RecordResult specializes SystemFunction { in item result : MaterialBatch; }
|
|
28
28
|
|
|
29
|
-
part laneA : LogicalComponent {
|
|
30
|
-
part laneB : LogicalComponent {
|
|
29
|
+
part laneA : LogicalComponent {@MemoIdentity { :>> label = "Lane A"; } }
|
|
30
|
+
part laneB : LogicalComponent {@MemoIdentity { :>> label = "Lane B"; } }
|
|
31
31
|
|
|
32
32
|
action sampleActionFlow : SystemFunction {
|
|
33
33
|
action receive : ReceiveInput;
|
|
@@ -43,9 +43,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
|
|
|
43
43
|
}
|
|
44
44
|
action record : RecordResult;
|
|
45
45
|
|
|
46
|
-
flow of DataPacket from receive.received to validate.received;
|
|
47
|
-
flow of EnergyToken from validate.validated to process.validated;
|
|
48
|
-
flow of MaterialBatch from process.result to record.result;
|
|
46
|
+
flow dataPacketFlow of DataPacket from receive.received to validate.received;
|
|
47
|
+
flow energyTokenFlow of EnergyToken from validate.validated to process.validated;
|
|
48
|
+
flow materialBatchFlow of MaterialBatch from process.result to record.result;
|
|
49
49
|
|
|
50
50
|
first start then receive;
|
|
51
51
|
first receive then validate;
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml
CHANGED
|
@@ -17,49 +17,46 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_browser_
|
|
|
17
17
|
// to demonstrate the browser view's hierarchical grouping by kind.
|
|
18
18
|
|
|
19
19
|
part controlSystem : OperationalEntity {
|
|
20
|
-
|
|
20
|
+
@MemoIdentity { :>> label = "Control System"; }
|
|
21
21
|
|
|
22
22
|
part supervisorModule : OperationalEntity {
|
|
23
|
-
|
|
23
|
+
@MemoIdentity { :>> label = "Supervisor Module"; }
|
|
24
24
|
}
|
|
25
25
|
part safetyModule : OperationalEntity {
|
|
26
|
-
|
|
26
|
+
@MemoIdentity { :>> label = "Safety Module"; }
|
|
27
27
|
}
|
|
28
28
|
part communicationModule : OperationalEntity {
|
|
29
|
-
|
|
29
|
+
@MemoIdentity { :>> label = "Communication Module"; }
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
part systemOperator : User {
|
|
34
34
|
attribute :>> actorKind = ActorKind::clinician;
|
|
35
|
-
|
|
35
|
+
@MemoIdentity { :>> label = "Operator"; }
|
|
36
36
|
}
|
|
37
37
|
part maintenanceEngineer : User {
|
|
38
38
|
attribute :>> actorKind = ActorKind::technician;
|
|
39
|
-
|
|
39
|
+
@MemoIdentity { :>> label = "Maintenance Engineer"; }
|
|
40
40
|
}
|
|
41
41
|
part remoteMonitor : User {
|
|
42
42
|
attribute :>> actorKind = ActorKind::clinician;
|
|
43
|
-
|
|
43
|
+
@MemoIdentity { :>> label = "Remote Monitor"; }
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
use case startSystem : UseCase {
|
|
47
|
-
@MemoIdentity { :>> providedId = "UC-BRW-1"; }
|
|
48
|
-
attribute :>> name = "Start System";
|
|
47
|
+
@MemoIdentity { :>> providedId = "UC-BRW-1"; :>> label = "Start System"; }
|
|
49
48
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
50
49
|
subject controlSystem;
|
|
51
50
|
actor operatorActor = systemOperator;
|
|
52
51
|
}
|
|
53
52
|
use case runDiagnostics : UseCase {
|
|
54
|
-
@MemoIdentity { :>> providedId = "UC-BRW-2"; }
|
|
55
|
-
attribute :>> name = "Run Diagnostics";
|
|
53
|
+
@MemoIdentity { :>> providedId = "UC-BRW-2"; :>> label = "Run Diagnostics"; }
|
|
56
54
|
attribute :>> useCaseKind = UseCaseKind::service;
|
|
57
55
|
subject controlSystem;
|
|
58
56
|
actor engineerActor = maintenanceEngineer;
|
|
59
57
|
}
|
|
60
58
|
use case monitorStatus : UseCase {
|
|
61
|
-
@MemoIdentity { :>> providedId = "UC-BRW-3"; }
|
|
62
|
-
attribute :>> name = "Monitor Status";
|
|
59
|
+
@MemoIdentity { :>> providedId = "UC-BRW-3"; :>> label = "Monitor Status"; }
|
|
63
60
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
64
61
|
subject controlSystem;
|
|
65
62
|
actor monitorActor = remoteMonitor;
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml
CHANGED
|
@@ -19,22 +19,26 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_
|
|
|
19
19
|
// black box. Context diagrams show its environment and interfaces, not its
|
|
20
20
|
// internal decomposition.
|
|
21
21
|
part infusionSystem : OperationalEntity {
|
|
22
|
-
|
|
22
|
+
@MemoIdentity { :>> label = "Infusion Pump System"; }
|
|
23
23
|
attribute :>> entityKind = OperationalEntityKind::device;
|
|
24
24
|
attribute :>> responsibility = "System of interest for this context view.";
|
|
25
|
+
out port pPharmacyOut : MemoPort;
|
|
25
26
|
}
|
|
26
|
-
part clinician : User {
|
|
27
|
-
part patient : User {
|
|
28
|
-
part biomedTech : User {
|
|
27
|
+
part clinician : User { }
|
|
28
|
+
part patient : User { }
|
|
29
|
+
part biomedTech : User {@MemoIdentity { :>> label = "Biomedical Technician"; } }
|
|
29
30
|
part pharmacySystem : OperationalEntity {
|
|
30
|
-
|
|
31
|
+
@MemoIdentity { :>> label = "Pharmacy Information System"; }
|
|
31
32
|
attribute :>> entityKind = OperationalEntityKind::externalSystem;
|
|
33
|
+
in port pInfusionIn : MemoPort;
|
|
32
34
|
}
|
|
33
|
-
part homeContext : UseContext {
|
|
35
|
+
part homeContext : UseContext {@MemoIdentity { :>> label = "Home Care Environment"; } }
|
|
34
36
|
|
|
35
37
|
connection connect clinician to infusionSystem;
|
|
36
38
|
connection connect patient to infusionSystem;
|
|
37
39
|
connection connect biomedTech to infusionSystem;
|
|
38
|
-
flow
|
|
40
|
+
// A flow end names a feature of its participant (`part.feature`): the black
|
|
41
|
+
// boxes exchange across their boundary, at these ports.
|
|
42
|
+
flow infusionSystemToPharmacySystem from infusionSystem.pPharmacyOut to pharmacySystem.pInfusionIn;
|
|
39
43
|
connection : AppliesInContext connect useContext ::> homeContext to subjectElement ::> infusionSystem;
|
|
40
44
|
}
|
|
@@ -40,6 +40,7 @@ package diagram_samples {
|
|
|
40
40
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_functional_flow_view::*;
|
|
41
41
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_grid_view::*;
|
|
42
42
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_interconnection_view::*;
|
|
43
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_drill_down_view::*;
|
|
43
44
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operational_behaviour_view::*;
|
|
44
45
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_package_view::*;
|
|
45
46
|
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view::*;
|
|
@@ -98,8 +99,11 @@ package diagram_samples {
|
|
|
98
99
|
|
|
99
100
|
view systemContextDiagram : MemoDiagramView {
|
|
100
101
|
expose infusionSystem::**;
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
// Qualified because three samples each declare an actor called
|
|
103
|
+
// `clinician` and two declare a `patient`: each sample is standalone,
|
|
104
|
+
// which is the point of a gallery. A bare name would name all of them.
|
|
105
|
+
expose memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_view::clinician;
|
|
106
|
+
expose memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_view::patient;
|
|
103
107
|
expose biomedTech;
|
|
104
108
|
expose pharmacySystem;
|
|
105
109
|
expose homeContext;
|
|
@@ -240,7 +244,7 @@ package diagram_samples {
|
|
|
240
244
|
|
|
241
245
|
view startInfusionSequence : MemoDiagramView {
|
|
242
246
|
expose startInfusion::**;
|
|
243
|
-
expose clinician::**;
|
|
247
|
+
expose memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_sequence_view::clinician::**;
|
|
244
248
|
expose pumpController::**;
|
|
245
249
|
expose pumpMechanism::**;
|
|
246
250
|
expose monitorLoop::**;
|
|
@@ -251,7 +255,11 @@ package diagram_samples {
|
|
|
251
255
|
attribute :>> diagramType = "seq";
|
|
252
256
|
ref :>> viewpointDefinition = sequenceViewpoint;
|
|
253
257
|
part :>> selectionQuery {
|
|
254
|
-
|
|
258
|
+
// No "User": each sample in this gallery declares its own actors,
|
|
259
|
+
// and a kind filter is model-wide, so it would draw every other
|
|
260
|
+
// sample's clinician onto this one's lifelines. The actors this
|
|
261
|
+
// view wants are the ones it exposes by name above.
|
|
262
|
+
attribute :>> includeElementKinds = ("FunctionalFlow", "LogicalComponent");
|
|
255
263
|
}
|
|
256
264
|
}
|
|
257
265
|
|
|
@@ -311,8 +319,8 @@ package diagram_samples {
|
|
|
311
319
|
// ─── use case view ───────────────────────────────────────────────────
|
|
312
320
|
|
|
313
321
|
view deviceUseCases : MemoDiagramView {
|
|
314
|
-
expose patient;
|
|
315
|
-
expose clinician;
|
|
322
|
+
expose memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case_view::patient;
|
|
323
|
+
expose memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case_view::clinician;
|
|
316
324
|
expose serviceTechnician;
|
|
317
325
|
expose nursingStaff;
|
|
318
326
|
expose reviewStatus;
|
|
@@ -325,9 +333,56 @@ package diagram_samples {
|
|
|
325
333
|
attribute :>> diagramType = "ucd";
|
|
326
334
|
ref :>> viewpointDefinition = useCaseViewpoint;
|
|
327
335
|
part :>> selectionQuery {
|
|
328
|
-
|
|
329
|
-
|
|
336
|
+
// No "User", for the reason the sequence view gives: the actors
|
|
337
|
+
// are exposed by name, and a kind filter reaches other samples.
|
|
338
|
+
attribute :>> includeElementKinds = ("UseCase");
|
|
339
|
+
attribute :>> includeRelationshipKinds = ("ParticipatesIn", "IncludesStep", "Specialization");
|
|
330
340
|
}
|
|
331
341
|
attribute :>> layoutHint = "usecase:level=all;edge=rounded";
|
|
332
342
|
}
|
|
343
|
+
|
|
344
|
+
// ─── drill-down samples: a usage typed by a definition ───────────────
|
|
345
|
+
|
|
346
|
+
view driveOverview : MemoDiagramView {
|
|
347
|
+
expose drive;
|
|
348
|
+
expose drive::gearbox;
|
|
349
|
+
expose drive::motor;
|
|
350
|
+
expose drive::controller;
|
|
351
|
+
@MemoIdentity { :>> shortDescription = "Parts typed by definitions: gearbox has its own authored view, motor drills into generated levels, controller has nothing to open."; }
|
|
352
|
+
attribute :>> viewKind = DiagramViewKind::interconnection;
|
|
353
|
+
attribute :>> diagramType = "ibd";
|
|
354
|
+
attribute :>> rendererProfile = "ibd";
|
|
355
|
+
ref :>> viewpointDefinition = ibdViewpoint;
|
|
356
|
+
part :>> selectionQuery {
|
|
357
|
+
attribute :>> includeRelationshipKinds = ("Composes", "flow", "bind");
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
view gearboxInside : MemoDiagramView {
|
|
362
|
+
expose DrillGearbox::**;
|
|
363
|
+
@MemoIdentity { :>> shortDescription = "The authored view of the gearbox definition; every usage typed by it opens this one."; }
|
|
364
|
+
attribute :>> viewKind = DiagramViewKind::interconnection;
|
|
365
|
+
attribute :>> diagramType = "ibd";
|
|
366
|
+
attribute :>> rendererProfile = "ibd";
|
|
367
|
+
ref :>> viewpointDefinition = ibdViewpoint;
|
|
368
|
+
part :>> selectionQuery {
|
|
369
|
+
attribute :>> includeRelationshipKinds = ("Composes", "flow", "bind");
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
view servicingFlow : MemoDiagramView {
|
|
374
|
+
expose servicing::**;
|
|
375
|
+
@MemoIdentity { :>> shortDescription = "Two composite actions typed by definitions: calibrate has an authored view, confirm drills into generated steps."; }
|
|
376
|
+
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
377
|
+
attribute :>> diagramType = "afd";
|
|
378
|
+
ref :>> viewpointDefinition = actionFlowViewpoint;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
view calibrateDetail : MemoDiagramView {
|
|
382
|
+
expose DrillCalibrate::**;
|
|
383
|
+
@MemoIdentity { :>> shortDescription = "The authored view of the calibrate definition."; }
|
|
384
|
+
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
385
|
+
attribute :>> diagramType = "afd";
|
|
386
|
+
ref :>> viewpointDefinition = actionFlowViewpoint;
|
|
387
|
+
}
|
|
333
388
|
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_drill_down_view {
|
|
2
|
+
private import memo_examples_sysml_diagram_samples_viewpoints_unassigned::*;
|
|
3
|
+
private import ScalarValues::*;
|
|
4
|
+
private import memo_architecture_logical_interfaces::*;
|
|
5
|
+
private import memo_architecture_logical_structure::*;
|
|
6
|
+
private import memo_architecture_functional_functions::*;
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
|
|
10
|
+
// Parts and actions that are TYPED by a definition, so each way into a
|
|
11
|
+
// lower level can be tried on its own. The overview draws only the usages;
|
|
12
|
+
// what is inside each comes from the definition it is typed by.
|
|
13
|
+
//
|
|
14
|
+
// gearbox typed by DrillGearbox: has an authored child view
|
|
15
|
+
// (gearboxInside), so it shows the ↗ button and a way back.
|
|
16
|
+
// motor typed by DrillMotor: parts, two levels deep, and NO view,
|
|
17
|
+
// so only the generated level opens; drill again for
|
|
18
|
+
// windings, then back out.
|
|
19
|
+
// controller typed by DrillController: ports and no parts, so there is
|
|
20
|
+
// nothing to drill into and no view to open.
|
|
21
|
+
part def DrillGearbox specializes LogicalComponent {
|
|
22
|
+
in port shaftIn : DataPort { in item payload : MemoItem; }
|
|
23
|
+
out port shaftOut : DataPort { out item payload : MemoItem; }
|
|
24
|
+
part inputStage : LogicalComponent {
|
|
25
|
+
in port torqueIn : DataPort { in item payload : MemoItem; }
|
|
26
|
+
out port torqueOut : DataPort { out item payload : MemoItem; }
|
|
27
|
+
}
|
|
28
|
+
part outputStage : LogicalComponent {
|
|
29
|
+
in port torqueIn : DataPort { in item payload : MemoItem; }
|
|
30
|
+
out port torqueOut : DataPort { out item payload : MemoItem; }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
part def DrillMotor specializes LogicalComponent {
|
|
35
|
+
in port powerIn : DataPort { in item payload : MemoItem; }
|
|
36
|
+
out port torqueOut : DataPort { out item payload : MemoItem; }
|
|
37
|
+
part rotor : LogicalComponent {
|
|
38
|
+
out port torqueOut : DataPort { out item payload : MemoItem; }
|
|
39
|
+
}
|
|
40
|
+
part stator : LogicalComponent {
|
|
41
|
+
in port powerIn : DataPort { in item payload : MemoItem; }
|
|
42
|
+
part windings : LogicalComponent {
|
|
43
|
+
in port currentIn : DataPort { in item payload : MemoItem; }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
part def DrillController specializes LogicalComponent {
|
|
49
|
+
in port commandIn : DataPort { in item payload : MemoItem; }
|
|
50
|
+
out port powerOut : DataPort { out item payload : MemoItem; }
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
part def DrillDrive specializes LogicalComponent {
|
|
54
|
+
part gearbox : DrillGearbox;
|
|
55
|
+
part motor : DrillMotor;
|
|
56
|
+
part controller : DrillController;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
part drive : DrillDrive {
|
|
60
|
+
@MemoIdentity { :>> label = "Drive"; }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// The same two cases for an action flow: calibrate has an authored child
|
|
64
|
+
// view (calibrateDetail), confirm has child actions and none.
|
|
65
|
+
action def DrillCalibrate specializes SystemFunction {
|
|
66
|
+
action measure : SystemFunction;
|
|
67
|
+
action adjust : SystemFunction;
|
|
68
|
+
first start then measure;
|
|
69
|
+
first measure then adjust;
|
|
70
|
+
first adjust then done;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
action def DrillVerify specializes SystemFunction {
|
|
74
|
+
action compare : SystemFunction;
|
|
75
|
+
action sign : SystemFunction;
|
|
76
|
+
first start then compare;
|
|
77
|
+
first compare then sign;
|
|
78
|
+
first sign then done;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
action servicing : SystemFunction {
|
|
82
|
+
action calibrate : DrillCalibrate;
|
|
83
|
+
action confirm : DrillVerify;
|
|
84
|
+
first start then calibrate;
|
|
85
|
+
first calibrate then confirm;
|
|
86
|
+
first confirm then done;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -53,45 +53,45 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
53
53
|
// Component hierarchy used by the Level control:
|
|
54
54
|
// L1 system → L2 subsystems → L3 allocated components.
|
|
55
55
|
part fxPumpSystem : LogicalComponent {
|
|
56
|
-
|
|
56
|
+
@MemoIdentity { :>> label = "Infusion Pump System"; }
|
|
57
57
|
part fxSensingSubsystem : LogicalComponent {
|
|
58
|
-
|
|
59
|
-
part fxSensor : LogicalComponent {
|
|
58
|
+
@MemoIdentity { :>> label = "Sensing Subsystem"; }
|
|
59
|
+
part fxSensor : LogicalComponent {@MemoIdentity { :>> label = "Sensor Subsystem"; } }
|
|
60
60
|
}
|
|
61
61
|
part fxControlSubsystem : LogicalComponent {
|
|
62
|
-
|
|
63
|
-
part fxController : LogicalComponent {
|
|
62
|
+
@MemoIdentity { :>> label = "Control Subsystem"; }
|
|
63
|
+
part fxController : LogicalComponent {@MemoIdentity { :>> label = "Infusion Controller"; } }
|
|
64
64
|
}
|
|
65
65
|
part fxDeliverySubsystem : LogicalComponent {
|
|
66
|
-
|
|
67
|
-
part fxActuator : LogicalComponent {
|
|
66
|
+
@MemoIdentity { :>> label = "Delivery Subsystem"; }
|
|
67
|
+
part fxActuator : LogicalComponent {@MemoIdentity { :>> label = "Pump Actuator"; } }
|
|
68
68
|
}
|
|
69
69
|
part fxSafetySubsystem : LogicalComponent {
|
|
70
|
-
|
|
71
|
-
part fxSafety : LogicalComponent {
|
|
70
|
+
@MemoIdentity { :>> label = "Safety Subsystem"; }
|
|
71
|
+
part fxSafety : LogicalComponent {@MemoIdentity { :>> label = "Safety Monitor"; } }
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
action fxDeliveryFlow : SystemFunction {
|
|
76
|
-
action fxAcquire : FxAcquire {
|
|
77
|
-
action fxCompute : FxCompute {
|
|
76
|
+
action fxAcquire : FxAcquire {@MemoIdentity { :>> label = "Acquire Sensor Data"; } }
|
|
77
|
+
action fxCompute : FxCompute {@MemoIdentity { :>> label = "Compute Infusion Rate"; } }
|
|
78
78
|
|
|
79
79
|
// Split: enforce/drive/deliver runs concurrently with occlusion monitoring
|
|
80
80
|
fork fxForkDeliver;
|
|
81
|
-
action fxEnforce : FxEnforce {
|
|
82
|
-
action fxDrive : FxDrive {
|
|
83
|
-
action fxMonitor : FxMonitor {
|
|
84
|
-
action fxDetect : FxDetect {
|
|
81
|
+
action fxEnforce : FxEnforce {@MemoIdentity { :>> label = "Enforce Dose Limits"; } }
|
|
82
|
+
action fxDrive : FxDrive {@MemoIdentity { :>> label = "Drive Pump Motor"; } }
|
|
83
|
+
action fxMonitor : FxMonitor {@MemoIdentity { :>> label = "Monitor Occlusion"; } }
|
|
84
|
+
action fxDetect : FxDetect {@MemoIdentity { :>> label = "Detect Occlusion"; } }
|
|
85
85
|
join fxJoinDeliver;
|
|
86
86
|
|
|
87
87
|
// Composite function — valve sub-flow (drill-in)
|
|
88
88
|
action fxDeliver : FxDeliverMedication {
|
|
89
|
-
|
|
90
|
-
action fxOpenValve : SystemFunction {
|
|
91
|
-
action fxHoldDose : SystemFunction {
|
|
92
|
-
action fxCloseValve : SystemFunction {
|
|
89
|
+
@MemoIdentity { :>> label = "Deliver Medication"; }
|
|
90
|
+
action fxOpenValve : SystemFunction {@MemoIdentity { :>> label = "Open Valve"; } }
|
|
91
|
+
action fxHoldDose : SystemFunction {@MemoIdentity { :>> label = "Hold Metered Dose"; } out item fluid : FxMedicationFluid; }
|
|
92
|
+
action fxCloseValve : SystemFunction {@MemoIdentity { :>> label = "Close Valve"; } in item fluid : FxMedicationFluid; }
|
|
93
93
|
|
|
94
|
-
flow of FxMedicationFluid from
|
|
94
|
+
flow fxHoldDoseToFxCloseValve of FxMedicationFluid from fxHoldDose.fluid to fxCloseValve.fluid;
|
|
95
95
|
|
|
96
96
|
first start then fxOpenValve;
|
|
97
97
|
first fxOpenValve then fxHoldDose;
|
|
@@ -99,12 +99,12 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
|
|
|
99
99
|
first fxCloseValve then done;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
action fxLog : SystemFunction {
|
|
102
|
+
action fxLog : SystemFunction {@MemoIdentity { :>> label = "Log Delivery"; } }
|
|
103
103
|
|
|
104
|
-
flow of FxSensorReading from fxAcquire.reading to fxCompute.reading;
|
|
105
|
-
flow of FxRateCommand from fxEnforce.safeCommand to fxDrive.command;
|
|
106
|
-
flow of FxMotorEnergy from fxDrive.energy to fxDeliver.energy;
|
|
107
|
-
flow of FxOcclusionSignal from fxMonitor.signal to fxDetect.signal;
|
|
104
|
+
flow fxSensorReadingFlow of FxSensorReading from fxAcquire.reading to fxCompute.reading;
|
|
105
|
+
flow safeCommandToCommand of FxRateCommand from fxEnforce.safeCommand to fxDrive.command;
|
|
106
|
+
flow fxMotorEnergyFlow of FxMotorEnergy from fxDrive.energy to fxDeliver.energy;
|
|
107
|
+
flow fxOcclusionSignalFlow of FxOcclusionSignal from fxMonitor.signal to fxDetect.signal;
|
|
108
108
|
|
|
109
109
|
first start then fxAcquire;
|
|
110
110
|
first fxAcquire then fxCompute;
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml
CHANGED
|
@@ -15,8 +15,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_grid_vie
|
|
|
15
15
|
private import memo_core_common::*;
|
|
16
16
|
private import memo_core_common::MemoIdentity;
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
item fmMotorRunaway : FailureMode {
|
|
19
|
+
@MemoIdentity { :>> label = "PumpMotorRunaway"; }
|
|
20
20
|
attribute :>> failureModeKind = FailureModeKind::unintendedFunction;
|
|
21
21
|
attribute :>> effect = "Excess drug delivered beyond the prescribed rate.";
|
|
22
22
|
attribute :>> severityRating = 1;
|
|
@@ -26,8 +26,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_grid_vie
|
|
|
26
26
|
attribute :>> rpn = 6;
|
|
27
27
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
item fmAirSensorSilent : FailureMode {
|
|
30
|
+
@MemoIdentity { :>> label = "AirSensorFailsSilent"; }
|
|
31
31
|
attribute :>> failureModeKind = FailureModeKind::lossOfFunction;
|
|
32
32
|
attribute :>> effect = "Air embolism reaches the patient undetected.";
|
|
33
33
|
attribute :>> severityRating = 1;
|
|
@@ -37,8 +37,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_grid_vie
|
|
|
37
37
|
attribute :>> rpn = 12;
|
|
38
38
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
item fmOcclusionDrift : FailureMode {
|
|
41
|
+
@MemoIdentity { :>> label = "OcclusionSensorDrift"; }
|
|
42
42
|
attribute :>> failureModeKind = FailureModeKind::degradedFunction;
|
|
43
43
|
attribute :>> effect = "Occlusion is detected late, interrupting therapy.";
|
|
44
44
|
attribute :>> severityRating = 7;
|
|
@@ -20,7 +20,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_intercon
|
|
|
20
20
|
// real containment, not a port-to-port `Composes` edge, which is what
|
|
21
21
|
// CR-ONT-65 used to forbid before nesting made the rule unnecessary.
|
|
22
22
|
part coffeeMachine : LogicalComponent {
|
|
23
|
-
|
|
23
|
+
@MemoIdentity { :>> label = "Coffee Machine"; }
|
|
24
24
|
in port mainsWaterIn : DataPort { in item payload : MemoItem; }
|
|
25
25
|
out port beverageOut : DataPort { out item payload : MemoItem; }
|
|
26
26
|
inout port serviceInterface : DataPort {
|
|
@@ -29,58 +29,56 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_intercon
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
part waterTank : LogicalComponent {
|
|
32
|
-
|
|
32
|
+
@MemoIdentity { :>> label = "Water Reservoir"; }
|
|
33
33
|
out port tankWaterOut : DataPort { out item payload : MemoItem; }
|
|
34
34
|
in port tankWaterIn : DataPort { in item payload : MemoItem; }
|
|
35
35
|
}
|
|
36
36
|
part heaterAssembly : LogicalComponent {
|
|
37
|
-
|
|
37
|
+
@MemoIdentity { :>> label = "Thermal Control Assembly"; }
|
|
38
38
|
in port heaterWaterIn : DataPort { in item payload : MemoItem; }
|
|
39
39
|
out port heatedWaterOut : DataPort { out item payload : MemoItem; }
|
|
40
40
|
|
|
41
41
|
part thermostat : LogicalComponent {
|
|
42
|
-
attribute :>> name = "Thermostat";
|
|
43
42
|
in port tempReadingIn : DataPort { in item payload : MemoItem; }
|
|
44
43
|
out port powerCommandOut : DataPort { out item payload : MemoItem; }
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
part heatingElement : LogicalComponent {
|
|
48
|
-
|
|
47
|
+
@MemoIdentity { :>> label = "Water Heating Element"; }
|
|
49
48
|
in port powerIn : DataPort { in item payload : MemoItem; }
|
|
50
49
|
out port heaterStatusOut : DataPort { out item payload : MemoItem; }
|
|
51
50
|
|
|
52
51
|
part resistiveCoil : LogicalComponent {
|
|
53
|
-
|
|
52
|
+
@MemoIdentity { :>> label = "Resistive Coil"; }
|
|
54
53
|
in port coilPowerIn : DataPort { in item payload : MemoItem; }
|
|
55
54
|
out port heatOut : DataPort { out item payload : MemoItem; }
|
|
56
55
|
}
|
|
57
56
|
part temperatureSensor : LogicalComponent {
|
|
58
|
-
|
|
57
|
+
@MemoIdentity { :>> label = "Temperature Sensor"; }
|
|
59
58
|
in port heatIn : DataPort { in item payload : MemoItem; }
|
|
60
59
|
out port sensorReadingOut : DataPort { out item payload : MemoItem; }
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
63
|
part brewGroup : LogicalComponent {
|
|
65
|
-
|
|
64
|
+
@MemoIdentity { :>> label = "Brew Group"; }
|
|
66
65
|
in port brewWaterIn : DataPort { in item payload : MemoItem; }
|
|
67
66
|
out port brewedCoffeeOut : DataPort { out item payload : MemoItem; }
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
part waterSupply : LogicalComponent {
|
|
71
|
-
|
|
70
|
+
@MemoIdentity { :>> label = "Water Supply"; }
|
|
72
71
|
out port supplyWaterOut : DataPort { out item payload : MemoItem; }
|
|
73
72
|
}
|
|
74
73
|
part cup : LogicalComponent {
|
|
75
|
-
attribute :>> name = "Cup";
|
|
76
74
|
in port cupBeverageIn : DataPort { in item payload : MemoItem; }
|
|
77
75
|
}
|
|
78
76
|
|
|
79
77
|
// Transport between two components: `out` to `in`, one item moving.
|
|
80
|
-
flow from waterSupply.supplyWaterOut to coffeeMachine.mainsWaterIn;
|
|
81
|
-
flow from coffeeMachine.waterTank.tankWaterOut to coffeeMachine.heaterAssembly.heaterWaterIn;
|
|
82
|
-
flow from coffeeMachine.heaterAssembly.heatedWaterOut to coffeeMachine.brewGroup.brewWaterIn;
|
|
83
|
-
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;
|
|
84
82
|
|
|
85
83
|
// Delegation between a boundary port and the interior it stands for. These
|
|
86
84
|
// are `in`-to-`in` and `out`-to-`out`, because nothing travels: the two
|
|
@@ -91,11 +89,11 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_intercon
|
|
|
91
89
|
bind coffeeMachine.heaterAssembly.heatingElement.heaterStatusOut = coffeeMachine.serviceInterface.diagnostics;
|
|
92
90
|
|
|
93
91
|
// Internal flows within the heater assembly
|
|
94
|
-
flow from coffeeMachine.heaterAssembly.thermostat.powerCommandOut to coffeeMachine.heaterAssembly.heatingElement.powerIn;
|
|
95
|
-
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;
|
|
96
94
|
|
|
97
95
|
// Internal flows within the heating element
|
|
98
|
-
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;
|
|
99
97
|
bind coffeeMachine.heaterAssembly.heatingElement.powerIn = coffeeMachine.heaterAssembly.heatingElement.resistiveCoil.coilPowerIn;
|
|
100
98
|
bind coffeeMachine.heaterAssembly.heatingElement.temperatureSensor.sensorReadingOut = coffeeMachine.heaterAssembly.heatingElement.heaterStatusOut;
|
|
101
99
|
}
|