Sei sulla pagina 1di 98

BPMN

Business Process Management Notation [OMG Final Adopted Specification, February 6, 2006 ] www.bpmn.org

BPMN Overview
OBIETTIVO Fornire una notazione facilmente comprensibile da tutti gli utenti business:

Business Analyst

Crea una bozza iniziale del processo

Sviluppatori

Responsabili dellimplementazione della tecnologia che eseguir il processo

Business people

Responsabili della manipolazione e il monitoraggio dei processi

BPMN Overview
Business Process Design Process Implementation BPMN vuole colmare il gap attualmente esistente tra Business Process Design e Process Implementation proponendosi come uno strumento standard di rappresentazione

Implementatori

BPMN Notation Business users Fornitori

Clienti

BPMN Overview
BPMN si occupa di:
Definire Business Process Diagram modeling object Definire la semantica dei Business Process Diagram modeling object

Icone che consentono di modellare i business object

Specifica come gli elementi interagiscono tra di loro

BPMN Overview
Non fa parte di BPMN:
La rappresentazione delle strutture informative Le funzioni incluse nei task che rappresentano il processo Modellazione di dati e informazioni Strategie Regole di business

Uso di BPMN
La notazione BPMN consente di rappresentare 3 tipi diversi di processi:

Private business process

Abstract Business Process

Collaboration Business Process

Private Business Process


I private business process sono interni ad una specifica organizzazione

Workflow

Un esempio.....

Abstract (Public) Processes


Abstract business process permettono di rappresentare linterazione tra il private business process ed un altro processo (o partecipante)

Un esempio.....

Collaboration (Global) process


Rappresenta linterazione tra due o pi business entities.

Pu essere mostrato come due o pi processi astratti che comunicano tra loro ma con un livello di dettaglio (ovviamente) maggiore Un esempio.....

Tipi di BPD
Utilizzando Private, Abstract e Collaboration business process possibile Rappresentare processi ad un alto livello di dettaglio; Dare un maggiore livello di dettaglio ad essi ( possibile rappresentare sia lasis che il to-be) Diagrammi di processo dettagliati comprendenti linterazione con altri processi privati Diagrammi di processo dettagliati comprendenti linterazione con business entity esterne

Diversi punti di vista di uno stesso diagramma


Ciascun diagramma potrebbe avere diversi partecipanti e ognuno di essi potrebbe avere punti di vista differenti dello stesso processo

Alcune attivit potrebbero essere visibili da un solo partecipante, altre saranno invece visibili da pi partecipanti.

A run-time la differenza tra attivit interne ed esterne importante per capire come un partecipante pu interagire con una attivit.

BPMN non specifica come mettere in evidenza diversi punti di vista ma permette di dare una visione complessiva al processo.

Business Process Diagram


BPMN si propone come uno strumento

Semplice

Rappresenta tutta la complessit dei processi

Per rispondere a queste esigenze BPMN organizzata in due parti Una parte base facilmente riconoscibile da chi legge la rappresentazione del processo

A completamento della prima parte vi un set di informazioni da aggiungere per rispondere alla complessit dei processi di business senza cambiare il look & feel del diagramma

Process-Business Process nella terminologia BPMN


Business Process Insieme di attivit eseguite allinterno unorganizzazione o tra diverse organizzazioni. di

Contiene pi Process separati

Ogni process potrebbe avere il suo subprocess e potrebbe essere contenuto allinterno di un Pool.

Ciascun process indipendente dallaltro: solo i message flow possono collegare tra loro due processi

BPMN-Element
BPMN prevede 4 categorie di elementi: Sequence Flow Connecting Objects
Connettono tra loro i flow object oppure connettono i flow object con altre informazioni

Events Flow Object


Sono i principali elementi grafici che definiscono il comportamento del business process

Activities Gateway

Message Flow Association

Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)

Data Object Artifact


Forniscono informazioni addizionali sui processi

Lane

Group Annotation

BPMN: core modeling element


Flow Object Events Qualcosa che accade durante il corso di un processo di business

Impattano sul flusso del processo ed usualmente hanno una causa (trigger) ed un impatto (risultato)

Tre tipi di Events:

BPMN: core modeling element


Flow Object Activity E un generico termine per indicare una attivit svolta da un partecipante allinterno dellazienda Un attivit pu essere atomica o non atomica

