Professional Documents
Culture Documents
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
Sviluppatori
Business people
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
Clienti
BPMN Overview
BPMN si occupa di:
Definire Business Process Diagram modeling object Definire la semantica dei Business Process Diagram modeling object
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:
Workflow
Un esempio.....
Un esempio.....
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
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.
Semplice
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
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
Activities Gateway
Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)
Lane
Group Annotation
Impattano sul flusso del processo ed usualmente hanno una causa (trigger) ed un impatto (risultato)
La simbologia base :
Lane
E una sottopartizione allinterno della pool. Si estende per tutta la lunghezza della pool sia orizzontalmente che verticalmente
Simbologia
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
Simbologia
Gli Artifact sono un elemento di flessibilit per BPMN: eventuali estensioni delle notazione possono essere realizzati operando sugli artifact.
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
Multiple
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
Message
Error Cancel
Link
Terminate
Multiple
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
Message
Timer
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
Link
Multiple
Indica che ci sono diversi modi per il triggering di un evento ma solo uno di essi si pu verificare.
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
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
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
Hazard: Non possibile fare una cancellazione; lattivit interrotta senza compensazione e il flusso continua da Error Intermediate event
BPMN: Task
Flow Object Task E unattivit atomica inclusa in un processo. Rappresentazione del task
Un task pu essere:
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
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.
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
Activities Gateway
Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)
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
Activities Gateway
Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)
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
In altri casi lo stesso Data Object pu essere sia input che output di un task del processo.
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.
BPMN-Element
Artifact completed! Events Flow Object
Sono i principali elementi grafici che definiscono il comportamento del business process
Activities Gateway
Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)
Lane
Group Annotation
Se necessario aggiungere una direzione possibile utilizzare una directional Association Simbologia
BPMN-Element
Connecting Object completed! Events Flow Object
Sono i principali elementi grafici che definiscono il comportamento del business process
Activities Gateway
Pools Swimlanes
Raggruppano gli elementi di modellazione primari (Flow object e Connecting Object)
Lane
Group Annotation
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
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
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
Cosa succede se il task E ancora in esecuzione quando il loop ritorna indietro al task B e si raggiunge nuovamente E?
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