Ho qualche background in reti di Petri , e nel mio ultimo addestramento UML, il formatore ha spiegato come i diagrammi di attività sono essenzialmente una forma di una rete di Petri con semantica di rete di Petri.
Ora leggiamo che i simboli fork e join sono usati per modellare la concorrenza nei diagrammi di attività UML, e sono un po 'incerto se sono effettivamente necessari o se servono a uno scopo più profondo.
Sembra che una forcella possa essere sostituita da un'azione non operante che trasmette da un collegamento in entrata a molti in uscita. Lo stesso vale per un nodo join, che potrebbe essere sostituito da un nodo no-op che sincronizza le frecce in entrata. Molte volte, l'azione non operatoria può essere eliminata collegando direttamente le frecce all'azione che porta alla forcella o seguendo il "join".
L'unica cosa che potrebbe indicare la necessità di un nodo di join sarebbe la "specifica di join", ma sembra un caso di utilizzo raro.
Ecco un esempio di una valutazione petri-net senza fork e join: