@memoarchitect/ontology 0.8.24 → 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.
Files changed (182) hide show
  1. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
  2. package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
  3. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +9 -7
  4. package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
  5. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +8 -6
  6. package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
  7. package/examples/gpca-pump/memo.identity.yaml +2179 -0
  8. package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
  9. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
  10. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
  11. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
  12. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
  13. package/examples/gpca-pump/model/catalog/gpca_context.sysml +22 -20
  14. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -13
  15. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
  16. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
  17. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +121 -125
  18. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
  19. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
  20. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
  21. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
  22. package/examples/gpca-pump/model/catalog/gpca_system.sysml +15 -14
  23. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -8
  24. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
  25. package/examples/gpca-pump/model/catalog/project.sysml +3 -1
  26. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +6 -4
  27. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +5 -3
  28. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +5 -3
  29. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +5 -3
  30. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +5 -3
  31. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +5 -3
  32. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +5 -3
  33. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +5 -3
  34. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +5 -3
  35. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +5 -3
  36. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +5 -3
  37. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +5 -3
  38. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +5 -3
  39. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +5 -3
  40. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +5 -3
  41. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -3
  42. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +5 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -3
  44. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -3
  45. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +5 -3
  46. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +5 -3
  47. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +5 -3
  48. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +5 -3
  49. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +6 -4
  50. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -3
  51. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +5 -3
  52. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +9 -7
  53. package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
  54. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +6 -4
  55. package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
  56. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
  57. package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
  58. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
  59. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
  60. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
  61. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
  62. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
  63. package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
  64. package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
  65. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +17 -16
  66. package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
  67. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
  68. package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
  69. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +10 -8
  70. package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
  71. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +51 -51
  72. package/examples/surgical-robot/model/catalog/project.sysml +3 -1
  73. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
  74. package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
  75. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -8
  76. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -5
  77. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +3 -1
  78. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +2 -1
  79. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +3 -1
  80. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +8 -6
  81. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +3 -1
  82. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +2 -1
  83. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +3 -1
  84. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +11 -7
  85. package/examples/temperature-alarm/memo.identity.yaml +64 -0
  86. package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
  87. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +27 -22
  88. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
  89. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
  90. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
  91. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
  92. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
  93. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
  94. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
  95. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
  96. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
  97. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
  98. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
  99. package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
  100. package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
  101. package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
  102. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +5 -3
  103. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +5 -3
  104. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +5 -3
  105. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +3 -1
  106. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +3 -1
  107. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +3 -1
  108. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
  109. package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
  110. package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
  111. package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
  112. package/extensions/container/src/methodology/container_methodology.sysml +3 -1
  113. package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
  114. package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
  115. package/extensions/template/src/extension.sysml +3 -1
  116. package/package.json +2 -2
  117. package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
  118. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
  119. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
  120. package/src/architecture/implementation/ui/memo_ui.sysml +0 -23
  121. package/src/architecture/logical/interfaces/memo_interfaces.sysml +3 -1
  122. package/src/architecture/operational/context/use_context/memo_use_context.sysml +3 -11
  123. package/src/architecture/operational/scenarios/memo_scenarios.sysml +0 -10
  124. package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -11
  125. package/src/architecture/operational/workflows/memo_workflows.sysml +0 -20
  126. package/src/architecture/realization/deployment/memo_deployment.sysml +16 -9
  127. package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
  128. package/src/artifacts/standards/cfr_21_820.sysml +80 -89
  129. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
  130. package/src/artifacts/standards/iec_60601_1.sysml +108 -121
  131. package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
  132. package/src/artifacts/standards/iec_60812.sysml +21 -22
  133. package/src/artifacts/standards/iec_62304.sysml +150 -169
  134. package/src/artifacts/standards/iec_62366_1.sysml +80 -89
  135. package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
  136. package/src/artifacts/standards/iso_13485.sysml +80 -89
  137. package/src/artifacts/standards/iso_14971.sysml +66 -73
  138. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
  139. package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
  140. package/src/core/common/memo_common.sysml +50 -50
  141. package/src/core/enumerations/memo_enumerations.sysml +1 -1
  142. package/src/core/relationships/memo_relationships.sysml +22 -49
  143. package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
  144. package/src/methodology/core/memo_core.sysml +0 -10
  145. package/src/methodology/profiles/memo_profiles.sysml +18 -16
  146. package/src/rules/closure/closure_rules.sysml +22 -20
  147. package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
  148. package/src/rules/ontology/ontology_invariants.sysml +106 -33
  149. package/src/rules/quantitative/quantitative_rules.sysml +4 -2
  150. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +29 -28
  151. package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
  152. package/src/viewpoints/context/context_viewpoint.sysml +5 -3
  153. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +5 -3
  154. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
  155. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +6 -16
  156. package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
  157. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +5 -3
  158. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +5 -3
  159. package/src/viewpoints/logical/logical_viewpoint.sysml +4 -2
  160. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +5 -3
  161. package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
  162. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +5 -3
  163. package/src/viewpoints/physical/physical_viewpoint.sysml +4 -2
  164. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +5 -3
  165. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +5 -3
  166. package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
  167. package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -2
  168. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +5 -3
  169. package/src/viewpoints/risk/risk_viewpoint.sysml +4 -2
  170. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +5 -3
  171. package/src/viewpoints/software/software_viewpoint.sysml +4 -2
  172. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +5 -3
  173. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -2
  174. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
  175. package/src/viewpoints/usability/usability_viewpoint.sysml +4 -2
  176. package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
  177. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +5 -3
  178. package/templates/connected-device/model/catalog/project.sysml +3 -1
  179. package/templates/default/model/catalog/project.sysml +3 -1
  180. package/templates/infusion-pump/model/catalog/project.sysml +3 -1
  181. package/templates/monitoring-device/model/catalog/project.sysml +3 -1
  182. package/templates/samd/model/catalog/project.sysml +3 -1
