@memoarchitect/ontology 0.8.22 → 0.10.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/README.md +1 -1
  2. package/examples/connected-patient-monitor/memo.package.yaml +3 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
  4. package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
  5. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  6. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +11 -9
  8. package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
  9. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  10. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  11. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +9 -7
  12. package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
  13. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/memo.identity.yaml +2179 -0
  15. package/examples/gpca-pump/memo.package.yaml +3 -0
  16. package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
  17. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
  18. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
  21. package/examples/gpca-pump/model/catalog/gpca_context.sysml +27 -23
  22. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +15 -15
  23. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
  24. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
  25. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +146 -180
  26. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
  27. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
  28. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
  29. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +21 -33
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -11
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
  33. package/examples/gpca-pump/model/catalog/project.sysml +3 -1
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +7 -7
  35. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +7 -7
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +6 -7
  37. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +7 -8
  38. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +6 -6
  39. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +6 -6
  40. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +6 -6
  41. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +8 -9
  42. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +6 -6
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +6 -6
  44. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +6 -6
  45. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +6 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +7 -7
  47. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +6 -6
  48. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +6 -6
  49. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +8 -9
  50. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +6 -6
  51. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -7
  52. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +6 -7
  53. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +6 -6
  54. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +6 -6
  55. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +6 -7
  56. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +6 -6
  57. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +8 -9
  58. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +6 -7
  59. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +6 -6
  60. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  61. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +10 -8
  62. package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
  63. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  64. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  65. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +7 -5
  66. package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
  67. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  68. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  69. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
  70. package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
  71. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  72. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  73. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
  74. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
  75. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
  76. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
  77. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
  78. package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
  79. package/examples/reusable-instrument/memo.package.yaml +3 -0
  80. package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
  81. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +23 -31
  82. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  83. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  84. package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
  85. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
  86. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
  87. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  88. package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
  89. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -9
  90. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  91. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  92. package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
  93. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -69
  94. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  95. package/examples/surgical-robot/memo.package.yaml +3 -0
  96. package/examples/surgical-robot/model/catalog/project.sysml +3 -1
  97. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
  98. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  99. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  100. package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
  101. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -11
  102. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -7
  103. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +4 -3
  104. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +3 -3
  105. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +17 -16
  106. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +9 -8
  107. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +4 -3
  108. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +3 -3
  109. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +4 -3
  110. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -9
  111. package/examples/temperature-alarm/memo.identity.yaml +64 -0
  112. package/examples/temperature-alarm/memo.package.yaml +3 -0
  113. package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
  114. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +30 -29
  115. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  116. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  117. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
  118. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
  119. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
  120. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
  121. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
  122. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
  123. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
  124. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
  125. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
  126. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
  127. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
  128. package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
  129. package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
  130. package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
  131. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +6 -5
  132. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +6 -5
  133. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +6 -5
  134. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +4 -3
  135. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +4 -3
  136. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +4 -3
  137. package/extensions/aadl/memo.package.yaml +1 -1
  138. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
  139. package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
  140. package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
  141. package/extensions/cloud/memo.package.yaml +1 -1
  142. package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
  143. package/extensions/container/memo.package.yaml +1 -1
  144. package/extensions/container/src/container_extension.sysml +2 -2
  145. package/extensions/container/src/methodology/container_methodology.sysml +3 -1
  146. package/extensions/messaging/memo.package.yaml +1 -1
  147. package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
  148. package/extensions/ros/memo.package.yaml +1 -1
  149. package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
  150. package/extensions/template/src/extension.sysml +3 -1
  151. package/methodologies/default/memo.package.yaml +1 -1
  152. package/methodologies/gpca/memo.package.yaml +1 -1
  153. package/ontology/memo.package.yaml +1 -1
  154. package/package.json +2 -2
  155. package/profile/memo.package.yaml +1 -1
  156. package/src/architecture/functional/behavior/memo_behavior.sysml +5 -5
  157. package/src/architecture/functional/functions/memo_functions.sysml +6 -6
  158. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
  159. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
  160. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
  161. package/src/architecture/implementation/ui/memo_ui.sysml +8 -31
  162. package/src/architecture/logical/interfaces/memo_interfaces.sysml +4 -2
  163. package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
  164. package/src/architecture/operational/activities/memo_activities.sysml +19 -28
  165. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
  166. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
  167. package/src/architecture/operational/context/use_context/memo_use_context.sysml +5 -14
  168. package/src/architecture/operational/scenarios/memo_scenarios.sysml +12 -104
  169. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  170. package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -12
  171. package/src/architecture/operational/workflows/memo_workflows.sysml +20 -42
  172. package/src/architecture/realization/deployment/memo_deployment.sysml +26 -19
  173. package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
  174. package/src/artifacts/standards/cfr_21_820.sysml +80 -89
  175. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
  176. package/src/artifacts/standards/iec_60601_1.sysml +108 -121
  177. package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
  178. package/src/artifacts/standards/iec_60812.sysml +21 -22
  179. package/src/artifacts/standards/iec_62304.sysml +150 -169
  180. package/src/artifacts/standards/iec_62366_1.sysml +80 -89
  181. package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
  182. package/src/artifacts/standards/iso_13485.sysml +80 -89
  183. package/src/artifacts/standards/iso_14971.sysml +66 -73
  184. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
  185. package/src/artifacts/templates/dhf/system/sad.md +3 -3
  186. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
  187. package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
  188. package/src/assurance/requirements/memo_requirements.sysml +2 -18
  189. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
  190. package/src/assurance/safety_risk/memo_risk.sysml +12 -0
  191. package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
  192. package/src/core/common/memo_common.sysml +59 -55
  193. package/src/core/enumerations/memo_enumerations.sysml +1 -1
  194. package/src/core/relationships/memo_relationships.sysml +29 -56
  195. package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
  196. package/src/methodology/core/memo_core.sysml +0 -10
  197. package/src/methodology/profiles/memo_profiles.sysml +18 -16
  198. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  199. package/src/rules/closure/closure_rules.sysml +22 -20
  200. package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
  201. package/src/rules/ontology/ontology_invariants.sysml +121 -48
  202. package/src/rules/quantitative/quantitative_rules.sysml +4 -2
  203. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +58 -57
  204. package/src/viewpoints/clinical/clinical_viewpoint.sysml +5 -4
  205. package/src/viewpoints/context/context_viewpoint.sysml +6 -5
  206. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +6 -5
  207. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +6 -6
  208. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +36 -4
  209. package/src/viewpoints/functional/functional_viewpoint.sysml +6 -5
  210. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +6 -5
  211. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +6 -5
  212. package/src/viewpoints/logical/logical_viewpoint.sysml +5 -4
  213. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +6 -5
  214. package/src/viewpoints/operational/operational_viewpoint.sysml +6 -5
  215. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +7 -6
  216. package/src/viewpoints/physical/physical_viewpoint.sysml +5 -4
  217. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +6 -5
  218. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +6 -5
  219. package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
  220. package/src/viewpoints/requirements/requirements_viewpoint.sysml +5 -4
  221. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +6 -5
  222. package/src/viewpoints/risk/risk_viewpoint.sysml +5 -4
  223. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +6 -5
  224. package/src/viewpoints/software/software_viewpoint.sysml +5 -4
  225. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +6 -5
  226. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +5 -4
  227. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
  228. package/src/viewpoints/usability/usability_viewpoint.sysml +5 -4
  229. package/src/viewpoints/verification/verification_viewpoint.sysml +5 -4
  230. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +6 -5
  231. package/templates/connected-device/memo.package.yaml +2 -0
  232. package/templates/connected-device/model/catalog/project.sysml +3 -1
  233. package/templates/default/memo.package.yaml +2 -0
  234. package/templates/default/model/catalog/project.sysml +3 -1
  235. package/templates/infusion-pump/memo.package.yaml +2 -0
  236. package/templates/infusion-pump/model/catalog/project.sysml +3 -1
  237. package/templates/monitoring-device/memo.package.yaml +2 -0
  238. package/templates/monitoring-device/model/catalog/project.sysml +3 -1
  239. package/templates/samd/memo.package.yaml +2 -0
  240. package/templates/samd/model/catalog/project.sysml +3 -1
