@memoarchitect/ontology 0.8.22 → 0.10.9

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 (240) hide show
  1. package/README.md +1 -1
  2. package/examples/connected-patient-monitor/memo.package.yaml +3 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
  4. package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
  5. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  6. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +11 -9
  8. package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
  9. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  10. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  11. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +9 -7
  12. package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
  13. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/memo.identity.yaml +2179 -0
  15. package/examples/gpca-pump/memo.package.yaml +3 -0
  16. package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
  17. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
  18. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
  21. package/examples/gpca-pump/model/catalog/gpca_context.sysml +27 -23
  22. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +15 -15
  23. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
  24. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
  25. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +146 -180
  26. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
  27. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
  28. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
  29. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +21 -33
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -11
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
  33. package/examples/gpca-pump/model/catalog/project.sysml +3 -1
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +7 -7
  35. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +7 -7
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +6 -7
  37. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +7 -8
  38. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +6 -6
  39. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +6 -6
  40. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +6 -6
  41. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +8 -9
  42. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +6 -6
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +6 -6
  44. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +6 -6
  45. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +6 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +7 -7
  47. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +6 -6
  48. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +6 -6
  49. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +8 -9
  50. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +6 -6
  51. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -7
  52. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +6 -7
  53. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +6 -6
  54. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +6 -6
  55. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +6 -7
  56. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +6 -6
  57. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +8 -9
  58. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +6 -7
  59. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +6 -6
  60. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  61. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +10 -8
  62. package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
  63. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  64. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  65. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +7 -5
  66. package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
  67. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  68. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  69. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
  70. package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
  71. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  72. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  73. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
  74. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
  75. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
  76. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
  77. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
  78. package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
  79. package/examples/reusable-instrument/memo.package.yaml +3 -0
  80. package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
  81. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +23 -31
  82. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  83. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  84. package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
  85. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
  86. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
  87. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  88. package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
  89. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -9
  90. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  91. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  92. package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
  93. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -69
  94. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  95. package/examples/surgical-robot/memo.package.yaml +3 -0
  96. package/examples/surgical-robot/model/catalog/project.sysml +3 -1
  97. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
  98. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  99. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  100. package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
  101. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -11
  102. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -7
  103. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +4 -3
  104. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +3 -3
  105. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +17 -16
  106. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +9 -8
  107. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +4 -3
  108. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +3 -3
  109. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +4 -3
  110. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -9
  111. package/examples/temperature-alarm/memo.identity.yaml +64 -0
  112. package/examples/temperature-alarm/memo.package.yaml +3 -0
  113. package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
  114. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +30 -29
  115. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  116. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  117. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
  118. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
  119. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
  120. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
  121. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
  122. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
  123. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
  124. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
  125. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
  126. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
  127. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
  128. package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
  129. package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
  130. package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
  131. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +6 -5
  132. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +6 -5
  133. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +6 -5
  134. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +4 -3
  135. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +4 -3
  136. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +4 -3
  137. package/extensions/aadl/memo.package.yaml +1 -1
  138. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
  139. package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
  140. package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
  141. package/extensions/cloud/memo.package.yaml +1 -1
  142. package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
  143. package/extensions/container/memo.package.yaml +1 -1
  144. package/extensions/container/src/container_extension.sysml +2 -2
  145. package/extensions/container/src/methodology/container_methodology.sysml +3 -1
  146. package/extensions/messaging/memo.package.yaml +1 -1
  147. package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
  148. package/extensions/ros/memo.package.yaml +1 -1
  149. package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
  150. package/extensions/template/src/extension.sysml +3 -1
  151. package/methodologies/default/memo.package.yaml +1 -1
  152. package/methodologies/gpca/memo.package.yaml +1 -1
  153. package/ontology/memo.package.yaml +1 -1
  154. package/package.json +2 -2
  155. package/profile/memo.package.yaml +1 -1
  156. package/src/architecture/functional/behavior/memo_behavior.sysml +5 -5
  157. package/src/architecture/functional/functions/memo_functions.sysml +6 -6
  158. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
  159. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
  160. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
  161. package/src/architecture/implementation/ui/memo_ui.sysml +8 -31
  162. package/src/architecture/logical/interfaces/memo_interfaces.sysml +4 -2
  163. package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
  164. package/src/architecture/operational/activities/memo_activities.sysml +19 -28
  165. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
  166. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
  167. package/src/architecture/operational/context/use_context/memo_use_context.sysml +5 -14
  168. package/src/architecture/operational/scenarios/memo_scenarios.sysml +12 -104
  169. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  170. package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -12
  171. package/src/architecture/operational/workflows/memo_workflows.sysml +20 -42
  172. package/src/architecture/realization/deployment/memo_deployment.sysml +26 -19
  173. package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
  174. package/src/artifacts/standards/cfr_21_820.sysml +80 -89
  175. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
  176. package/src/artifacts/standards/iec_60601_1.sysml +108 -121
  177. package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
  178. package/src/artifacts/standards/iec_60812.sysml +21 -22
  179. package/src/artifacts/standards/iec_62304.sysml +150 -169
  180. package/src/artifacts/standards/iec_62366_1.sysml +80 -89
  181. package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
  182. package/src/artifacts/standards/iso_13485.sysml +80 -89
  183. package/src/artifacts/standards/iso_14971.sysml +66 -73
  184. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
  185. package/src/artifacts/templates/dhf/system/sad.md +3 -3
  186. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
  187. package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
  188. package/src/assurance/requirements/memo_requirements.sysml +2 -18
  189. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
  190. package/src/assurance/safety_risk/memo_risk.sysml +12 -0
  191. package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
  192. package/src/core/common/memo_common.sysml +59 -55
  193. package/src/core/enumerations/memo_enumerations.sysml +1 -1
  194. package/src/core/relationships/memo_relationships.sysml +29 -56
  195. package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
  196. package/src/methodology/core/memo_core.sysml +0 -10
  197. package/src/methodology/profiles/memo_profiles.sysml +18 -16
  198. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  199. package/src/rules/closure/closure_rules.sysml +22 -20
  200. package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
  201. package/src/rules/ontology/ontology_invariants.sysml +121 -48
  202. package/src/rules/quantitative/quantitative_rules.sysml +4 -2
  203. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +58 -57
  204. package/src/viewpoints/clinical/clinical_viewpoint.sysml +5 -4
  205. package/src/viewpoints/context/context_viewpoint.sysml +6 -5
  206. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +6 -5
  207. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +6 -6
  208. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +36 -4
  209. package/src/viewpoints/functional/functional_viewpoint.sysml +6 -5
  210. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +6 -5
  211. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +6 -5
  212. package/src/viewpoints/logical/logical_viewpoint.sysml +5 -4
  213. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +6 -5
  214. package/src/viewpoints/operational/operational_viewpoint.sysml +6 -5
  215. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +7 -6
  216. package/src/viewpoints/physical/physical_viewpoint.sysml +5 -4
  217. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +6 -5
  218. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +6 -5
  219. package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
  220. package/src/viewpoints/requirements/requirements_viewpoint.sysml +5 -4
  221. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +6 -5
  222. package/src/viewpoints/risk/risk_viewpoint.sysml +5 -4
  223. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +6 -5
  224. package/src/viewpoints/software/software_viewpoint.sysml +5 -4
  225. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +6 -5
  226. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +5 -4
  227. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
  228. package/src/viewpoints/usability/usability_viewpoint.sysml +5 -4
  229. package/src/viewpoints/verification/verification_viewpoint.sysml +5 -4
  230. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +6 -5
  231. package/templates/connected-device/memo.package.yaml +2 -0
  232. package/templates/connected-device/model/catalog/project.sysml +3 -1
  233. package/templates/default/memo.package.yaml +2 -0
  234. package/templates/default/model/catalog/project.sysml +3 -1
  235. package/templates/infusion-pump/memo.package.yaml +2 -0
  236. package/templates/infusion-pump/model/catalog/project.sysml +3 -1
  237. package/templates/monitoring-device/memo.package.yaml +2 -0
  238. package/templates/monitoring-device/model/catalog/project.sysml +3 -1
  239. package/templates/samd/memo.package.yaml +2 -0
  240. package/templates/samd/model/catalog/project.sysml +3 -1
