Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:rule:do_not_save_on_gateways [2024-08-26 11:27] – [Исключения] Anatoly Belaychukru:rule:do_not_save_on_gateways [2024-08-26 13:08] (текущий) – [Примечания] Anatoly Belaychuk
Строка 1: Строка 1:
-====== 0-TBD Не экономьте на развилках ======+====== Не экономьте на развилках ======
  
-{{tag>развилка}} +{{tag>развилка цикл}}
- +
-{{:ru:v_razrabotke.png?nolink&200|}} +
- +
-Стремление уменьшить количество элементов ухудшает читаемость.+
  
 +Развилки делают схему понятной с первого взгляда.
 ===== ✔ Как надо ===== ===== ✔ Как надо =====
  
Строка 601: Строка 598:
 ===== Примечания ===== ===== Примечания =====
  
-Благодаря своей заметности развилки делают схему понятной с первого взгляда+Некоторые авторы рекомендуют использовать развилки только там, где без них нельзя обойтись. 
- +Аргументируется это тем, что уменьшение количества элементов на диаграмме делает ее более понятной
-Структурированные блоки. +Например, Брюс Сильвер в книге "BPMN - метод и стиль" рекомендует использовать неявное распараллеливание (экономится расходящаяся параллельная развилка
- +и схождение альтернативных маршрутов на действии (экономится сходящаяся развилка "или-или")
-Противоречит Методу и стилю Брюса Сильвера.+Другие авторы из этих же соображений рекомендуют использовать условные потоки управления (экономится расходящаяся развилка "или-или").
  
 +Такая рекомендация является спорной: считать развилки бесполезным балластом неверно -
 +они позволяют разбить диаграмму на [[structured_diagram|структурные блоки]], тем самым делая процессную логику явной, легко считываемой.
 ===== Исключения ===== ===== Исключения =====
  
 <bpmnio type="bpmn"> <bpmnio type="bpmn">
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
-<definitions +<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1"> 
-    xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" +  <collaboration id="Collaboration_0qa9llr"> 
-    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" +    <participant id="Participant_0zoxzpt" processRef="Process_0a1x1rm" /> 
-    xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" +  </collaboration> 
-    xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" +  <process id="Process_0a1x1rm"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +    <laneSet id="LaneSet_0oxuxy6"> 
-    id="sid-38422fae-e03e-43a3-bef4-bd33b32041b2" +      <lane id="Lane_0ydghza" name="Исполнитель"> 
-    targetNamespace="http://bpmn.io/bpmn" exporter="http://bpmn.io" exporterVersion="0.10.1"> +        <flowNodeRef>Activity_1mas9cf</flowNodeRef
-    <collaboration id="Collaboration_1oh70al"> +        <flowNodeRef>Event_0rrygmz</flowNodeRef
-        <participant id="Participant_1r8g02m" name="Добавить диаграмму BPMN" processRef="Process_1" /> +        <flowNodeRef>Activity_0u0drg9</flowNodeRef> 
-    </collaboration> +      </lane> 
-    <process id="Process_1isExecutable="false"> +      <lane id="Lane_0hvsiwo" name="Руководитель"> 
-        <startEvent id="StartEvent_1" name="Start"> +        <flowNodeRef>Activity_0rgs3uj</flowNodeRef
-        <outgoing>SequenceFlow_1</outgoing+        <flowNodeRef>Gateway_1r795qj</flowNodeRef
-        </startEvent+        <flowNodeRef>Event_05brdcz</flowNodeRef> 
-        <task id="Task_1" name="Do Something"> +      </lane> 
-        <incoming>SequenceFlow_1</incoming+    </laneSet> 
-        <incoming>SequenceFlow_121ul2c</incoming+    <task id="Activity_1mas9cf" name="Сделать"> 
-        <incoming>SequenceFlow_0nuwads</incoming> +      <incoming>Flow_1muai6c</incoming> 
-        <outgoing>SequenceFlow_2</outgoing> +      <outgoing>Flow_1a7m68a</outgoing> 
-        </task> +    </task> 
-        <exclusiveGateway id="ExclusiveGateway_1name="Result OKgatewayDirection="Diverging"> +    <sequenceFlow id="Flow_1muai6csourceRef="Event_0rrygmztargetRef="Activity_1mas9cf/
-        <incoming>SequenceFlow_2</incoming> +    <startEvent id="Event_0rrygmz"> 
-        <outgoing>SequenceFlow_0snv4kp</outgoing+      <outgoing>Flow_1muai6c</outgoing> 
-        <outgoing>SequenceFlow_0nuwads</outgoing> +    </startEvent> 
-        </exclusiveGateway+    <sequenceFlow id="Flow_1a7m68a" sourceRef="Activity_1mas9cf" targetRef="Activity_0rgs3uj" /> 
-        <task id="Task_17knw8l" name="Monitor"> +    <task id="Activity_0rgs3uj" name="Принять"> 
-        <outgoing>SequenceFlow_121ul2c</outgoing> +      <incoming>Flow_1a7m68a</incoming> 
-        </task+      <incoming>Flow_0w6ruw6</incoming
-        <endEvent id="EndEvent_0oj7l6x" name="End"> +      <outgoing>Flow_02iidys</outgoing> 
-        <incoming>SequenceFlow_0snv4kp</incoming> +    </task
-        </endEvent+    <exclusiveGateway id="Gateway_1r795qj" name="Принято?"> 
-        <sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="Task_1" /> +      <incoming>Flow_02iidys</incoming> 
-        <sequenceFlow id="SequenceFlow_121ul2c" sourceRef="Task_17knw8l" targetRef="Task_1" /> +      <outgoing>Flow_0s9fue9</outgoing> 
-        <sequenceFlow id="SequenceFlow_0nuwads" name="No" sourceRef="ExclusiveGateway_1" targetRef="Task_1" /> +      <outgoing>Flow_15vub0z</outgoing
-        <sequenceFlow id="SequenceFlow_2" sourceRef="Task_1" targetRef="ExclusiveGateway_1" /> +    </exclusiveGateway> 
-        <sequenceFlow id="SequenceFlow_0snv4kp" name="Yes" sourceRef="ExclusiveGateway_1" targetRef="EndEvent_0oj7l6x" /> +    <task id="Activity_0u0drg9" name="Переделать"> 
-    </process> +      <incoming>Flow_15vub0z</incoming> 
-        <bpmndi:BPMNDiagram id="BpmnDiagram_1"> +      <outgoing>Flow_0w6ruw6</outgoing
-        <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Collaboration_1oh70al"> +    </task> 
-        <bpmndi:BPMNShape id="Participant_1r8g02m_di" bpmnElement="Participant_1r8g02m"> +    <sequenceFlow id="Flow_0w6ruw6" sourceRef="Activity_0u0drg9" targetRef="Activity_0rgs3uj" /> 
-            <omgdc:Bounds x="104" y="78" width="668" height="297" /> +    <sequenceFlow id="Flow_02iidys" sourceRef="Activity_0rgs3uj" targetRef="Gateway_1r795qj" /> 
-        </bpmndi:BPMNShape> +    <sequenceFlow id="Flow_0s9fue9" name="да" sourceRef="Gateway_1r795qj" targetRef="Event_05brdcz" /> 
-        <bpmndi:BPMNShape id="StartEvent_1_gui" bpmnElement="StartEvent_1"> +    <sequenceFlow id="Flow_15vub0z" name="нет" sourceRef="Gateway_1r795qj" targetRef="Activity_0u0drg9" /> 
-            <omgdc:Bounds x="242" y="187" width="30" height="30" /> +    <endEvent id="Event_05brdcz"
-            <bpmndi:BPMNLabel> +      <incoming>Flow_0s9fue9</incoming
-            <omgdc:Bounds x="212" y="219" width="90" height="22" /> +    </endEvent> 
-            </bpmndi:BPMNLabel> +  </process> 
-        </bpmndi:BPMNShape> +  <bpmndi:BPMNDiagram id="BpmnDiagram_1"> 
-        <bpmndi:BPMNShape id="Task_1_gui" bpmnElement="Task_1"> +    <bpmndi:BPMNPlane id="BpmnPlane_1" bpmnElement="Collaboration_0qa9llr"> 
-            <omgdc:Bounds x="340" y="162" width="100" height="80" /> +      <bpmndi:BPMNShape id="Participant_0zoxzpt_di" bpmnElement="Participant_0zoxzpt" isHorizontal="true"> 
-            <bpmndi:BPMNLabel> +        <omgdc:Bounds x="240" y="40" width="610" height="280" /> 
-            <omgdc:Bounds x="118.85714721679688" y="47" width="82.28570556640625" height="12" /> +      </bpmndi:BPMNShape> 
-            </bpmndi:BPMNLabel+      <bpmndi:BPMNShape id="Lane_0ydghza_di" bpmnElement="Lane_0ydghza" isHorizontal="true"> 
-        </bpmndi:BPMNShape> +        <omgdc:Bounds x="270" y="40" width="580" height="140" /> 
-        <bpmndi:BPMNShape id="ExclusiveGateway_1_gui" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true"> +        <bpmndi:BPMNLabel /
-            <omgdc:Bounds x="508" y="182" width="40" height="40" /> +      </bpmndi:BPMNShape> 
-            <bpmndi:BPMNLabel> +      <bpmndi:BPMNShape id="Lane_0hvsiwo_di" bpmnElement="Lane_0hvsiwo" isHorizontal="true"> 
-            <omgdc:Bounds x="483" y="234" width="90" height="24" /> +        <omgdc:Bounds x="270" y="180" width="580" height="140" /> 
-            </bpmndi:BPMNLabel> +        <bpmndi:BPMNLabel /
-        </bpmndi:BPMNShape> +      </bpmndi:BPMNShape> 
-        <bpmndi:BPMNShape id="Task_17knw8l_di" bpmnElement="Task_17knw8l"> +      <bpmndi:BPMNShape id="Activity_1mas9cf_di" bpmnElement="Activity_1mas9cf"> 
-            <omgdc:Bounds x="340" y="275" width="100" height="80" /> +        <omgdc:Bounds x="400" y="70" width="100" height="80" /> 
-        </bpmndi:BPMNShape> +        <bpmndi:BPMNLabel /
-        <bpmndi:BPMNShape id="EndEvent_0oj7l6x_di" bpmnElement="EndEvent_0oj7l6x"> +      </bpmndi:BPMNShape> 
-            <omgdc:Bounds x="648" y="184" width="36" height="36" /> +      <bpmndi:BPMNShape id="Event_0rrygmz_di" bpmnElement="Event_0rrygmz"> 
-            <bpmndi:BPMNLabel> +        <omgdc:Bounds x="322" y="92" width="36" height="36" /> 
-            <omgdc:Bounds x="621" y="220" width="90" height="20" /> +      </bpmndi:BPMNShape> 
-            </bpmndi:BPMNLabel> +      <bpmndi:BPMNShape id="Activity_0rgs3uj_di" bpmnElement="Activity_0rgs3uj"
-        </bpmndi:BPMNShape> +        <omgdc:Bounds x="540" y="210" width="100" height="80" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_1_gui" bpmnElement="SequenceFlow_1"> +        <bpmndi:BPMNLabel /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="272" y="202" /> +      </bpmndi:BPMNShape> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="340" y="202" /> +      <bpmndi:BPMNShape id="Gateway_1r795qj_di" bpmnElement="Gateway_1r795qj" isMarkerVisible="true"> 
-            <bpmndi:BPMNLabel> +        <omgdc:Bounds x="675" y="225" width="50" height="50" /> 
-            <omgdc:Bounds x="225" y="140" width="90" height="20" /> +        <bpmndi:BPMNLabel> 
-            </bpmndi:BPMNLabel> +          <omgdc:Bounds x="689" y="282" width="23" height="14" /> 
-        </bpmndi:BPMNEdge> +        </bpmndi:BPMNLabel> 
-        <bpmndi:BPMNEdge id="SequenceFlow_121ul2c_di" bpmnElement="SequenceFlow_121ul2c"> +      </bpmndi:BPMNShape> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="275" /> +      <bpmndi:BPMNShape id="Activity_0u0drg9_di" bpmnElement="Activity_0u0drg9"> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="242" /> +        <omgdc:Bounds x="540" y="70" width="100" height="80" /> 
-            <bpmndi:BPMNLabel> +        <bpmndi:BPMNLabel /> 
-            <omgdc:Bounds x="358" y="273" width="90" height="20" /> +      </bpmndi:BPMNShape> 
-            </bpmndi:BPMNLabel> +      <bpmndi:BPMNShape id="Event_05brdcz_di" bpmnElement="Event_05brdcz"> 
-        </bpmndi:BPMNEdge> +        <omgdc:Bounds x="782" y="232" width="36" height="36" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_0nuwads_di" bpmnElement="SequenceFlow_0nuwads"> +      </bpmndi:BPMNShape> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="528" y="182" /> +      <bpmndi:BPMNEdge id="Flow_1muai6c_di" bpmnElement="Flow_1muai6c"> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="528" y="110" /> +        <omgdi:waypoint x="358" y="110" /> 
-            <omgdi:waypoint xsi:type="omgdc:Pointx="390y="110" /+        <omgdi:waypoint x="400" y="110" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="390" y="162" /> +      </bpmndi:BPMNEdge> 
-            <bpmndi:BPMNLabel> +      <bpmndi:BPMNEdge id="Flow_1a7m68a_di" bpmnElement="Flow_1a7m68a"> 
-            <omgdc:Bounds x="495" y="140" width="90" height="20" /> +        <omgdi:waypoint x="450" y="150" /> 
-            </bpmndi:BPMNLabel> +        <omgdi:waypoint x="450" y="250" /> 
-        </bpmndi:BPMNEdge> +        <omgdi:waypoint x="540" y="250" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_2_di" bpmnElement="SequenceFlow_2"> +      </bpmndi:BPMNEdge> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="440" y="202" /> +      <bpmndi:BPMNEdge id="Flow_0w6ruw6_di" bpmnElement="Flow_0w6ruw6"> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="508" y="202" /> +        <omgdi:waypoint x="590" y="150" /> 
-            <bpmndi:BPMNLabel> +        <omgdi:waypoint x="590" y="210" /> 
-            <omgdc:Bounds x="433" y="192" width="90" height="20" /> +      </bpmndi:BPMNEdge> 
-            </bpmndi:BPMNLabel> +      <bpmndi:BPMNEdge id="Flow_02iidys_dibpmnElement="Flow_02iidys"> 
-        </bpmndi:BPMNEdge> +        <omgdi:waypoint x="640" y="250" /> 
-        <bpmndi:BPMNEdge id="SequenceFlow_0snv4kp_di" bpmnElement="SequenceFlow_0snv4kp"> +        <omgdi:waypoint x="675" y="250" /> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="548" y="202" /> +      </bpmndi:BPMNEdge> 
-            <omgdi:waypoint xsi:type="omgdc:Point" x="648" y="202" /> +      <bpmndi:BPMNEdge id="Flow_0s9fue9_di" bpmnElement="Flow_0s9fue9"> 
-            <bpmndi:BPMNLabel> +        <omgdi:waypoint x="725" y="250" /> 
-            <omgdc:Bounds x="550" y="183" width="90" height="20" /> +        <omgdi:waypoint x="782" y="250" /> 
-            </bpmndi:BPMNLabel> +        <bpmndi:BPMNLabel> 
-        </bpmndi:BPMNEdge> +          <omgdc:Bounds x="745" y="232" width="17" height="14" /> 
-        </bpmndi:BPMNPlane> +        </bpmndi:BPMNLabel> 
-    </bpmndi:BPMNDiagram>+      </bpmndi:BPMNEdge> 
 +      <bpmndi:BPMNEdge id="Flow_15vub0z_di" bpmnElement="Flow_15vub0z"> 
 +        <omgdi:waypoint x="700" y="225" /> 
 +        <omgdi:waypoint x="700" y="110" /> 
 +        <omgdi:waypoint x="640" y="110" /> 
 +        <bpmndi:BPMNLabel> 
 +          <omgdc:Bounds x="709" y="165" width="13" height="14" /> 
 +        </bpmndi:BPMNLabel> 
 +      </bpmndi:BPMNEdge> 
 +    </bpmndi:BPMNPlane> 
 +  </bpmndi:BPMNDiagram>
 </definitions> </definitions>
 </bpmnio> </bpmnio>
Строка 731: Строка 740:
   * [[overlapped_flows]]   * [[overlapped_flows]]
   * [[alternative_paths]]   * [[alternative_paths]]
 +  * [[time_flows_left_to_right]]
  
 ===== Автор(ы) ===== ===== Автор(ы) =====
  
  --- //[[user:bell|Anatoly Belaychuk]] 2024-08-22 20:38//  --- //[[user:bell|Anatoly Belaychuk]] 2024-08-22 20:38//