web-dev-qa-db-fra.com

Rejoindre et fusionner dans le diagramme d'activité

Quelle est la différence entre Join et Merge in Unified Modeling Language Activity Diagram. Donnez un exemple pour mieux comprendre.

6
AzeEm AnJum

Join Node (voir référence 1 ):

Le nœud de jointure est un nœud de contrôle qui a plusieurs fronts entrants et un front sortant et est utilisé pour synchroniser les flux concurrents entrants . Les nœuds de jointure sont introduits pour prendre en charge le parallélisme dans les activités .

Noeud de fusion (voir référence 2 ):

Le nœud de fusion est un nœud de contrôle qui rassemble plusieurs flux alternatifs entrants pour accepter un flux sortant unique. Il n'y a pas de jonction de jetons. La fusion ne doit pas être utilisée pour synchroniser les flux simultanés .


Par exemple dans le diagramme ci-dessous:

Une décision est utilisée après un fork, les deux flux sortant de la décision doivent être fusionnés en un seul avant de passer à une jointure .

Pourquoi? : Sinon, la jointure attendra les deux flux.

Donc , Activity 2 et Activity 3 sont nos flux alternatifs et seulement dont l'un arrivera. Et ils ne sont pas pas synchronisés entrants.

Cependant , le Concurrent_Activity et résultat d'une décision entre Activity 1 et Activity 2 (qui ont fusionné en une seule sortie) synchronisent les flux concurrents entrants. La jointure attend que les deux s'exécutent et continuent.

enter image description here

10
Gholamali-Irani

Pour développer la réponse de @ Gholamali-Irani: Les diagrammes d'activités sont dérivés de réseaux de Petri . En bref, vous devez imaginer un seul "jeton" qui commence au point de départ initial (ce gros point). Le jeton se déplace le long d'un chemin jusqu'à ce qu'il disparaisse dans l'un de ces terminaux finaux (point encerclé) (ou comme UML le permet dans les actions qui n'ont pas de chemin sortant). Les nœuds de fork multiplieront ce jeton unique en autant de jetons qu'il a de chemins sortants (UML a également un fork implicite pour les actions avec plusieurs chemins sortants qui ne sont pas protégés). Ainsi, ces multiples jetons voyagent indépendamment jusqu'à ce qu'ils disparaissent comme décrit ci-dessus ou qu'ils atteignent une jointure (ou action) avec plusieurs chemins entrants. Ici, le jeton attend que tous les chemins soient alimentés avec un seul jeton. Ces multiples jetons sont ensuite fusionnés en un seul qui continue comme d'habitude.

Avec cet ensemble de règles, vous pouvez modéliser n'importe quel réseau simultané complexe.

3
qwerty_so