@memoarchitect/ontology 0.6.5 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/README.md +1 -1
  2. package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
  3. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  4. package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
  5. package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
  6. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  7. package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
  8. package/examples/extensions/clinical/memo.package.yaml +18 -9
  9. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +10 -2
  10. package/examples/extensions/template/memo.package.yaml +17 -9
  11. package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
  12. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  13. package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  15. package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
  16. package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
  17. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +1 -1
  18. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +1 -1
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +2 -2
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +1 -1
  21. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +5 -5
  22. package/examples/gpca-pump/model/catalog/gpca_context.sysml +3 -8
  23. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +6 -6
  24. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
  25. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +7 -6
  26. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +19 -8
  27. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +2 -2
  28. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1 -1
  29. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +34 -30
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +27 -23
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +1 -1
  33. package/examples/gpca-pump/model/catalog/project.sysml +21 -0
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
  35. package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +3 -3
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
  37. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +3 -3
  38. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
  39. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +4 -4
  40. package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  41. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
  42. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
  44. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
  45. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +7 -7
  46. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +3 -3
  47. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
  48. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +3 -3
  49. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
  50. package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
  51. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +2 -2
  52. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +3 -3
  53. package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
  54. package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
  55. package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  56. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +6 -6
  57. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
  58. package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  59. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +3 -3
  60. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +3 -3
  61. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +2 -2
  62. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
  63. package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
  64. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +3 -3
  65. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +3 -3
  66. package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
  67. package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +4 -4
  68. package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
  69. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +3 -3
  70. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +2 -2
  71. package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
  72. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  73. package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
  74. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +1 -0
  75. package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
  76. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  77. package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
  78. package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
  79. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  80. package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
  81. package/examples/nested-architecture-dsm/README.md +49 -0
  82. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +174 -0
  83. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +183 -0
  84. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
  85. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
  86. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +90 -0
  87. package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
  88. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +49 -0
  89. package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
  90. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -6
  91. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  92. package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
  93. package/examples/software-only-medical-device/model/catalog/project.sysml +24 -0
  94. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  95. package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
  96. package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
  97. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -19
  98. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  99. package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
  100. package/examples/surgical-robot/model/catalog/project.sysml +24 -0
  101. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +5 -3
  102. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  103. package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
  104. package/examples/sysml-diagram-samples/README.md +7 -0
  105. package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
  106. package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
  107. package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
  108. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  109. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +18 -10
  110. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +4 -2
  111. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
  112. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/functional_flow_view.sysml +23 -20
  113. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/interconnection_view.sysml +17 -14
  114. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
  115. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/operational_behaviour_view.sysml +23 -20
  116. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
  117. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +3 -1
  118. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +51 -0
  119. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/state_transition_view.sysml +3 -1
  120. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/tree_view.sysml +3 -1
  121. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +3 -1
  122. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
  123. package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
  124. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +2 -1
  125. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  126. package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
  127. package/examples/ui-screen-regions/README.md +117 -0
  128. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +60 -0
  129. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +189 -0
  130. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
  131. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
  132. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
  133. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
  134. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
  135. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
  136. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
  137. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
  138. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
  139. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
  140. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
  141. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +60 -0
  142. package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
  143. package/examples/ui-screen-regions/model/catalog/traces.sysml +276 -0
  144. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  145. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
  146. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  147. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
  148. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  149. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
  150. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
  151. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
  152. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
  153. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
  154. package/memo.manifest.yaml +2 -0
  155. package/methodologies/default/memo.package.yaml +19 -9
  156. package/methodologies/gpca/memo.package.yaml +18 -9
  157. package/ontology/memo.package.yaml +23 -8
  158. package/package.json +2 -4
  159. package/profile/memo.package.yaml +18 -9
  160. package/src/architecture/decisions/memo_decisions.sysml +7 -0
  161. package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
  162. package/src/architecture/functional/functions/memo_functions.sysml +5 -12
  163. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +1 -3
  164. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +18 -5
  165. package/src/architecture/implementation/ui/memo_ui.sysml +210 -27
  166. package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -2
  167. package/src/architecture/logical/structure/memo_logical_structure.sysml +71 -15
  168. package/src/architecture/operational/activities/memo_activities.sysml +0 -1
  169. package/src/architecture/operational/scenarios/memo_scenarios.sysml +2 -2
  170. package/src/architecture/operational/workflows/memo_workflows.sysml +0 -6
  171. package/src/{compliance/change/memo_change.sysml → artifacts/configuration_management/memo_configuration_management.sysml} +5 -3
  172. package/src/artifacts/core/memo_controlled_artifacts.sysml +33 -0
  173. package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
  174. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +1 -1
  175. package/src/assurance/human_factors/memo_human_factors.sysml +1 -1
  176. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +11 -0
  177. package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
  178. package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
  179. package/src/core/annotations/memo_annotations.sysml +77 -0
  180. package/src/core/common/memo_common.sysml +20 -3
  181. package/src/core/consistency_rules/consistency_rules.sysml +7 -0
  182. package/src/core/dimensions/dimensions.sysml +5 -1
  183. package/src/core/enumerations/memo_enumerations.sysml +41 -6
  184. package/src/core/methodology_scope/methodology_scope.sysml +7 -15
  185. package/src/core/relationships/memo_relationships.sysml +4 -2
  186. package/src/memo_namespaces.sysml +97 -67
  187. package/src/methodology/core/memo_core.sysml +45 -2
  188. package/src/methodology/profiles/memo_profiles.sysml +30 -40
  189. package/src/methodology/workflow/memo_workflow.sysml +7 -2
  190. package/src/rules/closure/closure_rules.sysml +104 -31
  191. package/src/rules/coverage/coverage_rules.sysml +4 -256
  192. package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
  193. package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
  194. package/src/rules/ontology/ontology_invariants.sysml +30 -73
  195. package/src/rules/quantitative/quantitative_rules.sysml +8 -8
  196. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +7 -0
  197. package/src/viewpoints/clinical/clinical_viewpoint.sysml +3 -1
  198. package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
  199. package/src/viewpoints/context/context_viewpoint.sysml +3 -1
  200. package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
  201. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +3 -1
  202. package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
  203. package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
  204. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +4 -0
  205. package/src/viewpoints/functional/functional_viewpoint.sysml +3 -1
  206. package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +2 -2
  207. package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +2 -2
  208. package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
  209. package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
  210. package/src/viewpoints/operational/operational_viewpoint.sysml +3 -1
  211. package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +2 -2
  212. package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
  213. package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
  214. package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
  215. package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
  216. package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
  217. package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
  218. package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
  219. package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
  220. package/src/viewpoints/software/software_viewpoint.sysml +3 -1
  221. package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
  222. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
  223. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
  224. package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
  225. package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
  226. package/src/viewpoints/verification/verification_viewpoint.sysml +3 -1
  227. package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +2 -2
  228. package/templates/connected-device/memo.package.yaml +11 -5
  229. package/templates/connected-device/model/catalog/project.sysml +28 -0
  230. package/templates/connected-device/syside.toml +1 -1
  231. package/templates/default/memo.package.yaml +11 -5
  232. package/templates/default/model/catalog/project.sysml +28 -0
  233. package/templates/default/syside.toml +1 -1
  234. package/templates/infusion-pump/memo.package.yaml +11 -5
  235. package/templates/infusion-pump/model/catalog/project.sysml +28 -0
  236. package/templates/infusion-pump/syside.toml +1 -1
  237. package/templates/monitoring-device/memo.package.yaml +11 -5
  238. package/templates/monitoring-device/model/catalog/project.sysml +28 -0
  239. package/templates/monitoring-device/syside.toml +1 -1
  240. package/templates/samd/memo.package.yaml +11 -5
  241. package/templates/samd/model/catalog/project.sysml +28 -0
  242. package/templates/samd/syside.toml +1 -1
  243. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
  244. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
  245. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
  246. package/examples/gpca-pump/memo.config.yaml +0 -9
  247. package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
  248. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
  249. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
  250. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
  251. package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
  252. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
  253. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
  254. package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
  255. package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
  256. package/ontology/memo.rendering.yaml +0 -84
  257. package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
  258. package/src/compliance/document_views/memo_document_views.sysml +0 -7
  259. package/src/compliance/iso14971/risk_management_file.sysml +0 -16
  260. package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
  261. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
  262. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +0 -0
  263. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +0 -0
  264. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +0 -0
  265. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +0 -0
  266. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +0 -0
  267. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +0 -0
  268. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +0 -0
  269. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +0 -0
  270. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +0 -0
  271. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +0 -0
  272. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +0 -0
  273. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +0 -0
  274. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +0 -0
  275. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +0 -0
  276. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +0 -0
  277. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
  278. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +0 -0
  279. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +0 -0
  280. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +0 -0
  281. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +0 -0
  282. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +0 -0
  283. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +0 -0
  284. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/srs.md +0 -0
  285. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +0 -0
  286. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +0 -0
  287. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
  288. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +0 -0
  289. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/task-analysis.md +0 -0
  290. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +0 -0
  291. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
  292. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +0 -0
  293. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
  294. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fmea.md +0 -0
  295. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
  296. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +0 -0
  297. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
  298. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
  299. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +0 -0
  300. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
  301. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
  302. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
  303. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
  304. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
  305. /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
  306. /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  307. /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  308. /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
  309. /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  310. /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
  311. /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
  312. /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  313. /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
  314. /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
  315. /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  316. /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  317. /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
  318. /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  319. /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
