@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
|
@@ -29,12 +29,13 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
29
29
|
private import memo_examples_gpca_pump_gpca_physical::*;
|
|
30
30
|
private import memo_examples_gpca_pump_gpca_risk::*;
|
|
31
31
|
|
|
32
|
+
private import memo_core_common::MemoIdentity;
|
|
32
33
|
// ── The controlled documents clause evidence lands in ────────────────
|
|
33
34
|
// TracesToDocument targets ControlledArtifact, so the DHF documents are
|
|
34
35
|
// modelled as the artifacts they are rather than as a second document type.
|
|
35
36
|
|
|
36
37
|
part docSrs : MarkdownDocumentSource {
|
|
37
|
-
|
|
38
|
+
@MemoIdentity { :>> providedId = "DOC-SRS"; }
|
|
38
39
|
attribute :>> name = "SoftwareRequirementsSpecification";
|
|
39
40
|
attribute :>> version = "1.0";
|
|
40
41
|
attribute :>> artifactKind = ArtifactKind::requirementSpecification;
|
|
@@ -46,7 +47,7 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
46
47
|
attribute :>> generated = true;
|
|
47
48
|
}
|
|
48
49
|
part docSad : MarkdownDocumentSource {
|
|
49
|
-
|
|
50
|
+
@MemoIdentity { :>> providedId = "DOC-SAD"; }
|
|
50
51
|
attribute :>> name = "SoftwareArchitectureDescription";
|
|
51
52
|
attribute :>> version = "1.0";
|
|
52
53
|
attribute :>> artifactKind = ArtifactKind::architectureDescription;
|
|
@@ -58,7 +59,7 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
58
59
|
attribute :>> generated = true;
|
|
59
60
|
}
|
|
60
61
|
part docHrs : MarkdownDocumentSource {
|
|
61
|
-
|
|
62
|
+
@MemoIdentity { :>> providedId = "DOC-HRS"; }
|
|
62
63
|
attribute :>> name = "HardwareRequirementsSpecification";
|
|
63
64
|
attribute :>> version = "1.0";
|
|
64
65
|
attribute :>> artifactKind = ArtifactKind::requirementSpecification;
|
|
@@ -70,7 +71,7 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
70
71
|
attribute :>> generated = true;
|
|
71
72
|
}
|
|
72
73
|
part docRmf : MarkdownDocumentSource {
|
|
73
|
-
|
|
74
|
+
@MemoIdentity { :>> providedId = "DOC-RMF"; }
|
|
74
75
|
attribute :>> name = "RiskManagementFile";
|
|
75
76
|
attribute :>> version = "1.0";
|
|
76
77
|
attribute :>> artifactKind = ArtifactKind::riskRecord;
|
|
@@ -84,78 +85,78 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
84
85
|
|
|
85
86
|
// ── IEC 62304 — software lifecycle ───────────────────────────────────
|
|
86
87
|
// §5.2.2 software requirements content: every software requirement.
|
|
87
|
-
connection : ConformsTo connect conformingElement ::> reqOcclusion to clause ::> iec62304Clause5_2_2;
|
|
88
|
-
connection : ConformsTo connect conformingElement ::> reqDoorOpen to clause ::> iec62304Clause5_2_2;
|
|
89
|
-
connection : ConformsTo connect conformingElement ::> reqMaxHourlyDose to clause ::> iec62304Clause5_2_2;
|
|
90
|
-
connection : ConformsTo connect conformingElement ::> reqEventLogging to clause ::> iec62304Clause5_2_2;
|
|
91
|
-
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304Clause5_2_2;
|
|
92
|
-
connection : ConformsTo connect conformingElement ::> reqStuckButton to clause ::> iec62304Clause5_2_2;
|
|
93
|
-
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304Clause5_2_2;
|
|
88
|
+
connection : ConformsTo connect conformingElement ::> reqOcclusion to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2;
|
|
89
|
+
connection : ConformsTo connect conformingElement ::> reqDoorOpen to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2;
|
|
90
|
+
connection : ConformsTo connect conformingElement ::> reqMaxHourlyDose to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2;
|
|
91
|
+
connection : ConformsTo connect conformingElement ::> reqEventLogging to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2;
|
|
92
|
+
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2;
|
|
93
|
+
connection : ConformsTo connect conformingElement ::> reqStuckButton to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2;
|
|
94
|
+
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2;
|
|
94
95
|
|
|
95
96
|
// §5.2.3 risk control measures carried into software requirements.
|
|
96
|
-
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304Clause5_2_3;
|
|
97
|
-
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304Clause5_2_3;
|
|
97
|
+
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_3;
|
|
98
|
+
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_3;
|
|
98
99
|
|
|
99
100
|
// §5.3 software architectural design: the software decomposition.
|
|
100
|
-
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware to clause ::> iec62304Clause5_3;
|
|
101
|
-
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.tlm to clause ::> iec62304Clause5_3;
|
|
102
|
-
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.infusionMgr to clause ::> iec62304Clause5_3;
|
|
103
|
-
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.systemMonitor to clause ::> iec62304Clause5_3;
|
|
104
|
-
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.config to clause ::> iec62304Clause5_3;
|
|
101
|
+
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware to clause ::> iec62304::iec62304Clause5::iec62304Clause5_3;
|
|
102
|
+
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.tlm to clause ::> iec62304::iec62304Clause5::iec62304Clause5_3;
|
|
103
|
+
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.infusionMgr to clause ::> iec62304::iec62304Clause5::iec62304Clause5_3;
|
|
104
|
+
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.systemMonitor to clause ::> iec62304::iec62304Clause5::iec62304Clause5_3;
|
|
105
|
+
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware.config to clause ::> iec62304::iec62304Clause5::iec62304Clause5_3;
|
|
105
106
|
|
|
106
107
|
// ── IEC 60601-1 — basic safety and essential performance ─────────────
|
|
107
108
|
// §8 protection against electrical hazards.
|
|
108
|
-
connection : ConformsTo connect conformingElement ::> reqBatteryBackup to clause ::> iec60601_1Clause8;
|
|
109
|
-
connection : ConformsTo connect conformingElement ::> powerSupply to clause ::> iec60601_1Clause8;
|
|
110
|
-
connection : ConformsTo connect conformingElement ::> batteryPack to clause ::> iec60601_1Clause8;
|
|
109
|
+
connection : ConformsTo connect conformingElement ::> reqBatteryBackup to clause ::> iec60601_1::iec60601_1Clause8;
|
|
110
|
+
connection : ConformsTo connect conformingElement ::> powerSupply to clause ::> iec60601_1::iec60601_1Clause8;
|
|
111
|
+
connection : ConformsTo connect conformingElement ::> batteryPack to clause ::> iec60601_1::iec60601_1Clause8;
|
|
111
112
|
|
|
112
113
|
// §9 protection against mechanical hazards.
|
|
113
|
-
connection : ConformsTo connect conformingElement ::> reqFreeFlowPrevention to clause ::> iec60601_1Clause9;
|
|
114
|
-
connection : ConformsTo connect conformingElement ::> antiFreeFlowValve to clause ::> iec60601_1Clause9;
|
|
115
|
-
connection : ConformsTo connect conformingElement ::> enclosure to clause ::> iec60601_1Clause9;
|
|
114
|
+
connection : ConformsTo connect conformingElement ::> reqFreeFlowPrevention to clause ::> iec60601_1::iec60601_1Clause9;
|
|
115
|
+
connection : ConformsTo connect conformingElement ::> antiFreeFlowValve to clause ::> iec60601_1::iec60601_1Clause9;
|
|
116
|
+
connection : ConformsTo connect conformingElement ::> enclosure to clause ::> iec60601_1::iec60601_1Clause9;
|
|
116
117
|
|
|
117
118
|
// §14 programmable electrical medical systems.
|
|
118
|
-
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware to clause ::> iec60601_1Clause14;
|
|
119
|
+
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware to clause ::> iec60601_1::iec60601_1Clause14;
|
|
119
120
|
|
|
120
121
|
// ── IEC 60601-1-2 — electromagnetic compatibility ────────────────────
|
|
121
|
-
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2Clause7;
|
|
122
|
-
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2Clause8;
|
|
123
|
-
connection : ConformsTo connect conformingElement ::> reqPost to clause ::> iec60601_1_2Clause8;
|
|
122
|
+
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2::iec60601_1_2Clause7;
|
|
123
|
+
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2::iec60601_1_2Clause8;
|
|
124
|
+
connection : ConformsTo connect conformingElement ::> reqPost to clause ::> iec60601_1_2::iec60601_1_2Clause8;
|
|
124
125
|
|
|
125
126
|
// ── ISO 14971 — risk management ──────────────────────────────────────
|
|
126
127
|
// §7 risk control: the risk control measures themselves.
|
|
127
|
-
connection : ConformsTo connect conformingElement ::> lockoutControl to clause ::> iso14971Clause7;
|
|
128
|
-
connection : ConformsTo connect conformingElement ::> occlusionAlarmControl to clause ::> iso14971Clause7;
|
|
129
|
-
connection : ConformsTo connect conformingElement ::> airDetectionControl to clause ::> iso14971Clause7;
|
|
130
|
-
connection : ConformsTo connect conformingElement ::> freeFlowValveControl to clause ::> iso14971Clause7;
|
|
131
|
-
connection : ConformsTo connect conformingElement ::> doorInterlockControl to clause ::> iso14971Clause7;
|
|
132
|
-
connection : ConformsTo connect conformingElement ::> watchdogControl to clause ::> iso14971Clause7;
|
|
133
|
-
connection : ConformsTo connect conformingElement ::> flowCrossCheckControl to clause ::> iso14971Clause7;
|
|
128
|
+
connection : ConformsTo connect conformingElement ::> lockoutControl to clause ::> iso14971::iso14971Clause7;
|
|
129
|
+
connection : ConformsTo connect conformingElement ::> occlusionAlarmControl to clause ::> iso14971::iso14971Clause7;
|
|
130
|
+
connection : ConformsTo connect conformingElement ::> airDetectionControl to clause ::> iso14971::iso14971Clause7;
|
|
131
|
+
connection : ConformsTo connect conformingElement ::> freeFlowValveControl to clause ::> iso14971::iso14971Clause7;
|
|
132
|
+
connection : ConformsTo connect conformingElement ::> doorInterlockControl to clause ::> iso14971::iso14971Clause7;
|
|
133
|
+
connection : ConformsTo connect conformingElement ::> watchdogControl to clause ::> iso14971::iso14971Clause7;
|
|
134
|
+
connection : ConformsTo connect conformingElement ::> flowCrossCheckControl to clause ::> iso14971::iso14971Clause7;
|
|
134
135
|
|
|
135
136
|
// ── Where the evidence for each claim is written down ────────────────
|
|
136
137
|
// The section reference rides on the link, not on a duplicate section type.
|
|
137
|
-
connection : TracesToDocument connect tracedElement ::> iec62304Clause5_2_2 to artifact ::> docSrs {
|
|
138
|
+
connection : TracesToDocument connect tracedElement ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_2 to artifact ::> docSrs {
|
|
138
139
|
attribute :>> sectionReference = "3";
|
|
139
140
|
}
|
|
140
|
-
connection : TracesToDocument connect tracedElement ::> iec62304Clause5_2_3 to artifact ::> docSrs {
|
|
141
|
+
connection : TracesToDocument connect tracedElement ::> iec62304::iec62304Clause5::iec62304Clause5_2::iec62304Clause5_2_3 to artifact ::> docSrs {
|
|
141
142
|
attribute :>> sectionReference = "3.2";
|
|
142
143
|
}
|
|
143
|
-
connection : TracesToDocument connect tracedElement ::> iec62304Clause5_3 to artifact ::> docSad {
|
|
144
|
+
connection : TracesToDocument connect tracedElement ::> iec62304::iec62304Clause5::iec62304Clause5_3 to artifact ::> docSad {
|
|
144
145
|
attribute :>> sectionReference = "4";
|
|
145
146
|
}
|
|
146
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1Clause8 to artifact ::> docHrs {
|
|
147
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1::iec60601_1Clause8 to artifact ::> docHrs {
|
|
147
148
|
attribute :>> sectionReference = "4";
|
|
148
149
|
}
|
|
149
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1Clause9 to artifact ::> docHrs {
|
|
150
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1::iec60601_1Clause9 to artifact ::> docHrs {
|
|
150
151
|
attribute :>> sectionReference = "6";
|
|
151
152
|
}
|
|
152
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1Clause14 to artifact ::> docSad {
|
|
153
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1::iec60601_1Clause14 to artifact ::> docSad {
|
|
153
154
|
attribute :>> sectionReference = "6.2";
|
|
154
155
|
}
|
|
155
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1_2Clause7 to artifact ::> docHrs {
|
|
156
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1_2::iec60601_1_2Clause7 to artifact ::> docHrs {
|
|
156
157
|
attribute :>> sectionReference = "5";
|
|
157
158
|
}
|
|
158
|
-
connection : TracesToDocument connect tracedElement ::> iso14971Clause7 to artifact ::> docRmf {
|
|
159
|
+
connection : TracesToDocument connect tracedElement ::> iso14971::iso14971Clause7 to artifact ::> docRmf {
|
|
159
160
|
attribute :>> sectionReference = "5";
|
|
160
161
|
}
|
|
161
162
|
}
|
|
@@ -9,13 +9,14 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
9
9
|
private import memo_architecture_operational_use_cases::*;
|
|
10
10
|
private import memo_core_common::*;
|
|
11
11
|
|
|
12
|
+
private import memo_core_common::MemoIdentity;
|
|
12
13
|
// The device's top-level goal is its IntendedUse (gpcaIntendedUse in
|
|
13
14
|
// gpca_context) — a MemoMission. The former separate gpcaMission was
|
|
14
15
|
// retired: "mission" duplicated the regulated intended-use statement.
|
|
15
16
|
|
|
16
17
|
// ── Functional chains ───────────────────────────────────────
|
|
17
18
|
part fcPatientBolus : FunctionalFlow {
|
|
18
|
-
|
|
19
|
+
@MemoIdentity { :>> providedId = "FC-001"; }
|
|
19
20
|
attribute :>> name = "PatientBolusChain";
|
|
20
21
|
attribute :>> flowCategory = FunctionalFlowKind::nominal;
|
|
21
22
|
attribute :>> endToEndLatencyBudgetMs = "100";
|
|
@@ -29,23 +30,23 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
29
30
|
perform fcsBolusLog;
|
|
30
31
|
}
|
|
31
32
|
action fcsBolusSense : FunctionalFlowStep {
|
|
32
|
-
|
|
33
|
+
@MemoIdentity { :>> providedId = "FCS-001"; } attribute :>> name = "SenseBolusRequest";
|
|
33
34
|
ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddBolusRequest;
|
|
34
35
|
}
|
|
35
36
|
action fcsBolusValidate : FunctionalFlowStep {
|
|
36
|
-
|
|
37
|
+
@MemoIdentity { :>> providedId = "FCS-002"; } attribute :>> name = "CheckLockoutAndMaxDose";
|
|
37
38
|
ref :>> function = fnEnforceLimits; ref :>> exchangedItem = ddPrescription;
|
|
38
39
|
}
|
|
39
40
|
action fcsBolusCommand : FunctionalFlowStep {
|
|
40
|
-
|
|
41
|
+
@MemoIdentity { :>> providedId = "FCS-003"; } attribute :>> name = "CommandBolusFlow";
|
|
41
42
|
ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdFlowCommand;
|
|
42
43
|
}
|
|
43
44
|
action fcsBolusActuate : FunctionalFlowStep {
|
|
44
|
-
|
|
45
|
+
@MemoIdentity { :>> providedId = "FCS-004"; } attribute :>> name = "ActuatePumpMotor";
|
|
45
46
|
ref :>> function = fnCommandPump; ref :>> exchangedItem = cdFlowCommand;
|
|
46
47
|
}
|
|
47
48
|
action fcsBolusLog : FunctionalFlowStep {
|
|
48
|
-
|
|
49
|
+
@MemoIdentity { :>> providedId = "FCS-005"; } attribute :>> name = "LogBolusOutcome";
|
|
49
50
|
ref :>> function = fnLogEvents; ref :>> exchangedItem = ddEventRecord;
|
|
50
51
|
}
|
|
51
52
|
first fcsBolusSense then fcsBolusValidate;
|
|
@@ -54,7 +55,7 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
54
55
|
first fcsBolusActuate then fcsBolusLog;
|
|
55
56
|
|
|
56
57
|
part fcAlarmStop : FunctionalFlow {
|
|
57
|
-
|
|
58
|
+
@MemoIdentity { :>> providedId = "FC-002"; }
|
|
58
59
|
attribute :>> name = "AlarmDetectionToSafeStateChain";
|
|
59
60
|
attribute :>> flowCategory = FunctionalFlowKind::alarm;
|
|
60
61
|
attribute :>> endToEndLatencyBudgetMs = "20";
|
|
@@ -67,19 +68,19 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
67
68
|
perform fcsAlarmAnnunciate;
|
|
68
69
|
}
|
|
69
70
|
action fcsAlarmSense : FunctionalFlowStep {
|
|
70
|
-
|
|
71
|
+
@MemoIdentity { :>> providedId = "FCS-006"; } attribute :>> name = "SenseAlarmCondition";
|
|
71
72
|
ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddSensorVector;
|
|
72
73
|
}
|
|
73
74
|
action fcsAlarmEvaluate : FunctionalFlowStep {
|
|
74
|
-
|
|
75
|
+
@MemoIdentity { :>> providedId = "FCS-007"; } attribute :>> name = "EvaluateAlarmCondition";
|
|
75
76
|
ref :>> function = fnMonitorAlarm; ref :>> exchangedItem = ddSensorVector;
|
|
76
77
|
}
|
|
77
78
|
action fcsAlarmStopInfusion : FunctionalFlowStep {
|
|
78
|
-
|
|
79
|
+
@MemoIdentity { :>> providedId = "FCS-008"; } attribute :>> name = "LimitFlowToKvoSameStep";
|
|
79
80
|
ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdAlarmSignal;
|
|
80
81
|
}
|
|
81
82
|
action fcsAlarmAnnunciate : FunctionalFlowStep {
|
|
82
|
-
|
|
83
|
+
@MemoIdentity { :>> providedId = "FCS-009"; } attribute :>> name = "AnnunciateAudibleVisual";
|
|
83
84
|
ref :>> function = fnAnnunciate; ref :>> exchangedItem = cdAlarmSignal;
|
|
84
85
|
}
|
|
85
86
|
first fcsAlarmSense then fcsAlarmEvaluate;
|
|
@@ -87,7 +88,7 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
87
88
|
first fcsAlarmStopInfusion then fcsAlarmAnnunciate;
|
|
88
89
|
|
|
89
90
|
part fcStartup : FunctionalFlow {
|
|
90
|
-
|
|
91
|
+
@MemoIdentity { :>> providedId = "FC-003"; }
|
|
91
92
|
attribute :>> name = "PowerOnSelfTestChain";
|
|
92
93
|
attribute :>> flowCategory = FunctionalFlowKind::startup;
|
|
93
94
|
attribute :>> endToEndLatencyBudgetMs = "5000";
|
|
@@ -100,14 +101,14 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
100
101
|
|
|
101
102
|
// ── System scenarios ────────────────────────────────────────
|
|
102
103
|
action ssBolusDuringBasal : OperativeScenario {
|
|
103
|
-
|
|
104
|
+
@MemoIdentity { :>> providedId = "SS-001"; }
|
|
104
105
|
attribute :>> name = "PatientBolusDuringBasal";
|
|
105
106
|
attribute :>> preCondition = "BASAL mode active; no REQ 25 ignore condition holds";
|
|
106
107
|
attribute :>> postCondition = "PATIENT_BOLUS mode entered, bolus delivered, return to BASAL";
|
|
107
108
|
}
|
|
108
109
|
action ssAlarmPause : OperativeScenario {
|
|
109
110
|
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
110
|
-
|
|
111
|
+
@MemoIdentity { :>> providedId = "SS-002"; }
|
|
111
112
|
attribute :>> name = "InhibitingNotificationPausesInfusion";
|
|
112
113
|
attribute :>> preCondition = "any ACTIVE therapy mode; infusion-inhibiting notification detected (REQ 59)";
|
|
113
114
|
attribute :>> postCondition = "PAUSED mode entered in same execution step at FlowRate_kvo_hd keep-vein-open flow; notification annunciated per REQ 59";
|
|
@@ -40,12 +40,12 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
40
40
|
private import memo_viewpoints_definitions::*;
|
|
41
41
|
|
|
42
42
|
// ── System context interactions (context view) ──────────────
|
|
43
|
-
connection
|
|
44
|
-
connection
|
|
45
|
-
connection
|
|
46
|
-
connection
|
|
47
|
-
connection
|
|
48
|
-
connection
|
|
43
|
+
connection connect actorPatient to entityGpcaPump;
|
|
44
|
+
connection connect actorNurse to entityGpcaPump;
|
|
45
|
+
connection connect actorPrescriber to entityGpcaPump;
|
|
46
|
+
connection connect actorPharmacist to entityGpcaPump;
|
|
47
|
+
connection connect actorTechnician to entityGpcaPump;
|
|
48
|
+
connection connect actorPharmacist to entityPharmacy;
|
|
49
49
|
|
|
50
50
|
// ── Fig 2.1 context flows (CriSys §2.1) ─────────────────────
|
|
51
51
|
// Data flows
|
|
@@ -343,7 +343,7 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
343
343
|
allocate fnSelfTest to gpcaDevice.gpcaSoftware.systemMonitor;
|
|
344
344
|
// ── Deployment, hosting, and interface realization ──────────
|
|
345
345
|
allocation gpcaSoftwareDeployment : DeploysTo allocate gpcaDevice.gpcaSoftware to controllerBoard;
|
|
346
|
-
|
|
346
|
+
allocation : HostedBy allocate mainController to controllerBoard;
|
|
347
347
|
#refinement dependency sensorInputInterface to hwSoftwareBus;
|
|
348
348
|
#refinement dependency actuatorCommandInterface to pumpMotorDrive;
|
|
349
349
|
connection : BindsToInterface connect portElement ::> portPatientPendant to boundInterface ::> bolusButtonLine;
|
|
@@ -531,7 +531,9 @@ package memo_examples_gpca_pump_gpca_trace {
|
|
|
531
531
|
connection : TracesRisk connect sourceRiskElement ::> ueAlarmDisregard to targetRiskElement ::> seqOcclusion;
|
|
532
532
|
|
|
533
533
|
// ── FMEA and fault tree integration ─────────────────────────
|
|
534
|
-
|
|
534
|
+
// Was `AnalyzedBy`: a zero-attribute edge from an element to the
|
|
535
|
+
// artifact analysing it, which is what a bare dependency states.
|
|
536
|
+
dependency from pumpMotorAssembly to fmeaDelivery;
|
|
535
537
|
connection : HasFailureMode connect element ::> pumpMotorAssembly to failureMode ::> fmMotorRunaway;
|
|
536
538
|
connection : HasFailureMode connect element ::> airInLineSensor to failureMode ::> fmAirSensorSilent;
|
|
537
539
|
connection : HasFailureMode connect element ::> occlusionSensor to failureMode ::> fmOcclusionDrift;
|