@@ -13,13 +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 :>> title = "GPCA Infusion Delivery Action Flow";
22
- 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."; }
23
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).";
24
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
26
  attribute :>> presentationKind = (PresentationKind::activityDiagram);
@@ -28,14 +29,13 @@ package memo_examples_gpca_pump_viewpoints_logical_views_behavior_action_flow_vi
28
29
  attribute :>> dataSourceDescription = "GPCA infusion delivery composite action, item flows, and successions";
29
30
  attribute :>> autoPopulate = true;
30
31
  attribute :>> queryDescription = "Include the nested action usages of the infusion delivery flow with their flows and successions.";
31
- attribute :>> documentUsage = ("SDD");
32
32
  part :>> selectionQuery {
33
- attribute :>> id = "QRY-BHV-103";
33
+ @MemoIdentity { :>> providedId = "QRY-BHV-103"; }
34
34
  attribute :>> name = "GPCA_ActionFlowQuery";
35
35
  attribute :>> includeElementKinds = ("ActionUsage");
36
36
  attribute :>> selectionExpression = "product == 'GPCA'";
37
37
  attribute :>> rationaleText = "Auto-populate the action flow view from the behavior layer's action usages.";
38
38
  }
39
- part :>> viewpointDefinition = logicalArchitectureViewpoint;
39
+ ref :>> viewpointDefinition = logicalArchitectureViewpoint;
40
40
  }
41
41
  }
@@ -7,25 +7,24 @@ 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 :>> title = "GPCA System Architecture Description View";
15
- attribute :>> shortDescription = "ISO/IEC/IEEE 42010 architecture description across all layers.";
16
+ @MemoIdentity { :>> shortDescription = "ISO/IEC/IEEE 42010 architecture description across all layers."; }
16
17
  attribute :>> description = "Aggregates context, operational, functional, logical, software, and physical layers with their views and correspondences for the system architecture description.";
17
18
  attribute :>> version = "0.1";
18
19
  attribute :>> lifecycleState = LifecycleStateKind::development;
19
20
  attribute :>> viewKind = DocumentViewKind::architectureDescription;
20
21
  attribute :>> generationRule = "Include all architecture layers, functional chains, interfaces, and the physical BOM with cross-layer allocations";
21
22
  attribute :>> marketScope = "generic";
22
- attribute :>> documentUsage = ("Architecture Description", "DHF");
23
- attribute :>> sectionIdentifier = "AD";
24
- part vpLogicalArchitecture :> viewpointDefinition = logicalArchitectureViewpoint;
25
- part vpSoftware :> viewpointDefinition = softwareViewpoint;
26
- part vpPhysical :> viewpointDefinition = physicalViewpoint;
23
+ ref vpLogicalArchitecture :> viewpointDefinition = logicalArchitectureViewpoint;
24
+ ref vpSoftware :> viewpointDefinition = softwareViewpoint;
25
+ ref vpPhysical :> viewpointDefinition = physicalViewpoint;
27
26
  part :>> selectionQuery {
28
- attribute :>> id = "QRY-DOC-005";
27
+ @MemoIdentity { :>> providedId = "QRY-DOC-005"; }
29
28
  attribute :>> name = "architectureDescriptionViewQuery";
30
29
  attribute :>> includeElementKinds = ("LogicalComponent", "SystemFunction", "ComponentExchange", "SoftwareSystem", "SoftwareModule", "HardwareAssembly", "ProcessingNode", "PhysicalPort", "FunctionalFlow", "FunctionalFlowStep");
31
30
  attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "Realizes", "BindsToInterface", "Performs", "Succession", "DeploysTo", "HostedBy");
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_device_intercon
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 gpcaDeviceInterconnectView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_logical_views_logical_device_interconnect_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-LOG-003";
21
+ @MemoIdentity { :>> providedId = "VIEW-LOG-003"; }
20
22
  attribute :>> name = "GPCA_DeviceInterconnectView";