@@ -12,11 +12,12 @@ package memo_examples_gpca_pump_gpca_verification {
12
12
  private import memo_core_enumerations::*;
13
13
  private import memo_core_common::*;
14
14
 
15
+ private import memo_core_common::MemoIdentity;
15
16
  // ── Verification cases ──────────────────────────────────────
16
17
  verification vcModeRange : VerificationCase {
17
- attribute :>> id = "VER-001";
18
+ @MemoIdentity { :>> providedId = "VER-001"; }
18
19
  attribute :>> name = "VerifyModeRange";
19
- attribute :>> methodKind = VerificationMethodKind::formalProof;
20
+ attribute :>> methodKind = MemoVerificationMethodKind::formalProof;
20
21
  attribute :>> acceptanceCriteria = "Current_System_mode only takes valid exclusive values";
21
22
  attribute :>> status = ElementStatusKind::approved;
22
23
 
@@ -24,9 +25,9 @@ package memo_examples_gpca_pump_gpca_verification {
24
25
  subject verified : Base::Anything[*] = (guaranteeExclusiveMode, gpcaDevice.gpcaSoftware.tlm, gpcaDevice.gpcaSoftware.outputBus);
25
26
  }
26
27
  verification vcLockout : VerificationCase {
27
- attribute :>> id = "VER-002";
28
+ @MemoIdentity { :>> providedId = "VER-002"; }
28
29
  attribute :>> name = "VerifyBolusLockout";
29
- attribute :>> methodKind = VerificationMethodKind::test;
30
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
30
31
  attribute :>> acceptanceCriteria = "No patient bolus initiated when lockout or max bolus constraints active";
31
32
  attribute :>> status = ElementStatusKind::approved;
32
33
 
@@ -34,9 +35,9 @@ package memo_examples_gpca_pump_gpca_verification {
34
35
  subject verified : Base::Anything[*] = (lockoutControl, guaranteeLockoutPreventsBolus, tcBolusResponse, gpcaDevice.gpcaSoftware.infusionMgr);
35
36
  }
36
37
  verification vcSameStepAlarm : VerificationCase {
37
- attribute :>> id = "VER-003";
38
+ @MemoIdentity { :>> providedId = "VER-003"; }
38
39
  attribute :>> name = "VerifySameStepAlarmStop";
39
- attribute :>> methodKind = VerificationMethodKind::modelChecking;
40
+ attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
40
41
  attribute :>> acceptanceCriteria = "Alarm output affects infusion in same execution step";
41
42
  attribute :>> status = ElementStatusKind::approved;
42
43
 
@@ -44,9 +45,9 @@ package memo_examples_gpca_pump_gpca_verification {
44
45
  subject verified : Base::Anything[*] = (propAlarmStopsSameStep, guaranteeAlarmStopsSameStep, tcAlarmLatency, gpcaDevice.gpcaSoftware.alarm);
45
46
  }
46
47
  verification vcTemporalModeSafety : VerificationCase {
47
- attribute :>> id = "VER-004";
48
+ @MemoIdentity { :>> providedId = "VER-004"; }
48
49
  attribute :>> name = "VerifyTemporalModeSafety";
49
- attribute :>> methodKind = VerificationMethodKind::modelChecking;
50
+ attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
50
51
  attribute :>> acceptanceCriteria = "No invalid transitions and pause on critical alarms";
51
52
  attribute :>> status = ElementStatusKind::approved;
52
53
 
@@ -54,9 +55,9 @@ package memo_examples_gpca_pump_gpca_verification {
54
55
  subject verified : Base::Anything[*] = (propLockoutTimerMonotonic, temporalNoInvalidTransition);
55
56
  }
56
57
  verification vcAirInLine : VerificationCase {
57
- attribute :>> id = "VER-005";
58
+ @MemoIdentity { :>> providedId = "VER-005"; }
58
59
  attribute :>> name = "VerifyAirInLineStop";
59
- attribute :>> methodKind = VerificationMethodKind::test;
60
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
60
61
  attribute :>> acceptanceCriteria = "Injected air above threshold pauses infusion and annunciates per the REQ 59 High-priority actions (REQ-CS-21)";
61
62
  attribute :>> status = ElementStatusKind::approved;
62
63
 
@@ -64,9 +65,9 @@ package memo_examples_gpca_pump_gpca_verification {
64
65
  subject verified : Base::Anything[*] = (airDetectionControl);
65
66
  }
66
67
  verification vcOcclusion : VerificationCase {
67
- attribute :>> id = "VER-006";
68
+ @MemoIdentity { :>> providedId = "VER-006"; }
68
69
  attribute :>> name = "VerifyOcclusionDetection";
69
- attribute :>> methodKind = VerificationMethodKind::test;
70
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
70
71
  attribute :>> acceptanceCriteria = "Clamped line above pressure threshold pauses infusion and annunciates (REQ-X-04)";
71
72
  attribute :>> status = ElementStatusKind::approved;
72
73
 
@@ -74,9 +75,9 @@ package memo_examples_gpca_pump_gpca_verification {
74
75
  subject verified : Base::Anything[*] = (occlusionAlarmControl);
75
76
  }
76
77
  verification vcEmptyReservoir : VerificationCase {
77
- attribute :>> id = "VER-007";
78
+ @MemoIdentity { :>> providedId = "VER-007"; }
78
79
  attribute :>> name = "VerifyEmptyReservoirStop";
79
- attribute :>> methodKind = VerificationMethodKind::test;
80
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
80
81
  attribute :>> acceptanceCriteria = "Reservoir-empty assertion transitions to PAUSED (KVO flow) and annunciates per the REQ 59 High-priority actions (REQ-CS-23)";
81
82
  attribute :>> status = ElementStatusKind::approved;
82
83
 
@@ -84,9 +85,9 @@ package memo_examples_gpca_pump_gpca_verification {
84
85
  subject verified : Base::Anything[*] = (reservoirMonitorControl, gpcaDevice.gpcaSoftware.systemStatus);
85
86
  }
86
87
  verification vcPost : VerificationCase {
87
- attribute :>> id = "VER-008";
88
+ @MemoIdentity { :>> providedId = "VER-008"; }
88
89
  attribute :>> name = "VerifyPowerOnSelfTest";
89
- attribute :>> methodKind = VerificationMethodKind::test;
90
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
90
91
  attribute :>> acceptanceCriteria = "Each injected POST fault (CPU, RAM, ROM, watchdog, sensors) blocks therapy and alarms (REQ-X-02)";
91
92
  attribute :>> status = ElementStatusKind::approved;
92
93
 
@@ -94,18 +95,18 @@ package memo_examples_gpca_pump_gpca_verification {
94
95
  subject verified : Base::Anything[*] = (gpcaDevice.gpcaSoftware.systemMonitor);
95
96
  }
96
97
  verification vcPowerLoss : VerificationCase {
97
- attribute :>> id = "VER-009";
98
+ @MemoIdentity { :>> providedId = "VER-009"; }
98
99
  attribute :>> name = "VerifyPowerLossRetentionAndResume";
99
- attribute :>> methodKind = VerificationMethodKind::test;
100
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
100
101
  attribute :>> acceptanceCriteria = "Prescription and log intact after power cycle; therapy resumes only after confirmation (REQ-X-03)";
101
102
  attribute :>> status = ElementStatusKind::approved;
102
103
 
103
104
  objective { verify reqPowerLossRetention; verify reqBatteryBackup; }
104
105
  }
105
106
  verification vcWatchdog : VerificationCase {
106
- attribute :>> id = "VER-010";
107
+ @MemoIdentity { :>> providedId = "VER-010"; }
107
108
  attribute :>> name = "VerifyWatchdogSafeState";
108
- attribute :>> methodKind = VerificationMethodKind::test;
109
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
109
110
  attribute :>> acceptanceCriteria = "Induced CPU hang forces zero flow and continuous alarm within 60 ms (REQ-X-08, TC-003)";
110
111
  attribute :>> status = ElementStatusKind::approved;
111
112
 
@@ -113,36 +114,36 @@ package memo_examples_gpca_pump_gpca_verification {
113
114
  subject verified : Base::Anything[*] = (watchdogControl, tcWatchdogTimeout);
114
115
  }
115
116
  verification vcHourlyMax : VerificationCase {
116
- attribute :>> id = "VER-011";
117
+ @MemoIdentity { :>> providedId = "VER-011"; }
117
118
  attribute :>> name = "VerifyHourlyDoseCeiling";
118
- attribute :>> methodKind = VerificationMethodKind::simulation;
119
+ attribute :>> methodKind = MemoVerificationMethodKind::simulation;
119
120
  attribute :>> acceptanceCriteria = "Randomized bolus/basal schedules never exceed hourly maximum in sliding window (REQ-X-06)";
120
121
  attribute :>> status = ElementStatusKind::approved;
121
122
 
122
123
  objective { verify reqMaxHourlyDose; }
123
124
  }
124
125
  verification vcPumpAccuracy : VerificationCase {
125
- attribute :>> id = "VER-012";
126
+ @MemoIdentity { :>> providedId = "VER-012"; }
126
127
  attribute :>> name = "VerifyDeliveryAccuracy";
127
- attribute :>> methodKind = VerificationMethodKind::test;
128
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
128
129
  attribute :>> acceptanceCriteria = "Gravimetric bench measurement within ±5% (Tolerance_Min_const) across rate range (REQ-X-11)";
129
130
  attribute :>> status = ElementStatusKind::approved;
130
131
 
131
132
  objective { verify reqPumpAccuracy; }
132
133
  }
133
134
  verification vcAlarmLoudness : VerificationCase {
134
- attribute :>> id = "VER-013";
135
+ @MemoIdentity { :>> providedId = "VER-013"; }
135
136
  attribute :>> name = "VerifyAlarmSoundPressure";
136
- attribute :>> methodKind = VerificationMethodKind::test;
137
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
137
138
  attribute :>> acceptanceCriteria = "Each priority tone meets Audio_level_const, 50 db for 2 s per I 8 (REQ-X-12)";
138
139
  attribute :>> status = ElementStatusKind::approved;
139
140
 
140
141
  objective { verify reqCs72; verify reqAlarmLoudness; }
141
142
  }
142
143
  verification vcFreeFlow : VerificationCase {
143
- attribute :>> id = "VER-014";
144
+ @MemoIdentity { :>> providedId = "VER-014"; }
144
145
  attribute :>> name = "VerifyAntiFreeFlowValve";
145
- attribute :>> methodKind = VerificationMethodKind::test;
146
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
146
147
  attribute :>> acceptanceCriteria = "No gravity flow with set disengaged under worst-case head height (REQ-X-14)";
147
148
  attribute :>> status = ElementStatusKind::approved;
148
149
 
@@ -150,18 +151,18 @@ package memo_examples_gpca_pump_gpca_verification {
150
151
  subject verified : Base::Anything[*] = (freeFlowValveControl);
151
152
  }
152
153
  verification vcStuckButton : VerificationCase {
153
- attribute :>> id = "VER-015";
154
+ @MemoIdentity { :>> providedId = "VER-015"; }
154
155
  attribute :>> name = "VerifyStuckButtonDetection";
155
- attribute :>> methodKind = VerificationMethodKind::test;
156
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
156
157
  attribute :>> acceptanceCriteria = "Shorted pendant input yields no bolus and Medium-priority notification after 60 s (REQ-X-09)";
157
158
  attribute :>> status = ElementStatusKind::approved;
158
159
 
159
160
  objective { verify reqStuckButton; }
160
161
  }
161
162
  verification vcFlowCrossCheck : VerificationCase {
162
- attribute :>> id = "VER-016";
163
+ @MemoIdentity { :>> providedId = "VER-016"; }
163
164
  attribute :>> name = "VerifyFlowCrossCheck";
164
- attribute :>> methodKind = VerificationMethodKind::test;
165
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
165
166
  attribute :>> acceptanceCriteria = "Injected deviation beyond Tolerance_Min_const sustained past Max_Duration_OverInfusion_const pauses therapy and annunciates (REQ-X-10)";
166
167
  attribute :>> status = ElementStatusKind::approved;
167
168
 
@@ -170,9 +171,9 @@ package memo_examples_gpca_pump_gpca_verification {
170
171
  }
171
172
 
172
173
  verification vcDrugLibrary : VerificationCase {
173
- attribute :>> id = "VER-017";
174
+ @MemoIdentity { :>> providedId = "VER-017"; }
174
175
  attribute :>> name = "VerifyDrugLibraryEnforcement";
175
- attribute :>> methodKind = VerificationMethodKind::test;
176
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
176
177
  attribute :>> acceptanceCriteria = "Hard-limit entries rejected, soft-limit entries require confirmation, both logged (REQ-X-01)";
177
178
  attribute :>> status = ElementStatusKind::approved;
178
179
 
@@ -180,18 +181,18 @@ package memo_examples_gpca_pump_gpca_verification {
180
181
  subject verified : Base::Anything[*] = (drugLibraryControl, gpcaDevice.gpcaSoftware.config);
181
182
  }
182
183
  verification vcPrescriptionConfirm : VerificationCase {
183
- attribute :>> id = "VER-018";
184
+ @MemoIdentity { :>> providedId = "VER-018"; }
184
185
  attribute :>> name = "VerifyPrescriptionConfirmation";
185
- attribute :>> methodKind = VerificationMethodKind::demonstration;
186
+ attribute :>> methodKind = MemoVerificationMethodKind::demonstration;
186
187
  attribute :>> acceptanceCriteria = "Therapy cannot start without distinct confirmation; displayed values equal stored values (REQ-CS-09)";
187
188
  attribute :>> status = ElementStatusKind::approved;
188
189
 
189
190
  objective { verify reqCs09; }
190
191
  }
191
192
  verification vcEventLog : VerificationCase {
192
- attribute :>> id = "VER-019";
193
+ @MemoIdentity { :>> providedId = "VER-019"; }
193
194
  attribute :>> name = "VerifyEventLogIntegrity";
194
- attribute :>> methodKind = VerificationMethodKind::test;
195
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
195
196
  attribute :>> acceptanceCriteria = "Operational/error log entries per REQ-CS-78..81; tampering detectable (REQ-X-07)";
196
197
  attribute :>> status = ElementStatusKind::approved;
197
198
 
@@ -199,45 +200,45 @@ package memo_examples_gpca_pump_gpca_verification {
199
200
  subject verified : Base::Anything[*] = (gpcaDevice.gpcaSoftware.logging);
200
201
  }
201
202
  verification vcReverseDeliveryPause : VerificationCase {
202
- attribute :>> id = "VER-020";
203
+ @MemoIdentity { :>> providedId = "VER-020"; }
203
204
  attribute :>> name = "VerifyReverseDeliveryPause";
204
- attribute :>> methodKind = VerificationMethodKind::modelChecking;
205
+ attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
205
206
  attribute :>> acceptanceCriteria = "Continuous or cumulative reverse delivery beyond the REQ-CS-22 duration limits transitions to PAUSED and raises the Reverse Delivery notification (NOTIF-04)";
206
207
  attribute :>> status = ElementStatusKind::approved;
207
208
 
208
209
  subject verified : Base::Anything[*] = (reverseDeliveryPauseControl);
209
210
  }
210
211
  verification vcAntiRefluxMechanism : VerificationCase {
211
- attribute :>> id = "VER-021";
212
+ @MemoIdentity { :>> providedId = "VER-021"; }
212
213
  attribute :>> name = "VerifyContinuousReverseDeliveryPrevention";
213
- attribute :>> methodKind = VerificationMethodKind::test;
214
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
214
215
  attribute :>> acceptanceCriteria = "During normal use and single fault condition, continuous reverse delivery is not possible (IEC 601-2-24 basis per GPCA safety requirements)";
215
216
  attribute :>> status = ElementStatusKind::approved;
216
217
 
217
218
  subject verified : Base::Anything[*] = (antiRefluxDesignControl);
218
219
  }
219
220
  verification vcVtbiCeiling : VerificationCase {
220
- attribute :>> id = "VER-022";
221
+ @MemoIdentity { :>> providedId = "VER-022"; }
221
222
  attribute :>> name = "VerifyVtbiCeilingPause";
222
- attribute :>> methodKind = VerificationMethodKind::modelChecking;
223
+ attribute :>> methodKind = MemoVerificationMethodKind::modelChecking;
223
224
  attribute :>> acceptanceCriteria = "Actual volume infused above the drug-database maximum VTBI transitions to PAUSED with flow at most KVO (REQ-CS-20, AGREE GP-008) and raises NOTIF-06";
224
225
  attribute :>> status = ElementStatusKind::approved;
225
226
 
226
227
  subject verified : Base::Anything[*] = (vtbiLimitPauseControl);
227
228
  }
228
229
  verification vcInfusionComplete : VerificationCase {
229
- attribute :>> id = "VER-023";
230
+ @MemoIdentity { :>> providedId = "VER-023"; }
230
231
  attribute :>> name = "VerifyInfusionCompleteStop";
231
- attribute :>> methodKind = VerificationMethodKind::test;
232
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
232
233
  attribute :>> acceptanceCriteria = "Reaching prescribed total duration or maximum VTBI transitions ACTIVE to IDLE with Infusion Complete actions (REQ-CS-28)";
233
234
  attribute :>> status = ElementStatusKind::approved;
234
235
 
235
236
  subject verified : Base::Anything[*] = (infusionCompleteControl);
236
237
  }
237
238
  verification vcDoorInterlock : VerificationCase {
238
- attribute :>> id = "VER-024";
239
+ @MemoIdentity { :>> providedId = "VER-024"; }
239
240
  attribute :>> name = "VerifyDoorOpenDeliveryInhibit";
240
- attribute :>> methodKind = VerificationMethodKind::test;
241
+ attribute :>> methodKind = MemoVerificationMethodKind::test;
241
242
  attribute :>> acceptanceCriteria = "Door open during THERAPY limits flow to at most KVO and raises a notification (AGREE GP-011; REQ-X-05)";
242
243
  attribute :>> status = ElementStatusKind::approved;
243
244
 
@@ -246,7 +247,7 @@ package memo_examples_gpca_pump_gpca_verification {
246
247
 
247
248
  // ── Validation cases (design validation / IEC 62366) ────────
248
249
  verification valSimulatedWard : ValidationCase {
249
- attribute :>> id = "VAL-001";
250
+ @MemoIdentity { :>> providedId = "VAL-001"; }
250
251
  attribute :>> name = "SimulatedWardTherapyValidation";
251
252
  attribute :>> validationMethod = ValidationMethodKind::simulatedUse;
252
253
  attribute :>> userParticipation = "nurses and physicians on a simulated ward";
@@ -254,7 +255,7 @@ package memo_examples_gpca_pump_gpca_verification {
254
255
  attribute :>> clinicalContext = "post-operative PCA therapy in acute care";
255
256
  }
256
257
  verification valSummativeUsability : ValidationCase {
257
- attribute :>> id = "VAL-002";
258
+ @MemoIdentity { :>> providedId = "VAL-002"; }
258
259
  attribute :>> name = "SummativeUsabilityTest";
259
260
  attribute :>> validationMethod = ValidationMethodKind::summativeUsabilityTest;
260
261
  attribute :>> userParticipation = "15 representative clinical users per user group";
@@ -265,7 +266,7 @@ package memo_examples_gpca_pump_gpca_verification {
265
266
  // ── Test artifacts and evidence ─────────────────────────────
266
267
  part testReportLockout : MemoEvidence {
267
268
  attribute :>> evidenceKind = EvidenceKind::testArtifact;
268
- attribute :>> id = "TEST-001";
269
+ @MemoIdentity { :>> providedId = "TEST-001"; }
269
270
  attribute :>> name = "BolusLockoutTestReport";
270
271
  attribute :>> version = "0.1";
271
272
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -274,7 +275,7 @@ package memo_examples_gpca_pump_gpca_verification {
274
275
  }
275
276
  part testProtocolSafetySuite : MemoEvidence {
276
277
  attribute :>> evidenceKind = EvidenceKind::testArtifact;
277
- attribute :>> id = "TEST-002";
278
+ @MemoIdentity { :>> providedId = "TEST-002"; }
278
279
  attribute :>> name = "SafetyAlarmTestProtocol";
279
280
  attribute :>> version = "0.1";
280
281
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -283,7 +284,7 @@ package memo_examples_gpca_pump_gpca_verification {
283
284
  }
284
285
  part evidenceLockout : MemoEvidence {
285
286
  attribute :>> evidenceKind = EvidenceKind::evidence;
286
- attribute :>> id = "EVD-001";
287
+ @MemoIdentity { :>> providedId = "EVD-001"; }
287
288
  attribute :>> name = "BolusLockoutEvidence";
288
289
  attribute :>> version = "0.1";
289
290
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -292,7 +293,7 @@ package memo_examples_gpca_pump_gpca_verification {
292
293
  }
293
294
  part evidenceModeRange : MemoEvidence {
294
295
  attribute :>> evidenceKind = EvidenceKind::evidence;
295
- attribute :>> id = "EVD-002";
296
+ @MemoIdentity { :>> providedId = "EVD-002"; }
296
297
  attribute :>> name = "ModeRangeEvidence";
297
298
  attribute :>> version = "0.1";
298
299
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -301,7 +302,7 @@ package memo_examples_gpca_pump_gpca_verification {
301
302
  }
302
303
  part evidenceSameStepAlarm : MemoEvidence {
303
304
  attribute :>> evidenceKind = EvidenceKind::evidence;
304
- attribute :>> id = "EVD-003";
305
+ @MemoIdentity { :>> providedId = "EVD-003"; }
305
306
  attribute :>> name = "SameStepAlarmEvidence";
306
307
  attribute :>> version = "0.1";
307
308
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -310,7 +311,7 @@ package memo_examples_gpca_pump_gpca_verification {
310
311
  }
311
312
  part evidenceTemporalModeSafety : MemoEvidence {
312
313
  attribute :>> evidenceKind = EvidenceKind::evidence;
313
- attribute :>> id = "EVD-004";
314
+ @MemoIdentity { :>> providedId = "EVD-004"; }
314
315
  attribute :>> name = "TemporalModeSafetyEvidence";
315
316
  attribute :>> version = "0.1";
316
317
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -319,7 +320,7 @@ package memo_examples_gpca_pump_gpca_verification {
319
320
  }
320
321
  part evidenceSafetyAlarmSuite : MemoEvidence {
321
322
  attribute :>> evidenceKind = EvidenceKind::evidence;
322
- attribute :>> id = "EVD-005";
323
+ @MemoIdentity { :>> providedId = "EVD-005"; }
323
324
  attribute :>> name = "SafetyAlarmSuiteEvidence";
324
325
  attribute :>> version = "0.1";
325
326
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -328,7 +329,7 @@ package memo_examples_gpca_pump_gpca_verification {
328
329
  }
329
330
  part evidenceUsability : MemoEvidence {
330
331
  attribute :>> evidenceKind = EvidenceKind::evidence;
331
- attribute :>> id = "EVD-006";
332
+ @MemoIdentity { :>> providedId = "EVD-006"; }
332
333
  attribute :>> name = "SummativeUsabilityEvidence";
333
334
  attribute :>> version = "0.1";
334
335
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -337,7 +338,7 @@ package memo_examples_gpca_pump_gpca_verification {
337
338
  }
338
339
  part evidenceHardwareBench : MemoEvidence {
339
340
  attribute :>> evidenceKind = EvidenceKind::evidence;
340
- attribute :>> id = "EVD-008";
341
+ @MemoIdentity { :>> providedId = "EVD-008"; }
341
342
  attribute :>> name = "HardwareBenchEvidence";
342
343
  attribute :>> version = "0.1";
343
344
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -346,7 +347,7 @@ package memo_examples_gpca_pump_gpca_verification {
346
347
  }
347
348
  part evidenceDoseProgramming : MemoEvidence {
348
349
  attribute :>> evidenceKind = EvidenceKind::evidence;
349
- attribute :>> id = "EVD-009";
350
+ @MemoIdentity { :>> providedId = "EVD-009"; }
350
351
  attribute :>> name = "DoseProgrammingEvidence";
351
352
  attribute :>> version = "0.1";
352
353
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -355,7 +356,7 @@ package memo_examples_gpca_pump_gpca_verification {
355
356
  }
356
357
  part evidenceDeliveryAccuracy : MemoEvidence {
357
358
  attribute :>> evidenceKind = EvidenceKind::evidence;
358
- attribute :>> id = "EVD-007";
359
+ @MemoIdentity { :>> providedId = "EVD-007"; }
359
360
  attribute :>> name = "DeliveryAccuracyEvidence";
360
361
  attribute :>> version = "0.1";
361
362
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -10,8 +10,10 @@ package memo_examples_gpca_pump_project {
10
10
  private import memo_core_enumerations::*;
11
11
  private import memo_examples_gpca_pump_methodology_gpca_profiles::*;
12
12
 
13
+ private import memo_core_common::*;
14
+ private import memo_core_common::MemoIdentity;
13
15
  part gpcaProjectBinding : ProjectMethodBinding {
14
- attribute :>> id = "PMB-GPCA-001";
16
+ @MemoIdentity { :>> providedId = "PMB-GPCA-001"; }
15
17
  attribute :>> name = "GPCAProjectMethodBinding";
16
18
  attribute :>> projectName = "GPCA Infusion Pump";
17
19
  ref :>> selectedMethodology = gpcaMethodDefinition;
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_context_views_context_system_context_
13
13
  private import memo_viewpoints_verification_verification_viewpoint::*;
14
14
  private import memo_core_enumerations::*;
15
15
 
16
+ private import memo_core_common::*;
17
+ private import memo_core_common::MemoIdentity;
16
18
  view gpcaSystemContextView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_context_views_context_system_context_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-CTX-101";
21
+ @MemoIdentity { :>> providedId = "VIEW-CTX-101"; }
20
22
  attribute :>> name = "GPCA_SystemContextView";
21
- attribute :>> shortDescription = "Actors, use contexts, and external entities at the GPCA system boundary.";
23
+ @MemoIdentity { :>> shortDescription = "Actors, use contexts, and external entities at the GPCA system boundary."; }
22
24
  attribute :>> description = "Shows the CriSys Fig 2.1 boundary: patient, clinician, prescription, drug reservoir, needle, hospital pharmacy database, and hospital environment around the pump, with directional data flows, physical drug-path connections, and the intended use anchoring the boundary.";
23
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
24
26
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
@@ -28,10 +30,10 @@ package memo_examples_gpca_pump_viewpoints_context_views_context_system_context_
28
30
  attribute :>> autoPopulate = true;
29
31
  attribute :>> queryDescription = "Include actors, use contexts, intended use, and external operational entities.";
30
32
  part :>> selectionQuery {
31
- attribute :>> id = "QRY-CTX-101";
33
+ @MemoIdentity { :>> providedId = "QRY-CTX-101"; }
32
34
  attribute :>> name = "GPCA_SystemContextQuery";
33
35
  attribute :>> includeElementKinds = ("Actor", "UseContext", "IntendedUse", "ReasonablyForeseeableMisuse", "OperationalEntity");
34
- attribute :>> includeRelationshipKinds = ("InteractsWith", "flow", "connect", "Governs", "AppliesInContext");
36
+ attribute :>> includeRelationshipKinds = ("connect", "flow", "Governs", "AppliesInContext");
35
37
  attribute :>> includeLayers = ("context", "operational");
36
38
  attribute :>> selectionExpression = "product == 'GPCA'";
37
39
  attribute :>> rationaleText = "Auto-populate the GPCA context view from the context layer.";
@@ -14,12 +14,14 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cyb
14
14
  private import memo_viewpoints_cybersecurity_cybersecurity_viewpoint::*;
15
15
  private import memo_core_enumerations::*;
16
16
 
17
+ private import memo_core_common::*;
18
+ private import memo_core_common::MemoIdentity;
17
19
  view gpcaCybersecurityView : MemoDiagramView {
18
20
  expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cybersecurity_view::*;
19
21
  attribute depth = 2;
20
- attribute :>> id = "VIEW-CYB-001";
22
+ @MemoIdentity { :>> providedId = "VIEW-CYB-001"; }
21
23
  attribute :>> name = "GPCA_CybersecurityView";
22
- attribute :>> shortDescription = "Shows GPCA assets, trust boundaries, threats, vulnerabilities, and mitigations.";
24
+ @MemoIdentity { :>> shortDescription = "Shows GPCA assets, trust boundaries, threats, vulnerabilities, and mitigations."; }
23
25
  attribute :>> description = "Product-specific cybersecurity view intended for secure product development and cross-reference into cybersecurity risk documentation.";
24
26
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
27
  attribute :>> presentationKind = (PresentationKind::custom);
@@ -29,7 +31,7 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cyb
29
31
  attribute :>> autoPopulate = true;
30
32
  attribute :>> queryDescription = "Include cyber assets, trust boundaries, threats, vulnerabilities, cyber hazards, cyber risks, mitigations, security requirements, and verification.";
31
33
  part :>> selectionQuery {
32
- attribute :>> id = "QRY-CYB-001";
34
+ @MemoIdentity { :>> providedId = "QRY-CYB-001"; }
33
35
  attribute :>> name = "GPCA_CybersecurityQuery";
34
36
  attribute :>> includeElementKinds = ("CybersecurityAsset", "Threat", "Vulnerability", "CyberHazard", "CyberRisk", "CyberMitigation", "SecurityRequirement", "TrustBoundary", "OperativeScenario[scenarioKind=threat]");
35
37
  attribute :>> includeLayers = ("cybersecurity", "risk", "assurance");
@@ -6,18 +6,20 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_as
6
6
  private import memo_viewpoints_cybersecurity_cybersecurity_viewpoint::*;
7
7
  private import memo_core_enumerations::*;
8
8
 
9
+ private import memo_core_common::*;
10
+ private import memo_core_common::MemoIdentity;
9
11
  view cyberAssessmentView : MemoCybersecurityAssessmentView {
10
12
  expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view::*;
11
- attribute :>> id = "DOC-003";
13
+ @MemoIdentity { :>> providedId = "DOC-003"; }
12
14
  attribute :>> name = "GPCAMemoCybersecurityAssessmentView";
13
- attribute :>> shortDescription = "Cybersecurity risk-assessment-oriented document view for GPCA.";
15
+ @MemoIdentity { :>> shortDescription = "Cybersecurity risk-assessment-oriented document view for GPCA."; }
14
16
  attribute :>> description = "Captures GPCA cyber risks, mitigations, security requirements, verification, and safety/privacy traceability for cybersecurity assessment records.";
15
17
  attribute :>> version = "0.1";
16
18
  attribute :>> lifecycleState = LifecycleStateKind::development;
17
19
  attribute :>> marketScope = "generic";
18
20
  ref :>> viewpointDefinition = cybersecurityViewpoint;
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-DOC-009";
22
+ @MemoIdentity { :>> providedId = "QRY-DOC-009"; }
21
23
  attribute :>> name = "cyberAssessmentViewQuery";
22
24
  attribute :>> includeElementKinds = ("CyberRisk", "CyberHazard", "CybersecurityAsset", "CyberMitigation", "SecurityRequirement", "SecurityClaim", "SBOMEntry", "SoftwareModule[moduleKind=soup]");
23
25
  attribute :>> includeRelationshipKinds = ("ImpactsSafety", "Mitigates", "DerivesCyberRequirement", "AssessedAgainst", "DependsOnSoup");
@@ -6,18 +6,20 @@ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_threat_m
6
6
  private import memo_viewpoints_cybersecurity_cybersecurity_viewpoint::*;
7
7
  private import memo_core_enumerations::*;
8
8
 
9
+ private import memo_core_common::*;
10
+ private import memo_core_common::MemoIdentity;
9
11
  view threatModelView : MemoCybersecurityThreatModelView {
10
12
  expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_threat_model_view::*;
11
- attribute :>> id = "DOC-002";
13
+ @MemoIdentity { :>> providedId = "DOC-002"; }
12
14
  attribute :>> name = "GPCACyberThreatModelView";
13
- attribute :>> shortDescription = "Threat-model-oriented document view for GPCA.";
15
+ @MemoIdentity { :>> shortDescription = "Threat-model-oriented document view for GPCA."; }
14
16
  attribute :>> description = "Captures GPCA cyber assets, trust boundaries, threats, threat scenarios, vulnerabilities, and mitigations for secure product development records.";
15
17
  attribute :>> version = "0.1";
16
18
  attribute :>> lifecycleState = LifecycleStateKind::development;
17
19
  attribute :>> marketScope = "generic";
18
20
  ref :>> viewpointDefinition = cybersecurityViewpoint;
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-DOC-008";
22
+ @MemoIdentity { :>> providedId = "QRY-DOC-008"; }
21
23
  attribute :>> name = "threatModelViewQuery";
22
24
  attribute :>> includeElementKinds = ("Threat", "OperativeScenario[scenarioKind=threat]", "Vulnerability", "CybersecurityAsset", "TrustBoundary", "AttackSurface", "CyberMitigation", "SecurityRequirement");
23
25
  attribute :>> includeRelationshipKinds = ("ThreatenedBy", "Exploits", "RealizedByScenario", "CrossesTrustBoundary", "Mitigates", "DerivesCyberRequirement");
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
13
13
  private import memo_viewpoints_verification_verification_viewpoint::*;
14
14
  private import memo_core_enumerations::*;
15
15
 
16
+ private import memo_core_common::*;
17
+ private import memo_core_common::MemoIdentity;
16
18
  view gpcaFunctionAllocationView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_functional_views_functional_function_allocation_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-FUN-102";
21
+ @MemoIdentity { :>> providedId = "VIEW-FUN-102"; }
20
22
  attribute :>> name = "GPCA_FunctionAllocationView";
21
- attribute :>> shortDescription = "Allocation of logical functions to software components and hardware assemblies.";
23
+ @MemoIdentity { :>> shortDescription = "Allocation of logical functions to software components and hardware assemblies."; }
22
24
  attribute :>> outputKind = (ViewOutputKind::matrix);
23
25
  attribute :>> presentationKind = (PresentationKind::traceMatrix);
24
26
  attribute :>> viewKind = DiagramViewKind::grid;
@@ -27,7 +29,7 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
27
29
  attribute :>> autoPopulate = true;
28
30
  attribute :>> queryDescription = "Include logical functions with their AllocatedTo targets.";
29
31
  part :>> selectionQuery {
30
- attribute :>> id = "QRY-FUN-102";
32
+ @MemoIdentity { :>> providedId = "QRY-FUN-102"; }
31
33
  attribute :>> name = "GPCA_FunctionAllocationQuery";
32
34
  attribute :>> includeElementKinds = ("SystemFunction", "SoftwareModule", "HardwareAssembly");
33
35
  attribute :>> includeRelationshipKinds = ("AllocatedTo");
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
13
13
  private import memo_viewpoints_verification_verification_viewpoint::*;
14
14
  private import memo_core_enumerations::*;
15
15
 
16
+ private import memo_core_common::*;
17
+ private import memo_core_common::MemoIdentity;
16
18
  view gpcaFunctionBrowserView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_functional_views_functional_function_browser_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-FUN-103";
21
+ @MemoIdentity { :>> providedId = "VIEW-FUN-103"; }
20
22
  attribute :>> name = "GPCA_FunctionBrowserView";
21
- attribute :>> shortDescription = "Membership tree over the functions layer: logical functions, flows, and the exchange item definitions, grouped by kind.";
23
+ @MemoIdentity { :>> shortDescription = "Membership tree over the functions layer: logical functions, flows, and the exchange item definitions, grouped by kind."; }
22
24
  attribute :>> description = "Browser view (SysML v2 browser view kind) exposing the functions-layer membership hierarchy as a first-class view: the eleven logical functions, the logical flows connecting them, and the data/control definitions they exchange — with kind icons, expand/collapse, and filtering.";
23
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
24
26
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
@@ -27,7 +29,7 @@ package memo_examples_gpca_pump_viewpoints_functional_views_functional_function_
27
29
  attribute :>> autoPopulate = true;
28
30
  attribute :>> queryDescription = "Include the functions layer's functions, flows, and exchange item definitions.";
29
31
  part :>> selectionQuery {
30
- attribute :>> id = "QRY-FUN-103";
32
+ @MemoIdentity { :>> providedId = "QRY-FUN-103"; }
31
33
  attribute :>> name = "GPCA_FunctionBrowserQuery";
32
34
  attribute :>> includeElementKinds = ("SystemFunction", "FunctionalExchange", "InterfaceItem");
33
35
  attribute :>> includeLayers = ("functions");
@@ -13,12 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_behavior_action_flow_vi
13
13
  private import memo_viewpoints_verification_verification_viewpoint::*;
14
14
  private import memo_core_enumerations::*;
15
15
 
16
+ private import memo_core_common::*;
17
+ private import memo_core_common::MemoIdentity;
16
18
  view gpcaActionFlowView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_logical_views_behavior_action_flow_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-BHV-003";
21
+ @MemoIdentity { :>> providedId = "VIEW-BHV-003"; }
20
22
  attribute :>> name = "GPCA_InfusionDeliveryActionFlowView";
21
- attribute :>> shortDescription = "The 20 ms execution-step pipeline from sensor acquisition through alarm evaluation and dose limiting to pump actuation and event logging.";
23
+ @MemoIdentity { :>> shortDescription = "The 20 ms execution-step pipeline from sensor acquisition through alarm evaluation and dose limiting to pump actuation and event logging."; }
22
24
  attribute :>> description = "Action flow over the infusionDeliveryFlow composite action: typed action steps with in/out parameters, item flows carrying the DD/CD exchange items, succession ordering from start to done, and swimlane allocation onto the logical architecture (sensors, alarm, infusion manager, pump motor, logging).";
23
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
24
26
  attribute :>> presentationKind = (PresentationKind::activityDiagram);
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_viewpoints_logical_views_behavior_action_flow_vi
28
30
  attribute :>> autoPopulate = true;
29
31
  attribute :>> queryDescription = "Include the nested action usages of the infusion delivery flow with their flows and successions.";
30
32
  part :>> selectionQuery {
31
- attribute :>> id = "QRY-BHV-103";
33
+ @MemoIdentity { :>> providedId = "QRY-BHV-103"; }
32
34
  attribute :>> name = "GPCA_ActionFlowQuery";
33
35
  attribute :>> includeElementKinds = ("ActionUsage");
34
36
  attribute :>> selectionExpression = "product == 'GPCA'";
@@ -7,11 +7,13 @@ package memo_examples_gpca_pump_viewpoints_logical_views_document_architecture_d
7
7
  private import memo_viewpoints_physical_physical_viewpoint::*;
8
8
  private import memo_core_enumerations::*;
9
9
 
10
+ private import memo_core_common::*;
11
+ private import memo_core_common::MemoIdentity;
10
12
  view architectureDescriptionView : MemoDocumentView {
11
13
  expose memo_examples_gpca_pump_viewpoints_logical_views_document_architecture_description_view::*;
12
- attribute :>> id = "DOC-005";
14
+ @MemoIdentity { :>> providedId = "DOC-005"; }
13
15
  attribute :>> name = "ArchitectureDescriptionView";
14
- attribute :>> shortDescription = "ISO/IEC/IEEE 42010 architecture description across all layers.";
16
+ @MemoIdentity { :>> shortDescription = "ISO/IEC/IEEE 42010 architecture description across all layers."; }
15
17
  attribute :>> description = "Aggregates context, operational, functional, logical, software, and physical layers with their views and correspondences for the system architecture description.";
16
18
  attribute :>> version = "0.1";
17
19
  attribute :>> lifecycleState = LifecycleStateKind::development;
@@ -22,7 +24,7 @@ package memo_examples_gpca_pump_viewpoints_logical_views_document_architecture_d
22
24
  ref vpSoftware :> viewpointDefinition = softwareViewpoint;
23
25
  ref vpPhysical :> viewpointDefinition = physicalViewpoint;
24
26
  part :>> selectionQuery {
25
- attribute :>> id = "QRY-DOC-005";
27
+ @MemoIdentity { :>> providedId = "QRY-DOC-005"; }
26
28
  attribute :>> name = "architectureDescriptionViewQuery";
27
29
  attribute :>> includeElementKinds = ("LogicalComponent", "SystemFunction", "ComponentExchange", "SoftwareSystem", "SoftwareModule", "HardwareAssembly", "ProcessingNode", "PhysicalPort", "FunctionalFlow", "FunctionalFlowStep");
28
30
  attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "Realizes", "BindsToInterface", "Performs", "Succession", "DeploysTo", "HostedBy");