@memoarchitect/ontology 0.6.5 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/README.md +1 -1
  2. package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
  3. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  4. package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
  5. package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
  6. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  7. package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
  8. package/examples/extensions/clinical/memo.package.yaml +18 -9
  9. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +10 -2
  10. package/examples/extensions/template/memo.package.yaml +17 -9
  11. package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
  12. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  13. package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  15. package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
  16. package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
  17. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
  18. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +1 -1
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +2 -2
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +1 -1
  21. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +5 -5
  22. package/examples/gpca-pump/model/catalog/gpca_context.sysml +3 -8
  23. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
  24. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
  25. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +7 -6
  26. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +19 -8
  27. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +2 -2
  28. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1 -1
  29. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +34 -30
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +27 -23
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +1 -1
  33. package/examples/gpca-pump/model/catalog/project.sysml +21 -0
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
  35. package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +3 -3
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
  37. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +3 -3
  38. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
  39. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +4 -4
  40. package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  41. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
  42. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
  44. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
  45. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +7 -7
  46. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +3 -3
  47. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
  48. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +3 -3
  49. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
  50. package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
  51. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +2 -2
  52. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +3 -3
  53. package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
  54. package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
  55. package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  56. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +6 -6
  57. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
  58. package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  59. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +3 -3
  60. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +3 -3
  61. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +2 -2
  62. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
  63. package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
  64. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +3 -3
  65. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +3 -3
  66. package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
  67. package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +4 -4
  68. package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
  69. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +3 -3
  70. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +2 -2
  71. package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
  72. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  73. package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
  74. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +1 -0
  75. package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
  76. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  77. package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
  78. package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
  79. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  80. package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
  81. package/examples/nested-architecture-dsm/README.md +49 -0
  82. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +174 -0
  83. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +183 -0
  84. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
  85. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
  86. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +90 -0
  87. package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
  88. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +49 -0
  89. package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
  90. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -6
  91. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  92. package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
  93. package/examples/software-only-medical-device/model/catalog/project.sysml +24 -0
  94. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  95. package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
  96. package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
  97. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -19
  98. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  99. package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
  100. package/examples/surgical-robot/model/catalog/project.sysml +24 -0
  101. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +5 -3
  102. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  103. package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
  104. package/examples/sysml-diagram-samples/README.md +7 -0
  105. package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
  106. package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
  107. package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
  108. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  109. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +18 -10
  110. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +4 -2
  111. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
  112. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/functional_flow_view.sysml +23 -20
  113. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/interconnection_view.sysml +17 -14
  114. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
  115. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/operational_behaviour_view.sysml +23 -20
  116. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
  117. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +3 -1
  118. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +51 -0
  119. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/state_transition_view.sysml +3 -1
  120. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/tree_view.sysml +3 -1
  121. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +3 -1
  122. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
  123. package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
  124. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +2 -1
  125. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  126. package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
  127. package/examples/ui-screen-regions/README.md +117 -0
  128. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +60 -0
  129. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +189 -0
  130. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
  131. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
  132. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
  133. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
  134. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
  135. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
  136. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
  137. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
  138. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
  139. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
  140. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
  141. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +60 -0
  142. package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
  143. package/examples/ui-screen-regions/model/catalog/traces.sysml +276 -0
  144. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  145. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
  146. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  147. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
  148. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  149. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
  150. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
  151. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
  152. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
  153. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
  154. package/memo.manifest.yaml +2 -0
  155. package/methodologies/default/memo.package.yaml +19 -9
  156. package/methodologies/gpca/memo.package.yaml +18 -9
  157. package/ontology/memo.package.yaml +23 -8
  158. package/package.json +2 -4
  159. package/profile/memo.package.yaml +18 -9
  160. package/src/architecture/decisions/memo_decisions.sysml +7 -0
  161. package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
  162. package/src/architecture/functional/functions/memo_functions.sysml +5 -12
  163. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +1 -3
  164. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +18 -5
  165. package/src/architecture/implementation/ui/memo_ui.sysml +210 -27
  166. package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -2
  167. package/src/architecture/logical/structure/memo_logical_structure.sysml +71 -15
  168. package/src/architecture/operational/activities/memo_activities.sysml +0 -1
  169. package/src/architecture/operational/scenarios/memo_scenarios.sysml +2 -2
  170. package/src/architecture/operational/workflows/memo_workflows.sysml +0 -6
  171. package/src/{compliance/change/memo_change.sysml → artifacts/configuration_management/memo_configuration_management.sysml} +5 -3
  172. package/src/artifacts/core/memo_controlled_artifacts.sysml +33 -0
  173. package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
  174. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +1 -1
  175. package/src/assurance/human_factors/memo_human_factors.sysml +1 -1
  176. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +11 -0
  177. package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
  178. package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
  179. package/src/core/annotations/memo_annotations.sysml +77 -0
  180. package/src/core/common/memo_common.sysml +20 -3
  181. package/src/core/consistency_rules/consistency_rules.sysml +7 -0
  182. package/src/core/dimensions/dimensions.sysml +5 -1
  183. package/src/core/enumerations/memo_enumerations.sysml +41 -6
  184. package/src/core/methodology_scope/methodology_scope.sysml +7 -15
  185. package/src/core/relationships/memo_relationships.sysml +4 -2
  186. package/src/memo_namespaces.sysml +97 -67
  187. package/src/methodology/core/memo_core.sysml +45 -2
  188. package/src/methodology/profiles/memo_profiles.sysml +30 -40
  189. package/src/methodology/workflow/memo_workflow.sysml +7 -2
  190. package/src/rules/closure/closure_rules.sysml +104 -31
  191. package/src/rules/coverage/coverage_rules.sysml +4 -256
  192. package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
  193. package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
  194. package/src/rules/ontology/ontology_invariants.sysml +30 -73
  195. package/src/rules/quantitative/quantitative_rules.sysml +8 -8
  196. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +7 -0
  197. package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -1
  198. package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
  199. package/src/viewpoints/context/context_viewpoint.sysml +3 -1
  200. package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
  201. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -1
  202. package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
  203. package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
  204. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +4 -0
  205. package/src/viewpoints/functional/functional_viewpoint.sysml +3 -1
  206. package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +2 -2
  207. package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +2 -2
  208. package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
  209. package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
  210. package/src/viewpoints/operational/operational_viewpoint.sysml +3 -1
  211. package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +2 -2
  212. package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
  213. package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
  214. package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
  215. package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
  216. package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
  217. package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
  218. package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
  219. package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
  220. package/src/viewpoints/software/software_viewpoint.sysml +3 -1
  221. package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
  222. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
  223. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
  224. package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
  225. package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
  226. package/src/viewpoints/verification/verification_viewpoint.sysml +3 -1
  227. package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +2 -2
  228. package/templates/connected-device/memo.package.yaml +11 -5
  229. package/templates/connected-device/model/catalog/project.sysml +28 -0
  230. package/templates/connected-device/syside.toml +1 -1
  231. package/templates/default/memo.package.yaml +11 -5
  232. package/templates/default/model/catalog/project.sysml +28 -0
  233. package/templates/default/syside.toml +1 -1
  234. package/templates/infusion-pump/memo.package.yaml +11 -5
  235. package/templates/infusion-pump/model/catalog/project.sysml +28 -0
  236. package/templates/infusion-pump/syside.toml +1 -1
  237. package/templates/monitoring-device/memo.package.yaml +11 -5
  238. package/templates/monitoring-device/model/catalog/project.sysml +28 -0
  239. package/templates/monitoring-device/syside.toml +1 -1
  240. package/templates/samd/memo.package.yaml +11 -5
  241. package/templates/samd/model/catalog/project.sysml +28 -0
  242. package/templates/samd/syside.toml +1 -1
  243. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
  244. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
  245. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
  246. package/examples/gpca-pump/memo.config.yaml +0 -9
  247. package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
  248. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
  249. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
  250. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
  251. package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
  252. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
  253. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
  254. package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
  255. package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
  256. package/ontology/memo.rendering.yaml +0 -84
  257. package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
  258. package/src/compliance/document_views/memo_document_views.sysml +0 -7
  259. package/src/compliance/iso14971/risk_management_file.sysml +0 -16
  260. package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
  261. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
  262. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +0 -0
  263. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +0 -0
  264. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +0 -0
  265. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +0 -0
  266. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +0 -0
  267. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +0 -0
  268. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +0 -0
  269. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +0 -0
  270. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +0 -0
  271. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +0 -0
  272. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +0 -0
  273. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +0 -0
  274. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +0 -0
  275. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +0 -0
  276. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +0 -0
  277. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
  278. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +0 -0
  279. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +0 -0
  280. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +0 -0
  281. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +0 -0
  282. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +0 -0
  283. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +0 -0
  284. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/srs.md +0 -0
  285. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +0 -0
  286. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +0 -0
  287. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
  288. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +0 -0
  289. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/task-analysis.md +0 -0
  290. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +0 -0
  291. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
  292. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +0 -0
  293. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
  294. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fmea.md +0 -0
  295. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
  296. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +0 -0
  297. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
  298. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
  299. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +0 -0
  300. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
  301. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
  302. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
  303. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
  304. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
  305. /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
  306. /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  307. /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  308. /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
  309. /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  310. /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
  311. /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
  312. /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  313. /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
  314. /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
  315. /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  316. /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  317. /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
  318. /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  319. /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
