Table Of ContentU P
NIVERSITÀ DEGLI STUDI DI ADOVA
DIPARTIMENTO DI MATEMATICA
CORSO DI LAUREA IN INFORMATICA
Realizzazione di un modulo di mining
multiprospettiva per un tool di process mining
analysis
Tesidilaureatriennale
Relatore: Laureando:
Prof. AlessandroSperduti GianmarcoMidena
Annoaccademico2015-16
2
Ringraziamenti
Vorrei innanzitutto ringraziare l’azienda Siav S.p.A. e tutti i suoi dipendenti per la serietà
ecompetenzadimostrataeperavermipermessodivivereun’esperienzadistagedeterminante
perlamiacrescitaprofessionale.
Ringrazio il mio tutor aziendale, Dott. Daniele Turato, per essere stato sempre disponibi-
leepazienteneimieiconfronti,eperavermiresopartecipedelledecisionirelativealcontesto
dellostage.
Vorrei esprimere i miei più sinceri ringraziamenti verso tutti i docenti da cui ho potuto im-
pararequalcosa,checonlaloroprofessionalitàmihannoguidatolungoquestopercorsodistudi.
Un ringraziamento particolare lo dedico però al Prof. Alessandro Sperduti, relatore della
miatesi,perlasuagentilezza,ilsuosupportoeiltempodedicatomiperpermettermidiconcre-
tizzarequestoimportantetraguardodellamiavita.
Desideroringraziaresentitamentelamiafamigliaeimieiparentiperavermiaiutatoesostenuto
durantequestopercorso.
Infine vorrei ringraziare i miei amici e conoscenti per essermi stati sempre accanto duran-
tequestiannidistudio.
Padova,Dicembre2015 GianmarcoMidena
Indice
1 Introduzione 10
1.1 Contestodelprogetto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Descrizionedellostage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Descrizionedell’azienda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Background 14
2.1 Esplosionedeidati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Limitidellamodellazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Processmining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Tipologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1.1 Processdiscovery . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1.2 Conformancechecking . . . . . . . . . . . . . . . . . . . . 17
2.3.1.3 Enhancement . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2 Alcuneprospettive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2.1 Prospettivadelflussodelcontrollo . . . . . . . . . . . . . . 18
2.3.2.2 Prospettivaorganizzativa . . . . . . . . . . . . . . . . . . . 18
2.3.2.3 Prospettivadeicase . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2.4 Prospettivatemporale . . . . . . . . . . . . . . . . . . . . . 19
2.3.3 Play-in,Play-outeReplay . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Modellazioneeanalisidiprocesso . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 L’artedellamodellazione . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.2 Modellidiprocesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.2.1 Sistemaatransizionedistati . . . . . . . . . . . . . . . . . 22
2.4.2.2 RetidiPetri . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.2.3 Workflownet . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.2.4 YAWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.2.5 BPMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.2.6 EPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.2.7 Reticausali . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3 Tecnologieutilizzate 27
3.1 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 AngularJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 D3.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 bpmn-js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 AngularMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.6 JSDoc3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3
4 INDICE
3.7 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.8 JAX-WS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.9 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.10 ApacheTomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Ingegneriadeirequisiti 33
4.1 Estrazionedeirequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Sorgentideirequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2 Tecnicheutilizzate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2 Modellazioneconcettuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1 Casid’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Classificazionedeirequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4 Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5 Tracciamentodeirequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6 Specificadeirequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.7 Utentidelsistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.8 Considerazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5 Progettazionearchitetturale 43
5.1 Principi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Decisioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Patternarchitetturale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3.1 Architetturaclient-servermultilivello . . . . . . . . . . . . . . . . . . 45
5.4 Vistedell’architettura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.4.1 Diagrammidisequenza. . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5 Considerazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6 Progettazionedidettaglio 49
6.1 Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1.1 bipod::frontEnd . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1.2 bipod::frontEnd::process . . . . . . . . . . . . . . . . . . . 51
6.1.3 bipod::frontEnd::bpmn . . . . . . . . . . . . . . . . . . . . . 52
6.1.4 bipod::frontEnd::filter . . . . . . . . . . . . . . . . . . . . 54
6.1.5 bipod::frontEnd::error . . . . . . . . . . . . . . . . . . . . . 55
6.1.6 bipod::frontEnd::shared . . . . . . . . . . . . . . . . . . . . 56
6.2 Designpatterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.1 Singleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.2.2 TemplateView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.2.3 Observer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.2.4 ChainofResponsibility . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.2.5 Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.2.6 DependecyInjection . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.2.7 AMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7 Verificaevalidazionedelsoftware 65
7.1 AnalisiStatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.2 Analisidinamica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.2.1 Tipiditest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
INDICE 5
7.2.2 Testdiunità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.2.3 Testdiintegrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.2.4 Testdisistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.2.5 Testdivalidazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8 Conclusioni 75
8.1 Obiettiviraggiunti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.2 Consuntivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.3 Materialeprodotto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.4 Conoscenzeacquisite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.5 Considerazionisullostage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.6 Considerazionisullapreparazioneaccademica . . . . . . . . . . . . . . . . . . 79
8.7 Sviluppifuturi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Acronimi 82
Glossario 84
Bibliografia 94
Elenco delle figure
1 InternetofEvents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 LogoSiavS.p.A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 IlciclodivitadelBPM mostraidiversiusideimodellidiprocesso . . . . . 16
[G] [G]
4 Processmining. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5 Play-out. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6 Play-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7 Replay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8 Esempiodisistemaatransizionedistati. . . . . . . . . . . . . . . . . . . . . . 22
9 EsempiodiretediPetri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
[G]
10 EsempiodidiagrammaYAWL . . . . . . . . . . . . . . . . . . . . . . . . . . 24
[G]
11 EsempiodidiagrammaBPMN . . . . . . . . . . . . . . . . . . . . . . . . . 25
[G]
12 EsempiodidiagrammaEPC . . . . . . . . . . . . . . . . . . . . . . . . . . 26
[G]
13 LogoAngular.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
[G]
14 StrutturaSOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
[G]
15 LogoJava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
16 LogoApacheTomcat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
17 UC1: Casod’uso pubblico. . . . . . . . . . . . . . . . . . . . . . . . . . . 36
[G]
18 UC2: Casod’uso privato. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
[G]
19 Suddivisionerequisitiperfonte. . . . . . . . . . . . . . . . . . . . . . . . . . 38
20 Suddivisionerequisitipercategoria. . . . . . . . . . . . . . . . . . . . . . . . 39
21 Suddivisionerequisitiperimportanza. . . . . . . . . . . . . . . . . . . . . . . 39
22 Esempiodiarchitetturaatrelivelli. . . . . . . . . . . . . . . . . . . . . . . . . 45
23 Selezionediuneventlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
[G]
24 Modificadellivellodidettagliodiattività . . . . . . . . . . . . . . . . . . . 47
[G]
25 Packagebipod::frontEnd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
26 Packagebipod::frontEnd::process. . . . . . . . . . . . . . . . . . . . . . . . . 51
27 Packagebipod::frontEnd::bpmn. . . . . . . . . . . . . . . . . . . . . . . . . . 52
28 Packagebipod::frontEnd::filter. . . . . . . . . . . . . . . . . . . . . . . . . . . 54
29 Packagebipod::frontEnd::error. . . . . . . . . . . . . . . . . . . . . . . . . . . 55
30 Packagebipod::frontEnd::shared. . . . . . . . . . . . . . . . . . . . . . . . . . 56
31 StrutturalogicadelpatternSingleton. . . . . . . . . . . . . . . . . . . . . . . 57
32 StrutturalogicadelpatternTemplateView. . . . . . . . . . . . . . . . . . . . . 58
33 StrutturalogicadelpatternObserver. . . . . . . . . . . . . . . . . . . . . . . . 59
34 StrutturalogicadelpatternChainofResponsibility. . . . . . . . . . . . . . . . 60
35 StrutturalogicadelpatternCommand. . . . . . . . . . . . . . . . . . . . . . . 62
36 StrutturalogicadelpatternDependencyInjection. . . . . . . . . . . . . . . . . 62
37 Graficosoddisfacimentorequisiti. . . . . . . . . . . . . . . . . . . . . . . . . 76
6
ELENCODELLEFIGURE 7
38 Consuntivodelleoredilavoro. . . . . . . . . . . . . . . . . . . . . . . . . . . 77
39 Esempiodimodelloconmolteprospettivecontemporaneamenteattive. . . . . . 80
40 Esempiodimodelloconanimazioni. . . . . . . . . . . . . . . . . . . . . . . . 81
Elenco delle tabelle
1 Requisitipiùrilevanti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2 Alcunitestdiunità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3 Alcunitestdiintegrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4 Alcunitestdisistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5 Alcunitestdivalidazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6 Codiceprodotto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7 DocumentazioneProdotta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8
ELENCODELLETABELLE 9
Sommario
La presente tesi di laurea rappresenta la relazione finale del lavoro svolto durante il perio-
do di stage dal laureando Gianmarco Midena, presso l’azienda Siav S.p.A. di Rubano (PD).
Lo stage è stato svolto alla conclusione del percorso di studi della laurea triennale, sotto la
supervisionedelProf. AlessandroSperdutiedelDott. DanieleTurato,edhaavutounaduratadi
circatrecentoventiore.
L’obiettivo dello stage è consistito nella realizzazione di un’applicazione prototipo per la
rappresentazione visiva e manipolazione di modelli di processo ottenuti come prodotto del
processodiprocessdiscovery .
[G]
Icontenutidellatesisisvilupperannoin7capitoli.
Nelprimocapitolovieneintrodottoiltemadellostage.
Nelsecondocapitolovengonodescrittelenozionifondamentalinecessariepercapirel’argo-
mentotrattatodallostage.
Nelterzocapitolovengonopresentateletecnologieutilizzatedurantelostage.
Nelquartocapitoloverrannodescritteleattività svolteeiprodottiottenuticonl’ingegneria
[G]
deirequisiti.
Nelquintocapitoloverrannodescritteleattività svolteeiprodottiottenuticonlaprogettazio-
[G]
nearchitetturale.
Nelsestocapitoloverrannodescritteleattività svolteeiprodottiottenuticonlaprogettazione
[G]
didettaglioeconl’implementazionedelsoftware.
Nelsettimocapitoloverràtrattatalafasediverificaevalidazionedelsoftware.
Nell’ottavocapitoloverrannoinfineesposteleconsiderazioniconclusivesulprogettoesull’e-
sperienzalavorativa.
Nell’ultimapartesonopresentiappendicieilglossario.
Glossario
Nell’appendiceèpresenteunglossariocontenenteledescrizioniditutteleparoleosequenzedi
paroleaventiapedicelasequenzadicaratteri“[G]”.
Capitolo 1
Introduzione
Oggisonoinmoltiaconsiderareidatiunadellepiùgrandiricchezzedellasocietàmoderna.
Si pensi che attualmente in 10 minuti vengono prodotti molti più dati rispetto a tutti quelli
prodottiapartiredaitempidellapreistoriafinoa10annifa.
Ciascunindividuogeneradatiinognimomento,anchesenzarenderseneconto,sibastipensare
adunasemplicetelefonata,all’inviodiun’e-mailoadunacquistomediantecartadicredito.
L’insiemeformatodatuttiidatigeneratieregistratiprendeilnomediinternetdeglieventio
InternetofEvents.
L’internetdeglieventiècostituitodaquattrodiversesorgentidieventi :
[G]
Figura1: InternetofEvents.
• l’internetdeicontenuti(oInternetofContent),associatoalconcettoclassicodiinternete
dibigdata ,eaventetraisuoiprincipalirappresentantiGoogleeWikipedia;
[G]
• l’internetdellepersone(oInternetofPeople),associatoalconcettodisocial,ecostituito
datuttiglieventi socialichegeneranodati,comeimessaggidiTwittereFacebook;
[G]
10
Description:Per la realizzazione del front-end[G] è stato utilizzato AngularJS, un D3.js è una libreria[G] JavaScript per la manipolazione di documenti basata sui dati. Essa hardware: parte fisica di un computer, ovvero tutte quelle parti elettroniche, elettriche, mecca- .. wp-content/uploads/2013/08/bpmn.