Business Process Model and Notation
Nel corso degli anni diverse sono state le iniziative per proporre nel conteso del Business Process Management una notazione per modellare i processi di business dell’organizzazione, comunemente chiamati anche workflow, mappe di processo, flusso di controllo, activity diagram [1].
Diagrammi informali e formali
A grandi linee i modelli dei processi si possono dividere in due grandi classi: informali e formali. I primi sono quelli realizzati principalmente dalle persone di business, che tendono ad astrarre con lo scopo di rappresentare solo gli elementi di loro interesse e quindi comprendere, chiarire, semplificare, sottolineare, comunicare [1].
All’estremo opposto ci sono i diagrammi dei dipartimenti IT che devono essere molto formali perché devono servire da specifica agli sviluppatori o anche essere automaticamente tradotti in codice eseguibile dai sistemi software di automazione dei processi, i Business Process Management System (BPMS).
Lo standard BPMN
Lo standard Business Process Model and Notation (BPMN) è la notazione di maggior successo ed oggi maggiormente diffuso. In questo articolo andiamo ad approfondire questo standard più volte citato nei nostri articoli dedicati al Business Process Management.
Un po’ di storia…
Come detto, nel corso degli anni diverse sono state le iniziative per definire uno standard per modellare i processi di business delle organizzazioni. Nel 2002, un gruppo di aziende software e consulenti diedero vita alla Business Process Management Initiative (BPMI) avente lo scopo, tra gli altri, di creare una notazione per specificare i processi di business delle organizzazioni: nacque la prima versione del Business Process Model and Notation, in sigla BPMN.
Nel 2005 il BPMI confluisce nell’Object Management Group, Inc. (OMG) che è un consorzio di fornitori, utenti e agenzie governative fondato nel 1989 per sviluppare standard per il mondo del software object-oriented. L’OMG aveva in precedenza sviluppato una estensione dell’UML Activity Diagram per definire i processi di business, ma a questo preferisce il BPMN in quanto ritenuto più semplice e intuitivo per tutti gli attori coinvolti, oltre a risultare più utile in ambiente web.
Oggi il BPMN è alla v. 2.02 (dicembre del 2013) ed è lo standard più usato a livello internazionale per la modellazione dei processi di business.
Obiettivo
Il principale obiettivo del BPMN è quello di fornire una notazione che sia comprensibile dal management aziendale, dai business analyst che nelle fasi di analisi devono sviluppare i modelli dei processi, dal personale IT, che deve progettare e implementare i modelli nei sistemi software e, in ultimo, dalle persone di business che devono gestire e monitorare le perfomance dei processi. Come si comprende, il BPMN vuole creare un ponte per colmare il gap tra l’attività di business process analysis & design e quella di process implementation.
BPMN mette assieme “il meglio di” del mondo relativo alle organizzazioni (Flow Chart, Role Activity Diagram, etc.) e del mondo informatico (Flow Chart, UML Activity Diagram, etc.).
BPMN serve per modellare solo i processi di business: questo significa che altri modelli che pure possono essere utili all’organizzazione sono out of scope per BPMN. Quindi non rientrano nell’ambito del BPMN:
- strutture organizzative, ruoli e responsabilità
- scomposizioni funzionali
- modelli di dati e informazioni
- regole di business
- modelli delle strategie aziendali
- Business Process Architecture
- architetture IT
Concetti ed elementi di base
BPMN fornisce una serie di elementi grafici per realizzare i Business Process Diagram (BPD) che definiscono, in forma grafica di flow chart, le azioni, i flussi e i comportamenti di un processo. Nei sistemi software di Business Process Management System un diagramma BPMN viene automaticamente tradotto in codice eseguibile.
I diagrammi realizzati in BPMN sono di semplice lettura, anche perché gli elementi grafici che lo costituiscono sono classificabili in solo quattro principali categorie:
- Flow Objects (“oggetti del flusso”): Events, Activities, Gateways
- Connecting Objects (“connettori”): Sequence Flow, Message Flow, Association
- Swim Lanes (“partizioni”): Pool, Lane
- Artifacts (“manufatti”): Data Object, Group, Annotation
Andiamo a presentare gli elementi di base di ciascuna delle categorie, quelli che costituiscono gli elementi core del BPMN, che sono sufficienti e utili alle persone di business per modellare i processi di business di più alto livello nella gerarchia dei processi, ma che allo stesso tempo permettono di modellare molti scenari a qualsiasi livello di astrazione.
Flow Objects
Sono i principali elementi per descrivere il come gli eventi, le attività e le decisioni di un processo si presentano in un flusso di processo e consistono di tre elementi core: Events, Activities e Gateways.
Events
Gli eventi rappresentano l’interazione tra il business process e il suo ambiente. Rappresentano qualcosa che accade nel mondo reale, hanno un significato di business e non hanno una durata (al contrario delle attività). Gli eventi influenzano il flusso di un processo e solitamente hanno un trigger e un impatto. In generale richiedono o prevedono una risposta. Gli eventi sono di tre tipologie: Start Event, Intermediate Event, End Event.
Lo Start Event indica un evento che dà inizio ad un processo; in altri termini indica un accadimento nel mondo reale che crea una nuova istanza del processo di business.
Un Intermediate Event è usato per indicare un evento che accade dopo che un processo è iniziato e prima che sia terminato.
Lo End Event serve a indicare un evento che segnala la possibile conclusione di un processo.
Activity
L’attività rappresenta un lavoro che è realizzato nel corso di un processo di business. Le attività hanno una durata e impiegano e producono risorse. Un’attività può essere atomica o non atomica (composta): Task o Sub-Process.
Un Task è usato quando il lavoro rappresentato dall’attività non è scomposto a un ulteriore livello di dettaglio. Un task è rappresentato genericamente da un rettangolo con gli angoli arrotondati, ma il BPMN mette a disposizione degli altri elementi grafici (marker) per rappresentare dei tipi specializzati di Task:
- Message Task: per inviare/ricevere un messaggio a/da un partner;
- User Task: è un task che è realizzato manualmente;
- Service Task: è un task che è realizzato automaticamente, per esempio da un sistema software.
Un Sub-Process è una attività composta il cui dettaglio può essere specificato in termini di Activities, Gateways, Event e Sequence Flow. Un collapsed Sub-Process è un processo i cui dettagli non sono visibili nel diagramma. Un segno “+”, posizionato centralmente in basso, indica che l’attività è un Sub-Process. Ci sono due tipi di Sub-Processes: Embedded e Independent (riusabili).
I Sub-Process vengono usati con lo scopo di rendere più semplice il modello e quindi renderlo più leggibile e ridurre le probabilità di errore. Una regola pratica dedotta dalla esperienza suggerisce che se un modello supera i 30 processi, allora è facile che il modello sia complicato da leggere: quindi bisogna cercare di riassumere alcune parti del processo in Sub-Process.
I Sub-Process vengono usati anche quando si vuole rappresentare la gerarchia dei processi dell’organizzazione tramite diversi modelli, ciascuno con un livello di astrazione sempre maggiore man mano che si scende di livello.
Gateway
I Gateways sono usati per definire i controlli del flusso di lavoro e come questi convergono o divergono in un processo; in altri termini, un rombo rappresenta un posto dove è necessario un controllo. BPMN, oltre al classico grafico del rombo per indicare una decisione esclusiva propone una estensione per definire tutti i tipi di controllo che possono avvenire durante il flusso di lavoro. Ciascun tipo di Gateway ha un indicatore interno (marker) per indicare il tipo di Gateway usato.
Un Exclusive Gateway (decision) è usato per creare dei percorsi alternativi in un flusso di processo: può essere preso un solo percorso. La decisione può essere vista come una domanda a cui si deve dare una risposta in un determinato momento nell’esecuzione del processo. Ad ogni domanda è associato un set alternativo di risposte e ad ognuna di queste è associata una Condition Expression.
Inclusive gateway è usato per creare dei percorsi alternativi ma anche paralleli in un flusso di processo. A differenza dell’Exclusive Gateway, sono valutate tutte le Condition Expressions e la valutazione positiva di una condizione non esclude la valutazione delle altre Condition Expression e quindi possono essere attraversati più percorsi contemporaneamente.
Un Parallel Gateway è è usato per sincronizzare (combinare) percorsi di processo paralleli. Un Parallel Gateway crea percorsi paralleli senza la valutazione di una condizione: tutti i percorsi che sono in uscita dal gateway sono attraversati contemporaneamente. Un Parallel Gateway con più percorsi in ingresso indica che questi devono essere tutti percorsi prima di poter proseguire con il flusso di processo.
Connectig Objects
I connettori sono principalmente di tre tipi: Sequences, Messages e Associations.
Sequence Flow
Un Sequence Flow è usato per indicare l’ordine con cui si presentano gli eventi e in cui le attività sono realizzate in un processo.
Message Flow
Un Message Flow è usato per indicare il flusso di un Messaggio tra due partecipanti al processo che sono predisposti per inviarli e riceverli. In BPMN, i Pool, che vedremo di seguito, rappresenteranno i partecipanti. Quindi i Messagge Flow non devono connettere due oggetti nello stesso Pool.
Association
Una Association è usata per associare dati, informazioni o Artifact a un elemento grafico del BPMN. Mediante l’uso di una freccia si può indicare una direzionalità: la freccia è verso l’Artifact per indicare un output, è verso il flusso per indicare un input; l’associazione bidirezionale è usata per indicare che quanto associato è sia input che output. Potrebbe non essere indicata nessuna direzionalità quando l’Artifact o il testo è associato a una sequenza o messaggio dove è già chiara la direzione.
Swim Lanes
Le Swim Lanes servono per indicare le risorse e gli attori che partecipano alle varie attività del processo e sono di due tipi: Pool e Lane.
Pool
I Pool rappresentano i partecipanti al processo e tipicamente corrispondono ad attori appartenenti a diverse organizzazioni: i business partner coinvolti nel processo di business. I partecipanti possono essere “business role” (p.e.: “seller” e “buyer”) ma anche entità organizzative (p.e.: Azienda, Fornitore).
Le interazioni tra Pool avvengono tramite Message Flow. I Sequence Flow non possono attraversare i confini di un Pool. Un Pool può avere dei dettagli interni nella forma del processo che sarà eseguito oppure può non avere dettagli (Collapsed Pool), può essere una “black box”, in questo caso vuol dire che non è rilevante conoscere i dettagli del processo realizzato all’interno di quel pool.
Lane
Un Pool può contenere una o più Lanes per attribuirne le attività a un responsabile. Spesso rappresentano i ruoli o i dipartimenti all’interno di una organizzazione (p.e.: Manager, Employee, Finanza&Controllo, Commerciale). Se quindi i Pool rappresentano spesso della classi di risorse che partecipano a un processo, le Lane consento di partizionare questi in sotto-classi.
I Sequence Flow possono attraversare i confini delle Lane. La relazione che può legare Message Flow, Sequence Flow, Pool e Lane è ben definita dalla figura 12.
Artifact
Gli Artifact consentono di indicare gli elementi di business, fisici o digitalizzati, su cui il processo lavora e di dare delle informazioni aggiuntive relative al processo. Ci sono tre Artifacts in BPMN: Annotation, Data Objects e Groups ma possono essere sviluppati e usati un insieme di Vertical Market Artifacts.
Annotation
Le Text Annotations sono un meccanissmo che consente a chi modella il processo di fornire informazioni aggiuntive a beneficio di chi leggerà il diagramma. Le Text Annotation possono essere connesse ad un’oggetto del diagramma mediante una Association.
Data Object
I Data Objects sono Artifacts che mostrano come dati e documenti sono usati dal processo; in altri termini ci permettono di specificare quali dati il processo richiede e/o che cosa produce. Non hanno nessuna influenza diretta su Sequence Flow o Message Flow del processo ma forniscono solo una informazione su cosa il processo fa. I Data Object possono essere usati per definire input e outputs di attività. Un Data Object può rappresentare un singolo oggetto o una collezione di oggetti. A un Data Object può essere associato uno “stato” che può essere cambiato o aggiornato durante il processo.
Group
I Group sono Artifact usati per evidenziare determinate sezioni di un diagramma senza influenzare il flusso di lavoro del processo. I Group possono attraversare Lane e Pool.
Conclusioni
Abbiamo visto brevemente gli elementi core dello standard Business Process Model and Notation (BPMN) che è oggi la notazione di maggior successo e maggiormente diffusa nel mondo del Business Process Management nonché quella in genere supportata dai software vendor dei sistemi di automazione dei processi.
Come detto all’inizio, in questo articolo abbiamo voluto dare solo una introduzione al BPMN e ai suoi elementi di base che già da soli sono però sufficienti a modellare molti processi di business dell’organizzazione in maniera grafica, semplice e intuitiva, sia per le persone di business che per i tecnici informatici,.
Oltre gli elementi di base, il BPMN mette però a disposizione diversi altri elementi grafici per modellare le realtà più complesse. Inoltre la versione 2.0 di BPMN introduce un meccanismo per estendere gli elementi standard con attributi aggiuntivi che consentono di soddisfare specifiche necessità di domini verticali pur mantenendo valida la parte core del BPMN.
Sul web sono presenti diverse guide al BPMN e anche strumenti di modellazione scaricabili gratuitamente messi a disposizione dei principali software vendor che hanno aderito allo standard.
Sintetico ma esauriente è anche il sito dell’OMG dedicato al BPMN [7].