Connecting Objects
Introduzione
In BPMN 2.0, gli connecting objects sono utilizzati per definire le relazioni e il flusso di informazioni tra diversi elementi in un modello di processo. Connettono attività, eventi e gateway, guidando il flusso del processo o trasmettendo data e messaggi. I principali connecting objects sono sequence flow, message flow e association.
Sequence Flow
Un sequence flow definisce l’ordine in cui attività, eventi e gateway vengono eseguiti in un processo. Mostra la progressione logica dei task da un passo al successivo.
Rappresenta l’ordine in cui i task devono essere eseguiti, raffigurato come una linea retta che termina con una freccia. Può indicare un percorso condizionale o predefinito.
- Esempio: Un sequence flow collega un task “Invia Domanda” a un task “Rivedi Domanda”, indicando che la revisione avviene dopo l’invio.
- Tipi di Sequence Flow:
- Normal Sequence Flow: Il flusso predefinito tra attività.
- Conditional Sequence Flow: Un sequence flow che procede solo se una condizione specifica è soddisfatta (indicato da un piccolo rombo).
- Default Sequence Flow: Il flusso di riserva se nessuna condizione è soddisfatta (indicato da una barra diagonale al punto di partenza).
- Caso d’Uso: Usa i sequence flow per guidare la progressione passo-passo del processo, garantendo che le attività vengano eseguite in un ordine specifico.
Message Flow
Un message flow rappresenta la comunicazione tra diversi partecipanti o processi, tipicamente quando fanno parte di pool diversi. È utilizzato per mostrare lo scambio di informazioni tra processi, che potrebbero operare indipendentemente.
Il connettore message flow illustra la comunicazione tra diversi pool o attraverso confini organizzativi, come dipartimenti. Non è destinato a collegare eventi o attività all’interno dello stesso pool. Questo connettore è rappresentato da una linea tratteggiata, che inizia con un cerchio e termina con una freccia aperta.
- Esempio: Un message flow collega un task “Invia Fattura” in un pool (che rappresenta il fornitore) a un task “Ricevi Fattura” in un altro pool (che rappresenta il cliente), indicando che la fattura è inviata tra di loro.
- Caso d’Uso: Usa i message flow per rappresentare la comunicazione tra diverse entità o partecipanti business (rappresentati come pool separati), come quando un’azienda invia una richiesta d’ordine a un’altra.
Association
Un’association collega artefatti (come data object, annotazioni di testo o gruppi) con flow object (attività, eventi, gateway) per fornire contesto o chiarire la relazione tra gli elementi. Le Association non influenzano la sequenza del processo ma sono utilizzate per documentazione e dettagli aggiuntivi.
Questo elemento è raffigurato come una linea tratteggiata, senza freccia né cerchio. Serve a collegare un evento, un’attività o un gateway con un artefatto.
- Esempio: Un’association collega un task “Genera Report” a un “Documento Report” (un data object), indicando che questo task produce il documento.
- Tipi di Association:
- Normal Association: Collega elementi come task a data object o annotazioni.
- Directional Association: Mostra il flusso di data da o verso un task (indicato con una freccia).
- Bi-Directional Association: Indica relazioni bidirezionali tra elementi (indicato con due frecce).
- Caso d’Uso: Usa le association quando desideri collegare informazioni aggiuntive (ad es., data object, annotazioni di testo) a task o eventi senza influenzare il flusso del processo.
Punti Chiave sugli Connecting Objects
- Sequence Flow: Definisce l’ordine dei task o eventi all’interno di un singolo processo (all’interno di un pool). Usato per specificare il flusso di attività, condizioni e decisioni.
- Message Flow: Rappresenta la comunicazione tra diversi partecipanti o processi (attraverso diversi pool). Usato quando i processi scambiano informazioni o attivano azioni in un altro processo.
- Association: Collega informazioni aggiuntive come data, documenti o annotazioni alle attività, fornendo contesto o spiegazione ma non controllando il flusso del processo.
Esempio
Immagina un processo per gestire gli ordini dei clienti:
- Sequence Flow: Dopo aver ricevuto un ordine, il sistema gestisce l’ordine e poi lo invia per la consegna. Ogni fase (ricezione, elaborazione, consegna) è collegata da sequence flow.
- Message Flow: Una volta elaborato l’ordine, un messaggio viene inviato a una società di spedizioni esterna per gestire la consegna. Questa comunicazione è rappresentata da un message flow tra le due entità.
- Association: Un data object “Ordine Cliente” è associato al task “Ricevi Ordine” per indicare che questo task gestisce i data dell’ordine.
Riepilogo
- Sequence Flow: Gestisce l’ordine delle attività all’interno di un singolo processo.
- Message Flow: Facilita la comunicazione tra diverse entità o pool.
- Association: Collega artefatti come data o annotazioni agli elementi del flusso, fornendo contesto aggiuntivo.
Questi connecting objects sono fondamentali per definire come i task e gli eventi sono collegati, come i data si muovono nei processi e come i processi interagiscono tra loro in un modello BPMN.