@memoarchitect/ontology 0.8.24 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- 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 +2185 -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 +29 -24
- 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 +390 -388
- 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/memo.identity.yaml +181 -0
- 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/architecture/operational/context.sysml +34 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +11 -6
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +16 -14
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +4 -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 +54 -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 +11 -9
- 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/memo.identity.yaml +205 -0
- 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 +26 -24
- 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/memo.package.yaml +1 -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/memo.package.yaml +1 -1
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/container/src/methodology/container_methodology.sysml +3 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
- package/extensions/template/src/extension.sysml +3 -1
- 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 +2 -2
- package/profile/memo.package.yaml +1 -1
- 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 +1 -12
- 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/artifacts/templates/dhf/iec-60601/hrs.md +6 -6
- package/src/artifacts/templates/dhf/iec-62304/srs.md +10 -10
- package/src/artifacts/templates/dhf/system/syrs.md +6 -6
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +0 -1
- package/src/assurance/human_factors/memo_human_factors.sysml +0 -1
- package/src/assurance/requirements/memo_requirements.sysml +20 -16
- package/src/assurance/requirements/needs/memo_needs.sysml +33 -5
- package/src/assurance/safety_risk/memo_risk.sysml +20 -0
- 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 +58 -22
- package/src/rules/crosslayer/cross_layer_rules.sysml +5 -3
- package/src/rules/ontology/ontology_invariants.sysml +119 -35
- 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
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";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/extension-aadl'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: AADL (SAE AS5506) correspondence profile and runtime component families
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -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";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/extension-cloud'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: Networked services and managed data stores
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -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";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/extension-container'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: OCI container images and container runtimes as deployment content
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -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";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/extension-messaging'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: Publish/subscribe messaging — topics, brokers, and delivery semantics
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -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";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/extension-ros'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: ROS 2 nodes, messages, topic/service/action interfaces, QoS, and containerized deployment
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -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";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/methodology-default'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: "MEMO default medical-device methodology \u2014 selects viewpoints/views/DHF documents from @memoarchitect/ontology and adds rules, gates, patterns, profiles, and workflow."
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/methodology-gpca'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: "GPCA infusion pump methodology \u2014 subtraction-based tailoring of @memoarchitect/methodology-default for the non-networked prototype variant. Excludes cybersecurity and SOUP."
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/ontology'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: "MEMO \u2014 the single canonical medical-device ontology: core semantics, the Arcadia-inspired architecture layers (context, requirements, behavior, structure, interfaces, risk, cybersecurity,\
|
|
12
12
|
\ assurance, \u2026), compliance, viewpoints, views, and invariant rules. One namespace (memo::), one src/ tree."
|
|
13
13
|
license: MIT
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memoarchitect/ontology",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
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",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
8
|
# removed at the native semantic flip and are now rejected if present.
|
|
9
9
|
name: '@memoarchitect/medical-modeling-profile'
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.11.0
|
|
11
11
|
description: Closure rules and viewpoints for medical device modeling
|
|
12
12
|
license: MIT
|
|
13
13
|
tags:
|
|
@@ -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.
|
|
@@ -42,27 +42,16 @@ package memo_architecture_operational_scenarios {
|
|
|
42
42
|
attribute assumptionSummary : String;
|
|
43
43
|
attribute guaranteeSummary : String;
|
|
44
44
|
attribute securityObjective : String;
|
|
45
|
-
|
|
45
|
+
ref abuseCase : OperativeScenario[0..1];
|
|
46
46
|
attribute defaultCategory : ThreatCategoryKind[0..1];
|
|
47
47
|
// verification scenario
|
|
48
48
|
attribute verificationEnvironment : String;
|
|
49
49
|
attribute stimulusSummary : String;
|
|
50
50
|
// hazard-related use scenario (IEC 62366-1 3.9)
|
|
51
|
-
attribute hazardReference : String;
|
|
52
51
|
attribute selectionRationale : String;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
// A workflow is composed of one or more scenarios (nominal + alternate
|
|
56
55
|
// paths). ScenarioOccurrence/Executes were removed: an actual execution is
|
|
57
56
|
// 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
57
|
}
|
|
@@ -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
|
}
|
|
@@ -91,26 +91,6 @@ package memo_architecture_operational_workflows {
|
|
|
91
91
|
// SupportKind discriminator is gone: what used to be three enum values
|
|
92
92
|
// that each implied a different target type are now two typed refs plus
|
|
93
93
|
// this one plain relation.
|
|
94
|
-
connection def Supports :> MemoRelationship {
|
|
95
|
-
end supporter :>> source;
|
|
96
|
-
end supported : MemoAction :>> target;
|
|
97
|
-
}
|
|
98
|
-
abstract connection supportsLinks : Supports[*];
|
|
99
|
-
metadata def <supports> SupportsMetadata :> SemanticMetadata {
|
|
100
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
101
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
102
|
-
:>> baseType = supportsLinks meta SysML::Usage;
|
|
103
|
-
}
|
|
104
|
-
connection def RequiresResource :> MemoRelationship {
|
|
105
|
-
end workflow : OperationalWorkflow :>> source;
|
|
106
|
-
end resource : WorkflowResource :>> target;
|
|
107
|
-
}
|
|
108
|
-
abstract connection requiresResourceLinks : RequiresResource[*];
|
|
109
|
-
metadata def <requiresResource> RequiresResourceMetadata :> SemanticMetadata {
|
|
110
|
-
:> annotatedElement : SysML::ConnectionDefinition;
|
|
111
|
-
:> annotatedElement : SysML::ConnectionUsage;
|
|
112
|
-
:>> baseType = requiresResourceLinks meta SysML::Usage;
|
|
113
|
-
}
|
|
114
94
|
|
|
115
95
|
// ── Workflow transformation (as-is → to-be) ──────────────────
|
|
116
96
|
// Transforms unifies TransformsStep / TransformsWorkflow / ReplacesWorkflow
|