@memoarchitect/ontology 0.7.0 → 0.8.22
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/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- 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 +9 -0
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +9 -5
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +82 -58
- 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 +15 -2
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -331
- 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 +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +3 -2
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- 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/model/catalog/reusable_instrument.sysml +7 -5
- package/examples/ros-mobile-robot/README.md +40 -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 +13 -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 +11 -5
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -60
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -15
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +42 -66
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +56 -66
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +26 -55
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +3 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +0 -18
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +51 -82
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +21 -31
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -8
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -21
- 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 +1 -1
- 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 +49 -21
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +91 -34
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +37 -10
- package/src/architecture/implementation/ui/memo_ui.sysml +78 -38
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +63 -11
- package/src/architecture/logical/structure/memo_logical_structure.sysml +21 -20
- package/src/architecture/operational/activities/memo_activities.sysml +10 -3
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +29 -10
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- 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 +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- 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 +78 -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 +121 -16
- 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/rules/ontology/ontology_invariants.sysml +213 -1
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +3 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +1 -1
- package/src/viewpoints/context/context_viewpoint.sysml +1 -1
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -1
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +1 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +1 -1
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +1 -1
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +1 -1
- package/src/viewpoints/operational/operational_viewpoint.sysml +1 -1
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +1 -1
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +1 -1
- package/src/viewpoints/verification/verification_viewpoint.sysml +1 -1
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +1 -1
- 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
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// Clause-level conformance for the GPCA pump example.
|
|
2
|
+
//
|
|
3
|
+
// The standards library (src/artifacts/standards/) is MEMO content: it says
|
|
4
|
+
// which clauses exist. This file is PROJECT content: it says which of this
|
|
5
|
+
// project's elements claim them, and where the evidence is written down. That
|
|
6
|
+
// division is the two-mechanism rule in memo_artifacts_standards_traceability
|
|
7
|
+
// — @StandardReference is library provenance, ConformsTo is project
|
|
8
|
+
// traceability — and it is why the clause instances carry no project data and
|
|
9
|
+
// this file declares no clauses.
|
|
10
|
+
//
|
|
11
|
+
// It exists so the DHF standards-traceability, SAD conformance and HRS clause
|
|
12
|
+
// tables render real rows. A `select: relationships` query over ConformsTo is
|
|
13
|
+
// only as good as the edges a project authors, and an example with none cannot
|
|
14
|
+
// tell a working matrix apart from a broken one.
|
|
15
|
+
package memo_examples_gpca_pump_gpca_standards {
|
|
16
|
+
private import ScalarValues::*;
|
|
17
|
+
|
|
18
|
+
private import memo_core_common::*;
|
|
19
|
+
private import memo_core_enumerations::*;
|
|
20
|
+
private import memo_core_relationships::*;
|
|
21
|
+
private import memo_artifacts_core::*;
|
|
22
|
+
private import memo_artifacts_standards_traceability::*;
|
|
23
|
+
private import memo_artifacts_standards_iec_62304::*;
|
|
24
|
+
private import memo_artifacts_standards_iec_60601_1::*;
|
|
25
|
+
private import memo_artifacts_standards_iec_60601_1_2::*;
|
|
26
|
+
private import memo_artifacts_standards_iso_14971::*;
|
|
27
|
+
private import memo_examples_gpca_pump_gpca_requirements::*;
|
|
28
|
+
private import memo_examples_gpca_pump_gpca_architecture::*;
|
|
29
|
+
private import memo_examples_gpca_pump_gpca_physical::*;
|
|
30
|
+
private import memo_examples_gpca_pump_gpca_risk::*;
|
|
31
|
+
|
|
32
|
+
// ── The controlled documents clause evidence lands in ────────────────
|
|
33
|
+
// TracesToDocument targets ControlledArtifact, so the DHF documents are
|
|
34
|
+
// modelled as the artifacts they are rather than as a second document type.
|
|
35
|
+
|
|
36
|
+
part docSrs : MarkdownDocumentSource {
|
|
37
|
+
attribute :>> id = "DOC-SRS";
|
|
38
|
+
attribute :>> name = "SoftwareRequirementsSpecification";
|
|
39
|
+
attribute :>> version = "1.0";
|
|
40
|
+
attribute :>> artifactKind = ArtifactKind::requirementSpecification;
|
|
41
|
+
attribute :>> owner = "Software Lead";
|
|
42
|
+
attribute :>> approvalStatus = "approved";
|
|
43
|
+
attribute :>> uri = "dhf/documents/srs.md";
|
|
44
|
+
attribute :>> mediaType = "text/markdown";
|
|
45
|
+
attribute :>> contentHash = "";
|
|
46
|
+
attribute :>> generated = true;
|
|
47
|
+
}
|
|
48
|
+
part docSad : MarkdownDocumentSource {
|
|
49
|
+
attribute :>> id = "DOC-SAD";
|
|
50
|
+
attribute :>> name = "SoftwareArchitectureDescription";
|
|
51
|
+
attribute :>> version = "1.0";
|
|
52
|
+
attribute :>> artifactKind = ArtifactKind::architectureDescription;
|
|
53
|
+
attribute :>> owner = "Systems Architect";
|
|
54
|
+
attribute :>> approvalStatus = "approved";
|
|
55
|
+
attribute :>> uri = "dhf/documents/sad.md";
|
|
56
|
+
attribute :>> mediaType = "text/markdown";
|
|
57
|
+
attribute :>> contentHash = "";
|
|
58
|
+
attribute :>> generated = true;
|
|
59
|
+
}
|
|
60
|
+
part docHrs : MarkdownDocumentSource {
|
|
61
|
+
attribute :>> id = "DOC-HRS";
|
|
62
|
+
attribute :>> name = "HardwareRequirementsSpecification";
|
|
63
|
+
attribute :>> version = "1.0";
|
|
64
|
+
attribute :>> artifactKind = ArtifactKind::requirementSpecification;
|
|
65
|
+
attribute :>> owner = "Hardware Lead";
|
|
66
|
+
attribute :>> approvalStatus = "approved";
|
|
67
|
+
attribute :>> uri = "dhf/documents/hrs.md";
|
|
68
|
+
attribute :>> mediaType = "text/markdown";
|
|
69
|
+
attribute :>> contentHash = "";
|
|
70
|
+
attribute :>> generated = true;
|
|
71
|
+
}
|
|
72
|
+
part docRmf : MarkdownDocumentSource {
|
|
73
|
+
attribute :>> id = "DOC-RMF";
|
|
74
|
+
attribute :>> name = "RiskManagementFile";
|
|
75
|
+
attribute :>> version = "1.0";
|
|
76
|
+
attribute :>> artifactKind = ArtifactKind::riskRecord;
|
|
77
|
+
attribute :>> owner = "Risk Manager";
|
|
78
|
+
attribute :>> approvalStatus = "approved";
|
|
79
|
+
attribute :>> uri = "dhf/documents/rmf.md";
|
|
80
|
+
attribute :>> mediaType = "text/markdown";
|
|
81
|
+
attribute :>> contentHash = "";
|
|
82
|
+
attribute :>> generated = true;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ── IEC 62304 — software lifecycle ───────────────────────────────────
|
|
86
|
+
// §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;
|
|
94
|
+
|
|
95
|
+
// §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;
|
|
98
|
+
|
|
99
|
+
// §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;
|
|
105
|
+
|
|
106
|
+
// ── IEC 60601-1 — basic safety and essential performance ─────────────
|
|
107
|
+
// §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;
|
|
111
|
+
|
|
112
|
+
// §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;
|
|
116
|
+
|
|
117
|
+
// §14 programmable electrical medical systems.
|
|
118
|
+
connection : ConformsTo connect conformingElement ::> gpcaDevice.gpcaSoftware to clause ::> iec60601_1Clause14;
|
|
119
|
+
|
|
120
|
+
// ── 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;
|
|
124
|
+
|
|
125
|
+
// ── ISO 14971 — risk management ──────────────────────────────────────
|
|
126
|
+
// §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;
|
|
134
|
+
|
|
135
|
+
// ── Where the evidence for each claim is written down ────────────────
|
|
136
|
+
// 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
|
+
attribute :>> sectionReference = "3";
|
|
139
|
+
}
|
|
140
|
+
connection : TracesToDocument connect tracedElement ::> iec62304Clause5_2_3 to artifact ::> docSrs {
|
|
141
|
+
attribute :>> sectionReference = "3.2";
|
|
142
|
+
}
|
|
143
|
+
connection : TracesToDocument connect tracedElement ::> iec62304Clause5_3 to artifact ::> docSad {
|
|
144
|
+
attribute :>> sectionReference = "4";
|
|
145
|
+
}
|
|
146
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1Clause8 to artifact ::> docHrs {
|
|
147
|
+
attribute :>> sectionReference = "4";
|
|
148
|
+
}
|
|
149
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1Clause9 to artifact ::> docHrs {
|
|
150
|
+
attribute :>> sectionReference = "6";
|
|
151
|
+
}
|
|
152
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1Clause14 to artifact ::> docSad {
|
|
153
|
+
attribute :>> sectionReference = "6.2";
|
|
154
|
+
}
|
|
155
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1_2Clause7 to artifact ::> docHrs {
|
|
156
|
+
attribute :>> sectionReference = "5";
|
|
157
|
+
}
|
|
158
|
+
connection : TracesToDocument connect tracedElement ::> iso14971Clause7 to artifact ::> docRmf {
|
|
159
|
+
attribute :>> sectionReference = "5";
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -28,6 +28,11 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
28
28
|
attribute :>> safetyRelevant = true;
|
|
29
29
|
attribute :>> securityRelevant = false;
|
|
30
30
|
attribute :>> description = "Bolus button press through lockout/max-dose check to pump actuation and logging.";
|
|
31
|
+
perform fcsBolusSense;
|
|
32
|
+
perform fcsBolusValidate;
|
|
33
|
+
perform fcsBolusCommand;
|
|
34
|
+
perform fcsBolusActuate;
|
|
35
|
+
perform fcsBolusLog;
|
|
31
36
|
}
|
|
32
37
|
action fcsBolusSense : FunctionalFlowStep {
|
|
33
38
|
attribute :>> id = "FCS-001"; attribute :>> name = "SenseBolusRequest";
|
|
@@ -62,6 +67,10 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
62
67
|
attribute :>> safetyRelevant = true;
|
|
63
68
|
attribute :>> securityRelevant = false;
|
|
64
69
|
attribute :>> description = "Sensor condition through alarm evaluation to same-step transition to PAUSED (KVO flow, REQ 43) and annunciation.";
|
|
70
|
+
perform fcsAlarmSense;
|
|
71
|
+
perform fcsAlarmEvaluate;
|
|
72
|
+
perform fcsAlarmStopInfusion;
|
|
73
|
+
perform fcsAlarmAnnunciate;
|
|
65
74
|
}
|
|
66
75
|
action fcsAlarmSense : FunctionalFlowStep {
|
|
67
76
|
attribute :>> id = "FCS-006"; attribute :>> name = "SenseAlarmCondition";
|
|
@@ -91,20 +100,24 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
91
100
|
attribute :>> safetyRelevant = true;
|
|
92
101
|
attribute :>> securityRelevant = false;
|
|
93
102
|
attribute :>> description = "Power-on through CPU/memory/sensor self test to IDLE with status display; failed POST blocks therapy.";
|
|
103
|
+
perform fnSelfTest;
|
|
104
|
+
perform fnPresentStatus;
|
|
94
105
|
}
|
|
95
106
|
|
|
96
107
|
// ── System scenarios ────────────────────────────────────────
|
|
97
|
-
action ssBolusDuringBasal :
|
|
108
|
+
action ssBolusDuringBasal : MemoScenario {
|
|
98
109
|
attribute :>> id = "SS-001";
|
|
99
110
|
attribute :>> name = "PatientBolusDuringBasal";
|
|
111
|
+
attribute :>> scenarioKind = ScenarioKind::functional;
|
|
100
112
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
101
113
|
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
102
114
|
attribute :>> preCondition = "BASAL mode active; no REQ 25 ignore condition holds";
|
|
103
115
|
attribute :>> postCondition = "PATIENT_BOLUS mode entered, bolus delivered, return to BASAL";
|
|
104
116
|
}
|
|
105
|
-
action ssAlarmPause :
|
|
117
|
+
action ssAlarmPause : MemoScenario {
|
|
106
118
|
attribute :>> id = "SS-002";
|
|
107
119
|
attribute :>> name = "InhibitingNotificationPausesInfusion";
|
|
120
|
+
attribute :>> scenarioKind = ScenarioKind::functional;
|
|
108
121
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
109
122
|
attribute :>> variationPoint = "an infusion-inhibiting notification interrupts active therapy";
|
|
110
123
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|