Sub-Process Due tipi di attivit Task

BPMN: core modeling element


Flow Object Gateway E utilizzato per controllare la divergenza e convergenza del flusso del processo Rappresenta il branching, forking, merging, joining, path

La simbologia base :

Market interni indicano il tipo di comportamento

BPMN: core modeling element


Swimlanes Pool Simbologia Rappresenta un partecipante allinterno di un processo

Lane

E una sottopartizione allinterno della pool. Si estende per tutta la lunghezza della pool sia orizzontalmente che verticalmente

Simbologia

BPMN: core modeling element


Artifact Data Object Fornisce informazioni su cosa lattivit richiede per essere eseguita e cosa produce ma non influisce sul flusso del processo

Simbologia

Group

Raggruppa attivit che non influiscono sul flusso del processo. Si usa solo per scopi di documentazione. Tipicamente raggruppano attivit appartenenti a pool diverse Simbologia

BPMN: core modeling element


Artifact Annotation Forniscono informazioni diagramma BPMN addizionali al lettore del

Simbologia

Gli Artifact sono un elemento di flessibilit per BPMN: eventuali estensioni delle notazione possono essere realizzati operando sugli artifact.

BPMN: core modeling element


Connecting Object Sequence Flow Indica lordine in cui le attivit sono eseguite nel processo Simbologia Message Flow Indica il flusso di messaggi tra due partecipanti che possono inviare e/o ricevere messaggi Simbologia Association Si utilizza per associare informazioni (di testo o grafiche) con i flow objects Simbologia

BPMN: Regole pratiche per la connessione di elementi


La notazione BPMN fornisce anche delle regole da utilizzare per collegare tra loro i vari elementi: Sequence Flow Rules

BPMN: Regole pratiche per la connessione di elementi


La notazione BPMN fornisce anche delle regole da utilizzare per collegare tra loro i vari elementi: Message Flow Rules

Attenzione: Message Flow possono connettere solo elementi appartenenti a Lane diverse e non possono connettere elementi appartenenti allinterno della stessa Lane

BPMN: Dettaglio
Gli elementi precedentemente definiti costituiscono la base di qualunque processo di modellazione

BPMN fornisce un ulteriore livello di dettaglio che consente di modellare processi pi complessi Per ogni elemento precedentemente illustrato verranno fornite Le diverse varianti utilizzabili Le propriet (attributi) che caratterizzano ciascun elemento

BPMN: Start Event


Flow Object Events: Start Event Ogni start event un evento indipendente. Lo start event indica che si sta generando una nuova istanza del processo Un business process pu essere instanziato per diverse ragioni: BPMN mette a disposizione 6 tipi di start event: None Message Timer Rule Link Multiple

BPMN: Start Event


Flow Object None Non viene indicato esplicitamente il tipo di evento. E utilizzato anche quando il sottoprocesso inizia in seguito ad un messaggio generico ricevuto dal processo padre Si usa quando un messaggio che arriva da un partecipante del processo provoca linizio di un processo Una data ben precisa o un ciclo (ad esempio ogni fine settimana) provoca linizio di un processo Il processo inizia quando una condizione diventa vera (ad esempio la temperatura raggiunge 20) Si utilizza per indicare che la fine di un processo provoca linizio di un altro. Tipicamente sono due sottoprocessi allinterno dello stesso processo padre Indica che possono esserci diversi trigger che consentono ad un processo di partire ma uno solo di essi provocher lo start del processo. Gli attributi dello start event consentono di indicare quale trigger provoca lo start del processo

Message Timer Rule Link

Multiple

BPMN: Start Event


Uno start event non pu essere target per un sequence flow Una eccezione a questa regola si ha quando lo start event usato in un sottoprocesso in tal caso un sequence flow dal processo padre ha come target uno start event Uno start event deve essere source per un sequence flow

Uno start event pu essere target per un Message Flow

Uno start event non pu essere source per un Message Flow

BPMN: End Event


Flow Object Events: End Event Indica dove un processo finisce e questo implica che nessun sequence flow pu avere come source un end event

Un end event deve necessariamente esistere se esiste uno start event

Quando un processo termina pu produrre un risultato:BPMN mette a disposizione 8 tipi diversi di end event da utilizzare per indicare che risultato produrre

BPMN: End Event


