• Non ci sono risultati.

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).

Documenti correlati