@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
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
// MEMO base hierarchy. Construct-specific foundations: one base per
|
|
2
2
|
// SysML v2 metaclass family (part, action, port, interface, item, use case,
|
|
3
3
|
// requirement, constraint, verification, state, connection), each carrying
|
|
4
|
-
// the shared MEMO semantics. Common inheritance
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
// memo_core_dimensions.
|
|
4
|
+
// the shared MEMO semantics. Common inheritance across metaclasses is not
|
|
5
|
+
// portable, so classification is shared through the metadata defs in
|
|
6
|
+
// memo_core_dimensions rather than through a superclass.
|
|
8
7
|
//
|
|
9
|
-
// ───
|
|
10
|
-
//
|
|
11
|
-
//
|
|
8
|
+
// ─── Where identity lives ───────────────────────────────────────────────
|
|
9
|
+
// Not in these bases. `@MemoIdentity`, below, is the one carrier: a
|
|
10
|
+
// `metadata def` annotates an element of ANY metaclass, so it reaches the
|
|
11
|
+
// action, port, item, requirement and connection families that KerML will
|
|
12
|
+
// not let inherit from a part def. The bases used to re-declare an
|
|
13
|
+
// "identification core" ten times over for exactly that reason, and ten
|
|
14
|
+
// copies of one fact drifted every time (MemoPort carried no sourceReference
|
|
15
|
+
// and no status; MemoRequirement and MemoNeed each invented their own status
|
|
16
|
+
// attribute). One declaration replaced ten.
|
|
12
17
|
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
18
|
+
// `name` and `description` were the last two to go. Neither was ever MEMO's
|
|
19
|
+
// to declare: every SysML element already has a native name, and `doc` is
|
|
20
|
+
// already the native slot for prose. What the bases added was a second place
|
|
21
|
+
// to write the same fact, and 188 of the 1373 elements that set `name` set it
|
|
22
|
+
// to the identifier they were already declared under. Display text is now
|
|
23
|
+
// `@MemoIdentity { label }` and prose is `doc`.
|
|
15
24
|
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
// The duplication is a language constraint, not a design choice — so treat
|
|
19
|
-
// the block as one unit: anything added or removed here is added or removed
|
|
20
|
-
// in all of them. The drift this replaces was real (MemoPort carried no
|
|
21
|
-
// sourceReference and no status; MemoRequirement and MemoNeed each invented
|
|
22
|
-
// their own status attribute), and drift here shows up as an element whose
|
|
23
|
-
// properties panel is missing fields its neighbours have.
|
|
25
|
+
// What remains on a base is domain semantics — `status`, and whatever that
|
|
26
|
+
// metaclass family genuinely needs.
|
|
24
27
|
//
|
|
25
28
|
// `uuid` is the stable technical identity: never displayed, never used as a
|
|
26
29
|
// label, never reused. Authors normally leave it unset and let the compiler
|
|
@@ -40,8 +43,8 @@ package memo_core_common {
|
|
|
40
43
|
// opt-in through `annotatedElement`, and this one declares none. That is
|
|
41
44
|
// what the per-metaclass base definitions below cannot do: KerML will not
|
|
42
45
|
// let an action, port, item, requirement or connection inherit from a part
|
|
43
|
-
// def, which is why the identification core
|
|
44
|
-
//
|
|
46
|
+
// def, which is why the identification core was once declared ten times
|
|
47
|
+
// over. Metadata has no such limit, so one declaration replaced ten.
|
|
45
48
|
//
|
|
46
49
|
// An element has five identities and they are not interchangeable:
|
|
47
50
|
//
|
|
@@ -96,18 +99,18 @@ package memo_core_common {
|
|
|
96
99
|
// (memo_architecture_* xor memo_assurance_*), enforced by CR-ONT-045.
|
|
97
100
|
// The remaining dimensions are orthogonal to the axis: realization stage,
|
|
98
101
|
// cross-cutting concern, and editorial status.
|
|
102
|
+
// Deliberately NOT declared here: `name` and `description`. A name slot on
|
|
103
|
+
// a MEMO base is a second spelling of the native name every SysML element
|
|
104
|
+
// already has, and a description slot is a second spelling of `doc`. Both
|
|
105
|
+
// were carried for years and both drifted: 1373 elements set `name`, and
|
|
106
|
+
// 188 of them set it to the identifier they were already declared under.
|
|
107
|
+
// The display label — free text, legitimately repeating — lives on
|
|
108
|
+
// `@MemoIdentity { label }`, which annotates any metaclass and so reaches
|
|
109
|
+
// the behaviours and views that cannot specialize a part. The long prose
|
|
110
|
+
// lives in `doc`. `shortDescription` on `@MemoIdentity` remains the
|
|
111
|
+
// one-line register a table cell or chip shows whole; it is a different
|
|
112
|
+
// density, not a different authority.
|
|
99
113
|
abstract part def MemoPart {
|
|
100
|
-
// identity
|
|
101
|
-
attribute name : String;
|
|
102
|
-
// Two description registers on every MEMO element, because views have
|
|
103
|
-
// two densities. `shortDescription` is the one-line form a table cell,
|
|
104
|
-
// matrix header, chip, or diagram node can show whole; `description` is
|
|
105
|
-
// the full prose a properties panel or a generated document section
|
|
106
|
-
// renders. A view picks the register that fits — it never truncates
|
|
107
|
-
// the long one, because a silently clipped sentence in a DHF table is
|
|
108
|
-
// a defect, not a layout choice.
|
|
109
|
-
attribute description : String;
|
|
110
|
-
// traceability
|
|
111
114
|
// editorial status and lifecycle
|
|
112
115
|
attribute status : ElementStatusKind;
|
|
113
116
|
attribute lifecycleState : LifecycleStateKind;
|
|
@@ -148,35 +151,16 @@ package memo_core_common {
|
|
|
148
151
|
}
|
|
149
152
|
abstract part def AnalysisArtifact specializes MemoPart;
|
|
150
153
|
|
|
151
|
-
// Document-bound elements add only what a document needs beyond the two
|
|
152
|
-
// description registers every MemoPart now carries: a title and its place
|
|
153
|
-
// in a document. The former `shortDescription`/`longDescription` pair is
|
|
154
|
-
// gone — short is inherited, and `description` IS the long form.
|
|
155
|
-
// Top-level goal a system or operation exists to fulfil, with its success
|
|
156
|
-
// criteria and context. Domain layers specialize it; the medical-device
|
|
157
|
-
// intended use (memo_architecture_operational_structure::IntendedUse) is a
|
|
158
|
-
// MemoMission. Specializes MemoPart directly — name/description/rationale
|
|
159
|
-
// already live there, so no DocumentedElement layer is needed.
|
|
160
|
-
abstract part def MemoMission specializes MemoPart {
|
|
161
|
-
attribute missionKind : String;
|
|
162
|
-
attribute successCriteria : String;
|
|
163
|
-
attribute operationalContext : String;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
154
|
// ─── Construct-specific foundations (non-part metaclasses) ───────
|
|
167
155
|
|
|
168
156
|
// Behavioral foundation: operational activities, tasks, system actions,
|
|
169
157
|
// and interaction steps specialize MemoAction.
|
|
170
158
|
action def MemoAction {
|
|
171
|
-
attribute name : String;
|
|
172
|
-
attribute description : String;
|
|
173
159
|
attribute status : ElementStatusKind;
|
|
174
160
|
}
|
|
175
161
|
|
|
176
162
|
// Boundary feature foundation for typed ports.
|
|
177
163
|
port def MemoPort {
|
|
178
|
-
attribute name : String;
|
|
179
|
-
attribute description : String;
|
|
180
164
|
attribute status : ElementStatusKind;
|
|
181
165
|
}
|
|
182
166
|
|
|
@@ -184,8 +168,6 @@ package memo_core_common {
|
|
|
184
168
|
abstract interface def MemoInterface {
|
|
185
169
|
end source;
|
|
186
170
|
end target;
|
|
187
|
-
attribute name : String;
|
|
188
|
-
attribute description : String;
|
|
189
171
|
}
|
|
190
172
|
|
|
191
173
|
// Single item foundation. Standards, hazards, stored software data, and
|
|
@@ -193,8 +175,6 @@ package memo_core_common {
|
|
|
193
175
|
// exchanged is expressed by its use in a port or flow, not by a second
|
|
194
176
|
// ontology root.
|
|
195
177
|
abstract item def MemoItem {
|
|
196
|
-
attribute name : String;
|
|
197
|
-
attribute description : String;
|
|
198
178
|
attribute status : ElementStatusKind;
|
|
199
179
|
// What the item CARRIES, as distinct from what it is called. Removed
|
|
200
180
|
// by `595bfac` while modelling native wrappers; nothing replaced them,
|
|
@@ -212,19 +192,14 @@ package memo_core_common {
|
|
|
212
192
|
}
|
|
213
193
|
|
|
214
194
|
// Use-case foundation. The domain UseCase adds its goal and actor
|
|
215
|
-
// references; identity is
|
|
216
|
-
// partial hand-written copy of the MEMO identification core.
|
|
195
|
+
// references; identity is `@MemoIdentity`, as everywhere else.
|
|
217
196
|
abstract use case def MemoUseCase {
|
|
218
|
-
attribute name : String;
|
|
219
|
-
attribute description : String;
|
|
220
197
|
attribute status : ElementStatusKind;
|
|
221
198
|
}
|
|
222
199
|
|
|
223
200
|
// General constraint foundation. Executable consistency rules and
|
|
224
201
|
// reusable quantitative constraints are both native constraint defs.
|
|
225
202
|
abstract constraint def MemoConstraint {
|
|
226
|
-
attribute name : String;
|
|
227
|
-
attribute description : String;
|
|
228
203
|
attribute status : ElementStatusKind;
|
|
229
204
|
}
|
|
230
205
|
|
|
@@ -235,8 +210,6 @@ package memo_core_common {
|
|
|
235
210
|
// say "a need or a requirement" with one type name — before it, every end
|
|
236
211
|
// that had to accept both was left untyped.
|
|
237
212
|
abstract requirement def MemoRequirementElement {
|
|
238
|
-
attribute name : String;
|
|
239
|
-
attribute description : String;
|
|
240
213
|
attribute status : ElementStatusKind;
|
|
241
214
|
attribute statement : String;
|
|
242
215
|
}
|
|
@@ -250,27 +223,37 @@ package memo_core_common {
|
|
|
250
223
|
attribute acceptanceCriteria : String;
|
|
251
224
|
}
|
|
252
225
|
|
|
226
|
+
// Top-level goal a system or operation exists to fulfil, with its success
|
|
227
|
+
// criteria and context. Domain layers specialize it; the medical-device
|
|
228
|
+
// intended use (memo_architecture_operational_structure::IntendedUse) is a
|
|
229
|
+
// MemoMission. It is a `requirement def` because a mission is the top
|
|
230
|
+
// obligation everything below it derives from, not a structural thing —
|
|
231
|
+
// it was a `part def` under MemoPart. The prose a document renders is
|
|
232
|
+
// `doc`, and the one-line register a table cell shows is
|
|
233
|
+
// `@MemoIdentity`'s `shortDescription`.
|
|
234
|
+
abstract requirement def MemoMission :> MemoRequirementElement {
|
|
235
|
+
attribute missionKind : String;
|
|
236
|
+
attribute successCriteria : String;
|
|
237
|
+
attribute operationalContext : String;
|
|
238
|
+
}
|
|
239
|
+
|
|
253
240
|
// Verification-case foundation. A SysML v2 verification case is a behaviour
|
|
254
241
|
// (it checks requirements), and KerML forbids a behaviour from specializing
|
|
255
|
-
// the part-based MemoPart — so, like MemoAction, it
|
|
256
|
-
//
|
|
242
|
+
// the part-based MemoPart — so, like MemoAction, it stands on its own and
|
|
243
|
+
// takes its identity from `@MemoIdentity`.
|
|
257
244
|
verification def MemoVerificationCase {
|
|
258
|
-
attribute name : String;
|
|
259
|
-
attribute description : String;
|
|
260
245
|
attribute status : ElementStatusKind;
|
|
261
246
|
}
|
|
262
247
|
|
|
263
248
|
// State foundation. SysML v2 states (state machines and their mode states)
|
|
264
249
|
// are behaviours, so — like MemoAction and MemoVerificationCase — they
|
|
265
|
-
//
|
|
250
|
+
// cannot specialize MemoPart and are annotated instead.
|
|
266
251
|
// Transitions stay part-based to keep their traceable safety
|
|
267
252
|
// attributes (id, sourceReference, priority, sameStepCritical).
|
|
268
253
|
enum def StateKind { enum mode; enum logical; }
|
|
269
254
|
|
|
270
255
|
state def MemoState {
|
|
271
256
|
attribute stateKind : StateKind;
|
|
272
|
-
attribute name : String;
|
|
273
|
-
attribute description : String;
|
|
274
257
|
attribute status : ElementStatusKind;
|
|
275
258
|
attribute modeKind : String;
|
|
276
259
|
attribute entryCondition : String;
|
|
@@ -89,6 +89,41 @@ package memo_core_enumerations {
|
|
|
89
89
|
enum mechanical;
|
|
90
90
|
enum fluidic;
|
|
91
91
|
}
|
|
92
|
+
// How a physical interface encodes what it carries. InterfaceKind says
|
|
93
|
+
// WHAT crosses (data, control, power); this says HOW the signal is
|
|
94
|
+
// represented, which decides what has to be specified about it:
|
|
95
|
+
enum def SignalingKind {
|
|
96
|
+
doc /* Continuous value: the quantity IS the information (a 0.5-4.5 V
|
|
97
|
+
* sensor output, a 4-20 mA loop). Needs a range, accuracy and
|
|
98
|
+
* noise bound. */
|
|
99
|
+
enum analog;
|
|
100
|
+
doc /* Encoded symbols: the information is bits, serial or parallel,
|
|
101
|
+
* framed by a protocol (SPI, CAN, Ethernet). Needs a protocol,
|
|
102
|
+
* a bit rate and a logic level. */
|
|
103
|
+
enum digital;
|
|
104
|
+
doc /* One level means one of two states (a switch contact, an
|
|
105
|
+
* enable line). Needs a logic level and a debounce, not a
|
|
106
|
+
* protocol. */
|
|
107
|
+
enum discrete;
|
|
108
|
+
doc /* The information is in the timing of edges: PWM duty, step and
|
|
109
|
+
* direction, frequency output. Needs a frequency range and a
|
|
110
|
+
* resolution. */
|
|
111
|
+
enum pulse;
|
|
112
|
+
doc /* Power transfer, not signalling: the quantity is delivered for
|
|
113
|
+
* its energy. Needs a rating, not a protocol. */
|
|
114
|
+
enum powerTransfer;
|
|
115
|
+
}
|
|
116
|
+
// The physical medium a hardware connection runs over.
|
|
117
|
+
enum def PhysicalMediumKind {
|
|
118
|
+
enum electrical;
|
|
119
|
+
enum fluidic;
|
|
120
|
+
enum pneumatic;
|
|
121
|
+
enum mechanical;
|
|
122
|
+
enum optical;
|
|
123
|
+
enum acoustic;
|
|
124
|
+
enum thermal;
|
|
125
|
+
enum radioFrequency;
|
|
126
|
+
}
|
|
92
127
|
// AADL (SAE AS5506) port category. Distinct from InterfaceKind, which says
|
|
93
128
|
// WHAT crosses a port; this says HOW it is delivered, and the difference is
|
|
94
129
|
// safety-relevant: when a deadline is missed a `data` port overwrites the
|
|
@@ -135,12 +170,12 @@ package memo_core_enumerations {
|
|
|
135
170
|
//
|
|
136
171
|
// Interface.direction / .directionality (interface def)
|
|
137
172
|
// LogicalConnector.direction (connection def)
|
|
138
|
-
//
|
|
139
|
-
// ComponentExchange.direction (part def)
|
|
173
|
+
// ComponentExchange.direction (interface def)
|
|
140
174
|
// OperationalInteraction.direction (part def)
|
|
141
175
|
//
|
|
142
|
-
// Deleting it would have cost those
|
|
143
|
-
// was only ever the port case.
|
|
176
|
+
// Deleting it would have cost those four their direction; the reinvention
|
|
177
|
+
// was only ever the port case. `LogicalExchange.direction` was a fifth and
|
|
178
|
+
// went when the exchange became a flow between ports (2026-09-25).
|
|
144
179
|
enum def DirectionKind {
|
|
145
180
|
enum input;
|
|
146
181
|
enum output;
|
|
@@ -180,11 +215,11 @@ package memo_core_enumerations {
|
|
|
180
215
|
enum formalProof;
|
|
181
216
|
enum modelChecking;
|
|
182
217
|
}
|
|
183
|
-
// The submission regime a
|
|
184
|
-
// standing in. This is the axis that decides which clauses a
|
|
185
|
-
// required to claim: `required(
|
|
186
|
-
// whose `appliesToRegime` intersects the regimes the
|
|
187
|
-
//
|
|
218
|
+
// The submission regime a model targets, and the regimes a standard has
|
|
219
|
+
// standing in. This is the axis that decides which clauses a model is
|
|
220
|
+
// required to claim: `required(model)` is the clauses of every standard
|
|
221
|
+
// whose `appliesToRegime` intersects the regimes the model's
|
|
222
|
+
// ModelMethodBinding declares.
|
|
188
223
|
//
|
|
189
224
|
// The members are spelled as the regulatory designations themselves rather
|
|
190
225
|
// than in the lowerCamel convention the rest of this file uses. All 44 DHF
|
|
@@ -367,6 +402,33 @@ package memo_core_enumerations {
|
|
|
367
402
|
enum assurance;
|
|
368
403
|
enum methodology;
|
|
369
404
|
}
|
|
405
|
+
// Why a rule exists. `modelling` rules keep a model well formed whatever the
|
|
406
|
+
// product is. `medicalDevice` rules exist because a medical-device standard or
|
|
407
|
+
// guidance asks for the thing they check, and each should say which clause it
|
|
408
|
+
// enforces (`#EnforcesClause dependency from <rule> to <clause>`). `organisation` rules are a user's own.
|
|
409
|
+
enum def RuleDomainKind {
|
|
410
|
+
enum modelling;
|
|
411
|
+
enum medicalDevice;
|
|
412
|
+
enum organisation;
|
|
413
|
+
}
|
|
414
|
+
// How firmly the rule's source asks for what it checks, separate from the
|
|
415
|
+
// severity a finding carries and from how far the rule may be tailored. A
|
|
416
|
+
// `required` rule enforces a clause that says "shall"; a `recommended` one a
|
|
417
|
+
// clause that says "should", or a practice the ontology holds as sound;
|
|
418
|
+
// `bestPractice` is advice with no clause behind it. A rule that states no
|
|
419
|
+
// severity takes one from this: error, warning, info.
|
|
420
|
+
enum def RuleObligationKind {
|
|
421
|
+
enum required;
|
|
422
|
+
enum recommended;
|
|
423
|
+
enum bestPractice;
|
|
424
|
+
}
|
|
425
|
+
// How a relation places elements in a workspace; see
|
|
426
|
+
// memo_core_relationships_workspace_membership.
|
|
427
|
+
enum def WorkspaceMembershipKind {
|
|
428
|
+
enum sourceFollowsTarget;
|
|
429
|
+
enum targetFollowsSource;
|
|
430
|
+
enum neither;
|
|
431
|
+
}
|
|
370
432
|
enum def RuleDispositionKind {
|
|
371
433
|
enum enabled;
|
|
372
434
|
enum disabled;
|
|
@@ -391,6 +453,19 @@ package memo_core_enumerations {
|
|
|
391
453
|
enum verificationStage;
|
|
392
454
|
enum evidence;
|
|
393
455
|
enum documents;
|
|
456
|
+
// The stages of the default method's steps (plan O11), beyond the six above.
|
|
457
|
+
enum operational;
|
|
458
|
+
enum functional;
|
|
459
|
+
enum logical;
|
|
460
|
+
enum physical;
|
|
461
|
+
enum humanFactors;
|
|
462
|
+
enum security;
|
|
463
|
+
enum release;
|
|
464
|
+
}
|
|
465
|
+
// The level a method step is worked at: the system of systems, or one system.
|
|
466
|
+
enum def MethodLevelKind {
|
|
467
|
+
enum systemOfSystems;
|
|
468
|
+
enum system;
|
|
394
469
|
}
|
|
395
470
|
enum def ThreatCategoryKind {
|
|
396
471
|
enum spoofing;
|
|
@@ -426,6 +501,15 @@ package memo_core_enumerations {
|
|
|
426
501
|
enum auditRecord;
|
|
427
502
|
enum safetyCriticalFunction;
|
|
428
503
|
}
|
|
504
|
+
// How much an asset needs confidentiality, integrity or availability
|
|
505
|
+
// protection. A rating, not prose, so assets can be compared and a rule
|
|
506
|
+
// can select the ones whose integrity need is high.
|
|
507
|
+
enum def SecurityNeedKind {
|
|
508
|
+
enum low;
|
|
509
|
+
enum medium;
|
|
510
|
+
enum high;
|
|
511
|
+
enum veryHigh;
|
|
512
|
+
}
|
|
429
513
|
enum def ViewOutputKind {
|
|
430
514
|
enum diagram;
|
|
431
515
|
enum table;
|
|
@@ -67,6 +67,23 @@ package memo_core_relationships {
|
|
|
67
67
|
attribute isUnique : Boolean;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
// ─── Typed dependencies ─────────────────────────────────────────────
|
|
71
|
+
//
|
|
72
|
+
// A link whose ends are not both usages cannot be a `connection def`: a
|
|
73
|
+
// connection joins features, and a `ref` cannot point at a definition. SysML
|
|
74
|
+
// already has the construct for a client and a supplier that are any element,
|
|
75
|
+
// the Dependency (SysML-textual-bnf.kebnf:51-59), and a metadata prefix
|
|
76
|
+
// names what kind of dependency it is (`#RealizesFeature dependency from a to
|
|
77
|
+
// b;`, PrefixMetadataAnnotation, kebnf:52). A `metadata def` that specializes
|
|
78
|
+
// this marker declares such a link as a MEMO relation: it joins the
|
|
79
|
+
// relationship registry under camelCase(name), is navigated like any other
|
|
80
|
+
// relation, and needs a row in the workspace-membership table. A metadata
|
|
81
|
+
// def that does not specialize it (`EnforcesClause`) is plain metadata on a
|
|
82
|
+
// dependency and builds no relation. Source is the client, target the
|
|
83
|
+
// supplier. Ends are untyped: what a relation may join is a rule's to say
|
|
84
|
+
// (see the note above on metaclass-neutral ends).
|
|
85
|
+
abstract metadata def MemoTypedDependency;
|
|
86
|
+
|
|
70
87
|
// ─── Metaclass-neutral ends (Track A0) ──────────────────────────────
|
|
71
88
|
//
|
|
72
89
|
// An end is left UNTYPED (`:>> source` / `:>> target`) wherever its
|
|
@@ -148,17 +165,6 @@ package memo_core_relationships {
|
|
|
148
165
|
// the tree (same free-deletion shape R10-S5 found for `rationale`), so
|
|
149
166
|
// there was no content to carry forward.
|
|
150
167
|
|
|
151
|
-
connection def ThreatenedBy :> MemoRelationship {
|
|
152
|
-
attribute threatRole : String;
|
|
153
|
-
end protectedAsset : MemoPart :>> source;
|
|
154
|
-
end realizedThreat : RequirementDriver :>> target;
|
|
155
|
-
}
|
|
156
|
-
abstract connection threatenedByLinks : ThreatenedBy[*];
|
|
157
|
-
metadata def <threatenedBy> ThreatenedByMetadata :> SemanticMetadata {
|
|
158
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
159
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
160
|
-
:>> baseType = threatenedByLinks meta SysML::Usage;
|
|
161
|
-
}
|
|
162
168
|
connection def DerivesCyberRequirement :> MemoRelationship {
|
|
163
169
|
end sourceThreatOrRisk : RequirementDriver :>> source;
|
|
164
170
|
end targetRequirement : MemoRequirementElement :>> target;
|