Flow Object Events: End Event None Il tipo di end event non esplicitamente indicato: pu essere usato in un sottoprocesso per inicare che il controllo torna al processo padre Indica che un messaggio inviato ad un partecipante a conclusione del processo Indica che potrebbe essere generato un errore Si utilizza in un transaction sub-process. Indica che la transazione sar cancellata e verr inviato un messaggio al processo che richiama la transazione

Message

Error Cancel

BPMN: End Event


Flow Object Events: End Event Compensation Indica che necessaria una compensazione. Richiama un intermediate event quando il processo in roll back Collega lend event di un processo con lo start di un altro. Tipicamente si usa tra due sottoprocessi allinterno di un processo padre Indica che tutte le attivit nel processo terminano immediatamente. Indica che alla fine di un processo si verificano diversi eventi (ad esempio possono essere inviati pi messaggi). Gli attributi indicheranno quale tra le possibili conseguenze si verificher

Link

Terminate

Multiple

BPMN: End Event


Un end event deve essere un target per un sequence flow. Un end event potrebbe essere target di pi sequence flow

Un end event non pu essere target di un message flow

Un end event pu essere la sorgente di un message flow

BPMN: Intermediate event


Flow Object Events: Intermediate Event Si pu trovare tra uno start event ed un end event Pu essere usato per:

Indicare dove allinterno di un processo, si aspetta o si invia un messaggio Mostrare il ritardo atteso allinterno del processo Indicare dove il flusso normale si interrompe per gestire una eccezione Mostrare il lavoro extra da fare per gestire la compensazione

BPMN: Intermediate event


Flow Object Events: Intermediate Event Ci sono 8 tipi diversi di intermediate event e indicano diversi motivi per cui un processo pu essere interrotto o ritardato una volta iniziato None E valido solo se lintermediate event si trova nel flusso principale del processo. Arriva un messaggio da un partecipante e provoca il trigger di un evento. Se il processo sta in attesa di un messaggio, questo evento permette di continuare. Pu essere utilizzato anche per inviare un messaggio ad un partecipante Permette di modellare un ritardo allinterno del processo

Message

Timer

BPMN: Intermediate event


Flow Object Events: Intermediate Event Error E utilizzato per gestire gli errori si usa sia per rilevare leccezione che per reagire ad una eccezione

Cancel

E utilizzato in un Transaction sub-process. Viene attaccato al confine del sottoprocesso. Viene utilizzato per impostare ed eseguire una compensazione. Chiama un compensation task se presente nel normal flow; reagisce alla chiamata ad una compensazione se levento attaccato al confine di una attivit

Compensation

BPMN: Intermediate event


Flow Object Events: Intermediate Event Rule E utilizzato solo per gestire le eccezioni: scatena un evento quando una espressione diventa vera Connette lend event di un processo con un intermediate event di un altro processo. Pu essere usato come un Go- To.

Link

Multiple

Indica che ci sono diversi modi per il triggering di un evento ma solo uno di essi si pu verificare.

BPMN: Intermediate event


Un intermediate event pu essere attaccato ai confini di una attivit se di tipo Message, Timer, Error, Cancel, Compensation, Rule and Multiple Un intermediate event con un cancel potrebbe essere attaccato ad un sottoprocesso solo se lattributo della Transaction del sotto processo impostato a TRUE Se lintermediate event attaccato ai confini di una attivit non pu essere target di un sequence flow. Lintermediate event deve essere sorgente per un sequence flow a meno che lintermediate event non sia di tipo Compensation Un intermediate event potrebbe essere target per un message flow ma non pu essere source per un message flow

BPMN: activity
Flow Object Activity: un lavoro svolto allinterno dellazienda. Una activity caratterizzata da: Input set: definisce i dati in input allattivit necessari allo svolgimento della stessa Output set: Definisce linsieme di dati che saranno output dellattivit Io Rules: Definisce la relazione tra un input ed un output Loop Type: Impostato di default a None potrebbe essere impostato a Standard o a MultiInstance

BPMN: activity
Flow Object Activity: un lavoro svolto allinterno dellazienda. Standard Loop Type Una attivit di questo tipo ha una condizione booleana valutata dopo ogni ciclo del loop: se lespressione continua ad essere vera, il loop continua. Lespressione pu essere valutata prima di realizzare lattivit (while) oppure dopo che lattivit stata valutata (until) Multi-Instance Loop Type Riflette il costrutto di modellazione foreach. Lespressione valutata solo una volta prima che lattivit sia realizzata. Il risultato dellespressione sar un intero che specifica il numero di volte in cui lattivit sar ripetuta. Le attivit possono essere eseguite in maniera sequenziale o parallela