21
- attribute :>> title = "GPCA Device Interconnect View";
22
- attribute :>> shortDescription = "AADL device-level interconnection: GPCA_HW_Sensors, GPCA_SW, and GPCA_HW_Actuators with their declared boundary features.";
23
+ @MemoIdentity { :>> shortDescription = "AADL device-level interconnection: GPCA_HW_Sensors, GPCA_SW, and GPCA_HW_Actuators with their declared boundary features."; }
23
24
  attribute :>> description = "Source-faithful interconnection view of GPCA_Device.Impl: exactly the three AADL subcomponents (GPCA_HW_Sensors, GPCA_SW, GPCA_HW_Actuators), the device and subsystem boundary ports, and the twelve declared port connections. MEMO physical-design additions such as the controller board, power sources, enclosure, and individual sensors/actuators are intentionally excluded because the published AADL v2.0 model does not declare them as GPCA_Device.Impl subcomponents. Drill into GPCA_SW to inspect its eight subcomponents and 42 internal connections; use the connection-density control to switch between bundled summary and full fidelity.";
24
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
26
  attribute :>> presentationKind = (PresentationKind::internalDiagram);
@@ -28,9 +29,8 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_device_intercon
28
29
  attribute :>> dataSourceDescription = "GPCA hardware assemblies, software system, software components, boundary ports, and the flow/bind/Composes topology";
29
30
  attribute :>> autoPopulate = true;
30
31
  attribute :>> queryDescription = "Include hardware assemblies, the software system with its components and boundary ports, and the exchange topology between them.";
31
- attribute :>> documentUsage = ("SDD", "Architecture Description", "QMSR");
32
32
  part :>> selectionQuery {
33
- attribute :>> id = "QRY-LOG-003";
33
+ @MemoIdentity { :>> providedId = "QRY-LOG-003"; }
34
34
  attribute :>> name = "GPCA_DeviceInterconnectQuery";
35
35
  attribute :>> includeElementIds = ("gpcaDevice", "gpcaDeviceSensors", "gpcaSoftware", "gpcaActuators", "devOpCmdIn", "devDbIn", "devPresIn", "devPatientIn", "devGpcaOut", "snsOpCmdIn", "snsDbIn", "snsPresIn", "snsPatientIn", "snsOpCmdOut", "snsPresOut", "snsPatientOut", "snsSensorOut", "snsConstOut", "snsDbOut", "portOpCmdIn", "portPresIn", "portPatientIn", "portSensorIn", "portConstIn", "portDbIn", "portGpcaSwOut", "actGpcaSwIn", "actGpcaOut", "tlm", "systemStatus", "alarm", "config", "infusionMgr", "systemMonitor", "logging", "outputBus");
36
36
  attribute :>> includeRelationshipKinds = ("flow", "bind", "Composes");
@@ -38,6 +38,6 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_device_intercon
38
38
  attribute :>> selectionExpression = "product == 'GPCA'";
39
39
  attribute :>> rationaleText = "Render the device interconnect: parts with boundary ports as nodes, AADL connections as typed connectors, composition as nesting.";
40
40
  }
41
- part :>> viewpointDefinition = logicalArchitectureViewpoint;
41
+ ref :>> viewpointDefinition = logicalArchitectureViewpoint;
42
42
  }
43
43
  }
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_logical_archite
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 gpcaLogicalArchitectureView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_logical_views_logical_logical_architecture_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-LOG-001";
21
+ @MemoIdentity { :>> providedId = "VIEW-LOG-001"; }
20
22
  attribute :>> name = "GPCA_LogicalArchitectureView";
21
- attribute :>> title = "GPCA Logical Architecture View";
22
- attribute :>> shortDescription = "Logical decomposition of the GPCA system.";
23
+ @MemoIdentity { :>> shortDescription = "Logical decomposition of the GPCA system."; }
23
24
  attribute :>> description = "Product-specific logical architecture view that references the default logical architecture viewpoint and is intended for design description and architecture communication.";
24
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
26
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
@@ -28,15 +29,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_logical_archite
28
29
  attribute :>> dataSourceDescription = "GPCA architecture and interface model elements";
29
30
  attribute :>> autoPopulate = true;
30
31
  attribute :>> queryDescription = "Include GPCA logical components and key interfaces relevant to therapy control.";
31
- attribute :>> documentUsage = ("SDD", "Architecture Description", "QMSR");
32
32
  part :>> selectionQuery {
33
- attribute :>> id = "QRY-LOG-001";
33
+ @MemoIdentity { :>> providedId = "QRY-LOG-001"; }
34
34
  attribute :>> name = "GPCA_LogicalArchitectureQuery";
35
35
  attribute :>> includeElementKinds = ("LogicalComponent", "Interface", "Function");
36
36
  attribute :>> includeLayers = ("functions", "logical_structure", "interfaces");
37
37
  attribute :>> selectionExpression = "product == 'GPCA' and concern contains therapy control";
38
38
  attribute :>> rationaleText = "Auto-populate the GPCA logical architecture view from the core product model.";
39
39
  }
