università di pisa polo sistemi logistici fixl, introduzione alla modellazione e...slide 7 di 36...
TRANSCRIPT
Università di Pisa – Polo Sistemi Logistici
Economia e Legislazione dei Sistemi Logistici
Fondamenti di Informatica per la Logistica (Prof. G. Dini)
“Le grandi e complesse organizzazioni aziendali sono la manifestazione tangibile della tecnologia avanzata, più delle stesse macchine” ( J.K. Galbraith)
Introduzione alla modellazione e alla esecuzione
di flussi di attività (workflow)
Parte I: modellazione
Mario G.C.A. Cimino, www.iet.unipi.it/m.cimino, Dipartimento di Ingegneria dell’Informazione
slide 2 di 36
Processi e Workflow
Un business process (processo aziendale) è un insieme di attività che
genera valore in uscita.
Tutte le organizzazioni funzionano sulla base di processi, complessi o
semplici, chiaramente definiti o ambigui, automatizzati o manuali.
Si vuole modellare il funzionamento di un’organizzazione,
focalizzandosi su come persone e strumenti interagiscono, a scopo di
specifica, analisi, simulazione, ottimizzazione, ecc.
slide 3 di 36
Esempi: un utente attende settimane per ottenere una informazione
analizzare il workflow, ossia l’implementazione del processo interno.
In un workflow (flusso di attività) le risorse, le informazioni e le
attività seguono un flusso di controllo coordinato dalle azioni svolte
dai partecipanti, secondo una procedura specificata in un linguaggio di
modellazione di processi.
L’atto creativo di produrre un workflow da un business process è detto
Business Process Modeling.
I sistemi informativi che consentono la modellazione e la gestione di
workflow sono detti Workflow Management Systems (WfMS).
slide 4 di 36
Business Process Model and Notation (BPMN)
BPMN è:
Un linguaggio di modellazione dei processi;
human-readable: una notazione visuale standard per modellare i processi
organizzativi;
accessible: comprensibile da vari attori: chi analizza o definisce i
processi, chi ne guida l’implementazione tecnologica, i responsabili della
gestione e controllo dei processi;
machine-readable: una notazione serializzabile in XML per la
simulazione|esecuzione dei processi.
BPMN non è:
un linguaggio per rappresentare flussi di dati e di oggetti, sebbene possa
mostrarli ad un certo livello di astrazione;
una notazione per rappresentare strutture, scomposizioni funzionali,
modelli di dati, strategie dell’organizzazione, regole di business.
slide 5 di 36
“Parenti” di BPMN (linguaggi per worlfkow-based analysis)
Petri Nets (1962): linguaggio formale per la modellazione di sistemi
distribuiti, accessibile a computer scientist e progettisti di software
specializzato. Possiede una rappresentazione visuale ed una sottostante
notazione matematica (grafi), che consente analisi avanzate quali
validazione, verifica (es. soundness per individuare deadlock, livelock, ...)
UML Activity Diagram (OMG, 1997): linguaggio di modellazione visuale
per il paradigma ad oggetti, accessibile a ingegneri del software. Nella
forma estesa di Eriksson e Penker (2000) è adatto alla modellazione di
processo ed accessibile anche ai ruoli non tecnici (di livello business).
slide 6 di 36
: Informazione
in ingresso
«Information»
«Physical»
: Oggetto
in ingresso
«Process»
«Physical»
: Oggetto
in uscita
«Goal»
Process Goal:
Quantitative
Goal
«achieve»
«People»
«control»
: Participant
«Information» «Physical»
«supply»«supply»
Processo
: Informazione
di supporto: Oggetto
di supporto
Attività
Invia Ricevi
consumati
o modificati
non
consumati
o modificati
Esempio generico di diagramma di processo in UML esteso di Eriksson-Penker
slide 7 di 36
BPMN (OMG, 2005) è specializzato nel rappresentare il comportamento dei processi
per ciò che concerne il flusso di controllo, attraverso il concetto di token (gettone)
che attraversa la struttura del processo.
Uno Start Event1 genera un token che alla fine sarà consumato da uno End Event2. Il
percorso dei token è tracciabile attraverso una rete di Sequence Flow3, Gateway4,
Activity5 ed Intermediate Event6, all’interno del processo.
Race pattern: i due eventi intermedi6 dopo il punto decisionale ad eventi4
“gareggiano”, attendendo rispettivamente la ricezione di un messaggio e lo scadere
del tempo. In quest’ultimo caso il flusso di esecuzione termina con un evento errore
con semantica throw (lancio)7.
slide 8 di 36
http://www.iet.unipi.it/m.cimino/fixl/res/mov01.swf
Descrizione del modello precedente in linguaggio naturale:
(a) Inizio
(b) Si genera il rapporto
(c) Si invia il rapporto
(d) Se arriva una ricevuta entro 4 giorni
(d.1) Si aggiorna il sistema informativo
(d.2) Fine
(e) Se passano 4 giorni
(e.1) Viene generato un evento finale di errore.
3
1 2 4
5
6
6
6
2,7
5
slide 9 di 36
Interruption pattern: il modello precedente viene incluso (embedded) come sotto-
processo, rappresentato in forma espansa1. Il nuovo modello contiene anche un sotto-
processo rappresentato in forma contratta4.
L’evento di Partner failure con semantica catch (cattura) si abilita quando il flusso
di esecuzione raggiunge il sotto-processo2, finchè non viene raggiunto uno end event.
http://www.iet.unipi.it/m.cimino/fixl/res/mov02.swf
Se viene lanciato, l’evento di errore viene catturato dall’omonimo evento di tipo
catch3, e il flusso di esecuzione viene dirottato su quel punto.
1
2
3
4
slide 10 di 36
Nota: se un Sub-Process viene espanso all’interno di un diagramma, gli oggetti al
suo interno non possono essere connessi all’esterno del Sub-Process.
BPMN consente la modellazione strutturata dei processi, visioni a vari livelli di
astrazione: dal livello “0” si scompongono i processi in sotto-processi, fino alle
attività (livello di dettaglio massimo dell’analisi). L’analisi arriva tipicamente al
terzo livello di scomposizione.
http://www.iet.unipi.it/m.cimino/fixl/res/mov03.swf
Un processo descritto ad alto livello documenta un certo comportamento del modello
senza i dettagli sufficienti a eseguirlo. Ad esempio, mancano delle espressoni logiche
nei punti decisionali, oppure non è serializzabile per una data piattaforma. In tal caso
il processo si dice non-eseguibile.
slide 11 di 36
BPMN consente anche la segmentazione dei processi, ad un dato livello, per creare
diverse sezioni modulari. Es. nella metodologia IBM si suggerisce di limitarsi a sei
processi|attività in ogni “vista” (stampa), per mantenere gestibile la mole dei dati.
Nei formati elettronici (es. pdf) si tende ad includere molti più elementi, data la
disponibilità delle funzioni di ingrandimento (zoom).
I Link Intermediate Event di tipo throw1 e catch2 permettono di connettere due
sezioni di un processo. Nell’esempio, il ramo “No” del gateway di tipo esclusivo3
conduce a un salto del flusso di esecuzione producendo un ciclo.
1 2
3
slide 12 di 36
Una medesima attività o processo può dar luogo a istanze multiple, per esempio
reiterate1 o parallele2. Il numero di istanze può essere calcolato a tempo di design o a
runtime.
http://www.iet.unipi.it/m.cimino/fixl/res/mov04.swf
http://www.iet.unipi.it/m.cimino/fixl/res/mov05.swf
1
2
slide 13 di 36
Possono essere usati Sequence Flow1,2 multipli senza alcun punto decisionale
(uncontrolled flow) in ingresso o uscita ad attività|processo. In ciascun uncontrolled
flow fluirà un token.
Nell’esempio seguente, vengono create due istanze del sotto-processo, ciascuna
relativa ad un token distinto.
http://www.iet.unipi.it/m.cimino/fixl/res/mov06.swf
1
2
1
slide 14 di 36
Se il sotto-processo viene espanso, possiamo immaginare ad esempio che i due flussi
in ingresso puntino a diversi start event.
http://www.iet.unipi.it/m.cimino/fixl/res/mov06.swf
1
1
slide 15 di 36
BPMN mette a disposizione varie tipologie di punto decisionale (o gateway). Nello
exclusive Data-Based gateway1 solo una delle alternative di uscita è vera e consente
al token di passare.
Tale gateway può essere adoperato anche per unire più flussi mutuamente esclusivi
in ingresso2, e in tal caso l’unico flusso attivo passa direttamente in uscita.
http://www.iet.unipi.it/m.cimino/fixl/res/mov07.swf
1 2
slide 16 di 36
Nello Exclusive Event-Based gateway1 c’è una gara (race) tra i diversi eventi2 in cui
vince il primo evento che arriva.
http://www.iet.unipi.it/m.cimino/fixl/res/mov08.swf
1
2
2
2
slide 17 di 36
Nello Inclusive gateway1 più condizioni in uscita potrebbero essere vere. Può anche
essere adoperato per unire più flussi in ingresso2, e in tal caso si attendono tutti i token
prodotti prima di proseguire in uscita.
http://www.iet.unipi.it/m.cimino/fixl/res/mov09.swf
Un percorso di default (opzionale) viene identificato da un tratto diagonale. Esso
viene usato se nessuna delle condizioni è vera. Se non è presente il percorso di
default e nessuna condizione è vera, viene lanciata una eccezione a runtime, poiché il
token in ingresso sarebbe inaspettatamente consumato.
1
2
slide 18 di 36
Il Parallel Gateway1 non ha condizioni logiche associate. Viene usato per
sincronizzare flussi paralleli (in ingresso) e per creare flussi paralleli (in uscita). Si
attende che tutti i token in ingresso siano arrivati, e poi si emettono nuovi token su
tutti i flussi in uscita.
Nell’esempio di seguito, si noti come il secondo gateway inclusivo2 attenda tutti e
soli i token prodotti prima di procedere. Se sostituiamo ad esso un gateway parallelo,
nel caso di token non prodotto (C1 o C2 pari a false) il token in uscita non verrebbe
mai emesso.
http://www.iet.unipi.it/m.cimino/fixl/res/mov10.swf
1 2
slide 19 di 36
Interazione tra organizzazioni in BPMN
Ogni organizzazione ha le proprie interfacce verso l’esterno. Ciò significa che vi
sono processi privati (che non interagiscono con l’esterno) e processi pubblici. In
BPMN i processi pubblici sono quelli che contengono attività di comunicazione tra
partecipanti, quindi producono un flusso di messaggi.
BPMN consente di esprimere tre tipi di processo:
Orchestrazione: interazione formata dai processi coordinati da un medesimo
partecipante. Si compone di processi privati [si pensi al direttore d’orchestra] o
workflow.
Coreografia: insieme ordinato di interazioni tra i processi relativi a diversi
partecipanti, senza controllo centralizzato. Si compone di processi pubblici [si
pensi alla coreografia nella danza].
Collaborazione: insieme di interazioni tra i partecipanti medesimi. Può includere
anche la coreografia e uno o più orchestrazioni.
Nell’esempio di seguito si ha una coreografia tra medico e paziente. I processi di
ciascun partecipante sono racchiusi in un pool1 (vasca). Un pool può essere
ulteriormente suddiviso in lane2 (corsie), ciascuna rappresentante un sotto-
responsabile o una sotto-unità.
slide 20 di 36
Un Sequence Flow non può passare attraverso il confine di un Pool. Le interazioni
tra i due partecipanti costituiscono sempre un flusso messaggi3, che può essere
attraversato solo da un Message e non da token. Message Flow non possono
connettere oggetti che sono all’interno del medesimo Pool.
http://www.iet.unipi.it/m.cimino/fixl/res/mov11.swf
1
1
2
3
slide 21 di 36
Descrizione in linguaggio naturale:
(a) La Reception del centro medico apre alle 9.00
(b) Il Paziente avverte un malessere
(c) Il Paziente richiede un medico alla Reception
(d) La Reception riceve la richiesta di medico dal Paziente
(e) La Reception comunica un appuntamento al Paziente
(f) Il Paziente riceve l’appuntamento dalla Reception
(g) Il Paziente comunica i sintomi al Dottore
(h) Il Dottore riceve i sintomi dal Paziente
(i) Il Dottore prescrive la ricetta al Paziente
(j) Il Paziente riceve la prescrizione dal Dottore
(k) Il Paziente richiede le medicine alla Reception
(l) La Reception riceve la richiesta di medicine dal Paziente
(m) La reception fornisce le medicine al Paziente e termina.
(n) Il Paziente riceve le medicine dalla Reception e termina.
slide 22 di 36
Flusso dati in BPMN
In BPMN, i Data Objects () e Data Input/Output forniscono informazioni sui dati
prodotti da una attività e da un processo. Il flusso dati viene indicato da una
associazione direzionale, che rappresenta anche una forma di dipendenza.
Ad esempio, un processo Ad-Hoc (indicato dal simbolo ‘~’) contiene un gruppo di
attività non strettamente vincolate da relazioni di sequenza. In tal caso la sequenza ed
il numero di esecuzioni dipendono ogni volta dall’esecutore. Esempi: sviluppo di
codice a basso livello, supporto alle vendite, scrivere un capitolo di libro.
Anche il messaggio () può rappresentare il contenuto di una comunicazione tra
due partecipanti.
Esempio. Nella scrittura di un capitolo di libro non c’è una sequenza predefinita tra
tutte le varie attività, poiché si tratta di un processo creativo. Ad esempio “write text”
non precede sempre “edit text”, perché l’editing può avvenire raramente e sulla base
di molte istanze di “write text”.
Tuttavia, i data obects, in qualità di input, determinano un vincolo relativo al flusso
di sequenza, in quanto senza il dato di input il processo non può essere eseguito.
Per cui potremo sicuramente dire che alcune istanze di “write text” verranno prima di
istanze di “edit text”, ma che ciò non avviene a livello di processo (su tutte le
istanze), per cui non si mette alcun flusso di controllo tra i due processi.
slide 23 di 36
Invece tra “generate graphics” e “include graphics” possiamo immaginare che
l’inclusione di una data immagine avvenga sempre dopo la generazione della
medesima, e quindi si rileva un flusso di controllo tra i due processi.
slide 24 di 36
Descrizione in linguaggio naturale:
(a) Viene fornito un argomento (Topic) del capitolo di libro
(a.1) Si studia l’argomento, producendo delle note
(a.1.1) Si scrive il testo, e dalle note si produce la bozza del capitolo
(a.1.2) Dalle note si scrive/edita più volte la bozza
(a.2) Si generano tutte le immagini
(a.2.1) Si includono tutte le immagini nella bozza
(a.3) Si organizzano i riferimenti
(b) Si termina il capitolo, rilasciando una versione completata.
slide 25 di 36
Altro esempio, la erogazione di credito per un cliente (es. finanziamento per auto o
elettrodomestico), basata su una cooperazione tra commerciante e istituto di credito,
presenta Data Input1 e Data Output2.
1 2
Cosa rappresenta il simbolo
del foglietto ondulato?
Consultare il Poster BPMN.
slide 26 di 36
Descrizione in linguaggio naturale:
(a) Inizio
(b) Il Commerciante genera un Id di credito tramite info sul Cliente
(c) Il Commerciante richiede il computo del credito all’Agenzia
(d) L’Agenzia riceve la richiesta di credito
(e) L’Agenzia invia la risposta con il computo del credito
(f) Il Commerciante riceve il computo del credito
(g) Il Commerciante aggiorna le info sul Cliente, emettendo una scheda
(h) Fine.
slide 27 di 36
Prestito bibliotecario Il seguente processo (orchestrazione) riguarda la gestione del prestito bibliotecario.
slide 28 di 36
Descrizione in linguaggio naturale:
(1) Il bibliotecario riceve la richiesta di libro da un lettore
(2) Il bibliotecario controlla lo stato del libro
(3) Se il bibliotecario trova che il libro disponibile:
(3.1) Il bibliotecario prepara il libro per essere ritirato
(3.2) Il bibliotecario risponde al lettore indicando che il libro è pronto al
ritiro
(4) Se il bibliotecario trova che il libro è in prestito:
(4.1) Il bibliotecario risponde al lettore indicando che libro è in prestito e
attende indicazioni
(4.1.1) Se passa una settimana senza che il bibliotecario abbia indicazioni:
(4.1.1.1) Il bibliotecario cancella la richiesta di prestito, lo notifica al
lettore e termina.
(4.1.2) Se il lettore risponde rinunciando alla richiesta prestito:
(4.1.2.1) (4.1.1.1)
(4.1.3) Se il lettore risponde mantenendo la richiesta di prestito:
(4.1.3.1) Il bibliotecario mantiene la richiesta di prestito
(4.1.3.2) Il bibliotecario notifica di mantiene la richiesta di prestito
(4.1.3.3) Dopo due settimane di mantenimento della richiesta di prestito
(4.1.3.4) (2)
slide 29 di 36
E-tendering Il termine e-tendering (offerta elettronica) viene usato per designare l'uso di internet
per fare delle richieste di preventivo da una parte e ricevere le offerte dall'altra.
slide 30 di 36
Descrizione in linguaggio naturale: (1) L’acquirente inizia
(2) I fornitori sono in attesa di richieste
(3) L’acquirente effettua delle richieste di offerta a tre fornitori di servizi, A,
B e C, indicando una offerta minima
(4) Ogni fornitore riceve la richiesta
(5) L’acquirente attende che almeno due fornitori rispondano
(6) Almeno due fornitori hanno risposto
(7) L’acquirente valuta le offerte
(8) Se l’offerta migliore è almeno pari alla minima:
(8.1) L’acquirente termina
(9) Se l’offerta migliore è inferiore al minimo:
(9.1) (3)
slide 31 di 36
Spedizioni di un rivenditore di HW La modellazione riguarda i passi che un rivenditore di hardware al dettaglio deve
compiere prima di spedire i beni ordinati al cliente.
L
slide 32 di 36
Descrizione in linguaggio naturale: (1) Il commesso ha beni da spedire
(2.a) Il commesso analizza se spedizione normale o speciale
(2.a.1) Se spedizione normale
(2.a.1.1) Il commesso controlla se è necessaria una assicurazione extra
(2.a.1.a) Il commesso compila la scheda del corriere
(2.a.1.b) Il reparto logistico acquisisce assicurazione extra (se necessaria)
(2.a.2) Se spedizione speciale (assicurazione inclusa dal corriere)
(2.a.2.1) Il commesso richiede preventivi a vari corrieri
(2.a.2.2) Il commesso assegna un corriere e compila i dettagli
(2.a.2.3) (Si attende che termini il segmento 2.a.1 e si passa al punto 3)
(2.b) Il magazziniere imballa i beni
(3) Il magazziniere compila i dettagli e sposta il pacco nell’area di raccolta
(4) I beni sono disponibili per la spedizione
N.B.: Per i rami paralleli o inclusivi si usano le lettere (a,b,c,…) per i rami esclusivi
si usano i numeri arabi (1,2,3,…).
slide 33 di 36
Pizza collaboration Modello di interazione tra un cliente, che ordina una pizza, e un venditore.
slide 34 di 36
Descrizione in linguaggio naturale: (1) Il cliente ha voglia di pizza
(2) Il cliente ordina una pizza presso il venditore
(3) Il cliente attende di ricevere la pizza
(3.1) Se arriva la pizza entro un’ora dall’ultima richiesta
(3.1.1) Il cliente paga la pizza
(3.1.2) Il cliente prende la ricevuta di pagamento
(3.1.3) Il cliente mangia la pizza
(3.1.4) La voglia di pizza è terminata
(3.2) Se passa un’ora dall’ultima richiesta
(3.2.1) Il cliente chiede nuovamente la pizza
(3.2.2) Il cliente viene tranquillizzato
(3.2.3) (3)
(1) Il commesso della pizzeria riceve un ordine, che inoltra allo chef
(2.a) Se successivamente il cliente chiedera’ informazioni sulla pizza non ancora
pervenuta, il commesso cerchera’ di tranquillizzarlo
(2.b.1) Lo chef cuoce la pizza
(2.b.2) L’addetto alle consegne consegna la pizza
(2.b.3) L’addetto alle consegne riceve il pagamento e rilascia la ricevuta.
(3) Fine
slide 35 di 36
Assegnazione del Premio Nobel L’assegnazione di un Premio Nobel è un processo lento e delicato, che ogni anno
coinvolge circa 3000 candidati, solo nella sezione Medicina.
slide 36 di 36
Descrizione in linguaggio naturale: (01) Siamo a Settembre dell’anno prima della premiazione
(02) Il Comitato invia un modulo a 3000 nominatori estratti da un archivio
(03) Il Nominatore riceve il modulo
(04) Il Nominatore identifica potenziali nomine
(05) Il Nominatore invia al Comitato le nomine
(06) Le nomine sono state inviate
(07) Il Comitato raccoglie i moduli delle nomine e le memorizza in un archivio
(08) Il Comitato fa una cernita e seleziona dei candidati preliminari
(09) Il Comitato determina se occorre assistenza di esperti
(10) Se non occorre assistenza di esperti (29)
(11) Il Comitato manda agli esperti una lista di candidati preliminari
(12) L’esperto riceve la lista di candidati preliminari
(13) L’esperto valuta il lavoro dei candidati
(14) L’esperto invia un rapporto di valutazione
(15) L’esperto ha terminato la sua valutazione
(16) Il Comitato raccoglie le valutazioni degli esperti
(17) Le valutazioni sono memorizzate in un archivio
(18) Il Comitato seleziona i candidati finali e i relativi lavori
(19) Il Comitato redige i rapporti di raccomandazione
(20) Il Comitato invia i rapporti con le raccomandazioni
(21) L’Assemblea riceve i rapporti con le raccomandazioni
(22) L’Assemblea discute le nomine
(23) L’Assemblea seleziona i premiati
(24) L’Assemblea convoca i premi Nobel
(25) I Premi Nobel ricevono la convocazione
(26) L’Assemblea termina le convocazioni
(27) Il Comitato gestisce la cerimonia di premiazione
(28) Fine
Università di Pisa – Polo Sistemi Logistici
Economia e Legislazione dei Sistemi Logistici
Fondamenti di Informatica per la Logistica (Prof. G. Dini)
“Le grandi e complesse organizzazioni aziendali sono la manifestazione tangibile della tecnologia avanzata, più delle stesse macchine” ( J.K. Galbraith)
Introduzione alla modellazione e alla esecuzione
di flussi di attività (workflow)
Parte II: esecuzione
Mario G.C.A. Cimino, www.iet.unipi.it/m.cimino, Dipartimento di Ingegneria dell’Informazione
slide 2 di 32
Business Process Visual Architect 5
Suite per simulare l’esecuzione di processi.
Download: http://www.visual-paradigm.com/download/bpva.jsp;
Decomprimere, eseguire bin/ Business Process Visual ARCHITECT 10.exe;
Workspace: selezionare una cartella come spazio di lavoro;
Evaluation: licenza mensile;
Legenda:
digita premi seleziona con tasto sx seleziona con tasto dx
slide 3 di 32
Primo diagramma:
1. File New Project;
2. Project name (es. mioprogetto);
3. Create blank project;
4. Si apre automaticamente un Business Process Diagram;
5. Creare il diagramma con la tavolozza di sinistra.
slide 4 di 32
6. Modeling Simulacian;
7. Selezionare un task, inserire durata e costo necessari per completarlo una volta.
slide 5 di 32
8. Dati relativi a ogni attività del modello.
Attività Durata media (min) Costo medio (EUR)
Taglio 25 16
Preparazione Componenti (interna) 28 31
Preparazione Componenti (esterna) 24 48
Assemblaggio (interno) 93 67
Assemblaggio (esterno) 68 93
Controllo qualità e confezionamento 42 26
Esternalizzazione * 5 2
9. Definire il numero di risorse (pool) a disposizione1, la velocità di simulazione2 e la
valuta3;
slide 6 di 32
10. Creare uno scenario, cliccando su una parte bianca del modello e poi Add;
11. Inserire la frequenza di esecuzione dello scenario, il numero di casi (token);
12. Costruire il percorso riguardante lo scenario, tramite l’area Path.
slide 7 di 32
13. Scenari ipotizzati: produzione interna ed esterna.
slide 8 di 32
14. Cliccare su Play/Stop/Pause per eseguire gli scenari.
15. Triangoli rossi → token in attesa; pallino verde → token in elaborazione;
16. A fine simulazione appare il tempo ed il costo totale;
17. All’aumentare delle risorse (pool) aumenta il grado di parallelismo;
slide 9 di 32
18. All’aumentare dei casi aumentano i token (somma tempi e costi);
19. In caso di più scenari, i casi sono ripartiti in percentuale (es. 30% int.,70% est.);
20. Cliccando sull’icona a destra si ottengono dei grafici con l’andamento dei
parametri principali di simulazione;
21. Livello di completamento nel tempo: input da fornire, da elaborare ed elaborati:
slide 10 di 32
22. Uso delle risorse nel tempo:
slide 11 di 32
23. Tempo di accodamento
slide 12 di 32
24. Costo per flusso (costo d’uso)
slide 13 di 32
25. Costo complessivo dello scenario
26. Andamento temporale del costo
slide 14 di 32
27. Esercizio
Si supponga di dover produrre 40 borse, tramite una combinazione dei due scenari di
produzione interna ed esterna, con una sola bottega e un solo terzista. Simulare:
a) uno scenario di produzione totalmente interna, interpretare risultati/grafici;
b) uno scenario di produzione totalmente esterna, interpretare risultati/grafici;
c) individuare una combinazione degli scenari in grado di essere realizzata sia in
minor tempo sia in minori costi rispetto ai casi a) e b);
Soluzione
a) 100% → 5g 5h 20' 5600€, maggiore accodamento ultime fasi, provocato dalla
serialità del flusso;
b) 0% → 3g 6h 52' 7640€, maggiore accodamento su assemblaggio, essendo una
attività di maggiore durata;
c) svolgendo internamente una parte minore si bilancia l’assemblaggio e si riduce
l’accodamento, risparmiando nel tempo complessivo e in termini di costi:
Es. 20% → 3g 2h 38' 7232€
slide 15 di 32
Webratio 6 BPM
Suite per creare applicazioni web gestite da un workflow.
Download: http://www.webratio.com/portal/content/en/free-bpmn-editor
http://www.java.com/en/download
Setup Java: Doppio click sul pacchetto JRE-7, Install;
Setup Webratio: Doppio click sul pacchetto WebRatio 6 BPM, Next, Next,
Next, Install, Next, Finish, Togli la spunta su Show Release Note, Finish.
Workspace: selezionare una cartella come spazio di lavoro, OK;
Attivazione: user e pass bpmnlogistica; Activate (serve connessione ad
internet); Next; Finish;
slide 16 di 32
Legenda:
digita premi seleziona con tasto sx seleziona con tasto dx
Installare l’esempio Expense Report (rapporto di spesa):
1. File New Example;
2. Expense Report, Next, Finish;
Vogliamo realizzare un sistema web per coordinare tre ruoli nel seguente processo,
Expense Report, in cui un dipendente invia un rapporto alla sua compagnia e
richiede approvazione e pagamento delle due spese mensili.
slide 17 di 32
Descrizione in linguaggio naturale: (1) Nuovo rapporto di spesa
(2) Il Dipendente redige il rapporto di spesa
(3.1) Se la spesa supera i 100 Euro
(3.1.1) Il Supervisore fa la revisione del rapporto
(3.1.2.1) Se il Supervisore rifiuta il rapporto
(3.1.2.1.1) (2)
(3.1.2.2) Se il Supervisore approva il rapporto
(3.1.2.2.1) (4)
(3.2) Se la spesa è non superiore a 100 Euro
(3.2.1) (4)
(4) L’Economo conferma le ricevute
(4.1) Se l’Economo approva le ricevute
(4.1.1) L’Economo elabora la spesa
(4.1.2) Fine del rapporto di spesa
(4.2) Se l’Economo rifiuta le ricevute
(4.2.1) (2)
slide 18 di 32
Ecco come appare il BPM Editor all’apertura del processo
3. Pubblicare il processo: Publish process. Attendere circa un minuto per il
caricamento e il lancio automatico della web application (che risiede su Tomcat).
slide 19 di 32
slide 20 di 32
4. Login: (a) cliccare sull’icona a freccia corrispondente a un utente (username e
password si compilano automaticamente); (ii) cliccare su Login.
slide 21 di 32
5. Nuovo rapporto di spesa: entrare come John Doe (Impiegato):
6. Vedere le attività in attesa di essere processate (area centrale):
7. Avviare un nuovo processo: Start (area a sinistra)
slide 22 di 32
8. Redigere un rapporto di spesa intitolato “Sopralluogo presso Fixl”, spesa 200, note
“Indagine preliminare”, Write, aggiungere eventuali allegati, Finish.
slide 23 di 32
9. Logout. Entrare come Ronald Still (Supervisore). Appare una notifica (in alto a
dx) e una attività da processare (in basso al centro).
10. Cliccare su History Diagram (al centro della pagina), appare un diagramma con lo
stato corrente del processo:
11. Nel diagramma si nota che, essendo una spesa superiore a 200 Euro, il controllo
passa al Supervisore.
12. Chiudere il diagramma.
slide 24 di 32
13. Nella pagina Review Report, cliccare sul triangolino presente nella colonna di dx
della tabella “Work Items”
14. Cliccare sul triangolino presente nella colonna di dx.
15. Nella scheda User Input, accettare la spesa; Finish.
slide 25 di 32
16. Logout. Entrare come Douglas Martin (Tesoriere). Appare una notifica (in alto
a dx) e una attività da processare (in basso al centro). Procedere come nel caso del
supervisore, approvando la spesa.
slide 26 di 32
17. Cliccare in alto a destra su Completed Processes. Nella tabella dei processi
completati, cliccare sul simbolo di diagramma che appare nella terza colonna della
prima riga.
slide 27 di 32
18. Appare l’intero flusso percorso dal processo.
slide 28 di 32
19. Come modificare i parametri del modello.
Nel diagramma, selezionare il gateway “Evaluate Expense”. Cliccare, nella scheda
Properties (a sin.) sull’icona accanto a Condition Values.
slide 29 di 32
20. Appare una tabella delle condizioni, con le relative espressioni. Cliccare sull’icona
accanto a Expression per modificare l’espressione.
21. Nel diagramma, modificare anche le etichette che appaiono sui due rami.
22. Ripubblicare il processo e provare con un rapporto di spesa di 150 Euro, per
verificare che la soglia sia effettivamente cambiata.
23. Aggiungere altre informazioni al task “Edit Report”.
Supponiamo di voler aggiungere una proprietà “Rating” che esprime un punteggio
dato alla spesa. Un alto punteggio significa che è una spesa indispensabile, uno basso
significa che è qualcosa che si può evitare.
slide 30 di 32
24. Occorre modificare il Business Object. Nella scheda BPM Explorer, espandere il
ramo Business Objects, doppio click su Report, Add, e aggiungere una riga con la
proprietà Employee Rating, di tipo integer. Cliccare sul simbolo floppy (sulla barra
in alto) per salvare le modifiche.
25. Per rendere il nuovo campo visibile ed editabile: (i) tornare sul diagramma di
processo (tramite la scheda BPM Explorer), (ii) selezionare il task Edit Report, (iii)
nella tab Properties, cliccare sull’icona accanto ad Activity Parameter.
26. Si apre una tabella dei parametri, dove è possibile spuntare le proprietà Visible ed
Editable di Employee Rating.
slide 31 di 32
27. Cliccare su ok, cliccare in alto a sinistra sul simbolo del floppy per aggiornare.
slide 32 di 32
28. Selezionare la voce Expense_Report nella scheda BPM Explorer, e Ripubblicare il
processo, ritornare sul browser, accedere a http://localhost:8080/ExpenseReport, e
riprendere come al punto 4.
29. Dopo essere entrati come John Doe, e aver avviato un nuova Expense Report,
notare l’apparizione del nuovo campo Employee Rating, quando si apre la scheda
Edit Report. Inserendo dei valori e cliccando su Finish viene svolto anche un
controllo sul tipo di valore inserito.
30. Spegnere la web application: (i) Start; (ii) Programmi; (iii) Webratio
Tomcat Stop;