BPMN: activity sub-process


Flow Object Sub-process una attivit che racchiude nel suo interno altre attivit. Un sub-process pu essere aperto per mostrare un altro processo (Embedded o Indipendent). Rappresentazione del sotto-processo

Sotto processo espanso

BPMN: activity sub-process


Flow Object Sub-process

Pu essere usata con 4 altri markets:

Pu essere usato con tutti gli altri markets ad eccezione del Multiple instance market

Pu essere usato con tutti gli altri markets ad eccezione del Loop market

Pu essere usato con tutti gli altri markets.

BPMN: activity sub-process


Flow Object Embedded sub-process E una attivit che contiene altre attivit. Il sottoprocesso direttamente collegato con il processo padre ed ha visibilit ai dati globali del padre.

Loggetto allinterno del sottoprocesso dipendente dal processo padre e non ha tutte le caratteristiche del processo padre: non pu avere pool e lane ma solo flow object, connecting object e artifact

BPMN: activity sub-process


Flow Object Indipendent sub-process E una attivit che chiama un altro processo esistente allinterno di un Business Process Diagram. Il sotto processo esiste in un diagramma separato che pu avere multipli pool. Reference sub-process Un designer vorrebbe riferirsi ad un altro processo che ha definito precedentemente. Se due sottoprocessi condividono esattamente lo stesso comportamento e le stesse propriet si potr definire il sottoprocesso una sola volta.

BPMN: activity sub-process


Flow Object Transazione Un sottoprocesso pu essere impostato per essere una transazione
Competamento con successo: un normal sequence flow riporta verso il normale flusso del processo dopo aver controllato che tutti i partecipanti hanno concluso la loro parte di transazione.

Failed: si realizza il rool back delle attivit gi completate

Hazard: Non possibile fare una cancellazione; lattivit interrotta senza compensazione e il flusso continua da Error Intermediate event

BPMN: activity sub-process


Flow Object Un sotto processo potrebbe essere target per un sequence flow

Il sotto processo potrebbe essere sorgente per un sequence flow

Un sotto processo potrebbe essere target per un message flow

Un sotto processo potrebbe essere source per un message flow

BPMN: Task
Flow Object Task E unattivit atomica inclusa in un processo. Rappresentazione del task

Un task pu essere:

Pu essere usato con compensation market

Pu essere usato con Compensation Market

Pu essere usato con Loop market o Multiple instance market

BPMN: Task
Flow Object Task Un task pu essere source o target per un sequence flow. Un task pu essere source o target per un message flow.

BPMN: Gateway
Flow Object Gateway Sono elementi usati per controllare come il flusso del processo diverge o converge allinterno del processo.

Rappresentazione del task Pu essere usato per: Decision/Branching Merging (OR-Join) Forking (AND-Split) Joining (AND-Join) Non pu essere source e target per un message flow Pu essere source e target per un sequence flow

BPMN:Gateway
Flow Object Exclusive Gateway (XOR) Si utilizza nel business process quando il sequence flow soggetto a 2 o pi alternative. In un dato processo solo uno dei percorsi pu essere seguito.

or

Data-based

Ci sono due tipi di exclusive xor: Event-based

BPMN:Gateway
Flow Object Exclusive Gateway (XOR) Data-based Sono i gateway pi utilizzati. Il flusso prosegue attraverso il gateway dopo aver valutato una condizione che determina quale route seguire

Il significato lo stesso!

La prima condizione valutata TRUE determina quale strada seguire; le altre condizioni, che possono essere TRUE, verranno ignorate. Non necessario impostare lalternativa di default!

BPMN:Gateway
Flow Object Exclusive Gateway (XOR) Data-based In alcune situazioni un exclusive gateway utilizzato come merge.
Lexclusive gateway merge unisce due sequence flow alternativi generati da Decision I sequence flow alternativi sono uniti in preparazione ad un parallel gateway che sincronizza un insieme di flussi paralleli Senza luso del merge solo 3 dei 4 task saranno eseguiti prima di passare al parallel gateway e quindi il processo si blocca in attesa del quarto task.