40
- part :>> viewpointDefinition = logicalArchitectureViewpoint;
40
+ ref :>> viewpointDefinition = logicalArchitectureViewpoint;
41
41
  }
42
42
  }
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_mode_state_view
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 gpcaModeStateView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_logical_views_logical_mode_state_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-BHV-001";
21
+ @MemoIdentity { :>> providedId = "VIEW-BHV-001"; }
20
22
  attribute :>> name = "GPCA_ModeStateView";
21
- attribute :>> title = "GPCA Top-Level Mode State View";
22
- attribute :>> shortDescription = "The CriSys Fig 4.1 mode hierarchy (OFF, ON, IDLE, THERAPY, PAUSED, ACTIVE, BASAL, SQUARE_BOLUS, PATIENT_BOLUS) and all guarded transitions.";
23
+ @MemoIdentity { :>> shortDescription = "The CriSys Fig 4.1 mode hierarchy (OFF, ON, IDLE, THERAPY, PAUSED, ACTIVE, BASAL, SQUARE_BOLUS, PATIENT_BOLUS) and all guarded transitions."; }
23
24
  attribute :>> description = "Hierarchical state diagram per CriSys §4.1 Fig 4.1: OFF and ON at top level, IDLE and THERAPY under ON, PAUSED (KVO delivery) and ACTIVE under THERAPY, and BASAL / SQUARE_BOLUS (auto-scheduled) / PATIENT_BOLUS under ACTIVE — with the REQ 4-47 transitions, Inhibited_* macro guards, and same-step-critical markings.";
24
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
26
  attribute :>> presentationKind = (PresentationKind::stateDiagram);
@@ -28,15 +29,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_mode_state_view
28
29
  attribute :>> dataSourceDescription = "GPCA behavior machine, mode states, and transitions";
29
30
  attribute :>> autoPopulate = true;
30
31
  attribute :>> queryDescription = "Include the mode machine, the Fig 4.1 mode tree (Composes edges), transitions, and safety properties.";
31
- attribute :>> documentUsage = ("SDD", "RMF");
32
32
  part :>> selectionQuery {
33
- attribute :>> id = "QRY-BHV-101";
33
+ @MemoIdentity { :>> providedId = "QRY-BHV-101"; }
34
34
  attribute :>> name = "GPCA_ModeStateQuery";
35
35
  attribute :>> includeElementKinds = ("StateMachine", "MemoState[stateKind=mode]", "Transition", "BehaviorProperty", "TimingConstraint");
36
36
  attribute :>> includeLayers = ("behavior");
37
37
  attribute :>> selectionExpression = "product == 'GPCA'";
38
38
  attribute :>> rationaleText = "Auto-populate the mode state view from the behavior layer.";
39
39
  }
40
- part :>> viewpointDefinition = logicalArchitectureViewpoint;
40
+ ref :>> viewpointDefinition = logicalArchitectureViewpoint;
41
41
  }
42
42
  }
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_system_decompos
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 gpcaSystemDecompositionView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_logical_views_logical_system_decomposition_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-LOG-002";
21
+ @MemoIdentity { :>> providedId = "VIEW-LOG-002"; }
20
22
  attribute :>> name = "GPCA_SystemDecompositionView";
21
- attribute :>> title = "GPCA System Decomposition View";
22
- attribute :>> shortDescription = "Nested containment of the GPCA device: hardware assemblies and the software system.";
23
+ @MemoIdentity { :>> shortDescription = "Nested containment of the GPCA device: hardware assemblies and the software system."; }
23
24
  attribute :>> description = "General-kind membership structure of the GPCA device per the AADL GPCA_Device.Impl decomposition: sensor and actuator assemblies with their subcomponents, supporting hardware, and the GPCA software system with its eight AADL subcomponents. Rendered through the KK-2 General view template in containment mode (nested blocks with expand/collapse; the tree mode shows the same hierarchy as a decomposition tree).";
24
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
26
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
@@ -29,9 +30,8 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_system_decompos
29
30
  attribute :>> dataSourceDescription = "GPCA hardware assemblies, software system, and software components with their Composes hierarchy";
30
31
  attribute :>> autoPopulate = true;
31
32
  attribute :>> queryDescription = "Include hardware assemblies, the software system, and software components; the Composes topology supplies the nesting.";
32
- attribute :>> documentUsage = ("SDD", "Architecture Description");
33
33
  part :>> selectionQuery {
34
- attribute :>> id = "QRY-LOG-002";
34
+ @MemoIdentity { :>> providedId = "QRY-LOG-002"; }
35
35
  attribute :>> name = "GPCA_SystemDecompositionQuery";
36
36
  attribute :>> includeElementKinds = ("HardwareAssembly", "SoftwareSystem", "SoftwareModule");
37
37
  attribute :>> includeRelationshipKinds = ("Composes");
@@ -39,6 +39,6 @@ package memo_examples_gpca_pump_viewpoints_logical_views_logical_system_decompos
39
39
  attribute :>> selectionExpression = "product == 'GPCA'";
40
40
  attribute :>> rationaleText = "Populate the decomposition from the device structure; composition edges drive the containment nesting.";
41
41
  }
42
- part :>> viewpointDefinition = logicalArchitectureViewpoint;
42
+ ref :>> viewpointDefinition = logicalArchitectureViewpoint;
43
43
  }
44
44
  }
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_scenari
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 gpcaScenarioSequenceView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_operational_views_operational_scenario_sequence_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-BHV-002";
21
+ @MemoIdentity { :>> providedId = "VIEW-BHV-002"; }
20
22
  attribute :>> name = "GPCA_ScenarioSequenceView";
