@memoarchitect/ontology 0.8.24 → 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 (182) hide show
  1. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
  2. package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
  3. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +9 -7
  4. package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
  5. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +8 -6
  6. package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
  7. package/examples/gpca-pump/memo.identity.yaml +2179 -0
  8. package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
  9. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
  10. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
  11. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
  12. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
  13. package/examples/gpca-pump/model/catalog/gpca_context.sysml +22 -20
  14. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -13
  15. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
  16. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
  17. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +121 -125
  18. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
  19. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
  20. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
  21. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
  22. package/examples/gpca-pump/model/catalog/gpca_system.sysml +15 -14
  23. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -8
  24. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
  25. package/examples/gpca-pump/model/catalog/project.sysml +3 -1
  26. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +6 -4
  27. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +5 -3
  28. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +5 -3
  29. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +5 -3
  30. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +5 -3
  31. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +5 -3
  32. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +5 -3
  33. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +5 -3
  34. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +5 -3
  35. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +5 -3
  36. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +5 -3
  37. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +5 -3
  38. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +5 -3
  39. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +5 -3
  40. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +5 -3
  41. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -3
  42. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +5 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -3
  44. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -3
  45. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +5 -3
  46. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +5 -3
  47. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +5 -3
  48. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +5 -3
  49. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +6 -4
  50. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -3
  51. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +5 -3
  52. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +9 -7
  53. package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
  54. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +6 -4
  55. package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
  56. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
  57. package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
  58. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
  59. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
  60. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
  61. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
  62. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
  63. package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
  64. package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
  65. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +17 -16
  66. package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
  67. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
  68. package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
  69. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +10 -8
  70. package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
  71. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +51 -51
  72. package/examples/surgical-robot/model/catalog/project.sysml +3 -1
  73. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
  74. package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
  75. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -8
  76. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -5
  77. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +3 -1
  78. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +2 -1
  79. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +3 -1
  80. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +8 -6
  81. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +3 -1
  82. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +2 -1
  83. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +3 -1
  84. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +11 -7
  85. package/examples/temperature-alarm/memo.identity.yaml +64 -0
  86. package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
  87. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +27 -22
  88. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
  89. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
  90. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
  91. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
  92. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
  93. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
  94. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
  95. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
  96. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
  97. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
  98. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
  99. package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
  100. package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
  101. package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
  102. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +5 -3
  103. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +5 -3
  104. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +5 -3
  105. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +3 -1
  106. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +3 -1
  107. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +3 -1
  108. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
  109. package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
  110. package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
  111. package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
  112. package/extensions/container/src/methodology/container_methodology.sysml +3 -1
  113. package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
  114. package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
  115. package/extensions/template/src/extension.sysml +3 -1
  116. package/package.json +2 -2
  117. package/src/architecture/functional/behavior/memo_behavior.sysml +1 -1
  118. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
  119. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
  120. package/src/architecture/implementation/ui/memo_ui.sysml +0 -23
  121. package/src/architecture/logical/interfaces/memo_interfaces.sysml +3 -1
  122. package/src/architecture/operational/context/use_context/memo_use_context.sysml +3 -11
  123. package/src/architecture/operational/scenarios/memo_scenarios.sysml +0 -10
  124. package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -11
  125. package/src/architecture/operational/workflows/memo_workflows.sysml +0 -20
  126. package/src/architecture/realization/deployment/memo_deployment.sysml +16 -9
  127. package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
  128. package/src/artifacts/standards/cfr_21_820.sysml +80 -89
  129. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
  130. package/src/artifacts/standards/iec_60601_1.sysml +108 -121
  131. package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
  132. package/src/artifacts/standards/iec_60812.sysml +21 -22
  133. package/src/artifacts/standards/iec_62304.sysml +150 -169
  134. package/src/artifacts/standards/iec_62366_1.sysml +80 -89
  135. package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
  136. package/src/artifacts/standards/iso_13485.sysml +80 -89
  137. package/src/artifacts/standards/iso_14971.sysml +66 -73
  138. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
  139. package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
  140. package/src/core/common/memo_common.sysml +50 -50
  141. package/src/core/enumerations/memo_enumerations.sysml +1 -1
  142. package/src/core/relationships/memo_relationships.sysml +22 -49
  143. package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
  144. package/src/methodology/core/memo_core.sysml +0 -10
  145. package/src/methodology/profiles/memo_profiles.sysml +18 -16
  146. package/src/rules/closure/closure_rules.sysml +22 -20
  147. package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
  148. package/src/rules/ontology/ontology_invariants.sysml +106 -33
  149. package/src/rules/quantitative/quantitative_rules.sysml +4 -2
  150. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +29 -28
  151. package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
  152. package/src/viewpoints/context/context_viewpoint.sysml +5 -3
  153. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +5 -3
  154. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
  155. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +6 -16
  156. package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
  157. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +5 -3
  158. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +5 -3
  159. package/src/viewpoints/logical/logical_viewpoint.sysml +4 -2
  160. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +5 -3
  161. package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
  162. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +5 -3
  163. package/src/viewpoints/physical/physical_viewpoint.sysml +4 -2
  164. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +5 -3
  165. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +5 -3
  166. package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
  167. package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -2
  168. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +5 -3
  169. package/src/viewpoints/risk/risk_viewpoint.sysml +4 -2
  170. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +5 -3
  171. package/src/viewpoints/software/software_viewpoint.sysml +4 -2
  172. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +5 -3
  173. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -2
  174. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
  175. package/src/viewpoints/usability/usability_viewpoint.sysml +4 -2
  176. package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
  177. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +5 -3
  178. package/templates/connected-device/model/catalog/project.sysml +3 -1
  179. package/templates/default/model/catalog/project.sysml +3 -1
  180. package/templates/infusion-pump/model/catalog/project.sysml +3 -1
  181. package/templates/monitoring-device/model/catalog/project.sysml +3 -1
  182. package/templates/samd/model/catalog/project.sysml +3 -1