Nonostante BPMN consente di utilizzare exclusive gateway per modellare questa situazione, opportuno prestare molta attenzione a queste situazioni in fase di modellazione

BPMN:Gateway
Flow Object Exclusive Gateway (XOR) Event Based

Il comportamento uguale a Data-Based gateway ma invece di valutare una espressione si verifica se si verificato un evento. Tipicamente la ricezione di un messaggio determina quale dei percorsi prendere. Ad esempio una risposta da parte del cliente determina quale percorso intraprendere.

BPMN:Gateway
Flow Object Inclusive OR Rappresenta un branching point dove le possibili alternative sono basate sulla valutazione di espressioni. Contrariamente a quanto succede per lexclusive gateway la valutazione di una condizione con esito positivo (TRUE) non esclude la valutazione di altre condizioni e quindi possono essere realizzati i task relativi a tutti i percorsi o a uno solo di essi. Almeno uno dei possibili percorsi deve avere una condizione il cui risultato TRUE altrimenti il modello non valido. Ci sono due possibili metodi per rappresentare questo tipo di decisione:
Si usa un mini-diamond allinizio del sequence flow

Alcune restrizioni.... Il source di questa rappresentazione non pu essere un event ma solo un task o un sottoprocesso Un task con un Inclusive OR rappresentato in questo modo deve avere almeno due possibili sequence flow e il relativo diamond

BPMN:Gateway
Flow Object Inclusive OR Rappresenta un branching point dove le possibili alternative sono basate sulla valutazione di espressioni. Contrariamente a quanto succede per lexclusive gateway la valutazione di una condizione con esito positivo (TRUE) non esclude la valutazione di altre condizioni e quindi possono essere realizzati i task relativi a tutti i percorsi o a uno solo di essi. Almeno uno dei possibili percorsi deve avere una condizione il cui risultato TRUE altrimenti il modello non valido. Ci sono due possibili metodi per rappresentare questo tipo di decisione:
Si utilizza OR gateway

Si pu usare Inclusive OR come merge Non richiesto che tutti e 3 i task siano eseguiti bastano 2 dei 3 perch il flusso prosegua

BPMN:Gateway
Flow Object Complex Gateways Permette di modellare situazioni non modellabili attraverso gli altri gateway.

In questo caso il complex gateway si usa per una decisione e quindi la valutazione di una espressione determina quale strada seguire. Lespressione deve essere tale per cui almeno una delle possibili alternative deve essere seguita

BPMN:Gateway
Flow Object Complex Gateways Permette di modellare situazioni non modellabili attraverso gli altri gateway. Complex gateway si pu usare come merge e in questo caso necessario indicare quanti dei task in entrata devono essere eseguiti prima che il flusso prosegua. E importante impostare bene lespressione in modo che il processo non si blocchi in attesa di un compito che non sar mai realizzato

BPMN:Gateway
Flow Object Parallel Gateways Sincronizza il flusso parallelo e crea un flusso parallelo Si potrebbe modellare il flusso parallelo anche senza lutilizzo di questo gateway ma tipicamente si utilizza il gateway per chiarire il comportamento del processo.

Parallel gateway pu essere utilizzato anche per il join in percorsi paralleli

In tal caso prima di eseguire il task F sia il task C che il task D dovranno essere eseguiti!

BPMN-Element
Flow Object completed! Events Flow Object
Sono i principali elementi grafici che definiscono il comportamento del business process

Sequence Flow Connecting Objects


Connettono tra loro i flow object oppure connettono i flow object con altre informazioni

Activities Gateway

Message Flow Association

Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)

Data Object Artifact


Forniscono informazioni addizionali sui processi

Lane

Group Annotation

BPMN Swimlanes
Le swimlanes aiutano a suddividere e ad organizzare il lavoro allinterno dellorganizzazione Swimlanes Pool Una pool rappresenta un partecipante allinterno del processo. Un partecipante pu essere una business entity (ad esempio una azienda) o un generico utente (cliente, fornitore etc).

Un sequence flow non pu attraversare i confini di una pool: linterazione tra due pool pu essere rappresentata solo da message flow. Una pool potrebbe contenere i dettagli del processo o potrebbe essere rappresentata come una black box ma con i message flow che permettono di rappresentare le interazioni tra le pool

