@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
|
@@ -97,43 +97,36 @@ package memo_viewpoints_stakeholders_concerns {
|
|
|
97
97
|
|
|
98
98
|
part def Availability :> MemoQualityAttribute {
|
|
99
99
|
@MemoIdentity { :>> providedId = "QA-1"; }
|
|
100
|
-
attribute :>> name = "Availability";
|
|
101
100
|
ref :>> addressesConcerns = (safetyConcern, reliabilityConcern, clinicalConcern);
|
|
102
101
|
attribute :>> measure = "Proportion of scheduled procedure time the function is delivered, and time to recover after a fault.";
|
|
103
102
|
}
|
|
104
103
|
part def Performance :> MemoQualityAttribute {
|
|
105
104
|
@MemoIdentity { :>> providedId = "QA-2"; }
|
|
106
|
-
attribute :>> name = "Performance";
|
|
107
105
|
ref :>> addressesConcerns = (performanceConcern, clinicalConcern);
|
|
108
106
|
attribute :>> measure = "Latency and throughput under the arrival pattern the procedure produces.";
|
|
109
107
|
}
|
|
110
108
|
part def Security :> MemoQualityAttribute {
|
|
111
109
|
@MemoIdentity { :>> providedId = "QA-3"; }
|
|
112
|
-
attribute :>> name = "Security";
|
|
113
110
|
ref :>> addressesConcerns = (cybersecurityConcern, privacyConcern, safetyConcern);
|
|
114
111
|
attribute :>> measure = "Resistance to a stated threat, and time to detect and recover from a compromise.";
|
|
115
112
|
}
|
|
116
113
|
part def Modifiability :> MemoQualityAttribute {
|
|
117
114
|
@MemoIdentity { :>> providedId = "QA-4"; }
|
|
118
|
-
attribute :>> name = "Modifiability";
|
|
119
115
|
ref :>> addressesConcerns = (regulatoryConcern);
|
|
120
116
|
attribute :>> measure = "Cost and blast radius of a stated change, including the re-verification it forces.";
|
|
121
117
|
}
|
|
122
118
|
part def Testability :> MemoQualityAttribute {
|
|
123
119
|
@MemoIdentity { :>> providedId = "QA-5"; }
|
|
124
|
-
attribute :>> name = "Testability";
|
|
125
120
|
ref :>> addressesConcerns = (regulatoryConcern, safetyConcern);
|
|
126
121
|
attribute :>> measure = "Probability that a fault present is revealed by the next test, and the effort to observe it.";
|
|
127
122
|
}
|
|
128
123
|
part def Usability :> MemoQualityAttribute {
|
|
129
124
|
@MemoIdentity { :>> providedId = "QA-6"; }
|
|
130
|
-
attribute :>> name = "Usability";
|
|
131
125
|
ref :>> addressesConcerns = (usabilityConcern, safetyConcern, clinicalConcern);
|
|
132
126
|
attribute :>> measure = "Task success and use-error rate for the intended user under use conditions (IEC 62366-1).";
|
|
133
127
|
}
|
|
134
128
|
part def Interoperability :> MemoQualityAttribute {
|
|
135
129
|
@MemoIdentity { :>> providedId = "QA-7"; }
|
|
136
|
-
attribute :>> name = "Interoperability";
|
|
137
130
|
ref :>> addressesConcerns = (interoperabilityConcern, clinicalConcern);
|
|
138
131
|
attribute :>> measure = "Proportion of exchanges with a named partner system that are correctly understood.";
|
|
139
132
|
}
|
|
@@ -146,48 +139,37 @@ package memo_viewpoints_stakeholders_concerns {
|
|
|
146
139
|
abstract part def MemoStakeholder :> MemoPart;
|
|
147
140
|
|
|
148
141
|
part def SystemArchitect :> MemoStakeholder {
|
|
149
|
-
@MemoIdentity { :>> providedId = "STK-1"; }
|
|
150
|
-
attribute :>> name = "System Architect";
|
|
142
|
+
@MemoIdentity { :>> providedId = "STK-1"; :>> label = "System Architect"; }
|
|
151
143
|
}
|
|
152
144
|
part def SoftwareArchitect :> MemoStakeholder {
|
|
153
|
-
@MemoIdentity { :>> providedId = "STK-2"; }
|
|
154
|
-
attribute :>> name = "Software Architect";
|
|
145
|
+
@MemoIdentity { :>> providedId = "STK-2"; :>> label = "Software Architect"; }
|
|
155
146
|
}
|
|
156
147
|
part def HardwareEngineer :> MemoStakeholder {
|
|
157
|
-
@MemoIdentity { :>> providedId = "STK-3"; }
|
|
158
|
-
attribute :>> name = "Hardware Engineer";
|
|
148
|
+
@MemoIdentity { :>> providedId = "STK-3"; :>> label = "Hardware Engineer"; }
|
|
159
149
|
}
|
|
160
150
|
part def SafetyEngineer :> MemoStakeholder {
|
|
161
|
-
@MemoIdentity { :>> providedId = "STK-4"; }
|
|
162
|
-
attribute :>> name = "Safety Engineer";
|
|
151
|
+
@MemoIdentity { :>> providedId = "STK-4"; :>> label = "Safety Engineer"; }
|
|
163
152
|
}
|
|
164
153
|
part def VerificationEngineer :> MemoStakeholder {
|
|
165
|
-
@MemoIdentity { :>> providedId = "STK-5"; }
|
|
166
|
-
attribute :>> name = "Verification Engineer";
|
|
154
|
+
@MemoIdentity { :>> providedId = "STK-5"; :>> label = "Verification Engineer"; }
|
|
167
155
|
}
|
|
168
156
|
part def RegulatoryEngineer :> MemoStakeholder {
|
|
169
|
-
@MemoIdentity { :>> providedId = "STK-6"; }
|
|
170
|
-
attribute :>> name = "Regulatory Engineer";
|
|
157
|
+
@MemoIdentity { :>> providedId = "STK-6"; :>> label = "Regulatory Engineer"; }
|
|
171
158
|
}
|
|
172
159
|
part def ProjectLead :> MemoStakeholder {
|
|
173
|
-
@MemoIdentity { :>> providedId = "STK-7"; }
|
|
174
|
-
attribute :>> name = "Project Lead";
|
|
160
|
+
@MemoIdentity { :>> providedId = "STK-7"; :>> label = "Project Lead"; }
|
|
175
161
|
}
|
|
176
162
|
part def SecurityEngineer :> MemoStakeholder {
|
|
177
|
-
@MemoIdentity { :>> providedId = "STK-8"; }
|
|
178
|
-
attribute :>> name = "Security Engineer";
|
|
163
|
+
@MemoIdentity { :>> providedId = "STK-8"; :>> label = "Security Engineer"; }
|
|
179
164
|
}
|
|
180
165
|
part def PrivacyEngineer :> MemoStakeholder {
|
|
181
|
-
@MemoIdentity { :>> providedId = "STK-9"; }
|
|
182
|
-
attribute :>> name = "Privacy Engineer";
|
|
166
|
+
@MemoIdentity { :>> providedId = "STK-9"; :>> label = "Privacy Engineer"; }
|
|
183
167
|
}
|
|
184
168
|
part def ClinicalEngineer :> MemoStakeholder {
|
|
185
|
-
@MemoIdentity { :>> providedId = "STK-10"; }
|
|
186
|
-
attribute :>> name = "Clinical Engineer";
|
|
169
|
+
@MemoIdentity { :>> providedId = "STK-10"; :>> label = "Clinical Engineer"; }
|
|
187
170
|
}
|
|
188
171
|
part def UsabilityEngineer :> MemoStakeholder {
|
|
189
|
-
@MemoIdentity { :>> providedId = "STK-11"; }
|
|
190
|
-
attribute :>> name = "Usability Engineer";
|
|
172
|
+
@MemoIdentity { :>> providedId = "STK-11"; :>> label = "Usability Engineer"; }
|
|
191
173
|
}
|
|
192
174
|
|
|
193
175
|
// ─── The catalog, as usages ─────────────────────────────────────────
|
|
@@ -8,10 +8,9 @@ package memo_viewpoints_ui_layout_ui_layout_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint uiLayoutViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-UIL"; }
|
|
12
|
-
attribute :>> name = "UILayoutViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-UIL"; :>> label = "UILayoutViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows screen captures with the UI element tree laid out over them."; }
|
|
14
|
-
|
|
13
|
+
doc /* Frames the user interface spatially: a captured rendering of a screen, and the UIElement tree laid out over it by each element's bounds. Supports IEC 62366-1 use-related design review and the UI description in the software design specification, by making 'which control is this, and what does it do' answerable from the picture. There is one tree, not two — the elements carrying the geometry are the same elements carrying the requirements, functions, use errors, and risk controls. */
|
|
15
14
|
attribute :>> purpose = "Review the interface as the user sees it, with every functional area backed by a design record.";
|
|
16
15
|
ref :>> stakeholders = (usabilityEngineer, softwareArchitect, safetyEngineer);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::architecture;
|
|
@@ -15,7 +15,7 @@ package memo_viewpoints_ui_layout_views_screen_layout_view {
|
|
|
15
15
|
view def MemoScreenLayoutView :> MemoDiagramView {
|
|
16
16
|
attribute :>> viewKind = DiagramViewKind::geometry;
|
|
17
17
|
@MemoIdentity { :>> shortDescription = "Screen capture overlaid with its UI element tree."; }
|
|
18
|
-
|
|
18
|
+
doc /* Renders one ScreenCapture as the backdrop and each UIElement composed under the captured screen as a boundary box at its authored bounds, coloured by boundaryColor. Bounds are relative to the parent element, so the renderer accumulates transforms down the Composes tree. Selecting an element isolates it: siblings recede rather than compete. Following an element's NavigatesTo edge swaps the backdrop to the target screen's capture, so the view walks the interface the way the user does. */
|
|
19
19
|
attribute :>> outputKind = (ViewOutputKind::diagram);
|
|
20
20
|
attribute :>> presentationKind = (PresentationKind::screenLayout);
|
|
21
21
|
attribute :>> layoutHint = "authored";
|
|
@@ -8,10 +8,9 @@ package memo_viewpoints_usability_usability_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint usabilityViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-USE"; }
|
|
12
|
-
attribute :>> name = "UsabilityViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-USE"; :>> label = "UsabilityViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows use contexts, actors, use errors, and usability requirements."; }
|
|
14
|
-
|
|
13
|
+
doc /* Default viewpoint derived from the context and requirements layers for IEC 62366-1 usability engineering — actors, use contexts, identified use errors, and requirements tagged with the usability concern. Reuses existing context-layer elements (Actor, UseContext, UseError) rather than a separate usability layer. */
|
|
15
14
|
attribute :>> purpose = "Communicate use-related hazards and usability requirements for the device.";
|
|
16
15
|
ref :>> stakeholders = (usabilityEngineer, safetyEngineer);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::requirements;
|
|
@@ -8,10 +8,9 @@ package memo_viewpoints_verification_verification_viewpoint {
|
|
|
8
8
|
private import memo_core_common::*;
|
|
9
9
|
private import memo_core_common::MemoIdentity;
|
|
10
10
|
viewpoint verificationViewpoint : MemoViewpoint {
|
|
11
|
-
@MemoIdentity { :>> providedId = "VP-VER"; }
|
|
12
|
-
attribute :>> name = "VerificationViewpoint";
|
|
11
|
+
@MemoIdentity { :>> providedId = "VP-VER"; :>> label = "VerificationViewpoint"; }
|
|
13
12
|
@MemoIdentity { :>> shortDescription = "Shows verification cases, validation cases, and the evidence they produce, traced to requirements."; }
|
|
14
|
-
|
|
13
|
+
doc /* Default viewpoint derived from the requirements and assurance layers for V&V coverage — which requirements are verified/validated, by which case, and what evidence was produced, supporting ISO 13485 §7.3.6/§7.3.7 and IEC 62304 §5.7/§5.8. */
|
|
15
14
|
attribute :>> purpose = "Communicate verification and validation coverage against requirements.";
|
|
16
15
|
ref :>> stakeholders = (verificationEngineer);
|
|
17
16
|
attribute :>> stage = WorkflowStageKind::verificationStage;
|
|
@@ -10,8 +10,7 @@ package memo_viewpoints_verification_views_verification_coverage_view {
|
|
|
10
10
|
view verificationCoverageView : MemoDiagramView {
|
|
11
11
|
expose memo_viewpoints_verification_views_verification_coverage_view::*;
|
|
12
12
|
attribute depth = 2;
|
|
13
|
-
@MemoIdentity { :>> providedId = "VIEW-VER-001"; }
|
|
14
|
-
attribute :>> name = "VerificationCoverageView";
|
|
13
|
+
@MemoIdentity { :>> providedId = "VIEW-VER-001"; :>> label = "VerificationCoverageView"; }
|
|
15
14
|
@MemoIdentity { :>> shortDescription = "Requirements with their verification cases, validation cases, and evidence."; }
|
|
16
15
|
attribute :>> outputKind = (ViewOutputKind::matrix);
|
|
17
16
|
attribute :>> presentationKind = (PresentationKind::traceMatrix);
|
|
@@ -19,8 +18,7 @@ package memo_viewpoints_verification_views_verification_coverage_view {
|
|
|
19
18
|
attribute :>> autoPopulate = true;
|
|
20
19
|
attribute :>> queryDescription = "Include requirements and their linked verification/validation cases and evidence.";
|
|
21
20
|
part :>> selectionQuery {
|
|
22
|
-
@MemoIdentity { :>> providedId = "QRY-VER-001"; }
|
|
23
|
-
attribute :>> name = "VerificationCoverageQuery";
|
|
21
|
+
@MemoIdentity { :>> providedId = "QRY-VER-001"; :>> label = "VerificationCoverageQuery"; }
|
|
24
22
|
attribute :>> includeElementKinds = ("Requirement", "VerificationCase", "ValidationCase", "MemoEvidence");
|
|
25
23
|
attribute :>> includeLayers = ("requirements", "assurance");
|
|
26
24
|
attribute :>> rationaleText = "Auto-populate V&V coverage from the requirements and assurance layers.";
|
|
Binary file
|
|
Binary file
|
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '{{name}}'
|
|
10
|
-
entrypoint: model/
|
|
10
|
+
entrypoint: model/methodology/project.sysml
|
|
11
11
|
include: [model]
|
|
12
12
|
version: 0.1.0
|
|
13
13
|
description: MEMO architecture and assurance model
|
|
14
|
+
# The SysML compiler every MEMO command uses (internal, syside or opensysml), and
|
|
15
|
+
# the packager `memo pack` uses (internal or sysand).
|
|
16
|
+
# Required; MEMO chooses none for a project that does not.
|
|
17
|
+
toolchain:
|
|
18
|
+
packager: internal
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
package project_architecture {
|
|
2
|
-
private import
|
|
2
|
+
private import memo_core_common::*;
|
|
3
|
+
private import memo_core_common::MemoIdentity;
|
|
4
|
+
private import memo_architecture_logical_structure::*;
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
// The product, as a System: the kind a workspace is made from, and a kind the explorer files
|
|
7
|
+
// under Architecture. (A bare `MemoPart` is the abstract base and files under evidence.)
|
|
8
|
+
part def ProductSystem specializes System {
|
|
9
|
+
@MemoIdentity { :>> label = "{{name}}"; }
|
|
6
10
|
}
|
|
7
11
|
}
|
|
@@ -17,10 +17,9 @@ package project_catalog {
|
|
|
17
17
|
|
|
18
18
|
private import memo_core_common::*;
|
|
19
19
|
private import memo_core_common::MemoIdentity;
|
|
20
|
-
part projectMethodBinding :
|
|
21
|
-
@MemoIdentity { :>> providedId = "PMB-001"; }
|
|
22
|
-
attribute :>>
|
|
23
|
-
attribute :>> projectName = "{{name}}";
|
|
20
|
+
part projectMethodBinding : ModelMethodBinding {
|
|
21
|
+
@MemoIdentity { :>> providedId = "PMB-001"; :>> label = "{{name}}ModelMethodBinding"; }
|
|
22
|
+
attribute :>> modelName = "{{name}}";
|
|
24
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
25
24
|
// The project adds no modules of its own yet. Under `explicit` an
|
|
26
25
|
// empty additive list means exactly that — no additions — rather than
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
format: memo.viewlayout/v1
|
|
2
|
-
viewSource: model/catalog/viewpoints/unassigned/views/context_view.sysml
|
|
3
|
-
layouts:
|
|
4
|
-
diag-sample-sampleContextView:
|
|
5
|
-
nodes:
|
|
6
|
-
__context_boundary__:
|
|
7
|
-
x: 327.4
|
|
8
|
-
y: 109
|
|
9
|
-
ports: {}
|
|
10
|
-
infusionSystem:
|
|
11
|
-
x: 92
|
|
12
|
-
y: 74
|
|
13
|
-
ports: {}
|
|
14
|
-
biomedTech:
|
|
15
|
-
x: 40
|
|
16
|
-
y: 40
|
|
17
|
-
ports: {}
|
|
18
|
-
clinician:
|
|
19
|
-
x: 53.400000000000006
|
|
20
|
-
y: 146
|
|
21
|
-
ports: {}
|
|
22
|
-
patient:
|
|
23
|
-
x: 53.400000000000006
|
|
24
|
-
y: 252
|
|
25
|
-
ports: {}
|
|
26
|
-
homeContext:
|
|
27
|
-
x: 440
|
|
28
|
-
y: 600
|
|
29
|
-
ports: {}
|
|
30
|
-
pharmacySystem:
|
|
31
|
-
x: 855.4
|
|
32
|
-
y: 199
|
|
33
|
-
ports: {}
|
|
34
|
-
edges:
|
|
35
|
-
rel-8: {}
|
|
36
|
-
rel-9: {}
|
|
37
|
-
rel-10: {}
|
|
38
|
-
rel-11: {}
|
|
39
|
-
rel-12: {}
|
|
40
|
-
annotations: {}
|
|
41
|
-
canvas:
|
|
42
|
-
autoLayout: false
|
|
43
|
-
zoom: 0.7154088050314465
|
|
44
|
-
pan:
|
|
45
|
-
x: 50.15487421383642
|
|
46
|
-
y: -9.616352201257882
|
|
47
|
-
coordinateSpace: context-child-v1
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
format: memo.viewlayout/v1
|
|
2
|
-
viewSource: model/catalog/viewpoints/unassigned/views/interconnection_view.sysml
|
|
3
|
-
layouts:
|
|
4
|
-
diag-sample-sampleInterconnectionView:
|
|
5
|
-
nodes:
|
|
6
|
-
coffeeMachine:
|
|
7
|
-
x: 301.2
|
|
8
|
-
y: 0
|
|
9
|
-
ports:
|
|
10
|
-
mainsWaterIn:
|
|
11
|
-
x: -12
|
|
12
|
-
y: 95
|
|
13
|
-
side: left
|
|
14
|
-
beverageOut:
|
|
15
|
-
x: 536
|
|
16
|
-
y: 375
|
|
17
|
-
side: right
|
|
18
|
-
serviceInterface:
|
|
19
|
-
x: 536
|
|
20
|
-
y: 217
|
|
21
|
-
side: right
|
|
22
|
-
diagnostics:
|
|
23
|
-
x: 536
|
|
24
|
-
y: 247
|
|
25
|
-
side: right
|
|
26
|
-
width: 768
|
|
27
|
-
height: 422
|
|
28
|
-
waterTank:
|
|
29
|
-
x: 118.75
|
|
30
|
-
y: 48
|
|
31
|
-
ports:
|
|
32
|
-
tankWaterOut:
|
|
33
|
-
x: 299.5
|
|
34
|
-
y: 47
|
|
35
|
-
side: right
|
|
36
|
-
tankWaterIn:
|
|
37
|
-
x: -12
|
|
38
|
-
y: 47
|
|
39
|
-
side: left
|
|
40
|
-
heaterAssembly:
|
|
41
|
-
x: 78.80000000000001
|
|
42
|
-
y: 220
|
|
43
|
-
ports:
|
|
44
|
-
heaterWaterIn:
|
|
45
|
-
x: -12
|
|
46
|
-
y: 47
|
|
47
|
-
side: left
|
|
48
|
-
heatedWaterOut:
|
|
49
|
-
x: 352
|
|
50
|
-
y: 47
|
|
51
|
-
side: right
|
|
52
|
-
brewGroup:
|
|
53
|
-
x: 134
|
|
54
|
-
y: 328
|
|
55
|
-
ports:
|
|
56
|
-
brewWaterIn:
|
|
57
|
-
x: -12
|
|
58
|
-
y: 47
|
|
59
|
-
side: left
|
|
60
|
-
brewedCoffeeOut:
|
|
61
|
-
x: 268
|
|
62
|
-
y: 47
|
|
63
|
-
side: right
|
|
64
|
-
waterSupply:
|
|
65
|
-
x: 0
|
|
66
|
-
y: 170
|
|
67
|
-
ports:
|
|
68
|
-
supplyWaterOut:
|
|
69
|
-
x: 198.8
|
|
70
|
-
y: 47
|
|
71
|
-
side: right
|
|
72
|
-
cup:
|
|
73
|
-
x: 1000
|
|
74
|
-
y: 320
|
|
75
|
-
ports:
|
|
76
|
-
cupBeverageIn:
|
|
77
|
-
x: -12
|
|
78
|
-
y: 50
|
|
79
|
-
side: left
|
|
80
|
-
edges:
|
|
81
|
-
rel-66: {}
|
|
82
|
-
rel-67: {}
|
|
83
|
-
rel-68: {}
|
|
84
|
-
rel-69: {}
|
|
85
|
-
rel-70: {}
|
|
86
|
-
rel-71: {}
|
|
87
|
-
annotations: {}
|
|
88
|
-
canvas:
|
|
89
|
-
autoLayout: false
|
|
90
|
-
zoom: 0.83251321227496
|
|
91
|
-
pan:
|
|
92
|
-
x: -129.43112026011397
|
|
93
|
-
y: -3.900376690780462
|
|
94
|
-
coordinateSpace: context-child-v1
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
format: memo.viewlayout/v1
|
|
2
|
-
viewSource: model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml
|
|
3
|
-
layouts:
|
|
4
|
-
diag-sample-opSetupView:
|
|
5
|
-
nodes: {}
|
|
6
|
-
edges: {}
|
|
7
|
-
canvas:
|
|
8
|
-
autoLayout: true
|
|
9
|
-
zoom: 0.3666153460391409
|
|
10
|
-
pan:
|
|
11
|
-
x: 359.78478424853927
|
|
12
|
-
y: 41.19938625300375
|
|
13
|
-
coordinateSpace: context-child-v1
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
package memo_examples_ui_screen_regions_relationships {
|
|
2
|
-
private import memo_artifacts_configuration_management::*;
|
|
3
|
-
private import memo_assurance_safety_risk::*;
|
|
4
|
-
private import memo_examples_ui_screen_regions_architecture_implementation_ui::*;
|
|
5
|
-
private import memo_examples_ui_screen_regions_assurance_requirements::*;
|
|
6
|
-
connection rel_tracesRisk_uiElement12_reqDrugIdentityDisplay : TracesRisk connect sourceRiskElement ::> elMainScreen::uiElement12 to targetRiskElement ::> reqDrugIdentityDisplay;
|
|
7
|
-
connection rel_changes_uiElement12_reqDrugIdentityDisplay : Changes connect changeRequest ::> elMainScreen::uiElement12 to changedElement ::> reqDrugIdentityDisplay;
|
|
8
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
package memo_extension_aadl_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
part aadlExtensionMethod : MethodologyDefinition {
|
|
10
|
-
@MemoIdentity { :>> providedId = "EXT-AADL-001"; }
|
|
11
|
-
attribute :>> name = "AadlCorrespondenceExtension";
|
|
12
|
-
attribute :>> version = "0.7.0";
|
|
13
|
-
attribute :>> domain = "AADL (SAE AS5506) software runtime";
|
|
14
|
-
attribute :>> description = "Adds the AADL correspondence profile and the process / thread / virtual-processor runtime families.";
|
|
15
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
16
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
17
|
-
attribute :>> includedModule = "memo_extension_aadl";
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
package memo_extension_clinical_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
part clinicalExtensionMethod : MethodologyDefinition {
|
|
10
|
-
@MemoIdentity { :>> providedId = "EXT-CLINICAL-001"; }
|
|
11
|
-
attribute :>> name = "ClinicalProcedureExtension";
|
|
12
|
-
attribute :>> version = "0.6.5";
|
|
13
|
-
attribute :>> domain = "clinical procedures";
|
|
14
|
-
attribute :>> description = "Adds optional clinical-procedure vocabulary to a MEMO project.";
|
|
15
|
-
// The base is a typed SysML reference, not a name to keep in sync with
|
|
16
|
-
// another file. `baseMethodName` was the pre-flip spelling and no
|
|
17
|
-
// longer resolves.
|
|
18
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
19
|
-
// An extension adds its own module to whatever its base selected;
|
|
20
|
-
// saying so explicitly is required now that an empty list means empty.
|
|
21
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
22
|
-
attribute :>> includedModule = "memo_extension_clinical";
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
package memo_extension_cloud_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
part cloudExtensionMethod : MethodologyDefinition {
|
|
10
|
-
@MemoIdentity { :>> providedId = "EXT-CLOUD-001"; }
|
|
11
|
-
attribute :>> name = "CloudRuntimeExtension";
|
|
12
|
-
attribute :>> version = "0.7.0";
|
|
13
|
-
attribute :>> domain = "networked services and managed data stores";
|
|
14
|
-
attribute :>> description = "Adds service and data-store runtime families with their contracts, discovery, and retention.";
|
|
15
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
16
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
17
|
-
attribute :>> includedModule = "memo_extension_cloud";
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
package memo_extension_container_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
part containerExtensionMethod : MethodologyDefinition {
|
|
10
|
-
@MemoIdentity { :>> providedId = "EXT-CONTAINER-001"; }
|
|
11
|
-
attribute :>> name = "ContainerDeploymentExtension";
|
|
12
|
-
attribute :>> version = "0.7.0";
|
|
13
|
-
attribute :>> domain = "containerized deployment";
|
|
14
|
-
attribute :>> description = "Adds OCI container images and container runtimes as deployment content.";
|
|
15
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
16
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
17
|
-
attribute :>> includedModule = "memo_extension_container";
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
package memo_extension_messaging_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
part messagingExtensionMethod : MethodologyDefinition {
|
|
10
|
-
@MemoIdentity { :>> providedId = "EXT-MESSAGING-001"; }
|
|
11
|
-
attribute :>> name = "MessagingExtension";
|
|
12
|
-
attribute :>> version = "0.7.0";
|
|
13
|
-
attribute :>> domain = "publish/subscribe messaging";
|
|
14
|
-
attribute :>> description = "Adds message items, publisher/subscriber ports, topic interfaces, brokers, and delivery semantics.";
|
|
15
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
16
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
17
|
-
attribute :>> includedModule = "memo_extension_messaging";
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
package memo_extension_ros_methodology {
|
|
2
|
-
private import ScalarValues::*;
|
|
3
|
-
private import memo_methodology_core::*;
|
|
4
|
-
private import memo_methodology_profiles::*;
|
|
5
|
-
private import memo_core_enumerations::*;
|
|
6
|
-
|
|
7
|
-
private import memo_core_common::*;
|
|
8
|
-
private import memo_core_common::MemoIdentity;
|
|
9
|
-
// An extension that builds on other extensions names them all here.
|
|
10
|
-
// `baseMethodology` is [0..1] — single inheritance, deliberate — but
|
|
11
|
-
// `includedModule` is [0..*], so this is how a dependency between
|
|
12
|
-
// extensions is expressed. There is no chaining and no second base.
|
|
13
|
-
part rosExtensionMethod : MethodologyDefinition {
|
|
14
|
-
@MemoIdentity { :>> providedId = "EXT-ROS-001"; }
|
|
15
|
-
attribute :>> name = "Ros2Extension";
|
|
16
|
-
attribute :>> version = "0.7.0";
|
|
17
|
-
attribute :>> domain = "ROS 2 robotics middleware";
|
|
18
|
-
attribute :>> description = "Adds ROS 2 nodes, messages, directional ports, topic/service/action interfaces, QoS, and containerized deployment.";
|
|
19
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
20
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
21
|
-
attribute :>> includedModule = (
|
|
22
|
-
"memo_extension_messaging",
|
|
23
|
-
"memo_extension_container",
|
|
24
|
-
"memo_extension_ros"
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// Skeleton for a new MEMO extension. Copy the directory, rename the packages,
|
|
2
|
-
// and replace the prefix.
|
|
3
|
-
//
|
|
4
|
-
// Two conventions this file follows and every extension must (extensions/README.md):
|
|
5
|
-
//
|
|
6
|
-
// 1. Every definition an extension declares is prefixed with the PascalCase
|
|
7
|
-
// form of the extension's directory name — `template/` gives `Template`.
|
|
8
|
-
// Extension names share one flat namespace with the base and with each
|
|
9
|
-
// other, so the prefix is what keeps two independent extensions from both
|
|
10
|
-
// declaring `Node`.
|
|
11
|
-
// 2. A relation an extension declares specializes a base relation. It never
|
|
12
|
-
// roots independently.
|
|
13
|
-
//
|
|
14
|
-
// This package used to bind `baseMethodName = "MedicalDeviceLightDefault"` — a
|
|
15
|
-
// pre-flip spelling that resolves to nothing. It went unnoticed for as long as
|
|
16
|
-
// extensions lived under `examples/`, where the build did not check them; the
|
|
17
|
-
// build checks `extensions/` now, and reported it on the first run.
|
|
18
|
-
package memo_extension_template {
|
|
19
|
-
private import ScalarValues::*;
|
|
20
|
-
private import memo_core_enumerations::*;
|
|
21
|
-
private import memo_methodology_core::*;
|
|
22
|
-
private import memo_methodology_profiles::*;
|
|
23
|
-
|
|
24
|
-
private import memo_core_common::*;
|
|
25
|
-
private import memo_core_common::MemoIdentity;
|
|
26
|
-
part extensionMethod : MethodologyDefinition {
|
|
27
|
-
@MemoIdentity { :>> providedId = "EXT-METH-001"; }
|
|
28
|
-
attribute :>> name = "ExtensionMethod";
|
|
29
|
-
attribute :>> version = "0.1.0";
|
|
30
|
-
attribute :>> domain = "project extension";
|
|
31
|
-
attribute :>> description = "Adds a project or domain package to the selected MEMO methodology.";
|
|
32
|
-
// The base is a typed SysML reference, not a name held in sync by hand.
|
|
33
|
-
ref :>> baseMethodology = mdDefaultDefinition;
|
|
34
|
-
// An extension adds its own module to whatever its base selected;
|
|
35
|
-
// saying so explicitly is required now that an empty list means empty.
|
|
36
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
37
|
-
attribute :>> includedModule = "replace_with_extension_package";
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Application/distribution descriptor for this MEMO package.
|
|
2
|
-
#
|
|
3
|
-
# Identity and location only. It records what this package is called, what
|
|
4
|
-
# version it is, and where its SysML source sits so a resolver can find it.
|
|
5
|
-
# It does not select model content: the project's native SysML imports and its
|
|
6
|
-
# ProjectMethodBinding decide what is in the model. Semantic fields
|
|
7
|
-
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
|
-
# removed at the native semantic flip and are now rejected if present.
|
|
9
|
-
name: '{{name}}'
|
|
10
|
-
entrypoint: model/catalog/project.sysml
|
|
11
|
-
include: [model]
|
|
12
|
-
version: 0.1.0
|
|
13
|
-
description: MEMO connected device model
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
// Project identity and method binding — the project's native entrypoint.
|
|
2
|
-
//
|
|
3
|
-
// The imports below name the reusable packages this project resolves, and the
|
|
4
|
-
// binding names its methodology with a typed SysML reference. Nothing outside
|
|
5
|
-
// SysML selects model content: delete every YAML file beside this one and the
|
|
6
|
-
// model still means exactly what it means now.
|
|
7
|
-
package connected_device_catalog {
|
|
8
|
-
private import ScalarValues::*;
|
|
9
|
-
|
|
10
|
-
private import memo_core_enumerations::*;
|
|
11
|
-
private import memo_methodology_core::*;
|
|
12
|
-
private import memo_methodology_profiles::*;
|
|
13
|
-
|
|
14
|
-
private import connected_device_architecture::*;
|
|
15
|
-
private import connected_device_assurance::*;
|
|
16
|
-
private import connected_device_artifacts::*;
|
|
17
|
-
|
|
18
|
-
private import memo_core_common::*;
|
|
19
|
-
private import memo_core_common::MemoIdentity;
|
|
20
|
-
part projectMethodBinding : ProjectMethodBinding {
|
|
21
|
-
@MemoIdentity { :>> providedId = "PMB-001"; }
|
|
22
|
-
attribute :>> name = "{{name}}ProjectMethodBinding";
|
|
23
|
-
attribute :>> projectName = "{{name}}";
|
|
24
|
-
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
25
|
-
// The project adds no modules of its own yet. Under `explicit` an
|
|
26
|
-
// empty additive list means exactly that — no additions — rather than
|
|
27
|
-
// being read as "everything".
|
|
28
|
-
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
29
|
-
}
|
|
30
|
-
}
|