@memoarchitect/ontology 0.13.2 → 0.15.1

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 (315) hide show
  1. package/README.md +5 -3
  2. package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
  3. package/examples/connected-patient-monitor/memo.package.yaml +3 -1
  4. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
  5. package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
  6. package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
  8. package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
  9. package/examples/functional-logical-physical/memo.identity.yaml +28 -0
  10. package/examples/functional-logical-physical/memo.package.yaml +3 -1
  11. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
  12. package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
  13. package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
  14. package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
  15. package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
  16. package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
  17. package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
  18. package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
  19. package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
  20. package/examples/gpca-pump/analysis/Samples/README.md +15 -9
  21. package/examples/gpca-pump/analysis/memo_model.py +243 -0
  22. package/examples/gpca-pump/memo.identity.yaml +521 -26
  23. package/examples/gpca-pump/memo.package.yaml +3 -1
  24. package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
  25. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
  26. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -357
  27. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
  28. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
  29. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
  30. package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
  31. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
  32. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
  33. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
  34. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
  35. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
  36. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
  37. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
  38. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
  39. package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
  40. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
  41. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -90
  42. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
  43. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
  44. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
  45. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
  47. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
  48. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
  49. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
  50. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
  51. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
  52. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
  53. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
  54. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
  55. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
  56. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
  57. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
  58. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
  59. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
  60. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
  61. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
  62. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
  63. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
  64. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
  65. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
  66. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
  67. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
  68. package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
  69. package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
  70. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
  71. package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
  72. package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
  73. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
  74. package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
  75. package/examples/multidimensional-layers/memo.package.yaml +3 -1
  76. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
  77. package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
  78. package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
  79. package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
  80. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
  81. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
  82. package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
  83. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
  84. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
  85. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
  86. package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
  87. package/examples/reusable-instrument/memo.package.yaml +3 -1
  88. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
  89. package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
  90. package/examples/robot-cell-family/README.md +34 -0
  91. package/examples/robot-cell-family/memo.identity.yaml +142 -0
  92. package/examples/robot-cell-family/memo.package.yaml +7 -0
  93. package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
  94. package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
  95. package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
  96. package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
  97. package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
  98. package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
  99. package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
  100. package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
  101. package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
  102. package/examples/robot-platform/memo.package.yaml +3 -0
  103. package/examples/robot-platform/model/platform.sysml +15 -0
  104. package/examples/ros-mobile-robot/README.md +5 -4
  105. package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
  106. package/examples/ros-mobile-robot/memo.package.yaml +3 -1
  107. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
  108. package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
  109. package/examples/software-only-medical-device/memo.package.yaml +3 -1
  110. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
  111. package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
  112. package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
  113. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
  114. package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
  115. package/examples/surgical-robot/memo.package.yaml +3 -1
  116. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
  117. package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
  118. package/examples/sysml-diagram-samples/README.md +1 -0
  119. package/examples/sysml-diagram-samples/memo.identity.yaml +459 -0
  120. package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
  121. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
  122. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +5 -5
  123. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
  124. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
  125. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
  126. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
  127. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +25 -25
  128. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
  129. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
  130. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
  131. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
  132. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
  133. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
  134. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
  135. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
  136. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
  137. package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
  138. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
  139. package/examples/temperature-alarm/memo.identity.yaml +6 -0
  140. package/examples/temperature-alarm/memo.package.yaml +3 -1
  141. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
  142. package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
  143. package/examples/ui-screen-regions/memo.identity.yaml +33 -0
  144. package/examples/ui-screen-regions/memo.package.yaml +3 -1
  145. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
  146. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
  147. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
  148. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
  149. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
  150. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
  151. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
  152. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
  153. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
  154. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
  155. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
  156. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
  157. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  158. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  159. package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
  160. package/extensions/README.md +65 -16
  161. package/extensions/aadl/memo.package.yaml +1 -1
  162. package/extensions/aadl/src/aadl_extension.sysml +5 -2
  163. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
  164. package/extensions/clinical/memo.package.yaml +1 -1
  165. package/extensions/clinical/src/clinical_extension.sysml +2 -0
  166. package/extensions/cloud/memo.package.yaml +1 -1
  167. package/extensions/container/memo.package.yaml +1 -1
  168. package/extensions/messaging/memo.package.yaml +1 -1
  169. package/extensions/messaging/src/messaging_extension.sysml +2 -2
  170. package/extensions/ros/memo.package.yaml +1 -1
  171. package/extensions/ros/src/ros_extension.sysml +25 -24
  172. package/extensions/template/memo.package.yaml +1 -1
  173. package/extensions/template/model/extension.sysml +25 -0
  174. package/memo.manifest.yaml +1 -7
  175. package/methodologies/default/memo.package.yaml +1 -1
  176. package/methodologies/gpca/memo.package.yaml +1 -1
  177. package/ontology/memo.package.yaml +1 -1
  178. package/package.json +6 -4
  179. package/profile/memo.package.yaml +1 -1
  180. package/src/architecture/decisions/memo_decisions.sysml +9 -2
  181. package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
  182. package/src/architecture/functional/functions/memo_functions.sysml +45 -31
  183. package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
  184. package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
  185. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
  186. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
  187. package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
  188. package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
  189. package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
  190. package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
  191. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
  192. package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
  193. package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
  194. package/src/architecture/operational/structure/memo_operational.sysml +5 -2
  195. package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
  196. package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
  197. package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
  198. package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
  199. package/src/architecture/variability/memo_variability.sysml +87 -0
  200. package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
  201. package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
  202. package/src/artifacts/standards/cfr_21_820.sysml +12 -24
  203. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
  204. package/src/artifacts/standards/iec_60601_1.sysml +16 -32
  205. package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
  206. package/src/artifacts/standards/iec_60812.sysml +4 -8
  207. package/src/artifacts/standards/iec_62304.sysml +607 -47
  208. package/src/artifacts/standards/iec_62366_1.sysml +12 -24
  209. package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
  210. package/src/artifacts/standards/iso_13485.sysml +12 -24
  211. package/src/artifacts/standards/iso_14971.sysml +118 -20
  212. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
  213. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
  214. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
  215. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
  216. package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
  217. package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
  218. package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
  219. package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
  220. package/src/artifacts/templates/dhf/system/sad.md +1 -1
  221. package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
  222. package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
  223. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
  224. package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
  225. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
  226. package/src/assurance/safety_risk/memo_risk.sysml +39 -1
  227. package/src/core/common/memo_common.sysml +61 -68
  228. package/src/core/enumerations/memo_enumerations.sysml +93 -9
  229. package/src/core/relationships/memo_relationships.sysml +17 -11
  230. package/src/core/relationships/memo_workspace_membership.sysml +284 -0
  231. package/src/core/semantics/semantics.sysml +58 -0
  232. package/src/core/terminology/terminology.sysml +7 -0
  233. package/src/memo_namespaces.sysml +6 -0
  234. package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
  235. package/src/methodology/core/memo_core.sysml +85 -29
  236. package/src/methodology/profiles/memo_profiles.sysml +217 -61
  237. package/src/methodology/workflow/memo_workflow.sysml +28 -0
  238. package/src/rules/closure/closure_rules.sysml +250 -4
  239. package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
  240. package/src/rules/ontology/ontology_invariants.sysml +288 -48
  241. package/src/rules/quantitative/quantitative_rules.sysml +4 -0
  242. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
  243. package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
  244. package/src/viewpoints/context/context_viewpoint.sysml +2 -3
  245. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
  246. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
  247. package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
  248. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
  249. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  250. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
  251. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
  252. package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
  253. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
  254. package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
  255. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
  256. package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
  257. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
  258. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
  259. package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
  260. package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
  261. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
  262. package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
  263. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
  264. package/src/viewpoints/software/software_viewpoint.sysml +2 -3
  265. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
  266. package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
  267. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
  268. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
  269. package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
  270. package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
  271. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
  272. package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
  273. package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
  274. package/templates/default/memo.package.yaml +6 -1
  275. package/templates/default/model/catalog/architecture/system.sysml +7 -3
  276. package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
  277. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
  278. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
  279. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
  280. package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
  281. package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
  282. package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
  283. package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
  284. package/extensions/container/src/methodology/container_methodology.sysml +0 -19
  285. package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
  286. package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
  287. package/extensions/template/src/extension.sysml +0 -39
  288. package/templates/connected-device/memo.package.yaml +0 -13
  289. package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
  290. package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
  291. package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
  292. package/templates/connected-device/model/catalog/project.sysml +0 -30
  293. package/templates/connected-device/package.json +0 -8
  294. package/templates/connected-device/syside.toml +0 -13
  295. package/templates/infusion-pump/memo.package.yaml +0 -13
  296. package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
  297. package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
  298. package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
  299. package/templates/infusion-pump/model/catalog/project.sysml +0 -30
  300. package/templates/infusion-pump/package.json +0 -8
  301. package/templates/infusion-pump/syside.toml +0 -13
  302. package/templates/monitoring-device/memo.package.yaml +0 -13
  303. package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
  304. package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
  305. package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
  306. package/templates/monitoring-device/model/catalog/project.sysml +0 -30
  307. package/templates/monitoring-device/package.json +0 -8
  308. package/templates/monitoring-device/syside.toml +0 -13
  309. package/templates/samd/memo.package.yaml +0 -13
  310. package/templates/samd/model/catalog/architecture/system.sysml +0 -5
  311. package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
  312. package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
  313. package/templates/samd/model/catalog/project.sysml +0 -30
  314. package/templates/samd/package.json +0 -8
  315. package/templates/samd/syside.toml +0 -13
