@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
@@ -1,26 +1,29 @@
1
1
  // MEMO base hierarchy. Construct-specific foundations: one base per
2
2
  // SysML v2 metaclass family (part, action, port, interface, item, use case,
3
3
  // requirement, constraint, verification, state, connection), each carrying
4
- // the shared MEMO semantics. Common inheritance
5
- // across metaclasses is not portable, so non-part bases re-declare the small
6
- // identification core and share classification through the metadata defs in
7
- // memo_core_dimensions.
4
+ // the shared MEMO semantics. Common inheritance across metaclasses is not
5
+ // portable, so classification is shared through the metadata defs in
6
+ // memo_core_dimensions rather than through a superclass.
8
7
  //
9
- // ─── The identification core ────────────────────────────────────────────
10
- // Every MEMO base below declares the SAME attributes, in the same order,
11
- // with no exceptions:
8
+ // ─── Where identity lives ───────────────────────────────────────────────
9
+ // Not in these bases. `@MemoIdentity`, below, is the one carrier: a
10
+ // `metadata def` annotates an element of ANY metaclass, so it reaches the
11
+ // action, port, item, requirement and connection families that KerML will
12
+ // not let inherit from a part def. The bases used to re-declare an
13
+ // "identification core" ten times over for exactly that reason, and ten
14
+ // copies of one fact drifted every time (MemoPort carried no sourceReference
15
+ // and no status; MemoRequirement and MemoNeed each invented their own status
16
+ // attribute). One declaration replaced ten.
12
17
  //
13
- // id, uuid, name, shortDescription, description,
14
- // rationale, sourceReference, status
18
+ // `name` and `description` were the last two to go. Neither was ever MEMO's
19
+ // to declare: every SysML element already has a native name, and `doc` is
20
+ // already the native slot for prose. What the bases added was a second place
21
+ // to write the same fact, and 188 of the 1373 elements that set `name` set it
22
+ // to the identifier they were already declared under. Display text is now
23
+ // `@MemoIdentity { label }` and prose is `doc`.
15
24
  //
16
- // They are re-declared per metaclass only because KerML will not let an
17
- // action, port, item, requirement, or connection inherit from a part def.
18
- // The duplication is a language constraint, not a design choice — so treat
19
- // the block as one unit: anything added or removed here is added or removed
20
- // in all of them. The drift this replaces was real (MemoPort carried no
21
- // sourceReference and no status; MemoRequirement and MemoNeed each invented
22
- // their own status attribute), and drift here shows up as an element whose
23
- // properties panel is missing fields its neighbours have.
25
+ // What remains on a base is domain semantics — `status`, and whatever that
26
+ // metaclass family genuinely needs.
24
27
  //
25
28
  // `uuid` is the stable technical identity: never displayed, never used as a
26
29
  // label, never reused. Authors normally leave it unset and let the compiler
