@memoarchitect/ontology 0.8.22 → 0.8.24

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 (157) 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/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  4. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  5. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +2 -2
  6. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  7. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  8. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +1 -1
  9. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  10. package/examples/gpca-pump/memo.package.yaml +3 -0
  11. package/examples/gpca-pump/model/catalog/gpca_context.sysml +5 -3
  12. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +1 -2
  13. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +52 -82
  14. package/examples/gpca-pump/model/catalog/gpca_system.sysml +6 -19
  15. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +0 -3
  16. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +1 -3
  17. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
  18. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
  19. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
  20. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
  21. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
  22. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
  23. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +3 -6
  24. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +1 -3
  25. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
  26. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +1 -3
  27. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
  28. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
  29. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +1 -3
  30. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
  31. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -6
  32. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
  33. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +1 -4
  34. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +1 -4
  35. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +1 -3
  36. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
  37. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +1 -4
  38. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +1 -3
  39. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +2 -5
  40. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +1 -4
  41. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +1 -3
  42. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  43. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
  44. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  45. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  46. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +1 -1
  47. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  48. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  49. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  50. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  51. package/examples/reusable-instrument/memo.package.yaml +3 -0
  52. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +15 -24
  53. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  54. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  55. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
  56. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  57. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +1 -1
  58. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  59. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  60. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +36 -49
  61. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  62. package/examples/surgical-robot/memo.package.yaml +3 -0
  63. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  64. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  65. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +2 -3
  66. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +1 -2
  67. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +1 -2
  68. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +1 -2
  69. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +14 -15
  70. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +1 -2
  71. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -2
  72. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +1 -2
  73. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +1 -2
  74. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +1 -2
  75. package/examples/temperature-alarm/memo.package.yaml +3 -0
  76. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +4 -8
  77. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  78. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  79. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
  80. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  81. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  82. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
  83. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
  84. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
  85. package/extensions/aadl/memo.package.yaml +1 -1
  86. package/extensions/cloud/memo.package.yaml +1 -1
  87. package/extensions/container/memo.package.yaml +1 -1
  88. package/extensions/container/src/container_extension.sysml +2 -2
  89. package/extensions/messaging/memo.package.yaml +1 -1
  90. package/extensions/ros/memo.package.yaml +1 -1
  91. package/methodologies/default/memo.package.yaml +1 -1
  92. package/methodologies/gpca/memo.package.yaml +1 -1
  93. package/ontology/memo.package.yaml +1 -1
  94. package/package.json +1 -1
  95. package/profile/memo.package.yaml +1 -1
  96. package/src/architecture/functional/behavior/memo_behavior.sysml +4 -4
  97. package/src/architecture/functional/functions/memo_functions.sysml +6 -6
  98. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
  99. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
  100. package/src/architecture/implementation/ui/memo_ui.sysml +8 -8
  101. package/src/architecture/logical/interfaces/memo_interfaces.sysml +1 -1
  102. package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
  103. package/src/architecture/operational/activities/memo_activities.sysml +19 -28
  104. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
  105. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
  106. package/src/architecture/operational/context/use_context/memo_use_context.sysml +2 -3
  107. package/src/architecture/operational/scenarios/memo_scenarios.sysml +18 -100
  108. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  109. package/src/architecture/operational/use_cases/memo_use_cases.sysml +0 -1
  110. package/src/architecture/operational/workflows/memo_workflows.sysml +20 -22
  111. package/src/architecture/realization/deployment/memo_deployment.sysml +10 -10
  112. package/src/architecture/realization/physical/memo_physical_architecture.sysml +2 -2
  113. package/src/artifacts/templates/dhf/system/sad.md +3 -3
  114. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
  115. package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
  116. package/src/assurance/requirements/memo_requirements.sysml +2 -18
  117. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
  118. package/src/assurance/safety_risk/memo_risk.sysml +12 -0
  119. package/src/assurance/verification_validation/memo_assurance.sysml +1 -1
  120. package/src/core/common/memo_common.sysml +9 -5
  121. package/src/core/relationships/memo_relationships.sysml +8 -8
  122. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  123. package/src/rules/closure/closure_rules.sysml +20 -20
  124. package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
  125. package/src/rules/ontology/ontology_invariants.sysml +40 -40
  126. package/src/rules/quantitative/quantitative_rules.sysml +2 -2
  127. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +29 -29
  128. package/src/viewpoints/clinical/clinical_viewpoint.sysml +1 -2
  129. package/src/viewpoints/context/context_viewpoint.sysml +1 -2
  130. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
  131. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
  132. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -4
  133. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  134. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +1 -2
  135. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +1 -2
  136. package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
  137. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
  138. package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
  139. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
  140. package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
  141. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
  142. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
  143. package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
  144. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
  145. package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
  146. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
  147. package/src/viewpoints/software/software_viewpoint.sysml +1 -2
  148. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
  149. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +1 -2
  150. package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
  151. package/src/viewpoints/verification/verification_viewpoint.sysml +1 -2
  152. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +1 -2
  153. package/templates/connected-device/memo.package.yaml +2 -0
  154. package/templates/default/memo.package.yaml +2 -0
  155. package/templates/infusion-pump/memo.package.yaml +2 -0
  156. package/templates/monitoring-device/memo.package.yaml +2 -0
  157. package/templates/samd/memo.package.yaml +2 -0