@@ -97,43 +97,36 @@ package memo_viewpoints_stakeholders_concerns {
97
97
 
98
98
  part def Availability :> MemoQualityAttribute {
99
99
  @MemoIdentity { :>> providedId = "QA-1"; }
100
- attribute :>> name = "Availability";
101
100
  ref :>> addressesConcerns = (safetyConcern, reliabilityConcern, clinicalConcern);
102
101
  attribute :>> measure = "Proportion of scheduled procedure time the function is delivered, and time to recover after a fault.";
103
102
  }
104
103
  part def Performance :> MemoQualityAttribute {
105
104
  @MemoIdentity { :>> providedId = "QA-2"; }
106
- attribute :>> name = "Performance";
107
105
  ref :>> addressesConcerns = (performanceConcern, clinicalConcern);
108
106
  attribute :>> measure = "Latency and throughput under the arrival pattern the procedure produces.";
109
107
  }
110
108
  part def Security :> MemoQualityAttribute {
111
109
  @MemoIdentity { :>> providedId = "QA-3"; }
112
- attribute :>> name = "Security";
113
110
  ref :>> addressesConcerns = (cybersecurityConcern, privacyConcern, safetyConcern);
114
111
  attribute :>> measure = "Resistance to a stated threat, and time to detect and recover from a compromise.";
115
112
  }
116
113
  part def Modifiability :> MemoQualityAttribute {
117
114
  @MemoIdentity { :>> providedId = "QA-4"; }
118
- attribute :>> name = "Modifiability";
119
115
  ref :>> addressesConcerns = (regulatoryConcern);
120
116
  attribute :>> measure = "Cost and blast radius of a stated change, including the re-verification it forces.";
121
117
  }
122
118
  part def Testability :> MemoQualityAttribute {
123
119
  @MemoIdentity { :>> providedId = "QA-5"; }
124
- attribute :>> name = "Testability";
125
120
  ref :>> addressesConcerns = (regulatoryConcern, safetyConcern);
126
121
  attribute :>> measure = "Probability that a fault present is revealed by the next test, and the effort to observe it.";
127
122
  }
128
123
  part def Usability :> MemoQualityAttribute {
129
124
  @MemoIdentity { :>> providedId = "QA-6"; }
130
- attribute :>> name = "Usability";
131
125
  ref :>> addressesConcerns = (usabilityConcern, safetyConcern, clinicalConcern);
132
126
  attribute :>> measure = "Task success and use-error rate for the intended user under use conditions (IEC 62366-1).";
133
127
  }
134
128
  part def Interoperability :> MemoQualityAttribute {
135
129
  @MemoIdentity { :>> providedId = "QA-7"; }
136
- attribute :>> name = "Interoperability";
137
130
  ref :>> addressesConcerns = (interoperabilityConcern, clinicalConcern);
138
131
  attribute :>> measure = "Proportion of exchanges with a named partner system that are correctly understood.";
139
132
  }
@@ -146,48 +139,37 @@ package memo_viewpoints_stakeholders_concerns {
146
139
  abstract part def MemoStakeholder :> MemoPart;
147
140
 
148
141
  part def SystemArchitect :> MemoStakeholder {
149
- @MemoIdentity { :>> providedId = "STK-1"; }
150
- attribute :>> name = "System Architect";
142
+ @MemoIdentity { :>> providedId = "STK-1"; :>> label = "System Architect"; }
151
143
  }
152
144
  part def SoftwareArchitect :> MemoStakeholder {
153
- @MemoIdentity { :>> providedId = "STK-2"; }
154
- attribute :>> name = "Software Architect";
145
+ @MemoIdentity { :>> providedId = "STK-2"; :>> label = "Software Architect"; }
155
146
  }
156
147
  part def HardwareEngineer :> MemoStakeholder {
157
- @MemoIdentity { :>> providedId = "STK-3"; }
158
- attribute :>> name = "Hardware Engineer";
148
+ @MemoIdentity { :>> providedId = "STK-3"; :>> label = "Hardware Engineer"; }
159
149
  }
160
150
  part def SafetyEngineer :> MemoStakeholder {
161
- @MemoIdentity { :>> providedId = "STK-4"; }
162
- attribute :>> name = "Safety Engineer";
151
+ @MemoIdentity { :>> providedId = "STK-4"; :>> label = "Safety Engineer"; }
163
152
  }
164
153
  part def VerificationEngineer :> MemoStakeholder {
165
- @MemoIdentity { :>> providedId = "STK-5"; }
166
- attribute :>> name = "Verification Engineer";
154
+ @MemoIdentity { :>> providedId = "STK-5"; :>> label = "Verification Engineer"; }
167
155
  }
168
156
  part def RegulatoryEngineer :> MemoStakeholder {
169
- @MemoIdentity { :>> providedId = "STK-6"; }
170
- attribute :>> name = "Regulatory Engineer";
157
+ @MemoIdentity { :>> providedId = "STK-6"; :>> label = "Regulatory Engineer"; }
171
158
  }
172
159
  part def ProjectLead :> MemoStakeholder {
173
- @MemoIdentity { :>> providedId = "STK-7"; }
174
- attribute :>> name = "Project Lead";
160
+ @MemoIdentity { :>> providedId = "STK-7"; :>> label = "Project Lead"; }
175
161
  }
176
162
  part def SecurityEngineer :> MemoStakeholder {
177
- @MemoIdentity { :>> providedId = "STK-8"; }
178
- attribute :>> name = "Security Engineer";
163
+ @MemoIdentity { :>> providedId = "STK-8"; :>> label = "Security Engineer"; }
179
164
  }
180
165
  part def PrivacyEngineer :> MemoStakeholder {
181
- @MemoIdentity { :>> providedId = "STK-9"; }
182
- attribute :>> name = "Privacy Engineer";
166
+ @MemoIdentity { :>> providedId = "STK-9"; :>> label = "Privacy Engineer"; }
183
167
  }
184
168
  part def ClinicalEngineer :> MemoStakeholder {
185
- @MemoIdentity { :>> providedId = "STK-10"; }
186
- attribute :>> name = "Clinical Engineer";
169
+ @MemoIdentity { :>> providedId = "STK-10"; :>> label = "Clinical Engineer"; }
187
170
  }
188
171
  part def UsabilityEngineer :> MemoStakeholder {
189
- @MemoIdentity { :>> providedId = "STK-11"; }
190
- attribute :>> name = "Usability Engineer";
172
+ @MemoIdentity { :>> providedId = "STK-11"; :>> label = "Usability Engineer"; }
191
173
  }
192
174
 
193
175
  // ─── The catalog, as usages ─────────────────────────────────────────
@@ -8,10 +8,9 @@ package memo_viewpoints_ui_layout_ui_layout_viewpoint {
8
8
  private import memo_core_common::*;
9
9
  private import memo_core_common::MemoIdentity;
10
10
  viewpoint uiLayoutViewpoint : MemoViewpoint {
11
- @MemoIdentity { :>> providedId = "VP-UIL"; }
12
- attribute :>> name = "UILayoutViewpoint";
11
+ @MemoIdentity { :>> providedId = "VP-UIL"; :>> label = "UILayoutViewpoint"; }
13
12
  @MemoIdentity { :>> shortDescription = "Shows screen captures with the UI element tree laid out over them."; }
14
- attribute :>> description = "Frames the user interface spatially: a captured rendering of a screen, and the UIElement tree laid out over it by each element's bounds. Supports IEC 62366-1 use-related design review and the UI description in the software design specification, by making 'which control is this, and what does it do' answerable from the picture. There is one tree, not two — the elements carrying the geometry are the same elements carrying the requirements, functions, use errors, and risk controls.";
13
+ doc /* Frames the user interface spatially: a captured rendering of a screen, and the UIElement tree laid out over it by each element's bounds. Supports IEC 62366-1 use-related design review and the UI description in the software design specification, by making 'which control is this, and what does it do' answerable from the picture. There is one tree, not two — the elements carrying the geometry are the same elements carrying the requirements, functions, use errors, and risk controls. */
15
14
  attribute :>> purpose = "Review the interface as the user sees it, with every functional area backed by a design record.";
16
15
  ref :>> stakeholders = (usabilityEngineer, softwareArchitect, safetyEngineer);
17
16
  attribute :>> stage = WorkflowStageKind::architecture;
@@ -15,7 +15,7 @@ package memo_viewpoints_ui_layout_views_screen_layout_view {
15
15
  view def MemoScreenLayoutView :> MemoDiagramView {
16
16
  attribute :>> viewKind = DiagramViewKind::geometry;
17
17
  @MemoIdentity { :>> shortDescription = "Screen capture overlaid with its UI element tree."; }
18
- attribute :>> description = "Renders one ScreenCapture as the backdrop and each UIElement composed under the captured screen as a boundary box at its authored bounds, coloured by boundaryColor. Bounds are relative to the parent element, so the renderer accumulates transforms down the Composes tree. Selecting an element isolates it: siblings recede rather than compete. Following an element's NavigatesTo edge swaps the backdrop to the target screen's capture, so the view walks the interface the way the user does.";
18
+ doc /* Renders one ScreenCapture as the backdrop and each UIElement composed under the captured screen as a boundary box at its authored bounds, coloured by boundaryColor. Bounds are relative to the parent element, so the renderer accumulates transforms down the Composes tree. Selecting an element isolates it: siblings recede rather than compete. Following an element's NavigatesTo edge swaps the backdrop to the target screen's capture, so the view walks the interface the way the user does. */
19
19
  attribute :>> outputKind = (ViewOutputKind::diagram);
20
20
  attribute :>> presentationKind = (PresentationKind::screenLayout);
21
21
  attribute :>> layoutHint = "authored";
@@ -8,10 +8,9 @@ package memo_viewpoints_usability_usability_viewpoint {
8
8
  private import memo_core_common::*;
9
9
  private import memo_core_common::MemoIdentity;
10
10
  viewpoint usabilityViewpoint : MemoViewpoint {
11
- @MemoIdentity { :>> providedId = "VP-USE"; }
12
- attribute :>> name = "UsabilityViewpoint";
11
+ @MemoIdentity { :>> providedId = "VP-USE"; :>> label = "UsabilityViewpoint"; }
13
12
  @MemoIdentity { :>> shortDescription = "Shows use contexts, actors, use errors, and usability requirements."; }
14
- attribute :>> description = "Default viewpoint derived from the context and requirements layers for IEC 62366-1 usability engineering — actors, use contexts, identified use errors, and requirements tagged with the usability concern. Reuses existing context-layer elements (Actor, UseContext, UseError) rather than a separate usability layer.";
13
+ doc /* Default viewpoint derived from the context and requirements layers for IEC 62366-1 usability engineering — actors, use contexts, identified use errors, and requirements tagged with the usability concern. Reuses existing context-layer elements (Actor, UseContext, UseError) rather than a separate usability layer. */
15
14
  attribute :>> purpose = "Communicate use-related hazards and usability requirements for the device.";
16
15
  ref :>> stakeholders = (usabilityEngineer, safetyEngineer);
17
16
  attribute :>> stage = WorkflowStageKind::requirements;
@@ -8,10 +8,9 @@ package memo_viewpoints_verification_verification_viewpoint {
8
8
  private import memo_core_common::*;
9
9
  private import memo_core_common::MemoIdentity;
10
10
  viewpoint verificationViewpoint : MemoViewpoint {
11
- @MemoIdentity { :>> providedId = "VP-VER"; }
12
- attribute :>> name = "VerificationViewpoint";
11
+ @MemoIdentity { :>> providedId = "VP-VER"; :>> label = "VerificationViewpoint"; }
13
12
  @MemoIdentity { :>> shortDescription = "Shows verification cases, validation cases, and the evidence they produce, traced to requirements."; }
14
- attribute :>> description = "Default viewpoint derived from the requirements and assurance layers for V&V coverage — which requirements are verified/validated, by which case, and what evidence was produced, supporting ISO 13485 §7.3.6/§7.3.7 and IEC 62304 §5.7/§5.8.";
13
+ doc /* Default viewpoint derived from the requirements and assurance layers for V&V coverage — which requirements are verified/validated, by which case, and what evidence was produced, supporting ISO 13485 §7.3.6/§7.3.7 and IEC 62304 §5.7/§5.8. */
15
14
  attribute :>> purpose = "Communicate verification and validation coverage against requirements.";
16
15
  ref :>> stakeholders = (verificationEngineer);
17
16
  attribute :>> stage = WorkflowStageKind::verificationStage;
@@ -10,8 +10,7 @@ package memo_viewpoints_verification_views_verification_coverage_view {
10
10
  view verificationCoverageView : MemoDiagramView {
11
11
  expose memo_viewpoints_verification_views_verification_coverage_view::*;
12
12
  attribute depth = 2;
13
- @MemoIdentity { :>> providedId = "VIEW-VER-001"; }
14
- attribute :>> name = "VerificationCoverageView";
13
+ @MemoIdentity { :>> providedId = "VIEW-VER-001"; :>> label = "VerificationCoverageView"; }
15
14
  @MemoIdentity { :>> shortDescription = "Requirements with their verification cases, validation cases, and evidence."; }
16
15
  attribute :>> outputKind = (ViewOutputKind::matrix);
17
16
  attribute :>> presentationKind = (PresentationKind::traceMatrix);
@@ -19,8 +18,7 @@ package memo_viewpoints_verification_views_verification_coverage_view {
19
18
  attribute :>> autoPopulate = true;
20
19
  attribute :>> queryDescription = "Include requirements and their linked verification/validation cases and evidence.";
21
20
  part :>> selectionQuery {
22
- @MemoIdentity { :>> providedId = "QRY-VER-001"; }
23
- attribute :>> name = "VerificationCoverageQuery";
21
+ @MemoIdentity { :>> providedId = "QRY-VER-001"; :>> label = "VerificationCoverageQuery"; }
24
22
  attribute :>> includeElementKinds = ("Requirement", "VerificationCase", "ValidationCase", "MemoEvidence");
25
23
  attribute :>> includeLayers = ("requirements", "assurance");
26
24
  attribute :>> rationaleText = "Auto-populate V&V coverage from the requirements and assurance layers.";
@@ -7,7 +7,12 @@
7
7
  # (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
8
8
  # removed at the native semantic flip and are now rejected if present.
9
9
  name: '{{name}}'
10
- entrypoint: model/catalog/project.sysml
10
+ entrypoint: model/methodology/project.sysml
11
11
  include: [model]
12
12
  version: 0.1.0
13
13
  description: MEMO architecture and assurance model
14
+ # The SysML compiler every MEMO command uses (internal, syside or opensysml), and
15
+ # the packager `memo pack` uses (internal or sysand).
16
+ # Required; MEMO chooses none for a project that does not.
17
+ toolchain:
18
+ packager: internal
@@ -1,7 +1,11 @@
1
1
  package project_architecture {
2
- private import memo::*;
2
+ private import memo_core_common::*;
3
+ private import memo_core_common::MemoIdentity;
4
+ private import memo_architecture_logical_structure::*;
3
5
 
4
- part system : MemoPart {
5
- attribute redefines name = "{{name}}";
6
+ // The product, as a System: the kind a workspace is made from, and a kind the explorer files
7
+ // under Architecture. (A bare `MemoPart` is the abstract base and files under evidence.)
8
+ part def ProductSystem specializes System {
9
+ @MemoIdentity { :>> label = "{{name}}"; }
6
10
  }
7
11
  }
@@ -17,10 +17,9 @@ package project_catalog {
17
17
 
18
18
  private import memo_core_common::*;
19
19
  private import memo_core_common::MemoIdentity;
20
- part projectMethodBinding : ProjectMethodBinding {
21
- @MemoIdentity { :>> providedId = "PMB-001"; }
22
- attribute :>> name = "{{name}}ProjectMethodBinding";
23
- attribute :>> projectName = "{{name}}";
20
+ part projectMethodBinding : ModelMethodBinding {
21
+ @MemoIdentity { :>> providedId = "PMB-001"; :>> label = "{{name}}ModelMethodBinding"; }
22
+ attribute :>> modelName = "{{name}}";
24
23
  ref :>> selectedMethodology = mdDefaultDefinition;
25
24
  // The project adds no modules of its own yet. Under `explicit` an
26
25
  // empty additive list means exactly that — no additions — rather than
@@ -1,47 +0,0 @@
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,94 +0,0 @@
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,13 +0,0 @@
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,8 +0,0 @@
1
- package memo_examples_ui_screen_regions_relationships {
2
- private import memo_artifacts_configuration_management::*;
3
- private import memo_assurance_safety_risk::*;
4
- private import memo_examples_ui_screen_regions_architecture_implementation_ui::*;
5
- private import memo_examples_ui_screen_regions_assurance_requirements::*;
6
- connection rel_tracesRisk_uiElement12_reqDrugIdentityDisplay : TracesRisk connect sourceRiskElement ::> elMainScreen::uiElement12 to targetRiskElement ::> reqDrugIdentityDisplay;
7
- connection rel_changes_uiElement12_reqDrugIdentityDisplay : Changes connect changeRequest ::> elMainScreen::uiElement12 to changedElement ::> reqDrugIdentityDisplay;
8
- }
@@ -1,19 +0,0 @@
1
- package memo_extension_aadl_methodology {
2
- private import ScalarValues::*;
3
- private import memo_methodology_core::*;
4
- private import memo_methodology_profiles::*;
5
- private import memo_core_enumerations::*;
6
-
7
- private import memo_core_common::*;
8
- private import memo_core_common::MemoIdentity;
9
- part aadlExtensionMethod : MethodologyDefinition {
10
- @MemoIdentity { :>> providedId = "EXT-AADL-001"; }
11
- attribute :>> name = "AadlCorrespondenceExtension";
12
- attribute :>> version = "0.7.0";
13
- attribute :>> domain = "AADL (SAE AS5506) software runtime";
14
- attribute :>> description = "Adds the AADL correspondence profile and the process / thread / virtual-processor runtime families.";
15
- ref :>> baseMethodology = mdDefaultDefinition;
16
- attribute :>> scopeMode = ScopeModeKind::explicit;
17
- attribute :>> includedModule = "memo_extension_aadl";
18
- }
19
- }
@@ -1,24 +0,0 @@
1
- package memo_extension_clinical_methodology {
2
- private import ScalarValues::*;
3
- private import memo_methodology_core::*;
4
- private import memo_methodology_profiles::*;
5
- private import memo_core_enumerations::*;
6
-
7
- private import memo_core_common::*;
8
- private import memo_core_common::MemoIdentity;
9
- part clinicalExtensionMethod : MethodologyDefinition {
10
- @MemoIdentity { :>> providedId = "EXT-CLINICAL-001"; }
11
- attribute :>> name = "ClinicalProcedureExtension";
12
- attribute :>> version = "0.6.5";
13
- attribute :>> domain = "clinical procedures";
14
- attribute :>> description = "Adds optional clinical-procedure vocabulary to a MEMO project.";
15
- // The base is a typed SysML reference, not a name to keep in sync with
16
- // another file. `baseMethodName` was the pre-flip spelling and no
17
- // longer resolves.
18
- ref :>> baseMethodology = mdDefaultDefinition;
19
- // An extension adds its own module to whatever its base selected;
20
- // saying so explicitly is required now that an empty list means empty.
21
- attribute :>> scopeMode = ScopeModeKind::explicit;
22
- attribute :>> includedModule = "memo_extension_clinical";
23
- }
24
- }
@@ -1,19 +0,0 @@
1
- package memo_extension_cloud_methodology {
2
- private import ScalarValues::*;
3
- private import memo_methodology_core::*;
4
- private import memo_methodology_profiles::*;
5
- private import memo_core_enumerations::*;
6
-
7
- private import memo_core_common::*;
8
- private import memo_core_common::MemoIdentity;
9
- part cloudExtensionMethod : MethodologyDefinition {
10
- @MemoIdentity { :>> providedId = "EXT-CLOUD-001"; }
11
- attribute :>> name = "CloudRuntimeExtension";
12
- attribute :>> version = "0.7.0";
13
- attribute :>> domain = "networked services and managed data stores";
14
- attribute :>> description = "Adds service and data-store runtime families with their contracts, discovery, and retention.";
15
- ref :>> baseMethodology = mdDefaultDefinition;
16
- attribute :>> scopeMode = ScopeModeKind::explicit;
17
- attribute :>> includedModule = "memo_extension_cloud";
18
- }
19
- }
@@ -1,19 +0,0 @@
1
- package memo_extension_container_methodology {
2
- private import ScalarValues::*;
3
- private import memo_methodology_core::*;
4
- private import memo_methodology_profiles::*;
5
- private import memo_core_enumerations::*;
6
-
7
- private import memo_core_common::*;
8
- private import memo_core_common::MemoIdentity;
9
- part containerExtensionMethod : MethodologyDefinition {
10
- @MemoIdentity { :>> providedId = "EXT-CONTAINER-001"; }
11
- attribute :>> name = "ContainerDeploymentExtension";
12
- attribute :>> version = "0.7.0";
13
- attribute :>> domain = "containerized deployment";
14
- attribute :>> description = "Adds OCI container images and container runtimes as deployment content.";
15
- ref :>> baseMethodology = mdDefaultDefinition;
16
- attribute :>> scopeMode = ScopeModeKind::explicit;
17
- attribute :>> includedModule = "memo_extension_container";
18
- }
19
- }
@@ -1,19 +0,0 @@
1
- package memo_extension_messaging_methodology {
2
- private import ScalarValues::*;
3
- private import memo_methodology_core::*;
4
- private import memo_methodology_profiles::*;
5
- private import memo_core_enumerations::*;
6
-
7
- private import memo_core_common::*;
8
- private import memo_core_common::MemoIdentity;
9
- part messagingExtensionMethod : MethodologyDefinition {
10
- @MemoIdentity { :>> providedId = "EXT-MESSAGING-001"; }
11
- attribute :>> name = "MessagingExtension";
12
- attribute :>> version = "0.7.0";
13
- attribute :>> domain = "publish/subscribe messaging";
14
- attribute :>> description = "Adds message items, publisher/subscriber ports, topic interfaces, brokers, and delivery semantics.";
15
- ref :>> baseMethodology = mdDefaultDefinition;
16
- attribute :>> scopeMode = ScopeModeKind::explicit;
17
- attribute :>> includedModule = "memo_extension_messaging";
18
- }
19
- }
@@ -1,27 +0,0 @@
1
- package memo_extension_ros_methodology {
2
- private import ScalarValues::*;
3
- private import memo_methodology_core::*;
4
- private import memo_methodology_profiles::*;
5
- private import memo_core_enumerations::*;
6
-
7
- private import memo_core_common::*;
8
- private import memo_core_common::MemoIdentity;
9
- // An extension that builds on other extensions names them all here.
10
- // `baseMethodology` is [0..1] — single inheritance, deliberate — but
11
- // `includedModule` is [0..*], so this is how a dependency between
12
- // extensions is expressed. There is no chaining and no second base.
13
- part rosExtensionMethod : MethodologyDefinition {
14
- @MemoIdentity { :>> providedId = "EXT-ROS-001"; }
15
- attribute :>> name = "Ros2Extension";
16
- attribute :>> version = "0.7.0";
17
- attribute :>> domain = "ROS 2 robotics middleware";
18
- attribute :>> description = "Adds ROS 2 nodes, messages, directional ports, topic/service/action interfaces, QoS, and containerized deployment.";
19
- ref :>> baseMethodology = mdDefaultDefinition;
20
- attribute :>> scopeMode = ScopeModeKind::explicit;
21
- attribute :>> includedModule = (
22
- "memo_extension_messaging",
23
- "memo_extension_container",
24
- "memo_extension_ros"
25
- );
26
- }
27
- }
@@ -1,39 +0,0 @@
1
- // Skeleton for a new MEMO extension. Copy the directory, rename the packages,
2
- // and replace the prefix.
3
- //
4
- // Two conventions this file follows and every extension must (extensions/README.md):
5
- //
6
- // 1. Every definition an extension declares is prefixed with the PascalCase
7
- // form of the extension's directory name — `template/` gives `Template`.
8
- // Extension names share one flat namespace with the base and with each
9
- // other, so the prefix is what keeps two independent extensions from both
10
- // declaring `Node`.
11
- // 2. A relation an extension declares specializes a base relation. It never
12
- // roots independently.
13
- //
14
- // This package used to bind `baseMethodName = "MedicalDeviceLightDefault"` — a
15
- // pre-flip spelling that resolves to nothing. It went unnoticed for as long as
16
- // extensions lived under `examples/`, where the build did not check them; the
17
- // build checks `extensions/` now, and reported it on the first run.
18
- package memo_extension_template {
19
- private import ScalarValues::*;
20
- private import memo_core_enumerations::*;
21
- private import memo_methodology_core::*;
22
- private import memo_methodology_profiles::*;
23
-
24
- private import memo_core_common::*;
25
- private import memo_core_common::MemoIdentity;
26
- part extensionMethod : MethodologyDefinition {
27
- @MemoIdentity { :>> providedId = "EXT-METH-001"; }
28
- attribute :>> name = "ExtensionMethod";
29
- attribute :>> version = "0.1.0";
30
- attribute :>> domain = "project extension";
31
- attribute :>> description = "Adds a project or domain package to the selected MEMO methodology.";
32
- // The base is a typed SysML reference, not a name held in sync by hand.
33
- ref :>> baseMethodology = mdDefaultDefinition;
34
- // An extension adds its own module to whatever its base selected;
35
- // saying so explicitly is required now that an empty list means empty.
36
- attribute :>> scopeMode = ScopeModeKind::explicit;
37
- attribute :>> includedModule = "replace_with_extension_package";
38
- }
39
- }
@@ -1,13 +0,0 @@
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: '{{name}}'
10
- entrypoint: model/catalog/project.sysml
11
- include: [model]
12
- version: 0.1.0
13
- description: MEMO connected device model
@@ -1,5 +0,0 @@
1
- package connected_device_architecture {
2
- private import memo::*;
3
-
4
- part connectedDevice : PhysicalAssembly;
5
- }
@@ -1,5 +0,0 @@
1
- package connected_device_artifacts {
2
- private import memo::*;
3
-
4
- // Add project artifact usages here.
5
- }
@@ -1,7 +0,0 @@
1
- package connected_device_assurance {
2
- private import memo::*;
3
-
4
- requirement connectivityRequirement : Requirement {
5
- attribute redefines statement = "Define connectivity and cybersecurity boundaries";
6
- }
7
- }
@@ -1,30 +0,0 @@
1
- // Project identity and method binding — the project's native entrypoint.
2
- //
3
- // The imports below name the reusable packages this project resolves, and the
4
- // binding names its methodology with a typed SysML reference. Nothing outside
5
- // SysML selects model content: delete every YAML file beside this one and the
6
- // model still means exactly what it means now.
7
- package connected_device_catalog {
8
- private import ScalarValues::*;
9
-
10
- private import memo_core_enumerations::*;
11
- private import memo_methodology_core::*;
12
- private import memo_methodology_profiles::*;
13
-
14
- private import connected_device_architecture::*;
15
- private import connected_device_assurance::*;
16
- private import connected_device_artifacts::*;
17
-
18
- private import memo_core_common::*;
19
- private import memo_core_common::MemoIdentity;
20
- part projectMethodBinding : ProjectMethodBinding {
21
- @MemoIdentity { :>> providedId = "PMB-001"; }
22
- attribute :>> name = "{{name}}ProjectMethodBinding";
23
- attribute :>> projectName = "{{name}}";
24
- ref :>> selectedMethodology = mdDefaultDefinition;
25
- // The project adds no modules of its own yet. Under `explicit` an
26
- // empty additive list means exactly that — no additions — rather than
27
- // being read as "everything".
28
- attribute :>> scopeMode = ScopeModeKind::explicit;
29
- }
30
- }