I principi gestionali sono costituiti da quegli strumenti e quelle politiche di gestione che facilitano l’ottimizzazione e l’integrazione dei flussi di attività e informazioni lungo i processi aziendali.

Primo tra i principi gestionali è certamente la documentazione dei processi, con la quale si procede a rappresentare i processi in documenti strutturati attraverso linguaggi di modellazione, raccoglierli in un luogo univoco per condividerli capillarmente nell’organizzazione. Gli obiettivi della documentazione sono immediati: comprendere a fondo i processi e identificare aree di miglioramento, formalizzare il loro funzionamento e omogeneizzare i comportamenti, identificare ruoli e responsabilità dei vari attori coinvolti.

In questo contesto la mappatura e la modellizzazione dei processi ricoprono un ruolo fondamentale, supportato dall’adozione di linguaggi di rappresentazione che consentono di descriverli in modo univoco. Tra questi presentiamo lo standard Business Process Model and Notation (BPMN)[1], linguaggio grafico basato su diagrammi, oggi sviluppato e mantenuto dall’Object Managament Group (OMG), giunto alla versione 2.0.2[2]

BPMN offre una notazione grafica di facile comprensione e accessibile sia per chi svolge l’attività di process design sia per gli attori che si troveranno coinvolti nelle relative attività, ed è in grado di rappresentare scenari complessi con un dettaglio sufficientemente articolato da permetterne l’interpretazione da parte di software in grado di supportare la fase di esecuzione dei processi, grazie alla conversione immediata nel linguaggio di esecuzione BPEL (Business Process Execution Language)[3].

BPMN offre 5 categorie base di elementi con i quali modellare i processi:

  • Flow objects: gli oggetti di flusso sono gli elementi principali per definire il comportamento di un processo aziendale. Ve ne sono 3 tipi:
     
    • Activities: una attività è un lavoro in genere che viene svolto durante un processo; può essere atomico, quindi un task non scindibile, o non-atomico, quindi un sottoprocesso (sub-process) che rappresentato in modalità collapsed nasconde la complessità della sua struttura interna;

Esempi di attività: task e sub-process

 I sottoprocessi possono essere riutilizzati in una ottica modulare attraverso dei global subprocess, identificati nel processo con un bordo più marcato (call activities).

Alcuni sottoprocessi possono essere definiti come transazioni (transactions) utilizzando un bordo a doppia linea, beneficiando di meccanismi di cancellazione e compensazione tipici dei paradigmi transazionali.

Le attività presentano frequentemente eventi a loro associati, al cui verificarsi si hanno una eventuale interruzione della stessa attività, una modifica del flusso del processo e/o l’esecuzione di altre attività di compensazione relative all’attività.

Evento associato ad attività

    • Events: un evento è qualcosa che avviene durante l’esecuzione di un processo e ne condiziona il flusso; solitamente è attivato da un trigger (causa) e in questo caso parliamo di evento catching, oppure produce un result (effetto), e parliamo di evento throwing. A seconda di quando intervengono nel flusso, possiamo distinguere eventi start, intermediate, ed end.
      Nel caso di eventi associati ad attività o sotto-processi possiamo avere anche eventi non-interrupting che definiscono un nuovo flusso senza interrompere il sotto-processo o attività al quale l’evento è associato.

Tipologie di eventi BPMN, simboli e varianti

In estrema sintesi, gli eventi in figura operano come segue:

- none: indicano l’avvio/conclusione di un (sub)processo;
- message: indicano che un messaggio è giunto da un partecipante del processo (se catching) oppure è generato dall’evento verso un partecipante (se throwing);
- signal: rilevano o diffondono un segnale per tutti gli attori;
- conditional: rilevano il verificarsi di una condizione;
- timer: rilevano il verificarsi di una  condizione temporale;
- error: rilevano o emettono una condizione di errore;
- cancel: gestiscono l’annullamento effetti di una transazione;
- compensation: compensano effetti di attività già svolte;
- link: collegano due sezioni del processo nel diagramma;
- terminate: cessano tutte le attività del processo;
- multiple (anche parallel): evento con più trigger associati;
- escalation: comunica e riporta dal sottoprocesso al processo;

    • Gateways: controlla come il flusso della sequenza (sequence flow) si comporta quando deve divergere o convergere; interviene quindi ogni volta che troviamo ramificazioni, biforcazioni e riunioni di percorsi; in dettaglio abbiamo:
      • Exclusive: crea percorsi alternativi nel flusso del processo: solo un percorso viene scelto in base a condizioni note al transito dal gateway;

