@memoarchitect/ontology 0.13.2 → 0.15.1
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 +61 -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
|
//
|
|
@@ -84,6 +87,16 @@ package memo_core_common {
|
|
|
84
87
|
attribute sourceReference : String[0..1];
|
|
85
88
|
}
|
|
86
89
|
|
|
90
|
+
// Marks a definition as a KIND — an extension of the ontology — rather than a model element.
|
|
91
|
+
// A project definition that specializes an ontology kind is, structurally, either a new kind
|
|
92
|
+
// (`AfferaStakeholder`) or one particular thing (`HospitalEpRecordingSystem`); nothing in the
|
|
93
|
+
// SysML tells the two apart, so the author says which. A marked definition, and what is typed
|
|
94
|
+
// by it, takes `idPrefix` as the family of its display ids (`<idPrefix>-1`). Anything unmarked
|
|
95
|
+
// takes the family of the ontology kind it descends from.
|
|
96
|
+
metadata def MemoKind {
|
|
97
|
+
attribute idPrefix : String;
|
|
98
|
+
}
|
|
99
|
+
|
|
87
100
|
// ─── Single abstract part root ──────────────────────────────────
|
|
88
101
|
// Every structural MEMO concept specializes MemoPart. Identity and
|
|
89
102
|
// traceability are attributes of this one root — MEMO has no separate
|
|
@@ -96,18 +109,18 @@ package memo_core_common {
|
|
|
96
109
|
// (memo_architecture_* xor memo_assurance_*), enforced by CR-ONT-045.
|
|
97
110
|
// The remaining dimensions are orthogonal to the axis: realization stage,
|
|
98
111
|
// cross-cutting concern, and editorial status.
|
|
112
|
+
// Deliberately NOT declared here: `name` and `description`. A name slot on
|
|
113
|
+
// a MEMO base is a second spelling of the native name every SysML element
|
|
114
|
+
// already has, and a description slot is a second spelling of `doc`. Both
|
|
115
|
+
// were carried for years and both drifted: 1373 elements set `name`, and
|
|
116
|
+
// 188 of them set it to the identifier they were already declared under.
|
|
117
|
+
// The display label — free text, legitimately repeating — lives on
|
|
118
|
+
// `@MemoIdentity { label }`, which annotates any metaclass and so reaches
|
|
119
|
+
// the behaviours and views that cannot specialize a part. The long prose
|
|
120
|
+
// lives in `doc`. `shortDescription` on `@MemoIdentity` remains the
|
|
121
|
+
// one-line register a table cell or chip shows whole; it is a different
|
|
122
|
+
// density, not a different authority.
|
|
99
123
|
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
124
|
// editorial status and lifecycle
|
|
112
125
|
attribute status : ElementStatusKind;
|
|
113
126
|
attribute lifecycleState : LifecycleStateKind;
|
|
@@ -148,35 +161,16 @@ package memo_core_common {
|
|
|
148
161
|
}
|
|
149
162
|
abstract part def AnalysisArtifact specializes MemoPart;
|
|
150
163
|
|
|
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
164
|
// ─── Construct-specific foundations (non-part metaclasses) ───────
|
|
167
165
|
|
|
168
166
|
// Behavioral foundation: operational activities, tasks, system actions,
|
|
169
167
|
// and interaction steps specialize MemoAction.
|
|
170
168
|
action def MemoAction {
|
|
171
|
-
attribute name : String;
|
|
172
|
-
attribute description : String;
|
|
173
169
|
attribute status : ElementStatusKind;
|
|
174
170
|
}
|
|
175
171
|
|
|
176
172
|
// Boundary feature foundation for typed ports.
|
|
177
173
|
port def MemoPort {
|
|
178
|
-
attribute name : String;
|
|
179
|
-
attribute description : String;
|
|
180
174
|
attribute status : ElementStatusKind;
|
|
181
175
|
}
|
|
182
176
|
|
|
@@ -184,8 +178,6 @@ package memo_core_common {
|
|
|
184
178
|
abstract interface def MemoInterface {
|
|
185
179
|
end source;
|
|
186
180
|
end target;
|
|
187
|
-
attribute name : String;
|
|
188
|
-
attribute description : String;
|
|
189
181
|
}
|
|
190
182
|
|
|
191
183
|
// Single item foundation. Standards, hazards, stored software data, and
|
|
@@ -193,8 +185,6 @@ package memo_core_common {
|
|
|
193
185
|
// exchanged is expressed by its use in a port or flow, not by a second
|
|
194
186
|
// ontology root.
|
|
195
187
|
abstract item def MemoItem {
|
|
196
|
-
attribute name : String;
|
|
197
|
-
attribute description : String;
|
|
198
188
|
attribute status : ElementStatusKind;
|
|
199
189
|
// What the item CARRIES, as distinct from what it is called. Removed
|
|
200
190
|
// by `595bfac` while modelling native wrappers; nothing replaced them,
|
|
@@ -212,19 +202,14 @@ package memo_core_common {
|
|
|
212
202
|
}
|
|
213
203
|
|
|
214
204
|
// 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.
|
|
205
|
+
// references; identity is `@MemoIdentity`, as everywhere else.
|
|
217
206
|
abstract use case def MemoUseCase {
|
|
218
|
-
attribute name : String;
|
|
219
|
-
attribute description : String;
|
|
220
207
|
attribute status : ElementStatusKind;
|
|
221
208
|
}
|
|
222
209
|
|
|
223
210
|
// General constraint foundation. Executable consistency rules and
|
|
224
211
|
// reusable quantitative constraints are both native constraint defs.
|
|
225
212
|
abstract constraint def MemoConstraint {
|
|
226
|
-
attribute name : String;
|
|
227
|
-
attribute description : String;
|
|
228
213
|
attribute status : ElementStatusKind;
|
|
229
214
|
}
|
|
230
215
|
|
|
@@ -235,8 +220,6 @@ package memo_core_common {
|
|
|
235
220
|
// say "a need or a requirement" with one type name — before it, every end
|
|
236
221
|
// that had to accept both was left untyped.
|
|
237
222
|
abstract requirement def MemoRequirementElement {
|
|
238
|
-
attribute name : String;
|
|
239
|
-
attribute description : String;
|
|
240
223
|
attribute status : ElementStatusKind;
|
|
241
224
|
attribute statement : String;
|
|
242
225
|
}
|
|
@@ -250,27 +233,37 @@ package memo_core_common {
|
|
|
250
233
|
attribute acceptanceCriteria : String;
|
|
251
234
|
}
|
|
252
235
|
|
|
236
|
+
// Top-level goal a system or operation exists to fulfil, with its success
|
|
237
|
+
// criteria and context. Domain layers specialize it; the medical-device
|
|
238
|
+
// intended use (memo_architecture_operational_structure::IntendedUse) is a
|
|
239
|
+
// MemoMission. It is a `requirement def` because a mission is the top
|
|
240
|
+
// obligation everything below it derives from, not a structural thing —
|
|
241
|
+
// it was a `part def` under MemoPart. The prose a document renders is
|
|
242
|
+
// `doc`, and the one-line register a table cell shows is
|
|
243
|
+
// `@MemoIdentity`'s `shortDescription`.
|
|
244
|
+
abstract requirement def MemoMission :> MemoRequirementElement {
|
|
245
|
+
attribute missionKind : String;
|
|
246
|
+
attribute successCriteria : String;
|
|
247
|
+
attribute operationalContext : String;
|
|
248
|
+
}
|
|
249
|
+
|
|
253
250
|
// Verification-case foundation. A SysML v2 verification case is a behaviour
|
|
254
251
|
// (it checks requirements), and KerML forbids a behaviour from specializing
|
|
255
|
-
// the part-based MemoPart — so, like MemoAction, it
|
|
256
|
-
//
|
|
252
|
+
// the part-based MemoPart — so, like MemoAction, it stands on its own and
|
|
253
|
+
// takes its identity from `@MemoIdentity`.
|
|
257
254
|
verification def MemoVerificationCase {
|
|
258
|
-
attribute name : String;
|
|
259
|
-
attribute description : String;
|
|
260
255
|
attribute status : ElementStatusKind;
|
|
261
256
|
}
|
|
262
257
|
|
|
263
258
|
// State foundation. SysML v2 states (state machines and their mode states)
|
|
264
259
|
// are behaviours, so — like MemoAction and MemoVerificationCase — they
|
|
265
|
-
//
|
|
260
|
+
// cannot specialize MemoPart and are annotated instead.
|
|
266
261
|
// Transitions stay part-based to keep their traceable safety
|
|
267
262
|
// attributes (id, sourceReference, priority, sameStepCritical).
|
|
268
263
|
enum def StateKind { enum mode; enum logical; }
|
|
269
264
|
|
|
270
265
|
state def MemoState {
|
|
271
266
|
attribute stateKind : StateKind;
|
|
272
|
-
attribute name : String;
|
|
273
|
-
attribute description : String;
|
|
274
267
|
attribute status : ElementStatusKind;
|
|
275
268
|
attribute modeKind : String;
|
|
276
269
|
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;
|