21
- attribute :>> title = "GPCA Scenario Sequence View";
22
- attribute :>> shortDescription = "Key therapy and alarm scenarios rendered as sequences over the functional chains.";
23
+ @MemoIdentity { :>> shortDescription = "Key therapy and alarm scenarios rendered as sequences over the functional chains."; }
23
24
  attribute :>> outputKind = (ViewOutputKind::diagram);
24
25
  attribute :>> presentationKind = (PresentationKind::activityDiagram);
25
26
  attribute :>> viewKind = DiagramViewKind::sequence;
@@ -27,15 +28,14 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_scenari
27
28
  attribute :>> dataSourceDescription = "GPCA system scenarios, functional chains, and chain steps";
28
29
  attribute :>> autoPopulate = true;
29
30
  attribute :>> queryDescription = "Include system scenarios with the functional chains and steps that realize them.";
30
- attribute :>> documentUsage = ("SDD", "VV");
31
31
  part :>> selectionQuery {
32
- attribute :>> id = "QRY-BHV-102";
32
+ @MemoIdentity { :>> providedId = "QRY-BHV-102"; }
33
33
  attribute :>> name = "GPCA_ScenarioSequenceQuery";
34
- attribute :>> includeElementKinds = ("MemoScenario[scenarioKind=functional]", "MemoScenario[scenarioKind=operative]", "FunctionalFlow", "FunctionalFlowStep");
34
+ attribute :>> includeElementKinds = ("OperativeScenario[scenarioKind=functional]", "OperativeScenario[scenarioKind=operative]", "FunctionalFlow", "FunctionalFlowStep");
35
35
  attribute :>> includeLayers = ("operational", "system");
36
36
  attribute :>> selectionExpression = "product == 'GPCA'";
37
37
  attribute :>> rationaleText = "Auto-populate scenario sequences from the system layer.";
38
38
  }
39
- part :>> viewpointDefinition = operationalViewpoint;
39
+ ref :>> viewpointDefinition = operationalViewpoint;
40
40
  }
41
41
  }
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_use_cas
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 gpcaUseCaseView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_operational_views_operational_use_case_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-OPS-101";
21
+ @MemoIdentity { :>> providedId = "VIEW-OPS-101"; }
20
22
  attribute :>> name = "GPCA_UseCaseView";
21
- attribute :>> title = "GPCA Use Case View";
22
- attribute :>> shortDescription = "Actors connected to the patient-controlled analgesia use case.";
23
+ @MemoIdentity { :>> shortDescription = "Actors connected to the patient-controlled analgesia use case."; }
23
24
  attribute :>> description = "Connects the nurse, patient, prescriber, and pharmacist to the patient-controlled analgesia use case.";
24
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
26
  attribute :>> presentationKind = (PresentationKind::custom);
@@ -28,9 +29,8 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_use_cas
28
29
  attribute :>> dataSourceDescription = "GPCA use case and participating context actors";
29
30
  attribute :>> autoPopulate = true;
30
31
  attribute :>> queryDescription = "Include actors, use cases, and their participation relationships.";
31
- attribute :>> documentUsage = ("Usability Engineering File", "Architecture Description");
32
32
  part :>> selectionQuery {
33
- attribute :>> id = "QRY-OPS-101";
33
+ @MemoIdentity { :>> providedId = "QRY-OPS-101"; }
34
34
  attribute :>> name = "GPCA_UseCaseQuery";
35
35
  attribute :>> includeElementKinds = ("Actor", "User", "UseCase");
36
36
  attribute :>> includeRelationshipKinds = ("ParticipatesIn");
@@ -38,6 +38,6 @@ package memo_examples_gpca_pump_viewpoints_operational_views_operational_use_cas
38
38
  attribute :>> selectionExpression = "product == 'GPCA'";
39
39
  attribute :>> rationaleText = "Auto-populate the GPCA use case view from the operational layer.";
40
40
  }
41
- part :>> viewpointDefinition = operationalViewpoint;
41
+ ref :>> viewpointDefinition = operationalViewpoint;
42
42
  }
43
43
  }
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_physical_views_physical_physical_bom_
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 gpcaPhysicalBomView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_physical_views_physical_physical_bom_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-PHY-101";
21
+ @MemoIdentity { :>> providedId = "VIEW-PHY-101"; }
20
22
  attribute :>> name = "GPCA_PhysicalBomView";
21
- attribute :>> title = "GPCA Physical Architecture and BOM View";
22
- attribute :>> shortDescription = "Hardware assemblies, processing node, physical ports, and part numbers.";
23
+ @MemoIdentity { :>> shortDescription = "Hardware assemblies, processing node, physical ports, and part numbers."; }
23
24
  attribute :>> outputKind = (ViewOutputKind::table);
24
25
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
25
26
  attribute :>> viewKind = DiagramViewKind::grid;
@@ -27,15 +28,14 @@ package memo_examples_gpca_pump_viewpoints_physical_views_physical_physical_bom_
27
28
  attribute :>> dataSourceDescription = "GPCA hardware assemblies, processing node, and physical ports";
28
29
  attribute :>> autoPopulate = true;
29
30
  attribute :>> queryDescription = "Include hardware assemblies with part numbers, the MCU node, and external ports.";
30
- attribute :>> documentUsage = ("Architecture Description", "DHF");
31
31
  part :>> selectionQuery {
32
- attribute :>> id = "QRY-PHY-101";
32
+ @MemoIdentity { :>> providedId = "QRY-PHY-101"; }
33
33
  attribute :>> name = "GPCA_PhysicalBomQuery";
34
34
  attribute :>> includeElementKinds = ("HardwareAssembly", "ProcessingNode", "PhysicalPort", "Interface");
35
35
  attribute :>> includeLayers = ("hardware_structure", "physical", "interfaces");
36
36
  attribute :>> selectionExpression = "product == 'GPCA'";
37
37
  attribute :>> rationaleText = "Auto-populate the physical BOM from the hardware and physical layers.";
38
38
  }
