@memoarchitect/ontology 0.7.0 → 0.8.24
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 +4 -2
- package/examples/connected-patient-monitor/memo.package.yaml +3 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +8 -6
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/memo.package.yaml +3 -0
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +6 -6
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.package.yaml +3 -0
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +14 -3
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +8 -5
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +97 -103
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +17 -17
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -334
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
- package/examples/gpca-pump/model/catalog/project.sysml +5 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -7
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -8
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -3
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/memo.package.yaml +3 -0
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +16 -23
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +12 -0
- package/examples/software-only-medical-device/memo.package.yaml +3 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +12 -6
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +58 -75
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
- package/examples/surgical-robot/memo.package.yaml +3 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
- package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -18
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +43 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +57 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +40 -70
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +4 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +52 -84
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +22 -33
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +13 -10
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -25
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
- package/examples/ui-screen-regions/memo.package.yaml +3 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +2 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +13 -2
- 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 +5 -3
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +23 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +51 -23
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -36
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +40 -13
- package/src/architecture/implementation/ui/memo_ui.sysml +83 -43
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -12
- package/src/architecture/logical/structure/memo_logical_structure.sysml +26 -25
- package/src/architecture/operational/activities/memo_activities.sysml +27 -29
- package/src/architecture/operational/context/actors/memo_actors.sysml +8 -10
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +16 -33
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -17
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +36 -84
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -27
- package/src/architecture/operational/workflows/memo_workflows.sysml +45 -28
- package/src/architecture/realization/deployment/memo_deployment.sysml +115 -20
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +29 -4
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
- package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
- package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
- package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
- package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
- package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
- package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
- package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +40 -21
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +7 -20
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +90 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +25 -6
- package/src/core/common/memo_common.sysml +130 -21
- package/src/core/consistency_rules/consistency_rules.sysml +1 -1
- package/src/core/dimensions/dimensions.sysml +12 -0
- package/src/core/enumerations/memo_enumerations.sysml +60 -14
- package/src/core/relationships/memo_relationships.sysml +199 -196
- package/src/memo_namespaces.sysml +30 -0
- package/src/methodology/core/memo_core.sysml +24 -0
- package/src/methodology/profiles/memo_profiles.sysml +1 -1
- package/src/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +20 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
- package/src/rules/ontology/ontology_invariants.sysml +223 -11
- package/src/rules/quantitative/quantitative_rules.sysml +2 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +30 -30
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -3
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -3
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
- package/src/viewpoints/software/software_viewpoint.sysml +1 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -3
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/default/memo.package.yaml +2 -0
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/samd/memo.package.yaml +2 -0
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/gpca-pump/gpca-pump.kpar +0 -0
- /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// Verification and validation: cases and the evidence they produce.
|
|
2
2
|
package memo_examples_ui_screen_regions_assurance_verification_validation {
|
|
3
|
+
private import memo_examples_ui_screen_regions_assurance_safety_risk::*;
|
|
4
|
+
private import memo_examples_ui_screen_regions_architecture_functional_functions::*;
|
|
5
|
+
private import memo_examples_ui_screen_regions_assurance_requirements::*;
|
|
3
6
|
private import ScalarValues::*;
|
|
7
|
+
private import memo_core_dimensions::*; // ElementStatusKind
|
|
4
8
|
|
|
5
9
|
private import memo_core_relationships::*;
|
|
6
10
|
private import memo_core_annotations::*;
|
|
@@ -13,16 +17,20 @@ package memo_examples_ui_screen_regions_assurance_verification_validation {
|
|
|
13
17
|
private import memo_artifacts_core::*;
|
|
14
18
|
|
|
15
19
|
private import memo_core_enumerations::*;
|
|
20
|
+
private import memo_core_common::*;
|
|
16
21
|
private import memo_assurance_verification_validation::*;
|
|
17
22
|
|
|
18
23
|
verification vcRateChange : VerificationCase {
|
|
19
24
|
attribute :>> id = "UIR-VER-001"; attribute :>> name = "VerifyRateChangeConfirmation";
|
|
20
25
|
attribute :>> methodKind = VerificationMethodKind::test;
|
|
21
26
|
attribute :>> acceptanceCriteria = "A rate change cannot reach the controller until the displayed value is explicitly confirmed.";
|
|
22
|
-
attribute :>> status =
|
|
27
|
+
attribute :>> status = ElementStatusKind::approved;
|
|
28
|
+
|
|
29
|
+
subject verified : Base::Anything[*] = (rcRateConfirm, fnManageInfusionDisplay.fnSetInfusionRate, fnManageInfusionDisplay);
|
|
23
30
|
}
|
|
24
31
|
|
|
25
|
-
part evRateChange :
|
|
32
|
+
part evRateChange : MemoEvidence {
|
|
33
|
+
attribute :>> evidenceKind = EvidenceKind::evidence;
|
|
26
34
|
attribute :>> id = "UIR-EV-001"; attribute :>> name = "RateChangeConfirmationTestRecord";
|
|
27
35
|
attribute :>> version = "planned";
|
|
28
36
|
attribute :>> evidenceType = "test record";
|
|
@@ -33,10 +41,13 @@ package memo_examples_ui_screen_regions_assurance_verification_validation {
|
|
|
33
41
|
attribute :>> id = "VER-002"; attribute :>> name = "VerifyCareAreaDrugLibrarySelection";
|
|
34
42
|
attribute :>> methodKind = VerificationMethodKind::test;
|
|
35
43
|
attribute :>> acceptanceCriteria = "Only enabled care-area drug and concentration records are selectable, and every selection supplies the matching dosing limits.";
|
|
36
|
-
attribute :>> status =
|
|
44
|
+
attribute :>> status = ElementStatusKind::approved;
|
|
45
|
+
|
|
46
|
+
subject verified : Base::Anything[*] = (rcDrugLibraryGuard, fnManageInfusionDisplay.fnValidateDrugSelection);
|
|
37
47
|
}
|
|
38
48
|
|
|
39
|
-
part evDrugLibrarySelection :
|
|
49
|
+
part evDrugLibrarySelection : MemoEvidence {
|
|
50
|
+
attribute :>> evidenceKind = EvidenceKind::evidence;
|
|
40
51
|
attribute :>> id = "EVD-002"; attribute :>> name = "DrugLibrarySelectionTestRecord";
|
|
41
52
|
attribute :>> version = "planned";
|
|
42
53
|
attribute :>> evidenceType = "test record";
|
|
@@ -47,10 +58,14 @@ package memo_examples_ui_screen_regions_assurance_verification_validation {
|
|
|
47
58
|
attribute :>> id = "VER-003"; attribute :>> name = "VerifyInfusionStatusContentAndFreshness";
|
|
48
59
|
attribute :>> methodKind = VerificationMethodKind::test;
|
|
49
60
|
attribute :>> acceptanceCriteria = "Time, battery, active rate, drug identity, and total delivered volume satisfy their content, accuracy, and latency criteria under normal and threshold-transition conditions.";
|
|
50
|
-
attribute :>> status =
|
|
61
|
+
attribute :>> status = ElementStatusKind::approved;
|
|
62
|
+
|
|
63
|
+
objective { verify reqActiveRateDisplay; verify reqDrugIdentityDisplay; verify reqVolumeDisplay; verify reqTimeDisplay; verify reqTimeAccuracy; verify reqBatteryStatusDisplay; verify reqBatteryWarningPerformance; }
|
|
64
|
+
subject verified : Base::Anything[*] = (rcLowBatteryProminence, rcDisplayFreshnessMonitor, rcClockFreshnessCheck, fnManageInfusionDisplay.fnPresentDeliveryStatus, fnManageInfusionDisplay.fnPresentLocalTime, fnManageInfusionDisplay.fnPresentBatteryStatus);
|
|
51
65
|
}
|
|
52
66
|
|
|
53
|
-
part evInfusionStatusContent :
|
|
67
|
+
part evInfusionStatusContent : MemoEvidence {
|
|
68
|
+
attribute :>> evidenceKind = EvidenceKind::evidence;
|
|
54
69
|
attribute :>> id = "EVD-003"; attribute :>> name = "InfusionStatusDisplayTestRecord";
|
|
55
70
|
attribute :>> version = "planned";
|
|
56
71
|
attribute :>> evidenceType = "test record";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
package memo_examples_ui_screen_regions_relationships {
|
|
2
|
+
private import memo_artifacts_configuration_management::*;
|
|
3
|
+
private import memo_assurance_safety_risk::*;
|
|
4
|
+
private import memo_examples_ui_screen_regions_architecture_implementation_ui::*;
|
|
5
|
+
private import memo_examples_ui_screen_regions_assurance_requirements::*;
|
|
6
|
+
connection rel_tracesRisk_uiElement12_reqDrugIdentityDisplay : TracesRisk connect sourceRiskElement ::> uiElement12 to targetRiskElement ::> reqDrugIdentityDisplay;
|
|
7
|
+
connection rel_changes_uiElement12_reqDrugIdentityDisplay : Changes connect changeRequest ::> uiElement12 to changedElement ::> reqDrugIdentityDisplay;
|
|
8
|
+
}
|
|
@@ -29,73 +29,20 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
29
29
|
private import memo_examples_ui_screen_regions_artifacts_reviews_comments::*;
|
|
30
30
|
private import memo_examples_ui_screen_regions_artifacts_reviews_rationales::*;
|
|
31
31
|
private import memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
32
|
+
private import memo_assurance_safety_risk_analysis::*;
|
|
32
33
|
|
|
33
|
-
//
|
|
34
|
-
|
|
34
|
+
// The UI-element and function trees are native nesting now (see
|
|
35
|
+
// architecture/implementation/ui.sysml and architecture/functional/
|
|
36
|
+
// functions.sysml); no Composes edge is written for either. The two that
|
|
37
|
+
// remain below are the ones nesting cannot express: a tool-drawn region
|
|
38
|
+
// (uiElement12, appended by memo-architect's canvas editor as a flat
|
|
39
|
+
// element plus a Composes edge, not by hand) and a comment-reply thread
|
|
40
|
+
// (a review feature with the same runtime-append shape).
|
|
41
|
+
connection : ElementTriggersAction connect element ::> elMainScreen.elDrugSelectorRegion to triggeredAction ::> uiaSelectDrug;
|
|
35
42
|
|
|
36
|
-
connection :
|
|
43
|
+
connection : ElementTriggersAction connect element ::> elMainScreen.elDrugSelectorRegion.elDrugSelectorClosed to triggeredAction ::> uiaSelectDrug;
|
|
37
44
|
|
|
38
|
-
connection :
|
|
39
|
-
|
|
40
|
-
connection : Composes connect parent ::> elSettingsScreen to child ::> elRateConfirmDialog;
|
|
41
|
-
|
|
42
|
-
connection : Composes connect parent ::> fnManageInfusionDisplay to child ::> fnSetInfusionRate;
|
|
43
|
-
|
|
44
|
-
connection : Composes connect parent ::> fnManageInfusionDisplay to child ::> fnValidateDrugSelection;
|
|
45
|
-
|
|
46
|
-
connection : Composes connect parent ::> fnManageInfusionDisplay to child ::> fnPresentDeliveryStatus;
|
|
47
|
-
|
|
48
|
-
connection : Composes connect parent ::> fnManageInfusionDisplay to child ::> fnPresentLocalTime;
|
|
49
|
-
|
|
50
|
-
connection : Composes connect parent ::> fnManageInfusionDisplay to child ::> fnPresentBatteryStatus;
|
|
51
|
-
|
|
52
|
-
connection : ActionInvokesFunction connect uiAction ::> uiaEditRate to systemFunction ::> fnSetInfusionRate;
|
|
53
|
-
|
|
54
|
-
connection : ElementTriggersAction connect element ::> elDrugSelectorRegion to triggeredAction ::> uiaSelectDrug;
|
|
55
|
-
|
|
56
|
-
connection : ElementTriggersAction connect element ::> elDrugSelectorClosed to triggeredAction ::> uiaSelectDrug;
|
|
57
|
-
|
|
58
|
-
connection : ElementTriggersAction connect element ::> elDrugMenuExpanded to triggeredAction ::> uiaSelectDrug;
|
|
59
|
-
|
|
60
|
-
connection : ActionInvokesFunction connect uiAction ::> uiaSelectDrug to systemFunction ::> fnValidateDrugSelection;
|
|
61
|
-
|
|
62
|
-
connection : ActionInvokesFunction connect uiAction ::> uiaOpenSettings to systemFunction ::> fnManageInfusionDisplay;
|
|
63
|
-
|
|
64
|
-
connection : SatisfiedBy connect requiredElement ::> reqRateEntry to satisfyingElement ::> fnSetInfusionRate;
|
|
65
|
-
|
|
66
|
-
connection : SatisfiedBy connect requiredElement ::> reqRateLegibility to satisfyingElement ::> fnPresentDeliveryStatus;
|
|
67
|
-
|
|
68
|
-
connection : SatisfiedBy connect requiredElement ::> reqVolumeDisplay to satisfyingElement ::> fnPresentDeliveryStatus;
|
|
69
|
-
|
|
70
|
-
connection : SatisfiedBy connect requiredElement ::> reqRateLegibility to satisfyingElement ::> elMainScreen;
|
|
71
|
-
|
|
72
|
-
connection : SatisfiedBy connect requiredElement ::> reqRateEntry to satisfyingElement ::> elSettingsScreen;
|
|
73
|
-
|
|
74
|
-
connection : SatisfiedBy connect requiredElement ::> reqRateEntry to satisfyingElement ::> elRateConfirmDialog;
|
|
75
|
-
|
|
76
|
-
connection : SatisfiedBy connect requiredElement ::> reqDrugLibrarySelection to satisfyingElement ::> elDrugSelectorRegion;
|
|
77
|
-
|
|
78
|
-
connection : SatisfiedBy connect requiredElement ::> reqDrugLibrarySelection to satisfyingElement ::> fnValidateDrugSelection;
|
|
79
|
-
|
|
80
|
-
connection : SatisfiedBy connect requiredElement ::> reqDisplayFreshness to satisfyingElement ::> fnPresentDeliveryStatus;
|
|
81
|
-
|
|
82
|
-
connection : SatisfiedBy connect requiredElement ::> reqActiveRateDisplay to satisfyingElement ::> fnPresentDeliveryStatus;
|
|
83
|
-
|
|
84
|
-
connection : SatisfiedBy connect requiredElement ::> reqDrugIdentityDisplay to satisfyingElement ::> elDrugSelectorClosed;
|
|
85
|
-
|
|
86
|
-
connection : SatisfiedBy connect requiredElement ::> reqDrugIdentityDisplay to satisfyingElement ::> fnValidateDrugSelection;
|
|
87
|
-
|
|
88
|
-
connection : SatisfiedBy connect requiredElement ::> reqTimeDisplay to satisfyingElement ::> fnPresentLocalTime;
|
|
89
|
-
|
|
90
|
-
connection : SatisfiedBy connect requiredElement ::> reqTimeAccuracy to satisfyingElement ::> fnPresentLocalTime;
|
|
91
|
-
|
|
92
|
-
connection : SatisfiedBy connect requiredElement ::> reqBatteryStatusDisplay to satisfyingElement ::> fnPresentBatteryStatus;
|
|
93
|
-
|
|
94
|
-
connection : SatisfiedBy connect requiredElement ::> reqBatteryWarningPerformance to satisfyingElement ::> fnPresentBatteryStatus;
|
|
95
|
-
|
|
96
|
-
connection : SatisfiedBy connect requiredElement ::> reqDrugSelectionPerformance to satisfyingElement ::> elDrugSelectorRegion;
|
|
97
|
-
|
|
98
|
-
connection : SatisfiedBy connect requiredElement ::> reqDrugSelectionPerformance to satisfyingElement ::> fnValidateDrugSelection;
|
|
45
|
+
connection : ElementTriggersAction connect element ::> elMainScreen.elDrugSelectorRegion.elDrugMenuExpanded to triggeredAction ::> uiaSelectDrug;
|
|
99
46
|
|
|
100
47
|
connection : DerivesFrom connect sourceDriver ::> needReadableProgramming to targetRequirement ::> reqRateLegibility;
|
|
101
48
|
|
|
@@ -123,7 +70,7 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
123
70
|
|
|
124
71
|
connection : ErrorAtElement connect useError ::> ueMisreadRate to element ::> elMainScreen;
|
|
125
72
|
|
|
126
|
-
connection : ControlImplementedBy connect riskControl ::> rcRateConfirm to implementingElement ::> elRateConfirmDialog;
|
|
73
|
+
connection : ControlImplementedBy connect riskControl ::> rcRateConfirm to implementingElement ::> elSettingsScreen.elRateConfirmDialog;
|
|
127
74
|
|
|
128
75
|
connection : Causes connect cause ::> ueMisreadRate to effect ::> hzWrongRate {
|
|
129
76
|
attribute :>> causeKind = CauseKind::useErrorLeadsToHazard;
|
|
@@ -135,7 +82,7 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
135
82
|
|
|
136
83
|
connection : DerivesFrom connect sourceDriver ::> hzWrongRate to targetRequirement ::> reqRateEntry;
|
|
137
84
|
|
|
138
|
-
connection : ErrorAtElement connect useError ::> ueSelectWrongDrug to element ::> elDrugSelectorRegion;
|
|
85
|
+
connection : ErrorAtElement connect useError ::> ueSelectWrongDrug to element ::> elMainScreen.elDrugSelectorRegion;
|
|
139
86
|
|
|
140
87
|
connection : Causes connect cause ::> ueSelectWrongDrug to effect ::> hzWrongDrug {
|
|
141
88
|
attribute :>> causeKind = CauseKind::useErrorLeadsToHazard;
|
|
@@ -145,9 +92,9 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
145
92
|
attribute :>> mitigationKind = MitigationKind::hazard;
|
|
146
93
|
}
|
|
147
94
|
|
|
148
|
-
connection : ControlImplementedBy connect riskControl ::> rcDrugLibraryGuard to implementingElement ::> elDrugSelectorRegion;
|
|
95
|
+
connection : ControlImplementedBy connect riskControl ::> rcDrugLibraryGuard to implementingElement ::> elMainScreen.elDrugSelectorRegion;
|
|
149
96
|
|
|
150
|
-
connection : ControlImplementedBy connect riskControl ::> rcDrugLibraryGuard to implementingElement ::> fnValidateDrugSelection;
|
|
97
|
+
connection : ControlImplementedBy connect riskControl ::> rcDrugLibraryGuard to implementingElement ::> fnManageInfusionDisplay.fnValidateDrugSelection;
|
|
151
98
|
|
|
152
99
|
connection : DerivesFrom connect sourceDriver ::> hzWrongDrug to targetRequirement ::> reqDrugLibrarySelection;
|
|
153
100
|
|
|
@@ -161,7 +108,7 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
161
108
|
attribute :>> mitigationKind = MitigationKind::hazard;
|
|
162
109
|
}
|
|
163
110
|
|
|
164
|
-
connection : ControlImplementedBy connect riskControl ::> rcLowBatteryProminence to implementingElement ::> fnPresentBatteryStatus;
|
|
111
|
+
connection : ControlImplementedBy connect riskControl ::> rcLowBatteryProminence to implementingElement ::> fnManageInfusionDisplay.fnPresentBatteryStatus;
|
|
165
112
|
|
|
166
113
|
connection : DerivesFrom connect sourceDriver ::> hzUnexpectedPowerLoss to targetRequirement ::> reqBatteryWarningPerformance;
|
|
167
114
|
|
|
@@ -175,7 +122,7 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
175
122
|
attribute :>> mitigationKind = MitigationKind::hazard;
|
|
176
123
|
}
|
|
177
124
|
|
|
178
|
-
connection : ControlImplementedBy connect riskControl ::> rcDisplayFreshnessMonitor to implementingElement ::> fnPresentDeliveryStatus;
|
|
125
|
+
connection : ControlImplementedBy connect riskControl ::> rcDisplayFreshnessMonitor to implementingElement ::> fnManageInfusionDisplay.fnPresentDeliveryStatus;
|
|
179
126
|
|
|
180
127
|
connection : DerivesFrom connect sourceDriver ::> hzIncorrectDeliveredVolumeAssessment to targetRequirement ::> reqDisplayFreshness;
|
|
181
128
|
|
|
@@ -189,81 +136,37 @@ package memo_examples_ui_screen_regions_traces {
|
|
|
189
136
|
attribute :>> mitigationKind = MitigationKind::hazard;
|
|
190
137
|
}
|
|
191
138
|
|
|
192
|
-
connection : ControlImplementedBy connect riskControl ::> rcClockFreshnessCheck to implementingElement ::> fnPresentLocalTime;
|
|
139
|
+
connection : ControlImplementedBy connect riskControl ::> rcClockFreshnessCheck to implementingElement ::> fnManageInfusionDisplay.fnPresentLocalTime;
|
|
193
140
|
|
|
194
141
|
connection : DerivesFrom connect sourceDriver ::> hzIncorrectEventChronology to targetRequirement ::> reqTimeAccuracy;
|
|
195
142
|
|
|
196
|
-
connection : VerifiedBy connect verificationTarget ::> rcRateConfirm to verificationCase ::> vcRateChange;
|
|
197
|
-
|
|
198
|
-
connection : VerifiedBy connect verificationTarget ::> fnSetInfusionRate to verificationCase ::> vcRateChange;
|
|
199
|
-
|
|
200
|
-
connection : VerifiedBy connect verificationTarget ::> fnManageInfusionDisplay to verificationCase ::> vcRateChange;
|
|
201
|
-
|
|
202
|
-
connection : VerifiedBy connect verificationTarget ::> rcDrugLibraryGuard to verificationCase ::> vcDrugLibrarySelection;
|
|
203
|
-
|
|
204
|
-
connection : VerifiedBy connect verificationTarget ::> fnValidateDrugSelection to verificationCase ::> vcDrugLibrarySelection;
|
|
205
|
-
|
|
206
|
-
connection : VerifiedBy connect verificationTarget ::> rcLowBatteryProminence to verificationCase ::> vcInfusionStatusContent;
|
|
207
|
-
|
|
208
|
-
connection : VerifiedBy connect verificationTarget ::> rcDisplayFreshnessMonitor to verificationCase ::> vcInfusionStatusContent;
|
|
209
|
-
|
|
210
|
-
connection : VerifiedBy connect verificationTarget ::> rcClockFreshnessCheck to verificationCase ::> vcInfusionStatusContent;
|
|
211
|
-
|
|
212
|
-
connection : VerifiedBy connect verificationTarget ::> reqActiveRateDisplay to verificationCase ::> vcInfusionStatusContent;
|
|
213
|
-
|
|
214
|
-
connection : VerifiedBy connect verificationTarget ::> reqDrugIdentityDisplay to verificationCase ::> vcInfusionStatusContent;
|
|
215
|
-
|
|
216
|
-
connection : VerifiedBy connect verificationTarget ::> reqVolumeDisplay to verificationCase ::> vcInfusionStatusContent;
|
|
217
|
-
|
|
218
|
-
connection : VerifiedBy connect verificationTarget ::> reqTimeDisplay to verificationCase ::> vcInfusionStatusContent;
|
|
219
|
-
|
|
220
|
-
connection : VerifiedBy connect verificationTarget ::> reqTimeAccuracy to verificationCase ::> vcInfusionStatusContent;
|
|
221
|
-
|
|
222
|
-
connection : VerifiedBy connect verificationTarget ::> reqBatteryStatusDisplay to verificationCase ::> vcInfusionStatusContent;
|
|
223
|
-
|
|
224
|
-
connection : VerifiedBy connect verificationTarget ::> reqBatteryWarningPerformance to verificationCase ::> vcInfusionStatusContent;
|
|
225
|
-
|
|
226
|
-
connection : VerifiedBy connect verificationTarget ::> fnPresentDeliveryStatus to verificationCase ::> vcInfusionStatusContent;
|
|
227
|
-
|
|
228
|
-
connection : VerifiedBy connect verificationTarget ::> fnPresentLocalTime to verificationCase ::> vcInfusionStatusContent;
|
|
229
|
-
|
|
230
|
-
connection : VerifiedBy connect verificationTarget ::> fnPresentBatteryStatus to verificationCase ::> vcInfusionStatusContent;
|
|
231
|
-
|
|
232
143
|
connection : ProducesEvidence connect producer ::> vcRateChange to producedEvidence ::> evRateChange;
|
|
233
144
|
|
|
234
145
|
connection : ProducesEvidence connect producer ::> vcDrugLibrarySelection to producedEvidence ::> evDrugLibrarySelection;
|
|
235
146
|
|
|
236
147
|
connection : ProducesEvidence connect producer ::> vcInfusionStatusContent to producedEvidence ::> evInfusionStatusContent;
|
|
237
148
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
connection : AllocatedTo connect function ::> fnPresentDeliveryStatus to allocatedElement ::> uiPumpPanel;
|
|
245
|
-
|
|
246
|
-
connection : AllocatedTo connect function ::> fnPresentLocalTime to allocatedElement ::> uiPumpPanel;
|
|
247
|
-
|
|
248
|
-
connection : AllocatedTo connect function ::> fnPresentBatteryStatus to allocatedElement ::> uiPumpPanel;
|
|
249
|
-
|
|
149
|
+
allocate fnManageInfusionDisplay.fnSetInfusionRate to uiPumpPanel;
|
|
150
|
+
allocate fnManageInfusionDisplay to uiPumpPanel;
|
|
151
|
+
allocate fnManageInfusionDisplay.fnValidateDrugSelection to uiPumpPanel;
|
|
152
|
+
allocate fnManageInfusionDisplay.fnPresentDeliveryStatus to uiPumpPanel;
|
|
153
|
+
allocate fnManageInfusionDisplay.fnPresentLocalTime to uiPumpPanel;
|
|
154
|
+
allocate fnManageInfusionDisplay.fnPresentBatteryStatus to uiPumpPanel;
|
|
250
155
|
// Two seeded function-to-region traces for exercising relationship editing
|
|
251
156
|
// in the UI. Newly drawn regions can be linked the same way.
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
connection : AllocatedTo connect function ::> fnSetInfusionRate to allocatedElement ::> elRateConfirmDialog;
|
|
255
|
-
|
|
157
|
+
allocate fnManageInfusionDisplay.fnValidateDrugSelection to elMainScreen.elDrugSelectorRegion;
|
|
158
|
+
allocate fnManageInfusionDisplay.fnSetInfusionRate to elSettingsScreen.elRateConfirmDialog;
|
|
256
159
|
connection : CapturesScreen connect capture ::> capMain to screen ::> elMainScreen;
|
|
257
160
|
|
|
258
161
|
connection : CapturesScreen connect capture ::> capSettings to screen ::> elSettingsScreen;
|
|
259
162
|
|
|
260
|
-
connection : CapturesScreen connect capture ::> capDrugSelector to screen ::> elDrugSelectorRegion;
|
|
163
|
+
connection : CapturesScreen connect capture ::> capDrugSelector to screen ::> elMainScreen.elDrugSelectorRegion;
|
|
261
164
|
|
|
262
165
|
connection : CommentsOn connect remark ::> cmtDecimalSalience to annotatedElement ::> elMainScreen;
|
|
263
166
|
|
|
264
167
|
connection : CommentsOn connect remark ::> cmtStatusBarScope to annotatedElement ::> elMainScreen;
|
|
265
168
|
|
|
266
|
-
connection : RationaleFor connect rationaleRecord ::> ratOverlayGeometry to justifiedElement ::> elDrugMenuExpanded;
|
|
169
|
+
connection : RationaleFor connect rationaleRecord ::> ratOverlayGeometry to justifiedElement ::> elMainScreen.elDrugSelectorRegion.elDrugMenuExpanded;
|
|
267
170
|
|
|
268
171
|
connection : NotesOn connect noteRecord ::> noteCaptureReview to notedElement ::> capMain;
|
|
269
172
|
|
|
@@ -44,7 +44,6 @@ package memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functiona
|
|
|
44
44
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
45
45
|
attribute depth = 3;
|
|
46
46
|
attribute :>> id = "FUN-101";
|
|
47
|
-
attribute :>> title = "Infusion UI Functional Tree";
|
|
48
47
|
attribute :>> shortDescription = "Display-management functions, invoked actions, and UI allocation.";
|
|
49
48
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
50
49
|
attribute :>> diagramType = "bdd";
|
|
@@ -53,10 +52,10 @@ package memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functiona
|
|
|
53
52
|
attribute :>> id = "QRY-102";
|
|
54
53
|
attribute :>> name = "UIFunctionalTreeQuery";
|
|
55
54
|
attribute :>> includeElementKinds = ("SystemFunction", "UIAction", "UIElement", "UserInterface");
|
|
56
|
-
attribute :>> includeRelationshipKinds = ("Composes", "ElementTriggersAction", "
|
|
55
|
+
attribute :>> includeRelationshipKinds = ("Composes", "ElementTriggersAction", "Performs", "AllocatedTo");
|
|
57
56
|
attribute :>> includeLayers = ("functions", "implementation");
|
|
58
57
|
attribute :>> rationaleText = "Show function decomposition from interaction to allocated user interface.";
|
|
59
58
|
}
|
|
60
|
-
|
|
59
|
+
ref :>> viewpointDefinition = functionalViewpoint;
|
|
61
60
|
}
|
|
62
61
|
}
|
|
@@ -44,7 +44,6 @@ package memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_require
|
|
|
44
44
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
45
45
|
attribute depth = 3;
|
|
46
46
|
attribute :>> id = "REQ-101";
|
|
47
|
-
attribute :>> title = "UI Requirements Traceability";
|
|
48
47
|
attribute :>> shortDescription = "Clinical need through UI requirements to satisfying regions and functions.";
|
|
49
48
|
attribute :>> viewKind = DiagramViewKind::grid;
|
|
50
49
|
attribute :>> diagramType = "req";
|
|
@@ -57,6 +56,6 @@ package memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_require
|
|
|
57
56
|
attribute :>> includeLayers = ("requirements", "implementation", "functions", "assurance");
|
|
58
57
|
attribute :>> rationaleText = "Show the example's requirement derivation and satisfaction chain.";
|
|
59
58
|
}
|
|
60
|
-
|
|
59
|
+
ref :>> viewpointDefinition = requirementsViewpoint;
|
|
61
60
|
}
|
|
62
61
|
}
|
|
@@ -44,7 +44,6 @@ package memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain {
|
|
|
44
44
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
45
45
|
attribute depth = 3;
|
|
46
46
|
attribute :>> id = "RSK-101";
|
|
47
|
-
attribute :>> title = "UI Risk and Control Chains";
|
|
48
47
|
attribute :>> shortDescription = "Use errors through UI hazards to implemented controls and requirements.";
|
|
49
48
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
50
49
|
attribute :>> diagramType = "risk";
|
|
@@ -57,6 +56,6 @@ package memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain {
|
|
|
57
56
|
attribute :>> includeLayers = ("human_factors", "risk", "requirements", "implementation", "functions", "assurance");
|
|
58
57
|
attribute :>> rationaleText = "Show both misread-rate and wrong-drug UI risk-control chains.";
|
|
59
58
|
}
|
|
60
|
-
|
|
59
|
+
ref :>> viewpointDefinition = riskViewpoint;
|
|
61
60
|
}
|
|
62
61
|
}
|
package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml
CHANGED
|
@@ -51,7 +51,6 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_main_screen_l
|
|
|
51
51
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
52
52
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
53
53
|
attribute :>> id = "UIE-001";
|
|
54
|
-
|
|
55
|
-
part :>> viewpointDefinition = uiLayoutViewpoint;
|
|
54
|
+
ref :>> viewpointDefinition = uiLayoutViewpoint;
|
|
56
55
|
}
|
|
57
56
|
}
|
|
@@ -46,7 +46,6 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_settings_scre
|
|
|
46
46
|
expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
|
|
47
47
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
48
48
|
attribute :>> id = "UIE-008";
|
|
49
|
-
|
|
50
|
-
part :>> viewpointDefinition = uiLayoutViewpoint;
|
|
49
|
+
ref :>> viewpointDefinition = uiLayoutViewpoint;
|
|
51
50
|
}
|
|
52
51
|
}
|
package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml
CHANGED
|
@@ -46,9 +46,8 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_ui_region_tra
|
|
|
46
46
|
expose memo_examples_ui_screen_regions_traces::*;
|
|
47
47
|
attribute :>> id = "UIV-001";
|
|
48
48
|
attribute depth = 3;
|
|
49
|
-
attribute :>> title = "UI Region Traceability";
|
|
50
49
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
51
50
|
attribute :>> diagramType = "bdd";
|
|
52
|
-
|
|
51
|
+
ref :>> viewpointDefinition = uiLayoutViewpoint;
|
|
53
52
|
}
|
|
54
53
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 memoarchitect
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Extensions
|
|
2
|
+
|
|
3
|
+
An extension is a **way to model**, not a sample. It is a reusable ontology
|
|
4
|
+
package that specializes the base and is selected by a methodology or a project
|
|
5
|
+
binding — so extensions live here, beside `src/`, and not under `examples/`.
|
|
6
|
+
Examples *use* extensions; `examples/ros-mobile-robot` demonstrates one.
|
|
7
|
+
|
|
8
|
+
MEMO defines no extension metaclass. An extension is a plain SysML package:
|
|
9
|
+
|
|
10
|
+
- outside `src/` and outside the `memo::` namespace;
|
|
11
|
+
- with a `memo.package.yaml` carrying identity and `sysmlDir` only (the semantic
|
|
12
|
+
fields `type` / `extends` / `usage` / `ontologies` / `methodology` / `modules`
|
|
13
|
+
are rejected);
|
|
14
|
+
- whose SysML **specializes** base types;
|
|
15
|
+
- plus a `MethodologyDefinition` naming `baseMethodology`, `scopeMode`, and its
|
|
16
|
+
own `includedModule`.
|
|
17
|
+
|
|
18
|
+
`template/` is the skeleton. The build round-trips every extension into its own
|
|
19
|
+
KPAR and resolves it with `syside check`, exactly as it does the base.
|
|
20
|
+
|
|
21
|
+
## Composition happens at the project binding
|
|
22
|
+
|
|
23
|
+
`MethodologyDefinition.baseMethodology` is `[0..1]` — single inheritance, and
|
|
24
|
+
deliberate. Extensions therefore **do not chain**. Both
|
|
25
|
+
`MethodologyDefinition.includedModule` and `ProjectMethodBinding.includedModule`
|
|
26
|
+
are `String[0..*]`, so a project combines any number of independent extensions
|
|
27
|
+
by listing their modules in its own binding. That is *the* composition
|
|
28
|
+
mechanism; nothing else is supported.
|
|
29
|
+
|
|
30
|
+
## Rule 1 — use native mechanisms first; extension relations specialize base ones
|
|
31
|
+
|
|
32
|
+
An extension **may** declare `connection def`s and `allocation def`s when the
|
|
33
|
+
domain adds a relationship SysML does not already express. It must first use
|
|
34
|
+
native ports, interfaces, flows, messages, allocations, and dependencies. ROS
|
|
35
|
+
is the worked example: publisher/subscriber roles are directional ports, the
|
|
36
|
+
message is an item definition, the named topic is an item usage, and native
|
|
37
|
+
interfaces/flows connect them. No ROS publish/subscribe relation exists.
|
|
38
|
+
The OMG's own `Domain Libraries/Requirement Derivation` ships a `connection def`
|
|
39
|
+
next to a `metadata def :> SemanticMetadata` — domain relations are the
|
|
40
|
+
sanctioned extension mechanism in SysML v2 too.
|
|
41
|
+
|
|
42
|
+
The constraint is on where they root:
|
|
43
|
+
|
|
44
|
+
> **A relation declared by an extension specializes a base MEMO relation. It
|
|
45
|
+
> never roots independently.**
|
|
46
|
+
|
|
47
|
+
For a genuinely new relation, `connection def DomainRelation :> MemoLink` is
|
|
48
|
+
correct; `connection def DomainRelation { … }` is not. Rooting independently would give
|
|
49
|
+
the relation no identification core, no place in the relationship registry, and
|
|
50
|
+
no ends the base can reason about — a conforming tool would read it as opaque,
|
|
51
|
+
which is the same defect §2 of the plan names in the base itself. Give each one
|
|
52
|
+
a `metadata def <keyword> … :> SemanticMetadata` as well, for the same reason
|
|
53
|
+
every base relation has one.
|
|
54
|
+
|
|
55
|
+
The previous guard here was `assert.doesNotMatch(clinical, /connection def/)` —
|
|
56
|
+
a regression check on one example that had grown into an apparent rule. The
|
|
57
|
+
test now enforces the rule written above instead of the accident it was
|
|
58
|
+
guarding.
|
|
59
|
+
|
|
60
|
+
## Rule 2 — every definition carries the extension's prefix
|
|
61
|
+
|
|
62
|
+
> **An extension's definition names all begin with the PascalCase form of its
|
|
63
|
+
> directory name.**
|
|
64
|
+
|
|
65
|
+
`clinical/` gives `ClinicalProcedureWorkflow`, `ros/` gives `RosNode`, `aadl/`
|
|
66
|
+
gives `AadlThread`. Definition names share one flat namespace with the base and
|
|
67
|
+
with every other extension, so without a prefix two independent extensions could
|
|
68
|
+
both declare `Node` and a project could not include both. The uniqueness check
|
|
69
|
+
compares each extension against the base *and* against every other extension;
|
|
70
|
+
the prefix is what makes that check something an author can satisfy by
|
|
71
|
+
construction rather than by luck.
|
|
72
|
+
|
|
73
|
+
Enumeration literals are not definitions and are not prefixed —
|
|
74
|
+
`RosReliabilityKind::reliable`, not `RosReliabilityKind::rosReliable`.
|
|
75
|
+
|
|
76
|
+
## What an extension must not do
|
|
77
|
+
|
|
78
|
+
- Redefine or restate what the base already expresses — specialize it.
|
|
79
|
+
- Declare a definition name the base or another extension declares.
|
|
80
|
+
- Carry semantic YAML. Identity and `sysmlDir` are the whole descriptor.
|
|
81
|
+
|
|
82
|
+
## The extensions that ship
|
|
83
|
+
|
|
84
|
+
| Directory | Prefix | What it adds |
|
|
85
|
+
| --- | --- | --- |
|
|
86
|
+
| `template/` | `Template` | The skeleton to copy. |
|
|
87
|
+
| `clinical/` | `Clinical` | Clinical-procedure data on the base operational workflow. |
|
|
88
|
+
| `aadl/` | `Aadl` | The AADL (SAE AS5506) correspondence profile: MEMO names mapped to AADL categories, plus the process / thread / virtual-processor component families. |
|
|
89
|
+
| `cloud/` | `Cloud` | Networked services and managed data stores. |
|
|
90
|
+
| `ros/` | `Ros` | ROS 2: nodes, messages, directional ports, topic/service/action interfaces, QoS, and containerized deployment. |
|
|
91
|
+
|
|
92
|
+
`aadl`, `cloud`, and `ros` between them are where the twelve runtime-technology
|
|
93
|
+
attributes that used to sit on `SoftwareComponent` now live — see
|
|
94
|
+
`plans/reference/memo-r1-arcadia-residue.md`.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Application/distribution descriptor for this MEMO package.
|
|
2
|
+
#
|
|
3
|
+
# Identity and location only. It records what this package is called, what
|
|
4
|
+
# version it is, and where its SysML source sits so a resolver can find it.
|
|
5
|
+
# It does not select model content: the project's native SysML imports and its
|
|
6
|
+
# ProjectMethodBinding decide what is in the model. Semantic fields
|
|
7
|
+
# (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
|
|
8
|
+
# removed at the native semantic flip and are now rejected if present.
|
|
9
|
+
name: '@memoarchitect/extension-aadl'
|
|
10
|
+
version: 0.8.24
|
|
11
|
+
description: AADL (SAE AS5506) correspondence profile and runtime component families
|
|
12
|
+
license: MIT
|
|
13
|
+
tags:
|
|
14
|
+
- memo
|
|
15
|
+
- methodology
|
|
16
|
+
- extension
|
|
17
|
+
- aadl
|
|
18
|
+
sysmlDir: ./src
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// The AADL extension's public facade. A project includes the module
|
|
2
|
+
// `memo_extension_aadl` in its binding and imports this package.
|
|
3
|
+
package memo_extension_aadl {
|
|
4
|
+
public import memo_extension_aadl_runtime::*;
|
|
5
|
+
public import memo_extension_aadl_correspondence::*;
|
|
6
|
+
}
|