2.3 Linguaggi di modellazione dei processi
2.3.4 Business Process Model Notation [18]
Il BPMN è un linguaggio definito dall’OMG6
, e accettato universalmente, che per- mette di ottenere diagrammi di flusso con tutte le informazioni necessarie ad analiz- zare, testare ed eseguire un processo eliminando il gap esistente tra la rappresenta- zione tramite diagramma del processo e la sua descrizione con un linguaggio di ese- cuzione.
In questa notazione si considerano i processi suddivisibili in:
privati, cioè interni, relativi a ben definite organizzazioni. Questo significa che il flusso di esecuzione non può uscire dal pool ma pool diversi possono scambiarsi in- formazione attraverso messaggi.
Pubblici
6 Object Management Group: è un'organizzazione fondata nel 1989 e sostenuta da oltre 800 membri, tra vendi-
tori di sistemi informativi, sviluppatori di software e gli utenti. Essa promuove la teoria e la pratica della tecnolo- gia object-oriented nello sviluppo di software. [31]
35 Globali o di collaborazione in cui più processi astratti, che identificano le intera- zioni tra processi privati, comunicano tra loro e i punti di contatto sono rappresentati dalle attività.
Gli elementi principali messi a disposizione da questo tipo di linguaggio per la co- struzione dei diagrammi di processo (BPD) e sufficienti alla creazione di semplici modelli di processi aziendali sono:
1) Oggetti di flusso che comprendono a loro volta:
Attività si tratta della rappresentazione di ogni azione svolta all’interno del processo. Si distingue tra task che si usano quando il processo non può essere di- viso in ulteriori sub-processi e rappresentano quindi l’azione elementare e sub- Process, Embedded o Indipendend, che possono essere suddivisi in più attività e- lementari. I task possono essere di diverso tipo: “Human-based”, di ricezione o invio servizio ecc.
Figura 7 Activities
A questi si aggiungono i Transaction cioè i sottoprocessi che sono eseguiti con un particolare protocollo, i Loop Task in cui un’attività si ripete finché non viene soddisfatta una certa condizione e i Multiple Instance Task in cui il loop avviene in parallelo.
Eventi rappresentano qualcosa che accade in un processo che può essere scatenato da una precisa causa, un trigger, un messaggio, un timer e può avere o meno un certo risultato. Si distinguono tre tipi di eventi a seconda della posizione che hanno nel diagramma e si parla in particolare, di evento di inizio (start), in- termedio (intermediate) e di fine (end) tutti rappresentati da cerchi ma con un co- lore diverso. Inizio Intermedio Fine Figura 8 Event Task Sub-Process
36 Gli Start Event sono solo di tipo Catching cioè intercettano l’evento, quelli di End possono solo generarlo, sono quindi Throwing, mentre quelli Intermediate posso- no sia generarlo che intercettarlo.
L’evento intermedio viene inserito tra uno di inizio e uno di fine e, anche se va a modificare il flusso del processo, non può né iniziarlo né terminarlo.
I trigger che possono far accadere l’evento sono riassunti in figura:
Figura 9 Trigger Attivatori di Event
Diramazioni o gateways si tratta di punti in cui arrivano più flussi di diver- se attività o da cui questi partono. Se ne distinguono tre tipi a seconda che siano utilizzati come punto per “prendere una decisione” o come semplici biforcazioni dei flussi di diverse attività.
Si distingue innanzitutto tra gateway inclusivo o esclusivo: quello esclusivo indica una “decisione” perché solo uno dei rami presenti alla fine potrà essere percorso mentre quello inclusivo comprende più ramificazioni tutte percorribili. Ci sono poi i gateway complessi dove la decisione della diramazione del flusso è presa su basi complesse e non sulla base di dati e/o eventi come nei due casi precedenti e ci possono essere più uscite. Infine troviamo quelli paralleli che spesso non vengono usati perché si preferisce far uscire direttamente più connettori dal task visto che il risultato non cambia.
37 2) Oggetti di connessione:
Connettori in realtà non sono un vero e proprio elemento ma permettono di collegare gli elementi descritti sopra tra loro, cosa fondamentale per ottenere il diagramma finale. Si hanno a disposizione diversi tipi di connettori di flusso a se- conda del tipo di collegamento che vogliamo creare. In particolare si parla di con- nettore sequenziale che ci permette di stabilire l’ordine delle attività e degli even- ti, di connettore condizionale che contiene una condizione che indica la direzione che prenderà il flusso, di Messaggio per indicare che due attività o entità di pro- cessi diversi si scambiano messaggi, informazioni, e di Associazione per aggiun- gere informazioni, indicare anche solo semplici legami tra dati o ingressi e uscite delle attività. Infine si parla di connettore di Default che sarà usato solo se le altre condizioni sugli altri flussi in uscita non sono soddisfatte.
Figura 11 Associazioni
3) Swimlanes che comprendono
Pool rappresenta l’organizzazione in cui si svolge il processo
Lane si definiscono quando la funzione organizzativa coinvolta non è uni- ca. Servono a caratterizzare le attività in base alle diverse categorie, attori auto- nomi, partecipanti alla stessa organizzazione permettendone un’assegnazione a ruoli specifici all’interno di essa.
Figura 12 Swimlane P ool name Pool Lane Name Lane Flusso di Sequenza Flusso Condizionale Flusso di Default Message Associazione
38 4) Artefatti
Infine possono essere aggiunti ad un diagramma degli Artefatti che possono specifi- care il tipo di dati necessari per una certa attività, per creare raggruppamenti di og- getti o aggiungere annotazioni che hanno come unico scopo quello di migliorare la comprensione del diagramma in modo che sia facilmente leggibile a tutti.