1
+ package memo_examples_gpca_pump_gpca_formal_behavior {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_functional_behavior::*;
@@ -42,7 +42,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
42
42
  attribute :>> propertyKind = BehaviorPropertyKind::assumption;
43
43
  attribute :>> id = "AP-002";
44
44
  attribute :>> name = "VtbiHighPositive";
45
- attribute :>> propertyKind = BehaviorPropertyKind::assumption;
46
45
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
47
46
  attribute :>> formalExpression = "assume DB_IN.VTBI_High > 0";
48
47
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
@@ -51,7 +50,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
51
50
  attribute :>> propertyKind = BehaviorPropertyKind::assumption;
52
51
  attribute :>> id = "AP-003";
53
52
  attribute :>> name = "EmptyReservoirConstPositive";
54
- attribute :>> propertyKind = BehaviorPropertyKind::assumption;
55
53
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
56
54
  attribute :>> formalExpression = "assume CONST_IN.Empty_Reservoir > 0";
57
55
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
@@ -60,7 +58,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
60
58
  attribute :>> propertyKind = BehaviorPropertyKind::assumption;
61
59
  attribute :>> id = "AP-001";
62
60
  attribute :>> name = "ValidPrescriptionSavedBeforeTherapy";
63
- attribute :>> propertyKind = BehaviorPropertyKind::assumption;
64
61
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
65
62
  attribute :>> formalExpression = "assume a saved prescription is available before infusion initiation";
66
63
  attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.3.1 (REQ 7)";
@@ -71,7 +68,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
71
68
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
72
69
  attribute :>> id = "GP-001";
73
70
  attribute :>> name = "ModeRange";
74
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
75
71
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
76
72
  attribute :>> formalExpression = "guarantee mode_range: GPCA_SW_OUT.Current_System_Mode in {0, 1, 2, 3, 4, 6, 7, 8} (source enumeration omits 5)";
77
73
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 1)";
@@ -80,7 +76,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
80
76
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
81
77
  attribute :>> id = "GP-004";