BPMN Swimlanes
Swimlanes Lane Una lane una sotto partizione allinterno della pool. Le lane sono usate per organizzare e categorizzare le attivit allinterno della pool. Tipicamente si utilizzano per specificare i ruoli in un dipartimento che comprende diversi ruoli che interagiscono durante lesecuzione del processo

Pool

Lanes

BPMN-Element
Swimlanes completed! Events Flow Object
Sono i principali elementi grafici che definiscono il comportamento del business process

Sequence Flow Connecting Objects


Connettono tra loro i flow object oppure connettono i flow object con altre informazioni

Activities Gateway

Message Flow Association

Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)

Data Object Artifact


Forniscono informazioni addizionali sui processi

Lane

Group Annotation

BPMN: Artifact
Gli Artifact permettono di rappresentare ulteriori informazioni sul processo che non influiscono in maniera significativa sul sequence flow o sul message flow

Oltre ad indicare il tipo di artifact (Data Object, Group, Annotation) possibile indicare a quale pool e/o lane appartiene.

Un artifact non pu essere target per un sequence flow n per un message flow Un artifact non pu essere source per un sequence flow n per un message flow

BPMN: Data Object


Artifact Data Object I data Object non hanno effetto diretto sul flusso del processo ma forniscono informazioni addizionali su ci che il processo fa e su come i documenti sia elettronici che cartacei, sono utilizzati allinterno del processo. Tipicamente i data object sono associati con i flow object. Si utilizza una Association per connettere un flow object ad un data object.

BPMN: Data Object


Artifact Data Object Un data object potrebbe essere associato ad un Message Flow in tal caso non va confuso con il messaggio ma rappresenta il carico associato al messaggio

In altri casi lo stesso Data Object pu essere sia input che output di un task del processo.

BPMN: Text Annotation


Artifact Text annotation Le text annotation sono meccanismi che consentono di inserire ulteriori informazioni per il lettore del diagramma BPMN

Simbologia

BPMN: Group
Artifact Group E un meccanismo che consente di raggruppare elementi di un processo in maniera informale. Esso non influenza il flusso del processo e pu passare attraverso i confini di pi pool. Tipicamente si usano per evidenziare sezioni del diagramma senza aggiungere vincoli sulle performance.

Rappresentazione del group:

BPMN-Element
Artifact completed! Events Flow Object
Sono i principali elementi grafici che definiscono il comportamento del business process

Sequence Flow Connecting Objects


Connettono tra loro i flow object oppure connettono i flow object con altre informazioni

Activities Gateway

Message Flow Association

Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)

Data Object Artifact


Forniscono informazioni addizionali sui processi

Lane

Group Annotation

Business Process Diagram Connecting Object


Connecting Object Sequence Flow E utilizzata per mostrare lordine con cui le attivit verranno eseguite allinterno del processo. Ogni Flow ha un solo source ed un solo target. Simbologia Una sequence flow potrebbe avere associata una espressione condizionale in tal caso il simbolo Simbologia Un sequence flow associato con un Exclusive Data-Based Gateway pu avere un percorso di default in tal caso rappresentato con Simbologia

Business Process Diagram Connecting Object


Connecting Object Message Flow E usato per mostrare il flusso di un messaggio tra due entit preparate rispettivamente a inviare e ricevere. Un message flow connette due pool Simbologia

Message flow ai confini delle pool

Message flow che connette oggetti appartenenti a pool diverse

Business Process Diagram Connecting Object


Connecting Object Message Flow Se in una pool presente un Expanded sub process il message flow pu connettere sia i confini del sotto-processo che gli elementi allinterno del sottoprocesso

Business Process Diagram Connecting Object


Connecting Object Association E utilizzata per associare informazioni e artifact con Flow Object. Una Association generalmente non ha direzione Simbologia

Se necessario aggiungere una direzione possibile utilizzare una directional Association Simbologia

Business Process Diagram Connecting Object


Connecting Object Association Una associazione pu essere usata anche per collegare Data Object con altri Object

BPMN-Element
Connecting Object completed! Events Flow Object
Sono i principali elementi grafici che definiscono il comportamento del business process

Sequence Flow Connecting Objects


Connettono tra loro i flow object oppure connettono i flow object con altre informazioni

Activities Gateway

Message Flow Association

Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)

Data Object Artifact