@@ -34,41 +34,32 @@ package memo_examples_reusable_instrument {
34
34
  attribute :>> workflowState = WorkflowStateKind::asIs;
35
35
  attribute :>> entryCondition = "used instrument received in decontamination";
36
36
  attribute :>> completionCondition = "sterile pack released to storage";
37
-
38
- action wsClean : WorkflowStep { ref :>> performedActivity = actClean; }
39
- first wsClean then wsInspect;
40
37
  }
41
- action actClean : OperationalActivity {
38
+ action actClean : OperativeAction {
42
39
  attribute :>> id = "RI-ACT-001"; attribute :>> name = "CleanAndDisinfect";
43
40
  attribute :>> criticality = CriticalityKind::high;
44
41
  }
45
- action actInspect : OperationalActivity {
42
+ action actInspect : OperativeAction {
46
43
  attribute :>> id = "RI-ACT-002"; attribute :>> name = "InspectAndFunctionTest";
47
44
  attribute :>> criticality = CriticalityKind::high;
48
45
  }
49
- action actSterilizeLoad : OperationalActivity {
46
+ action actSterilizeLoad : OperativeAction {
50
47
  attribute :>> id = "RI-ACT-003"; attribute :>> name = "PackAndAutoclave";
51
48
  attribute :>> criticality = CriticalityKind::high;
52
49
  }
53
- action wsInspect : WorkflowStep { ref :>> performedActivity = actInspect; }
54
- action wsSterilize : WorkflowStep { ref :>> performedActivity = actSterilizeLoad; }
55
- first wsInspect then wsSterilize;
56
- connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfReprocess to supported ::> ucSterilize; }
57
50
 
58
- action scNominalCycle : MemoScenario {
51
+ action scNominalCycle : OperativeScenario {
59
52
  attribute :>> id = "RI-SC-001"; attribute :>> name = "NominalReprocessingCycle";
60
- attribute :>> scenarioKind = ScenarioKind::operative;
61
- attribute :>> variantKind = ScenarioVariantKind::nominal;
62
- attribute :>> operationalCondition = OperationalConditionKind::normal;
63
- ref :>> parentWorkflow = wfReprocess;
64
- }
65
- // One modeled occurrence of the workflow. External operational systems
66
- // may associate this occurrence with their asset or batch record.
67
- part occCycle113 : ScenarioOccurrence {
68
- attribute :>> id = "RI-OCC-113"; attribute :>> name = "ReprocessingCycle113";
69
- attribute :>> occurredAt = "2026-07-15T14:02:00Z";
70
- attribute :>> hypothetical = false;
71
- attribute :>> outcomeSummary = "cycle completed; biological indicator passed";
72
- ref :>> executedScenario = scNominalCycle;
53
+
54
+ perform actClean;
55
+ perform actInspect;
56
+ perform actSterilizeLoad;
57
+ first actClean then actInspect;
58
+ first actInspect then actSterilizeLoad;
73
59
  }
60
+
61
+ connection : RealizesUseCase connect realizingWorkflow ::> wfReprocess to realizedUseCase ::> ucSterilize;
62
+
63
+
64
+ connection : HasScenario connect owningWorkflow ::> wfReprocess to pathScenario ::> scNominalCycle;
74
65
  }
@@ -6,7 +6,6 @@ package memo_examples_reusable_instrument_viewpoints_unassigned_views_reusable_i
6
6
  view reusableInstrumentOverview : MemoDiagramView {
7
7
  expose memo_examples_reusable_instrument::*;
8
8
  attribute depth = 2;
9
- attribute :>> title = "Reusable Instrument Overview";
10
9
  attribute :>> viewKind = DiagramViewKind::actionflow;
11
10
  attribute :>> diagramType = "ofd";
12
11
  }
@@ -0,0 +1,3 @@
1
+ name: ros-mobile-robot
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -6,7 +6,6 @@ package memo_examples_ros_mobile_robot_viewpoints_unassigned_views_ros_mobile_ro
6
6
  view rosMobileRobotOverview : MemoDiagramView {
7
7
  expose memo_examples_ros_mobile_robot::*;
8
8
  attribute depth = 2;
9
- attribute :>> title = "ROS Mobile Robot Overview";
10
9
  attribute :>> viewKind = DiagramViewKind::general;
11
10
  attribute :>> diagramType = "bdd";
12
11
  }
@@ -0,0 +1,3 @@
1
+ name: software-only-medical-device
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -50,7 +50,7 @@ package memo_examples_software_only_medical_device {
50
50
  }
51
51
  #refinement dependency svcGrading to swGradingModule;
52
52
 
53
- part duContainerImage : DeploymentUnit {
53
+ part duContainerImage : SoftwareDeploymentUnit {
54
54
  attribute :>> id = "SMD-DU-001"; attribute :>> name = "ScreeningServiceImage";
55
55
  attribute :>> unitKind = "OCI container image";
56
56
  attribute :>> integrityProtection = "image signature + SBOM attestation";
@@ -6,7 +6,6 @@ package memo_examples_software_only_medical_device_viewpoints_unassigned_views_s
6
6
  view softwareOnlyMedicalDeviceOverview : MemoDiagramView {
7
7
  expose memo_examples_software_only_medical_device::*;
8
8
  attribute depth = 2;
9
- attribute :>> title = "Software-only Medical Device Overview";
10
9
  attribute :>> viewKind = DiagramViewKind::general;
11
10
  attribute :>> diagramType = "bdd";
12
11
  }
@@ -0,0 +1,3 @@
1
+ name: surgical-closure-workflow
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -60,13 +60,13 @@ package memo_examples_surgical_closure_workflow {
60
60
  connection : Motivates connect motivatingNeed ::> needControlledGastricResection to motivatedUseCase ::> ucPerformSleeveGastrectomy;
61
61
 
62
62
  // ── Procedure workflow ──────────────────────────────────────
63
- action actTimeOutAndPosition : OperationalActivity { attribute :>> id = "LSG-ACT-001"; attribute :>> name = "ConfirmTimeOutAndPosition"; }
64
- action actEstablishAccess : OperationalActivity { attribute :>> id = "LSG-ACT-002"; attribute :>> name = "EstablishLaparoscopicAccess"; }
65
- action actMobilizeStomach : OperationalActivity { attribute :>> id = "LSG-ACT-003"; attribute :>> name = "MobilizeStomach"; }
66
- action actSizeAndCreateSleeve : OperationalActivity {
63
+ action actTimeOutAndPosition : OperativeAction { attribute :>> id = "LSG-ACT-001"; attribute :>> name = "ConfirmTimeOutAndPosition"; }
64
+ action actEstablishAccess : OperativeAction { attribute :>> id = "LSG-ACT-002"; attribute :>> name = "EstablishLaparoscopicAccess"; }
65
+ action actMobilizeStomach : OperativeAction { attribute :>> id = "LSG-ACT-003"; attribute :>> name = "MobilizeStomach"; }
66
+ action actSizeAndCreateSleeve : OperativeAction {
67
67
  attribute :>> id = "LSG-ACT-004"; attribute :>> name = "SizeAndCreateSleeve"; attribute :>> criticality = CriticalityKind::high;
68
68
 
69
- action taskCreateStapleLine : UserTask {
69
+ action taskCreateStapleLine : OperativeAction {
70
70
  attribute :>> criticality = CriticalityKind::high;
71
71
  attribute :>> id = "LSG-TASK-001";
72
72
  attribute :>> name = "CreateAndInspectStapleLine";
@@ -74,18 +74,18 @@ package memo_examples_surgical_closure_workflow {
74
74
  attribute :>> potentialHarm = "bleeding or staple-line complication not recognized before handover";
75
75
  attribute :>> severityIfFailed = SeverityKind::serious;
76
76
 
77
- action stConfirmAnatomy : TaskStep { attribute :>> id = "LSG-ST-001"; attribute :>> name = "ConfirmAnatomy"; }
78
- action stCreateStapleLine : TaskStep { attribute :>> id = "LSG-ST-002"; attribute :>> name = "CreateStapleLine"; }
79
- action stInspectBleeding : TaskStep { attribute :>> id = "LSG-ST-003"; attribute :>> name = "InspectForBleeding"; }
80
- action stAssessIntegrity : TaskStep { attribute :>> id = "LSG-ST-004"; attribute :>> name = "AssessStapleLineIntegrity"; }
77
+ action stConfirmAnatomy : OperativeAction { attribute :>> id = "LSG-ST-001"; attribute :>> name = "ConfirmAnatomy"; }
78
+ action stCreateStapleLine : OperativeAction { attribute :>> id = "LSG-ST-002"; attribute :>> name = "CreateStapleLine"; }
79
+ action stInspectBleeding : OperativeAction { attribute :>> id = "LSG-ST-003"; attribute :>> name = "InspectForBleeding"; }
80
+ action stAssessIntegrity : OperativeAction { attribute :>> id = "LSG-ST-004"; attribute :>> name = "AssessStapleLineIntegrity"; }
81
81
  first stConfirmAnatomy then stCreateStapleLine;
82
82
  first stCreateStapleLine then stInspectBleeding;
83
83
  first stInspectBleeding then stAssessIntegrity;
84
84
  }
85
85
  }
86
- action actAssessStapleLine : OperationalActivity { attribute :>> id = "LSG-ACT-005"; attribute :>> name = "AssessStapleLine"; attribute :>> criticality = CriticalityKind::high; }
87
- action actExtractSpecimenAndClose : OperationalActivity { attribute :>> id = "LSG-ACT-006"; attribute :>> name = "ExtractSpecimenAndClosePorts"; }
88
- action actHandover : OperationalActivity { attribute :>> id = "LSG-ACT-007"; attribute :>> name = "CompletePostoperativeHandover"; }
86
+ action actAssessStapleLine : OperativeAction { attribute :>> id = "LSG-ACT-005"; attribute :>> name = "AssessStapleLine"; attribute :>> criticality = CriticalityKind::high; }
87
+ action actExtractSpecimenAndClose : OperativeAction { attribute :>> id = "LSG-ACT-006"; attribute :>> name = "ExtractSpecimenAndClosePorts"; }
88
+ action actHandover : OperativeAction { attribute :>> id = "LSG-ACT-007"; attribute :>> name = "CompletePostoperativeHandover"; }
89
89
 
90
90
  action wfSleeveGastrectomy : ClinicalProcedureWorkflow {
91
91
  attribute :>> id = "LSG-WF-001";
@@ -94,53 +94,33 @@ package memo_examples_surgical_closure_workflow {
94
94
  attribute :>> entryCondition = "patient prepared; time-out ready";
95
95
  attribute :>> completionCondition = "staple line assessed; postoperative handover complete";
96
96
  attribute :>> clinicalObjective = "create a gastric sleeve after controlled mobilisation and staple-line assessment";
97
-
98
- action wsTimeOut : WorkflowStep { ref :>> performedActivity = actTimeOutAndPosition; }
99
- action wsAccess : WorkflowStep { ref :>> performedActivity = actEstablishAccess; }
100
- action wsMobilize : WorkflowStep { ref :>> performedActivity = actMobilizeStomach; }
101
- action wsSleeve : WorkflowStep { ref :>> performedActivity = actSizeAndCreateSleeve; }
102
- action wsAssess : WorkflowStep { ref :>> performedActivity = actAssessStapleLine; }
103
- action wsClose : WorkflowStep { ref :>> performedActivity = actExtractSpecimenAndClose; }
104
- action wsHandover : WorkflowStep { ref :>> performedActivity = actHandover; }
105
- first wsTimeOut then wsAccess;
106
- first wsAccess then wsMobilize;
107
- first wsMobilize then wsSleeve;
108
- first wsSleeve then wsAssess;
109
- first wsAssess then wsClose;
110
- first wsClose then wsHandover;
111
97
  }
112
- connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfSleeveGastrectomy to supported ::> ucPerformSleeveGastrectomy; }
113
98
 
114
99
  // ── Scenario paths, each with its own activity/action flow ──
115
- action scNominalSleeveProcedure : MemoScenario {
100
+ action scNominalSleeveProcedure : OperativeScenario {
116
101
  attribute :>> id = "LSG-SC-001"; attribute :>> name = "NominalSleeveGastrectomy";
117
- attribute :>> scenarioKind = ScenarioKind::operative;
118
- attribute :>> variantKind = ScenarioVariantKind::nominal;
119
- attribute :>> operationalCondition = OperationalConditionKind::normal;
120
102
  attribute :>> pathSummary = "Time-out, access, mobilisation, sleeve creation, staple-line assessment, closure, and handover complete without rework.";
121
- ref :>> parentWorkflow = wfSleeveGastrectomy;
122
- ref :>> parentUseCase = ucPerformSleeveGastrectomy;
123
- ref :>> activities = oaCompleteSleeveProcedure;
124
103
 
125
- action oaCompleteSleeveProcedure : OperationalActivity {
126
- attribute :>> name = "CompleteNominalSleeveProcedure";
127
- action prepare; action createSleeve; action assess; action handover;
128
- first start then prepare; first prepare then createSleeve; first createSleeve then assess; first assess then handover; first handover then done;
129
- }
104
+ perform actTimeOutAndPosition;
105
+ perform actEstablishAccess;
106
+ perform actMobilizeStomach;
107
+ perform actSizeAndCreateSleeve;
108
+ perform actAssessStapleLine;
109
+ perform actExtractSpecimenAndClose;
110
+ perform actHandover;
111
+ first actTimeOutAndPosition then actEstablishAccess;
112
+ first actEstablishAccess then actMobilizeStomach;
113
+ first actMobilizeStomach then actSizeAndCreateSleeve;
114
+ first actSizeAndCreateSleeve then actAssessStapleLine;
115
+ first actAssessStapleLine then actExtractSpecimenAndClose;
116
+ first actExtractSpecimenAndClose then actHandover;
130
117
  }
131
- action scStapleLineBleeding : MemoScenario {
118
+ action scStapleLineBleeding : OperativeScenario {
119
+ attribute :>> scenarioKind = ScenarioKind::alternate;
132
120
  attribute :>> id = "LSG-SC-002"; attribute :>> name = "StapleLineBleedingRecovery";
133
- attribute :>> scenarioKind = ScenarioKind::operative;
134
- attribute :>> variantKind = ScenarioVariantKind::recovery;
135
- attribute :>> operationalCondition = OperationalConditionKind::degraded;
136
- attribute :>> variationPoint = "bleeding observed during staple-line assessment";
137
121
  attribute :>> pathSummary = "Recognize bleeding, apply the selected control, reassess the staple line, and escalate if the condition remains unresolved.";
138
- ref :>> baseScenario = scNominalSleeveProcedure;
139
- ref :>> parentWorkflow = wfSleeveGastrectomy;
140
- ref :>> parentUseCase = ucPerformSleeveGastrectomy;
141
- ref :>> activities = oaControlStapleLineBleeding;
142
122
 
143
- action oaControlStapleLineBleeding : OperationalActivity {
123
+ action oaControlStapleLineBleeding : OperativeAction {
144
124
  attribute :>> name = "ControlStapleLineBleeding";
145
125
  action recognizeBleeding; action controlBleeding; action reassessStapleLine; action escalateIfNeeded;
146
126
  first start then recognizeBleeding; first recognizeBleeding then controlBleeding; first controlBleeding then reassessStapleLine; first reassessStapleLine then escalateIfNeeded; first escalateIfNeeded then done;
@@ -148,4 +128,11 @@ package memo_examples_surgical_closure_workflow {
148
128
  }
149
129
  #refinement dependency scNominalSleeveProcedure to ucPerformSleeveGastrectomy;
150
130
  #refinement dependency scStapleLineBleeding to ucPerformSleeveGastrectomy;
131
+
132
+ connection : RealizesUseCase connect realizingWorkflow ::> wfSleeveGastrectomy to realizedUseCase ::> ucPerformSleeveGastrectomy;
133
+
134
+
135
+ connection : HasScenario connect owningWorkflow ::> wfSleeveGastrectomy to pathScenario ::> scNominalSleeveProcedure;
136
+ connection : HasScenario connect owningWorkflow ::> wfSleeveGastrectomy to pathScenario ::> scStapleLineBleeding;
137
+
151
138
  }
@@ -6,7 +6,6 @@ package memo_examples_surgical_closure_workflow_viewpoints_unassigned_views_surg
6
6
  view surgicalClosureWorkflowOverview : MemoDiagramView {
7
7
  expose memo_examples_surgical_closure_workflow::*;
8
8
  attribute depth = 2;
9
- attribute :>> title = "Laparoscopic Sleeve Gastrectomy Workflow";
10
9
  attribute :>> viewKind = DiagramViewKind::actionflow;
11
10
  attribute :>> diagramType = "ofd";
12
11
  }
@@ -0,0 +1,3 @@
1
+ name: surgical-robot
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -6,7 +6,6 @@ package memo_examples_surgical_robot_viewpoints_unassigned_views_surgical_robot_
6
6
  view surgicalRobotOverview : MemoDiagramView {
7
7
  expose memo_examples_surgical_robot::*;
8
8
  attribute depth = 2;
9
- attribute :>> title = "Surgical Robot Overview";
10
9
  attribute :>> viewKind = DiagramViewKind::interconnection;
11
10
  attribute :>> diagramType = "ibd";
12
11
  }
@@ -7,5 +7,7 @@
7
7
  # (`type`, `extends`, `usage`, `ontologies`, `methodology`, `modules`) were
8
8
  # removed at the native semantic flip and are now rejected if present.
9
9
  name: sysml-diagram-samples
10
+ entrypoint: model/catalog/project.sysml
11
+ include: [model]
10
12
  version: 0.1.0
11
13
  description: "MEMO Architect diagram rendering samples \u2014 one openable view per standard SysML v2 diagram type. Open with: memo-architect --example standard-sysml-diagrams"
@@ -62,7 +62,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
62
62
  allocate sampleActionFlow.record to laneB;
63
63
 
64
64
  // MemoLink sample — the universal relation, exercised where nothing else
65
- // reaches. laneB is a `part` (LogicalComponent :> ArchitectureElement) and
65
+ // reaches. laneB is a `part` (LogicalComponent :> MemoPart) and
66
66
  // `sampleActionFlow.process` is an action usage (:> MemoAction). Those
67
67
  // foundations share no supertype, so every typed relation in the ontology
68
68
  // is unavailable here: legalRelationshipTypes returns MemoLink and nothing
@@ -84,10 +84,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_action_f
84
84
  expose laneA;
85
85
  expose laneB;
86
86
  attribute depth = 2;
87
- attribute :>> title = "Sample · Action Flow";
88
87
  attribute :>> shortDescription = "Dummy actions, typed item flows, successions, and a composite action for renderer development.";
89
88
  attribute :>> viewKind = DiagramViewKind::actionflow;
90
89
  attribute :>> diagramType = "afd";
91
- part :>> viewpointDefinition = functionalViewpoint;
90
+ ref :>> viewpointDefinition = functionalViewpoint;
92
91
  }
93
92
  }
@@ -43,11 +43,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_context_
43
43
  expose pharmacySystem;
44
44
  expose homeContext;
45
45
  attribute depth = 1;
46
- attribute :>> title = "Sample · System Context";
47
46
  attribute :>> shortDescription = "Operational system context: one black-box system boundary, its external people, peer systems, operating environment, and named boundary-crossing interactions.";
48
47
  attribute :>> viewKind = DiagramViewKind::general;
49
48
  attribute :>> diagramType = "context";
50
- part :>> viewpointDefinition = contextViewpoint;
49
+ ref :>> viewpointDefinition = contextViewpoint;
51
50
  part :>> selectionQuery {
52
51
  attribute :>> includeRelationshipKinds = ("InteractsWith", "flow", "AppliesInContext");
53
52
  }
@@ -134,10 +134,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_function
134
134
  expose fxDeliveryFlow::**;
135
135
  expose fxPumpSystem::**;
136
136
  attribute depth = 2;
137
- attribute :>> title = "Sample · Dose Delivery (Functional Flow)";
138
137
  attribute :>> shortDescription = "Component behaviour: functions in swimlanes per realising component, typed data/energy/material flows, a fork/join for concurrent occlusion monitoring, and a composite 'Deliver Medication' valve sub-flow (double-click to drill in).";
139
138
  attribute :>> viewKind = DiagramViewKind::actionflow;
140
139
  attribute :>> diagramType = "ffd";
141
- part :>> viewpointDefinition = functionalViewpoint;
140
+ ref :>> viewpointDefinition = functionalViewpoint;
142
141
  }
143
142
  }
@@ -75,11 +75,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_intercon
75
75
  expose waterSupply::**;
76
76
  expose cup::**;
77
77
  attribute depth = 2;
78
- attribute :>> title = "Coffee Machine · Thermal & Fluid IBD";
79
78
  attribute :>> shortDescription = "Balanced internal architecture with readable boundary ports, nested service diagnostics, and external water and beverage interfaces.";
80
79
  attribute :>> viewKind = DiagramViewKind::interconnection;
81
80
  attribute :>> diagramType = "ibd";
82
- part :>> viewpointDefinition = logicalArchitectureViewpoint;
81
+ ref :>> viewpointDefinition = logicalArchitectureViewpoint;
83
82
  part :>> selectionQuery {
84
83
  attribute :>> includeRelationshipKinds = ("Composes", "flow", "bind");
85
84
  }
@@ -18,10 +18,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
18
18
  attribute :>> itemKind = InterfaceItemKind::signal;
19
19
  }
20
20
 
21
- action def OpPrescribeTherapy specializes OperationalActivity { out item prescription : OpPrescription; }
22
- action def OpVerifyPrescription specializes OperationalActivity { in item prescription : OpPrescription; }
23
- action def OpRequestBolus specializes OperationalActivity { out item bolusRequest : OpBolusRequest; }
24
- action def OpCheckLockout specializes OperationalActivity { in item bolusRequest : OpBolusRequest; }
21
+ action def OpPrescribeTherapy specializes OperativeAction { out item prescription : OpPrescription; }
22
+ action def OpVerifyPrescription specializes OperativeAction { in item prescription : OpPrescription; }
23
+ action def OpRequestBolus specializes OperativeAction { out item bolusRequest : OpBolusRequest; }
24
+ action def OpCheckLockout specializes OperativeAction { in item bolusRequest : OpBolusRequest; }
25
25
 
26
26
  // Use the canonical MEMO operational system type—never a sample-local
27
27
  // placeholder—so ontology-driven Explorer grouping remains authoritative.
@@ -45,22 +45,22 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
45
45
  }
46
46
  }
47
47
 
48
- action opSetupFlow : OperationalActivity {
48
+ action opSetupFlow : OperativeAction {
49
49
  action opPrescribe : OpPrescribeTherapy { attribute :>> name = "Prescribe Therapy"; }
50
50
  action opVerify : OpVerifyPrescription { attribute :>> name = "Verify Prescription"; }
51
51
  fork opForkPrep;
52
- action opPrime : OperationalActivity { attribute :>> name = "Prime Pump & Load Reservoir"; }
53
- action opSelfTest : OperationalActivity { attribute :>> name = "Run Device Self-Test"; }
52
+ action opPrime : OperativeAction { attribute :>> name = "Prime Pump & Load Reservoir"; }
53
+ action opSelfTest : OperativeAction { attribute :>> name = "Run Device Self-Test"; }
54
54
  join opJoinPrep;
55
- action opProgram : OperationalActivity { attribute :>> name = "Program Pump Parameters"; }
56
- action opConnect : OperationalActivity { attribute :>> name = "Connect to Patient"; }
57
- action opStart : OperationalActivity { attribute :>> name = "Start Infusion"; }
58
- action opAdminister : OperationalActivity {
55
+ action opProgram : OperativeAction { attribute :>> name = "Program Pump Parameters"; }
56
+ action opConnect : OperativeAction { attribute :>> name = "Connect to Patient"; }
57
+ action opStart : OperativeAction { attribute :>> name = "Start Infusion"; }
58
+ action opAdminister : OperativeAction {
59
59
  attribute :>> name = "Administer PCA Therapy";
60
60
  action opRequestBolus : OpRequestBolus { attribute :>> name = "Request Bolus"; }
61
61
  action opCheckLockout : OpCheckLockout { attribute :>> name = "Check Lockout"; }
62
- action opDeliverDose : OperationalActivity { attribute :>> name = "Deliver Dose"; }
63
- action opLogEvent : OperationalActivity { attribute :>> name = "Log Dose Event"; }
62
+ action opDeliverDose : OperativeAction { attribute :>> name = "Deliver Dose"; }
63
+ action opLogEvent : OperativeAction { attribute :>> name = "Log Dose Event"; }
64
64
  flow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
65
65
  first start then opRequestBolus;
66
66
  first opRequestBolus then opCheckLockout;
@@ -100,10 +100,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
100
100
  expose opSetupFlow::**;
101
101
  expose opCareSystem::**;
102
102
  attribute depth = 2;
103
- attribute :>> title = "Sample · Clinical PCA Setup (Operational)";
104
103
  attribute :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step.";
105
104
  attribute :>> viewKind = DiagramViewKind::actionflow;
106
105
  attribute :>> diagramType = "ofd";
107
- part :>> viewpointDefinition = operationalViewpoint;
106
+ ref :>> viewpointDefinition = operationalViewpoint;
108
107
  }
109
108
  }
@@ -50,11 +50,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
50
50
  expose reqOcclusionAlarm;
51
51
  expose reqAlarmLoudness;
52
52
  attribute depth = 1;
53
- attribute :>> title = "Sample · Requirements";
54
53
  attribute :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges.";
55
54
  attribute :>> viewKind = DiagramViewKind::general;
56
55
  attribute :>> diagramType = "req";
57
- part :>> viewpointDefinition = requirementsViewpoint;
56
+ ref :>> viewpointDefinition = requirementsViewpoint;
58
57
  part :>> selectionQuery {
59
58
  attribute :>> includeRelationshipKinds = ("DerivesFrom");
60
59
  }
@@ -24,10 +24,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard
24
24
  view standardActivityView : MemoDiagramView {
25
25
  expose CustomerProcess::**;
26
26
  attribute depth = 2;
27
- attribute :>> title = "Sample · Customer Purchase Process";
28
27
  attribute :>> shortDescription = "Customer login, guarded validation, shopping loop, checkout, credit approval, and explicit completion outcomes.";
29
28
  attribute :>> viewKind = DiagramViewKind::actionflow;
30
29
  attribute :>> diagramType = "afd";
31
- part :>> viewpointDefinition = functionalViewpoint;
30
+ ref :>> viewpointDefinition = functionalViewpoint;
32
31
  }
33
32
  }
@@ -64,11 +64,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_tr
64
64
  view sampleStateTransitionView : MemoDiagramView {
65
65
  expose pumpModes::**;
66
66
  attribute depth = 2;
67
- attribute :>> title = "Sample · State Transition";
68
67
  attribute :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding.";
69
68
  attribute :>> viewKind = DiagramViewKind::statetransition;
70
69
  attribute :>> diagramType = "stm";
71
- part :>> viewpointDefinition = functionalViewpoint;
70
+ ref :>> viewpointDefinition = functionalViewpoint;
72
71
  part :>> selectionQuery {
73
72
  attribute :>> includeElementKinds = ("StateMachine", "MemoState");
74
73
  }
@@ -34,11 +34,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_vie
34
34
  view sampleTreeView : MemoDiagramView {
35
35
  expose rootA::**;
36
36
  attribute depth = 2;
37
- attribute :>> title = "Sample · Tree";
38
37
  attribute :>> shortDescription = "One connected dummy hierarchy with varied branch depths for tree layout development.";
39
38
  attribute :>> viewKind = DiagramViewKind::general;
40
39
  attribute :>> diagramType = "bdd";
41
- part :>> viewpointDefinition = physicalViewpoint;
40
+ ref :>> viewpointDefinition = physicalViewpoint;
42
41
  attribute :>> layoutHint = "tree";
43
42
  attribute :>> styleHint = "expanded:rootA,rootB,branchA1,branchB1";
44
43
  part :>> selectionQuery {
@@ -72,11 +72,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
72
72
  expose maintainDevice;
73
73
  expose documentTreatment;
74
74
  expose validateTherapySettings;
75
- attribute :>> title = "Sample · Device Use Cases";
76
75
  attribute :>> shortDescription = "Actors outside a device boundary with include, extend, hierarchy-level, and orthogonal-routing presentation.";
77
76
  attribute :>> viewKind = DiagramViewKind::general;
78
77
  attribute :>> diagramType = "ucd";
79
- part :>> viewpointDefinition = operationalViewpoint;
78
+ ref :>> viewpointDefinition = operationalViewpoint;
80
79
  part :>> selectionQuery {
81
80
  attribute :>> includeElementKinds = ("User", "UseCase");
82
81
  attribute :>> includeRelationshipKinds = ("ParticipatesIn", "IncludesStep", "Extends");
@@ -0,0 +1,3 @@
1
+ name: temperature-alarm
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -38,11 +38,11 @@ package memo_examples_temperature_alarm {
38
38
  subject supportingSystem;
39
39
  actor icuNurseInitiator = icuNurse;
40
40
  }
41
- action actAcknowledgeAlarm : OperationalActivity {
41
+ action actAcknowledgeAlarm : OperativeAction {
42
42
  attribute :>> id = "TA-ACT-001"; attribute :>> name = "ReviewAndAcknowledgeAlarm";
43
43
  attribute :>> criticality = CriticalityKind::high;
44
44
 
45
- action taskAckAlarm : UserTask {
45
+ action taskAckAlarm : OperativeAction {
46
46
  attribute :>> criticality = CriticalityKind::high;
47
47
  attribute :>> id = "TA-TASK-001"; attribute :>> name = "AcknowledgeTemperatureAlarm";
48
48
  attribute :>> taskGoal = "recognize, assess, and acknowledge the alarm";
@@ -89,7 +89,7 @@ package memo_examples_temperature_alarm {
89
89
  perform fnDetectDeviation;
90
90
  }
91
91
  connection : ElementTriggersAction connect element ::> elAlarmBanner to triggeredAction ::> uiaAcknowledge;
92
- connection : Supports { attribute :>> supportKind = SupportKind::task; connect supporter ::> uiBedside to supported ::> actAcknowledgeAlarm.taskAckAlarm; }
92
+ connection : Supports { connect supporter ::> uiBedside to supported ::> actAcknowledgeAlarm.taskAckAlarm; }
93
93
 
94
94
  // ── Risk chain with use error ───────────────────────────────
95
95
  part ueSilenceAndForget : UseError {
@@ -114,12 +114,8 @@ package memo_examples_temperature_alarm {
114
114
  connection : ControlImplementedBy connect riskControl ::> rcReAnnunciate to implementingElement ::> elAlarmBanner;
115
115
 
116
116
  // ── Verification, validation, evidence ──────────────────────
117
- action vsAlarmLatency : MemoScenario {
117
+ action vsAlarmLatency : OperativeScenario {
118
118
  attribute :>> id = "TA-VS-001"; attribute :>> name = "AlarmLatencyScenario";
119
- attribute :>> scenarioKind = ScenarioKind::memoVerification;
120
- attribute :>> variantKind = ScenarioVariantKind::nominal;
121
- attribute :>> operationalCondition = OperationalConditionKind::normal;
122
- attribute :>> scenarioPurpose = ScenarioPurposeKind::memoVerification;
123
119
  attribute :>> pathSummary = "Induce out-of-range temperature; measure detection-to-annunciation latency.";
124
120
  }
125
121
  verification vcAlarmLatency : VerificationCase {
@@ -6,7 +6,6 @@ package memo_examples_temperature_alarm_viewpoints_unassigned_views_temperature_
6
6
  view temperatureAlarmOverview : MemoDiagramView {
7
7
  expose memo_examples_temperature_alarm::*;
8
8
  attribute depth = 2;
9
- attribute :>> title = "Temperature Alarm Overview";
10
9
  attribute :>> viewKind = DiagramViewKind::general;
11
10
  attribute :>> diagramType = "bdd";
12
11
  }
@@ -0,0 +1,3 @@
1
+ name: ui-screen-regions
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -44,7 +44,6 @@ package memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functiona
44
44
  expose memo_examples_ui_screen_regions_traces::*;
45
45
  attribute depth = 3;
46
46
  attribute :>> id = "FUN-101";
47
- attribute :>> title = "Infusion UI Functional Tree";
48
47
  attribute :>> shortDescription = "Display-management functions, invoked actions, and UI allocation.";
49
48
  attribute :>> viewKind = DiagramViewKind::general;
50
49
  attribute :>> diagramType = "bdd";
@@ -57,6 +56,6 @@ package memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functiona
57
56
  attribute :>> includeLayers = ("functions", "implementation");
58
57
  attribute :>> rationaleText = "Show function decomposition from interaction to allocated user interface.";
59
58
  }
60
- part :>> viewpointDefinition = functionalViewpoint;
59
+ ref :>> viewpointDefinition = functionalViewpoint;
61
60
  }
62
61
  }
@@ -44,7 +44,6 @@ package memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_require
44
44
  expose memo_examples_ui_screen_regions_traces::*;
45
45
  attribute depth = 3;
46
46
  attribute :>> id = "REQ-101";
47
- attribute :>> title = "UI Requirements Traceability";
48
47
  attribute :>> shortDescription = "Clinical need through UI requirements to satisfying regions and functions.";
49
48
  attribute :>> viewKind = DiagramViewKind::grid;
50
49
  attribute :>> diagramType = "req";
@@ -57,6 +56,6 @@ package memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_require
57
56
  attribute :>> includeLayers = ("requirements", "implementation", "functions", "assurance");
58
57
  attribute :>> rationaleText = "Show the example's requirement derivation and satisfaction chain.";
59
58
  }
60
- part :>> viewpointDefinition = requirementsViewpoint;
59
+ ref :>> viewpointDefinition = requirementsViewpoint;
61
60
  }
62
61
  }
@@ -44,7 +44,6 @@ package memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain {
44
44
  expose memo_examples_ui_screen_regions_traces::*;
45
45
  attribute depth = 3;
46
46
  attribute :>> id = "RSK-101";
47
- attribute :>> title = "UI Risk and Control Chains";
48
47
  attribute :>> shortDescription = "Use errors through UI hazards to implemented controls and requirements.";
49
48
  attribute :>> viewKind = DiagramViewKind::general;
50
49
  attribute :>> diagramType = "risk";
@@ -57,6 +56,6 @@ package memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain {
57
56
  attribute :>> includeLayers = ("human_factors", "risk", "requirements", "implementation", "functions", "assurance");
58
57
  attribute :>> rationaleText = "Show both misread-rate and wrong-drug UI risk-control chains.";
59
58
  }
60
- part :>> viewpointDefinition = riskViewpoint;
59
+ ref :>> viewpointDefinition = riskViewpoint;
61
60
  }
62
61
  }
@@ -51,7 +51,6 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_main_screen_l
51
51
  expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
52
52
  expose memo_examples_ui_screen_regions_traces::*;
53
53
  attribute :>> id = "UIE-001";
54
- attribute :>> title = "Main Infusion Screen — Region Layout";
55
- part :>> viewpointDefinition = uiLayoutViewpoint;
54
+ ref :>> viewpointDefinition = uiLayoutViewpoint;
56
55
  }
57
56
  }
@@ -46,7 +46,6 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_settings_scre
46
46
  expose memo_examples_ui_screen_regions_artifacts_reviews_notes::*;
47
47
  expose memo_examples_ui_screen_regions_traces::*;
48
48
  attribute :>> id = "UIE-008";
49
- attribute :>> title = "Infusion Settings Screen — Region Layout";
50
- part :>> viewpointDefinition = uiLayoutViewpoint;
49
+ ref :>> viewpointDefinition = uiLayoutViewpoint;
51
50
  }
52
51
  }
@@ -46,9 +46,8 @@ package memo_examples_ui_screen_regions_viewpoints_ui_layout_views_ui_region_tra
46
46
  expose memo_examples_ui_screen_regions_traces::*;
47
47
  attribute :>> id = "UIV-001";
48
48
  attribute depth = 3;
49
- attribute :>> title = "UI Region Traceability";
50
49
  attribute :>> viewKind = DiagramViewKind::general;
51
50
  attribute :>> diagramType = "bdd";
52
- part :>> viewpointDefinition = uiLayoutViewpoint;
51
+ ref :>> viewpointDefinition = uiLayoutViewpoint;
53
52
  }
54
53
  }