@memoarchitect/ontology 0.6.4 → 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 (327) 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/analysis/Samples/01-model-overview.ipynb +148 -0
  15. package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +301 -0
  16. package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +229 -0
  17. package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +200 -0
  18. package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +188 -0
  19. package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +173 -0
  20. package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +180 -0
  21. package/examples/gpca-pump/analysis/Samples/README.md +37 -0
  22. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  23. package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
  24. package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
  25. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
  26. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +22 -12
  27. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +2 -2
  28. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +8 -2
  29. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +5 -5
  30. package/examples/gpca-pump/model/catalog/gpca_context.sysml +3 -8
  31. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
  32. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
  33. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +41 -11
  34. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +19 -8
  35. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +2 -2
  36. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1 -1
  37. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +10 -1
  38. package/examples/gpca-pump/model/catalog/gpca_system.sysml +34 -30
  39. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +59 -31
  40. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +1 -1
  41. package/examples/gpca-pump/model/catalog/project.sysml +21 -0
  42. package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
  43. package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +3 -3
  44. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
  45. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +3 -3
  46. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
  47. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +4 -4
  48. package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  49. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
  50. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
  51. package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
  52. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
  53. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +7 -7
  54. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
  55. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
  56. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +3 -3
  57. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
  58. package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
  59. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +2 -2
  60. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +3 -3
  61. package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
  62. package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
  63. package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  64. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +6 -6
  65. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
  66. package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  67. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +3 -3
  68. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +3 -3
  69. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +2 -2
  70. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
  71. package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
  72. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +3 -3
  73. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +3 -3
  74. package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
  75. package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +4 -4
  76. package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
  77. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +3 -3
  78. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +2 -2
  79. package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
  80. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  81. package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
  82. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +1 -0
  83. package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
  84. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  85. package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
  86. package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
  87. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  88. package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
  89. package/examples/nested-architecture-dsm/README.md +49 -0
  90. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +174 -0
  91. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +183 -0
  92. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
  93. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
  94. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +90 -0
  95. package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
  96. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +49 -0
  97. package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
  98. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -6
  99. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  100. package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
  101. package/examples/software-only-medical-device/model/catalog/project.sysml +24 -0
  102. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  103. package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
  104. package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
  105. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -19
  106. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  107. package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
  108. package/examples/surgical-robot/model/catalog/project.sysml +24 -0
  109. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +5 -3
  110. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  111. package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
  112. package/examples/sysml-diagram-samples/README.md +7 -0
  113. package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
  114. package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
  115. package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
  116. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  117. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +18 -10
  118. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +4 -2
  119. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
  120. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/functional_flow_view.sysml +23 -20
  121. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/interconnection_view.sysml +17 -14
  122. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
  123. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/operational_behaviour_view.sysml +23 -20
  124. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
  125. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +3 -1
  126. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +51 -0
  127. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/state_transition_view.sysml +3 -1
  128. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/tree_view.sysml +3 -1
  129. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +3 -1
  130. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
  131. package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
  132. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +2 -1
  133. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  134. package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
  135. package/examples/ui-screen-regions/README.md +117 -0
  136. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +60 -0
  137. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +189 -0
  138. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
  139. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
  140. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
  141. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
  142. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
  143. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
  144. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
  145. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
  146. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
  147. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
  148. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
  149. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +60 -0
  150. package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
  151. package/examples/ui-screen-regions/model/catalog/traces.sysml +276 -0
  152. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  153. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
  154. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  155. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
  156. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  157. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
  158. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
  159. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
  160. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
  161. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
  162. package/memo.manifest.yaml +2 -0
  163. package/methodologies/default/memo.package.yaml +19 -9
  164. package/methodologies/gpca/memo.package.yaml +18 -9
  165. package/ontology/memo.package.yaml +23 -8
  166. package/package.json +1 -3
  167. package/profile/memo.package.yaml +18 -9
  168. package/src/architecture/decisions/memo_decisions.sysml +7 -0
  169. package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
  170. package/src/architecture/functional/functions/memo_functions.sysml +5 -12
  171. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +1 -3
  172. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +18 -5
  173. package/src/architecture/implementation/ui/memo_ui.sysml +210 -27
  174. package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -2
  175. package/src/architecture/logical/structure/memo_logical_structure.sysml +71 -15
  176. package/src/architecture/operational/activities/memo_activities.sysml +0 -1
  177. package/src/architecture/operational/scenarios/memo_scenarios.sysml +2 -2
  178. package/src/architecture/operational/workflows/memo_workflows.sysml +0 -6
  179. package/src/{compliance/change/memo_change.sysml → artifacts/configuration_management/memo_configuration_management.sysml} +5 -3
  180. package/src/artifacts/core/memo_controlled_artifacts.sysml +33 -0
  181. package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
  182. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +1 -1
  183. package/src/assurance/human_factors/memo_human_factors.sysml +1 -1
  184. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +11 -0
  185. package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
  186. package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
  187. package/src/core/annotations/memo_annotations.sysml +77 -0
  188. package/src/core/common/memo_common.sysml +20 -3
  189. package/src/core/consistency_rules/consistency_rules.sysml +7 -0
  190. package/src/core/dimensions/dimensions.sysml +5 -1
  191. package/src/core/enumerations/memo_enumerations.sysml +41 -6
  192. package/src/core/methodology_scope/methodology_scope.sysml +7 -15
  193. package/src/core/relationships/memo_relationships.sysml +4 -2
  194. package/src/memo_namespaces.sysml +97 -67
  195. package/src/methodology/core/memo_core.sysml +45 -2
  196. package/src/methodology/profiles/memo_profiles.sysml +30 -40
  197. package/src/methodology/workflow/memo_workflow.sysml +7 -2
  198. package/src/rules/closure/closure_rules.sysml +104 -31
  199. package/src/rules/coverage/coverage_rules.sysml +4 -256
  200. package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
  201. package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
  202. package/src/rules/ontology/ontology_invariants.sysml +38 -68
  203. package/src/rules/quantitative/quantitative_rules.sysml +8 -8
  204. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +7 -0
  205. package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -1
  206. package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
  207. package/src/viewpoints/context/context_viewpoint.sysml +3 -1
  208. package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
  209. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -1
  210. package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
  211. package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
  212. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +6 -0
  213. package/src/viewpoints/functional/functional_viewpoint.sysml +3 -1
  214. package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +2 -2
  215. package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +2 -2
  216. package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
  217. package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
  218. package/src/viewpoints/operational/operational_viewpoint.sysml +3 -1
  219. package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +2 -2
  220. package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
  221. package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
  222. package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
  223. package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
  224. package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
  225. package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
  226. package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
  227. package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
  228. package/src/viewpoints/software/software_viewpoint.sysml +3 -1
  229. package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
  230. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
  231. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
  232. package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
  233. package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
  234. package/src/viewpoints/verification/verification_viewpoint.sysml +3 -1
  235. package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +2 -2
  236. package/templates/connected-device/memo.package.yaml +11 -5
  237. package/templates/connected-device/model/catalog/project.sysml +28 -0
  238. package/templates/connected-device/syside.toml +1 -1
  239. package/templates/default/memo.package.yaml +11 -5
  240. package/templates/default/model/catalog/project.sysml +28 -0
  241. package/templates/default/syside.toml +1 -1
  242. package/templates/infusion-pump/memo.package.yaml +11 -5
  243. package/templates/infusion-pump/model/catalog/project.sysml +28 -0
  244. package/templates/infusion-pump/syside.toml +1 -1
  245. package/templates/monitoring-device/memo.package.yaml +11 -5
  246. package/templates/monitoring-device/model/catalog/project.sysml +28 -0
  247. package/templates/monitoring-device/syside.toml +1 -1
  248. package/templates/samd/memo.package.yaml +11 -5
  249. package/templates/samd/model/catalog/project.sysml +28 -0
  250. package/templates/samd/syside.toml +1 -1
  251. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
  252. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
  253. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
  254. package/examples/gpca-pump/memo.config.yaml +0 -9
  255. package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
  256. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
  257. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
  258. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
  259. package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
  260. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
  261. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
  262. package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
  263. package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
  264. package/ontology/memo.rendering.yaml +0 -84
  265. package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
  266. package/src/compliance/document_views/memo_document_views.sysml +0 -7
  267. package/src/compliance/iso14971/risk_management_file.sysml +0 -16
  268. package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
  269. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
  270. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +0 -0
  271. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +0 -0
  272. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +0 -0
  273. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +0 -0
  274. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +0 -0
  275. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +0 -0
  276. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +0 -0
  277. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +0 -0
  278. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +0 -0
  279. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +0 -0
  280. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +0 -0
  281. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +0 -0
  282. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +0 -0
  283. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +0 -0
  284. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +0 -0
  285. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
  286. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +0 -0
  287. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +0 -0
  288. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +0 -0
  289. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +0 -0
  290. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +0 -0
  291. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +0 -0
  292. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/srs.md +0 -0
  293. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +0 -0
  294. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +0 -0
  295. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
  296. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +0 -0
  297. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/task-analysis.md +0 -0
  298. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +0 -0
  299. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
  300. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +0 -0
  301. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
  302. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fmea.md +0 -0
  303. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
  304. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +0 -0
  305. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
  306. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
  307. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +0 -0
  308. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
  309. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
  310. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
  311. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
  312. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
  313. /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
  314. /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  315. /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  316. /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
  317. /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  318. /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
  319. /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
  320. /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  321. /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
  322. /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
  323. /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  324. /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  325. /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
  326. /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  327. /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_requirements_requirements_trace_view {
1
+ package memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requirements_trace_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -14,7 +14,7 @@ package memo_examples_gpca_pump_model_views_requirements_requirements_trace_view
14
14
  private import memo_core_enumerations::*;
15
15
 
16
16
  view gpcaRequirementsTraceView : MemoDiagramView {
17
- expose memo_examples_gpca_pump_model_views_requirements_requirements_trace_view::*;
17
+ expose memo_examples_gpca_pump_viewpoints_requirements_views_requirements_requirements_trace_view::*;
18
18
  attribute depth = 2;
19
19
  attribute :>> id = "VIEW-REQ-101";
20
20
  attribute :>> name = "GPCA_RequirementsTraceabilityView";
@@ -0,0 +1,8 @@
1
+ // risk 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_risk {
7
+ public import memo_viewpoints_risk_risk_viewpoint::*;
8
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_document_hazard_analysis_view {
1
+ package memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -6,12 +6,12 @@ package memo_examples_gpca_pump_model_views_document_hazard_analysis_view {
6
6
  private import memo_core_enumerations::*;
7
7
 
8
8
  view hazardAnalysisView : MemoDocumentView {
9
- expose memo_examples_gpca_pump_model_views_document_hazard_analysis_view::*;
9
+ expose memo_examples_gpca_pump_viewpoints_risk_views_document_hazard_analysis_view::*;
10
10
  attribute :>> id = "DOC-009";
11
11
  attribute :>> name = "HazardAnalysisReportView";
12
12
  attribute :>> title = "GPCA Hazard Analysis Report View";
13
13
  attribute :>> shortDescription = "Hazard analysis report aligned to the UMN CriSys GPCA hazard tables.";
14
- attribute :>> longDescription = "Aggregates the five hazard chains, the FMEA worksheet, and the overdose fault tree with their controls and verification pointers.";
14
+ attribute :>> description = "Aggregates the five hazard chains, the FMEA worksheet, and the overdose fault tree with their controls and verification pointers.";
15
15
  attribute :>> version = "0.1";
16
16
  attribute :>> lifecycleState = LifecycleStateKind::development;
17
17
  attribute :>> viewKind = DocumentViewKind::RMF;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_document_rmf_view {
1
+ package memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -6,12 +6,12 @@ package memo_examples_gpca_pump_model_views_document_rmf_view {
6
6
  private import memo_core_enumerations::*;
7
7
 
8
8
  view rmfView : MemoDocumentView {
9
- expose memo_examples_gpca_pump_model_views_document_rmf_view::*;
9
+ expose memo_examples_gpca_pump_viewpoints_risk_views_document_rmf_view::*;
10
10
  attribute :>> id = "DOC-001";
11
11
  attribute :>> name = "RiskManagementFileView";
12
12
  attribute :>> title = "GPCA Risk Management File View";
13
13
  attribute :>> shortDescription = "Document-backed risk view for GPCA.";
14
- attribute :>> longDescription = "Aggregates the risk chain, controls, verification, residual risk, and cybersecurity links needed for the GPCA risk management file.";
14
+ attribute :>> description = "Aggregates the risk chain, controls, verification, residual risk, and cybersecurity links needed for the GPCA risk management file.";
15
15
  attribute :>> version = "0.2";
16
16
  attribute :>> lifecycleState = LifecycleStateKind::development;
17
17
  attribute :>> viewKind = DocumentViewKind::RMF;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_risk_fmea_view {
1
+ package memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -14,7 +14,7 @@ package memo_examples_gpca_pump_model_views_risk_fmea_view {
14
14
  private import memo_core_enumerations::*;
15
15
 
16
16
  view gpcaFmeaView : MemoDiagramView {
17
- expose memo_examples_gpca_pump_model_views_risk_fmea_view::*;
17
+ expose memo_examples_gpca_pump_viewpoints_risk_views_risk_fmea_view::*;
18
18
  attribute depth = 2;
19
19
  attribute :>> id = "VIEW-RISK-102";
20
20
  attribute :>> name = "GPCA_FmeaView";
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_risk_risk_chain_view {
1
+ package memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_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_risk_risk_chain_view {
14
14
  private import memo_core_enumerations::*;
15
15
 
16
16
  view gpcaRiskChainView : MemoDiagramView {
17
- expose memo_examples_gpca_pump_model_views_risk_risk_chain_view::*;
17
+ expose memo_examples_gpca_pump_viewpoints_risk_views_risk_risk_chain_view::*;
18
18
  attribute depth = 2;
19
19
  attribute :>> id = "VIEW-RISK-101";
20
20
  attribute :>> name = "GPCA_RiskChainView";
21
21
  attribute :>> title = "GPCA Risk Mitigation Chain View";
22
22
  attribute :>> shortDescription = "All seven hazard causal trees from categorized cause through harm with controls and residual risk.";
23
- attribute :>> longDescription = "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.";
23
+ 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
24
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
25
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
26
26
  attribute :>> viewKind = DiagramViewKind::general;
@@ -0,0 +1,8 @@
1
+ // software 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_software {
7
+ public import memo_viewpoints_software_software_viewpoint::*;
8
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_document_sdd_view {
1
+ package memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -6,12 +6,12 @@ package memo_examples_gpca_pump_model_views_document_sdd_view {
6
6
  private import memo_core_enumerations::*;
7
7
 
8
8
  view sddView : MemoDocumentView {
9
- expose memo_examples_gpca_pump_model_views_document_sdd_view::*;
9
+ expose memo_examples_gpca_pump_viewpoints_software_views_document_sdd_view::*;
10
10
  attribute :>> id = "DOC-004";
11
11
  attribute :>> name = "SoftwareDesignDescriptionView";
12
12
  attribute :>> title = "GPCA Software Design Description View";
13
13
  attribute :>> shortDescription = "IEC 62304 software design description for the GPCA software system.";
14
- attribute :>> longDescription = "Aggregates the software system, its six components with safety classes and scheduling attributes, mode machine and transitions, interfaces, and function allocations for the SDD.";
14
+ 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
15
  attribute :>> version = "0.1";
16
16
  attribute :>> lifecycleState = LifecycleStateKind::development;
17
17
  attribute :>> viewKind = DocumentViewKind::SDD;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_software_software_architecture_view {
1
+ package memo_examples_gpca_pump_viewpoints_software_views_software_software_architecture_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_software_software_architecture_view
14
14
  private import memo_core_enumerations::*;
15
15
 
16
16
  view gpcaSoftwareArchitectureView : MemoDiagramView {
17
- expose memo_examples_gpca_pump_model_views_software_software_architecture_view::*;
17
+ expose memo_examples_gpca_pump_viewpoints_software_views_software_software_architecture_view::*;
18
18
  attribute depth = 2;
19
19
  attribute :>> id = "VIEW-SW-101";
20
20
  attribute :>> name = "GPCA_SoftwareArchitectureView";
21
21
  attribute :>> title = "GPCA Software Architecture View";
22
22
  attribute :>> shortDescription = "The eight AADL GPCA_SW.Impl subcomponents, top-level ports, and the full inter-component connection topology.";
23
- attribute :>> longDescription = "Top_Level_Mode, System_Status, Alarm, Config, Infusion_Manager, System_Monitor, Logging, and OutputBus inside the GPCA_Software system, wired per GPCA_SW.Impl with the seven top-level ports (OP_CMD_IN, PRES_IN, PATIENT_IN, SENSOR_IN, CONST_IN, DB_IN, GPCA_SW_OUT). Connections are synchronous with AADL immediate port semantics.";
23
+ attribute :>> description = "Top_Level_Mode, System_Status, Alarm, Config, Infusion_Manager, System_Monitor, Logging, and OutputBus inside the GPCA_Software system, wired per GPCA_SW.Impl with the seven top-level ports (OP_CMD_IN, PRES_IN, PATIENT_IN, SENSOR_IN, CONST_IN, DB_IN, GPCA_SW_OUT). Connections are synchronous with AADL immediate port semantics.";
24
24
  attribute :>> outputKind = (ViewOutputKind::diagram);
25
25
  attribute :>> presentationKind = (PresentationKind::internalDiagram);
26
26
  attribute :>> viewKind = DiagramViewKind::interconnection;
@@ -0,0 +1,8 @@
1
+ // usability 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_usability {
7
+ public import memo_viewpoints_usability_usability_viewpoint::*;
8
+ }
@@ -1,18 +1,18 @@
1
- package memo_examples_gpca_pump_model_views_document_usability_view {
1
+ package memo_examples_gpca_pump_viewpoints_usability_views_document_usability_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
5
- private import memo_viewpoints_usability_usability_engineering_view::*;
5
+ private import memo_viewpoints_usability_views_usability_engineering_view::*;
6
6
  private import memo_viewpoints_usability_usability_viewpoint::*;
7
7
  private import memo_core_enumerations::*;
8
8
 
9
9
  view usabilityView : MemoUsabilityEngineeringView {
10
- expose memo_examples_gpca_pump_model_views_document_usability_view::*;
10
+ expose memo_examples_gpca_pump_viewpoints_usability_views_document_usability_view::*;
11
11
  attribute :>> id = "DOC-008";
12
12
  attribute :>> name = "UsabilityEngineeringFileView";
13
13
  attribute :>> title = "GPCA Usability Engineering File View";
14
14
  attribute :>> shortDescription = "IEC 62366-1 usability engineering file content for GPCA.";
15
- attribute :>> longDescription = "Aggregates intended use, use contexts, actors, foreseeable use errors, related risk chains, usability requirements, and the summative usability validation case.";
15
+ attribute :>> description = "Aggregates intended use, use contexts, actors, foreseeable use errors, related risk chains, usability requirements, and the summative usability validation case.";
16
16
  attribute :>> version = "0.1";
17
17
  attribute :>> lifecycleState = LifecycleStateKind::development;
18
18
  attribute :>> marketScope = "generic";
@@ -0,0 +1,8 @@
1
+ // verification 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_verification {
7
+ public import memo_viewpoints_verification_verification_viewpoint::*;
8
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_document_vv_view {
1
+ package memo_examples_gpca_pump_viewpoints_verification_views_document_vv_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -6,12 +6,12 @@ package memo_examples_gpca_pump_model_views_document_vv_view {
6
6
  private import memo_core_enumerations::*;
7
7
 
8
8
  view vvView : MemoDocumentView {
9
- expose memo_examples_gpca_pump_model_views_document_vv_view::*;
9
+ expose memo_examples_gpca_pump_viewpoints_verification_views_document_vv_view::*;
10
10
  attribute :>> id = "DOC-006";
11
11
  attribute :>> name = "VerificationValidationView";
12
12
  attribute :>> title = "GPCA Verification and Validation View";
13
13
  attribute :>> shortDescription = "V&V plan and coverage for requirements and risk controls.";
14
- attribute :>> longDescription = "Aggregates verification cases, validation cases, test artifacts, and evidence with their coverage of requirements, risk controls, behavior properties, and timing constraints.";
14
+ attribute :>> description = "Aggregates verification cases, validation cases, test artifacts, and evidence with their coverage of requirements, risk controls, behavior properties, and timing constraints.";
15
15
  attribute :>> version = "0.1";
16
16
  attribute :>> lifecycleState = LifecycleStateKind::development;
17
17
  attribute :>> viewKind = DocumentViewKind::VV;
@@ -1,4 +1,4 @@
1
- package memo_examples_gpca_pump_model_views_verification_verification_coverage_view {
1
+ package memo_examples_gpca_pump_viewpoints_verification_views_verification_verification_coverage_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_viewpoints_definitions::*;
@@ -14,7 +14,7 @@ package memo_examples_gpca_pump_model_views_verification_verification_coverage_v
14
14
  private import memo_core_enumerations::*;
15
15
 
16
16
  view gpcaVerificationCoverageView : MemoDiagramView {
17
- expose memo_examples_gpca_pump_model_views_verification_verification_coverage_view::*;
17
+ expose memo_examples_gpca_pump_viewpoints_verification_views_verification_verification_coverage_view::*;
18
18
  attribute depth = 2;
19
19
  attribute :>> id = "VIEW-VER-101";
20
20
  attribute :>> name = "GPCA_VerificationCoverageView";
@@ -0,0 +1,24 @@
1
+ // Ivd Laboratory System — project identity and method binding.
2
+ //
3
+ // The native entrypoint. The imports name what this project contains and the
4
+ // binding names the methodology it is governed by. No YAML file participates.
5
+ package memo_examples_ivd_laboratory_system_project {
6
+ private import ScalarValues::*;
7
+
8
+ private import memo_core_enumerations::*;
9
+ private import memo_methodology_core::*;
10
+ private import memo_methodology_profiles::*;
11
+
12
+ // The project's own content, imported so the catalog is one reachable
13
+ // closure from a single entrypoint.
14
+ private import memo_examples_ivd_laboratory_system_viewpoints_unassigned::*;
15
+ private import memo_examples_ivd_laboratory_system_viewpoints_unassigned_views_ivd_laboratory_system_overview::*;
16
+
17
+ part projectBinding : ProjectMethodBinding {
18
+ attribute :>> id = "PMB-LABORATORY-SYSTEM-001";
19
+ attribute :>> name = "IvdLaboratorySystemProjectMethodBinding";
20
+ attribute :>> projectName = "Ivd Laboratory System";
21
+ ref :>> selectedMethodology = mdDefaultDefinition;
22
+ attribute :>> scopeMode = ScopeModeKind::explicit;
23
+ }
24
+ }
@@ -0,0 +1,9 @@
1
+ // unassigned 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_ivd_laboratory_system_viewpoints_unassigned {
7
+ // The reusable package declaring unassigned could not be resolved during
8
+ // conversion. Import it here so the views beneath this viewpoint resolve.
9
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_ivd_laboratory_system_viewpoints {
1
+ package memo_examples_ivd_laboratory_system_viewpoints_unassigned_views_ivd_laboratory_system_overview {
2
2
  private import memo_examples_ivd_laboratory_system::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
@@ -5,6 +5,7 @@ package memo_examples_manual_surgical_instrument {
5
5
  private import ScalarValues::*;
6
6
 
7
7
  private import memo_core_enumerations::*;
8
+ private import memo_core_relationships::*;
8
9
  private import memo_architecture_operational_activities::*;
9
10
  private import memo_architecture_implementation_hardware_structure::*;
10
11
 
@@ -0,0 +1,24 @@
1
+ // Manual Surgical Instrument — project identity and method binding.
2
+ //
3
+ // The native entrypoint. The imports name what this project contains and the
4
+ // binding names the methodology it is governed by. No YAML file participates.
5
+ package memo_examples_manual_surgical_instrument_project {
6
+ private import ScalarValues::*;
7
+
8
+ private import memo_core_enumerations::*;
9
+ private import memo_methodology_core::*;
10
+ private import memo_methodology_profiles::*;
11
+
12
+ // The project's own content, imported so the catalog is one reachable
13
+ // closure from a single entrypoint.
14
+ private import memo_examples_manual_surgical_instrument_viewpoints_unassigned::*;
15
+ private import memo_examples_manual_surgical_instrument_viewpoints_unassigned_views_manual_surgical_instrument_overview::*;
16
+
17
+ part projectBinding : ProjectMethodBinding {
18
+ attribute :>> id = "PMB-SURGICAL-INSTRUMENT-001";
19
+ attribute :>> name = "ManualSurgicalInstrumentProjectMethodBinding";
20
+ attribute :>> projectName = "Manual Surgical Instrument";
21
+ ref :>> selectedMethodology = mdDefaultDefinition;
22
+ attribute :>> scopeMode = ScopeModeKind::explicit;
23
+ }
24
+ }
@@ -0,0 +1,9 @@
1
+ // unassigned 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_manual_surgical_instrument_viewpoints_unassigned {
7
+ // The reusable package declaring unassigned could not be resolved during
8
+ // conversion. Import it here so the views beneath this viewpoint resolve.
9
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_manual_surgical_instrument_viewpoints {
1
+ package memo_examples_manual_surgical_instrument_viewpoints_unassigned_views_manual_surgical_instrument_overview {
2
2
  private import memo_examples_manual_surgical_instrument::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
@@ -0,0 +1,24 @@
1
+ // Multidimensional Layers — project identity and method binding.
2
+ //
3
+ // The native entrypoint. The imports name what this project contains and the
4
+ // binding names the methodology it is governed by. No YAML file participates.
5
+ package memo_examples_multidimensional_layers_project {
6
+ private import ScalarValues::*;
7
+
8
+ private import memo_core_enumerations::*;
9
+ private import memo_methodology_core::*;
10
+ private import memo_methodology_profiles::*;
11
+
12
+ // The project's own content, imported so the catalog is one reachable
13
+ // closure from a single entrypoint.
14
+ private import memo_examples_multidimensional_layers_viewpoints_unassigned::*;
15
+ private import memo_examples_multidimensional_layers_viewpoints_unassigned_views_multidimensional_layers_overview::*;
16
+
17
+ part projectBinding : ProjectMethodBinding {
18
+ attribute :>> id = "PMB-MULTIDIMENSIONAL-LAYERS-001";
19
+ attribute :>> name = "MultidimensionalLayersProjectMethodBinding";
20
+ attribute :>> projectName = "Multidimensional Layers";
21
+ ref :>> selectedMethodology = mdDefaultDefinition;
22
+ attribute :>> scopeMode = ScopeModeKind::explicit;
23
+ }
24
+ }
@@ -0,0 +1,9 @@
1
+ // unassigned 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_multidimensional_layers_viewpoints_unassigned {
7
+ // The reusable package declaring unassigned could not be resolved during
8
+ // conversion. Import it here so the views beneath this viewpoint resolve.
9
+ }
@@ -1,4 +1,4 @@
1
- package memo_examples_multidimensional_layers_viewpoints {
1
+ package memo_examples_multidimensional_layers_viewpoints_unassigned_views_multidimensional_layers_overview {
2
2
  private import memo_examples_multidimensional_layers::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
@@ -0,0 +1,49 @@
1
+ # Nested Architecture DSM
2
+
3
+ A small infusion-pump model whose only purpose is to exercise the two matrix
4
+ analyses — the Design Structure Matrix and the Traceability Matrix — with a
5
+ hierarchy deep enough that expanding and collapsing changes what you see.
6
+
7
+ ## What is in it
8
+
9
+ | Axis material | Elements | Nesting |
10
+ | --- | --- | --- |
11
+ | Logical structure | 1 system, 5 subsystems, 12 components | 4 levels (`System → Subsystem → Subsystem → LogicalComponent`) |
12
+ | Functional architecture | 18 system functions | 3 levels, four capability trees |
13
+ | Requirements | 7 requirements | flat |
14
+
15
+ Nesting is declared with `Composes`, so both matrices build their trees from
16
+ the model rather than from a naming convention.
17
+
18
+ ## What it is set up to show
19
+
20
+ - **Roll-up.** `SafetyMonitorSubsystem` sits one level deeper than its peers, so
21
+ a collapsed `ControlSubsystem` row genuinely sums its descendants instead of
22
+ standing in for a single child.
23
+ - **Feedback.** `DriveActuator` and `MeasureDeliveredVolume` exchange in both
24
+ directions, so a partitioned DSM still shows one real feedback mark rather
25
+ than an empty lower triangle.
26
+ - **Cross-tree dependency.** `EnforceDoseLimits → DriveActuator` and
27
+ `SelectPowerSource → DriveActuator` cross capability trees, which is what a
28
+ collapsed matrix rolls into a single number between two capabilities.
29
+ - **Asymmetric axes.** Functions on the rows and blocks on the columns, joined
30
+ by `AllocatedTo` — including `MeterFluid → FluidPathSubsystem`, an allocation
31
+ made at subsystem level rather than to one component.
32
+ - **A traceability gap.** `StatusVisibility` is satisfied by nothing, so
33
+ coverage reads under 100% and there is an empty row to author a link into.
34
+
35
+ ## Suggested run
36
+
37
+ ```bash
38
+ memo-architect --example nested-architecture-dsm
39
+ ```
40
+
41
+ In **DSM**: set rows and columns to `SystemFunction`, dependency to
42
+ `exchangesWith`, and switch ordering between *Name* and *Partition* — the
43
+ feedback count drops and one mark stays below the diagonal. Then set columns to
44
+ the logical kinds and dependency to `allocatedTo` for the allocation view.
45
+
46
+ In **Traceability**: rows `Requirement`, columns `SystemFunction`, trace via
47
+ `satisfiedBy`. Turn on **Edit links** and click the empty `StatusVisibility` row
48
+ to author the missing trace; it is written back to
49
+ `model/catalog/traces.sysml`.
@@ -0,0 +1,174 @@
1
+ // Functional architecture — the row axis of the DSM.
2
+ //
3
+ // Four capability trees, each decomposed with Composes, plus the functional
4
+ // exchanges between the leaves. The exchanges are deliberately not a clean
5
+ // pipeline: DriveActuator and MeasureDeliveredVolume feed each other, so a
6
+ // partitioned DSM still shows one genuine feedback mark instead of an empty
7
+ // lower triangle.
8
+ package memo_examples_nested_architecture_dsm_architecture_functional_functions {
9
+ private import ScalarValues::*;
10
+
11
+ private import memo_core_enumerations::*;
12
+ private import memo_core_relationships::*;
13
+ private import memo_architecture_functional_functions::*;
14
+
15
+ // ── Deliver therapy ──────────────────────────────────────────
16
+ part fnDeliverTherapy : SystemFunction {
17
+ attribute :>> id = "NDS-FN-001"; attribute :>> name = "DeliverTherapy";
18
+ attribute :>> functionCategory = "therapy";
19
+ attribute :>> criticality = CriticalityKind::catastrophic;
20
+ attribute :>> concernKind = ConcernKind::safety;
21
+ attribute :>> outputSummary = "fluid delivered to the patient line at the prescribed rate";
22
+ }
23
+ part fnMeterFluid : SystemFunction {
24
+ attribute :>> id = "NDS-FN-002"; attribute :>> name = "MeterFluid";
25
+ attribute :>> functionCategory = "therapy";
26
+ attribute :>> criticality = CriticalityKind::catastrophic;
27
+ attribute :>> concernKind = ConcernKind::safety;
28
+ attribute :>> outputSummary = "measured volume displaced per control period";
29
+ }
30
+ part fnDriveActuator : SystemFunction {
31
+ attribute :>> id = "NDS-FN-003"; attribute :>> name = "DriveActuator";
32
+ attribute :>> functionCategory = "therapy";
33
+ attribute :>> criticality = CriticalityKind::catastrophic;
34
+ attribute :>> trigger = "rate command from the dose control loop";
35
+ attribute :>> concernKind = ConcernKind::safety;
36
+ }
37
+ part fnMeasureDelivered : SystemFunction {
38
+ attribute :>> id = "NDS-FN-004"; attribute :>> name = "MeasureDeliveredVolume";
39
+ attribute :>> functionCategory = "therapy";
40
+ attribute :>> criticality = CriticalityKind::high;
41
+ attribute :>> concernKind = ConcernKind::safety;
42
+ attribute :>> outputSummary = "cumulative delivered volume";
43
+ }
44
+ part fnControlDose : SystemFunction {
45
+ attribute :>> id = "NDS-FN-005"; attribute :>> name = "ControlDose";
46
+ attribute :>> functionCategory = "therapy";
47
+ attribute :>> criticality = CriticalityKind::catastrophic;
48
+ attribute :>> concernKind = ConcernKind::safety;
49
+ }
50
+ part fnComputeRate : SystemFunction {
51
+ attribute :>> id = "NDS-FN-006"; attribute :>> name = "ComputeInfusionRate";
52
+ attribute :>> functionCategory = "therapy";
53
+ attribute :>> criticality = CriticalityKind::catastrophic;
54
+ attribute :>> concernKind = ConcernKind::safety;
55
+ attribute :>> outputSummary = "rate command, saturated at the prescribed ceiling";
56
+ }
57
+ part fnValidatePrescription : SystemFunction {
58
+ attribute :>> id = "NDS-FN-007"; attribute :>> name = "ValidatePrescription";
59
+ attribute :>> functionCategory = "therapy";
60
+ attribute :>> criticality = CriticalityKind::high;
61
+ attribute :>> concernKind = ConcernKind::clinical;
62
+ attribute :>> outputSummary = "accepted or rejected prescription, with the reason";
63
+ }
64
+ connection : Composes connect parent ::> fnDeliverTherapy to child ::> fnMeterFluid;
65
+ connection : Composes connect parent ::> fnDeliverTherapy to child ::> fnControlDose;
66
+ connection : Composes connect parent ::> fnMeterFluid to child ::> fnDriveActuator;
67
+ connection : Composes connect parent ::> fnMeterFluid to child ::> fnMeasureDelivered;
68
+ connection : Composes connect parent ::> fnControlDose to child ::> fnComputeRate;
69
+ connection : Composes connect parent ::> fnControlDose to child ::> fnValidatePrescription;
70
+
71
+ // ── Ensure safety ────────────────────────────────────────────
72
+ part fnEnsureSafety : SystemFunction {
73
+ attribute :>> id = "NDS-FN-008"; attribute :>> name = "EnsureSafety";
74
+ attribute :>> functionCategory = "protection";
75
+ attribute :>> criticality = CriticalityKind::catastrophic;
76
+ attribute :>> concernKind = ConcernKind::safety;
77
+ }
78
+ part fnDetectOcclusion : SystemFunction {
79
+ attribute :>> id = "NDS-FN-009"; attribute :>> name = "DetectOcclusion";
80
+ attribute :>> functionCategory = "protection";
81
+ attribute :>> criticality = CriticalityKind::catastrophic;
82
+ attribute :>> trigger = "line pressure above the occlusion threshold";
83
+ attribute :>> concernKind = ConcernKind::safety;
84
+ }
85
+ part fnDetectAirInLine : SystemFunction {
86
+ attribute :>> id = "NDS-FN-010"; attribute :>> name = "DetectAirInLine";
87
+ attribute :>> functionCategory = "protection";
88
+ attribute :>> criticality = CriticalityKind::catastrophic;
89
+ attribute :>> trigger = "air bolus detected in the patient line";
90
+ attribute :>> concernKind = ConcernKind::safety;
91
+ }
92
+ part fnEnforceDoseLimits : SystemFunction {
93
+ attribute :>> id = "NDS-FN-011"; attribute :>> name = "EnforceDoseLimits";
94
+ attribute :>> functionCategory = "protection";
95
+ attribute :>> criticality = CriticalityKind::catastrophic;
96
+ attribute :>> concernKind = ConcernKind::safety;
97
+ attribute :>> outputSummary = "delivery stopped when the commanded dose leaves the accepted envelope";
98
+ }
99
+ connection : Composes connect parent ::> fnEnsureSafety to child ::> fnDetectOcclusion;
100
+ connection : Composes connect parent ::> fnEnsureSafety to child ::> fnDetectAirInLine;
101
+ connection : Composes connect parent ::> fnEnsureSafety to child ::> fnEnforceDoseLimits;
102
+
103
+ // ── Inform the user ──────────────────────────────────────────
104
+ part fnInformUser : SystemFunction {
105
+ attribute :>> id = "NDS-FN-012"; attribute :>> name = "InformUser";
106
+ attribute :>> functionCategory = "interaction";
107
+ attribute :>> criticality = CriticalityKind::high;
108
+ attribute :>> concernKind = ConcernKind::usability;
109
+ }
110
+ part fnRenderStatus : SystemFunction {
111
+ attribute :>> id = "NDS-FN-013"; attribute :>> name = "RenderTherapyStatus";
112
+ attribute :>> functionCategory = "interaction";
113
+ attribute :>> criticality = CriticalityKind::high;
114
+ attribute :>> concernKind = ConcernKind::usability;
115
+ attribute :>> outputSummary = "rate, volume delivered and time remaining";
116
+ }
117
+ part fnAnnunciateAlarm : SystemFunction {
118
+ attribute :>> id = "NDS-FN-014"; attribute :>> name = "AnnunciateAlarm";
119
+ attribute :>> functionCategory = "interaction";
120
+ attribute :>> criticality = CriticalityKind::catastrophic;
121
+ attribute :>> trigger = "any active alarm condition";
122
+ attribute :>> concernKind = ConcernKind::safety;
123
+ }
124
+ part fnAcceptInput : SystemFunction {
125
+ attribute :>> id = "NDS-FN-015"; attribute :>> name = "AcceptClinicianInput";
126
+ attribute :>> functionCategory = "interaction";
127
+ attribute :>> criticality = CriticalityKind::high;
128
+ attribute :>> concernKind = ConcernKind::usability;
129
+ attribute :>> outputSummary = "confirmed prescription changes";
130
+ }
131
+ connection : Composes connect parent ::> fnInformUser to child ::> fnRenderStatus;
132
+ connection : Composes connect parent ::> fnInformUser to child ::> fnAnnunciateAlarm;
133
+ connection : Composes connect parent ::> fnInformUser to child ::> fnAcceptInput;
134
+
135
+ // ── Manage power ─────────────────────────────────────────────
136
+ part fnManagePower : SystemFunction {
137
+ attribute :>> id = "NDS-FN-016"; attribute :>> name = "ManagePower";
138
+ attribute :>> functionCategory = "platform";
139
+ attribute :>> criticality = CriticalityKind::high;
140
+ attribute :>> concernKind = ConcernKind::reliability;
141
+ }
142
+ part fnMonitorBattery : SystemFunction {
143
+ attribute :>> id = "NDS-FN-017"; attribute :>> name = "MonitorBatteryState";
144
+ attribute :>> functionCategory = "platform";
145
+ attribute :>> criticality = CriticalityKind::high;
146
+ attribute :>> concernKind = ConcernKind::reliability;
147
+ attribute :>> outputSummary = "state of charge and remaining run time";
148
+ }
149
+ part fnSelectPowerSource : SystemFunction {
150
+ attribute :>> id = "NDS-FN-018"; attribute :>> name = "SelectPowerSource";
151
+ attribute :>> functionCategory = "platform";
152
+ attribute :>> criticality = CriticalityKind::high;
153
+ attribute :>> trigger = "mains loss or rail brownout";
154
+ attribute :>> concernKind = ConcernKind::reliability;
155
+ }
156
+ connection : Composes connect parent ::> fnManagePower to child ::> fnMonitorBattery;
157
+ connection : Composes connect parent ::> fnManagePower to child ::> fnSelectPowerSource;
158
+
159
+ // ── Functional exchange ──────────────────────────────────────
160
+ // Cross-tree marks are the interesting ones: they are what a collapsed DSM
161
+ // rolls up into a single number between two capabilities.
162
+ connection : ExchangesWith connect source ::> fnMeasureDelivered to target ::> fnComputeRate;
163
+ connection : ExchangesWith connect source ::> fnComputeRate to target ::> fnDriveActuator;
164
+ connection : ExchangesWith connect source ::> fnDriveActuator to target ::> fnMeasureDelivered;
165
+ connection : ExchangesWith connect source ::> fnValidatePrescription to target ::> fnComputeRate;
166
+ connection : ExchangesWith connect source ::> fnAcceptInput to target ::> fnValidatePrescription;
167
+ connection : ExchangesWith connect source ::> fnDetectOcclusion to target ::> fnEnforceDoseLimits;
168
+ connection : ExchangesWith connect source ::> fnDetectAirInLine to target ::> fnAnnunciateAlarm;
169
+ connection : ExchangesWith connect source ::> fnEnforceDoseLimits to target ::> fnDriveActuator;
170
+ connection : ExchangesWith connect source ::> fnMeasureDelivered to target ::> fnRenderStatus;
171
+ connection : ExchangesWith connect source ::> fnMonitorBattery to target ::> fnAnnunciateAlarm;
172
+ connection : ExchangesWith connect source ::> fnSelectPowerSource to target ::> fnDriveActuator;
173
+ connection : ExchangesWith connect source ::> fnDetectOcclusion to target ::> fnAnnunciateAlarm;
174
+ }