Forniscono informazioni addizionali sui processi

Lane

Group Annotation

Sequence Flow Mechanisms


BPMN prevede 4 tipi differenti di sequence flow: Questi differenti tipi di flussi possono essere direttamente collegati a specifici WorkFlow Patterns www.workflowpatterns.com I pattern possono modellare comportamenti semplici e comportamenti anche molto complessi e sono utili in quanto realizzano una lista di possibili comportamenti a cui il sistema di BPM deve rispondere

Normal Flow Exception Flow Link Event Ad Hoc Flow

Normal Flow
Normal Flow Il normal flow il flusso che inizia con lo start event e passa attraverso un insieme di percorsi fino a quando non raggiunge lend event. Il pi semplice normal flow il Sequence Flow

Workflow pattern

Utilizzando i sequence flow possibile rappresentare comportamenti complessi che consentono di dividere (forking and splitting) o combinare (joining and merging) il flusso. E importante che il sequence flow possa sempre essere tracciato nella definizione del processo (ad esempio un gateway deve avere sempre una condizione vera) altrimenti il disegno del processo sar non valido

Forking Flow
Normal Flow Il forking Join si riferisce alla possibilit di dividere il percorso in 2 o pi percorsi paralleli e quindi consente di eseguire le attivit parallelamente invece che sequenzialmente

Workflow pattern

Non ci sono condizioni che controllano il flusso. La stessa situazione si pu modellare con:

Forking Flow
Normal Flow E possibile anche raggruppare in un expanded sub-process un insieme di attivit da realizzarsi in parallelo. Un sotto-processo di questo tipo pu essere chiamato parallel-box.

Molte volte percorsi divisi con un fork sono poi riuniti nuovamente per mezzo di un join e sincronizzati prima che il flusso continui.

Joining Flow
Normal Flow Nella terminologia BPMN il termine joining si riferisce alla possibilit di combinare insieme due o pi percorsi paralleli in un unico percorso.

Workflow pattern

Un altro meccanismo di sincronizzazione il completamento di un sottoprocesso: un sottoprocesso completato quando tutte le attivit allinterno di esso sono concluse

Non detto che ad ogni fork corrisponda un join

Splitting Flow
Normal Flow BPMN usa il termine splitting per suddividere il percorso in diverse alternative. Lo splitting si trova in una parte del percorso in cui necessario porre una domanda e la risposta determina quale parte del percorso intraprendere. Ci sono due meccanismi base per modellare una decisione durante lesecuzione di un processo.

Workflow pattern

Workflow pattern

Merging Flow
Normal Flow Il merging flow unisce due o pi possibili percorsi in un unico percorso.

Workflow pattern

Poich vi un gateway solo uno tra B e C raggiunger D e la condizione consentir di capire quale dei due task raggiunger D

Merging Flow
Normal Flow Il merging flow unisce due o pi possibili percorsi in un unico percorso.

Workflow pattern

Il flusso incontrollato e quindi la prima delle due attivit tra B e C che termina provocher linizio dellattivit D. Non si sa a priori quale tra B e C inizia per prima n si pu prevedere perch non vi un gateway (come nel caso precedente)

Merging Flow
Normal Flow Ci sono altri due modi per modellare il Merge:

Workflow pattern

Il primo gateway decide quale tra B e C sar eseguita per prima: lesecuzione di B o di C provoca lavvio dellattivit D
Workflow pattern

La prima tra B e C a terminare passa il controllo a D: lattivit che termina per ultima non avr alcun effetto su D che nel frattempo sar gi iniziata!

Merging Flow
Normal Flow Si utilizza un merging Flow quando non si conosce a priori quante tra le possibili alternative devono verificarsi prima di passare il controllo al task successivo
Workflow pattern

E possibile che sia B che C venga eseguito e quindi prima di passare a D necessario che sia B che C siano complete

Merging Flow
Normal Flow Il gateway valuta una espressione prima di determinare se il flusso pu proseguire o no.

Workflow pattern

Quando B1 termina, il flusso passer a C solo se la condizione nel gateway soddisfatta. Quando uno tra B1, B2, B3 soddisfa la condizione nel gateway il flusso prosegue.

Looping
Normal Flow Se la condizione del loop valutata prima che lattivit sia eseguita, si parla di un while loop e quindi lattivit sar ripetuta fino a quando la condizione vera. E possibile che, se la condizione subito vera, lattivit non sia proprio eseguita!