39
- part :>> viewpointDefinition = physicalViewpoint;
39
+ ref :>> viewpointDefinition = physicalViewpoint;
40
40
  }
41
41
  }
@@ -7,25 +7,24 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_document_dhf_index
7
7
  private import memo_viewpoints_verification_verification_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 dhfIndexView : MemoDocumentView {
11
13
  expose memo_examples_gpca_pump_viewpoints_requirements_views_document_dhf_index_view::*;
12
- attribute :>> id = "DOC-007";
14
+ @MemoIdentity { :>> providedId = "DOC-007"; }
13
15
  attribute :>> name = "DesignHistoryFileIndexView";
14
- attribute :>> title = "GPCA Design History File Index View";
15
- attribute :>> shortDescription = "Index of design inputs, outputs, reviews, and V&V records for the DHF.";
16
+ @MemoIdentity { :>> shortDescription = "Index of design inputs, outputs, reviews, and V&V records for the DHF."; }
16
17
  attribute :>> description = "Collects the document-backed views (requirements, architecture, SDD, RMF, VV, usability, cybersecurity) into the design history file index required by 21 CFR 820.30(j).";
17
18
  attribute :>> version = "0.1";
18
19
  attribute :>> lifecycleState = LifecycleStateKind::development;
19
20
  attribute :>> viewKind = DocumentViewKind::DHF;
20
21
  attribute :>> generationRule = "Index every document-backed view with version and lifecycle state";
21
22
  attribute :>> marketScope = "generic";
22
- attribute :>> documentUsage = ("DHF");
23
- attribute :>> sectionIdentifier = "DHF";
24
- part vpRequirements :> viewpointDefinition = requirementsViewpoint;
25
- part vpRisk :> viewpointDefinition = riskViewpoint;
26
- part vpVerification :> viewpointDefinition = verificationViewpoint;
23
+ ref vpRequirements :> viewpointDefinition = requirementsViewpoint;
24
+ ref vpRisk :> viewpointDefinition = riskViewpoint;
25
+ ref vpVerification :> viewpointDefinition = verificationViewpoint;
27
26
  part :>> selectionQuery {
28
- attribute :>> id = "QRY-DOC-007";
27
+ @MemoIdentity { :>> providedId = "QRY-DOC-007"; }
29
28
  attribute :>> name = "dhfIndexViewQuery";
30
29
  attribute :>> includeElementKinds = ("MemoDocumentView", "MemoDiagramView", "MemoUsabilityEngineeringView", "MemoCybersecurityThreatModelView", "MemoCybersecurityAssessmentView", "MemoEvidence", "Citation");
31
30
  attribute :>> includeRelationshipKinds = ("ProducesEvidence");
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requi
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 gpcaRequirementsTraceView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requirements_trace_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-REQ-101";
21
+ @MemoIdentity { :>> providedId = "VIEW-REQ-101"; }
20
22
  attribute :>> name = "GPCA_RequirementsTraceabilityView";
21
- attribute :>> title = "GPCA Requirements Traceability View";
22
- attribute :>> shortDescription = "Needs to system/software/hardware requirements to satisfying components and verification.";
23
+ @MemoIdentity { :>> shortDescription = "Needs to system/software/hardware requirements to satisfying components and verification."; }
23
24
  attribute :>> outputKind = (ViewOutputKind::matrix);
24
25
  attribute :>> presentationKind = (PresentationKind::traceMatrix);
25
26
  attribute :>> viewKind = DiagramViewKind::grid;
@@ -27,9 +28,8 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requi
27
28
  attribute :>> dataSourceDescription = "GPCA requirements with DerivesFrom, SatisfiedBy, and VerifiedBy links";
28
29
  attribute :>> autoPopulate = true;
29
30
  attribute :>> queryDescription = "Include all needs and requirements with derivation, satisfaction, and verification links.";
30
- attribute :>> documentUsage = ("Requirements Traceability Matrix", "DHF", "QMSR");
31
31
  part :>> selectionQuery {
32
- attribute :>> id = "QRY-REQ-101";
32
+ @MemoIdentity { :>> providedId = "QRY-REQ-101"; }
33
33
  attribute :>> name = "GPCA_RequirementsTraceQuery";
34
34
  attribute :>> includeElementKinds = ("Need", "Requirement", "VerificationCase");
35
35
  attribute :>> includeRelationshipKinds = ("DerivesFrom", "SatisfiedBy", "VerifiedBy");
@@ -37,6 +37,6 @@ package memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requi
37
37
  attribute :>> selectionExpression = "product == 'GPCA'";
38
38
  attribute :>> rationaleText = "Full derivation-to-verification traceability for design reviews.";
39
39
  }
40
- part :>> viewpointDefinition = requirementsViewpoint;
40
+ ref :>> viewpointDefinition = requirementsViewpoint;
41
41
  }
42
42
  }
@@ -6,25 +6,24 @@ package memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_v
6
6
  private import memo_core_enumerations::*;
7
7
  private import memo_examples_gpca_pump_gpca_analysis::*;
8
8
 
