ICT supporto ai process
Capitolo 3: Business Process Model and Notation
3.1 Componenti grafiche
Le quattro categorie base di elementi del BPMN sono: o Forme (Flow objects);
o Dati (Data);
o Connettori (Connecting objects); o Reparti (Swimlanes);
o Elementi accessori (Artifacts).
Categorie di elementi Elementi Figura 9. Processo di vendita e consegna di una pizza a domicilio.
Flow Objects • Events • Tasks • Gateways
Data + Data Objects + Data Inputs + Data Outputs + Data Stores
Connecting Objects Ø Sequence Flow
Ø Message Flow Ø Association Swimlanes v Pools v Lanes Artifacts § Group § Text annotation
Figura 10. Gli elementi del BPMN
In particolare, come si vede in Fig. 17, gli oggetti di flusso sono divisi in: • Eventi (Events);
• Attività (Tasks); • Controlli (Gateways). I dati in:
+ Oggetti di dati (Data Objects); + Input (Data Inputs);
+ Output (Data Outputs); + Storage di dati (Data Stores). Gli oggetti di connessione in:
Ø Flusso di sequenza (Sequence Flow); Ø Flusso di messaggio (Message Flow); Ø Associazione (Association).
Le swimlanes si dividono in: v Reparti (Pools); v Corsie (Lanes).
Infine gli artefatti, che vengono utilizzati per fornire informazioni ulteriori circa il processo, sono:
§ Gruppi (Group);
§ Annotazioni (Text annotation).
Fra i suddetti oggetti grafici, si mostrano nel dettaglio quelli più importanti.
Events
Figura 11. Tre macrotipologie di eventi
Un Evento (Fig. 17) è definito da un cerchio e rappresenta qualcosa che accade durante il corso di un processo aziendale. Questi eventi influiscono nel flusso di processo e usualmente hanno una causa scatenante e un impatto sul processo. Gli eventi sono cerchi con i centri vuoti per permettere, tramite differenti icone al loro interno, di identificare differenti cause o risultati.
Gli eventi possono avere una dimensione di flusso e una dimensione riguardante la loro tipologia; per la prima dimensione, essi si dividono in:
Inizio (linea di circonferenza fine);
Intermedio (doppia linea di circonferenza); Fine (linea di circonferenza spessa).
Per quanto riguarda la loro tipologia, essi possono essere di tipo catching se reagiscono a un qualche trigger che li metta in esecuzione oppure possono essere di tipo throwing se creano un qualche risultato.
Ogni tipo di evento è indicato da un simbolo che ne identifica la funzione: gli eventi di
catching vengono indicati con il simbolo non riempito, mentre quelli di throwing con il
simbolo riempito. In Fig. 19 si mostrano le varie tipologie di eventi.
In particolare:
• eventi di tipo “message”: indicano che un messaggio è arrivato da parte di un partecipante oppure è il risultato dell’evento;
• eventi di tipo “timer”: sono solo di tipo catching e rimangono in ascolto di un trigger temporale che decide il momento della loro esecuzione;
• eventi di tipo “error”: indicano che si è verificato un errore all’interno del flusso di processo e possono essere solo intermedi o di fine;
• eventi di tipo “cancel”: vengono utilizzati per annullare gli effetti di una transazione di business definita all’interno di un sotto-‐processo;
• eventi di tipo “compensation”: vengono utilizzati per la gestione delle eccezioni che possono verificarsi all’interno di un processo e servono per effettuare compensazioni;
• eventi di tipo “conditional”: questi eventi si attivano quando una condizione diventa vera;
• eventi di tipo “link”: rappresentano un meccanismo grazie al quale è possibile collegare due sezioni di un processo e vengono utilizzati per creare situazioni cicliche oppure per evitare lunghe sequenze di flusso;
• eventi di tipo “signal”: viene inviato un segnale all’interno del processo che viene diffuso in modalità broadcast a tutti i partecipanti, a differenza dei messaggi che hanno una sorgente e un destinatario definiti;
• eventi di tipo “terminate”: vengono utilizzati per terminare immediatamente tutte le attività all’interno di un processo;
• eventi di tipo “multiple”: indicano l’esistenza di molteplici trigger riguardanti l’evento.
Tasks
Una Attività (Fig. 20) rappresenta una delle generiche fasi elementari nelle quali può essere scomposto un processo. Le attività possono essere a loro volta atomiche o non atomiche, ossia composte, a seconda che possano o meno essere ulteriormente scomposte in passi più semplici: nel primo caso sono dette Compiti (Task), nel secondo caso Sotto- processi (Sub-Process, Fig. 21).
Un Task è un’attività atomica inclusa all’interno del processo e viene rappresentata graficamente
mediante un rettangolo con gli angoli arrotondati tracciato con una linea sottile; si fa ricorso al task quando l’attività all’interno del processo non deve essere dettagliata ulteriormente.
Un task può rappresentare la meta di un flusso di sequenza e può avere flussi di entrata multipli, paralleli o esclusivi; se si hanno più flussi in entrata, questi sono considerati incontrollati. Ciò significa che, quando un token (segnale) arriva da uno dei percorsi, si istanzierà il task senza attendere l’arrivo dei token provenienti dagli altri percorsi. All’arrivo di un altro token (dallo stesso o da un altro processo), sarà creata un’altra istanza separata del task. Se il flusso deve essere controllato, questo deve venire convogliato in una forma di controllo antecedente il task.
Il task può essere l’origine di un flusso di sequenza e può avere più flussi in uscita; questo implica che si sta creando un percorso parallelo separato per ogni flusso.
Un task può fungere da meta per un flusso di messaggio e può essere l’origine di uno o più flussi di messaggio uscenti.
Gateways
Un Controllo (Fig. 22) è indicato dalla classica forma romboidale che nella mappatura tradizionale è impiegata per rappresentare le decisioni; nel BPMN ha un impiego più articolato, perché serve per controllare la divergenza e la convergenza della sequenza del flusso.
Anche qui icone differenti all’interno del rombo specificano il tipo di azione che i gateways hanno sul flusso. I controlli sono elementi di modellazione usati per regolare il flusso di sequenza nelle convergenze e divergenze all’interno del processo. Il termine “controllo” implica la presenza di un meccanismo di regolazione che consente o nega il passaggio lungo la forma; ciò significa che i token in arrivo al controllo possono essere uniti e/o divisi secondo la regola indicata nel controllo stesso.
Esistono diversi tipi di controlli, come mostrato in Fig. 23 e descritto successivamente, e il loro comportamento determina quante porte sono disponibili per proseguire il flusso: ci saranno tante porte quanti i flussi di sequenza in uscita dal controllo, ma quelle realmente disponibili all’uscita dipendono dal soddisfacimento o meno della condizione oggetto del controllo. È importante sottolineare come i controlli definiti nel BPMN possono replicare tutti i tipi di comportamento dei flussi di sequenza dei processi aziendali.
I diversi tipi di controllo sono i seguenti:
ü AND: biforcazioni e unioni (ogni tipo di controllo ha effetto sia con i flussi in
entrata sia con quelli in uscita);
ü XOR: decisione (e unione) esclusiva, sia basata sui dati che sugli eventi;
ü OR: decisione (e unione) inclusiva;
ü Complesso: condizioni e situazioni complesse (es. valori da 3 a 5).
Figura 16 -‐ Tipologie di gateways in BPMN. Figura 23. Tipologie di gateway
Il controllo gestisce il flusso sia nelle convergenze che nelle divergenze; ciò significa che una particolare forma potrebbe avere più flussi di sequenza in entrata e/o in uscita. Un controllo può essere la meta di zero o più flussi di sequenza, sia alternativi che paralleli. Se manca il flusso entrante e l’evento iniziale non è presente, allora il comportamento divergente sarà eseguito durante l’istanza del processo.
Connecting objects
Esiste un tipo di oggetto di connessione necessario per completare qualsiasi diagramma: il flusso di sequenza.
Una freccia di tipo Sequenza (Fig. 24), flusso fisico del processo, è usata per mostrare l’ordine con cui le attività sono eseguite nel processo. Ogni connettore ha un solo punto di origine e un solo punto di arrivo e ambedue devono arrivare da uno dei seguenti oggetti:
-‐ eventi (iniziale, finale, intermedio); -‐ attività (task, sottoprocessi); -‐ controlli.
Durante la simulazione del processo, un token parte sempre da un oggetto di origine, passa attraverso una sequenza e termina nell’ oggetto di arrivo.
Invece una freccia di tipo Messaggio (Fig. 25), flusso informativo del processo, è usata per mostrare il flusso dei messaggi che due processi separati (entità o ruoli aziendali) si scambiano tra loro; questo connettore collega due entità che devono inviare e ricevere i messaggi (nel BPMN queste entità normalmente sono due pool separati).
Un connettore di messaggio deve collegare sia i pool sia gli oggetti che fanno parte del flusso ma non può connettere due oggetti appartenenti allo stesso pool.
Figura 17. Connettore flusso fisico in BPMN.
Swimlanes
Un Pool (Fig. 26) rappresenta un’entità che partecipa ad un processo e agisce come un contenitore grafico di forme, usualmente in un contesto B2B; in sostanza, un pool si comporta come un contenitore del flusso di sequenza tra le attività.
Una Lane invece è una suddivisione dentro un pool e si estende per l’intera lunghezza del pool, sia in orizzontale che in verticale.
Nei diagrammi BPMN il flusso fisico del processo non può oltrepassare i confini di un pool. Viceversa il flusso informativo, quello di tipo messaggio, può oltrepassare tali confini in quanto indica lo scambio di informazioni esistente tra due partecipanti o entità. I flussi di messaggio possono quindi varcare i limiti del pool per collegarsi alle attività appropriate. Un altro aspetto dei pool riguarda la presenza o meno di attività dettagliate al loro interno: un determinato pool può apparire come una “white box”, con i dettagli in essa, o come una “black box”, con i dettagli nascosti. Le scatole nere non possono essere associate ai flussi di sequenza, ma i flussi di messaggio possono collegarsi ai loro bordi. Nelle scatole bianche, le attività all’interno sono organizzate in flussi di sequenza.
Le lane sono usate per organizzare le attività e suddividerle, per esempio, in base alla loro funzione e al reparto in cui sono svolte. I pool sono usati quando il diagramma del processo coinvolge due entità aziendali o partecipanti, fisicamente separate nel grafico. Nei diagrammi BPMN, tuttavia, il flusso fisico del processo non può oltrepassare i confini di un pool. Viceversa il flusso informativo (quello di tipo messaggio) può oltrepassare tali confini, in quanto indica lo scambio di informazioni esistente tra due partecipanti. Nei diagrammi BPMN, come detto, il flusso fisico del processo non può attraversare i pool, ma
può passare tranquillamente attraverso i confini che delimitano le corsie (all’interno di uno stesso pool, ovviamente).