Warum sind Fork- und Join-Knoten in UML erforderlich?

Ich habe etwas Hintergrundwissen in Petri-Netzen , und in meiner letzten UML-Schulung erklärte der Trainer, wie es funktioniert Diagramme sind im Wesentlichen eine Form eines Petri-Netzes mit Petri-Netz-Semantik.

Nun lesen Sie, dass Fork- und Join-Symbole zur Modellierung der Parallelität in UML-Aktivitätsdiagrammen verwendet werden.

Es scheint, als könnte eine Gabelung durch eine No-Op-Aktion ersetzt werden, die von einer eingehenden Verbindung zu vielen ausgehenden weiterleitet. Gleiches gilt für einen Join-Knoten, der durch einen No-Op-Knoten ersetzt werden kann, der die ankommenden Pfeile synchronisiert. Oft konnte die No-Op-Aktion durch direktes Anbringen der Pfeile an der Aktion, die zur Gabelung führt, oder nach dem "Join" durchgeführt werden.

Das einzige, was auf die Notwendigkeit eines Verknüpfungsknotens hinweisen könnte, wäre die "Verknüpfungsspezifikation". Dies scheint jedoch ein seltener Anwendungsfall zu sein.

0
ru
Vielleicht bin ich mit Petri-Netzen nur zu wenig vertraut, aber können Sie erklären, was Ihrer Meinung nach der Unterschied zwischen einem "Join" und einem "No-Op-Knoten" ist, der die eingehenden Pfeile synchronisiert?
hinzugefügt der Autor JimmyJames, Quelle

1 Antworten

Normalerweise gibt es nur einen einzigen aktiven Status. Gabel erstellt aktivere Zustände, die sich unabhängig voneinander ausbreiten können.

In Bezug auf join fehlt Ihnen eines: Sie können Join nur weiterleiten, wenn alle Eingaben eingehen. Das kann nicht einfach durch mehr eingehende Verbindungen modelliert werden.

Sie können die Zustände zwischen Fork und Join perfekt modellieren, indem Sie ein kartesisches Produkt zwischen erstellen und anschließend alle Übergänge zwischen diesen vollständig modellieren.

Gabelung und Verbindung vereinfachen das Diagramm, indem die logischen Zustände jedes Teils sichtbar bleiben.

2
hinzugefügt