@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
@@ -0,0 +1,24 @@
1
+ // Surgical Closure Workflow — 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_surgical_closure_workflow_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_surgical_closure_workflow_viewpoints_unassigned::*;
15
+ private import memo_examples_surgical_closure_workflow_viewpoints_unassigned_views_surgical_closure_workflow_overview::*;
16
+
17
+ part projectBinding : ProjectMethodBinding {
18
+ attribute :>> id = "PMB-CLOSURE-WORKFLOW-001";
19
+ attribute :>> name = "SurgicalClosureWorkflowProjectMethodBinding";
20
+ attribute :>> projectName = "Surgical Closure Workflow";
21
+ ref :>> selectedMethodology = mdDefaultDefinition;
22
+ attribute :>> scopeMode = ScopeModeKind::explicit;
23
+ }
24
+ }
@@ -5,6 +5,7 @@ package memo_examples_surgical_closure_workflow {
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_context_actors::*;
9
10
  private import memo_architecture_operational_context_use_context::*;
10
11
  private import memo_assurance_requirements_needs::*;
@@ -73,10 +74,13 @@ package memo_examples_surgical_closure_workflow {
73
74
  attribute :>> potentialHarm = "bleeding or staple-line complication not recognized before handover";
74
75
  attribute :>> severityIfFailed = SeverityKind::serious;
75
76
  }
76
- action stConfirmAnatomy : TaskStep { attribute :>> id = "LSG-ST-001"; attribute :>> name = "ConfirmAnatomy"; attribute :>> stepOrder = 1; }
77
- action stCreateStapleLine : TaskStep { attribute :>> id = "LSG-ST-002"; attribute :>> name = "CreateStapleLine"; attribute :>> stepOrder = 2; }
78
- action stInspectBleeding : TaskStep { attribute :>> id = "LSG-ST-003"; attribute :>> name = "InspectForBleeding"; attribute :>> stepOrder = 3; }
79
- action stAssessIntegrity : TaskStep { attribute :>> id = "LSG-ST-004"; attribute :>> name = "AssessStapleLineIntegrity"; attribute :>> stepOrder = 4; }
77
+ action stConfirmAnatomy : TaskStep { attribute :>> id = "LSG-ST-001"; attribute :>> name = "ConfirmAnatomy"; }
78
+ action stCreateStapleLine : TaskStep { attribute :>> id = "LSG-ST-002"; attribute :>> name = "CreateStapleLine"; }
79
+ action stInspectBleeding : TaskStep { attribute :>> id = "LSG-ST-003"; attribute :>> name = "InspectForBleeding"; }
80
+ action stAssessIntegrity : TaskStep { attribute :>> id = "LSG-ST-004"; attribute :>> name = "AssessStapleLineIntegrity"; }
81
+ first stConfirmAnatomy then stCreateStapleLine;
82
+ first stCreateStapleLine then stInspectBleeding;
83
+ first stInspectBleeding then stAssessIntegrity;
80
84
  connection : Composes connect parent ::> actSizeAndCreateSleeve to child ::> taskCreateStapleLine;
81
85
  connection : Composes connect parent ::> taskCreateStapleLine to child ::> stConfirmAnatomy;
82
86
  connection : Composes connect parent ::> taskCreateStapleLine to child ::> stCreateStapleLine;
@@ -91,13 +95,13 @@ package memo_examples_surgical_closure_workflow {
91
95
  attribute :>> completionCondition = "staple line assessed; postoperative handover complete";
92
96
  attribute :>> clinicalObjective = "create a gastric sleeve after controlled mobilisation and staple-line assessment";
93
97
  }
94
- action wsTimeOut : WorkflowStep { attribute :>> stepOrder = 1; ref :>> performedActivity = actTimeOutAndPosition; }
95
- action wsAccess : WorkflowStep { attribute :>> stepOrder = 2; ref :>> performedActivity = actEstablishAccess; }
96
- action wsMobilize : WorkflowStep { attribute :>> stepOrder = 3; ref :>> performedActivity = actMobilizeStomach; }
97
- action wsSleeve : WorkflowStep { attribute :>> stepOrder = 4; ref :>> performedActivity = actSizeAndCreateSleeve; }
98
- action wsAssess : WorkflowStep { attribute :>> stepOrder = 5; ref :>> performedActivity = actAssessStapleLine; }
99
- action wsClose : WorkflowStep { attribute :>> stepOrder = 6; ref :>> performedActivity = actExtractSpecimenAndClose; }
100
- action wsHandover : WorkflowStep { attribute :>> stepOrder = 7; ref :>> performedActivity = actHandover; }
98
+ action wsTimeOut : WorkflowStep { ref :>> performedActivity = actTimeOutAndPosition; }
99
+ action wsAccess : WorkflowStep { ref :>> performedActivity = actEstablishAccess; }
100
+ action wsMobilize : WorkflowStep { ref :>> performedActivity = actMobilizeStomach; }
101
+ action wsSleeve : WorkflowStep { ref :>> performedActivity = actSizeAndCreateSleeve; }
102
+ action wsAssess : WorkflowStep { ref :>> performedActivity = actAssessStapleLine; }
103
+ action wsClose : WorkflowStep { ref :>> performedActivity = actExtractSpecimenAndClose; }
104
+ action wsHandover : WorkflowStep { ref :>> performedActivity = actHandover; }
101
105
  connection : Composes connect parent ::> wfSleeveGastrectomy to child ::> wsTimeOut;
102
106
  connection : Composes connect parent ::> wfSleeveGastrectomy to child ::> wsAccess;
103
107
  connection : Composes connect parent ::> wfSleeveGastrectomy to child ::> wsMobilize;
@@ -105,12 +109,12 @@ package memo_examples_surgical_closure_workflow {
105
109
  connection : Composes connect parent ::> wfSleeveGastrectomy to child ::> wsAssess;
106
110
  connection : Composes connect parent ::> wfSleeveGastrectomy to child ::> wsClose;
107
111
  connection : Composes connect parent ::> wfSleeveGastrectomy to child ::> wsHandover;
108
- connection : StepPrecedes connect predecessor ::> wsTimeOut to successor ::> wsAccess;
109
- connection : StepPrecedes connect predecessor ::> wsAccess to successor ::> wsMobilize;
110
- connection : StepPrecedes connect predecessor ::> wsMobilize to successor ::> wsSleeve;
111
- connection : StepPrecedes connect predecessor ::> wsSleeve to successor ::> wsAssess;
112
- connection : StepPrecedes connect predecessor ::> wsAssess to successor ::> wsClose;
113
- connection : StepPrecedes connect predecessor ::> wsClose to successor ::> wsHandover;
112
+ first wsTimeOut then wsAccess;
113
+ first wsAccess then wsMobilize;
114
+ first wsMobilize then wsSleeve;
115
+ first wsSleeve then wsAssess;
116
+ first wsAssess then wsClose;
117
+ first wsClose then wsHandover;
114
118
  connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfSleeveGastrectomy to supported ::> ucPerformSleeveGastrectomy; }
115
119
 
116
120
  // ── Scenario paths, each with its own activity/action flow ──
@@ -124,7 +128,7 @@ package memo_examples_surgical_closure_workflow {
124
128
  action recognizeBleeding; action controlBleeding; action reassessStapleLine; action escalateIfNeeded;
125
129
  first start then recognizeBleeding; first recognizeBleeding then controlBleeding; first controlBleeding then reassessStapleLine; first reassessStapleLine then escalateIfNeeded; first escalateIfNeeded then done;
126
130
  }
127
- part scNominalSleeveProcedure : OperativeScenario {
131
+ action scNominalSleeveProcedure : OperativeScenario {
128
132
  attribute :>> id = "LSG-SC-001"; attribute :>> name = "NominalSleeveGastrectomy";
129
133
  attribute :>> variantKind = ScenarioVariantKind::nominal;
130
134
  attribute :>> operationalCondition = OperationalConditionKind::normal;
@@ -133,7 +137,7 @@ package memo_examples_surgical_closure_workflow {
133
137
  ref :>> parentUseCase = ucPerformSleeveGastrectomy;
134
138
  ref :>> activities = oaCompleteSleeveProcedure;
135
139
  }
136
- part scStapleLineBleeding : OperativeScenario {
140
+ action scStapleLineBleeding : OperativeScenario {
137
141
  attribute :>> id = "LSG-SC-002"; attribute :>> name = "StapleLineBleedingRecovery";
138
142
  attribute :>> variantKind = ScenarioVariantKind::recovery;
139
143
  attribute :>> operationalCondition = OperationalConditionKind::degraded;
@@ -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_surgical_closure_workflow_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_surgical_closure_workflow_viewpoints {
1
+ package memo_examples_surgical_closure_workflow_viewpoints_unassigned_views_surgical_closure_workflow_overview {
2
2
  private import memo_examples_surgical_closure_workflow::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
@@ -0,0 +1,24 @@
1
+ // Surgical Robot — 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_surgical_robot_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_surgical_robot_viewpoints_unassigned::*;
15
+ private import memo_examples_surgical_robot_viewpoints_unassigned_views_surgical_robot_overview::*;
16
+
17
+ part projectBinding : ProjectMethodBinding {
18
+ attribute :>> id = "PMB-SURGICAL-ROBOT-001";
19
+ attribute :>> name = "SurgicalRobotProjectMethodBinding";
20
+ attribute :>> projectName = "Surgical Robot";
21
+ ref :>> selectedMethodology = mdDefaultDefinition;
22
+ attribute :>> scopeMode = ScopeModeKind::explicit;
23
+ }
24
+ }
@@ -49,10 +49,12 @@ package memo_examples_surgical_robot {
49
49
  attribute :>> contactDuration = "limited (<24 h)";
50
50
  }
51
51
 
52
- // Surgeon console: haptic feedback element.
53
- part elHapticGrip : UIElement {
52
+ // Surgeon console: haptic feedback element. The grip is hardware the
53
+ // surgeon holds, so it is an OperatorInterfaceElement (a PhysicalComponent)
54
+ // rather than a UIElement — UIElement is software.
55
+ part elHapticGrip : OperatorInterfaceElement {
54
56
  attribute :>> id = "SR-UI-001"; attribute :>> name = "HapticMasterGrip";
55
- attribute :>> formKind = UIElementFormKind::hapticIndicator;
57
+ attribute :>> formKind = OperatorInterfaceFormKind::hapticIndicator;
56
58
  attribute :>> guardedAgainstInadvertentActuation = true;
57
59
  }
58
60
  }
@@ -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_surgical_robot_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_surgical_robot_viewpoints {
1
+ package memo_examples_surgical_robot_viewpoints_unassigned_views_surgical_robot_overview {
2
2
  private import memo_examples_surgical_robot::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
@@ -15,11 +15,18 @@ Each view is a `MemoDiagramView` declared in `model/samples/`, exposing its own
15
15
  dummy elements. The Architect explorer groups each authored view by the layer
16
16
  of its model content.
17
17
 
18
+ `model/sysml_v2_activity_example.sysml` is the SysML v2 activity-diagram
19
+ acceptance fixture, and is the single copy — it sits with the rest of the
20
+ model's SysML rather than in a parallel `reference/` tree. The bundled parser
21
+ accepts its decision, merge, accept/send, termination and guard syntax, and
22
+ `standard_activity_view.sysml` is the view that draws it.
23
+
18
24
  | View | Diagram type | View kind | Renders |
19
25
  | --- | --- | --- | --- |
20
26
  | `tree_view.sysml` | `bdd` | general | Block Definition Diagram — a decomposition hierarchy. |
21
27
  | `interconnection_view.sysml` | `ibd` | interconnection | Internal Block Diagram — nested parts, boundary ports, typed connectors. |
22
28
  | `action_flow_view.sysml` | `afd` | actionflow | Activity / action flow — actions, item flows, successions. |
29
+ | `standard_activity_view.sysml` | `afd` | actionflow | Standard SysML v2 activity — decision, merge, fork, join, accept, send, terminate, guarded successions. |
23
30
  | `functional_flow_view.sysml` | `ffd` | actionflow | Functional flow — swimlanes per realising component, typed data/energy flows. |
24
31
  | `operational_behaviour_view.sysml` | `ofd` | actionflow | Operational flow — clinical-role swimlanes, concurrent preparation, and a composite therapy step. |
25
32
  | `context_view.sysml` | `context` | general | Operational system context — a black-box system of interest inside an explicit boundary, with actors, peer systems, environment, and typed interactions outside it. |
@@ -0,0 +1,11 @@
1
+ ---
2
+ id: DOC-HAR-001
3
+ title: Hazard Analysis Report
4
+ template: iso-14971/har
5
+ group: Risk Management
6
+ created: 1785896600558
7
+ ---
8
+
9
+ # Hazard Analysis Report
10
+
11
+ _[TODO: Add content]_
@@ -1,5 +1,11 @@
1
- name: "sysml-diagram-samples"
2
- version: "0.1.0"
3
- type: device
4
- extends: "@memoarchitect/medical-modeling-profile"
5
- description: "MEMO Architect diagram rendering samples — one openable view per standard SysML v2 diagram type. Open with: memo-architect --example standard-sysml-diagrams"
1
+ # Application/distribution descriptor for this MEMO package.
2
+ #
3
+ # Identity and location only. It records what this package is called, what
4
+ # version it is, and where its SysML source sits so a resolver can find it.
5
+ # It does not select model content: the project's native SysML imports and its
6
+ # ProjectMethodBinding decide what is in the model. Semantic fields
7
+ # (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
8
+ # removed at the native semantic flip and are now rejected if present.
9
+ name: sysml-diagram-samples
10
+ version: 0.1.0
11
+ description: "MEMO Architect diagram rendering samples \u2014 one openable view per standard SysML v2 diagram type. Open with: memo-architect --example standard-sysml-diagrams"
@@ -0,0 +1,33 @@
1
+ // Sysml Diagram Samples — 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_sysml_diagram_samples_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_sysml_diagram_samples_viewpoints_unassigned::*;
15
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_flow_view::*;
16
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_view::*;
17
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_functional_flow_view::*;
18
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_interconnection_view::*;
19
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operational_behaviour_view::*;
20
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view::*;
21
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard_activity_view::*;
22
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_transition_view::*;
23
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_view::*;
24
+ private import memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case_view::*;
25
+
26
+ part projectBinding : ProjectMethodBinding {
27
+ attribute :>> id = "PMB-DIAGRAM-SAMPLES-001";
28
+ attribute :>> name = "SysmlDiagramSamplesProjectMethodBinding";
29
+ attribute :>> projectName = "Sysml Diagram Samples";
30
+ ref :>> selectedMethodology = mdDefaultDefinition;
31
+ attribute :>> scopeMode = ScopeModeKind::explicit;
32
+ }
33
+ }
@@ -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_sysml_diagram_samples_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,10 +1,12 @@
1
- package memo_examples_sysml_diagram_samples_model_samples_action_flow_view {
1
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_flow_view {
2
2
  private import ScalarValues::*;
3
3
  private import memo_core_relationships::*;
4
4
 
5
5
  private import memo_architecture_logical_structure::*;
6
6
  private import memo_architecture_logical_interfaces::*;
7
+ private import memo_architecture_functional_functions::*;
7
8
  private import memo_viewpoints_definitions::*;
9
+ private import memo_viewpoints_functional_functional_viewpoint::*;
8
10
  private import memo_core_enumerations::*;
9
11
 
10
12
  item def DataPacket specializes InterfaceItem {
@@ -17,15 +19,15 @@ package memo_examples_sysml_diagram_samples_model_samples_action_flow_view {
17
19
  attribute :>> itemKind = InterfaceItemKind::material;
18
20
  }
19
21
 
20
- action def ReceiveInput { out received : DataPacket; }
21
- action def ValidateInput { in received : DataPacket; out validated : EnergyToken; }
22
- action def ProcessInput { in validated : EnergyToken; out result : MaterialBatch; }
23
- action def RecordResult { in result : MaterialBatch; }
22
+ action def ReceiveInput specializes SystemAction { out item received : DataPacket; }
23
+ action def ValidateInput specializes SystemAction { in item received : DataPacket; out item validated : EnergyToken; }
24
+ action def ProcessInput specializes SystemAction { in item validated : EnergyToken; out item result : MaterialBatch; }
25
+ action def RecordResult specializes SystemAction { in item result : MaterialBatch; }
24
26
 
25
27
  part laneA : LogicalComponent { attribute :>> name = "Lane A"; }
26
28
  part laneB : LogicalComponent { attribute :>> name = "Lane B"; }
27
29
 
28
- action sampleActionFlow {
30
+ action sampleActionFlow : SystemAction {
29
31
  action receive : ReceiveInput;
30
32
  action validate : ValidateInput;
31
33
  action process : ProcessInput {
@@ -60,11 +62,16 @@ package memo_examples_sysml_diagram_samples_model_samples_action_flow_view {
60
62
 
61
63
  // MemoLink sample — the universal relation, exercised where nothing else
62
64
  // reaches. laneB is a `part` (LogicalComponent :> ArchitectureElement) and
63
- // ProcessInput is an `action def` (:> MemoAction). Those foundations share
64
- // no supertype, so every typed relation in the ontology is unavailable
65
- // here: legalRelationshipTypes returns MemoLink and nothing else.
65
+ // `sampleActionFlow.process` is an action usage (:> MemoAction). Those
66
+ // foundations share no supertype, so every typed relation in the ontology
67
+ // is unavailable here: legalRelationshipTypes returns MemoLink and nothing
68
+ // else.
69
+ //
70
+ // The target is the action *usage*, not the `ProcessInput` definition.
71
+ // Binding a value to a definition is not portable — SysIDE rejects it,
72
+ // because a value must be a feature and a definition is not.
66
73
  connection linkLaneBProcessesInput : MemoLink
67
- connect linkSource ::> laneB to linkTarget ::> ProcessInput {
74
+ connect linkSource ::> laneB to linkTarget ::> sampleActionFlow.process {
68
75
  attribute :>> linkRationale =
69
76
  "Lane B is the swimlane that carries the ProcessInput behaviour. The association crosses the part/action metaclass boundary, so no typed relation can express it.";
70
77
  }
@@ -78,6 +85,7 @@ package memo_examples_sysml_diagram_samples_model_samples_action_flow_view {
78
85
  attribute :>> shortDescription = "Dummy actions, typed item flows, successions, and a composite action for renderer development.";
79
86
  attribute :>> viewKind = DiagramViewKind::actionflow;
80
87
  attribute :>> diagramType = "afd";
88
+ part :>> viewpointDefinition = functionalViewpoint;
81
89
  }
82
90
 
83
91
  connection : IncludedIn connect sourceElement ::> sampleActionFlow.receive to targetView ::> sampleActionFlowView;
@@ -1,7 +1,7 @@
1
1
  // System context sample (general view kind, `context` diagram type). The system
2
2
  // under consideration is one block; every other element is an external actor,
3
3
  // neighbouring system, or use context it interacts with across its boundary.
4
- package memo_examples_sysml_diagram_samples_model_samples_context_view {
4
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_view {
5
5
  private import ScalarValues::*;
6
6
 
7
7
  private import memo_architecture_operational_context_actors::*;
@@ -9,6 +9,7 @@ package memo_examples_sysml_diagram_samples_model_samples_context_view {
9
9
  private import memo_architecture_operational_structure::*;
10
10
  private import memo_core_relationships::*;
11
11
  private import memo_viewpoints_definitions::*;
12
+ private import memo_viewpoints_context_context_viewpoint::*;
12
13
  private import memo_core_enumerations::*;
13
14
 
14
15
  // The operational system of interest is intentionally represented as one
@@ -17,7 +18,7 @@ package memo_examples_sysml_diagram_samples_model_samples_context_view {
17
18
  part infusionSystem : OperationalEntity {
18
19
  attribute :>> name = "Infusion Pump System";
19
20
  attribute :>> entityKind = OperationalEntityKind::device;
20
- attribute :>> contextRole = "systemOfInterest";
21
+ attribute :>> responsibility = "System of interest for this context view.";
21
22
  }
22
23
  part clinician : User { attribute :>> name = "Clinician"; }
23
24
  part patient : User { attribute :>> name = "Patient"; }
@@ -41,6 +42,7 @@ package memo_examples_sysml_diagram_samples_model_samples_context_view {
41
42
  attribute :>> shortDescription = "Operational system context: one black-box system boundary, its external people, peer systems, operating environment, and named boundary-crossing interactions.";
42
43
  attribute :>> viewKind = DiagramViewKind::general;
43
44
  attribute :>> diagramType = "context";
45
+ part :>> viewpointDefinition = contextViewpoint;
44
46
  part :>> selectionQuery {
45
47
  attribute :>> includeRelationshipKinds = ("InteractsWith", "ExchangesWith", "AppliesInContext");
46
48
  }
@@ -0,0 +1,47 @@
1
+ format: memo.viewlayout/v1
2
+ viewSource: model/catalog/viewpoints/unassigned/views/context_view.sysml
3
+ layouts:
4
+ diag-sample-sampleContextView:
5
+ nodes:
6
+ __context_boundary__:
7
+ x: 327.4
8
+ y: 109
9
+ ports: {}
10
+ infusionSystem:
11
+ x: 92
12
+ y: 74
13
+ ports: {}
14
+ biomedTech:
15
+ x: 40
16
+ y: 40
17
+ ports: {}
18
+ clinician:
19
+ x: 53.400000000000006
20
+ y: 146
21
+ ports: {}
22
+ patient:
23
+ x: 53.400000000000006
24
+ y: 252
25
+ ports: {}
26
+ homeContext:
27
+ x: 440
28
+ y: 600
29
+ ports: {}
30
+ pharmacySystem:
31
+ x: 855.4
32
+ y: 199
33
+ ports: {}
34
+ edges:
35
+ rel-8: {}
36
+ rel-9: {}
37
+ rel-10: {}
38
+ rel-11: {}
39
+ rel-12: {}
40
+ annotations: {}
41
+ canvas:
42
+ autoLayout: false
43
+ zoom: 0.7154088050314465
44
+ pan:
45
+ x: 50.15487421383642
46
+ y: -9.616352201257882
47
+ coordinateSpace: context-child-v1
@@ -1,10 +1,12 @@
1
- package memo_examples_sysml_diagram_samples_model_samples_functional_flow_view {
1
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_functional_flow_view {
2
2
  private import ScalarValues::*;
3
3
 
4
4
  private import memo_architecture_logical_structure::*;
5
5
  private import memo_architecture_logical_interfaces::*;
6
+ private import memo_architecture_functional_functions::*;
6
7
  private import memo_core_relationships::*;
7
8
  private import memo_viewpoints_definitions::*;
9
+ private import memo_viewpoints_functional_functional_viewpoint::*;
8
10
  private import memo_core_enumerations::*;
9
11
 
10
12
  // ─────────────────────────────────────────────────────────────────────────
@@ -37,13 +39,13 @@ package memo_examples_sysml_diagram_samples_model_samples_functional_flow_view {
37
39
  }
38
40
 
39
41
  // Functions with typed in/out pins
40
- action def FxAcquire { out reading : FxSensorReading; }
41
- action def FxCompute { in reading : FxSensorReading; out command : FxRateCommand; }
42
- action def FxEnforce { in command : FxRateCommand; out safeCommand : FxRateCommand; }
43
- action def FxDrive { in command : FxRateCommand; out energy : FxMotorEnergy; }
44
- action def FxDeliverMedication { in energy : FxMotorEnergy; out fluid : FxMedicationFluid; }
45
- action def FxMonitor { out signal : FxOcclusionSignal; }
46
- action def FxDetect { in signal : FxOcclusionSignal; }
42
+ action def FxAcquire specializes SystemAction { out item reading : FxSensorReading; }
43
+ action def FxCompute specializes SystemAction { in item reading : FxSensorReading; out item command : FxRateCommand; }
44
+ action def FxEnforce specializes SystemAction { in item command : FxRateCommand; out item safeCommand : FxRateCommand; }
45
+ action def FxDrive specializes SystemAction { in item command : FxRateCommand; out item energy : FxMotorEnergy; }
46
+ action def FxDeliverMedication specializes SystemAction { in item energy : FxMotorEnergy; out item fluid : FxMedicationFluid; }
47
+ action def FxMonitor specializes SystemAction { out item signal : FxOcclusionSignal; }
48
+ action def FxDetect specializes SystemAction { in item signal : FxOcclusionSignal; }
47
49
 
48
50
  // Component hierarchy used by the Level control:
49
51
  // L1 system → L2 subsystems → L3 allocated components.
@@ -68,24 +70,24 @@ package memo_examples_sysml_diagram_samples_model_samples_functional_flow_view {
68
70
  connection : Composes connect parent ::> fxDeliverySubsystem to child ::> fxActuator;
69
71
  connection : Composes connect parent ::> fxSafetySubsystem to child ::> fxSafety;
70
72
 
71
- action fxDeliveryFlow {
72
- action fxAcquire : FxAcquire { attribute name = "Acquire Sensor Data"; }
73
- action fxCompute : FxCompute { attribute name = "Compute Infusion Rate"; }
73
+ action fxDeliveryFlow : SystemAction {
74
+ action fxAcquire : FxAcquire { attribute :>> name = "Acquire Sensor Data"; }
75
+ action fxCompute : FxCompute { attribute :>> name = "Compute Infusion Rate"; }
74
76
 
75
77
  // Split: enforce/drive/deliver runs concurrently with occlusion monitoring
76
78
  fork fxForkDeliver;
77
- action fxEnforce : FxEnforce { attribute name = "Enforce Dose Limits"; }
78
- action fxDrive : FxDrive { attribute name = "Drive Pump Motor"; }
79
- action fxMonitor : FxMonitor { attribute name = "Monitor Occlusion"; }
80
- action fxDetect : FxDetect { attribute name = "Detect Occlusion"; }
79
+ action fxEnforce : FxEnforce { attribute :>> name = "Enforce Dose Limits"; }
80
+ action fxDrive : FxDrive { attribute :>> name = "Drive Pump Motor"; }
81
+ action fxMonitor : FxMonitor { attribute :>> name = "Monitor Occlusion"; }
82
+ action fxDetect : FxDetect { attribute :>> name = "Detect Occlusion"; }
81
83
  join fxJoinDeliver;
82
84
 
83
85
  // Composite function — valve sub-flow (drill-in)
84
86
  action fxDeliver : FxDeliverMedication {
85
- attribute name = "Deliver Medication";
86
- action fxOpenValve { attribute name = "Open Valve"; }
87
- action fxHoldDose { attribute name = "Hold Metered Dose"; }
88
- action fxCloseValve { attribute name = "Close Valve"; }
87
+ attribute :>> name = "Deliver Medication";
88
+ action fxOpenValve : SystemAction { attribute :>> name = "Open Valve"; }
89
+ action fxHoldDose : SystemAction { attribute :>> name = "Hold Metered Dose"; }
90
+ action fxCloseValve : SystemAction { attribute :>> name = "Close Valve"; }
89
91
 
90
92
  flow of FxMedicationFluid from fxDeliveryFlow.fxDeliver.fxHoldDose to fxCloseValve;
91
93
 
@@ -95,7 +97,7 @@ package memo_examples_sysml_diagram_samples_model_samples_functional_flow_view {
95
97
  first fxCloseValve then done;
96
98
  }
97
99
 
98
- action fxLog { attribute name = "Log Delivery"; }
100
+ action fxLog : SystemAction { attribute :>> name = "Log Delivery"; }
99
101
 
100
102
  flow of FxSensorReading from fxAcquire.reading to fxCompute.reading;
101
103
  flow of FxRateCommand from fxEnforce.safeCommand to fxDrive.command;
@@ -137,6 +139,7 @@ package memo_examples_sysml_diagram_samples_model_samples_functional_flow_view {
137
139
  attribute :>> shortDescription = "Component behaviour: functions in swimlanes per realising component, typed data/energy/material flows, a fork/join for concurrent occlusion monitoring, and a composite 'Deliver Medication' valve sub-flow (double-click to drill in).";
138
140
  attribute :>> viewKind = DiagramViewKind::actionflow;
139
141
  attribute :>> diagramType = "ffd";
142
+ part :>> viewpointDefinition = functionalViewpoint;
140
143
  }
141
144
 
142
145
  connection : IncludedIn connect sourceElement ::> fxDeliveryFlow.fxAcquire to targetView ::> fxDeliveryView;
@@ -1,12 +1,14 @@
1
- package memo_examples_sysml_diagram_samples_model_samples_interconnection_view {
1
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_interconnection_view {
2
2
  private import ScalarValues::*;
3
3
  private import memo_architecture_operational_context_actors::*;
4
4
  private import memo_architecture_operational_context_use_context::*;
5
5
 
6
6
  private import memo_architecture_logical_interfaces::*;
7
7
  private import memo_architecture_logical_structure::*;
8
+ private import memo_core_common::*;
8
9
  private import memo_core_relationships::*;
9
10
  private import memo_viewpoints_definitions::*;
11
+ private import memo_viewpoints_logical_logical_viewpoint::*;
10
12
  private import memo_core_enumerations::*;
11
13
 
12
14
  part coffeeMachine : LogicalComponent { attribute :>> name = "Coffee Machine"; }
@@ -17,19 +19,19 @@ package memo_examples_sysml_diagram_samples_model_samples_interconnection_view {
17
19
  part brewGroup : LogicalComponent { attribute :>> name = "Brew Group"; }
18
20
  part cup : LogicalComponent { attribute :>> name = "Cup"; }
19
21
 
20
- port mainsWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
21
- port beverageOut : DataPort { attribute :>> direction = DirectionKind::output; }
22
- port supplyWaterOut : DataPort { attribute :>> direction = DirectionKind::output; }
23
- port cupBeverageIn : DataPort { attribute :>> direction = DirectionKind::input; }
24
- port serviceInterface : DataPort { attribute :>> direction = DirectionKind::bidirectional; }
25
- port diagnostics : DataPort { attribute :>> direction = DirectionKind::output; }
26
- port tankWaterOut : DataPort { attribute :>> direction = DirectionKind::output; }
27
- port tankWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
28
- port heaterWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
29
- port heatedWaterOut : DataPort { attribute :>> direction = DirectionKind::output; }
30
- port brewWaterIn : DataPort { attribute :>> direction = DirectionKind::input; }
31
- port brewedCoffeeOut : DataPort { attribute :>> direction = DirectionKind::output; }
32
- port heaterStatusOut : DataPort { attribute :>> direction = DirectionKind::output; }
22
+ in port mainsWaterIn : DataPort { in item payload : MemoExchangeItem; }
23
+ out port beverageOut : DataPort { out item payload : MemoExchangeItem; }
24
+ out port supplyWaterOut : DataPort { out item payload : MemoExchangeItem; }
25
+ in port cupBeverageIn : DataPort { in item payload : MemoExchangeItem; }
26
+ inout port serviceInterface : DataPort { inout item payload : MemoExchangeItem; }
27
+ out port diagnostics : DataPort { out item payload : MemoExchangeItem; }
28
+ out port tankWaterOut : DataPort { out item payload : MemoExchangeItem; }
29
+ in port tankWaterIn : DataPort { in item payload : MemoExchangeItem; }
30
+ in port heaterWaterIn : DataPort { in item payload : MemoExchangeItem; }
31
+ out port heatedWaterOut : DataPort { out item payload : MemoExchangeItem; }
32
+ in port brewWaterIn : DataPort { in item payload : MemoExchangeItem; }
33
+ out port brewedCoffeeOut : DataPort { out item payload : MemoExchangeItem; }
34
+ out port heaterStatusOut : DataPort { out item payload : MemoExchangeItem; }
33
35
 
34
36
  connection : Composes connect parent ::> coffeeMachine to child ::> waterTank;
35
37
  connection : Composes connect parent ::> coffeeMachine to child ::> heaterAssembly;
@@ -66,6 +68,7 @@ package memo_examples_sysml_diagram_samples_model_samples_interconnection_view {
66
68
  attribute :>> shortDescription = "Balanced internal architecture with readable boundary ports, nested service diagnostics, and external water and beverage interfaces.";
67
69
  attribute :>> viewKind = DiagramViewKind::interconnection;
68
70
  attribute :>> diagramType = "ibd";
71
+ part :>> viewpointDefinition = logicalArchitectureViewpoint;
69
72
  part :>> selectionQuery {
70
73
  attribute :>> includeRelationshipKinds = ("Composes", "ExchangesWith");
71
74
  }