82
78
  attribute :>> name = "NotStartImpliesModeZero";
83
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
84
79
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
85
80
  attribute :>> formalExpression = "guarantee not(OP_CMD_IN.System_Start) => GPCA_SW_OUT.Current_System_Mode = 0";
86
81
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
@@ -89,7 +84,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
89
84
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
90
85
  attribute :>> id = "GP-005";
91
86
  attribute :>> name = "InitialSystemStartImpliesModeOne";
92
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
93
87
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
94
88
  attribute :>> formalExpression = "guarantee sys_initial and OP_CMD_IN.System_Start => GPCA_SW_OUT.Current_System_Mode = 1";
95
89
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 4 allocation: TLM System_Start -> System_On; IM System_On -> mode 1)";
@@ -98,7 +92,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
98
92
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
99
93
  attribute :>> id = "GP-006";
100
94
  attribute :>> name = "OffToOnImpliesModeOne";
101
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
102
95
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
103
96
  attribute :>> formalExpression = "guarantee not(sys_initial) and pre(GPCA_SW_OUT.Current_System_Mode) = 0 and OP_CMD_IN.System_Start => GPCA_SW_OUT.Current_System_Mode = 1";
104
97
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 4)";
@@ -107,7 +100,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
107
100
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
108
101
  attribute :>> id = "GP-007";
109
102
  attribute :>> name = "EmptyReservoirImpliesNoFlow";
110
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
111
103
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
112
104
  attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and pre(Current_System_Mode) > 1 and GPCA_SW_OUT.Reservoir_Volume < CONST_IN.Empty_Reservoir) => GPCA_SW_OUT.Commanded_Flow_Rate = 0";
113
105
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 59 'Empty Reservoir')";
@@ -116,7 +108,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
116
108
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
117
109
  attribute :>> id = "GP-008";
118
110
  attribute :>> name = "OverVtbiImpliesFlowAtMostKvo";
119
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
120
111
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
121
112
  attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and pre(Current_System_Mode) > 1 and GPCA_SW_OUT.Volume_Infused > DB_IN.VTBI_High) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
122
113
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (over-infusion => keep-vein-open, not zero)";
@@ -125,7 +116,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
125
116
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
126
117
  attribute :>> id = "GP-009";
127
118
  attribute :>> name = "AirInLineImpliesFlowAtMostKvo";
128
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
129
119
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
130
120
  attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Air_In_Line) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
131
121
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex (REQ 21 'Air embolism')";
@@ -134,7 +124,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
134
124
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
135
125
  attribute :>> id = "GP-010";
136
126
  attribute :>> name = "OcclusionImpliesFlowAtMostKvo";
137
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
138
127
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
139
128
  attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Occlusion) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
140
129
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
@@ -143,7 +132,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
143
132
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
144
133
  attribute :>> id = "GP-011";
145
134
  attribute :>> name = "DoorOpenImpliesFlowAtMostKvo";
146
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
147
135
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
148
136
  attribute :>> formalExpression = "guarantee (OP_CMD_IN.System_Start and SENSOR_IN.Door_Open) => GPCA_SW_OUT.Commanded_Flow_Rate <= GPCA_SW_OUT.Flow_Rate_KVO";
149
137
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl AGREE annex";
@@ -152,7 +140,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
152
140
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
153
141
  attribute :>> id = "GP-003";
154
142
  attribute :>> name = "SameStepAlarmKvoGuarantee";
155
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
156
143
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
157
144
  attribute :>> formalExpression = "guarantee an infusion-inhibiting notification in a step implies Commanded_Flow_Rate <= Flow_Rate_KVO in the same step (ALARM_OUT -> IM.ALARM_IN is an immediate connection)";
158
145
  attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, GPCA_SW.aadl (ALARM_to_IM immediate) with the flow <= KVO guarantees above";