Se la condizione valutata dopo che lattivit eseguita si parla di un until loop e le attivit sar eseguita fino a quando la condizione diventa true. Lattivit sar eseguita almeno una volta. Un loop viene rappresentato con un task di tipo loop

Looping
Normal Flow E possibile che un loop venga creato con con un Sequence Flow
Workflow pattern

E ovvio che cura del designer fare attenzione che il loop non sia infinito

Looping
Normal Flow E possibile rappresentare sia il while che luntil loop:

Until loop

While loop

Sequence
Normal Flow E possibile che un processo non entri per intero allinterno di un diagramma: in tal caso possibile usare un intermediate event di tipo link che consente di interrompere il flusso in una pagina e poi riprenderlo nellaltra

Sequence
Normal Flow E possibile anche suddividere il sequence flow utilizzando un meccanismo analogo al Go To

In questo modo si evita di avere sequence flow molto lunghi che rendono poco leggibile il diagramma

Passaggio di flusso attraverso sotto processi


Normal Flow Quando allinterno di un processo vi un sotto-processo, il flusso inizia dal processo padre, passa nel sotto-processo eseguendo per intero il flusso in esso presente, per poi tornare nuovamente al processo padre.

Controllo di flusso attraverso il processo


Normal Flow In molti casi il flusso di un processo dipende dal flusso allinterno di un altro processo. In questi casi linizio e il proseguimento di un processo sar scatenato da un Link Event che permette al flusso di passare tra i processi.

Possibili situazioni di errore


Normal Flow

Nel caso in cui la condizione valutata nel gateway abbia come risposta YES si eseguir prima A poi C e D ed infine E e quindi tutto va a buon fine Se la condizione nel gateway fornisce come risposta NO verr eseguito prima B e in seguito D. Il task E attende il verificarsi di C ma poich A non si verificher mai, non potr verificarsi neanche C. Il flusso del processo sar BLOCCATO

Possibili situazioni di errore


Normal Flow

Cosa succede se il task E ancora in esecuzione quando il loop ritorna indietro al task B e si raggiunge nuovamente E?

Possibili situazioni di errore


Normal Flow

Quando il task C completo il controllo passa al sottoprocesso sottostante. Il controllo non passa mai al processo principale ma il gateway attende che i due sottoprocessi siano completati; il primo non mai completato. Il processo si BLOCCA.

Exception Flow
Exception Flow Un exception flow si verifica fuori dal normale flusso del processo ed basato su un evento (Intermediate Event) che si verifica durante lesecuzione di un processo. Un Intermediate Event collocato ai confini del task provoca un Exceprion Flow

Ad Hoc Flow
Un Ad Hoc flow un insieme di attivit che non ha una sequenza ben definita. Sono indicate tutte le attivit da eseguire ma non determinata a priori la sequenza con cui le attivit si realizzeranno

Compensation Association
Qualche attivit potrebbe produrre effetti anche molto complessi o generare output specifici. Se loutput prodotto non desiderabile in base a qualche criterio specifico allora necessario un undo delle attivit. Ci sono tre modi per fare ci: Fare una copia dei valori prima di eseguire il task in modo da poterli ripristinare dove necessario Rendere effettivi i cambiamenti solo in seguito a conferma. Richiamare una attivit che consente di effettuare lundo (compensation) Nellultimo caso spesso necessaria la presenza di un ulteriore attivit che tiene conto delle modifiche fatte alla prima. Lattivit che permette di realizzare la compensazione si trova fuori dal flusso normale

Compensation Association
Pu essere fatta la compensazione solo per le attivit che sono state completate. Una compensazione pu essere richiamata in 2 modi: 1 modo Lattivit si trova allinterno di un transaction sub-process. In tal caso lintero sotto processo sar cancellato. Il process flow torner indietro ed ogni attivit che richiede compensazione sar compensata.

2 attivit allinterno del sotto processo richiedono compensazione e quindi entrambe verranno compensate se si verifica una eccezione

Compensation Association
Pu essere fatta la compensazione solo per le attivit che sono state completate. Una compensazione pu essere richiamata in 2 modi: 2 modo Un flusso in entrata individua una attivit di tipo compensation quando trova un intermediate event ai confini dellattivit