@memoarchitect/ontology 0.6.5 → 0.8.22

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 (394) hide show
  1. package/README.md +4 -2
  2. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
  3. package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
  4. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  5. package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
  6. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
  7. package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
  8. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  9. package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
  10. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
  11. package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
  12. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  13. package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
  15. package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
  16. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +19 -9
  17. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +342 -100
  18. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +27 -13
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +329 -272
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +57 -16
  21. package/examples/gpca-pump/model/catalog/gpca_context.sysml +12 -8
  22. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -10
  23. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
  24. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +181 -264
  25. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +95 -60
  26. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -11
  27. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +102 -101
  28. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
  29. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +47 -30
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +301 -354
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +116 -36
  33. package/examples/gpca-pump/model/catalog/project.sysml +26 -0
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
  35. package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +4 -4
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
  37. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +4 -4
  38. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
  39. package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +5 -5
  40. package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  41. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
  42. package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
  44. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
  45. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +8 -8
  46. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
  47. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
  48. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +4 -4
  49. package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
  50. package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
  51. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +3 -3
  52. package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +4 -4
  53. package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
  54. package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
  55. package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  56. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +8 -8
  57. package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
  58. package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  59. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +8 -5
  60. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +7 -5
  61. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +3 -3
  62. package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
  63. package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
  64. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +4 -4
  65. package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +5 -5
  66. package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
  67. package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +8 -6
  68. package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
  69. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +7 -5
  70. package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +3 -3
  71. package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
  72. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  73. package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
  74. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -2
  75. package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
  76. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  77. package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
  78. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
  79. package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
  80. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  81. package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
  82. package/examples/nested-architecture-dsm/README.md +49 -0
  83. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +179 -0
  84. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +165 -0
  85. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
  86. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
  87. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +113 -0
  88. package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
  89. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +48 -0
  90. package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
  91. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +11 -8
  92. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  93. package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
  94. package/examples/ros-mobile-robot/README.md +40 -0
  95. package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
  96. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
  97. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
  98. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
  99. package/examples/software-only-medical-device/model/catalog/project.sysml +28 -0
  100. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
  101. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  102. package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
  103. package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
  104. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +57 -57
  105. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  106. package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
  107. package/examples/surgical-robot/model/catalog/project.sysml +24 -0
  108. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +6 -4
  109. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  110. package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
  111. package/examples/sysml-diagram-samples/README.md +7 -0
  112. package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
  113. package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
  114. package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
  115. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  116. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +23 -20
  117. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +11 -11
  118. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
  119. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +143 -0
  120. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +87 -0
  121. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
  122. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +109 -0
  123. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
  124. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +6 -7
  125. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +33 -0
  126. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +80 -0
  127. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +48 -0
  128. package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +15 -9
  129. package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
  130. package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
  131. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +29 -21
  132. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
  133. package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
  134. package/examples/ui-screen-regions/README.md +117 -0
  135. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +84 -0
  136. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +212 -0
  137. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
  138. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
  139. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
  140. package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
  141. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
  142. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
  143. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
  144. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
  145. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
  146. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
  147. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
  148. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +75 -0
  149. package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
  150. package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
  151. package/examples/ui-screen-regions/model/catalog/traces.sysml +179 -0
  152. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
  153. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
  154. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
  155. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
  156. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
  157. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
  158. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
  159. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
  160. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
  161. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
  162. package/extensions/LICENSES/MIT.txt +19 -0
  163. package/extensions/README.md +94 -0
  164. package/extensions/aadl/memo.package.yaml +18 -0
  165. package/extensions/aadl/src/aadl_extension.sysml +6 -0
  166. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
  167. package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
  168. package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
  169. package/extensions/clinical/memo.package.yaml +18 -0
  170. package/extensions/clinical/src/methodology/clinical_methodology.sysml +22 -0
  171. package/extensions/cloud/memo.package.yaml +18 -0
  172. package/extensions/cloud/src/cloud_extension.sysml +44 -0
  173. package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
  174. package/extensions/container/memo.package.yaml +18 -0
  175. package/extensions/container/src/container_extension.sysml +37 -0
  176. package/extensions/container/src/methodology/container_methodology.sysml +17 -0
  177. package/extensions/messaging/memo.package.yaml +18 -0
  178. package/extensions/messaging/src/messaging_extension.sysml +64 -0
  179. package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
  180. package/extensions/ros/memo.package.yaml +18 -0
  181. package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
  182. package/extensions/ros/src/ros_extension.sysml +200 -0
  183. package/extensions/template/memo.package.yaml +17 -0
  184. package/extensions/template/src/extension.sysml +37 -0
  185. package/memo.manifest.yaml +15 -2
  186. package/methodologies/default/memo.package.yaml +19 -9
  187. package/methodologies/gpca/memo.package.yaml +18 -9
  188. package/ontology/memo.package.yaml +23 -8
  189. package/package.json +6 -6
  190. package/profile/memo.package.yaml +18 -9
  191. package/src/architecture/decisions/memo_decisions.sysml +28 -0
  192. package/src/architecture/functional/behavior/memo_behavior.sysml +50 -22
  193. package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
  194. package/src/architecture/functional/functions/memo_functions.sysml +93 -43
  195. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -24
  196. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +52 -12
  197. package/src/architecture/implementation/ui/memo_ui.sysml +276 -53
  198. package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -13
  199. package/src/architecture/logical/structure/memo_logical_structure.sysml +92 -35
  200. package/src/architecture/operational/activities/memo_activities.sysml +10 -4
  201. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
  202. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
  203. package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
  204. package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
  205. package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
  206. package/src/architecture/operational/workflows/memo_workflows.sysml +28 -15
  207. package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
  208. package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
  209. package/src/artifacts/configuration_management/memo_configuration_management.sysml +35 -0
  210. package/src/artifacts/core/memo_controlled_artifacts.sysml +35 -0
  211. package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
  212. package/src/artifacts/standards/cfr_21_820.sysml +116 -0
  213. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
  214. package/src/artifacts/standards/iec_60601_1.sysml +149 -0
  215. package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
  216. package/src/artifacts/standards/iec_60812.sysml +51 -0
  217. package/src/artifacts/standards/iec_62304.sysml +210 -0
  218. package/src/artifacts/standards/iec_62366_1.sysml +113 -0
  219. package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
  220. package/src/artifacts/standards/iso_13485.sysml +113 -0
  221. package/src/artifacts/standards/iso_14971.sysml +94 -0
  222. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
  223. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
  224. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +1 -1
  225. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +5 -5
  226. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +1 -1
  227. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +2 -2
  228. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +2 -2
  229. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +2 -2
  230. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +1 -1
  231. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +1 -1
  232. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +3 -3
  233. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +4 -4
  234. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +1 -1
  235. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +3 -2
  236. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +2 -2
  237. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +4 -4
  238. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +4 -3
  239. package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
  240. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +1 -1
  241. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +3 -3
  242. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +6 -5
  243. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +3 -2
  244. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +5 -4
  245. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +4 -2
  246. package/src/artifacts/templates/dhf/iec-62304/srs.md +172 -0
  247. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +3 -3
  248. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +1 -1
  249. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +1 -1
  250. package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +93 -0
  251. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +1 -1
  252. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +3 -3
  253. package/src/artifacts/templates/dhf/iso-14971/fmea.md +116 -0
  254. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +3 -3
  255. package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +2 -2
  256. package/src/artifacts/templates/dhf/system/sad.md +173 -0
  257. package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
  258. package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
  259. package/src/artifacts/templates/dhf/system/syrs.md +128 -0
  260. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
  261. package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
  262. package/src/assurance/requirements/memo_requirements.sysml +5 -2
  263. package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
  264. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
  265. package/src/assurance/safety_risk/memo_risk.sysml +78 -7
  266. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +27 -0
  267. package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
  268. package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
  269. package/src/core/annotations/memo_annotations.sysml +96 -0
  270. package/src/core/common/memo_common.sysml +140 -18
  271. package/src/core/consistency_rules/consistency_rules.sysml +7 -0
  272. package/src/core/dimensions/dimensions.sysml +17 -1
  273. package/src/core/enumerations/memo_enumerations.sysml +101 -20
  274. package/src/core/methodology_scope/methodology_scope.sysml +7 -15
  275. package/src/core/relationships/memo_relationships.sysml +199 -194
  276. package/src/memo_namespaces.sysml +127 -67
  277. package/src/methodology/core/memo_core.sysml +69 -2
  278. package/src/methodology/profiles/memo_profiles.sysml +31 -41
  279. package/src/methodology/workflow/memo_workflow.sysml +7 -2
  280. package/src/rules/closure/closure_rules.sysml +104 -31
  281. package/src/rules/coverage/coverage_rules.sysml +4 -256
  282. package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
  283. package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
  284. package/src/rules/ontology/ontology_invariants.sysml +243 -74
  285. package/src/rules/quantitative/quantitative_rules.sysml +8 -8
  286. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +10 -3
  287. package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
  288. package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
  289. package/src/viewpoints/context/context_viewpoint.sysml +4 -2
  290. package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
  291. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
  292. package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
  293. package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
  294. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +5 -0
  295. package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
  296. package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +3 -3
  297. package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +3 -3
  298. package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
  299. package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
  300. package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
  301. package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +3 -3
  302. package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
  303. package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
  304. package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
  305. package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
  306. package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
  307. package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
  308. package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
  309. package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
  310. package/src/viewpoints/software/software_viewpoint.sysml +3 -1
  311. package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
  312. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
  313. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
  314. package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
  315. package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
  316. package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
  317. package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +3 -3
  318. package/templates/connected-device/memo.package.yaml +11 -5
  319. package/templates/connected-device/model/catalog/project.sysml +28 -0
  320. package/templates/connected-device/syside.toml +1 -1
  321. package/templates/default/memo.package.yaml +11 -5
  322. package/templates/default/model/catalog/project.sysml +28 -0
  323. package/templates/default/syside.toml +1 -1
  324. package/templates/infusion-pump/memo.package.yaml +11 -5
  325. package/templates/infusion-pump/model/catalog/project.sysml +28 -0
  326. package/templates/infusion-pump/syside.toml +1 -1
  327. package/templates/monitoring-device/memo.package.yaml +11 -5
  328. package/templates/monitoring-device/model/catalog/project.sysml +28 -0
  329. package/templates/monitoring-device/syside.toml +1 -1
  330. package/templates/samd/memo.package.yaml +11 -5
  331. package/templates/samd/model/catalog/project.sysml +28 -0
  332. package/templates/samd/syside.toml +1 -1
  333. package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
  334. package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
  335. package/examples/extensions/README.md +0 -16
  336. package/examples/extensions/clinical/memo.package.yaml +0 -9
  337. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -14
  338. package/examples/extensions/template/memo.package.yaml +0 -9
  339. package/examples/extensions/template/src/extension.sysml +0 -15
  340. package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
  341. package/examples/gpca-pump/memo.config.yaml +0 -9
  342. package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
  343. package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
  344. package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
  345. package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
  346. package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
  347. package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
  348. package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
  349. package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
  350. package/examples/sysml-diagram-samples/model/samples/functional_flow_view.sysml +0 -164
  351. package/examples/sysml-diagram-samples/model/samples/interconnection_view.sysml +0 -94
  352. package/examples/sysml-diagram-samples/model/samples/operational_behaviour_view.sysml +0 -135
  353. package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +0 -109
  354. package/examples/sysml-diagram-samples/model/samples/tree_view.sysml +0 -56
  355. package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
  356. package/ontology/memo.rendering.yaml +0 -84
  357. package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
  358. package/src/compliance/change/memo_change.sysml +0 -17
  359. package/src/compliance/dhf-templates/iec-62304/srs.md +0 -138
  360. package/src/compliance/dhf-templates/iec-62366/task-analysis.md +0 -57
  361. package/src/compliance/dhf-templates/iso-14971/fmea.md +0 -93
  362. package/src/compliance/document_views/memo_document_views.sysml +0 -7
  363. package/src/compliance/iso14971/risk_management_file.sysml +0 -16
  364. package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
  365. /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
  366. /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
  367. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
  368. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
  369. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
  370. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
  371. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
  372. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
  373. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
  374. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
  375. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
  376. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
  377. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
  378. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
  379. /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
  380. /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
  381. /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  382. /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  383. /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
  384. /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  385. /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
  386. /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
  387. /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  388. /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
  389. /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
  390. /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  391. /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
  392. /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
  393. /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
  394. /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