@@ -4,11 +4,12 @@ package memo_viewpoints_physical_physical_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
- part physicalViewpoint : Viewpoint {
8
- attribute :>> id = "VP-PHY";
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
9
+ viewpoint physicalViewpoint : MemoViewpoint {
10
+ @MemoIdentity { :>> providedId = "VP-PHY"; }
9
11
  attribute :>> name = "PhysicalViewpoint";
10
- attribute :>> title = "Physical Viewpoint";
11
- attribute :>> shortDescription = "Shows physical components, hardware structure, and their interconnections.";
12
+ @MemoIdentity { :>> shortDescription = "Shows physical components, hardware structure, and their interconnections."; }
12
13
  attribute :>> description = "Default viewpoint derived from the physical and hardware structure layers for bill-of-materials, hardware decomposition, physical interfaces, and network/connectivity topology.";
13
14
  attribute :>> purpose = "Describe the system's physical realization and interconnections.";
14
15
  attribute :>> audience = (AudienceKind::hardwareEngineer);
@@ -5,25 +5,26 @@ package memo_viewpoints_physical_views_network_topology_view {
5
5
  private import memo_core_enumerations::*;
6
6
  private import memo_viewpoints_physical_physical_viewpoint::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view networkTopologyView : MemoDiagramView {
9
11
  expose memo_viewpoints_physical_views_network_topology_view::*;
10
12
  attribute depth = 2;
11
- attribute :>> id = "VIEW-PHY-002";
13
+ @MemoIdentity { :>> providedId = "VIEW-PHY-002"; }
12
14
  attribute :>> name = "NetworkTopologyView";
13
- attribute :>> title = "Network Topology View";
14
- attribute :>> shortDescription = "Physical interconnections and network ports between components.";
15
+ @MemoIdentity { :>> shortDescription = "Physical interconnections and network ports between components."; }
15
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
16
17
  attribute :>> presentationKind = (PresentationKind::internalDiagram);
17
18
  attribute :>> diagramType = "ibd";
18
19
  attribute :>> autoPopulate = true;
19
20
  attribute :>> queryDescription = "Include physical ports and connections that make up the device's network topology.";
20
21
  part :>> selectionQuery {
21
- attribute :>> id = "QRY-PHY-002";
22
+ @MemoIdentity { :>> providedId = "QRY-PHY-002"; }
22
23
  attribute :>> name = "NetworkTopologyQuery";
23
24
  attribute :>> includeElementKinds = ("PhysicalPort", "ProcessingNode");
24
25
  attribute :>> includeLayers = ("physical");
25
26
  attribute :>> rationaleText = "Auto-populate the network topology view from the physical interfaces layer.";
26
27
  }
27
- part :>> viewpointDefinition = physicalViewpoint;
28
+ ref :>> viewpointDefinition = physicalViewpoint;
28
29
  }
29
30
  }
@@ -5,25 +5,26 @@ package memo_viewpoints_physical_views_physical_bom_view {
5
5
  private import memo_core_enumerations::*;
6
6
  private import memo_viewpoints_physical_physical_viewpoint::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view physicalBOMView : MemoDiagramView {
9
11
  expose memo_viewpoints_physical_views_physical_bom_view::*;
10
12
  attribute depth = 2;
11
- attribute :>> id = "VIEW-PHY-001";
13
+ @MemoIdentity { :>> providedId = "VIEW-PHY-001"; }
12
14
  attribute :>> name = "PhysicalBOMView";
13
- attribute :>> title = "Physical Bill of Materials View";
14
- attribute :>> shortDescription = "Physical and hardware components with their decomposition.";
15
+ @MemoIdentity { :>> shortDescription = "Physical and hardware components with their decomposition."; }
15
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
16
17
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
17
18
  attribute :>> diagramType = "bdd";
18
19
  attribute :>> autoPopulate = true;
19
20
  attribute :>> queryDescription = "Include physical and hardware components and their assembly structure.";
20
21
  part :>> selectionQuery {
21
- attribute :>> id = "QRY-PHY-001";
22
+ @MemoIdentity { :>> providedId = "QRY-PHY-001"; }
22
23
  attribute :>> name = "PhysicalBOMQuery";
23
24
  attribute :>> includeElementKinds = ("ProcessingNode", "HardwareAssembly");
24
25
  attribute :>> includeLayers = ("hardware_structure", "physical");
25
26
  attribute :>> rationaleText = "Auto-populate the physical BOM view from the hardware and physical layers.";
26
27
  }
27
- part :>> viewpointDefinition = physicalViewpoint;
28
+ ref :>> viewpointDefinition = physicalViewpoint;
28
29
  }
29
30
  }
@@ -14,6 +14,7 @@ package memo_viewpoints_rendering {
14
14
 
15
15
  private import memo_core_common::*;
16
16
 
17
+ private import memo_core_common::MemoIdentity;
17
18
  // The presentation identity of one architecture layer.
18
19
  part def LayerRendering :> MemoPart {
19
20
  attribute layerId : String;
@@ -31,8 +32,28 @@ package memo_viewpoints_rendering {
31
32
  attribute explorerGroup : String;
32
33
  }
33
34
 
35
+ // The display identity of one enumeration value.
36
+ //
37
+ // `enumValue` is the FULLY QUALIFIED value as the model stores it
38
+ // ("StatusKind::tbd"), which is the only spelling that identifies a member
39
+ // unambiguously. A consumer matches on that and reads the label; it must
40
+ // never parse the string, because a suffix test like `endsWith("resolved")`
41
+ // silently mismatches the moment a member is renamed or a new member ends
42
+ // in the same word.
43
+ //
44
+ // Labels live here rather than in an application for the same reason layer
45
+ // colours do: a consumer that received the ontology without them would
46
+ // render different text for the same model. The static HTML export, the DHF
47
+ // workbench and a report generator all resolve the same label from here.
48
+ part def EnumRendering :> MemoPart {
49
+ attribute enumValue : String;
50
+ attribute label : String;
51
+ attribute shortLabel : String[0..1];
52
+ attribute enumColor : String[0..1];
53
+ }
54
+
34
55
  part layerOperationalRendering : LayerRendering {
35
- attribute :>> id = "LAYER-OPERATIONAL";
56
+ @MemoIdentity { :>> providedId = "LAYER-OPERATIONAL"; }
36
57
  attribute :>> name = "OperationalLayerRendering";
37
58
  attribute :>> layerId = "operational";
38
59
  attribute :>> layerLabel = "Operational";
@@ -40,7 +61,7 @@ package memo_viewpoints_rendering {
40
61
  }
41
62
 
42
63
  part layerBehavioralRendering : LayerRendering {
43
- attribute :>> id = "LAYER-BEHAVIORAL";
64
+ @MemoIdentity { :>> providedId = "LAYER-BEHAVIORAL"; }
44
65
  attribute :>> name = "BehavioralLayerRendering";
45
66
  attribute :>> layerId = "behavioral";
46
67
  attribute :>> layerLabel = "Behavioral";
@@ -48,7 +69,7 @@ package memo_viewpoints_rendering {
48
69
  }
49
70
 
50
71
  part layerFunctionalRendering : LayerRendering {
51
- attribute :>> id = "LAYER-FUNCTIONAL";
72
+ @MemoIdentity { :>> providedId = "LAYER-FUNCTIONAL"; }
52
73
  attribute :>> name = "FunctionalLayerRendering";
53
74
  attribute :>> layerId = "functional";
54
75
  attribute :>> layerLabel = "Functional";
@@ -56,7 +77,7 @@ package memo_viewpoints_rendering {
56
77
  }
57
78
 
58
79
  part layerLogicalRendering : LayerRendering {
59
- attribute :>> id = "LAYER-LOGICAL";
80
+ @MemoIdentity { :>> providedId = "LAYER-LOGICAL"; }
60
81
  attribute :>> name = "LogicalLayerRendering";
61
82
  attribute :>> layerId = "logical";
62
83
  attribute :>> layerLabel = "Logical";
@@ -64,7 +85,7 @@ package memo_viewpoints_rendering {
64
85
  }
65
86
 
66
87
  part layerSoftwareRendering : LayerRendering {
67
- attribute :>> id = "LAYER-SOFTWARE";
88
+ @MemoIdentity { :>> providedId = "LAYER-SOFTWARE"; }
68
89
  attribute :>> name = "SoftwareLayerRendering";
69
90
  attribute :>> layerId = "software";
70
91
  attribute :>> layerLabel = "Software";
@@ -72,7 +93,7 @@ package memo_viewpoints_rendering {
72
93
  }
73
94
 
74
95
  part layerSoftwareExtensionRendering : LayerRendering {
75
- attribute :>> id = "LAYER-SOFTWARE-EXTENSION";
96
+ @MemoIdentity { :>> providedId = "LAYER-SOFTWARE-EXTENSION"; }
76
97
  attribute :>> name = "Software Extension (ROS)LayerRendering";
77
98
  attribute :>> layerId = "software-extension";
78
99
  attribute :>> layerLabel = "Software Extension (ROS)";
@@ -80,7 +101,7 @@ package memo_viewpoints_rendering {
80
101
  }
81
102
 
82
103
  part layerHardwareRendering : LayerRendering {
83
- attribute :>> id = "LAYER-HARDWARE";
104
+ @MemoIdentity { :>> providedId = "LAYER-HARDWARE"; }
84
105
  attribute :>> name = "HardwareLayerRendering";
85
106
  attribute :>> layerId = "hardware";
86
107
  attribute :>> layerLabel = "Hardware";
@@ -88,7 +109,7 @@ package memo_viewpoints_rendering {
88
109
  }
89
110
 
90
111
  part layerSafetyRendering : LayerRendering {
91
- attribute :>> id = "LAYER-SAFETY";
112
+ @MemoIdentity { :>> providedId = "LAYER-SAFETY"; }
92
113
  attribute :>> name = "SafetyLayerRendering";
93
114
  attribute :>> layerId = "safety";
94
115
  attribute :>> layerLabel = "Safety";
@@ -96,7 +117,7 @@ package memo_viewpoints_rendering {
96
117
  }
97
118
 
98
119
  part layerSecurityRendering : LayerRendering {
99
- attribute :>> id = "LAYER-SECURITY";
120
+ @MemoIdentity { :>> providedId = "LAYER-SECURITY"; }
100
121
  attribute :>> name = "SecurityLayerRendering";
101
122
  attribute :>> layerId = "security";
102
123
  attribute :>> layerLabel = "Security";
@@ -104,7 +125,7 @@ package memo_viewpoints_rendering {
104
125
  }
105
126
 
106
127
  part layerPrivacyRendering : LayerRendering {
107
- attribute :>> id = "LAYER-PRIVACY";
128
+ @MemoIdentity { :>> providedId = "LAYER-PRIVACY"; }
108
129
  attribute :>> name = "PrivacyLayerRendering";
109
130
  attribute :>> layerId = "privacy";
110
131
  attribute :>> layerLabel = "Privacy";
@@ -112,7 +133,7 @@ package memo_viewpoints_rendering {
112
133
  }
113
134
 
114
135
  part layerVerificationRendering : LayerRendering {
115
- attribute :>> id = "LAYER-VERIFICATION";
136
+ @MemoIdentity { :>> providedId = "LAYER-VERIFICATION"; }
116
137
  attribute :>> name = "VerificationLayerRendering";
117
138
  attribute :>> layerId = "verification";
118
139
  attribute :>> layerLabel = "Verification";
@@ -120,7 +141,7 @@ package memo_viewpoints_rendering {
120
141
  }
121
142
 
122
143
  part explorerActivitiesClassification : ExplorerClassification {
123
- attribute :>> id = "EXPL-001";
144
+ @MemoIdentity { :>> providedId = "EXPL-001"; }
124
145
  attribute :>> name = "activitiesExplorerClassification";
125
146
  attribute :>> sourceNamespace = "activities";
126
147
  attribute :>> explorerDomain = "architecture";
@@ -128,7 +149,7 @@ package memo_viewpoints_rendering {
128
149
  }
129
150
 
130
151
  part explorerContextClassification : ExplorerClassification {
131
- attribute :>> id = "EXPL-002";
152
+ @MemoIdentity { :>> providedId = "EXPL-002"; }
132
153
  attribute :>> name = "contextExplorerClassification";
133
154
  attribute :>> sourceNamespace = "context";
134
155
  attribute :>> explorerDomain = "architecture";
@@ -136,7 +157,7 @@ package memo_viewpoints_rendering {
136
157
  }
137
158
 
138
159
  part explorerActorsClassification : ExplorerClassification {
139
- attribute :>> id = "EXPL-003";
160
+ @MemoIdentity { :>> providedId = "EXPL-003"; }
140
161
  attribute :>> name = "actorsExplorerClassification";
141
162
  attribute :>> sourceNamespace = "actors";
142
163
  attribute :>> explorerDomain = "architecture";
@@ -144,7 +165,7 @@ package memo_viewpoints_rendering {
144
165
  }
145
166
 
146
167
  part explorerUseContextClassification : ExplorerClassification {
147
- attribute :>> id = "EXPL-004";
168
+ @MemoIdentity { :>> providedId = "EXPL-004"; }
148
169
  attribute :>> name = "use_contextExplorerClassification";
149
170
  attribute :>> sourceNamespace = "use_context";
150
171
  attribute :>> explorerDomain = "architecture";
@@ -152,7 +173,7 @@ package memo_viewpoints_rendering {
152
173
  }
153
174
 
154
175
  part explorerWorkflowsClassification : ExplorerClassification {
155
- attribute :>> id = "EXPL-005";
176
+ @MemoIdentity { :>> providedId = "EXPL-005"; }
156
177
  attribute :>> name = "workflowsExplorerClassification";
157
178
  attribute :>> sourceNamespace = "workflows";
158
179
  attribute :>> explorerDomain = "architecture";
@@ -160,7 +181,7 @@ package memo_viewpoints_rendering {
160
181
  }
161
182
 
162
183
  part explorerScenariosClassification : ExplorerClassification {
163
- attribute :>> id = "EXPL-006";
184
+ @MemoIdentity { :>> providedId = "EXPL-006"; }
164
185
  attribute :>> name = "scenariosExplorerClassification";
165
186
  attribute :>> sourceNamespace = "scenarios";
166
187
  attribute :>> explorerDomain = "architecture";
@@ -168,7 +189,7 @@ package memo_viewpoints_rendering {
168
189
  }
169
190
 
170
191
  part explorerUseCasesClassification : ExplorerClassification {
171
- attribute :>> id = "EXPL-007";
192
+ @MemoIdentity { :>> providedId = "EXPL-007"; }
172
193
  attribute :>> name = "use_casesExplorerClassification";
173
194
  attribute :>> sourceNamespace = "use_cases";
174
195
  attribute :>> explorerDomain = "architecture";
@@ -176,7 +197,7 @@ package memo_viewpoints_rendering {
176
197
  }
177
198
 
178
199
  part explorerInteractionClassification : ExplorerClassification {
179
- attribute :>> id = "EXPL-008";
200
+ @MemoIdentity { :>> providedId = "EXPL-008"; }
180
201
  attribute :>> name = "interactionExplorerClassification";
181
202
  attribute :>> sourceNamespace = "interaction";
182
203
  attribute :>> explorerDomain = "architecture";
@@ -184,7 +205,7 @@ package memo_viewpoints_rendering {
184
205
  }
185
206
 
186
207
  part explorerOperationalClassification : ExplorerClassification {
187
- attribute :>> id = "EXPL-009";
208
+ @MemoIdentity { :>> providedId = "EXPL-009"; }
188
209
  attribute :>> name = "operationalExplorerClassification";
189
210
  attribute :>> sourceNamespace = "operational";
190
211
  attribute :>> explorerDomain = "architecture";
@@ -192,7 +213,7 @@ package memo_viewpoints_rendering {
192
213
  }
193
214
 
194
215
  part explorerFunctionsClassification : ExplorerClassification {
195
- attribute :>> id = "EXPL-010";
216
+ @MemoIdentity { :>> providedId = "EXPL-010"; }
196
217
  attribute :>> name = "functionsExplorerClassification";
197
218
  attribute :>> sourceNamespace = "functions";
198
219
  attribute :>> explorerDomain = "architecture";
@@ -200,7 +221,7 @@ package memo_viewpoints_rendering {
200
221
  }
201
222
 
202
223
  part explorerBehaviorClassification : ExplorerClassification {
203
- attribute :>> id = "EXPL-011";
224
+ @MemoIdentity { :>> providedId = "EXPL-011"; }
204
225
  attribute :>> name = "behaviorExplorerClassification";
205
226
  attribute :>> sourceNamespace = "behavior";
206
227
  attribute :>> explorerDomain = "architecture";
@@ -208,7 +229,7 @@ package memo_viewpoints_rendering {
208
229
  }
209
230
 
210
231
  part explorerConstraintsClassification : ExplorerClassification {
211
- attribute :>> id = "EXPL-012";
232
+ @MemoIdentity { :>> providedId = "EXPL-012"; }
212
233
  attribute :>> name = "constraintsExplorerClassification";
213
234
  attribute :>> sourceNamespace = "constraints";
214
235
  attribute :>> explorerDomain = "architecture";
@@ -216,7 +237,7 @@ package memo_viewpoints_rendering {
216
237
  }
217
238
 
218
239
  part explorerLogicalStructureClassification : ExplorerClassification {
219
- attribute :>> id = "EXPL-013";
240
+ @MemoIdentity { :>> providedId = "EXPL-013"; }
220
241
  attribute :>> name = "logical_structureExplorerClassification";
221
242
  attribute :>> sourceNamespace = "logical_structure";
222
243
  attribute :>> explorerDomain = "architecture";
@@ -224,7 +245,7 @@ package memo_viewpoints_rendering {
224
245
  }
225
246
 
226
247
  part explorerInterfacesClassification : ExplorerClassification {
227
- attribute :>> id = "EXPL-014";
248
+ @MemoIdentity { :>> providedId = "EXPL-014"; }
228
249
  attribute :>> name = "interfacesExplorerClassification";
229
250
  attribute :>> sourceNamespace = "interfaces";
230
251
  attribute :>> explorerDomain = "architecture";
@@ -232,7 +253,7 @@ package memo_viewpoints_rendering {
232
253
  }
233
254
 
234
255
  part explorerHardwareStructureClassification : ExplorerClassification {
235
- attribute :>> id = "EXPL-015";
256
+ @MemoIdentity { :>> providedId = "EXPL-015"; }
236
257
  attribute :>> name = "hardware_structureExplorerClassification";
237
258
  attribute :>> sourceNamespace = "hardware_structure";
238
259
  attribute :>> explorerDomain = "architecture";
@@ -240,7 +261,7 @@ package memo_viewpoints_rendering {
240
261
  }
241
262
 
242
263
  part explorerImplementationClassification : ExplorerClassification {
243
- attribute :>> id = "EXPL-016";
264
+ @MemoIdentity { :>> providedId = "EXPL-016"; }
244
265
  attribute :>> name = "implementationExplorerClassification";
245
266
  attribute :>> sourceNamespace = "implementation";
246
267
  attribute :>> explorerDomain = "architecture";
@@ -248,7 +269,7 @@ package memo_viewpoints_rendering {
248
269
  }
249
270
 
250
271
  part explorerSoftwareStructureClassification : ExplorerClassification {
251
- attribute :>> id = "EXPL-017";
272
+ @MemoIdentity { :>> providedId = "EXPL-017"; }
252
273
  attribute :>> name = "software_structureExplorerClassification";
253
274
  attribute :>> sourceNamespace = "software_structure";
254
275
  attribute :>> explorerDomain = "architecture";
@@ -256,7 +277,7 @@ package memo_viewpoints_rendering {
256
277
  }
257
278
 
258
279
  part explorerSoftwareRuntimeClassification : ExplorerClassification {
259
- attribute :>> id = "EXPL-018";
280
+ @MemoIdentity { :>> providedId = "EXPL-018"; }
260
281
  attribute :>> name = "software_runtimeExplorerClassification";
261
282
  attribute :>> sourceNamespace = "software_runtime";
262
283
  attribute :>> explorerDomain = "architecture";
@@ -264,7 +285,7 @@ package memo_viewpoints_rendering {
264
285
  }
265
286
 
266
287
  part explorerPhysicalClassification : ExplorerClassification {
267
- attribute :>> id = "EXPL-019";
288
+ @MemoIdentity { :>> providedId = "EXPL-019"; }
268
289
  attribute :>> name = "physicalExplorerClassification";
269
290
  attribute :>> sourceNamespace = "physical";
270
291
  attribute :>> explorerDomain = "architecture";
@@ -272,7 +293,7 @@ package memo_viewpoints_rendering {
272
293
  }
273
294
 
274
295
  part explorerDeploymentClassification : ExplorerClassification {
275
- attribute :>> id = "EXPL-020";
296
+ @MemoIdentity { :>> providedId = "EXPL-020"; }
276
297
  attribute :>> name = "deploymentExplorerClassification";
277
298
  attribute :>> sourceNamespace = "deployment";
278
299
  attribute :>> explorerDomain = "architecture";
@@ -280,7 +301,7 @@ package memo_viewpoints_rendering {
280
301
  }
281
302
 
282
303
  part explorerNeedsClassification : ExplorerClassification {
283
- attribute :>> id = "EXPL-021";
304
+ @MemoIdentity { :>> providedId = "EXPL-021"; }
284
305
  attribute :>> name = "needsExplorerClassification";
285
306
  attribute :>> sourceNamespace = "needs";
286
307
  attribute :>> explorerDomain = "assurance";
@@ -288,7 +309,7 @@ package memo_viewpoints_rendering {
288
309
  }
289
310
 
290
311
  part explorerRequirementsClassification : ExplorerClassification {
291
- attribute :>> id = "EXPL-022";
312
+ @MemoIdentity { :>> providedId = "EXPL-022"; }
292
313
  attribute :>> name = "requirementsExplorerClassification";
293
314
  attribute :>> sourceNamespace = "requirements";
294
315
  attribute :>> explorerDomain = "assurance";
@@ -296,7 +317,7 @@ package memo_viewpoints_rendering {
296
317
  }
297
318
 
298
319
  part explorerSafetyClassification : ExplorerClassification {
299
- attribute :>> id = "EXPL-023";
320
+ @MemoIdentity { :>> providedId = "EXPL-023"; }
300
321
  attribute :>> name = "safetyExplorerClassification";
301
322
  attribute :>> sourceNamespace = "safety";
302
323
  attribute :>> explorerDomain = "assurance";
@@ -304,7 +325,7 @@ package memo_viewpoints_rendering {
304
325
  }
305
326
 
306
327
  part explorerSafetyAnalysisClassification : ExplorerClassification {
307
- attribute :>> id = "EXPL-024";
328
+ @MemoIdentity { :>> providedId = "EXPL-024"; }
308
329
  attribute :>> name = "safety_analysisExplorerClassification";
309
330
  attribute :>> sourceNamespace = "safety_analysis";
310
331
  attribute :>> explorerDomain = "assurance";
@@ -312,7 +333,7 @@ package memo_viewpoints_rendering {
312
333
  }
313
334
 
314
335
  part explorerCybersecurityClassification : ExplorerClassification {
315
- attribute :>> id = "EXPL-025";
336
+ @MemoIdentity { :>> providedId = "EXPL-025"; }
316
337
  attribute :>> name = "cybersecurityExplorerClassification";
317
338
  attribute :>> sourceNamespace = "cybersecurity";
318
339
  attribute :>> explorerDomain = "assurance";
@@ -320,7 +341,7 @@ package memo_viewpoints_rendering {
320
341
  }
321
342
 
322
343
  part explorerHumanFactorsClassification : ExplorerClassification {
323
- attribute :>> id = "EXPL-026";
344
+ @MemoIdentity { :>> providedId = "EXPL-026"; }
324
345
  attribute :>> name = "human_factorsExplorerClassification";
325
346
  attribute :>> sourceNamespace = "human_factors";
326
347
  attribute :>> explorerDomain = "assurance";
@@ -328,7 +349,7 @@ package memo_viewpoints_rendering {
328
349
  }
329
350
 
330
351
  part explorerVerificationClassification : ExplorerClassification {
331
- attribute :>> id = "EXPL-027";
352
+ @MemoIdentity { :>> providedId = "EXPL-027"; }
332
353
  attribute :>> name = "verificationExplorerClassification";
333
354
  attribute :>> sourceNamespace = "verification";
334
355
  attribute :>> explorerDomain = "assurance";
@@ -336,7 +357,7 @@ package memo_viewpoints_rendering {
336
357
  }
337
358
 
338
359
  part explorerCoreClassification : ExplorerClassification {
339
- attribute :>> id = "EXPL-028";
360
+ @MemoIdentity { :>> providedId = "EXPL-028"; }
340
361
  attribute :>> name = "coreExplorerClassification";
341
362
  attribute :>> sourceNamespace = "core";
342
363
  attribute :>> explorerDomain = "assurance";
@@ -344,11 +365,170 @@ package memo_viewpoints_rendering {
344
365
  }
345
366
 
346
367
  part explorerMethodologyClassification : ExplorerClassification {
347
- attribute :>> id = "EXPL-029";
368
+ @MemoIdentity { :>> providedId = "EXPL-029"; }
348
369
  attribute :>> name = "methodologyExplorerClassification";
349
370
  attribute :>> sourceNamespace = "methodology";
350
371
  attribute :>> explorerDomain = "methodology";
351
372
  attribute :>> explorerGroup = "methodology";
352
373
  }
353
374
 
375
+ // ── Enumeration labels ───────────────────────────────────────
376
+ // Seeded with the three status enums. `StatusKind` is the standard
377
+ // ModelingMetadata one and is seeded first because its members are
378
+ // abbreviations no reader expands on sight; it tracks whether a
379
+ // question about an element is settled, which is orthogonal to
380
+ // `ElementStatusKind` tracking where the element sits in its
381
+ // controlled lifecycle. An element can be released and still carry a
382
+ // tbr on one unresolved value.
383
+
384
+
385
+ part enumStatusOpen : EnumRendering {
386
+ @MemoIdentity { :>> providedId = "ENUM-STATUS-001"; }
387
+ attribute :>> name = "EnumStatusOpen";
388
+ attribute :>> enumValue = "StatusKind::open";
389
+ attribute :>> label = "Open";
390
+ attribute :>> shortLabel = "Open";
391
+ attribute :>> enumColor = "#6B7280";
392
+ }
393
+
394
+ part enumStatusTbd : EnumRendering {
395
+ @MemoIdentity { :>> providedId = "ENUM-STATUS-002"; }
396
+ attribute :>> name = "EnumStatusTbd";
397
+ attribute :>> enumValue = "StatusKind::tbd";
398
+ attribute :>> label = "To Be Determined";
399
+ attribute :>> shortLabel = "TBD";
400
+ attribute :>> enumColor = "#D97706";
401
+ }
402
+
403
+ part enumStatusTbr : EnumRendering {
404
+ @MemoIdentity { :>> providedId = "ENUM-STATUS-003"; }
405
+ attribute :>> name = "EnumStatusTbr";
406
+ attribute :>> enumValue = "StatusKind::tbr";
407
+ attribute :>> label = "To Be Resolved";
408
+ attribute :>> shortLabel = "TBR";
409
+ attribute :>> enumColor = "#D97706";
410
+ }
411
+
412
+ part enumStatusTbc : EnumRendering {
413
+ @MemoIdentity { :>> providedId = "ENUM-STATUS-004"; }
414
+ attribute :>> name = "EnumStatusTbc";
415
+ attribute :>> enumValue = "StatusKind::tbc";
416
+ attribute :>> label = "To Be Confirmed";
417
+ attribute :>> shortLabel = "TBC";
418
+ attribute :>> enumColor = "#D97706";
419
+ }
420
+
421
+ part enumStatusDone : EnumRendering {
422
+ @MemoIdentity { :>> providedId = "ENUM-STATUS-005"; }
423
+ attribute :>> name = "EnumStatusDone";
424
+ attribute :>> enumValue = "StatusKind::done";
425
+ attribute :>> label = "Done";
426
+ attribute :>> shortLabel = "Done";
427
+ attribute :>> enumColor = "#0F766E";
428
+ }
429
+
430
+ part enumStatusClosed : EnumRendering {
431
+ @MemoIdentity { :>> providedId = "ENUM-STATUS-006"; }
432
+ attribute :>> name = "EnumStatusClosed";
433
+ attribute :>> enumValue = "StatusKind::closed";
434
+ attribute :>> label = "Closed";
435
+ attribute :>> shortLabel = "Closed";
436
+ attribute :>> enumColor = "#0F766E";
437
+ }
438
+
439
+ part enumElementProposed : EnumRendering {
440
+ @MemoIdentity { :>> providedId = "ENUM-ELEM-001"; }
441
+ attribute :>> name = "EnumElementProposed";
442
+ attribute :>> enumValue = "ElementStatusKind::proposed";
443
+ attribute :>> label = "Proposed";
444
+ attribute :>> enumColor = "#6B7280";
445
+ }
446
+
447
+ part enumElementDraft : EnumRendering {
448
+ @MemoIdentity { :>> providedId = "ENUM-ELEM-002"; }
449
+ attribute :>> name = "EnumElementDraft";
450
+ attribute :>> enumValue = "ElementStatusKind::draft";
451
+ attribute :>> label = "Draft";
452
+ attribute :>> enumColor = "#6B7280";
453
+ }
454
+
455
+ part enumElementInReview : EnumRendering {
456
+ @MemoIdentity { :>> providedId = "ENUM-ELEM-003"; }
457
+ attribute :>> name = "EnumElementInReview";
458
+ attribute :>> enumValue = "ElementStatusKind::inReview";
459
+ attribute :>> label = "In Review";
460
+ attribute :>> enumColor = "#D97706";
461
+ }
462
+
463
+ part enumElementApproved : EnumRendering {
464
+ @MemoIdentity { :>> providedId = "ENUM-ELEM-004"; }
465
+ attribute :>> name = "EnumElementApproved";
466
+ attribute :>> enumValue = "ElementStatusKind::approved";
467
+ attribute :>> label = "Approved";
468
+ attribute :>> enumColor = "#0F766E";
469
+ }
470
+
471
+ part enumElementReleased : EnumRendering {
472
+ @MemoIdentity { :>> providedId = "ENUM-ELEM-005"; }
473
+ attribute :>> name = "EnumElementReleased";
474
+ attribute :>> enumValue = "ElementStatusKind::released";
475
+ attribute :>> label = "Released";
476
+ attribute :>> enumColor = "#0F766E";
477
+ }
478
+
479
+ part enumElementDeprecated : EnumRendering {
480
+ @MemoIdentity { :>> providedId = "ENUM-ELEM-006"; }
481
+ attribute :>> name = "EnumElementDeprecated";
482
+ attribute :>> enumValue = "ElementStatusKind::deprecated";
483
+ attribute :>> label = "Deprecated";
484
+ attribute :>> enumColor = "#B45309";
485
+ }
486
+
487
+ part enumElementRetired : EnumRendering {
488
+ @MemoIdentity { :>> providedId = "ENUM-ELEM-007"; }
489
+ attribute :>> name = "EnumElementRetired";
490
+ attribute :>> enumValue = "ElementStatusKind::retired";
491
+ attribute :>> label = "Retired";
492
+ attribute :>> enumColor = "#991B1B";
493
+ }
494
+
495
+ part enumCommentOpen : EnumRendering {
496
+ @MemoIdentity { :>> providedId = "ENUM-CMT-001"; }
497
+ attribute :>> name = "EnumCommentOpen";
498
+ attribute :>> enumValue = "CommentStatusKind::open";
499
+ attribute :>> label = "Open";
500
+ attribute :>> enumColor = "#2563EB";
501
+ }
502
+
503
+ part enumCommentAcknowledged : EnumRendering {
504
+ @MemoIdentity { :>> providedId = "ENUM-CMT-002"; }
505
+ attribute :>> name = "EnumCommentAcknowledged";
506
+ attribute :>> enumValue = "CommentStatusKind::acknowledged";
507
+ attribute :>> label = "Acknowledged";
508
+ attribute :>> enumColor = "#2563EB";
509
+ }
510
+
511
+ part enumCommentAddressed : EnumRendering {
512
+ @MemoIdentity { :>> providedId = "ENUM-CMT-003"; }
513
+ attribute :>> name = "EnumCommentAddressed";
514
+ attribute :>> enumValue = "CommentStatusKind::addressed";
515
+ attribute :>> label = "Addressed";
516
+ attribute :>> enumColor = "#0F766E";
517
+ }
518
+
519
+ part enumCommentResolved : EnumRendering {
520
+ @MemoIdentity { :>> providedId = "ENUM-CMT-004"; }
521
+ attribute :>> name = "EnumCommentResolved";
522
+ attribute :>> enumValue = "CommentStatusKind::resolved";
523
+ attribute :>> label = "Resolved";
524
+ attribute :>> enumColor = "#0F766E";
525
+ }
526
+
527
+ part enumCommentRejected : EnumRendering {
528
+ @MemoIdentity { :>> providedId = "ENUM-CMT-005"; }
529
+ attribute :>> name = "EnumCommentRejected";
530
+ attribute :>> enumValue = "CommentStatusKind::rejected";
531
+ attribute :>> label = "Rejected";
532
+ attribute :>> enumColor = "#991B1B";
533
+ }
354
534
  }
@@ -4,11 +4,12 @@ package memo_viewpoints_requirements_requirements_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
- part requirementsViewpoint : Viewpoint {
8
- attribute :>> id = "VP-REQ";
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
9
+ viewpoint requirementsViewpoint : MemoViewpoint {
10
+ @MemoIdentity { :>> providedId = "VP-REQ"; }
9
11
  attribute :>> name = "RequirementsViewpoint";
10
- attribute :>> title = "Requirements Viewpoint";
11
- attribute :>> shortDescription = "Shows stakeholder needs and their decomposition into system, software, and hardware requirements.";
12
+ @MemoIdentity { :>> shortDescription = "Shows stakeholder needs and their decomposition into system, software, and hardware requirements."; }
12
13
  attribute :>> description = "Default viewpoint derived from the requirements layer for requirements traceability — the chain from stakeholder need through system, software, and hardware requirements, supporting IEC 62304 §5.1.1 and ISO 13485 §7.3.3.";
13
14
  attribute :>> purpose = "Communicate requirements decomposition and traceability.";
14
15
  attribute :>> audience = (AudienceKind::regulatoryEngineer, AudienceKind::systemArchitect);