@@ -40,8 +43,8 @@ package memo_core_common {
40
43
  // opt-in through `annotatedElement`, and this one declares none. That is
41
44
  // what the per-metaclass base definitions below cannot do: KerML will not
42
45
  // let an action, port, item, requirement or connection inherit from a part
43
- // def, which is why the identification core is currently declared ten
44
- // times. Metadata has no such limit, so one declaration replaces ten.
46
+ // def, which is why the identification core was once declared ten times
47
+ // over. Metadata has no such limit, so one declaration replaced ten.
45
48
  //
46
49
  // An element has five identities and they are not interchangeable:
47
50
  //
@@ -84,6 +87,16 @@ package memo_core_common {
84
87
  attribute sourceReference : String[0..1];
85
88
  }
86
89
 
90
+ // Marks a definition as a KIND — an extension of the ontology — rather than a model element.
91
+ // A project definition that specializes an ontology kind is, structurally, either a new kind
92
+ // (`AfferaStakeholder`) or one particular thing (`HospitalEpRecordingSystem`); nothing in the
93
+ // SysML tells the two apart, so the author says which. A marked definition, and what is typed
94
+ // by it, takes `idPrefix` as the family of its display ids (`<idPrefix>-1`). Anything unmarked
95
+ // takes the family of the ontology kind it descends from.
96
+ metadata def MemoKind {
97
+ attribute idPrefix : String;
98
+ }
99
+
87
100
  // ─── Single abstract part root ──────────────────────────────────
88
101
  // Every structural MEMO concept specializes MemoPart. Identity and
89
102
  // traceability are attributes of this one root — MEMO has no separate
@@ -96,18 +109,18 @@ package memo_core_common {
96
109
  // (memo_architecture_* xor memo_assurance_*), enforced by CR-ONT-045.
97
110
  // The remaining dimensions are orthogonal to the axis: realization stage,
98
111
  // cross-cutting concern, and editorial status.
112
+ // Deliberately NOT declared here: `name` and `description`. A name slot on
113
+ // a MEMO base is a second spelling of the native name every SysML element
114
+ // already has, and a description slot is a second spelling of `doc`. Both
115
+ // were carried for years and both drifted: 1373 elements set `name`, and
116
+ // 188 of them set it to the identifier they were already declared under.
117
+ // The display label — free text, legitimately repeating — lives on
118
+ // `@MemoIdentity { label }`, which annotates any metaclass and so reaches
119
+ // the behaviours and views that cannot specialize a part. The long prose
120
+ // lives in `doc`. `shortDescription` on `@MemoIdentity` remains the
121
+ // one-line register a table cell or chip shows whole; it is a different
122
+ // density, not a different authority.
99
123
  abstract part def MemoPart {
100
- // identity
101
- attribute name : String;
102
- // Two description registers on every MEMO element, because views have
103
- // two densities. `shortDescription` is the one-line form a table cell,
104
- // matrix header, chip, or diagram node can show whole; `description` is
105
- // the full prose a properties panel or a generated document section
106
- // renders. A view picks the register that fits — it never truncates
107
- // the long one, because a silently clipped sentence in a DHF table is
108
- // a defect, not a layout choice.
109
- attribute description : String;
110
- // traceability
111
124
  // editorial status and lifecycle
112
125
  attribute status : ElementStatusKind;
113
126
  attribute lifecycleState : LifecycleStateKind;
@@ -148,35 +161,16 @@ package memo_core_common {
148
161
  }
149
162
  abstract part def AnalysisArtifact specializes MemoPart;
150
163
 
151
- // Document-bound elements add only what a document needs beyond the two
152
- // description registers every MemoPart now carries: a title and its place
153
- // in a document. The former `shortDescription`/`longDescription` pair is
154
- // gone — short is inherited, and `description` IS the long form.
155
- // Top-level goal a system or operation exists to fulfil, with its success
156
- // criteria and context. Domain layers specialize it; the medical-device
157
- // intended use (memo_architecture_operational_structure::IntendedUse) is a
158
- // MemoMission. Specializes MemoPart directly — name/description/rationale
159
- // already live there, so no DocumentedElement layer is needed.
160
- abstract part def MemoMission specializes MemoPart {
161
- attribute missionKind : String;
162
- attribute successCriteria : String;
163
- attribute operationalContext : String;
164
- }
165
-
166
164
  // ─── Construct-specific foundations (non-part metaclasses) ───────
167
165
 
168
166
  // Behavioral foundation: operational activities, tasks, system actions,
169
167
  // and interaction steps specialize MemoAction.
170
168
  action def MemoAction {
171
- attribute name : String;
172
- attribute description : String;
173
169
  attribute status : ElementStatusKind;
174
170
  }
175
171
 
176
172
  // Boundary feature foundation for typed ports.
177
173
  port def MemoPort {
178
- attribute name : String;
179
- attribute description : String;
180
174
  attribute status : ElementStatusKind;
181
175
  }
182
176
 
@@ -184,8 +178,6 @@ package memo_core_common {
184
178
  abstract interface def MemoInterface {
185
179
  end source;
186
180
  end target;
187
- attribute name : String;
188
- attribute description : String;
189
181
  }
190
182
 
191
183
  // Single item foundation. Standards, hazards, stored software data, and
@@ -193,8 +185,6 @@ package memo_core_common {
193
185
  // exchanged is expressed by its use in a port or flow, not by a second
194
186
  // ontology root.
195
187
  abstract item def MemoItem {
196
- attribute name : String;
197
- attribute description : String;
198
188
  attribute status : ElementStatusKind;
199
189
  // What the item CARRIES, as distinct from what it is called. Removed
200
190
  // by `595bfac` while modelling native wrappers; nothing replaced them,
@@ -212,19 +202,14 @@ package memo_core_common {
212
202
  }
213
203
 
214
204
  // Use-case foundation. The domain UseCase adds its goal and actor
215
- // references; identity is carried here so use cases do not maintain a
216
- // partial hand-written copy of the MEMO identification core.
205
+ // references; identity is `@MemoIdentity`, as everywhere else.
217
206
  abstract use case def MemoUseCase {
218
- attribute name : String;
219
- attribute description : String;
220
207
  attribute status : ElementStatusKind;
221
208
  }
222
209
 
223
210
  // General constraint foundation. Executable consistency rules and
224
211
  // reusable quantitative constraints are both native constraint defs.
225
212
  abstract constraint def MemoConstraint {
226
- attribute name : String;
227
- attribute description : String;
228
213
  attribute status : ElementStatusKind;
229
214
  }
230
215
 
@@ -235,8 +220,6 @@ package memo_core_common {
235
220
  // say "a need or a requirement" with one type name — before it, every end
236
221
  // that had to accept both was left untyped.
237
222
  abstract requirement def MemoRequirementElement {
238
- attribute name : String;
239
- attribute description : String;
240
223
  attribute status : ElementStatusKind;
241
224
  attribute statement : String;
242
225
  }
@@ -250,27 +233,37 @@ package memo_core_common {
250
233
  attribute acceptanceCriteria : String;
251
234
  }
252
235
 
236
+ // Top-level goal a system or operation exists to fulfil, with its success
237
+ // criteria and context. Domain layers specialize it; the medical-device
238
+ // intended use (memo_architecture_operational_structure::IntendedUse) is a
239
+ // MemoMission. It is a `requirement def` because a mission is the top
240
+ // obligation everything below it derives from, not a structural thing —
241
+ // it was a `part def` under MemoPart. The prose a document renders is
242
+ // `doc`, and the one-line register a table cell shows is
243
+ // `@MemoIdentity`'s `shortDescription`.
244
+ abstract requirement def MemoMission :> MemoRequirementElement {
245
+ attribute missionKind : String;
246
+ attribute successCriteria : String;
247
+ attribute operationalContext : String;
248
+ }
249
+
253
250
  // Verification-case foundation. A SysML v2 verification case is a behaviour
254
251
  // (it checks requirements), and KerML forbids a behaviour from specializing
255
- // the part-based MemoPart — so, like MemoAction, it re-declares the small
256
- // identification core rather than inheriting it.
252
+ // the part-based MemoPart — so, like MemoAction, it stands on its own and
253
+ // takes its identity from `@MemoIdentity`.
257
254
  verification def MemoVerificationCase {
258
- attribute name : String;
259
- attribute description : String;
260
255
  attribute status : ElementStatusKind;
261
256
  }
262
257
 
263
258
  // State foundation. SysML v2 states (state machines and their mode states)
264
259
  // are behaviours, so — like MemoAction and MemoVerificationCase — they
265
- // re-declare the identification core instead of specializing MemoPart
260
+ // cannot specialize MemoPart and are annotated instead.
266
261
  // Transitions stay part-based to keep their traceable safety
267
262
  // attributes (id, sourceReference, priority, sameStepCritical).
268
263
  enum def StateKind { enum mode; enum logical; }
269
264
 
270
265
  state def MemoState {
271
266
  attribute stateKind : StateKind;
272
- attribute name : String;
273
- attribute description : String;
274
267
  attribute status : ElementStatusKind;
275
268
  attribute modeKind : String;
276
269
  attribute entryCondition : String;
@@ -89,6 +89,41 @@ package memo_core_enumerations {
89
89
  enum mechanical;
90
90
  enum fluidic;
91
91
  }
92
+ // How a physical interface encodes what it carries. InterfaceKind says
93
+ // WHAT crosses (data, control, power); this says HOW the signal is
94
+ // represented, which decides what has to be specified about it:
95
+ enum def SignalingKind {
96
+ doc /* Continuous value: the quantity IS the information (a 0.5-4.5 V
97
+ * sensor output, a 4-20 mA loop). Needs a range, accuracy and
98
+ * noise bound. */
99
+ enum analog;
100
+ doc /* Encoded symbols: the information is bits, serial or parallel,
101
+ * framed by a protocol (SPI, CAN, Ethernet). Needs a protocol,
102
+ * a bit rate and a logic level. */
103
+ enum digital;
104
+ doc /* One level means one of two states (a switch contact, an
105
+ * enable line). Needs a logic level and a debounce, not a
106
+ * protocol. */
107
+ enum discrete;
108
+ doc /* The information is in the timing of edges: PWM duty, step and
109
+ * direction, frequency output. Needs a frequency range and a
110
+ * resolution. */
111
+ enum pulse;
112
+ doc /* Power transfer, not signalling: the quantity is delivered for
113
+ * its energy. Needs a rating, not a protocol. */
114
+ enum powerTransfer;
115
+ }
116
+ // The physical medium a hardware connection runs over.
117
+ enum def PhysicalMediumKind {
118
+ enum electrical;
119
+ enum fluidic;
120
+ enum pneumatic;
121
+ enum mechanical;
122
+ enum optical;
123
+ enum acoustic;
124
+ enum thermal;
125
+ enum radioFrequency;
126
+ }
92
127
  // AADL (SAE AS5506) port category. Distinct from InterfaceKind, which says
93
128
  // WHAT crosses a port; this says HOW it is delivered, and the difference is
94
129
  // safety-relevant: when a deadline is missed a `data` port overwrites the
@@ -135,12 +170,12 @@ package memo_core_enumerations {
135
170
  //
136
171
  // Interface.direction / .directionality (interface def)
137
172
  // LogicalConnector.direction (connection def)
138
- // LogicalExchange.direction (part def)
139
- // ComponentExchange.direction (part def)
173
+ // ComponentExchange.direction (interface def)
140
174
  // OperationalInteraction.direction (part def)
141
175
  //
142
- // Deleting it would have cost those five their direction; the reinvention
143
- // was only ever the port case.
176
+ // Deleting it would have cost those four their direction; the reinvention
177
+ // was only ever the port case. `LogicalExchange.direction` was a fifth and
178
+ // went when the exchange became a flow between ports (2026-09-25).
144
179
  enum def DirectionKind {
145
180
  enum input;
146
181
  enum output;
@@ -180,11 +215,11 @@ package memo_core_enumerations {
180
215
  enum formalProof;
181
216
  enum modelChecking;
182
217
  }
183
- // The submission regime a project targets, and the regimes a standard has
184
- // standing in. This is the axis that decides which clauses a project is
185
- // required to claim: `required(project)` is the clauses of every standard
186
- // whose `appliesToRegime` intersects the regimes the project's
187
- // ProjectMethodBinding declares.
218
+ // The submission regime a model targets, and the regimes a standard has
219
+ // standing in. This is the axis that decides which clauses a model is
220
+ // required to claim: `required(model)` is the clauses of every standard
221
+ // whose `appliesToRegime` intersects the regimes the model's
222
+ // ModelMethodBinding declares.
188
223
  //
189
224
  // The members are spelled as the regulatory designations themselves rather
190
225
  // than in the lowerCamel convention the rest of this file uses. All 44 DHF
@@ -367,6 +402,33 @@ package memo_core_enumerations {
367
402
  enum assurance;
368
403
  enum methodology;
369
404
  }
405
+ // Why a rule exists. `modelling` rules keep a model well formed whatever the
406
+ // product is. `medicalDevice` rules exist because a medical-device standard or
407
+ // guidance asks for the thing they check, and each should say which clause it
408
+ // enforces (`#EnforcesClause dependency from <rule> to <clause>`). `organisation` rules are a user's own.
409
+ enum def RuleDomainKind {
410
+ enum modelling;
411
+ enum medicalDevice;
412
+ enum organisation;
413
+ }
414
+ // How firmly the rule's source asks for what it checks, separate from the
415
+ // severity a finding carries and from how far the rule may be tailored. A
416
+ // `required` rule enforces a clause that says "shall"; a `recommended` one a
417
+ // clause that says "should", or a practice the ontology holds as sound;
418
+ // `bestPractice` is advice with no clause behind it. A rule that states no
419
+ // severity takes one from this: error, warning, info.
420
+ enum def RuleObligationKind {
421
+ enum required;
422
+ enum recommended;
423
+ enum bestPractice;
424
+ }
425
+ // How a relation places elements in a workspace; see
426
+ // memo_core_relationships_workspace_membership.
427
+ enum def WorkspaceMembershipKind {
428
+ enum sourceFollowsTarget;
429
+ enum targetFollowsSource;
430
+ enum neither;
431
+ }
370
432
  enum def RuleDispositionKind {
371
433
  enum enabled;
372
434
  enum disabled;
@@ -391,6 +453,19 @@ package memo_core_enumerations {
391
453
  enum verificationStage;
392
454
  enum evidence;
393
455
  enum documents;
456
+ // The stages of the default method's steps (plan O11), beyond the six above.
457
+ enum operational;
458
+ enum functional;
459
+ enum logical;
460
+ enum physical;
461
+ enum humanFactors;
462
+ enum security;
463
+ enum release;
464
+ }
465
+ // The level a method step is worked at: the system of systems, or one system.
466
+ enum def MethodLevelKind {
467
+ enum systemOfSystems;
468
+ enum system;
394
469
  }
395
470
  enum def ThreatCategoryKind {
396
471
  enum spoofing;
@@ -426,6 +501,15 @@ package memo_core_enumerations {
426
501
  enum auditRecord;
427
502
  enum safetyCriticalFunction;
428
503
  }
504
+ // How much an asset needs confidentiality, integrity or availability
505
+ // protection. A rating, not prose, so assets can be compared and a rule
506
+ // can select the ones whose integrity need is high.
507
+ enum def SecurityNeedKind {
508
+ enum low;
509
+ enum medium;
510
+ enum high;
511
+ enum veryHigh;
512
+ }
429
513
  enum def ViewOutputKind {
430
514
  enum diagram;
431
515
  enum table;
@@ -67,6 +67,23 @@ package memo_core_relationships {
67
67
  attribute isUnique : Boolean;
68
68
  }
69
69
 
70
+ // ─── Typed dependencies ─────────────────────────────────────────────
71
+ //
72
+ // A link whose ends are not both usages cannot be a `connection def`: a
73
+ // connection joins features, and a `ref` cannot point at a definition. SysML
74
+ // already has the construct for a client and a supplier that are any element,
75
+ // the Dependency (SysML-textual-bnf.kebnf:51-59), and a metadata prefix
76
+ // names what kind of dependency it is (`#RealizesFeature dependency from a to
77
+ // b;`, PrefixMetadataAnnotation, kebnf:52). A `metadata def` that specializes
78
+ // this marker declares such a link as a MEMO relation: it joins the
79
+ // relationship registry under camelCase(name), is navigated like any other
80
+ // relation, and needs a row in the workspace-membership table. A metadata
81
+ // def that does not specialize it (`EnforcesClause`) is plain metadata on a
82
+ // dependency and builds no relation. Source is the client, target the
83
+ // supplier. Ends are untyped: what a relation may join is a rule's to say
84
+ // (see the note above on metaclass-neutral ends).
85
+ abstract metadata def MemoTypedDependency;
86
+
70
87
  // ─── Metaclass-neutral ends (Track A0) ──────────────────────────────
71
88
  //
72
89
  // An end is left UNTYPED (`:>> source` / `:>> target`) wherever its
@@ -148,17 +165,6 @@ package memo_core_relationships {
148
165
  // the tree (same free-deletion shape R10-S5 found for `rationale`), so
149
166
  // there was no content to carry forward.
150
167
 
151
- connection def ThreatenedBy :> MemoRelationship {
152
- attribute threatRole : String;
153
- end protectedAsset : MemoPart :>> source;
154
- end realizedThreat : RequirementDriver :>> target;
155
- }
156
- abstract connection threatenedByLinks : ThreatenedBy[*];
157
- metadata def <threatenedBy> ThreatenedByMetadata :> SemanticMetadata {
158
- :> annotatedElement : SysML::ConnectionDefinition;
159
- :> annotatedElement : SysML::ConnectionUsage;
160
- :>> baseType = threatenedByLinks meta SysML::Usage;
161
- }
162
168
  connection def DerivesCyberRequirement :> MemoRelationship {
163
169
  end sourceThreatOrRisk : RequirementDriver :>> source;
164
170
  end targetRequirement : MemoRequirementElement :>> target;