@memoarchitect/ontology 0.8.24 → 0.10.9
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/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
- package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +9 -7
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +8 -6
- package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
- package/examples/gpca-pump/memo.identity.yaml +2179 -0
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +22 -20
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -13
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +121 -125
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +15 -14
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -8
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
- package/examples/gpca-pump/model/catalog/project.sysml +3 -1
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +6 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +6 -4
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +5 -3
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +9 -7
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +6 -4
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
- package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +17 -16
- package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
- package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +10 -8
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +51 -51
- package/examples/surgical-robot/model/catalog/project.sysml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +2 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +8 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +2 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +11 -7
- package/examples/temperature-alarm/memo.identity.yaml +64 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +27 -22
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
- package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
- package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +3 -1
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
- package/extensions/container/src/methodology/container_methodology.sysml +3 -1
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
- package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
- package/extensions/template/src/extension.sysml +3 -1
- package/package.json +2 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
- package/src/architecture/implementation/ui/memo_ui.sysml +0 -23
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +3 -1
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +3 -11
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +0 -10
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -11
- package/src/architecture/operational/workflows/memo_workflows.sysml +0 -20
- package/src/architecture/realization/deployment/memo_deployment.sysml +16 -9
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
- package/src/artifacts/standards/cfr_21_820.sysml +80 -89
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
- package/src/artifacts/standards/iec_60601_1.sysml +108 -121
- package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
- package/src/artifacts/standards/iec_60812.sysml +21 -22
- package/src/artifacts/standards/iec_62304.sysml +150 -169
- package/src/artifacts/standards/iec_62366_1.sysml +80 -89
- package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
- package/src/artifacts/standards/iso_13485.sysml +80 -89
- package/src/artifacts/standards/iso_14971.sysml +66 -73
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
- package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
- package/src/core/common/memo_common.sysml +50 -50
- package/src/core/enumerations/memo_enumerations.sysml +1 -1
- package/src/core/relationships/memo_relationships.sysml +22 -49
- package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
- package/src/methodology/core/memo_core.sysml +0 -10
- package/src/methodology/profiles/memo_profiles.sysml +18 -16
- package/src/rules/closure/closure_rules.sysml +22 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
- package/src/rules/ontology/ontology_invariants.sysml +106 -33
- package/src/rules/quantitative/quantitative_rules.sysml +4 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +29 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/context/context_viewpoint.sysml +5 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +5 -3
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +6 -16
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +5 -3
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +5 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +4 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +5 -3
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +5 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +4 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +5 -3
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +5 -3
- package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +5 -3
- package/src/viewpoints/risk/risk_viewpoint.sysml +4 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +5 -3
- package/src/viewpoints/software/software_viewpoint.sysml +4 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +5 -3
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -2
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +5 -3
- package/templates/connected-device/model/catalog/project.sysml +3 -1
- package/templates/default/model/catalog/project.sysml +3 -1
- package/templates/infusion-pump/model/catalog/project.sysml +3 -1
- package/templates/monitoring-device/model/catalog/project.sysml +3 -1
- package/templates/samd/model/catalog/project.sysml +3 -1
|
@@ -31,8 +31,10 @@ package memo_examples_ui_screen_regions_project {
|
|
|
31
31
|
private import memo_examples_ui_screen_regions_viewpoints_functional::*;
|
|
32
32
|
private import memo_examples_ui_screen_regions_viewpoints_risk::*;
|
|
33
33
|
|
|
34
|
+
private import memo_core_common::*;
|
|
35
|
+
private import memo_core_common::MemoIdentity;
|
|
34
36
|
part uiScreenRegionsBinding : ProjectMethodBinding {
|
|
35
|
-
|
|
37
|
+
@MemoIdentity { :>> providedId = "PMB-UIR-001"; }
|
|
36
38
|
attribute :>> name = "UIScreenRegionsProjectMethodBinding";
|
|
37
39
|
attribute :>> projectName = "UI Screen Regions";
|
|
38
40
|
// The default methodology selects everything the resolved ontology
|
|
@@ -3,6 +3,6 @@ package memo_examples_ui_screen_regions_relationships {
|
|
|
3
3
|
private import memo_assurance_safety_risk::*;
|
|
4
4
|
private import memo_examples_ui_screen_regions_architecture_implementation_ui::*;
|
|
5
5
|
private import memo_examples_ui_screen_regions_assurance_requirements::*;
|
|
6
|
-
connection rel_tracesRisk_uiElement12_reqDrugIdentityDisplay : TracesRisk connect sourceRiskElement ::> uiElement12 to targetRiskElement ::> reqDrugIdentityDisplay;
|
|
7
|
-
connection rel_changes_uiElement12_reqDrugIdentityDisplay : Changes connect changeRequest ::> uiElement12 to changedElement ::> reqDrugIdentityDisplay;
|
|
6
|
+
connection rel_tracesRisk_uiElement12_reqDrugIdentityDisplay : TracesRisk connect sourceRiskElement ::> elMainScreen::uiElement12 to targetRiskElement ::> reqDrugIdentityDisplay;
|
|
7
|
+
connection rel_changes_uiElement12_reqDrugIdentityDisplay : Changes connect changeRequest ::> elMainScreen::uiElement12 to changedElement ::> reqDrugIdentityDisplay;
|
|
8
8
|
}
|
|
@@ -172,8 +172,6 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
172
172
|
|
|
173
173
|
// A reply is a child of the comment it answers — ordinary Composes, so
|
|
174
174
|
// thread cycles are already forbidden by CR-ONT-001.
|
|
175
|
-
connection : Composes connect parent ::> cmtStatusBarScope to child ::> cmtStatusBarReply;
|
|
176
175
|
|
|
177
|
-
connection rel_composes_elMainScreen_uiElement12 : Composes connect parent ::> elMainScreen to child ::> uiElement12;
|
|
178
176
|
|
|
179
177
|
}
|
|
@@ -29,6 +29,8 @@ package memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functiona
|
|
|
29
29
|
private import memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
30
30
|
private import memo_examples_ui_screen_regions_traces::*;
|
|
31
31
|
|
|
32
|
+
private import memo_core_common::*;
|
|
33
|
+
private import memo_core_common::MemoIdentity;
|
|
32
34
|
view uiFunctionalTree : MemoDiagramView {
|
|
33
35
|
expose memo_examples_ui_screen_regions_architecture_implementation_ui::*;
|
|
34
36
|
expose memo_examples_ui_screen_regions_architecture_functional_functions::*;
|
|
@@ -43,13 +45,13 @@ package memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functiona
|
|
|
43
45
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
44
46
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
45
47
|
attribute depth = 3;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
@MemoIdentity { :>> providedId = "FUN-101"; }
|
|
49
|
+
@MemoIdentity { :>> shortDescription = "Display-management functions, invoked actions, and UI allocation."; }
|
|
48
50
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
49
51
|
attribute :>> diagramType = "bdd";
|
|
50
52
|
attribute :>> autoPopulate = true;
|
|
51
53
|
part :>> selectionQuery {
|
|
52
|
-
|
|
54
|
+
@MemoIdentity { :>> providedId = "QRY-102"; }
|
|
53
55
|
attribute :>> name = "UIFunctionalTreeQuery";
|
|
54
56
|
attribute :>> includeElementKinds = ("SystemFunction", "UIAction", "UIElement", "UserInterface");
|
|
55
57
|
attribute :>> includeRelationshipKinds = ("Composes", "ElementTriggersAction", "Performs", "AllocatedTo");
|
|
@@ -29,6 +29,8 @@ package memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_require
|
|
|
29
29
|
private import memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
30
30
|
private import memo_examples_ui_screen_regions_traces::*;
|
|
31
31
|
|
|
32
|
+
private import memo_core_common::*;
|
|
33
|
+
private import memo_core_common::MemoIdentity;
|
|
32
34
|
view uiRequirementsTrace : MemoDiagramView {
|
|
33
35
|
expose memo_examples_ui_screen_regions_architecture_implementation_ui::*;
|
|
34
36
|
expose memo_examples_ui_screen_regions_architecture_functional_functions::*;
|
|
@@ -43,13 +45,13 @@ package memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_require
|
|
|
43
45
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
44
46
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
45
47
|
attribute depth = 3;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
@MemoIdentity { :>> providedId = "REQ-101"; }
|
|
49
|
+
@MemoIdentity { :>> shortDescription = "Clinical need through UI requirements to satisfying regions and functions."; }
|
|
48
50
|
attribute :>> viewKind = DiagramViewKind::grid;
|
|
49
51
|
attribute :>> diagramType = "req";
|
|
50
52
|
attribute :>> autoPopulate = true;
|
|
51
53
|
part :>> selectionQuery {
|
|
52
|
-
|
|
54
|
+
@MemoIdentity { :>> providedId = "QRY-101"; }
|
|
53
55
|
attribute :>> name = "UIRequirementsTraceQuery";
|
|
54
56
|
attribute :>> includeElementKinds = ("Need", "Requirement", "UIElement", "SystemFunction", "VerificationCase");
|
|
55
57
|
attribute :>> includeRelationshipKinds = ("DerivesFrom", "SatisfiedBy", "VerifiedBy");
|
|
@@ -29,6 +29,8 @@ package memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain {
|
|
|
29
29
|
private import memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
30
30
|
private import memo_examples_ui_screen_regions_traces::*;
|
|
31
31
|
|
|
32
|
+
private import memo_core_common::*;
|
|
33
|
+
private import memo_core_common::MemoIdentity;
|
|
32
34
|
view uiRiskChain : MemoDiagramView {
|
|
33
35
|
expose memo_examples_ui_screen_regions_architecture_implementation_ui::*;
|
|
34
36
|
expose memo_examples_ui_screen_regions_architecture_functional_functions::*;
|
|
@@ -43,13 +45,13 @@ package memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain {
|
|
|
43
45
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
44
46
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
45
47
|
attribute depth = 3;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
@MemoIdentity { :>> providedId = "RSK-101"; }
|
|
49
|
+
@MemoIdentity { :>> shortDescription = "Use errors through UI hazards to implemented controls and requirements."; }
|
|
48
50
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
49
51
|
attribute :>> diagramType = "risk";
|
|
50
52
|
attribute :>> autoPopulate = true;
|
|
51
53
|
part :>> selectionQuery {
|
|
52
|
-
|
|
54
|
+
@MemoIdentity { :>> providedId = "QRY-103"; }
|
|
53
55
|
attribute :>> name = "UIRiskChainQuery";
|
|
54
56
|
attribute :>> includeElementKinds = ("UseError", "Hazard", "RiskControlMeasure", "Requirement", "UIElement", "SystemFunction", "VerificationCase");
|
|
55
57
|
attribute :>> includeRelationshipKinds = ("ErrorAtElement", "Causes", "Mitigates", "ControlImplementedBy", "DerivesFrom", "VerifiedBy");
|
package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml
CHANGED
|
@@ -29,6 +29,8 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_main_screen_l
|
|
|
29
29
|
private import memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
30
30
|
private import memo_examples_ui_screen_regions_traces::*;
|
|
31
31
|
|
|
32
|
+
private import memo_core_common::*;
|
|
33
|
+
private import memo_core_common::MemoIdentity;
|
|
32
34
|
// The geometry view: the capture as backdrop, elements drawn at their
|
|
33
35
|
// authored bounds. Images for a layout view live in
|
|
34
36
|
// `model/assets/<viewName>/`, so this view's backdrop is under
|
|
@@ -50,7 +52,7 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_main_screen_l
|
|
|
50
52
|
expose memo_examples_ui_screen_regions_artifacts_reviews_rationales::*;
|
|
51
53
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
52
54
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
53
|
-
|
|
55
|
+
@MemoIdentity { :>> providedId = "UIE-001"; }
|
|
54
56
|
ref :>> viewpointDefinition = uiLayoutViewpoint;
|
|
55
57
|
}
|
|
56
58
|
}
|
|
@@ -29,6 +29,8 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_settings_scre
|
|
|
29
29
|
private import memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
30
30
|
private import memo_examples_ui_screen_regions_traces::*;
|
|
31
31
|
|
|
32
|
+
private import memo_core_common::*;
|
|
33
|
+
private import memo_core_common::MemoIdentity;
|
|
32
34
|
// The settings screen reached by NavigatesTo, rendered on its own capture.
|
|
33
35
|
// One layout view per captured screen, and the view's name is the folder
|
|
34
36
|
// its images live in — `model/assets/settingsScreenLayout/`.
|
|
@@ -45,7 +47,7 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_settings_scre
|
|
|
45
47
|
expose memo_examples_ui_screen_regions_artifacts_reviews_rationales::*;
|
|
46
48
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
47
49
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
48
|
-
|
|
50
|
+
@MemoIdentity { :>> providedId = "UIE-008"; }
|
|
49
51
|
ref :>> viewpointDefinition = uiLayoutViewpoint;
|
|
50
52
|
}
|
|
51
53
|
}
|
package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml
CHANGED
|
@@ -29,6 +29,8 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_ui_region_tra
|
|
|
29
29
|
private import memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
30
30
|
private import memo_examples_ui_screen_regions_traces::*;
|
|
31
31
|
|
|
32
|
+
private import memo_core_common::*;
|
|
33
|
+
private import memo_core_common::MemoIdentity;
|
|
32
34
|
// The same content as a graph, for reviewers who want to read the trace
|
|
33
35
|
// chain rather than look at the screen.
|
|
34
36
|
view uiRegionTrace : MemoDiagramView {
|
|
@@ -44,7 +46,7 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_ui_region_tra
|
|
|
44
46
|
expose memo_examples_ui_screen_regions_artifacts_reviews_rationales::*;
|
|
45
47
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
46
48
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
47
|
-
|
|
49
|
+
@MemoIdentity { :>> providedId = "UIV-001"; }
|
|
48
50
|
attribute depth = 3;
|
|
49
51
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
50
52
|
attribute :>> diagramType = "bdd";
|
|
@@ -19,42 +19,44 @@ package memo_extension_aadl_correspondence {
|
|
|
19
19
|
|
|
20
20
|
private import memo_architecture_operational_context_stakeholders::*;
|
|
21
21
|
|
|
22
|
+
private import memo_core_common::*;
|
|
23
|
+
private import memo_core_common::MemoIdentity;
|
|
22
24
|
// ── Component categories ────────────────────────────────────────────
|
|
23
25
|
part aadlCorrProcess : CorrespondenceRule {
|
|
24
|
-
|
|
26
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-001"; }
|
|
25
27
|
attribute :>> name = "ProcessCorrespondence";
|
|
26
28
|
attribute :>> ruleExpression = "memo_extension_aadl_runtime::AadlProcess <-> AADL component category `process`";
|
|
27
29
|
attribute :>> description = "A MEMO SoftwareComponent with runtimeKind = process, carrying addressSpaceIsolated.";
|
|
28
30
|
}
|
|
29
31
|
part aadlCorrThread : CorrespondenceRule {
|
|
30
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-002"; }
|
|
31
33
|
attribute :>> name = "ThreadCorrespondence";
|
|
32
34
|
attribute :>> ruleExpression = "memo_extension_aadl_runtime::AadlThread <-> AADL component category `thread`";
|
|
33
35
|
attribute :>> description = "Schedulable unit inside one process; owningProcessName names the containing process.";
|
|
34
36
|
}
|
|
35
37
|
part aadlCorrVirtualProcessor : CorrespondenceRule {
|
|
36
|
-
|
|
38
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-003"; }
|
|
37
39
|
attribute :>> name = "VirtualProcessorCorrespondence";
|
|
38
40
|
attribute :>> ruleExpression = "memo_extension_aadl_runtime::AadlVirtualProcessor <-> AADL component category `virtual processor`";
|
|
39
41
|
attribute :>> description = "An ARINC 653 partition. partitionBudget is the guaranteed time and memory; isolationMechanism is what enforces it.";
|
|
40
42
|
}
|
|
41
43
|
part aadlCorrProcessor : CorrespondenceRule {
|
|
42
|
-
|
|
44
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-004"; }
|
|
43
45
|
attribute :>> name = "ProcessorCorrespondence";
|
|
44
46
|
attribute :>> ruleExpression = "memo_architecture_realization_physical::ProcessingNode <-> AADL component category `processor`";
|
|
45
47
|
}
|
|
46
48
|
part aadlCorrMemory : CorrespondenceRule {
|
|
47
|
-
|
|
49
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-005"; }
|
|
48
50
|
attribute :>> name = "MemoryCorrespondence";
|
|
49
51
|
attribute :>> ruleExpression = "memo_architecture_realization_physical::MemoryDevice <-> AADL component category `memory`";
|
|
50
52
|
}
|
|
51
53
|
part aadlCorrBus : CorrespondenceRule {
|
|
52
|
-
|
|
54
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-006"; }
|
|
53
55
|
attribute :>> name = "BusCorrespondence";
|
|
54
56
|
attribute :>> ruleExpression = "memo_architecture_implementation_hardware_electrical::NetworkMedium <-> AADL component category `bus`";
|
|
55
57
|
}
|
|
56
58
|
part aadlCorrSystem : CorrespondenceRule {
|
|
57
|
-
|
|
59
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-007"; }
|
|
58
60
|
attribute :>> name = "SystemCorrespondence";
|
|
59
61
|
attribute :>> ruleExpression = "memo_architecture_logical_structure::System <-> AADL component category `system`";
|
|
60
62
|
attribute :>> description = "AADL's system is the composition unit, which is MEMO's logical System rather than any runtime element.";
|
|
@@ -64,17 +66,17 @@ package memo_extension_aadl_correspondence {
|
|
|
64
66
|
// something, and the binding is where latency, bandwidth, and fault
|
|
65
67
|
// propagation accrue. MEMO has all three (plan C1). ────────────────────
|
|
66
68
|
part aadlCorrProcessorBinding : CorrespondenceRule {
|
|
67
|
-
|
|
69
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-010"; }
|
|
68
70
|
attribute :>> name = "ActualProcessorBindingCorrespondence";
|
|
69
71
|
attribute :>> ruleExpression = "memo_architecture_realization_deployment::DeploysTo <-> AADL property `Actual_Processor_Binding`";
|
|
70
72
|
}
|
|
71
73
|
part aadlCorrMemoryBinding : CorrespondenceRule {
|
|
72
|
-
|
|
74
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-011"; }
|
|
73
75
|
attribute :>> name = "ActualMemoryBindingCorrespondence";
|
|
74
76
|
attribute :>> ruleExpression = "memo_architecture_realization_deployment::MemoryBinding <-> AADL property `Actual_Memory_Binding`";
|
|
75
77
|
}
|
|
76
78
|
part aadlCorrConnectionBinding : CorrespondenceRule {
|
|
77
|
-
|
|
79
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-012"; }
|
|
78
80
|
attribute :>> name = "ActualConnectionBindingCorrespondence";
|
|
79
81
|
attribute :>> ruleExpression = "memo_architecture_realization_deployment::ConnectionBinding <-> AADL property `Actual_Connection_Binding`";
|
|
80
82
|
attribute :>> description = "The bound element is the ComponentExchange, because the exchange is what owns the budget the medium spends.";
|
|
@@ -82,18 +84,18 @@ package memo_extension_aadl_correspondence {
|
|
|
82
84
|
|
|
83
85
|
// ── Ports and flows ─────────────────────────────────────────────────
|
|
84
86
|
part aadlCorrPortCategory : CorrespondenceRule {
|
|
85
|
-
|
|
87
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-020"; }
|
|
86
88
|
attribute :>> name = "PortCategoryCorrespondence";
|
|
87
89
|
attribute :>> ruleExpression = "memo_core_enumerations::PortCategoryKind (data | 'event' | eventData) <-> AADL `data port` | `event port` | `event data port`";
|
|
88
90
|
attribute :>> description = "Determines whether a missed deadline loses a sample or grows a queue — two failure modes with two mitigations.";
|
|
89
91
|
}
|
|
90
92
|
part aadlCorrFlowSpec : CorrespondenceRule {
|
|
91
|
-
|
|
93
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-021"; }
|
|
92
94
|
attribute :>> name = "FlowSpecificationCorrespondence";
|
|
93
95
|
attribute :>> ruleExpression = "memo_architecture_realization_deployment::FlowSpecification (FlowSpecKind source | sink | path) <-> AADL `flow source` | `flow sink` | `flow path`";
|
|
94
96
|
}
|
|
95
97
|
part aadlCorrEndToEndFlow : CorrespondenceRule {
|
|
96
|
-
|
|
98
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-022"; }
|
|
97
99
|
attribute :>> name = "EndToEndFlowCorrespondence";
|
|
98
100
|
attribute :>> ruleExpression = "memo_architecture_realization_deployment::EndToEndFlow <-> AADL `end to end flow`";
|
|
99
101
|
}
|
|
@@ -101,45 +103,45 @@ package memo_extension_aadl_correspondence {
|
|
|
101
103
|
// ── Properties. AADL's property sets are the technology-specific half of
|
|
102
104
|
// the language; these are the ones MEMO already carries by another name.
|
|
103
105
|
part aadlCorrPeriod : CorrespondenceRule {
|
|
104
|
-
|
|
106
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-030"; }
|
|
105
107
|
attribute :>> name = "PeriodCorrespondence";
|
|
106
108
|
attribute :>> ruleExpression = "SoftwareComponent.periodMs <-> AADL `Timing_Properties::Period` (ms)";
|
|
107
109
|
}
|
|
108
110
|
part aadlCorrDeadline : CorrespondenceRule {
|
|
109
|
-
|
|
111
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-031"; }
|
|
110
112
|
attribute :>> name = "DeadlineCorrespondence";
|
|
111
113
|
attribute :>> ruleExpression = "SoftwareComponent.deadlineMs <-> AADL `Timing_Properties::Deadline` (ms)";
|
|
112
114
|
}
|
|
113
115
|
part aadlCorrComputeExecutionTime : CorrespondenceRule {
|
|
114
|
-
|
|
116
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-032"; }
|
|
115
117
|
attribute :>> name = "ComputeExecutionTimeCorrespondence";
|
|
116
118
|
attribute :>> ruleExpression = "SoftwareComponent.wcetMs <-> upper bound of AADL `Timing_Properties::Compute_Execution_Time` (ms)";
|
|
117
119
|
attribute :>> description = "AADL records a range; MEMO records the worst case, which is the bound a schedulability argument uses.";
|
|
118
120
|
}
|
|
119
121
|
part aadlCorrPriority : CorrespondenceRule {
|
|
120
|
-
|
|
122
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-033"; }
|
|
121
123
|
attribute :>> name = "PriorityCorrespondence";
|
|
122
124
|
attribute :>> ruleExpression = "SoftwareComponent.priority <-> AADL `Thread_Properties::Priority`";
|
|
123
125
|
}
|
|
124
126
|
part aadlCorrSchedulingProtocol : CorrespondenceRule {
|
|
125
|
-
|
|
127
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-034"; }
|
|
126
128
|
attribute :>> name = "SchedulingProtocolCorrespondence";
|
|
127
129
|
attribute :>> ruleExpression = "SoftwareComponent.schedulingPolicy <-> AADL `Deployment_Properties::Scheduling_Protocol`";
|
|
128
130
|
}
|
|
129
131
|
part aadlCorrLatency : CorrespondenceRule {
|
|
130
|
-
|
|
132
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-035"; }
|
|
131
133
|
attribute :>> name = "LatencyCorrespondence";
|
|
132
134
|
attribute :>> ruleExpression = "EndToEndFlow.latencyBudgetMs <-> AADL `Communication_Properties::Latency` upper bound (ms)";
|
|
133
135
|
}
|
|
134
136
|
part aadlCorrBandwidth : CorrespondenceRule {
|
|
135
|
-
|
|
137
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-036"; }
|
|
136
138
|
attribute :>> name = "BandwidthCorrespondence";
|
|
137
139
|
attribute :>> ruleExpression = "ConnectionBinding.allocatedBandwidth <-> AADL `Communication_Properties::Bandwidth_Budget`";
|
|
138
140
|
}
|
|
139
141
|
|
|
140
142
|
// ── Where the correspondence stops ──────────────────────────────────
|
|
141
143
|
part aadlCorrNoCounterpart : CorrespondenceRule {
|
|
142
|
-
|
|
144
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-C-090"; }
|
|
143
145
|
attribute :>> name = "NoCounterpartNote";
|
|
144
146
|
attribute :>> ruleExpression = "no correspondence: AADL `subprogram`, `device`, `abstract`; MEMO's five assurance disciplines";
|
|
145
147
|
attribute :>> description = "Recorded so the gap is a stated boundary of the profile rather than an omission a reader has to discover.";
|
|
@@ -4,8 +4,10 @@ package memo_extension_aadl_methodology {
|
|
|
4
4
|
private import memo_methodology_profiles::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
7
9
|
part aadlExtensionMethod : MethodologyDefinition {
|
|
8
|
-
|
|
10
|
+
@MemoIdentity { :>> providedId = "EXT-AADL-001"; }
|
|
9
11
|
attribute :>> name = "AadlCorrespondenceExtension";
|
|
10
12
|
attribute :>> version = "0.7.0";
|
|
11
13
|
attribute :>> domain = "AADL (SAE AS5506) software runtime";
|
|
@@ -4,8 +4,10 @@ package memo_extension_clinical_methodology {
|
|
|
4
4
|
private import memo_methodology_profiles::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
7
9
|
part clinicalExtensionMethod : MethodologyDefinition {
|
|
8
|
-
|
|
10
|
+
@MemoIdentity { :>> providedId = "EXT-CLINICAL-001"; }
|
|
9
11
|
attribute :>> name = "ClinicalProcedureExtension";
|
|
10
12
|
attribute :>> version = "0.6.5";
|
|
11
13
|
attribute :>> domain = "clinical procedures";
|
|
@@ -4,8 +4,10 @@ package memo_extension_cloud_methodology {
|
|
|
4
4
|
private import memo_methodology_profiles::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
7
9
|
part cloudExtensionMethod : MethodologyDefinition {
|
|
8
|
-
|
|
10
|
+
@MemoIdentity { :>> providedId = "EXT-CLOUD-001"; }
|
|
9
11
|
attribute :>> name = "CloudRuntimeExtension";
|
|
10
12
|
attribute :>> version = "0.7.0";
|
|
11
13
|
attribute :>> domain = "networked services and managed data stores";
|
|
@@ -4,8 +4,10 @@ package memo_extension_container_methodology {
|
|
|
4
4
|
private import memo_methodology_profiles::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
7
9
|
part containerExtensionMethod : MethodologyDefinition {
|
|
8
|
-
|
|
10
|
+
@MemoIdentity { :>> providedId = "EXT-CONTAINER-001"; }
|
|
9
11
|
attribute :>> name = "ContainerDeploymentExtension";
|
|
10
12
|
attribute :>> version = "0.7.0";
|
|
11
13
|
attribute :>> domain = "containerized deployment";
|
|
@@ -4,8 +4,10 @@ package memo_extension_messaging_methodology {
|
|
|
4
4
|
private import memo_methodology_profiles::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
7
9
|
part messagingExtensionMethod : MethodologyDefinition {
|
|
8
|
-
|
|
10
|
+
@MemoIdentity { :>> providedId = "EXT-MESSAGING-001"; }
|
|
9
11
|
attribute :>> name = "MessagingExtension";
|
|
10
12
|
attribute :>> version = "0.7.0";
|
|
11
13
|
attribute :>> domain = "publish/subscribe messaging";
|
|
@@ -4,12 +4,14 @@ package memo_extension_ros_methodology {
|
|
|
4
4
|
private import memo_methodology_profiles::*;
|
|
5
5
|
private import memo_core_enumerations::*;
|
|
6
6
|
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
7
9
|
// An extension that builds on other extensions names them all here.
|
|
8
10
|
// `baseMethodology` is [0..1] — single inheritance, deliberate — but
|
|
9
11
|
// `includedModule` is [0..*], so this is how a dependency between
|
|
10
12
|
// extensions is expressed. There is no chaining and no second base.
|
|
11
13
|
part rosExtensionMethod : MethodologyDefinition {
|
|
12
|
-
|
|
14
|
+
@MemoIdentity { :>> providedId = "EXT-ROS-001"; }
|
|
13
15
|
attribute :>> name = "Ros2Extension";
|
|
14
16
|
attribute :>> version = "0.7.0";
|
|
15
17
|
attribute :>> domain = "ROS 2 robotics middleware";
|
|
@@ -21,8 +21,10 @@ package memo_extension_template {
|
|
|
21
21
|
private import memo_methodology_core::*;
|
|
22
22
|
private import memo_methodology_profiles::*;
|
|
23
23
|
|
|
24
|
+
private import memo_core_common::*;
|
|
25
|
+
private import memo_core_common::MemoIdentity;
|
|
24
26
|
part extensionMethod : MethodologyDefinition {
|
|
25
|
-
|
|
27
|
+
@MemoIdentity { :>> providedId = "EXT-METH-001"; }
|
|
26
28
|
attribute :>> name = "ExtensionMethod";
|
|
27
29
|
attribute :>> version = "0.1.0";
|
|
28
30
|
attribute :>> domain = "project extension";
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memoarchitect/ontology",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.9",
|
|
4
4
|
"packageManager": "pnpm@9.15.0",
|
|
5
|
-
"description": "MEMO
|
|
5
|
+
"description": "MEMO — Medical Engineering Modelling Ontology. Pure SysML v2 medical-device ontology with native constraints, portable to any conformant SysML v2 tool (SysIDE, SysON, sysand).",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "bash scripts/build-kpar.sh",
|
|
8
8
|
"check": "bash scripts/build-kpar.sh && npm run lint",
|
|
@@ -89,6 +89,6 @@ package memo_architecture_functional_behavior {
|
|
|
89
89
|
attribute minMs : String;
|
|
90
90
|
attribute maxMs : String;
|
|
91
91
|
ref referenceElement : MemoPart[1];
|
|
92
|
-
attribute verificationMethod :
|
|
92
|
+
attribute verificationMethod : MemoVerificationMethodKind;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -13,7 +13,17 @@ package memo_architecture_implementation_hardware_common {
|
|
|
13
13
|
private import memo_core_enumerations::*;
|
|
14
14
|
private import memo_core_relationships::*;
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
// The shared root of the physical family.
|
|
17
|
+
//
|
|
18
|
+
// `PhysicalAssembly` and `PhysicalComponent` each specialized `MemoPart`
|
|
19
|
+
// directly, so the family had two roots and no single type that means
|
|
20
|
+
// "a physical thing". A containment rule has to name one type, and
|
|
21
|
+
// `conformsTo(MemoPart)` is far too wide — it admits a requirement or a
|
|
22
|
+
// hazard. This is that type, and it carries nothing of its own: the split
|
|
23
|
+
// between an assembly and a component is what the two subtypes are for.
|
|
24
|
+
abstract part def PhysicalElement specializes MemoPart { }
|
|
25
|
+
|
|
26
|
+
part def PhysicalAssembly specializes PhysicalElement {
|
|
17
27
|
attribute responsibility : String;
|
|
18
28
|
attribute safetyRole : String;
|
|
19
29
|
attribute partNumber : String;
|
|
@@ -25,7 +35,7 @@ package memo_architecture_implementation_hardware_common {
|
|
|
25
35
|
// Retained name from 0.4; an electronics-centred assembly.
|
|
26
36
|
part def HardwareAssembly specializes PhysicalAssembly;
|
|
27
37
|
|
|
28
|
-
part def PhysicalComponent specializes
|
|
38
|
+
part def PhysicalComponent specializes PhysicalElement {
|
|
29
39
|
attribute partNumber : String;
|
|
30
40
|
attribute materialSummary : String;
|
|
31
41
|
// ISO 10993-1 contact characterization; required when true.
|
|
@@ -78,15 +78,4 @@ package memo_architecture_implementation_software_runtime {
|
|
|
78
78
|
// a component belongs to without claiming to describe it.
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
connection def ComponentConnects :> MemoRelationship {
|
|
82
|
-
attribute protocolSummary : String;
|
|
83
|
-
end sourceComponent : SoftwareComponent :>> source;
|
|
84
|
-
end targetComponent : SoftwareComponent :>> target;
|
|
85
|
-
}
|
|
86
|
-
abstract connection componentConnectsLinks : ComponentConnects[*];
|
|
87
|
-
metadata def <componentConnects> ComponentConnectsMetadata :> SemanticMetadata {
|
|
88
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
89
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
90
|
-
:>> baseType = componentConnectsLinks meta SysML::Usage;
|
|
91
|
-
}
|
|
92
81
|
}
|
|
@@ -280,18 +280,6 @@ package memo_architecture_implementation_ui {
|
|
|
280
280
|
attribute exitPoint : String;
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
-
connection def DataBinding :> MemoRelationship {
|
|
284
|
-
attribute bindingExpression : String;
|
|
285
|
-
attribute refreshPolicy : String;
|
|
286
|
-
end boundElement : InteractionElement :>> source;
|
|
287
|
-
end dataSource : MemoItem :>> target;
|
|
288
|
-
}
|
|
289
|
-
abstract connection dataBindingLinks : DataBinding[*];
|
|
290
|
-
metadata def <dataBinding> DataBindingMetadata :> SemanticMetadata {
|
|
291
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
292
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
293
|
-
:>> baseType = dataBindingLinks meta SysML::Usage;
|
|
294
|
-
}
|
|
295
283
|
// `PresentsState` had zero usages anywhere in the tree (R10-S6). Its
|
|
296
284
|
// audited native form, `exhibit state`, does not actually fit: `UIState`
|
|
297
285
|
// is a `part def` with plain string attributes, not a `state def`, and
|
|
@@ -320,17 +308,6 @@ package memo_architecture_implementation_ui {
|
|
|
320
308
|
// Conflating the two was the mistake that made "clicking takes you to a
|
|
321
309
|
// child view" look like spatial nesting; it is a separate frame reached
|
|
322
310
|
// from here, and only this relation says so.
|
|
323
|
-
connection def NavigatesTo :> MemoRelationship {
|
|
324
|
-
attribute triggerGesture : String;
|
|
325
|
-
end sourceElement : UIElement :>> source;
|
|
326
|
-
end targetScreen : UIElement :>> target;
|
|
327
|
-
}
|
|
328
|
-
abstract connection navigatesToLinks : NavigatesTo[*];
|
|
329
|
-
metadata def <navigatesTo> NavigatesToMetadata :> SemanticMetadata {
|
|
330
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
331
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
332
|
-
:>> baseType = navigatesToLinks meta SysML::Usage;
|
|
333
|
-
}
|
|
334
311
|
|
|
335
312
|
// ── §18 traceability ─────────────────────────────────────────
|
|
336
313
|
connection def ElementTriggersAction :> MemoRelationship {
|
|
@@ -15,7 +15,9 @@ package memo_architecture_logical_interfaces {
|
|
|
15
15
|
// DigitalInterface / SPIInterface / RestInterface … hierarchy: those were
|
|
16
16
|
// 20+ classes that differed only in the value of `protocol`.
|
|
17
17
|
|
|
18
|
-
interface
|
|
18
|
+
// Specializes the standard library interface as well as MEMO's base,
|
|
19
|
+
// rather than shadowing it — see the note on UseCase.
|
|
20
|
+
interface def Interface specializes MemoInterface, Interfaces::Interface {
|
|
19
21
|
attribute interfaceKind : InterfaceKind; // semantic + signaling family
|
|
20
22
|
attribute direction : DirectionKind;
|
|
21
23
|
attribute protocol : String; // "SPI", "CAN", "Ethernet", "REST", "4-20mA"
|
|
@@ -66,17 +66,9 @@ package memo_architecture_operational_context_use_context {
|
|
|
66
66
|
:>> baseType = interactsInContextLinks meta SysML::Usage;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
end target;
|
|
73
|
-
}
|
|
74
|
-
abstract connection interactsWithLinks : InteractsWith[*];
|
|
75
|
-
metadata def <interactsWith> InteractsWithMetadata :> SemanticMetadata {
|
|
76
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
77
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
78
|
-
:>> baseType = interactsWithLinks meta SysML::Usage;
|
|
79
|
-
}
|
|
69
|
+
// `InteractsWith` is native `connect` (2026-08-18): write
|
|
70
|
+
// `connection connect <participant> to <target>;`. It carried no
|
|
71
|
+
// attributes, and the operational-context package already scopes the ends.
|
|
80
72
|
// `ConnectsPhysically` is native `connect` (R10-S6): write
|
|
81
73
|
// `connection connect source ::> <a> to target ::> <b>;` — the ordinary
|
|
82
74
|
// untyped binary connection — instead of a connection def for it.
|
|
@@ -55,14 +55,4 @@ package memo_architecture_operational_scenarios {
|
|
|
55
55
|
// A workflow is composed of one or more scenarios (nominal + alternate
|
|
56
56
|
// paths). ScenarioOccurrence/Executes were removed: an actual execution is
|
|
57
57
|
// a native SysML *usage* of the scenario, not a separate def + relation.
|
|
58
|
-
connection def HasScenario :> MemoRelationship {
|
|
59
|
-
end owningWorkflow : OperationalWorkflow :>> source;
|
|
60
|
-
end pathScenario : OperativeScenario :>> target;
|
|
61
|
-
}
|
|
62
|
-
abstract connection hasScenarioLinks : HasScenario[*];
|
|
63
|
-
metadata def <hasScenario> HasScenarioMetadata :> SemanticMetadata {
|
|
64
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
65
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
66
|
-
:>> baseType = hasScenarioLinks meta SysML::Usage;
|
|
67
|
-
}
|
|
68
58
|
}
|
|
@@ -19,7 +19,13 @@ package memo_architecture_operational_use_cases {
|
|
|
19
19
|
enum development;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
use case
|
|
22
|
+
// Specializes the STANDARD library use case as well as MEMO's base. Before
|
|
23
|
+
// this it specialized only `MemoUseCase` and so shadowed `UseCases::UseCase`
|
|
24
|
+
// — same name, same metaclass, none of the semantics — which is why the
|
|
25
|
+
// subject/actor features below had to be re-declared by hand instead of
|
|
26
|
+
// being inherited. The wrapper survives only to carry the display label and
|
|
27
|
+
// lifecycle status; identity comes from `@MemoIdentity`.
|
|
28
|
+
use case def UseCase :> MemoUseCase, UseCases::UseCase {
|
|
23
29
|
// Text of this use case's goal; this is not a separate Goal element.
|
|
24
30
|
attribute goalStatement : String;
|
|
25
31
|
attribute trigger : String;
|
|
@@ -62,14 +68,4 @@ package memo_architecture_operational_use_cases {
|
|
|
62
68
|
// `include` (R10-S6); write that instead of a connection here. `extends`
|
|
63
69
|
// has 0 hits in the corpus for a use-case `extend` production, so it stays
|
|
64
70
|
// a MEMO construct: a cross-cutting relationship that is always presented.
|
|
65
|
-
connection def Extends :> MemoRelationship {
|
|
66
|
-
end extendingUseCase : UseCase :>> source;
|
|
67
|
-
end extendedUseCase : UseCase :>> target;
|
|
68
|
-
}
|
|
69
|
-
abstract connection extendsLinks : Extends[*];
|
|
70
|
-
metadata def <extends> ExtendsMetadata :> SemanticMetadata {
|
|
71
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
72
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
73
|
-
:>> baseType = extendsLinks meta SysML::Usage;
|
|
74
|
-
}
|
|
75
71
|
}
|