Esempio di processo con gateway esclusivo[4]

      • Parallel: crea percorsi paralleli nel flusso del processo; alla convergenza del flusso, il gateway viene superato quando tutti i percorsi sono stati completati;

Esempio di processo con gateway parallelo

      • Inclusive: crea uno o più percorsi possibili nel flusso del processo in base a condizioni note; alla convergenza, il gateway viene superato quando tutti i percorsi attivati sono stati completati;

Esempio di processo con gateway inclusivo

      • Event-based: crea percorsi alternativi nel flusso del processo in base ad eventi associati; il primo evento che si verifica determina la scelta esclusiva del percorso;

Esempio di processo con gateway event-based

 

      • Complex: utilizzato in scenari che utilizzano logiche articolate, da esplicitare per ogni gateway complesso, per la creazione o la convergenza di flussi;

Esempio di processo con gateway complesso

 

 

  • Data: rappresentano informazioni utilizzate o prodotte nel processo; in particolare forniscono informazioni circa le attività che devono essere eseguite o su cosa producono; in generale i data object sono indicati con il simbolo ,  specializzato in per i dati di input e  per i dati in output al processo. Per le sorgenti/destinazioni dati che persistono oltre la vita del processo, si utilizza il simbolo .

Esempio di data object associato in input/output a due attività[5]

 

 

  • Oggetti di connessione (Connecting objects): connettono i flow object tra loro o con altre informazioni; in particolare abbiamo:
    •  Flusso di Sequenza (Sequence Flow): mostra l’ordine nela quale le attività saranno eseguite in un processo;
    •  Flusso di messaggio (Message Flow): mostra il flusso di messaggi tra due partecipanti al processo preposti rispettivamente all’invio e alla ricezione di un certo messaggio;
    •  Associazione (Association): associa informazione e/o artefatti con elementi di flusso, con l’eventuale indicazione della direzione del flusso informativo;

 

  • Swimlanes: contenitori grafici utilizzati per suddividere insiemi di attività nel processo secondo partecipanti e ruoli; in dettaglio abbiamo:
    • Pools: partizioni che rappresentano un partecipante al processo (entità/ruolo di business che controlla o è responsabile di un business process, e.g. funzione/divisione, azienda, cliente, etc.); possono solo inviare/ricevere messaggi verso altre pool;
    • Lanes: partizioni utilizzate per organizzare le attività all’interno di un pool, suddividendolo orizzontalmente o verticalmente; rappresentano solitamente ruoli interni, sistemi, o uffici;

Esempio di suddivisione per partecipanti in 2 pool, una suddivisa in 2 lane per ruoli[6]

 

  • Artefatti (Artifacts): forniscono informazioni addizionali sul processo senza influenzarne il flusso, per scopo di documentazione e con finalità esplicative. Abbiamo in particolare:
    • Gruppo (Group): raggruppa informalmente elementi di una certa categoria, anche attraverso più pool, per identificare una parte del diagramma senza impattare sul flusso;
    • Annotazione (Text Annotation): meccanismo per fornire informazioni testuali aggiuntive, attraverso una associazione, ad un elemento del diagramma;
 

[1] Business Process Model and Notation, OMG, https://www.omg.org/bpmn

[2]Business Process Model and Notation (BPMN) Version 2.0.2, December 2013, https://www.omg.org/spec/BPMN/2.0.2/PDF

[3]Web Services Business Process Execution Language Version 2.0, OASIS Standard, http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html

[4] Camunda BPMN 2.0 Symbol Reference, https://camunda.com/bpmn/reference/

[5] Business Process Model and Notation (BPMN) Version 2.0.2, December 2013,  https://www.omg.org/spec/BPMN/2.0.2/PDF, p. 223

[6] Camunda BPMN 2.0 Symbol Reference, https://camunda.com/bpmn/reference/