9
+ private import memo_core_common::*;
10
+ private import memo_core_common::MemoIdentity;
9
11
  view hazardAnalysisView : MemoDocumentView {
10
12
  expose memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_view::*;
11
13
  expose fmeaDelivery;
12
14
  expose ftaOverdose;
13
- attribute :>> id = "DOC-009";
15
+ @MemoIdentity { :>> providedId = "DOC-009"; }
14
16
  attribute :>> name = "HazardAnalysisReportView";
15
- attribute :>> title = "GPCA Hazard Analysis Report View";
16
- attribute :>> shortDescription = "Hazard analysis report aligned to the UMN CriSys GPCA hazard tables.";
17
+ @MemoIdentity { :>> shortDescription = "Hazard analysis report aligned to the UMN CriSys GPCA hazard tables."; }
17
18
  attribute :>> description = "Aggregates the five hazard chains, the FMEA worksheet, and the overdose fault tree with their controls and verification pointers.";
18
19
  attribute :>> version = "0.1";
19
20
  attribute :>> lifecycleState = LifecycleStateKind::development;
20
21
  attribute :>> viewKind = DocumentViewKind::RMF;
21
22
  attribute :>> generationRule = "Include hazards, sequences of events, situations, harms, FMEA rows, fault tree, and controls";
22
23
  attribute :>> marketScope = "generic";
23
- attribute :>> documentUsage = ("Hazard Analysis Report", "RMF");
24
- attribute :>> sectionIdentifier = "HAZ";
25
- part :>> viewpointDefinition = riskViewpoint;
24
+ ref :>> viewpointDefinition = riskViewpoint;
26
25
  part :>> selectionQuery {
27
- attribute :>> id = "QRY-DOC-003";
26
+ @MemoIdentity { :>> providedId = "QRY-DOC-003"; }
28
27
  attribute :>> name = "hazardAnalysisViewQuery";
29
28
  attribute :>> includeElementKinds = ("FMEAWorksheet", "FailureMode", "FailureCause", "FailureEffect", "DetectionMethod", "FMEAAction", "FaultTree", "FaultTreeNode", "MinimalCutSet", "Hazard", "HazardCause", "SequenceOfEvents");
30
29
  attribute :>> includeRelationshipKinds = ("HasFailureMode", "Causes", "DetectedBy", "Mitigates", "InputToGate", "ContainsEvent", "Mitigates");
@@ -6,24 +6,23 @@ package memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view {
6
6
  private import memo_core_enumerations::*;
7
7
  private import memo_examples_gpca_pump_gpca_verification::*;
8
8
 
9
+ private import memo_core_common::*;
10
+ private import memo_core_common::MemoIdentity;
9
11
  view rmfView : MemoDocumentView {
10
12
  expose memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view::*;
11
13
  expose evidenceLockout;
12
- attribute :>> id = "DOC-001";
14
+ @MemoIdentity { :>> providedId = "DOC-001"; }
13
15
  attribute :>> name = "RiskManagementFileView";
14
- attribute :>> title = "GPCA Risk Management File View";
15
- attribute :>> shortDescription = "Document-backed risk view for GPCA.";
16
+ @MemoIdentity { :>> shortDescription = "Document-backed risk view for GPCA."; }
16
17
  attribute :>> description = "Aggregates the risk chain, controls, verification, residual risk, and cybersecurity links needed for the GPCA risk management file.";
17
18
  attribute :>> version = "0.2";
18
19
  attribute :>> lifecycleState = LifecycleStateKind::development;
19
20
  attribute :>> viewKind = DocumentViewKind::RMF;
20
21
  attribute :>> generationRule = "Include risk chain, controls, verification, residual risk, and cybersecurity traceability";
21
22
  attribute :>> marketScope = "generic";
22
- attribute :>> documentUsage = ("RMF", "QMSR");
23
- attribute :>> sectionIdentifier = "RMF";
24
- part :>> viewpointDefinition = riskViewpoint;
23
+ ref :>> viewpointDefinition = riskViewpoint;
25
24
  part :>> selectionQuery {
26
- attribute :>> id = "QRY-DOC-001";
25
+ @MemoIdentity { :>> providedId = "QRY-DOC-001"; }
27
26
  attribute :>> name = "rmfViewQuery";
28
27
  attribute :>> includeElementKinds = ("IntendedUse", "ReasonablyForeseeableMisuse", "SafetyRelatedCharacteristic", "Hazard", "HazardCause", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation", "VerificationCase", "MemoEvidence");
29
28
  attribute :>> includeRelationshipKinds = ("Causes", "Mitigates", "Mitigates", "TracesRisk", "AssessedAgainst", "VerifiedBy", "ProducesEvidence");
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view {
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 gpcaFmeaView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-RISK-102";
21
+ @MemoIdentity { :>> providedId = "VIEW-RISK-102"; }
20
22
  attribute :>> name = "GPCA_FmeaView";
21
- attribute :>> title = "GPCA FMEA and Fault Tree View";
22
- attribute :>> shortDescription = "Failure modes with causes, effects, detection, RPN, and the overdose fault tree.";
23
+ @MemoIdentity { :>> shortDescription = "Failure modes with causes, effects, detection, RPN, and the overdose fault tree."; }
23
24
  attribute :>> outputKind = (ViewOutputKind::table);
24
25
  attribute :>> presentationKind = (PresentationKind::riskTable);
25
26
  attribute :>> viewKind = DiagramViewKind::grid;
@@ -27,9 +28,8 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view {
27
28
  attribute :>> dataSourceDescription = "GPCA FMEA worksheet, failure modes, fault tree events, gates, and cut sets";
28
29
  attribute :>> autoPopulate = true;
29
30
  attribute :>> queryDescription = "Include FMEA worksheet rows and the overdose fault tree structure.";
30
- attribute :>> documentUsage = ("FMEA", "RMF");
31
31
  part :>> selectionQuery {
32
- attribute :>> id = "QRY-RISK-102";
32
+ @MemoIdentity { :>> providedId = "QRY-RISK-102"; }
33
33
  attribute :>> name = "GPCA_FmeaQuery";
34
34
  attribute :>> includeElementKinds = ("FMEAWorksheet", "FailureMode", "FailureEffect", "FailureCause", "DetectionMethod", "FMEAAction", "FaultTree", "FaultTreeNode", "MinimalCutSet");
35
35
  attribute :>> includeLayers = ("analysis", "risk");
@@ -37,6 +37,6 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view {
37
37
  attribute :>> selectionExpression = "product == 'GPCA'";
38
38
  attribute :>> rationaleText = "Auto-populate the FMEA/FTA view from the analysis layer.";
39
39
  }
40
- part :>> viewpointDefinition = riskViewpoint;
40
+ ref :>> viewpointDefinition = riskViewpoint;
41
41
  }
42
42
  }
@@ -13,13 +13,14 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view {
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 gpcaRiskChainView : MemoDiagramView {
17
19
  expose memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view::*;
18
20
  attribute depth = 2;
19
- attribute :>> id = "VIEW-RISK-101";
21
+ @MemoIdentity { :>> providedId = "VIEW-RISK-101"; }
20
22
  attribute :>> name = "GPCA_RiskChainView";
21
- attribute :>> title = "GPCA Risk Mitigation Chain View";
22
- attribute :>> shortDescription = "All seven hazard causal trees from categorized cause through harm with controls and residual risk.";
23
+ @MemoIdentity { :>> shortDescription = "All seven hazard causal trees from categorized cause through harm with controls and residual risk."; }
23
24
  attribute :>> description = "Opioid over-infusion, under-infusion, air embolism, misprogramming, free-flow, reverse-delivery, and VTBI over-infusion causal trees (GIIP cause-source structure): categorized causes converging on each hazard, sequences of events, hazardous situations, harms, risk estimates, controls, and residual evaluations.";
24
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
26
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
@@ -28,9 +29,8 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view {
28
29
  attribute :>> dataSourceDescription = "GPCA risk layer and TracesRisk/MitigatesHazard links";
29
30
  attribute :>> autoPopulate = true;
30
31
  attribute :>> queryDescription = "Include hazards, sequences, situations, harms, risks before/after, controls, and residual evaluation.";
31
- attribute :>> documentUsage = ("RMF", "Hazard Analysis Report", "QMSR");
32
32
  part :>> selectionQuery {
33
- attribute :>> id = "QRY-RISK-101";
33
+ @MemoIdentity { :>> providedId = "QRY-RISK-101"; }
34
34
  attribute :>> name = "GPCA_RiskChainQuery";
35
35
  attribute :>> includeElementKinds = ("SafetyRelatedCharacteristic", "Hazard", "HazardCause", "SequenceOfEvents", "HazardousSituation", "Harm", "Risk", "RiskControlMeasure", "ResidualRisk", "Benefit", "OverallResidualRiskEvaluation");
36
36
  attribute :>> includeRelationshipKinds = ("TracesRisk", "Mitigates", "Causes", "Mitigates");
@@ -39,6 +39,6 @@ package memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view {
39
39
  attribute :>> selectionExpression = "product == 'GPCA'";
40
40
  attribute :>> rationaleText = "Auto-populate the risk chain diagram from the risk layer.";
41
41
  }
42
- part :>> viewpointDefinition = riskViewpoint;
42
+ ref :>> viewpointDefinition = riskViewpoint;
43
43
  }
44
44
  }
@@ -5,23 +5,22 @@ package memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view {
5
5
  private import memo_viewpoints_software_software_viewpoint::*;
6
6
  private import memo_core_enumerations::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view sddView : MemoDocumentView {
9
11
  expose memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view::*;
10
- attribute :>> id = "DOC-004";
12
+ @MemoIdentity { :>> providedId = "DOC-004"; }
11
13
  attribute :>> name = "SoftwareDesignDescriptionView";
12
- attribute :>> title = "GPCA Software Design Description View";
13
- attribute :>> shortDescription = "IEC 62304 software design description for the GPCA software system.";
14
+ @MemoIdentity { :>> shortDescription = "IEC 62304 software design description for the GPCA software system."; }
14
15
  attribute :>> description = "Aggregates the software system, its six components with safety classes and scheduling attributes, mode machine and transitions, interfaces, and function allocations for the SDD.";
15
16
  attribute :>> version = "0.1";
16
17
  attribute :>> lifecycleState = LifecycleStateKind::development;
17
18
  attribute :>> viewKind = DocumentViewKind::SDD;
18
19
  attribute :>> generationRule = "Include software structure, behavior machine with transitions, software interfaces, allocations, and timing constraints";
19
20
  attribute :>> marketScope = "generic";
20
- attribute :>> documentUsage = ("SDD", "QMSR");
21
- attribute :>> sectionIdentifier = "SDD";
22
- part :>> viewpointDefinition = softwareViewpoint;
21
+ ref :>> viewpointDefinition = softwareViewpoint;
23
22
  part :>> selectionQuery {
24
- attribute :>> id = "QRY-DOC-004";
23
+ @MemoIdentity { :>> providedId = "QRY-DOC-004"; }
25
24
  attribute :>> name = "sddViewQuery";
26
25
  attribute :>> includeElementKinds = ("SoftwareSystem", "SoftwareModule", "MemoState[stateKind=mode]", "Transition", "Interface", "SystemFunction", "TimingConstraint", "SoftwareModule[moduleKind=soup]");
27
26
  attribute :>> includeRelationshipKinds = ("Composes", "AllocatedTo", "BindsToInterface", "Realizes", "DependsOnSoup", "Changes");