@@ -1,13 +1,14 @@
1
1
  package memo_architecture_functional_constraints {
2
2
  private import ScalarValues::*;
3
+ private import memo_core_common::*;
3
4
 
4
5
  doc /* Reusable quantitative constraint definitions. */
5
6
 
6
- constraint def MaxResponseTimeConstraint {
7
+ constraint def MaxResponseTimeConstraint :> MemoConstraint {
7
8
  attribute responseTimeMs : Real;
8
9
  attribute maxAllowedMs : Real;
9
10
  }
10
- constraint def LockoutIntervalConstraint {
11
+ constraint def LockoutIntervalConstraint :> MemoConstraint {
11
12
  attribute elapsedMs : Real;
12
13
  attribute lockoutMs : Real;
13
14
  }
@@ -1,10 +1,56 @@
1
- // Functional architecture (§9). A SystemFunction is a technology-independent
2
- // responsibility of the system; a SystemAction is executable behavior realizing
3
- // a function; a FunctionalExchange is a typed transfer between functions. A
4
- // function may be realized by human action, mechanical design, electrical
5
- // hardware, software, or a combination — allocation is optional and never
6
- // assumes software.
1
+ // Functional architecture (§9). A function is a responsibility: what the
2
+ // system, or one of its components, is answerable for. A FunctionalExchange is
3
+ // a typed transfer between functions. A function may be realized by human
4
+ // action, mechanical design, electrical hardware, software, or a combination —
5
+ // allocation to the system's own parts is what ComponentFunction records, and
6
+ // it never assumes software.
7
+ //
8
+ // ─── A function is a behaviour ───────────────────────────────────────────
9
+ //
10
+ // `MemoFunction` and both its specializations are `action def`s. They were
11
+ // `part def SystemFunction specializes ArchitectureElement` until Track A0
12
+ // removed the reason: relation ends were typed on MemoPart/ArchitectureElement,
13
+ // KerML forbids a behaviour from specializing a part-based type, and a function
14
+ // has to be satisfiable, verifiable, and allocatable. So a function was declared
15
+ // a part, and a separate `action def SystemAction` carried the behaviour with a
16
+ // `ref performedFunction` stapling the two back together — a reference used in
17
+ // ZERO example files. The ends are metaclass-neutral now (CR-ONT-060..073), so
18
+ // the split has no cause and is gone: SystemAction is merged into the function
19
+ // family, and its `actionKind` moved onto MemoFunction where it was always
20
+ // describing the function anyway.
21
+ //
22
+ // `functionCategory` and `actionKind` are NOT two spellings of one axis, and
23
+ // merging them would lose information. `actionKind` is the verb — sense,
24
+ // compute, actuate, route. `functionCategory` is the domain grouping the
25
+ // project argues in — therapy, alarm, platform, protection. A function can be
26
+ // `sense` in the `protection` category, and a safety case reasons about both.
27
+ //
28
+ // ─── System function vs. component function ──────────────────────────────
29
+ //
30
+ // ARCADIA's functional chain does not stop at the system boundary: system
31
+ // functions decompose until each piece is the responsibility of exactly one
32
+ // component. MEMO names the two ends of that chain because they obey different
33
+ // rules, not because they carry different attributes:
34
+ //
35
+ // SystemFunction — a responsibility of the system as a whole.
36
+ // Technology-independent. Allocation is OPTIONAL, and a
37
+ // system function may be realized by several components,
38
+ // by a human, or by mechanism.
39
+ // ComponentFunction — a responsibility of ONE component: a flowmeter's
40
+ // "measure flow rate", a subsystem's "arbitrate alarms".
41
+ // Allocation is MANDATORY and single-valued (CR-ONT-074).
42
+ //
43
+ // That difference is structural, which is why these are two definitions rather
44
+ // than one definition carrying a `functionLevel` enum. An enum member cannot
45
+ // change a multiplicity, and "is answerable to exactly one component" is the
46
+ // whole content of the concept.
47
+ //
48
+ // Decomposition and allocation reuse the existing relations and need no new
49
+ // ones — `Composes` for the function tree, `AllocatedTo` for the component.
50
+ // Both had part-typed ends until A0; both are metaclass-neutral now, which is
51
+ // precisely what makes an action-def function usable at all.
7
52
  package memo_architecture_functional_functions {
53
+ private import Metaobjects::SemanticMetadata;
8
54
  private import ScalarValues::*;
9
55
 
10
56
  private import memo_core_common::*;
@@ -13,31 +59,53 @@ package memo_architecture_functional_functions {
13
59
  private import memo_architecture_operational_activities::*;
14
60
  private import memo_architecture_operational_scenarios::*;
15
61
 
16
- part def SystemFunction specializes ArchitectureElement {
62
+ abstract action def MemoFunction specializes MemoAction {
17
63
  attribute functionCategory : String;
64
+ attribute actionKind : ActionKind;
18
65
  attribute trigger : String;
19
66
  attribute outputSummary : String;
20
67
  attribute concernKind : ConcernKind;
21
68
  attribute criticality : CriticalityKind;
22
69
  }
23
70
 
24
- // Executable behavior realizing a system function.
25
- action def SystemAction specializes MemoAction {
26
- attribute actionKind : ActionKind;
27
- attribute executionSummary : String;
28
- ref performedFunction : SystemFunction[0..1];
29
- }
71
+ // A responsibility of the system as a whole. Allocation is optional: a
72
+ // system function that no single component owns is a normal intermediate
73
+ // state of the functional chain, not a defect.
74
+ action def SystemFunction specializes MemoFunction;
75
+
76
+ // A responsibility of exactly one component. `AllocatedTo` names that
77
+ // component; CR-ONT-074 requires it. A component function that reaches no
78
+ // component is a responsibility nobody has accepted.
79
+ action def ComponentFunction specializes MemoFunction;
30
80
 
31
- // Typed transfer of information/command/status/etc. between functions
32
- // (renamed from LogicalFlow — it belongs to the functional perspective).
81
+ // Named traceable route between functions. Native `flow of` usages carry
82
+ // the transported item; this element exists for the budgets and assurance
83
+ // attributes below.
84
+ //
85
+ // The reason is MEMO's grammar, NOT the language — the earlier wording here
86
+ // said "attributes that a flow usage cannot own", and that was a false
87
+ // claim about SysML v2. The standard's `FlowUsage` is
88
+ // `OccurrenceUsagePrefix 'flow' FlowDeclaration DefinitionBody`
89
+ // (SysML-textual-bnf.kebnf:829), so a conforming flow usage takes a name
90
+ // from its `UsageDeclaration` and owns attributes in its body like any
91
+ // other usage. MEMO's own production is
92
+ // `'flow' 'of' itemType 'from' … 'to' … ';'` — no name, no body — so a
93
+ // MEMO flow can carry neither an `id` nor a latency budget, and nothing
94
+ // can refer to it. Every MEMO element rests on the identification core in
95
+ // memo_core_common, and an anonymous attribute-less edge cannot join it.
96
+ //
97
+ // So this part def is a workaround for a MEMO gap, not a design MEMO is
98
+ // entitled to. Restoring the two dropped clauses is what would let it
99
+ // collapse into the flow it stands in for.
33
100
  part def FunctionalExchange specializes ArchitectureElement {
34
101
  attribute flowKind : FlowKind;
35
- attribute direction : DirectionKind;
36
102
  attribute latencyBudgetMs : Real;
37
103
  attribute staleAfterMs : Real;
38
104
  attribute integrityLevel : String;
39
- ref sourceFunction : SystemFunction[0..1];
40
- ref targetFunction : SystemFunction[0..1];
105
+ // MemoFunction, not SystemFunction: an exchange between two component
106
+ // functions is the ordinary case once the chain is decomposed.
107
+ ref sourceFunction : MemoFunction[0..1];
108
+ ref targetFunction : MemoFunction[0..1];
41
109
  }
42
110
 
43
111
  // A system function enables operational work; it does not perform it.
@@ -46,36 +114,18 @@ package memo_architecture_functional_functions {
46
114
  // flows are part of functional architecture, never logical structure.
47
115
  part def FunctionalFlow specializes ArchitectureElement {
48
116
  attribute flowCategory : FunctionalFlowKind;
49
- ref startFunction : SystemFunction[0..1];
50
- ref endFunction : SystemFunction[0..1];
51
117
  attribute endToEndLatencyBudgetMs : String;
52
118
  attribute safetyRelevant : Boolean;
53
119
  attribute securityRelevant : Boolean;
54
- ref includedFunctions : SystemFunction[0..*];
55
120
  }
56
- part def FunctionalFlowStep specializes MemoPart {
57
- attribute stepOrder : String;
58
- ref function : SystemFunction[0..1];
121
+ action def FunctionalFlowStep specializes MemoAction {
122
+ ref function : MemoFunction[0..1];
59
123
  ref exchange : FunctionalExchange[0..1];
60
- ref item exchangedItem : MemoExchangeItem[0..1];
124
+ ref item exchangedItem : MemoItem[0..1];
61
125
  }
62
126
 
63
- // The functional-layer scenario selects one functional route and realizes
64
- // an operative scenario. It is the "what the system does" path, not a
65
- // logical component interaction.
66
- part def FunctionalScenario specializes MemoScenario {
67
- ref functionSequence : SystemFunction[0..*];
68
- ref functionalFlows : FunctionalExchange[0..*];
69
- attribute sequenceDiagramRef : String;
70
- ref selectedFlow : FunctionalFlow[0..1];
71
- }
72
- connection def IncludesStep :> MemoRelationship {
73
- end functionalFlow : FunctionalFlow;
74
- end step : FunctionalFlowStep;
75
- }
76
- connection def InvolvesFunction :> MemoRelationship {
77
- end functionalFlow : FunctionalFlow;
78
- end function : SystemFunction;
79
- }
80
- // Compatibility spelling used by existing models.
127
+ // `InvolvesFunction` is native `perform` (R10-S6): a `FunctionalFlow`
128
+ // already names its functions via its step chain
129
+ // (`perform <step>;` + the step's own `ref function`), and a flow with no
130
+ // step chain performs its functions directly.
81
131
  }
@@ -1,10 +1,17 @@
1
- // Software runtime (component-and-connector) view (§11). Runtime structure
2
- // with concurrency, scheduling, health monitoring, fault containment, and
3
- // update/rollback semantics. Module structure lives in
1
+ // Software runtime (component-and-connector) view (§11), matching the SEI
2
+ // Views and Beyond distinction between runtime components and implementation
3
+ // modules. Runtime structure carries concurrency, scheduling, health
4
+ // monitoring, fault containment, and update/rollback semantics. Module structure lives in
4
5
  // memo_architecture_implementation_software_structure; allocation in
5
- // memo_architecture_realization_deployment. Detailed AADL categories stay in the AADL
6
- // correspondence profile (examples/aadl-mapping).
6
+ // memo_architecture_realization_deployment.
7
+ //
8
+ // Detailed AADL categories live in the AADL correspondence profile, which is
9
+ // an extension package: `extensions/aadl` (plan §C5). It carries the process /
10
+ // thread / virtual-processor families and a correspondence rule per mapped
11
+ // name and property. This comment pointed at `examples/aadl-mapping` for a
12
+ // long time and that directory never existed; the pointer above resolves.
7
13
  package memo_architecture_implementation_software_runtime {
14
+ private import Metaobjects::SemanticMetadata;
8
15
  private import ScalarValues::*;
9
16
 
10
17
  private import memo_core_common::*;
@@ -25,11 +32,9 @@ package memo_architecture_implementation_software_runtime {
25
32
  enum messageBroker;
26
33
  }
27
34
 
28
- part def SoftwareComponent specializes ArchitectureElement {
35
+ part def SoftwareComponent specializes SoftwareElement {
29
36
  attribute runtimeKind : RuntimeKind;
30
37
  attribute responsibility : String;
31
- attribute safetyClass : SafetyClassKind;
32
- attribute complexity : ComplexityKind;
33
38
  attribute periodMs : Real;
34
39
  attribute deadlineMs : Real;
35
40
  attribute wcetMs : Real;
@@ -38,7 +43,10 @@ package memo_architecture_implementation_software_runtime {
38
43
  attribute activation : String;
39
44
  attribute synchronizationMechanism : String;
40
45
  attribute sharedResources : String;
41
- attribute memoryBudget : String;
46
+ // Maximum resident memory allocation in megabytes. The public name
47
+ // predates MEMO's unit-suffixed scalar convention, so document the
48
+ // unit here rather than silently changing the published feature name.
49
+ attribute memoryBudget : Real;
42
50
  attribute healthMonitoring : String;
43
51
  attribute restartPolicy : String;
44
52
  attribute faultContainment : String;
@@ -47,24 +55,38 @@ package memo_architecture_implementation_software_runtime {
47
55
  attribute auditable : Boolean;
48
56
  attribute updatePolicy : String;
49
57
  attribute rollbackPolicy : String;
50
- // runtime-kind-specific detail (set only for the relevant runtimeKind)
51
- attribute addressSpaceIsolated : Boolean[0..1];
52
- attribute owningProcessName : String[0..1];
53
- attribute serviceContract : String[0..1];
54
- attribute discoveryMechanism : String[0..1];
55
- attribute imageReference : String[0..1];
56
- attribute orchestrationPlatform : String[0..1];
57
- attribute partitionBudget : String[0..1];
58
- attribute isolationMechanism : String[0..1];
59
- attribute storageKind : String[0..1];
60
- attribute retentionPolicy : String[0..1];
61
- attribute deliverySemantics : String[0..1];
62
- attribute topicStructure : String[0..1];
58
+ // Twelve runtime-kind-conditional attributes used to follow, each
59
+ // documented "set only for the relevant runtimeKind" — which is a
60
+ // subtype family in disguise, and a technology the base ontology had
61
+ // no business asserting. They are gone; every one of them now lives on
62
+ // a type in an extension, where it is unconditional and therefore
63
+ // checkable (plan §10.3 D3, extensions/README.md):
64
+ //
65
+ // addressSpaceIsolated, owningProcessName,
66
+ // partitionBudget, isolationMechanism -> extensions/aadl
67
+ // serviceContract, discoveryMechanism,
68
+ // storageKind, retentionPolicy -> extensions/cloud
69
+ // imageReference, orchestrationPlatform -> extensions/container
70
+ // deliverySemantics, topicStructure -> extensions/messaging
71
+ //
72
+ // The last two were also on the wrong metaclass: a component does not
73
+ // have a topic, a publication does.
74
+ //
75
+ // What stays is what is true of EVERY runtime component in every
76
+ // regulated project — the AADL thread properties above and the
77
+ // assurance ones — plus `runtimeKind` itself, which says which family
78
+ // a component belongs to without claiming to describe it.
63
79
  }
64
80
 
65
81
  connection def ComponentConnects :> MemoRelationship {
66
82
  attribute protocolSummary : String;
67
- end sourceComponent : SoftwareComponent;
68
- end targetComponent : SoftwareComponent;
83
+ end sourceComponent : SoftwareComponent :>> source;
84
+ end targetComponent : SoftwareComponent :>> target;
85
+ }
86
+ abstract connection componentConnectsLinks : ComponentConnects[*];
87
+ metadata def <componentConnects> ComponentConnectsMetadata :> SemanticMetadata {
88
+ :> annotatedElement : SysML::ConnectionDefinition;
89
+ :> annotatedElement : SysML::ConnectionUsage;
90
+ :>> baseType = componentConnectsLinks meta SysML::Usage;
69
91
  }
70
92
  }
@@ -1,7 +1,10 @@
1
- // Software module view (§11; IEC 62304 5.3-5.4). Code/module structure only:
2
- // runtime structure lives in memo_architecture_implementation_software_runtime and
3
- // allocation in memo_architecture_realization_deployment.
1
+ // Software module view (§11; IEC 62304 5.3-5.4). Following the SEI Views and
2
+ // Beyond viewtypes, modules are implementation/code units; interacting runtime
3
+ // elements are SoftwareComponents in
4
+ // memo_architecture_implementation_software_runtime, and allocation lives in
5
+ // memo_architecture_realization_deployment.
4
6
  package memo_architecture_implementation_software_structure {
7
+ private import Metaobjects::SemanticMetadata;
5
8
  private import ScalarValues::*;
6
9
 
7
10
  private import memo_core_common::*;
@@ -9,10 +12,29 @@ package memo_architecture_implementation_software_structure {
9
12
  private import memo_core_relationships::*;
10
13
  private import memo_architecture_logical_structure::*;
11
14
 
12
- part def SoftwareSystem specializes ArchitectureElement {
13
- attribute version : String;
15
+ // IEC 62304 §3.25: a SOFTWARE ITEM is "any identifiable part of a computer
16
+ // program". It is the general, recursive term — a SOFTWARE SYSTEM (§3.24)
17
+ // is the top item and a SOFTWARE UNIT (§3.26) is one not subdivided
18
+ // further; both are software items. So this is a base, not a fourth
19
+ // sibling of system/module/component.
20
+ //
21
+ // It exists because §4.3 classifies, and §5.3–5.4 decompose, SOFTWARE
22
+ // ITEMS — not "modules" or "components" specifically. Anything the
23
+ // standard obliges at item level therefore belongs here, and every
24
+ // software view inherits it rather than re-declaring it: the code view
25
+ // (SoftwareModule), the runtime view (SoftwareComponent), the system, and
26
+ // the user interface (memo_architecture_implementation_ui::UIElement).
27
+ // Structural software decomposition is part-native. IEC 62304 also uses
28
+ // the term "software item" for this concept, but reserving SoftwareItem
29
+ // for the native SysML item family keeps structural parts and exchanged
30
+ // values unambiguous in the model.
31
+ abstract part def SoftwareElement specializes ArchitectureElement {
14
32
  attribute safetyClass : SafetyClassKind;
15
33
  attribute complexity : ComplexityKind;
34
+ }
35
+
36
+ part def SoftwareSystem specializes SoftwareElement {
37
+ attribute version : String;
16
38
  attribute operatingSystem : String;
17
39
  }
18
40
 
@@ -29,11 +51,9 @@ package memo_architecture_implementation_software_structure {
29
51
  enum soup;
30
52
  }
31
53
 
32
- part def SoftwareModule specializes ArchitectureElement {
54
+ part def SoftwareModule specializes SoftwareElement {
33
55
  attribute moduleKind : ModuleKind;
34
56
  attribute responsibility : String;
35
- attribute safetyClass : SafetyClassKind;
36
- attribute complexity : ComplexityKind;
37
57
  // module-kind-specific detail (set only for the relevant moduleKind)
38
58
  attribute iec62304Role : String[0..1];
39
59
  attribute implementationLanguage : String[0..1];
@@ -65,7 +85,15 @@ package memo_architecture_implementation_software_structure {
65
85
  attribute version : String;
66
86
  }
67
87
 
68
- item def SBOMEntry specializes MemoExchangeItem {
88
+ // Software data/content that may be stored or exchanged through ports.
89
+ abstract item def SoftwareItem specializes MemoItem {
90
+ attribute schemaIdentifier : String;
91
+ attribute schemaVersion : String;
92
+ attribute encoding : String;
93
+ attribute timestampRequired : Boolean;
94
+ }
95
+
96
+ item def SBOMEntry specializes SoftwareItem {
69
97
  attribute componentName : String;
70
98
  attribute version : String;
71
99
  attribute supplier : String;
@@ -73,8 +101,20 @@ package memo_architecture_implementation_software_structure {
73
101
  attribute hash : String;
74
102
  }
75
103
 
76
- connection def ModuleUses :> MemoRelationship {
77
- end usingModule : SoftwareModule;
78
- end usedModule : SoftwareModule;
104
+ // `ModuleUses` is native `dependency` (R10-S6): write
105
+ // `dependency <usingModule> to <usedModule>;` instead of a connection.
106
+
107
+ // ── Relations owned by this package ─────────────────────────────
108
+ // Moved out of memo_core_relationships: their ends are typed against
109
+ // types declared here, and core must not depend on a domain package.
110
+ connection def DependsOnSoup :> MemoRelationship {
111
+ end component : ArchitectureElement :>> source;
112
+ end soupItem : SoftwareElement :>> target;
113
+ }
114
+ abstract connection dependsOnSoupLinks : DependsOnSoup[*];
115
+ metadata def <dependsOnSoup> DependsOnSoupMetadata :> SemanticMetadata {
116
+ :> annotatedElement : SysML::ConnectionDefinition;
117
+ :> annotatedElement : SysML::ConnectionUsage;
118
+ :>> baseType = dependsOnSoupLinks meta SysML::Usage;
79
119
  }
80
120
  }