@@ -161,7 +148,6 @@ package memo_examples_gpca_pump_model_catalog_gpca_formal_behavior {
161
148
  attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
162
149
  attribute :>> id = "GP-002";
163
150
  attribute :>> name = "LockoutGuarantee";
164
- attribute :>> propertyKind = BehaviorPropertyKind::guarantee;
165
151
  attribute :>> languageKind = PropertyLanguageKind::agreeLike;
166
152
  attribute :>> formalExpression = "guarantee a BolusRequest_prog inside the LockOutPeriod_pbolus_prog window is ignored and no PATIENT BOLUS is initiated";
167
153
  attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.6.1 (REQ 25.3, REQ 26)";
@@ -1,11 +1,12 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
1
+ package memo_examples_gpca_pump_gpca_interfaces {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_logical_interfaces::*;
5
5
  private import memo_architecture_realization_physical::*;
6
6
  private import memo_architecture_functional_functions::*;
7
- private import memo_examples_gpca_pump_model_catalog_gpca_architecture::*;
8
- private import memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems::*;
7
+ private import memo_core_common::*;
8
+ private import memo_examples_gpca_pump_gpca_architecture::*;
9
+ private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
9
10
  private import memo_core_enumerations::*;
10
11
  private import memo_core_dimensions::*;
11
12
  abstract interface def SensorDataInterface :> DataInterface {
@@ -13,7 +14,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
13
14
  attribute :>> protocolSemantics = "flow, air, occlusion, door, battery, cpu, memory, pump state";
14
15
  }
15
16
  port def SensorInputPort :> SensorPort {
16
- attribute :>> direction = DirectionKind::input;
17
+ in item sensorData : MemoExchangeItem;
17
18
  attribute :>> interfaceType = "SensorDataInterface";
18
19
  attribute :>> sensorDomain = "physiological and device state";
19
20
  }
@@ -54,7 +55,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
54
55
  attribute :>> name = "HW_SW_DataBus";
55
56
  attribute :>> interfaceKind = InterfaceKind::digitalSignal;
56
57
  attribute :>> protocol = "immediate data port mapping";
57
- attribute :>> directionality = DirectionKind::bidirectional;
58
+ attribute :>> directionality = DirectionKind::inputOutput;
58
59
  attribute :>> bandwidth = "implementation-defined";
59
60
  attribute :>> timingConstraint = "same execution step where required";
60
61
  attribute :>> electricalStandard = "logical/AADL";
@@ -150,7 +151,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
150
151
  attribute :>> id = "SI-005";
151
152
  attribute :>> name = "HospitalPharmacyDatabaseInterface";
152
153
  attribute :>> interfaceKind = InterfaceKind::data;
153
- attribute :>> direction = DirectionKind::bidirectional;
154
+ attribute :>> direction = DirectionKind::inputOutput;
154
155
  attribute :>> protocol = "CriSys I 9, I 10, I 11";
155
156
  attribute :>> protocolSemantics = "Retrieves the safe-value set (concentration, VTBI, flow rate, bolus interval/count, KVO rate) where DrugName_hd = DrugName_prog; resets to defaults when no record matches";
156
157
  attribute :>> interactionPattern = "query/response safe-value lookup";
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_operational {
1
+ package memo_examples_gpca_pump_gpca_operational {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_operational_structure::*;
@@ -7,7 +7,8 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
7
7
  private import memo_architecture_operational_use_cases::*;
8
8
  private import memo_architecture_operational_workflows::*;
9
9
  private import memo_core_enumerations::*;
10
- private import memo_examples_gpca_pump_model_catalog_gpca_context::*;
10
+ private import memo_examples_gpca_pump_gpca_context::*;
11
+ private import memo_core_relationships::*;
11
12
 
12
13
  // ── Operational entities beyond the human actors ────────────
13
14
  part entityPharmacy : OperationalEntity {
@@ -234,7 +235,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
234
235
  }
235
236
 
236
237
  // ── Operational scenarios ───────────────────────────────────
237
- part osNominalTherapy : OperativeScenario {
238
+ action osNominalTherapy : OperativeScenario {
238
239
  attribute :>> id = "OS-001";
239
240
  attribute :>> name = "NominalTherapySession";
240
241
  attribute :>> variantKind = ScenarioVariantKind::nominal;
@@ -247,10 +248,11 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
247
248
  ref :>> parentUseCase = ucDeliverPcaTherapy;
248
249
  ref :>> activities = oaCompleteNominalTherapy;
249
250
  }
250
- part osLockoutBolus : OperativeScenario {
251
+ action osLockoutBolus : OperativeScenario {
251
252
  attribute :>> id = "OS-002";
252
253
  attribute :>> name = "BolusRequestDuringLockout";
253
254
  attribute :>> variantKind = ScenarioVariantKind::alternate;
255
+ attribute :>> variationPoint = "patient bolus request during the nominal therapy lockout interval";
254
256
  attribute :>> operationalCondition = OperationalConditionKind::foreseeableMisuse;
255
257
  attribute :>> preCondition = "basal infusion active; lockout interval running";
256
258
  attribute :>> postCondition = "request ignored, logged; basal continues unchanged";
@@ -258,12 +260,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
258
260
  attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.9 PATIENT BOLUS mode (lockout requirements)";
259
261
  ref :>> parentWorkflow = wfManageActiveTherapy;
260
262
  ref :>> parentUseCase = ucDeliverPcaTherapy;
263
+ ref :>> baseScenario = osNominalTherapy;
261
264
  ref :>> activities = oaRejectBolusDuringLockout;
262
265
  }
263
- part osOcclusionAlarm : OperativeScenario {
266
+ action osOcclusionAlarm : OperativeScenario {
264
267
  attribute :>> id = "OS-003";
265
268
  attribute :>> name = "OcclusionDetectedDuringInfusion";
266
269
  attribute :>> variantKind = ScenarioVariantKind::exception;
270
+ attribute :>> variationPoint = "occlusion detected while nominal infusion is active";
267
271
  attribute :>> operationalCondition = OperationalConditionKind::degraded;
268
272
  attribute :>> preCondition = "therapy active; downstream line becomes blocked";
269
273
  attribute :>> postCondition = "infusion paused, alarm annunciated, clinician clears occlusion and resumes";
@@ -271,12 +275,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
271
275
  attribute :>> sourceReference = "CITE-004: GIP Hazard Analysis v1.0 (2009), §2.2 Alarms and Alerts (occlusion)";
272
276
  ref :>> parentWorkflow = wfRespondToTherapyAlarm;
273
277
  ref :>> parentUseCase = ucDeliverPcaTherapy;
278
+ ref :>> baseScenario = osNominalTherapy;
274
279
  ref :>> activities = oaRespondToOcclusion;
275
280
  }
276
- part osAirInLine : OperativeScenario {
281
+ action osAirInLine : OperativeScenario {
277
282
  attribute :>> id = "OS-004";
278
283
  attribute :>> name = "AirInLineDetected";
279
284
  attribute :>> variantKind = ScenarioVariantKind::exception;
285
+ attribute :>> variationPoint = "air-in-line detected while nominal infusion is active";
280
286
  attribute :>> operationalCondition = OperationalConditionKind::degraded;
281
287
  attribute :>> preCondition = "therapy active; air bubble enters tubing";
282
288
  attribute :>> postCondition = "infusion stopped before air reaches patient; alarm annunciated";
@@ -284,12 +290,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
284
290
  attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 Notification Requirements (REQ 59: Air embolism)";
285
291
  ref :>> parentWorkflow = wfRespondToTherapyAlarm;
286
292
  ref :>> parentUseCase = ucDeliverPcaTherapy;
293
+ ref :>> baseScenario = osNominalTherapy;
287
294
  ref :>> activities = oaRespondToAirInLine;
288
295
  }
289
- part osEmptyReservoir : OperativeScenario {
296
+ action osEmptyReservoir : OperativeScenario {
290
297
  attribute :>> id = "OS-005";
291
298
  attribute :>> name = "ReservoirEmptyDuringTherapy";
292
299
  attribute :>> variantKind = ScenarioVariantKind::exception;
300
+ attribute :>> variationPoint = "reservoir-empty threshold reached during nominal therapy";
293
301
  attribute :>> operationalCondition = OperationalConditionKind::degraded;
294
302
  attribute :>> preCondition = "therapy active; reservoir volume reaches empty threshold";
295
303
  attribute :>> postCondition = "infusion stopped, alarm raised, reservoir replaced";
@@ -297,12 +305,14 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
297
305
  attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 Notification Requirements (REQ 59: Empty Reservoir)";
298
306
  ref :>> parentWorkflow = wfRespondToTherapyAlarm;
299
307
  ref :>> parentUseCase = ucDeliverPcaTherapy;
308
+ ref :>> baseScenario = osNominalTherapy;
300
309
  ref :>> activities = oaReplaceEmptyReservoir;
301
310
  }
302
- part osPowerLoss : OperativeScenario {
311
+ action osPowerLoss : OperativeScenario {
303
312
  attribute :>> id = "OS-006";
304
313
  attribute :>> name = "MainsPowerLossAndRecovery";
305
314
  attribute :>> variantKind = ScenarioVariantKind::recovery;
315
+ attribute :>> variationPoint = "mains supply lost during nominal therapy";
306
316
  attribute :>> operationalCondition = OperationalConditionKind::degraded;
307
317
  attribute :>> preCondition = "therapy active on mains power";
308
318
  attribute :>> postCondition = "therapy continues on battery; prescription preserved across full power loss";
@@ -310,6 +320,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
310
320
  attribute :>> sourceReference = "CITE-004: GIP Hazard Analysis v1.0 (2009), §2.4.3 Electrical Hazards (battery failure)";
311
321
  ref :>> parentWorkflow = wfRespondToTherapyAlarm;
312
322
  ref :>> parentUseCase = ucDeliverPcaTherapy;
323
+ ref :>> baseScenario = osNominalTherapy;
313
324
  ref :>> activities = oaRecoverAfterPowerLoss;
314
325
  }
315
326
  connection : Realizes connect realizing ::> osNominalTherapy to realized ::> ucDeliverPcaTherapy;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_physical {
1
+ package memo_examples_gpca_pump_gpca_physical {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_realization_physical::*;
@@ -41,7 +41,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_physical {
41
41
  attribute :>> name = "ServiceMaintenancePort";
42
42
  attribute :>> portKind = InterfaceKind::api;
43
43
  attribute :>> connectorType = "covered UART/USB service connector";
44
- attribute :>> direction = DirectionKind::bidirectional;
44
+ attribute :>> direction = DirectionKind::inputOutput;
45
45
  }
46
46
  part portMainsInlet : PhysicalPort {
47
47
  attribute :>> id = "PP-005";
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_requirements {
1
+ package memo_examples_gpca_pump_gpca_requirements {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_assurance_requirements::*;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_risk {
1
+ package memo_examples_gpca_pump_gpca_risk {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_assurance_safety_risk::*;
@@ -1,10 +1,13 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_system {
1
+ package memo_examples_gpca_pump_gpca_system {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_functional_functions::*;
5
- private import memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems::*;
5
+ private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
6
6
  private import memo_architecture_operational_scenarios::*;
7
7
  private import memo_core_enumerations::*;
8
+ private import memo_architecture_operational_structure::*;
9
+ private import memo_architecture_operational_use_cases::*;
10
+ private import memo_core_common::*;
8
11
 
9
12
  part gpcaMission : Mission {
10
13
  attribute :>> id = "MSN-001";
@@ -21,68 +24,69 @@ package memo_examples_gpca_pump_model_catalog_gpca_system {
21
24
  attribute :>> id = "FC-001";
22
25
  attribute :>> name = "PatientBolusChain";
23
26
  attribute :>> flowCategory = FunctionalFlowKind::nominal;
24
- ref :>> startFunction = fnAcquireSensors;
25
- ref :>> endFunction = fnCommandPump;
26
27
  attribute :>> endToEndLatencyBudgetMs = "100";
27
28
  attribute :>> safetyRelevant = true;
28
29
  attribute :>> securityRelevant = false;
29
30
  attribute :>> description = "Bolus button press through lockout/max-dose check to pump actuation and logging.";
30
31
  }
31
- part fcsBolusSense : FunctionalFlowStep {
32
+ action fcsBolusSense : FunctionalFlowStep {
32
33
  attribute :>> id = "FCS-001"; attribute :>> name = "SenseBolusRequest";
33
- attribute :>> stepOrder = "1"; ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddBolusRequest;
34
+ ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddBolusRequest;
34
35
  }
35
- part fcsBolusValidate : FunctionalFlowStep {
36
+ action fcsBolusValidate : FunctionalFlowStep {
36
37
  attribute :>> id = "FCS-002"; attribute :>> name = "CheckLockoutAndMaxDose";
37
- attribute :>> stepOrder = "2"; ref :>> function = fnEnforceLimits; ref :>> exchangedItem = ddPrescription;
38
+ ref :>> function = fnEnforceLimits; ref :>> exchangedItem = ddPrescription;
38
39
  }
39
- part fcsBolusCommand : FunctionalFlowStep {
40
+ action fcsBolusCommand : FunctionalFlowStep {
40
41
  attribute :>> id = "FCS-003"; attribute :>> name = "CommandBolusFlow";
41
- attribute :>> stepOrder = "3"; ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdFlowCommand;
42
+ ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdFlowCommand;
42
43
  }
43
- part fcsBolusActuate : FunctionalFlowStep {
44
+ action fcsBolusActuate : FunctionalFlowStep {
44
45
  attribute :>> id = "FCS-004"; attribute :>> name = "ActuatePumpMotor";
45
- attribute :>> stepOrder = "4"; ref :>> function = fnCommandPump; ref :>> exchangedItem = cdFlowCommand;
46
+ ref :>> function = fnCommandPump; ref :>> exchangedItem = cdFlowCommand;
46
47
  }
47
- part fcsBolusLog : FunctionalFlowStep {
48
+ action fcsBolusLog : FunctionalFlowStep {
48
49
  attribute :>> id = "FCS-005"; attribute :>> name = "LogBolusOutcome";
49
- attribute :>> stepOrder = "5"; ref :>> function = fnLogEvents; ref :>> exchangedItem = ddEventRecord;
50
+ ref :>> function = fnLogEvents; ref :>> exchangedItem = ddEventRecord;
50
51
  }
52
+ first fcsBolusSense then fcsBolusValidate;
53
+ first fcsBolusValidate then fcsBolusCommand;
54
+ first fcsBolusCommand then fcsBolusActuate;
55
+ first fcsBolusActuate then fcsBolusLog;
51
56
 
52
57
  part fcAlarmStop : FunctionalFlow {
53
58
  attribute :>> id = "FC-002";
54
59
  attribute :>> name = "AlarmDetectionToSafeStateChain";
55
60
  attribute :>> flowCategory = FunctionalFlowKind::alarm;
56
- ref :>> startFunction = fnAcquireSensors;
57
- ref :>> endFunction = fnAnnunciate;
58
61
  attribute :>> endToEndLatencyBudgetMs = "20";
59
62
  attribute :>> safetyRelevant = true;
60
63
  attribute :>> securityRelevant = false;
61
64
  attribute :>> description = "Sensor condition through alarm evaluation to same-step transition to PAUSED (KVO flow, REQ 43) and annunciation.";
62
65
  }
63
- part fcsAlarmSense : FunctionalFlowStep {
66
+ action fcsAlarmSense : FunctionalFlowStep {
64
67
  attribute :>> id = "FCS-006"; attribute :>> name = "SenseAlarmCondition";
65
- attribute :>> stepOrder = "1"; ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddSensorVector;
68
+ ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddSensorVector;
66
69
  }
67
- part fcsAlarmEvaluate : FunctionalFlowStep {
70
+ action fcsAlarmEvaluate : FunctionalFlowStep {
68
71
  attribute :>> id = "FCS-007"; attribute :>> name = "EvaluateAlarmCondition";
69
- attribute :>> stepOrder = "2"; ref :>> function = fnMonitorAlarm; ref :>> exchangedItem = ddSensorVector;
72
+ ref :>> function = fnMonitorAlarm; ref :>> exchangedItem = ddSensorVector;
70
73
  }
71
- part fcsAlarmStopInfusion : FunctionalFlowStep {
74
+ action fcsAlarmStopInfusion : FunctionalFlowStep {
72
75
  attribute :>> id = "FCS-008"; attribute :>> name = "LimitFlowToKvoSameStep";
73
- attribute :>> stepOrder = "3"; ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdAlarmSignal;
76
+ ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdAlarmSignal;
74
77
  }
75
- part fcsAlarmAnnunciate : FunctionalFlowStep {
78
+ action fcsAlarmAnnunciate : FunctionalFlowStep {
76
79
  attribute :>> id = "FCS-009"; attribute :>> name = "AnnunciateAudibleVisual";
77
- attribute :>> stepOrder = "4"; ref :>> function = fnAnnunciate; ref :>> exchangedItem = cdAlarmSignal;
80
+ ref :>> function = fnAnnunciate; ref :>> exchangedItem = cdAlarmSignal;
78
81
  }
82
+ first fcsAlarmSense then fcsAlarmEvaluate;
83
+ first fcsAlarmEvaluate then fcsAlarmStopInfusion;
84
+ first fcsAlarmStopInfusion then fcsAlarmAnnunciate;
79
85
 
80
86
  part fcStartup : FunctionalFlow {
81
87
  attribute :>> id = "FC-003";
82
88
  attribute :>> name = "PowerOnSelfTestChain";
83
89
  attribute :>> flowCategory = FunctionalFlowKind::startup;
84
- ref :>> startFunction = fnManagePower;
85
- ref :>> endFunction = fnPresentStatus;
86
90
  attribute :>> endToEndLatencyBudgetMs = "5000";
87
91
  attribute :>> safetyRelevant = true;
88
92
  attribute :>> securityRelevant = false;
@@ -90,22 +94,22 @@ package memo_examples_gpca_pump_model_catalog_gpca_system {
90
94
  }
91
95
 
92
96
  // ── System scenarios ────────────────────────────────────────
93
- part ssBolusDuringBasal : FunctionalScenario {
97
+ action ssBolusDuringBasal : FunctionalScenario {
94
98
  attribute :>> id = "SS-001";
95
99
  attribute :>> name = "PatientBolusDuringBasal";
96
100
  attribute :>> variantKind = ScenarioVariantKind::nominal;
97
101
  attribute :>> operationalCondition = OperationalConditionKind::normal;
98
- attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
99
102
  attribute :>> preCondition = "BASAL mode active; no REQ 25 ignore condition holds";
100
103
  attribute :>> postCondition = "PATIENT_BOLUS mode entered, bolus delivered, return to BASAL";
101
104
  }
102
- part ssAlarmPause : FunctionalScenario {
105
+ action ssAlarmPause : FunctionalScenario {
103
106
  attribute :>> id = "SS-002";
104
107
  attribute :>> name = "InhibitingNotificationPausesInfusion";
105
108
  attribute :>> variantKind = ScenarioVariantKind::exception;
109
+ attribute :>> variationPoint = "an infusion-inhibiting notification interrupts active therapy";
106
110
  attribute :>> operationalCondition = OperationalConditionKind::degraded;
107
- attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
108
111
  attribute :>> preCondition = "any ACTIVE therapy mode; infusion-inhibiting notification detected (REQ 59)";
109
112
  attribute :>> postCondition = "PAUSED mode entered in same execution step at FlowRate_kvo_hd keep-vein-open flow; notification annunciated per REQ 59";
113
+ ref :>> baseScenario = ssBolusDuringBasal;
110
114
  }
111
115
  }
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_trace {
1
+ package memo_examples_gpca_pump_gpca_trace {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_core_relationships::*;
@@ -7,28 +7,32 @@ package memo_examples_gpca_pump_model_catalog_gpca_trace {
7
7
  private import memo_architecture_operational_activities::*;
8
8
  private import memo_architecture_operational_structure::*;
9
9
  private import memo_architecture_functional_functions::*;
10
- private import memo_examples_gpca_pump_model_catalog_gpca_context::*;
11
- private import memo_examples_gpca_pump_model_catalog_gpca_operational::*;
12
- private import memo_examples_gpca_pump_model_catalog_gpca_system::*;
13
- private import memo_examples_gpca_pump_model_catalog_gpca_requirements::*;
14
- private import memo_examples_gpca_pump_model_catalog_gpca_architecture::*;
15
- private import memo_examples_gpca_pump_model_catalog_gpca_physical::*;
16
- private import memo_examples_gpca_pump_model_catalog_gpca_behavior_subsystems::*;
17
- private import memo_examples_gpca_pump_model_catalog_gpca_behavior_modes::*;
18
- private import memo_examples_gpca_pump_model_catalog_gpca_interfaces::*;
19
- private import memo_examples_gpca_pump_model_catalog_gpca_risk::*;
20
- private import memo_examples_gpca_pump_model_catalog_gpca_analysis::*;
21
- private import memo_examples_gpca_pump_model_catalog_gpca_verification::*;
22
- private import memo_examples_gpca_pump_model_views_document_architecture_description_view::*;
23
- private import memo_examples_gpca_pump_model_views_document_cyber_assessment_view::*;
24
- private import memo_examples_gpca_pump_model_views_document_dhf_index_view::*;
25
- private import memo_examples_gpca_pump_model_views_document_hazard_analysis_view::*;
26
- private import memo_examples_gpca_pump_model_views_document_rmf_view::*;
27
- private import memo_examples_gpca_pump_model_views_document_sdd_view::*;
28
- private import memo_examples_gpca_pump_model_views_document_threat_model_view::*;
29
- private import memo_examples_gpca_pump_model_views_document_usability_view::*;
30
- private import memo_examples_gpca_pump_model_views_document_vv_view::*;
31
- private import memo_examples_gpca_pump_model_catalog_gpca_formal_behavior::*;
10
+ private import memo_examples_gpca_pump_gpca_context::*;
11
+ private import memo_examples_gpca_pump_gpca_operational::*;
12
+ private import memo_examples_gpca_pump_gpca_system::*;
13
+ private import memo_examples_gpca_pump_gpca_requirements::*;
14
+ private import memo_examples_gpca_pump_gpca_architecture::*;
15
+ private import memo_examples_gpca_pump_gpca_physical::*;
16
+ private import memo_examples_gpca_pump_gpca_behavior_subsystems::*;
17
+ private import memo_examples_gpca_pump_gpca_behavior_modes::*;
18
+ private import memo_examples_gpca_pump_gpca_interfaces::*;
19
+ private import memo_examples_gpca_pump_gpca_risk::*;
20
+ private import memo_examples_gpca_pump_gpca_analysis::*;
21
+ private import memo_examples_gpca_pump_gpca_verification::*;
22
+ private import memo_examples_gpca_pump_viewpoints_logical_views_document_architecture_description_view::*;
23
+ private import memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view::*;
24
+ private import memo_examples_gpca_pump_viewpoints_requirements_views_document_dhf_index_view::*;
25
+ private import memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_view::*;
26
+ private import memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view::*;
27
+ private import memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view::*;
28
+ private import memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_threat_model_view::*;
29
+ private import memo_examples_gpca_pump_viewpoints_usability_views_document_usability_view::*;
30
+ private import memo_examples_gpca_pump_viewpoints_verification_views_document_vv_view::*;
31
+ private import memo_examples_gpca_pump_gpca_formal_behavior::*;
32
+ private import memo_architecture_operational_context_stakeholders::*;
33
+ private import memo_architecture_operational_use_cases::*;
34
+ private import memo_architecture_operational_workflows::*;
35
+ private import memo_architecture_realization_deployment::*;
32
36
 
33
37
  // ── System context interactions (context view) ──────────────
34
38
  connection : InteractsWith connect contextParticipant ::> actorPatient to target ::> entityGpcaPump;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_catalog_gpca_verification {
1
+ package memo_examples_gpca_pump_gpca_verification {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_assurance_verification_validation::*;
@@ -0,0 +1,21 @@
1
+ // GPCA project identity and method binding.
2
+ //
3
+ // This file is the project's native entrypoint. It imports the methodology it
4
+ // selects and states the selection as a typed SysML reference — no YAML field
5
+ // participates in the choice.
6
+ package memo_examples_gpca_pump_project {
7
+ private import ScalarValues::*;
8
+
9
+ private import memo_methodology_core::*;
10
+ private import memo_core_enumerations::*;
11
+ private import memo_examples_gpca_pump_methodology_gpca_profiles::*;
12
+
13
+ part gpcaProjectBinding : ProjectMethodBinding {
14
+ attribute :>> id = "PMB-GPCA-001";
15
+ attribute :>> name = "GPCAProjectMethodBinding";
16
+ attribute :>> projectName = "GPCA Infusion Pump";
17
+ ref :>> selectedMethodology = gpcaMethodDefinition;
18
+ // The project adds nothing to the methodology's selection.
19
+ attribute :>> scopeMode = ScopeModeKind::explicit;
20
+ }
21
+ }
@@ -0,0 +1,8 @@
1
+ // context viewpoint.
2
+ //
3
+ // This project does not define its own viewpoint here; it binds the reusable
4
+ // MEMO viewpoint that frames these concerns. The views it governs sit beneath
5
+ // `views/`.
6
+ package memo_examples_gpca_pump_viewpoints_context {
7
+ public import memo_viewpoints_context_context_viewpoint::*;
8
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_context_system_context_view {
1
+ package memo_examples_gpca_pump_viewpoints_context_views_context_system_context_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -14,13 +14,13 @@ package memo_examples_gpca_pump_model_views_context_system_context_view {
14
14
  private import memo_core_enumerations::*;
15
15
 
16
16
  view gpcaSystemContextView : MemoDiagramView {
17
- expose memo_examples_gpca_pump_model_views_context_system_context_view::*;
17
+ expose memo_examples_gpca_pump_viewpoints_context_views_context_system_context_view::*;
18
18
  attribute depth = 2;
19
19
  attribute :>> id = "VIEW-CTX-101";
20
20
  attribute :>> name = "GPCA_SystemContextView";
21
21
  attribute :>> title = "GPCA System Context View";
22
22
  attribute :>> shortDescription = "Actors, use contexts, and external entities at the GPCA system boundary.";
23
- attribute :>> longDescription = "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
+ 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.";
24
24
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
25
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
26
26
  attribute :>> viewKind = DiagramViewKind::general;
@@ -0,0 +1,8 @@
1
+ // cybersecurity viewpoint.
2
+ //
3
+ // This project does not define its own viewpoint here; it binds the reusable
4
+ // MEMO viewpoint that frames these concerns. The views it governs sit beneath
5
+ // `views/`.
6
+ package memo_examples_gpca_pump_viewpoints_cybersecurity {
7
+ public import memo_viewpoints_cybersecurity_cybersecurity_viewpoint::*;
8
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_cybersecurity_cybersecurity_view {
1
+ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cybersecurity_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -15,13 +15,13 @@ package memo_examples_gpca_pump_model_views_cybersecurity_cybersecurity_view {
15
15
  private import memo_core_enumerations::*;
16
16
 
17
17
  view gpcaCybersecurityView : MemoDiagramView {
18
- expose memo_examples_gpca_pump_model_views_cybersecurity_cybersecurity_view::*;
18
+ expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_cybersecurity_cybersecurity_view::*;
19
19
  attribute depth = 2;
20
20
  attribute :>> id = "VIEW-CYB-001";
21
21
  attribute :>> name = "GPCA_CybersecurityView";
22
22
  attribute :>> title = "GPCA Cybersecurity View";
23
23
  attribute :>> shortDescription = "Shows GPCA assets, trust boundaries, threats, vulnerabilities, and mitigations.";
24
- attribute :>> longDescription = "Product-specific cybersecurity view intended for secure product development and cross-reference into cybersecurity risk documentation.";
24
+ attribute :>> description = "Product-specific cybersecurity view intended for secure product development and cross-reference into cybersecurity risk documentation.";
25
25
  attribute :>> outputKind = (ViewOutputKind::diagram);
26
26
  attribute :>> presentationKind = (PresentationKind::custom);
27
27
  attribute :>> viewKind = DiagramViewKind::general;
@@ -1,18 +1,18 @@
1
- package memo_examples_gpca_pump_model_views_document_cyber_assessment_view {
1
+ package memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
- private import memo_viewpoints_cybersecurity_cybersecurity_assessment_view::*;
5
+ private import memo_viewpoints_cybersecurity_views_cybersecurity_assessment_view::*;
6
6
  private import memo_viewpoints_cybersecurity_cybersecurity_viewpoint::*;
7
7
  private import memo_core_enumerations::*;
8
8
 
9
9
  view cyberAssessmentView : MemoCybersecurityAssessmentView {
10
- expose memo_examples_gpca_pump_model_views_document_cyber_assessment_view::*;
10
+ expose memo_examples_gpca_pump_viewpoints_cybersecurity_views_document_cyber_assessment_view::*;
11
11
  attribute :>> id = "DOC-003";
12
12
  attribute :>> name = "GPCAMemoCybersecurityAssessmentView";
13
13
  attribute :>> title = "GPCA Cybersecurity Assessment View";
14
14
  attribute :>> shortDescription = "Cybersecurity risk-assessment-oriented document view for GPCA.";
15
- attribute :>> longDescription = "Captures GPCA cyber risks, mitigations, security requirements, verification, and safety/privacy traceability for cybersecurity assessment records.";
15
+ attribute :>> description = "Captures GPCA cyber risks, mitigations, security requirements, verification, and safety/privacy traceability for cybersecurity assessment records.";
16
16
  attribute :>> version = "0.1";
17
17
  attribute :>> lifecycleState = LifecycleStateKind::development;
18
18
  attribute :>> marketScope = "generic";