@@ -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
  }
@@ -0,0 +1,94 @@
1
+ format: memo.viewlayout/v1
2
+ viewSource: model/catalog/viewpoints/unassigned/views/interconnection_view.sysml
3
+ layouts:
4
+ diag-sample-sampleInterconnectionView:
5
+ nodes:
6
+ coffeeMachine:
7
+ x: 301.2
8
+ y: 0
9
+ ports:
10
+ mainsWaterIn:
11
+ x: -12
12
+ y: 95
13
+ side: left
14
+ beverageOut:
15
+ x: 536
16
+ y: 375
17
+ side: right
18
+ serviceInterface:
19
+ x: 536
20
+ y: 217
21
+ side: right
22
+ diagnostics:
23
+ x: 536
24
+ y: 247
25
+ side: right
26
+ width: 768
27
+ height: 422
28
+ waterTank:
29
+ x: 118.75
30
+ y: 48
31
+ ports:
32
+ tankWaterOut:
33
+ x: 299.5
34
+ y: 47
35
+ side: right
36
+ tankWaterIn:
37
+ x: -12
38
+ y: 47
39
+ side: left
40
+ heaterAssembly:
41
+ x: 78.80000000000001
42
+ y: 220
43
+ ports:
44
+ heaterWaterIn:
45
+ x: -12
46
+ y: 47
47
+ side: left
48
+ heatedWaterOut:
49
+ x: 352
50
+ y: 47
51
+ side: right
52
+ brewGroup:
53
+ x: 134
54
+ y: 328
55
+ ports:
56
+ brewWaterIn:
57
+ x: -12
58
+ y: 47
59
+ side: left
60
+ brewedCoffeeOut:
61
+ x: 268
62
+ y: 47
63
+ side: right
64
+ waterSupply:
65
+ x: 0
66
+ y: 170
67
+ ports:
68
+ supplyWaterOut:
69
+ x: 198.8
70
+ y: 47
71
+ side: right
72
+ cup:
73
+ x: 1000
74
+ y: 320
75
+ ports:
76
+ cupBeverageIn:
77
+ x: -12
78
+ y: 50
79
+ side: left
80
+ edges:
81
+ rel-66: {}
82
+ rel-67: {}
83
+ rel-68: {}
84
+ rel-69: {}
85
+ rel-70: {}
86
+ rel-71: {}
87
+ annotations: {}
88
+ canvas:
89
+ autoLayout: false
90
+ zoom: 0.83251321227496
91
+ pan:
92
+ x: -129.43112026011397
93
+ y: -3.900376690780462
94
+ coordinateSpace: context-child-v1
@@ -1,10 +1,12 @@
1
- package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_view {
1
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operational_behaviour_view {
2
2
  private import ScalarValues::*;
3
3
  private import memo_architecture_operational_context_actors::*;
4
4
  private import memo_core_relationships::*;
5
5
  private import memo_architecture_logical_interfaces::*;
6
6
  private import memo_architecture_operational_structure::*;
7
+ private import memo_architecture_operational_activities::*;
7
8
  private import memo_viewpoints_definitions::*;
9
+ private import memo_viewpoints_operational_operational_viewpoint::*;
8
10
  private import memo_core_enumerations::*;
9
11
 
10
12
  // Operational activity across clinical roles. The fixture is intentionally
@@ -16,17 +18,17 @@ package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_
16
18
  attribute :>> itemKind = InterfaceItemKind::signal;
17
19
  }
18
20
 
19
- action def OpPrescribeTherapy { out prescription : OpPrescription; }
20
- action def OpVerifyPrescription { in prescription : OpPrescription; }
21
- action def OpRequestBolus { out bolusRequest : OpBolusRequest; }
22
- action def OpCheckLockout { in bolusRequest : OpBolusRequest; }
21
+ action def OpPrescribeTherapy specializes OperationalActivity { out item prescription : OpPrescription; }
22
+ action def OpVerifyPrescription specializes OperationalActivity { in item prescription : OpPrescription; }
23
+ action def OpRequestBolus specializes OperationalActivity { out item bolusRequest : OpBolusRequest; }
24
+ action def OpCheckLockout specializes OperationalActivity { in item bolusRequest : OpBolusRequest; }
23
25
 
24
26
  // Use the canonical MEMO operational system type—never a sample-local
25
27
  // placeholder—so ontology-driven Explorer grouping remains authoritative.
26
28
  part opCareSystem : OperationalEntity {
27
29
  attribute :>> name = "PCA Care System";
28
30
  attribute :>> entityKind = OperationalEntityKind::device;
29
- attribute :>> contextRole = "systemOfInterest";
31
+ attribute :>> responsibility = "System of interest for this context view.";
30
32
  }
31
33
  part opClinicalTeam : User {
32
34
  attribute :>> actorKind = ActorKind::clinician; attribute :>> name = "Clinical Team"; }
@@ -48,22 +50,22 @@ package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_
48
50
  connection : Composes connect parent ::> opClinicalTeam to child ::> opRoleBiomed;
49
51
  connection : Composes connect parent ::> opPatientGroup to child ::> opRolePatient;
50
52
 
51
- action opSetupFlow {
52
- action opPrescribe : OpPrescribeTherapy { attribute name = "Prescribe Therapy"; }
53
- action opVerify : OpVerifyPrescription { attribute name = "Verify Prescription"; }
53
+ action opSetupFlow : OperationalActivity {
54
+ action opPrescribe : OpPrescribeTherapy { attribute :>> name = "Prescribe Therapy"; }
55
+ action opVerify : OpVerifyPrescription { attribute :>> name = "Verify Prescription"; }
54
56
  fork opForkPrep;
55
- action opPrime { attribute name = "Prime Pump & Load Reservoir"; }
56
- action opSelfTest { attribute name = "Run Device Self-Test"; }
57
+ action opPrime : OperationalActivity { attribute :>> name = "Prime Pump & Load Reservoir"; }
58
+ action opSelfTest : OperationalActivity { attribute :>> name = "Run Device Self-Test"; }
57
59
  join opJoinPrep;
58
- action opProgram { attribute name = "Program Pump Parameters"; }
59
- action opConnect { attribute name = "Connect to Patient"; }
60
- action opStart { attribute name = "Start Infusion"; }
61
- action opAdminister {
62
- attribute name = "Administer PCA Therapy";
63
- action opRequestBolus : OpRequestBolus { attribute name = "Request Bolus"; }
64
- action opCheckLockout : OpCheckLockout { attribute name = "Check Lockout"; }
65
- action opDeliverDose { attribute name = "Deliver Dose"; }
66
- action opLogEvent { attribute name = "Log Dose Event"; }
60
+ action opProgram : OperationalActivity { attribute :>> name = "Program Pump Parameters"; }
61
+ action opConnect : OperationalActivity { attribute :>> name = "Connect to Patient"; }
62
+ action opStart : OperationalActivity { attribute :>> name = "Start Infusion"; }
63
+ action opAdminister : OperationalActivity {
64
+ attribute :>> name = "Administer PCA Therapy";
65
+ action opRequestBolus : OpRequestBolus { attribute :>> name = "Request Bolus"; }
66
+ action opCheckLockout : OpCheckLockout { attribute :>> name = "Check Lockout"; }
67
+ action opDeliverDose : OperationalActivity { attribute :>> name = "Deliver Dose"; }
68
+ action opLogEvent : OperationalActivity { attribute :>> name = "Log Dose Event"; }
67
69
  flow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
68
70
  first start then opRequestBolus;
69
71
  first opRequestBolus then opCheckLockout;
@@ -109,6 +111,7 @@ package memo_examples_sysml_diagram_samples_model_samples_operational_behaviour_
109
111
  attribute :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step.";
110
112
  attribute :>> viewKind = DiagramViewKind::actionflow;
111
113
  attribute :>> diagramType = "ofd";
114
+ part :>> viewpointDefinition = operationalViewpoint;
112
115
  }
113
116
 
114
117
  connection : IncludedIn connect sourceElement ::> opSetupFlow.opPrescribe to targetView ::> opSetupView;
@@ -0,0 +1,13 @@
1
+ format: memo.viewlayout/v1
2
+ viewSource: model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml
3
+ layouts:
4
+ diag-sample-opSetupView:
5
+ nodes: {}
6
+ edges: {}
7
+ canvas:
8
+ autoLayout: true
9
+ zoom: 0.3666153460391409
10
+ pan:
11
+ x: 359.78478424853927
12
+ y: 41.19938625300375
13
+ coordinateSpace: context-child-v1
@@ -1,13 +1,14 @@
1
1
  // Requirements sample (general view kind, `req` diagram type). Stakeholder needs
2
2
  // on the left derive into system requirements; `DerivesFrom` edges render as the
3
3
  // requirements-diagram trace lines.
4
- package memo_examples_sysml_diagram_samples_model_samples_requirements_view {
4
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirements_view {
5
5
  private import ScalarValues::*;
6
6
 
7
7
  private import memo_assurance_requirements_needs::*;
8
8
  private import memo_assurance_requirements::*;
9
9
  private import memo_core_relationships::*;
10
10
  private import memo_viewpoints_definitions::*;
11
+ private import memo_viewpoints_requirements_requirements_viewpoint::*;
11
12
  private import memo_core_enumerations::*;
12
13
 
13
14
  requirement needSafeTherapy : Need {
@@ -50,6 +51,7 @@ package memo_examples_sysml_diagram_samples_model_samples_requirements_view {
50
51
  attribute :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges.";
51
52
  attribute :>> viewKind = DiagramViewKind::general;
52
53
  attribute :>> diagramType = "req";
54
+ part :>> viewpointDefinition = requirementsViewpoint;
53
55
  part :>> selectionQuery {
54
56
  attribute :>> includeRelationshipKinds = ("DerivesFrom");
55
57
  }
@@ -0,0 +1,51 @@
1
+ // Standard SysML v2 activity sample (actionflow view kind, `afd` diagram type).
2
+ //
3
+ // The view over `activity_example::CustomerProcess`, the standard-SysML activity
4
+ // fixture in `model/sysml_v2_activity_example.sysml`. It exists because the
5
+ // fixture's whole point is the node types `action_flow_view.sysml` does not
6
+ // have — decision, merge, fork, join, accept, send, terminate, and guarded
7
+ // successions. Without a view exposing it the fixture parses into the model and
8
+ // is never drawn, which is indistinguishable from a renderer that cannot draw
9
+ // decisions.
10
+ //
11
+ // Nothing here specializes a MEMO kind: the fixture is plain standard SysML,
12
+ // and that is the property under test. The renderer classifies its nodes from
13
+ // the metamodel (`activity-notation.ts`), not from an ontology kind.
14
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard_activity_view {
15
+ private import ScalarValues::*;
16
+
17
+ private import memo_core_relationships::*;
18
+ private import memo_viewpoints_definitions::*;
19
+ private import memo_viewpoints_functional_functional_viewpoint::*;
20
+ private import memo_core_enumerations::*;
21
+
22
+ private import activity_example::*;
23
+
24
+ view standardActivityView : MemoDiagramView {
25
+ expose CustomerProcess::**;
26
+ attribute depth = 2;
27
+ attribute :>> title = "Sample · Customer Purchase Process";
28
+ attribute :>> shortDescription = "Customer login, guarded validation, shopping loop, checkout, credit approval, and explicit completion outcomes.";
29
+ attribute :>> viewKind = DiagramViewKind::actionflow;
30
+ attribute :>> diagramType = "afd";
31
+ part :>> viewpointDefinition = functionalViewpoint;
32
+ }
33
+
34
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::customerLogsIn to targetView ::> standardActivityView;
35
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::validUserDecision to targetView ::> standardActivityView;
36
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::rejected to targetView ::> standardActivityView;
37
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::browseCatalog to targetView ::> standardActivityView;
38
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::viewBookStore to targetView ::> standardActivityView;
39
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::selectBookForPurchase to targetView ::> standardActivityView;
40
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::addToShoppingBasket to targetView ::> standardActivityView;
41
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::viewShoppingBasket to targetView ::> standardActivityView;
42
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::shoppingDecision to targetView ::> standardActivityView;
43
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::commitOrder to targetView ::> standardActivityView;
44
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::supplyCreditCardDetails to targetView ::> standardActivityView;
45
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::creditDecision to targetView ::> standardActivityView;
46
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::rejectCreditCard to targetView ::> standardActivityView;
47
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::closeOrder to targetView ::> standardActivityView;
48
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::confirmPurchase to targetView ::> standardActivityView;
49
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::itemsDelivered to targetView ::> standardActivityView;
50
+ connection : IncludedIn connect sourceElement ::> CustomerProcess::orderComplete to targetView ::> standardActivityView;
51
+ }
@@ -1,12 +1,13 @@
1
1
  // State transition sample (statetransition view kind, `stm` diagram type). A
2
2
  // behaviour machine owns its mode states; each Transition carries `sourceState`
3
3
  // / `targetState` naming the states it connects, and renders as a labelled edge.
4
- package memo_examples_sysml_diagram_samples_model_samples_state_transition_view {
4
+ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_transition_view {
5
5
  private import ScalarValues::*;
6
6
 
7
7
  private import memo_architecture_functional_behavior::*;
8
8
  private import memo_core_relationships::*;
9
9
  private import memo_viewpoints_definitions::*;
10
+ private import memo_viewpoints_functional_functional_viewpoint::*;
10
11
  private import memo_core_enumerations::*;
11
12
 
12
13
  state pumpModes : StateMachine { attribute :>> name = "Pump Operating Modes"; }
@@ -84,6 +85,7 @@ package memo_examples_sysml_diagram_samples_model_samples_state_transition_view
84
85
  attribute :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding.";
85
86
  attribute :>> viewKind = DiagramViewKind::statetransition;
86
87
  attribute :>> diagramType = "stm";
88
+ part :>> viewpointDefinition = functionalViewpoint;
87
89
  part :>> selectionQuery {
88
90
  attribute :>> includeElementKinds = ("StateMachine", "ModeState", "Transition");
89
91
  }