@@ -9,143 +9,144 @@ package memo_viewpoints_catalog {
9
9
  private import memo_core_enumerations::*;
10
10
  private import memo_viewpoints_definitions::*;
11
11
 
12
+ private import memo_core_common::MemoIdentity;
12
13
  // A cataloged viewpoint: the Viewpoint descriptor plus its default
13
14
  // resolution to a standard SysML v2 view kind.
14
15
 
15
16
  // ── Content and context ─────────────────────────────────────
16
17
  viewpoint vpModelContent : MemoViewpoint {
17
- attribute :>> id = "VP-CAT-001"; attribute :>> name = "ModelContentViewpoint";
18
+ @MemoIdentity { :>> providedId = "VP-CAT-001"; } attribute :>> name = "ModelContentViewpoint";
18
19
  attribute :>> purpose = "Browse the model tree and package structure.";
19
20
  attribute :>> defaultViewKind = DiagramViewKind::browser;
20
21
  }
21
22
  viewpoint vpSystemContext : MemoViewpoint {
22
- attribute :>> id = "VP-CAT-002"; attribute :>> name = "SystemContextViewpoint";
23
+ @MemoIdentity { :>> providedId = "VP-CAT-002"; } attribute :>> name = "SystemContextViewpoint";
23
24
  attribute :>> purpose = "System of interest, actors, external systems, and context exchanges.";
24
25
  attribute :>> defaultViewKind = DiagramViewKind::general;
25
26
  }
26
27
  // ── Operational world ───────────────────────────────────────
27
28
  viewpoint vpUseCase : MemoViewpoint {
28
- attribute :>> id = "VP-CAT-003"; attribute :>> name = "UseCaseViewpoint";
29
+ @MemoIdentity { :>> providedId = "VP-CAT-003"; } attribute :>> name = "UseCaseViewpoint";
29
30
  attribute :>> purpose = "Use cases, initiating users, supporting actors, and motivating needs.";
30
31
  attribute :>> defaultViewKind = DiagramViewKind::general;
31
32
  }
32
33
  viewpoint vpClinicalWorkflow : MemoViewpoint {
33
- attribute :>> id = "VP-CAT-004"; attribute :>> name = "ClinicalWorkflowViewpoint";
34
+ @MemoIdentity { :>> providedId = "VP-CAT-004"; } attribute :>> name = "ClinicalWorkflowViewpoint";
34
35
  attribute :>> purpose = "Workflow steps, decisions, parallel work, handoffs, and roles.";
35
36
  attribute :>> defaultViewKind = DiagramViewKind::actionflow;
36
37
  }
37
38
  viewpoint vpScenario : MemoViewpoint {
38
- attribute :>> id = "VP-CAT-005"; attribute :>> name = "ScenarioViewpoint";
39
+ @MemoIdentity { :>> providedId = "VP-CAT-005"; } attribute :>> name = "ScenarioViewpoint";
39
40
  attribute :>> purpose = "Selected paths through workflows: variants, conditions, variation points.";
40
41
  attribute :>> defaultViewKind = DiagramViewKind::actionflow;
41
42
  }
42
43
  // ── Functional ──────────────────────────────────────────────
43
44
  viewpoint vpFunctionalArchitecture : MemoViewpoint {
44
- attribute :>> id = "VP-CAT-006"; attribute :>> name = "FunctionalArchitectureViewpoint";
45
+ @MemoIdentity { :>> providedId = "VP-CAT-006"; } attribute :>> name = "FunctionalArchitectureViewpoint";
45
46
  attribute :>> purpose = "System functions, capabilities, and functional exchanges.";
46
47
  attribute :>> defaultViewKind = DiagramViewKind::general;
47
48
  }
48
49
  viewpoint vpFunctionalFlow : MemoViewpoint {
49
- attribute :>> id = "VP-CAT-007"; attribute :>> name = "FunctionalFlowViewpoint";
50
+ @MemoIdentity { :>> providedId = "VP-CAT-007"; } attribute :>> name = "FunctionalFlowViewpoint";
50
51
  attribute :>> purpose = "Ordered functional flows and their steps.";
51
52
  attribute :>> defaultViewKind = DiagramViewKind::actionflow;
52
53
  }
53
54
  // ── Logical ─────────────────────────────────────────────────
54
55
  viewpoint vpLogicalArchitecture : MemoViewpoint {
55
- attribute :>> id = "VP-CAT-008"; attribute :>> name = "LogicalArchitectureViewpoint";
56
+ @MemoIdentity { :>> providedId = "VP-CAT-008"; } attribute :>> name = "LogicalArchitectureViewpoint";
56
57
  attribute :>> purpose = "Logical components, channels, and allocations.";
57
58
  attribute :>> defaultViewKind = DiagramViewKind::general;
58
59
  }
59
60
  viewpoint vpSystemDecomposition : MemoViewpoint {
60
- attribute :>> id = "VP-CAT-009"; attribute :>> name = "SystemDecompositionViewpoint";
61
+ @MemoIdentity { :>> providedId = "VP-CAT-009"; } attribute :>> name = "SystemDecompositionViewpoint";
61
62
  attribute :>> purpose = "Composition hierarchy of the system of interest.";
62
63
  attribute :>> defaultViewKind = DiagramViewKind::browser;
63
64
  }
64
65
  viewpoint vpInternalInterconnection : MemoViewpoint {
65
- attribute :>> id = "VP-CAT-010"; attribute :>> name = "InternalInterconnectionViewpoint";
66
+ @MemoIdentity { :>> providedId = "VP-CAT-010"; } attribute :>> name = "InternalInterconnectionViewpoint";
66
67
  attribute :>> purpose = "Ports, connectors, and exchanges inside a component boundary.";
67
68
  attribute :>> defaultViewKind = DiagramViewKind::interconnection;
68
69
  }
69
70
  // ── Implementation ──────────────────────────────────────────
70
71
  viewpoint vpSoftwareModule : MemoViewpoint {
71
- attribute :>> id = "VP-CAT-011"; attribute :>> name = "SoftwareModuleViewpoint";
72
+ @MemoIdentity { :>> providedId = "VP-CAT-011"; } attribute :>> name = "SoftwareModuleViewpoint";
72
73
  attribute :>> purpose = "IEC 62304 module structure: systems, items, units, SOUP.";
73
74
  attribute :>> defaultViewKind = DiagramViewKind::general;
74
75
  }
75
76
  viewpoint vpSoftwareComponents : MemoViewpoint {
76
- attribute :>> id = "VP-CAT-012"; attribute :>> name = "SoftwareComponentViewpoint";
77
+ @MemoIdentity { :>> providedId = "VP-CAT-012"; } attribute :>> name = "SoftwareComponentViewpoint";
77
78
  attribute :>> purpose = "Runtime component-and-connector structure with concurrency and scheduling.";
78
79
  attribute :>> defaultViewKind = DiagramViewKind::interconnection;
79
80
  }
80
81
  viewpoint vpHardwareArchitecture : MemoViewpoint {
81
- attribute :>> id = "VP-CAT-013"; attribute :>> name = "HardwareArchitectureViewpoint";
82
+ @MemoIdentity { :>> providedId = "VP-CAT-013"; } attribute :>> name = "HardwareArchitectureViewpoint";
82
83
  attribute :>> purpose = "Electronic/electrical structure and processing platform.";
83
84
  attribute :>> defaultViewKind = DiagramViewKind::general;
84
85
  }
85
86
  viewpoint vpPhysicalArchitecture : MemoViewpoint {
86
- attribute :>> id = "VP-CAT-014"; attribute :>> name = "PhysicalArchitectureViewpoint";
87
+ @MemoIdentity { :>> providedId = "VP-CAT-014"; } attribute :>> name = "PhysicalArchitectureViewpoint";
87
88
  attribute :>> purpose = "Mechanical, fluidic, optical, and other physical realization.";
88
89
  attribute :>> defaultViewKind = DiagramViewKind::general;
89
90
  }
90
91
  viewpoint vpDeviceComposition : MemoViewpoint {
91
- attribute :>> id = "VP-CAT-015"; attribute :>> name = "DeviceCompositionViewpoint";
92
+ @MemoIdentity { :>> providedId = "VP-CAT-015"; } attribute :>> name = "DeviceCompositionViewpoint";
92
93
  attribute :>> purpose = "Device definitions, instances, accessories, and consumables.";
93
94
  attribute :>> defaultViewKind = DiagramViewKind::browser;
94
95
  }
95
96
  viewpoint vpNetworkDeployment : MemoViewpoint {
96
- attribute :>> id = "VP-CAT-016"; attribute :>> name = "NetworkDeploymentViewpoint";
97
+ @MemoIdentity { :>> providedId = "VP-CAT-016"; } attribute :>> name = "NetworkDeploymentViewpoint";
97
98
  attribute :>> purpose = "Deployment units on processing nodes and network topology.";
98
99
  attribute :>> defaultViewKind = DiagramViewKind::interconnection;
99
100
  }
100
101
  // ── Interaction and behavior ────────────────────────────────
101
102
  viewpoint vpUiFlow : MemoViewpoint {
102
- attribute :>> id = "VP-CAT-017"; attribute :>> name = "UiFlowViewpoint";
103
+ @MemoIdentity { :>> providedId = "VP-CAT-017"; } attribute :>> name = "UiFlowViewpoint";
103
104
  attribute :>> purpose = "Interaction flows, UI states, and transitions.";
104
105
  attribute :>> defaultViewKind = DiagramViewKind::statetransition;
105
106
  }
106
107
  viewpoint vpStateMode : MemoViewpoint {
107
- attribute :>> id = "VP-CAT-018"; attribute :>> name = "StateModeViewpoint";
108
+ @MemoIdentity { :>> providedId = "VP-CAT-018"; } attribute :>> name = "StateModeViewpoint";
108
109
  attribute :>> purpose = "System states, device modes, and transitions.";
109
110
  attribute :>> defaultViewKind = DiagramViewKind::statetransition;
110
111
  }
111
112
  viewpoint vpSequenceInteraction : MemoViewpoint {
112
- attribute :>> id = "VP-CAT-019"; attribute :>> name = "SequenceInteractionViewpoint";
113
+ @MemoIdentity { :>> providedId = "VP-CAT-019"; } attribute :>> name = "SequenceInteractionViewpoint";
113
114
  attribute :>> purpose = "Ordered message exchanges between participants in a scenario.";
114
115
  attribute :>> defaultViewKind = DiagramViewKind::sequence;
115
116
  }
116
117
  // ── Assurance ───────────────────────────────────────────────
117
118
  viewpoint vpRequirementsTraceability : MemoViewpoint {
118
- attribute :>> id = "VP-CAT-020"; attribute :>> name = "RequirementsTraceabilityViewpoint";
119
+ @MemoIdentity { :>> providedId = "VP-CAT-020"; } attribute :>> name = "RequirementsTraceabilityViewpoint";
119
120
  attribute :>> purpose = "Needs → requirements → architecture → verification trace matrix.";
120
121
  attribute :>> defaultViewKind = DiagramViewKind::grid;
121
122
  }
122
123
  viewpoint vpRiskChain : MemoViewpoint {
123
- attribute :>> id = "VP-CAT-021"; attribute :>> name = "RiskChainViewpoint";
124
+ @MemoIdentity { :>> providedId = "VP-CAT-021"; } attribute :>> name = "RiskChainViewpoint";
124
125
  attribute :>> purpose = "ISO 14971 chain: hazard → hazardous situation → harm with controls.";
125
126
  attribute :>> defaultViewKind = DiagramViewKind::general;
126
127
  }
127
128
  viewpoint vpCybersecurity : MemoViewpoint {
128
- attribute :>> id = "VP-CAT-022"; attribute :>> name = "CybersecurityViewpoint";
129
+ @MemoIdentity { :>> providedId = "VP-CAT-022"; } attribute :>> name = "CybersecurityViewpoint";
129
130
  attribute :>> purpose = "Assets, threats, trust boundaries, and security controls.";
130
131
  attribute :>> defaultViewKind = DiagramViewKind::general;
131
132
  }
132
133
  viewpoint vpHumanFactors : MemoViewpoint {
133
- attribute :>> id = "VP-CAT-023"; attribute :>> name = "HumanFactorsViewpoint";
134
+ @MemoIdentity { :>> providedId = "VP-CAT-023"; } attribute :>> name = "HumanFactorsViewpoint";
134
135
  attribute :>> purpose = "Users, tasks, use errors, and hazard-related use scenarios.";
135
136
  attribute :>> defaultViewKind = DiagramViewKind::grid;
136
137
  }
137
138
  viewpoint vpVerificationCoverage : MemoViewpoint {
138
- attribute :>> id = "VP-CAT-024"; attribute :>> name = "VerificationCoverageViewpoint";
139
+ @MemoIdentity { :>> providedId = "VP-CAT-024"; } attribute :>> name = "VerificationCoverageViewpoint";
139
140
  attribute :>> purpose = "Verification cases against requirements and functions.";
140
141
  attribute :>> defaultViewKind = DiagramViewKind::grid;
141
142
  }
142
143
  viewpoint vpValidationCoverage : MemoViewpoint {
143
- attribute :>> id = "VP-CAT-025"; attribute :>> name = "ValidationCoverageViewpoint";
144
+ @MemoIdentity { :>> providedId = "VP-CAT-025"; } attribute :>> name = "ValidationCoverageViewpoint";
144
145
  attribute :>> purpose = "Validation cases against use cases and critical tasks.";
145
146
  attribute :>> defaultViewKind = DiagramViewKind::grid;
146
147
  }
147
148
  viewpoint vpEvidenceTraceability : MemoViewpoint {
148
- attribute :>> id = "VP-CAT-026"; attribute :>> name = "EvidenceTraceabilityViewpoint";
149
+ @MemoIdentity { :>> providedId = "VP-CAT-026"; } attribute :>> name = "EvidenceTraceabilityViewpoint";
149
150
  attribute :>> purpose = "Evidence records back to the cases and elements they support.";
150
151
  attribute :>> defaultViewKind = DiagramViewKind::grid;
151
152
  }
@@ -154,14 +155,14 @@ package memo_viewpoints_catalog {
154
155
  // SoftwareComponents realizing a functional OperativeScenario. The viewpoint is the
155
156
  // reusable spec; the diagram of a specific model is the view.
156
157
  viewpoint vpSoftwareSequence : MemoViewpoint {
157
- attribute :>> id = "VP-CAT-027"; attribute :>> name = "SoftwareSequenceViewpoint";
158
+ @MemoIdentity { :>> providedId = "VP-CAT-027"; } attribute :>> name = "SoftwareSequenceViewpoint";
158
159
  attribute :>> purpose = "Runtime message ordering between software components along a functional scenario.";
159
160
  attribute :>> defaultViewKind = DiagramViewKind::sequence;
160
161
  }
161
162
  // The first cataloged viewpoint to resolve to `geometry`: screen regions
162
163
  // carry authored RegionBounds, so a geometry view draws modelled facts.
163
164
  viewpoint vpUILayout : MemoViewpoint {
164
- attribute :>> id = "VP-CAT-028"; attribute :>> name = "UILayoutViewpoint";
165
+ @MemoIdentity { :>> providedId = "VP-CAT-028"; } attribute :>> name = "UILayoutViewpoint";
165
166
  attribute :>> purpose = "Captured screens with their marked regions and the UI elements those regions present.";
166
167
  attribute :>> defaultViewKind = DiagramViewKind::geometry;
167
168
  }
@@ -4,10 +4,12 @@ package memo_viewpoints_clinical_clinical_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  viewpoint clinicalViewpoint : MemoViewpoint {
8
- attribute :>> id = "VP-CLIN";
10
+ @MemoIdentity { :>> providedId = "VP-CLIN"; }
9
11
  attribute :>> name = "ClinicalViewpoint";
10
- attribute :>> shortDescription = "Shows clinical context, users, use environment, and clinical evidence.";
12
+ @MemoIdentity { :>> shortDescription = "Shows clinical context, users, use environment, and clinical evidence."; }
11
13
  attribute :>> description = "Default viewpoint derived from the context and assurance layers for clinical stakeholders — intended use, patient/clinician interaction, clinical evidence, and clinical safety claims.";
12
14
  attribute :>> purpose = "Communicate clinical use context and clinical evidence for the device.";
13
15
  attribute :>> audience = (AudienceKind::clinicalEngineer, AudienceKind::regulatoryEngineer);
@@ -4,10 +4,12 @@ package memo_viewpoints_context_context_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  viewpoint contextViewpoint : MemoViewpoint {
8
- attribute :>> id = "VP-CTX";
10
+ @MemoIdentity { :>> providedId = "VP-CTX"; }
9
11
  attribute :>> name = "ContextViewpoint";
10
- attribute :>> shortDescription = "Shows actors, use context, and system boundary.";
12
+ @MemoIdentity { :>> shortDescription = "Shows actors, use context, and system boundary."; }
11
13
  attribute :>> description = "Default viewpoint derived from the context layer to communicate who interacts with the device, under which use conditions, and where trust or safety boundaries exist.";
12
14
  attribute :>> purpose = "Communicate operational context and boundaries.";
13
15
  attribute :>> audience = (AudienceKind::systemArchitect);
@@ -28,7 +30,7 @@ package memo_viewpoints_context_context_viewpoint {
28
30
  // boundary picture. Projects derive their own verbs from it and are
29
31
  // picked up through the specialization closure. The three older
30
32
  // relations remain for models authored before it existed.
31
- attribute :>> allowedRelationshipKinds = ("InteractsInContext", "InteractsWith", "flow", "bind", "connect");
33
+ attribute :>> allowedRelationshipKinds = ("InteractsInContext", "connect", "flow", "bind");
32
34
  attribute :>> userExtensible = true;
33
35
  }
34
36
  }
@@ -5,19 +5,21 @@ package memo_viewpoints_context_views_system_context_view {
5
5
  private import memo_core_enumerations::*;
6
6
  private import memo_viewpoints_context_context_viewpoint::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view systemContextView : MemoDiagramView {
9
11
  expose memo_viewpoints_context_views_system_context_view::*;
10
12
  attribute depth = 2;
11
- attribute :>> id = "VIEW-CTX-001";
13
+ @MemoIdentity { :>> providedId = "VIEW-CTX-001"; }
12
14
  attribute :>> name = "SystemContextView";
13
- attribute :>> shortDescription = "Actors, use context, and system boundary.";
15
+ @MemoIdentity { :>> shortDescription = "Actors, use context, and system boundary."; }
14
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
15
17
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
16
18
  attribute :>> diagramType = "bdd";
17
19
  attribute :>> autoPopulate = true;
18
20
  attribute :>> queryDescription = "Include actors, use contexts, and trust boundaries at the system boundary.";
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-CTX-001";
22
+ @MemoIdentity { :>> providedId = "QRY-CTX-001"; }
21
23
  attribute :>> name = "SystemContextQuery";
22
24
  attribute :>> includeElementKinds = ("Actor", "UseContext", "TrustBoundary");
23
25
  attribute :>> includeLayers = ("context");
@@ -4,10 +4,12 @@ package memo_viewpoints_cybersecurity_cybersecurity_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  viewpoint cybersecurityViewpoint : MemoViewpoint {
8
- attribute :>> id = "VP-CYB";
10
+ @MemoIdentity { :>> providedId = "VP-CYB"; }
9
11
  attribute :>> name = "CybersecurityViewpoint";
10
- attribute :>> shortDescription = "Shows assets, trust boundaries, threats, vulnerabilities, cyber hazards, cyber risks, and mitigations.";
12
+ @MemoIdentity { :>> shortDescription = "Shows assets, trust boundaries, threats, vulnerabilities, cyber hazards, cyber risks, and mitigations."; }
11
13
  attribute :>> description = "Default viewpoint derived from the cybersecurity layer, using STRIDE-style threat categories by default while allowing safety and privacy impacts to be traced into the broader model.";
12
14
  attribute :>> purpose = "Communicate cybersecurity design, threat analysis, and cyber risk posture.";
13
15
  attribute :>> audience = (AudienceKind::securityEngineer);
@@ -15,17 +15,12 @@ package memo_viewpoints_definitions {
15
15
 
16
16
  // Extends the native SysML viewpoint (Views::ViewpointCheck, a
17
17
  // RequirementCheck whose subject is a View) with MEMO's catalog
18
- // attributes. The MEMO identity core is re-declared here because a
19
- // viewpoint is native requirement-family, not a MemoPart — the same
20
- // per-metaclass pattern MemoView and the other bases use.
18
+ // attributes. Identity comes from the `@MemoIdentity` metadata carrier
19
+ // rather than a re-declared core: a viewpoint is native requirement-family,
20
+ // not a MemoPart, and metadata crosses metaclasses where inheritance cannot.
21
21
  viewpoint def MemoViewpoint :> Views::ViewpointCheck {
22
- attribute id : String;
23
- attribute uuid : String;
24
22
  attribute name : String;
25
- attribute shortDescription : String;
26
23
  attribute description : String;
27
- attribute rationale : String;
28
- attribute sourceReference : String;
29
24
  attribute status : ElementStatusKind;
30
25
  attribute lifecycleState : LifecycleStateKind;
31
26
  attribute realizationStage : RealizationStageKind[0..1];
@@ -74,16 +69,11 @@ package memo_viewpoints_definitions {
74
69
  }
75
70
 
76
71
  view def MemoView :> Views::View {
77
- // MEMO identity core, re-declared here rather than inherited: a view is
78
- // native SysML and must stay one, so it does not mix in the MemoPart
79
- // part hierarchy — same per-metaclass pattern the other MEMO bases use.
80
- attribute id : String;
81
- attribute uuid : String;
72
+ // Identity comes from the `@MemoIdentity` metadata carrier, which
73
+ // annotates any metaclass — so a view stays native SysML without
74
+ // re-declaring the identification core the other bases used to copy.
82
75
  attribute name : String;
83
- attribute shortDescription : String;
84
76
  attribute description : String;
85
- attribute rationale : String;
86
- attribute sourceReference : String;
87
77
  attribute status : ElementStatusKind;
88
78
  attribute lifecycleState : LifecycleStateKind;
89
79
  attribute realizationStage : RealizationStageKind[0..1];
@@ -4,10 +4,12 @@ package memo_viewpoints_functional_functional_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  viewpoint functionalViewpoint : MemoViewpoint {
8
- attribute :>> id = "VP-FUNC";
10
+ @MemoIdentity { :>> providedId = "VP-FUNC"; }
9
11
  attribute :>> name = "FunctionalViewpoint";
10
- attribute :>> shortDescription = "Shows system functions, their decomposition, and allocation.";
12
+ @MemoIdentity { :>> shortDescription = "Shows system functions, their decomposition, and allocation."; }
11
13
  attribute :>> description = "Default viewpoint derived from the functions layer for what the system does, independent of how it is structured — function trees, function allocation, and behavior triggers.";
12
14
  attribute :>> purpose = "Describe the system's functional decomposition and behavior.";
13
15
  attribute :>> audience = (AudienceKind::systemArchitect);
@@ -5,19 +5,21 @@ package memo_viewpoints_functional_views_function_allocation_view {
5
5
  private import memo_core_enumerations::*;
6
6
  private import memo_viewpoints_functional_functional_viewpoint::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view functionAllocationView : MemoDiagramView {
9
11
  expose memo_viewpoints_functional_views_function_allocation_view::*;
10
12
  attribute depth = 2;
11
- attribute :>> id = "VIEW-FUNC-002";
13
+ @MemoIdentity { :>> providedId = "VIEW-FUNC-002"; }
12
14
  attribute :>> name = "FunctionAllocationView";
13
- attribute :>> shortDescription = "Functions allocated to logical components.";
15
+ @MemoIdentity { :>> shortDescription = "Functions allocated to logical components."; }
14
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
15
17
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
16
18
  attribute :>> diagramType = "bdd";
17
19
  attribute :>> autoPopulate = true;
18
20
  attribute :>> queryDescription = "Include functions and the logical components they are allocated to.";
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-FUNC-002";
22
+ @MemoIdentity { :>> providedId = "QRY-FUNC-002"; }
21
23
  attribute :>> name = "FunctionAllocationQuery";
22
24
  attribute :>> includeElementKinds = ("SystemFunction", "ComponentFunction", "LogicalComponent");
23
25
  attribute :>> includeLayers = ("functions", "logical_structure");
@@ -5,19 +5,21 @@ package memo_viewpoints_functional_views_system_functional_tree_view {
5
5
  private import memo_core_enumerations::*;
6
6
  private import memo_viewpoints_functional_functional_viewpoint::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view systemFunctionalTreeView : MemoDiagramView {
9
11
  expose memo_viewpoints_functional_views_system_functional_tree_view::*;
10
12
  attribute depth = 2;
11
- attribute :>> id = "VIEW-FUNC-001";
13
+ @MemoIdentity { :>> providedId = "VIEW-FUNC-001"; }
12
14
  attribute :>> name = "SystemFunctionalTreeView";
13
- attribute :>> shortDescription = "Hierarchical decomposition of system functions.";
15
+ @MemoIdentity { :>> shortDescription = "Hierarchical decomposition of system functions."; }
14
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
15
17
  attribute :>> presentationKind = (PresentationKind::activityDiagram);
16
18
  attribute :>> diagramType = "act";
17
19
  attribute :>> autoPopulate = true;
18
20
  attribute :>> queryDescription = "Include functions and their decomposition into subfunctions.";
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-FUNC-001";
22
+ @MemoIdentity { :>> providedId = "QRY-FUNC-001"; }
21
23
  attribute :>> name = "SystemFunctionalTreeQuery";
22
24
  attribute :>> includeElementKinds = ("SystemFunction", "ComponentFunction");
23
25
  attribute :>> includeLayers = ("functions");
@@ -4,10 +4,12 @@ package memo_viewpoints_logical_logical_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  viewpoint logicalArchitectureViewpoint : MemoViewpoint {
8
- attribute :>> id = "VP-LOG";
10
+ @MemoIdentity { :>> providedId = "VP-LOG"; }
9
11
  attribute :>> name = "LogicalArchitectureViewpoint";
10
- attribute :>> shortDescription = "Shows logical decomposition and interfaces.";
12
+ @MemoIdentity { :>> shortDescription = "Shows logical decomposition and interfaces."; }
11
13
  attribute :>> description = "Default viewpoint derived from the logical architecture layer for subsystem structure, responsibilities, and major interactions, independent of physical realization.";
12
14
  attribute :>> purpose = "Describe the system's logical decomposition.";
13
15
  attribute :>> audience = (AudienceKind::systemArchitect);
@@ -5,19 +5,21 @@ package memo_viewpoints_logical_views_logical_architecture_view {
5
5
  private import memo_core_enumerations::*;
6
6
  private import memo_viewpoints_logical_logical_viewpoint::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view logicalArchitectureView : MemoDiagramView {
9
11
  expose memo_viewpoints_logical_views_logical_architecture_view::*;
10
12
  attribute depth = 2;
11
- attribute :>> id = "VIEW-LOG-001";
13
+ @MemoIdentity { :>> providedId = "VIEW-LOG-001"; }
12
14
  attribute :>> name = "LogicalArchitectureView";
13
- attribute :>> shortDescription = "Logical components and their interfaces.";
15
+ @MemoIdentity { :>> shortDescription = "Logical components and their interfaces."; }
14
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
15
17
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
16
18
  attribute :>> diagramType = "bdd";
17
19
  attribute :>> autoPopulate = true;
18
20
  attribute :>> queryDescription = "Include logical components and the interfaces that connect them.";
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-LOG-001";
22
+ @MemoIdentity { :>> providedId = "QRY-LOG-001"; }
21
23
  attribute :>> name = "LogicalArchitectureQuery";
22
24
  attribute :>> includeElementKinds = ("LogicalComponent", "Interface");
23
25
  attribute :>> includeLayers = ("logical_structure", "interfaces");
@@ -4,10 +4,12 @@ package memo_viewpoints_operational_operational_viewpoint {
4
4
  private import memo_viewpoints_definitions::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  viewpoint operationalViewpoint : MemoViewpoint {
8
- attribute :>> id = "VP-OPS";
10
+ @MemoIdentity { :>> providedId = "VP-OPS"; }
9
11
  attribute :>> name = "OperationalViewpoint";
10
- attribute :>> shortDescription = "Shows actors, use contexts, operational scenarios, and system capabilities.";
12
+ @MemoIdentity { :>> shortDescription = "Shows actors, use contexts, operational scenarios, and system capabilities."; }
11
13
  attribute :>> description = "Default viewpoint derived from the context, operational, and system layers for how actors use the device — operational scenarios, capabilities, and the functional chains that realize them.";
12
14
  attribute :>> purpose = "Communicate how actors interact with the system and which capabilities they invoke.";
13
15
  attribute :>> audience = (AudienceKind::projectLead, AudienceKind::systemArchitect);
@@ -5,19 +5,21 @@ package memo_viewpoints_operational_views_use_case_view {
5
5
  private import memo_core_enumerations::*;
6
6
  private import memo_viewpoints_operational_operational_viewpoint::*;
7
7
 
8
+ private import memo_core_common::*;
9
+ private import memo_core_common::MemoIdentity;
8
10
  view useCaseView : MemoDiagramView {
9
11
  expose memo_viewpoints_operational_views_use_case_view::*;
10
12
  attribute depth = 2;
11
- attribute :>> id = "VIEW-OPS-001";
13
+ @MemoIdentity { :>> providedId = "VIEW-OPS-001"; }
12
14
  attribute :>> name = "UseCaseView";
13
- attribute :>> shortDescription = "Actors connected to the operational scenarios and capabilities they invoke.";
15
+ @MemoIdentity { :>> shortDescription = "Actors connected to the operational scenarios and capabilities they invoke."; }
14
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
15
17
  attribute :>> presentationKind = (PresentationKind::custom);
16
18
  attribute :>> diagramType = "ucd";
17
19
  attribute :>> autoPopulate = true;
18
20
  attribute :>> queryDescription = "Include actors, use contexts, and the operational scenarios they participate in.";
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-OPS-001";
22
+ @MemoIdentity { :>> providedId = "QRY-OPS-001"; }
21
23
  attribute :>> name = "UseCaseQuery";
22
24
  attribute :>> includeElementKinds = ("Actor", "UseContext", "OperativeScenario[scenarioKind=operative]");
23
25
  attribute :>> includeLayers = ("context", "operational");
@@ -4,10 +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
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  viewpoint physicalViewpoint : MemoViewpoint {
8
- attribute :>> id = "VP-PHY";
10
+ @MemoIdentity { :>> providedId = "VP-PHY"; }
9
11
  attribute :>> name = "PhysicalViewpoint";
10
- attribute :>> shortDescription = "Shows physical components, hardware structure, and their interconnections.";
12
+ @MemoIdentity { :>> shortDescription = "Shows physical components, hardware structure, and their interconnections."; }
11
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.";
12
14
  attribute :>> purpose = "Describe the system's physical realization and interconnections.";
13
15
  attribute :>> audience = (AudienceKind::hardwareEngineer);
@@ -5,19 +5,21 @@ 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 :>> shortDescription = "Physical interconnections and network ports between components.";
15
+ @MemoIdentity { :>> shortDescription = "Physical interconnections and network ports between components."; }
14
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
15
17
  attribute :>> presentationKind = (PresentationKind::internalDiagram);
16
18
  attribute :>> diagramType = "ibd";
17
19
  attribute :>> autoPopulate = true;
18
20
  attribute :>> queryDescription = "Include physical ports and connections that make up the device's network topology.";
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-PHY-002";
22
+ @MemoIdentity { :>> providedId = "QRY-PHY-002"; }
21
23
  attribute :>> name = "NetworkTopologyQuery";
22
24
  attribute :>> includeElementKinds = ("PhysicalPort", "ProcessingNode");
23
25
  attribute :>> includeLayers = ("physical");
@@ -5,19 +5,21 @@ 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 :>> shortDescription = "Physical and hardware components with their decomposition.";
15
+ @MemoIdentity { :>> shortDescription = "Physical and hardware components with their decomposition."; }
14
16
  attribute :>> outputKind = (ViewOutputKind::diagram);
15
17
  attribute :>> presentationKind = (PresentationKind::blockDiagram);
16
18
  attribute :>> diagramType = "bdd";
17
19
  attribute :>> autoPopulate = true;
18
20
  attribute :>> queryDescription = "Include physical and hardware components and their assembly structure.";
19
21
  part :>> selectionQuery {
20
- attribute :>> id = "QRY-PHY-001";
22
+ @MemoIdentity { :>> providedId = "QRY-PHY-001"; }
21
23
  attribute :>> name = "PhysicalBOMQuery";
22
24
  attribute :>> includeElementKinds = ("ProcessingNode", "HardwareAssembly");
23
25
  attribute :>> includeLayers = ("hardware_structure", "physical");