@memoarchitect/ontology 0.8.22 → 0.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/examples/connected-patient-monitor/memo.package.yaml +3 -0
- 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/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 +11 -9
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
- 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 +9 -7
- package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.identity.yaml +2179 -0
- package/examples/gpca-pump/memo.package.yaml +3 -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 +27 -23
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +15 -15
- 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 +146 -180
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +21 -33
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -11
- 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 +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +7 -8
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +6 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +10 -8
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -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 +7 -5
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
- 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 -4
- package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
- 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 +20 -18
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +23 -31
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
- package/examples/ros-mobile-robot/memo.package.yaml +3 -0
- 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/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
- package/examples/software-only-medical-device/memo.package.yaml +3 -0
- 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 +11 -9
- 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/project.sysml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -69
- 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/project.sysml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
- 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/project.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +17 -16
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +9 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -9
- package/examples/temperature-alarm/memo.identity.yaml +64 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +30 -29
- 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 +14 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
- package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
- package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +4 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +4 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +4 -3
- 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/container_extension.sysml +2 -2
- 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 +5 -5
- package/src/architecture/functional/functions/memo_functions.sysml +6 -6
- 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/software/structure/memo_software_structure.sysml +7 -7
- package/src/architecture/implementation/ui/memo_ui.sysml +8 -31
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +4 -2
- package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
- package/src/architecture/operational/activities/memo_activities.sysml +19 -28
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +5 -14
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +12 -104
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -12
- package/src/architecture/operational/workflows/memo_workflows.sysml +20 -42
- package/src/architecture/realization/deployment/memo_deployment.sysml +26 -19
- 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/system/sad.md +3 -3
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
- package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
- package/src/assurance/requirements/memo_requirements.sysml +2 -18
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
- package/src/assurance/safety_risk/memo_risk.sysml +12 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
- package/src/core/common/memo_common.sysml +59 -55
- package/src/core/enumerations/memo_enumerations.sysml +1 -1
- package/src/core/relationships/memo_relationships.sysml +29 -56
- 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/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +22 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
- package/src/rules/ontology/ontology_invariants.sysml +121 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +58 -57
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +5 -4
- package/src/viewpoints/context/context_viewpoint.sysml +6 -5
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +6 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +6 -6
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +36 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +6 -5
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +6 -5
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +6 -5
- package/src/viewpoints/logical/logical_viewpoint.sysml +5 -4
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +6 -5
- package/src/viewpoints/operational/operational_viewpoint.sysml +6 -5
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +7 -6
- package/src/viewpoints/physical/physical_viewpoint.sysml +5 -4
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +6 -5
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +6 -5
- package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +5 -4
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +6 -5
- package/src/viewpoints/risk/risk_viewpoint.sysml +5 -4
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +6 -5
- package/src/viewpoints/software/software_viewpoint.sysml +5 -4
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +6 -5
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +5 -4
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +5 -4
- package/src/viewpoints/verification/verification_viewpoint.sysml +5 -4
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +6 -5
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/connected-device/model/catalog/project.sysml +3 -1
- package/templates/default/memo.package.yaml +2 -0
- package/templates/default/model/catalog/project.sysml +3 -1
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/infusion-pump/model/catalog/project.sysml +3 -1
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/monitoring-device/model/catalog/project.sysml +3 -1
- package/templates/samd/memo.package.yaml +2 -0
- package/templates/samd/model/catalog/project.sysml +3 -1
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ pin an exact release; the package has no repository or runtime dependency on Mem
|
|
|
23
23
|
Tools or Memo Architect.
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
pnpm add @memoarchitect/ontology@0.8.
|
|
26
|
+
pnpm add @memoarchitect/ontology@0.8.24
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
> **Pre-1.0 notice:** ontology names, relationships, and package layout may
|
|
@@ -11,22 +11,24 @@ package memo_examples_connected_patient_monitor {
|
|
|
11
11
|
private import memo_architecture_logical_interfaces::*;
|
|
12
12
|
private import memo_assurance_cybersecurity::*;
|
|
13
13
|
|
|
14
|
+
private import memo_core_common::*;
|
|
15
|
+
private import memo_core_common::MemoIdentity;
|
|
14
16
|
part lcMonitor : LogicalComponent {
|
|
15
|
-
|
|
17
|
+
@MemoIdentity { :>> providedId = "CPM-LC-001"; } attribute :>> name = "BedsideMonitor";
|
|
16
18
|
attribute :>> responsibility = "Acquire and display vitals; publish measurements.";
|
|
17
19
|
}
|
|
18
20
|
part lcGateway : LogicalComponent {
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "CPM-LC-002"; } attribute :>> name = "WardGateway";
|
|
20
22
|
attribute :>> responsibility = "Aggregate device data; bridge device LAN to hospital network.";
|
|
21
23
|
}
|
|
22
24
|
part lcCdrService : LogicalComponent {
|
|
23
|
-
|
|
25
|
+
@MemoIdentity { :>> providedId = "CPM-LC-003"; } attribute :>> name = "ClinicalDataRepository";
|
|
24
26
|
attribute :>> externalOwner = "hospital IT";
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
// Typed measurement item, coded against ISO/IEEE 11073-10101.
|
|
28
30
|
item spo2Item : LogicalExchangeItem {
|
|
29
|
-
|
|
31
|
+
@MemoIdentity { :>> providedId = "CPM-IT-001"; } attribute :>> name = "SpO2Measurement";
|
|
30
32
|
attribute :>> contentKind = FlowContentKind::measurement;
|
|
31
33
|
attribute :>> unit = "%";
|
|
32
34
|
attribute :>> timestampRequired = true;
|
|
@@ -39,7 +41,7 @@ package memo_examples_connected_patient_monitor {
|
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
part exSpo2ToGateway : LogicalExchange {
|
|
42
|
-
|
|
44
|
+
@MemoIdentity { :>> providedId = "CPM-EX-001"; } attribute :>> name = "SpO2ToGateway";
|
|
43
45
|
attribute :>> contentKind = FlowContentKind::measurement;
|
|
44
46
|
attribute :>> direction = DirectionKind::output;
|
|
45
47
|
ref :>> exchangedItem = spo2Item;
|
|
@@ -56,13 +58,13 @@ package memo_examples_connected_patient_monitor {
|
|
|
56
58
|
// Network interface with cybersecurity properties; trust boundary at the
|
|
57
59
|
// hospital network edge.
|
|
58
60
|
interface ifHl7Feed : Interface {
|
|
59
|
-
|
|
61
|
+
@MemoIdentity { :>> providedId = "CPM-IF-001"; } attribute :>> name = "GatewayToCdrFeed";
|
|
60
62
|
attribute :>> protocol = "HL7 FHIR REST over TLS 1.3";
|
|
61
63
|
attribute :>> securityCriticality = CriticalityKind::high;
|
|
62
64
|
attribute :>> patientContactInterface = false;
|
|
63
65
|
}
|
|
64
66
|
part tbHospitalEdge : TrustBoundary {
|
|
65
|
-
|
|
67
|
+
@MemoIdentity { :>> providedId = "CPM-TB-001"; } attribute :>> name = "DeviceLanToHospitalNetwork";
|
|
66
68
|
}
|
|
67
69
|
connection : CrossesTrustBoundary connect boundary ::> tbHospitalEdge to crossingItem ::> ifHl7Feed {
|
|
68
70
|
attribute :>> crossingKind = InterfaceKind::network;
|
|
@@ -14,8 +14,10 @@ package memo_examples_connected_patient_monitor_project {
|
|
|
14
14
|
private import memo_examples_connected_patient_monitor_viewpoints_unassigned::*;
|
|
15
15
|
private import memo_examples_connected_patient_monitor_viewpoints_unassigned_views_connected_patient_monitor_overview::*;
|
|
16
16
|
|
|
17
|
+
private import memo_core_common::*;
|
|
18
|
+
private import memo_core_common::MemoIdentity;
|
|
17
19
|
part projectBinding : ProjectMethodBinding {
|
|
18
|
-
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-PATIENT-MONITOR-001"; }
|
|
19
21
|
attribute :>> name = "ConnectedPatientMonitorProjectMethodBinding";
|
|
20
22
|
attribute :>> projectName = "Connected Patient Monitor";
|
|
21
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
@@ -2,5 +2,5 @@ package memo_examples_connected_patient_monitor_viewpoints_unassigned_views_conn
|
|
|
2
2
|
private import memo_examples_connected_patient_monitor::*;
|
|
3
3
|
private import memo_viewpoints_definitions::*;
|
|
4
4
|
private import memo_core_enumerations::*;
|
|
5
|
-
view connectedPatientMonitorOverview : MemoDiagramView { expose memo_examples_connected_patient_monitor::*; attribute depth = 2; attribute :>>
|
|
5
|
+
view connectedPatientMonitorOverview : MemoDiagramView { expose memo_examples_connected_patient_monitor::*; attribute depth = 2; attribute :>> viewKind = DiagramViewKind::interconnection; attribute :>> diagramType = "ibd"; }
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Focused example: embedded programmable device — the three software views
|
|
2
2
|
// (module / runtime / deployment) on a minimal infusion pump.
|
|
3
|
-
// SoftwareElement buildsInto
|
|
3
|
+
// SoftwareElement buildsInto SoftwareDeploymentUnit deploysTo ProcessingNode;
|
|
4
4
|
// SoftwareComponent hostedBy ProcessingNode with scheduling properties.
|
|
5
5
|
package memo_examples_embedded_infusion_pump {
|
|
6
6
|
private import ScalarValues::*;
|
|
@@ -13,16 +13,18 @@ package memo_examples_embedded_infusion_pump {
|
|
|
13
13
|
private import memo_architecture_realization_deployment::*;
|
|
14
14
|
private import memo_architecture_realization_physical::*;
|
|
15
15
|
|
|
16
|
+
private import memo_core_common::*;
|
|
17
|
+
private import memo_core_common::MemoIdentity;
|
|
16
18
|
// Module view (IEC 62304).
|
|
17
19
|
part swInfusionControl : SoftwareModule {
|
|
18
20
|
attribute :>> moduleKind = ModuleKind::'item';
|
|
19
|
-
|
|
21
|
+
@MemoIdentity { :>> providedId = "EIP-SW-001"; } attribute :>> name = "InfusionControlItem";
|
|
20
22
|
attribute :>> iec62304Role = "software item, class C";
|
|
21
23
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
22
24
|
}
|
|
23
25
|
part swMotorDriver : SoftwareModule {
|
|
24
26
|
attribute :>> moduleKind = ModuleKind::unit;
|
|
25
|
-
|
|
27
|
+
@MemoIdentity { :>> providedId = "EIP-SW-002"; } attribute :>> name = "MotorDriverUnit";
|
|
26
28
|
attribute :>> implementationLanguage = "C";
|
|
27
29
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
28
30
|
}
|
|
@@ -31,7 +33,7 @@ package memo_examples_embedded_infusion_pump {
|
|
|
31
33
|
// Runtime view.
|
|
32
34
|
part rtControlLoop : SoftwareComponent {
|
|
33
35
|
attribute :>> runtimeKind = RuntimeKind::task;
|
|
34
|
-
|
|
36
|
+
@MemoIdentity { :>> providedId = "EIP-RT-001"; } attribute :>> name = "ControlLoopTask";
|
|
35
37
|
attribute :>> periodMs = 10.0;
|
|
36
38
|
attribute :>> deadlineMs = 10.0;
|
|
37
39
|
attribute :>> wcetMs = 2.5;
|
|
@@ -43,26 +45,26 @@ package memo_examples_embedded_infusion_pump {
|
|
|
43
45
|
#refinement dependency rtControlLoop to swInfusionControl;
|
|
44
46
|
|
|
45
47
|
// Deployment view.
|
|
46
|
-
part duControlImage :
|
|
47
|
-
|
|
48
|
+
part duControlImage : SoftwareDeploymentUnit {
|
|
49
|
+
@MemoIdentity { :>> providedId = "EIP-DU-001"; } attribute :>> name = "ControlFirmwareImage";
|
|
48
50
|
attribute :>> unitKind = "signed firmware image";
|
|
49
51
|
attribute :>> version = "3.1.0";
|
|
50
52
|
attribute :>> integrityProtection = "signature verified by boot loader";
|
|
51
53
|
}
|
|
52
54
|
part mcuSafety : ProcessingNode {
|
|
53
|
-
|
|
55
|
+
@MemoIdentity { :>> providedId = "EIP-HW-001"; } attribute :>> name = "SafetyMCU";
|
|
54
56
|
attribute :>> nodeKind = ProcessingNodeKind::microcontroller;
|
|
55
57
|
attribute :>> realTimeCapable = true;
|
|
56
58
|
attribute :>> supportsContainerization = false;
|
|
57
59
|
}
|
|
58
60
|
part rteBareMetal : RuntimeEnvironment {
|
|
59
|
-
|
|
61
|
+
@MemoIdentity { :>> providedId = "EIP-RTE-001"; } attribute :>> name = "StaticRTOS";
|
|
60
62
|
attribute :>> osOrRtos = "static-priority RTOS, no dynamic allocation";
|
|
61
63
|
}
|
|
62
64
|
allocation swInfusionControlBuild : BuildsInto allocate swInfusionControl to duControlImage;
|
|
63
65
|
allocation duControlImageDeployment : DeploysTo allocate duControlImage to mcuSafety {
|
|
64
66
|
attribute :>> deploymentKind = DeploymentKind::embedded;
|
|
65
67
|
}
|
|
66
|
-
|
|
68
|
+
allocation : HostedBy allocate rtControlLoop to mcuSafety;
|
|
67
69
|
connection : ProvidesEnvironment connect node ::> mcuSafety to environment ::> rteBareMetal;
|
|
68
70
|
}
|
|
@@ -14,8 +14,10 @@ package memo_examples_embedded_infusion_pump_project {
|
|
|
14
14
|
private import memo_examples_embedded_infusion_pump_viewpoints_unassigned::*;
|
|
15
15
|
private import memo_examples_embedded_infusion_pump_viewpoints_unassigned_views_embedded_infusion_pump_overview::*;
|
|
16
16
|
|
|
17
|
+
private import memo_core_common::*;
|
|
18
|
+
private import memo_core_common::MemoIdentity;
|
|
17
19
|
part projectBinding : ProjectMethodBinding {
|
|
18
|
-
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-INFUSION-PUMP-001"; }
|
|
19
21
|
attribute :>> name = "EmbeddedInfusionPumpProjectMethodBinding";
|
|
20
22
|
attribute :>> projectName = "Embedded Infusion Pump";
|
|
21
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
@@ -2,5 +2,5 @@ package memo_examples_embedded_infusion_pump_viewpoints_unassigned_views_embedde
|
|
|
2
2
|
private import memo_examples_embedded_infusion_pump::*;
|
|
3
3
|
private import memo_viewpoints_definitions::*;
|
|
4
4
|
private import memo_core_enumerations::*;
|
|
5
|
-
view embeddedInfusionPumpOverview : MemoDiagramView { expose memo_examples_embedded_infusion_pump::*; attribute depth = 2; attribute :>>
|
|
5
|
+
view embeddedInfusionPumpOverview : MemoDiagramView { expose memo_examples_embedded_infusion_pump::*; attribute depth = 2; attribute :>> viewKind = DiagramViewKind::general; attribute :>> diagramType = "bdd"; }
|
|
6
6
|
}
|
package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml
CHANGED
|
@@ -14,34 +14,36 @@ package memo_examples_functional_logical_physical {
|
|
|
14
14
|
private import memo_architecture_implementation_software_structure::*;
|
|
15
15
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
16
16
|
|
|
17
|
+
private import memo_core_common::*;
|
|
18
|
+
private import memo_core_common::MemoIdentity;
|
|
17
19
|
// Operational world: what the clinician does.
|
|
18
|
-
action actOcclusionResponse :
|
|
19
|
-
|
|
20
|
+
action actOcclusionResponse : OperativeAction {
|
|
21
|
+
@MemoIdentity { :>> providedId = "FLP-ACT-001"; } attribute :>> name = "RespondToLineOcclusion";
|
|
20
22
|
attribute :>> criticality = CriticalityKind::high;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
// Functional: technology-independent responsibility.
|
|
24
26
|
action fnLimitLinePressure : SystemFunction {
|
|
25
|
-
|
|
27
|
+
@MemoIdentity { :>> providedId = "FLP-FN-001"; } attribute :>> name = "LimitLinePressure";
|
|
26
28
|
attribute :>> criticality = CriticalityKind::high;
|
|
27
29
|
}
|
|
28
|
-
|
|
30
|
+
dependency from fnLimitLinePressure to actOcclusionResponse;
|
|
29
31
|
|
|
30
32
|
// Logical: solution structure, still technology-independent.
|
|
31
33
|
part lcPressureProtection : LogicalComponent {
|
|
32
|
-
|
|
34
|
+
@MemoIdentity { :>> providedId = "FLP-LC-001"; } attribute :>> name = "PressureProtectionElement";
|
|
33
35
|
attribute :>> controlledVariable = "line pressure";
|
|
34
36
|
}
|
|
35
37
|
allocate fnLimitLinePressure to lcPressureProtection;
|
|
36
38
|
// Implementation: the SAME logical element is realized by software
|
|
37
39
|
// (pressure-limit supervision) AND mechanics (mechanical relief valve).
|
|
38
40
|
part swPressureSupervisor : SoftwareModule {
|
|
39
|
-
|
|
41
|
+
@MemoIdentity { :>> providedId = "FLP-SW-001"; } attribute :>> name = "PressureSupervisor";
|
|
40
42
|
attribute :>> responsibility = "Pause pumping when measured pressure exceeds threshold.";
|
|
41
43
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
42
44
|
}
|
|
43
45
|
part mechReliefValve : MechanicalPart {
|
|
44
|
-
|
|
46
|
+
@MemoIdentity { :>> providedId = "FLP-HW-001"; } attribute :>> name = "MechanicalReliefValve";
|
|
45
47
|
attribute :>> mechanicalFunction = "vents line pressure above mechanical set point, independent of software";
|
|
46
48
|
attribute :>> patientContact = false;
|
|
47
49
|
}
|
|
@@ -14,8 +14,10 @@ package memo_examples_functional_logical_physical_project {
|
|
|
14
14
|
private import memo_examples_functional_logical_physical_viewpoints_unassigned::*;
|
|
15
15
|
private import memo_examples_functional_logical_physical_viewpoints_unassigned_views_functional_logical_physical_overview::*;
|
|
16
16
|
|
|
17
|
+
private import memo_core_common::*;
|
|
18
|
+
private import memo_core_common::MemoIdentity;
|
|
17
19
|
part projectBinding : ProjectMethodBinding {
|
|
18
|
-
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-LOGICAL-PHYSICAL-001"; }
|
|
19
21
|
attribute :>> name = "FunctionalLogicalPhysicalProjectMethodBinding";
|
|
20
22
|
attribute :>> projectName = "Functional Logical Physical";
|
|
21
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
@@ -2,5 +2,5 @@ package memo_examples_functional_logical_physical_viewpoints_unassigned_views_fu
|
|
|
2
2
|
private import memo_examples_functional_logical_physical::*;
|
|
3
3
|
private import memo_viewpoints_definitions::*;
|
|
4
4
|
private import memo_core_enumerations::*;
|
|
5
|
-
view functionalLogicalPhysicalOverview : MemoDiagramView { expose memo_examples_functional_logical_physical::*; attribute depth = 2; attribute :>>
|
|
5
|
+
view functionalLogicalPhysicalOverview : MemoDiagramView { expose memo_examples_functional_logical_physical::*; attribute depth = 2; attribute :>> viewKind = DiagramViewKind::general; attribute :>> diagramType = "bdd"; }
|
|
6
6
|
}
|