Analisi e reingegnerizzazione di un applicativo MES

51
Università degli Studi di Padova Dipartimento di Matematica "Tullio Levi-Civita" Corso di Laurea in Informatica Analisi e reingegnerizzazione di un applicativo MES Tesi di laurea triennale Relatore Professor Tullio Vardanega Laureando Berselli Marco Anno Accademico 2016-2017

Transcript of Analisi e reingegnerizzazione di un applicativo MES

Page 1: Analisi e reingegnerizzazione di un applicativo MES

Università degli Studi di Padova

Dipartimento di Matematica "Tullio Levi-Civita"

Corso di Laurea in Informatica

Analisi e reingegnerizzazione di unapplicativo MES

Tesi di laurea triennale

Relatore

Professor Tullio Vardanega

Laureando

Berselli Marco

Anno Accademico 2016-2017

Page 2: Analisi e reingegnerizzazione di un applicativo MES

Berselli Marco: Analisi e reingegnerizzazione di un applicativo MES, Tesi di laureatriennale, c© Dicembre 2017.

Page 3: Analisi e reingegnerizzazione di un applicativo MES

Sommario

Il presente documento descrive il lavoro svolto, durante il periodo di stage della duratadi trecentoventi ore, dal laureando Berselli Marco presso l’azienda Sanmarco Informati-ca S.p.A.Gli obbiettivi da raggiungere erano molteplici e sono stati svolti nel seguente ordine.Per introdurre il laureando all’applicativo, innanzitutto, era richiesta la comprensionedel dominio MES, la configurazione degli ambienti di sviluppo e lo studio delle tecnolo-gie.Il laureando, inserito all’interno di un team, doveva analizzare diverse parti dell’appli-cativo già esistente. Per ogni parte creava un documento che indicasse gli errori rilevatie che dovevano essere risolti, eventualmente anche attraverso una re-ingegnerizzazione.Disegnava i casi d’uso, attività che nel prodotto precedente non era stata definita.Definiva le linee guida per la re-ingegnerizzazione del software, in modo tale che il teamvenisse agevolato nella attività di sviluppo.Infine, sviluppava una parte dello strumento di migrazione del database, affinché leaziende che avevano installato il software vecchio potessero spostare, facilmente, i datia quello nuovo.

iii

Page 4: Analisi e reingegnerizzazione di un applicativo MES
Page 5: Analisi e reingegnerizzazione di un applicativo MES

Ringraziamenti

Ringrazio tutti i docenti dell’università, in particolare vorrei esprimere la mia gratitudi-ne al Professor Tullio Vardanega per l’aiuto e il sostegno fornitomi durante la stesuradella relazione di stage.

Desidero ringraziare con affetto i miei genitori per l’appoggio, il grande aiuto e peressermi stati vicini in ogni momento durante gli anni di studio.

Padova, Dicembre 2017 Berselli Marco

v

Page 6: Analisi e reingegnerizzazione di un applicativo MES
Page 7: Analisi e reingegnerizzazione di un applicativo MES

Indice

1 Contesto aziendale 11.1 Profilo aziendale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Principali servizi e prodotti . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1 Jgalileo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.2 4words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.3 Next BI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.4 Discovery Quality . . . . . . . . . . . . . . . . . . . . . . . . . 51.2.5 SMITech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Rapporto con l’innovazione . . . . . . . . . . . . . . . . . . . . . . . . 61.4 Metodologia di sviluppo . . . . . . . . . . . . . . . . . . . . . . . . . . 71.5 Tecnologie utilizzate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.5.1 Sviluppo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5.2 Versionamento e Configurazione . . . . . . . . . . . . . . . . . 101.5.3 Manutenzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.5.4 Documentazione . . . . . . . . . . . . . . . . . . . . . . . . . . 111.5.5 Supporto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Stage 132.1 Punto di vista dell’azienda . . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Obiettivi e vincoli dello specifico stage . . . . . . . . . . . . . . . . . . 14

2.2.1 Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.2 Vincoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3 Scelta personale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Il progetto 173.1 Periodo di formazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.1 Studio del prodotto . . . . . . . . . . . . . . . . . . . . . . . . 173.1.2 I problemi del precedente prodotto . . . . . . . . . . . . . . . . 18

3.2 Analisi del database . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.3 Flussi di acquisizione dati . . . . . . . . . . . . . . . . . . . . . . . . . 213.4 Analisi user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.5 Casi d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.6 Progettazione e programmazione . . . . . . . . . . . . . . . . . . . . . 283.7 Verifica e validazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.7.1 Verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.7.2 Validazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.8 Riepilogo finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

vii

Page 8: Analisi e reingegnerizzazione di un applicativo MES

viii INDICE

4 Valutazioni Retrospettive 314.1 Obiettivi raggiunti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 Bilancio formativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.3 Gap di conoscenze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Appendice A 35BPMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Glossario 37

Acronimi e abbreviazioni 39

Bibliografia 41

Page 9: Analisi e reingegnerizzazione di un applicativo MES

Elenco delle figure

1.1 Logo di Sanmarco Informatica S.p.A. . . . . . . . . . . . . . . . . . . . 11.2 Processi coinvolti in un ERP . . . . . . . . . . . . . . . . . . . . . . . 21.3 Schema di un CRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Metodo di sviluppo Scrum . . . . . . . . . . . . . . . . . . . . . . . . . 71.5 Rappresentazione dell’architettura multi-tier di JMES . . . . . . . . . 91.6 Ambiente web di Google drive . . . . . . . . . . . . . . . . . . . . . . . 101.7 Plug-in di Subversion installato in Eclipse . . . . . . . . . . . . . . . . 101.8 Esempio di creazione di un caso d’uso in Astah . . . . . . . . . . . . . 111.9 Email aziendale IBM iNotes . . . . . . . . . . . . . . . . . . . . . . . . 121.10 Skype, esempio di chat . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1 Logo di Stage-IT 2017 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Tabelle degli eventi, dialogo operatore e supervisore . . . . . . . . . . 193.2 Tabelle Eventi Ristrutturate . . . . . . . . . . . . . . . . . . . . . . . . 203.3 Tabelle Dialogo operatore e Supervisore unite e ristrutturate . . . . . 203.4 Flusso di bolla aggraffata . . . . . . . . . . . . . . . . . . . . . . . . . 213.5 Flusso della bolla aggraffata ristrutturato . . . . . . . . . . . . . . . . 223.6 Pagina principale utilizzata dall’operatore . . . . . . . . . . . . . . . . 233.7 Mockup della pagina principale . . . . . . . . . . . . . . . . . . . . . . 243.8 Form di scelta della macchina . . . . . . . . . . . . . . . . . . . . . . . 243.9 Mockup della selezione macchina . . . . . . . . . . . . . . . . . . . . . 253.10 Attori dei casi d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.11 UC34 - Pre-requisiti da svolgere prima di iniziare un’azione . . . . . . 263.12 UC0 - Pagina principale dove si interfaccia l’operatore . . . . . . . . . 27

4.1 Elemento task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.2 Elemento task chiamante . . . . . . . . . . . . . . . . . . . . . . . . . 354.3 Gateway esclusivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.4 Gateway parallelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.5 Connessione di sequenza . . . . . . . . . . . . . . . . . . . . . . . . . . 364.6 Evento d’inizio flusso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.7 Evento di fine flusso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

ix

Page 10: Analisi e reingegnerizzazione di un applicativo MES

x ELENCO DELLE TABELLE

Elenco delle tabelle

4.1 Obiettivi raggiunti durante lo stage . . . . . . . . . . . . . . . . . . . . 31

Page 11: Analisi e reingegnerizzazione di un applicativo MES

Capitolo 1

Contesto aziendale

1.1 Profilo aziendale

Figura 1.1: Logo di Sanmarco Informatica S.p.A.

Sanmarco Informatica S.p.A. è una software house specializzata nello sviluppo delleapplicazioni gestionali. La società, nata negli anni ’80, è diventata un’azienda italianacardine per la creazione e sostegno dell’organizzazione dei processi aziendali. Grazieal suo impegno, negli anni, riesce diventare la prima e unica azienda italiana a farparte dell’OpenPOWER Foundation di IBM. Nel 2016 arriva tra le finaliste di BeaconAward, un premio a livello mondiale che va alle migliori aziende per la proposta disoluzioni innovative che utilizzano il sistema IBM Power Systems.Attualmente l’azienda conta più di 320 persone fra dipendenti e collaboratori, 13distributori e 4 sedi:

∗ Grisignano di Zocco (VI);

∗ Reggio Emilia (RE);

∗ Tavagnacco (UD);

∗ Vimercate (MB).

1

Page 12: Analisi e reingegnerizzazione di un applicativo MES

2 CAPITOLO 1. CONTESTO AZIENDALE

1.2 Principali servizi e prodotti

1.2.1 JgalileoJgalileo è la soluzione Enterprise Resoursce Planning (ERP) della Sanmarco InformaticaS.p.A. L’applicativo ha diverse versioni che si adattano in base al tipo di settore. Leprincipali sono:

∗ Alimentare e Distribuzione Food :Nasce dalle esigenze specifiche del settore,principalmente la sicurezza alimentare;

∗ Automotive e "bianco": Rivolta ad aziende produttrici di veicoli ed elet-trodomestici. La versione viene snellita e velocizzata in quanto ha pochetransazioni;

∗ Cantine e Distillerie: Dalla filiera alla bottiglia, ottimizzazione degli strumentispecifici per la gestione del vigneto e della cantina;

∗ Industria del mobile: Rivolta principalmente alle falegnamerie e a coloro chetrattano la lavorazione del legno;

∗ Edilizia: Fornisce una soluzione alle imprese di costruzione normali e a quelleche operano sui grandi appalti (impianti elettronici ,meccanici e termici);

∗ Moda: Risponde alle necessità di consegnare al mercato ciò che specificatamenterichiede, al momento opportuno e nelle giuste quantità;

∗ Produzione in serie: Soluzione per le aziende che hanno prodotti standard,dove la produzione avviene prima della domanda ed ha una complessità limitata;

∗ Produzione su commessa: Utilizzata dalle aziende che lavorano su progettie prodotti su richiesta specifica del cliente. Il prodotto ha come obiettivo leaziende che hanno situazioni complesse di preventivazione, consuntivazione costi,materiali ed attività.

Figura 1.2: Processi coinvolti in un ERP

Page 13: Analisi e reingegnerizzazione di un applicativo MES

1.1. PROFILO AZIENDALE 3

1.2.2 4words4words è un servizio di web marketing e web business che focalizza il lavoro su4 aree: Efficacia, Funzionalità, Flessibilità e Innovazione. Il servizio spazia dallesemplici consultazioni alla realizzazione di siti web, applicazioni per smarthphone eposizionamento del sito web(Search Engine Optimization (SEO)). Il servizio inoltrepropone dei prodotti che sono:

∗ Jgalileo CRM e app iCRM: Prodotto Customer Relationship Managment(CRM) presente nel applicativo Jgalileo. Il prodotto viene utilizzato attraversoil web oppure l’applicazione per dispositivi iOS . Lo scopo dell’applicativo è laconsultazione dei dati relativi alle attività aziendali e operatori esterni;

Figura 1.3: Schema di un CRM

∗ App cataloghi e Raccolta ordini: Prodotto nato dall’esigenza delle aziende diavere una applicazione che cataloga e raccoglie ordini. Le principali funzionalitàpermettono di:

– Gestire contatti;– Visualizzare i documenti aziendali relativi alla struttura vendite;– Visualizzare un catalogo di prodotti;– Raccogliere gli ordini.

∗ App Asistenza Tecnica: Applicazione nata per manutentori e tecnici che gesti-sce gli interventi programmati in giornata. L’applicazione è sempre sincronizzatacon il software gestionale di riferimento. Per ogni intervento da parte del tecnico,si possono inserire i dati non solo a livello descrittivo ma anche attraverso foto;

∗ Web Marketing, SEO e Social Media : Il servizio permette di posizionareun sito web, già esistente, di una azienda nei motori di ricerca in una posizionemigliore, attraverso e-mail e il social marketing ;

∗ Realizzazione siti internet: Il servizio per la creazione di siti web con altanavigabilità, usabilità e alto posizionamento nei motori di ricerca;

∗ Corsi e Workshop: I workshop sono corsi di formazione gratuiti che consentonodi restare aggiornati su un determinato campo d’interesse. I corsi di formazione,invece, sono dei corsi full immersion che permettono di formare del personaleaziendale.

Page 14: Analisi e reingegnerizzazione di un applicativo MES

4 CAPITOLO 1. CONTESTO AZIENDALE

1.2.3 Next BI

Next BI è un servizio in collaborazione con alcune università italiane. Next BI hacome attività di ricerca lo sviluppo delle conoscenze personali, supportare le aziendenei loro processi di miglioramento competitivo e misurarne le performance. La ricercasi concretizza quando si trasforma in progetti aziendali. Next BI propone al mercatodiverse soluzioni sia per diverse aree aziendali e mercati.Le soluzioni applicative sono:

∗ Analisi Vendite: Dedicata ai manager che vogliono monitorare in modosemplice e veloce le informazioni nell’area vendite;

∗ Analisi Acquisiti: Permette ai compratori di scegliere il miglior fornitore dalquale acquistare i prodotti;

∗ Data Management e Mining: Valutare le proprie strategie e migliorarle,individuare le nuove tendenze e valutarne un andamento nel futuro;

∗ Business Strategy: Esprime al meglio la direzione aziendale da perseguire.Simula, in base alle variazioni inserite, l’impatto di ogni scelta sulla redditivitàaziendale;

∗ Geomarketing e Location: Adatta alle aziende che operano, in generale,nell’ambito della distribuzione;

∗ Controllo qualità: Monitora la qualità e nel caso in cui sia necessario intervieneper migliorarla;

∗ Analisi produzione: Analizza in tempo reale il sistema produttivo, controllan-done l’andamento e la rilevazione di inefficienze;

∗ Analisi risorse umane: Ottimizzazione degli investimenti in Risorse umane;

∗ Financial Managment: Crea dei grafici multidimensionali a partire dai datipresenti e simula scenari previsionali per raggiungere gli obiettivi strategicistabiliti;

∗ Marketing di prossimità: Proposte commerciali personalizzate in real time.Attraverso la geo-localizzazione identificare chi c’è nei pressi dell’area di interessee inviare messaggi commerciali personalizzati;

∗ Logistica e Magazzino: Tiene traccia delle movimentazioni, delle merci e laloro valorizzazione;

∗ Economico Finanziare: Monitora le rate scadute, l’andamento dei flussi dicassa, verifica la disponibilità finanziaria, simula scenari futuri e ne valuta i rischi;

∗ Instant Intelligence Next BI: Applicazione che effettua controlli in temporeale dei dati relativi alle vendite.

Page 15: Analisi e reingegnerizzazione di un applicativo MES

1.1. PROFILO AZIENDALE 5

1.2.4 Discovery QualityDiscovery Quality è un laboratorio di ricerca e sviluppo in collaborazione con leuniversità italiane. Si occupa principalmente di creare strumenti di organizzazione delsistema di gestione per la qualità, l’ambiente e la sicurezza. Il laboratorio si occupaanche di metodologie atte a migliore i processi interni grazie alla implementazione diun sistema documentale che viene abbinato a un Workflow management. La gestionedei processi viene regolamenta attraverso dei modelli organizzativi.Le soluzioni principali sono:

∗ Audit: Software nato con lo scopo di facilitare la verifica ispettiva, allo scopo diorganizzare gruppi e luoghi di ritrovo delle persone coinvolte nella verifica;

∗ Ambiente: gestisce segnalazioni di pericolo, i rischi connessi con le varie attività,i documenti relativi alle procedure e la valutazione degli impatti ambientali;

∗ Formazione: Aiuta le aziende nel organizzare corsi di formazione per il propriopersonale e quindi renderli più competenti nel loro campo;

∗ Resi e Reclami: Dall’analisi dei reclami e dei resi si possono estrarre i problemidei processi aziendali;

∗ Internet of Things: Per rendere più semplice lo scambio di informazioni,permette alle macchine e ai software di dialogare tra di loro;

∗ Gestione Processo: Funzionalità per gestire le attività in base ai flussi aziendalie assegnarle a secondo dei ruoli e delle responsabilità;

∗ Instant Intelligence: Applicazione per il monitoraggio in tempo reale delleattività nelle aree di sicurezza, qualità e ambiente; ;

∗ Sicurezza ed Infortuni: L’applicativo raccoglie i dati relativi agli infortuni,gestisce le visite mediche periodiche dei lavoratori e i dispositivi di protezionenecessari per la sicurezza;

∗ Valutazione Fornitori: Attraverso i diversi parametri, come la validità delprodotto, il servizio offerto , il rispetto delle date di consegna e il prezzo deiprodotti, si valutano i fornitori;

∗ Gestione Documentale: Ha come scopo quello di tracciare e controllare leversioni e l’approvazione dei documenti;

∗ Non Conformità e Costi della non Qualità: Software che gestisce attraversodegli appositi documenti la non conformità dei prodotti. I documenti portano adavere informazioni rilevanti come il costo del materiale e le ore lavorate;

∗ Controllo Qualità : Effettua controlli di tipo qualitativo e definisce delle regoleper la conformità dei prodotti;

∗ Metrologia e Manutenzioni: Gestisce gli strumenti di misura e la loromanutenzione; ;

∗ Gestione Personale e Profili di Ruolo: Salva i dati anagrafici dei dipendentiin modo tale da poter gestire al meglio la loro posizione lavorativa;

∗ Performance Management: Attraverso l’analisi dei dati aziendali, si controllalo stato del sistema di gestione evidenziando dove sia necessario intervenire.

Page 16: Analisi e reingegnerizzazione di un applicativo MES

6 CAPITOLO 1. CONTESTO AZIENDALE

1.2.5 SMITechSMITech è un ramo aziendale che offre dalle consulenze alle realizzazione di progettid’infrastruttura. Il ramo a sua volta si può dividere in quattro settori:

∗ Security Operation Center (SOC): Prodotto che assicura la sicurezza infor-matica attraverso monitoraggio e servizi gestiti con la cyber security. Il serviziooffre anche assistenza nel caso di aggiunta di funzionalità, violazioni di sistema eaggiornamento/configurazione hardware.

∗ Soluzioni IBM Power Systems: Servizio di sviluppo di applicazioni, in basealle esigenze, sui server IBM Power Systems. L’azienda inoltre offre dei pacchettigià predisposti che sono:

– Gestione del sistema;

– Backup;

– Gestione del spazio sugli hard disk ;

– Gestione della sicurezza.

∗ PowerJ: Servizio di Cloud Computing che incorpora l’ERP Jgalileo. I Ser-ver si basano sulla soluzione IBM Power Systems. Questo tipo di soluzione ècostantemente controllata dal servizio SOC;

∗ Cloud Computing on Site: Si tratta del servizio PowerJ, monitorato dallaSanmarco Informatica S.p.A, installato sul server dell’azienda richiedente.

1.3 Rapporto con l’innovazioneL’azienda ha un rapporto molto aperto con l’innovazione, infatti ha creato delle sezioniaziendali dedicate alla ricerca di nuovi prodotti (Next BI e Discovery Quality). Questesezioni sono sempre in collaborazione con l’università di Padova, attraverso la societàUnismart Padova Enterprise e Osservatorio Industria 4.0 della School of Managmentdel Politecnico di Milano.L’azienda ha anche come obiettivo il costante rinnovo degli applicativi che risultanoobsoleti e poco efficienti. In questo modo l’azienda può essere utile al mercato sfruttandonuove tecnologie come ad esempio il Cloud Computing.Il mercato principale di riferimento della Sanmarco Informatica sono quei clienti chepuntano all’industria 4.0. L’industria 4.0 è un termine che indica una tendenza, da partedi alcune aziende, all’automatizzazione industriale con nuove tecnologie produttive.Queste tecnologie puntano a migliorare le condizioni di lavoro, la produttività e laqualità degli impianti.

Page 17: Analisi e reingegnerizzazione di un applicativo MES

1.4. METODOLOGIA DI SVILUPPO 7

1.4 Metodologia di sviluppo

Figura 1.4: Metodo di sviluppo Scrum

La metodologia di sviluppo che utilizza l’azienda è quella Agile di tipo Scrum. Lametodologia Scrum si basa sulla idea che le decisioni si prendono su ciò che si conosce.Per fare ciò, la metodologia ha tre regole da rispettare:

∗ Trasparenza: Il team deve avere un linguaggio comune e ben definito in modotale da non avere dubbi o incomprensioni;

∗ Ispezione: La capacità di ispezionare gli avanzamenti molto frequentemente inmodo tale che il prodotto rimanga all’interno dei requisiti e non devii.

∗ Adattamento: La capacità di chi ispeziona di poter modificare parti nonaccettabili del prodotto in modo rapido per ridurre al minimo lo scarto rispetto agliobiettivi stabiliti. Questa attività avviene unicamente in determinate occasioni:

– Sprint Planning Meeting;– Daily Scrum;– Sprint Review.

Scrum si basa sull’idea di dividere il progetto in blocchi rapidi di incremento chiamatiSprint che vanno da una a quattro settimane. Ognuno di essi nasce da un meetingdove avviene il controllo del lavoro svolto nello Sprint precedente e viene definitocosa fare nell’immediato futuro. Nella pianificazione di ogni Sprint vengo fissati degliobiettivi che non possono essere cambiati. Al termine dello Sprint il team illustra alcommittente una copia funzionante del prodotto, contenente gli avanzamenti propostinegli obiettivi. Dai requisiti(product backlog) il team, per ognuno ne programma iltempo per lo svolgimento e li inserisce nello Sprint attuale(Sprint backlog). Per ogniSprint backlog vengono creati dei task(anche detti ticket) che permettono di svolgereun lavoro in giornata.Per garantire la fattibilità del prodotto, Scrum prevede degli eventi organizzati eregolari. Gli eventi principali sono:

Page 18: Analisi e reingegnerizzazione di un applicativo MES

8 CAPITOLO 1. CONTESTO AZIENDALE

∗ Sprint planning meeting: All’inizio di ogni Sprint il team di sviluppo siriunisce. Il team seleziona il lavoro da fare e per ogni product backlog ne definisceil tempo di svolgimento;

∗ Daily Scrum: Ogni giorno durante lo Sprint, il team di sviluppo effettua unmeeting di un massimo di 15 minuti dove si parla di cosa è stato fatto rispettoalla riunione precedente, di cosa si farà e dei problemi riscontrati;

∗ Sprint review: Alla fine dello Sprint, il team di sviluppo si incontra con ilCommittente e si discute sui cambiamenti dei requisiti(product backlog), di quelloche si è fatto allo Sprint precedente e i problemi riscontrati. L’incontro halo scopo di promuovere nuove idee per migliorare il prodotto. Questo eventocontribuisce in modo significativo all’evento Sprint planning meeting se è previstouno Sprint successivo.

Ogni team che utilizza Scrum è composto in modo tale che sia indipendente. L’obiettivoè quello di ottimizzare i feed back da parte del committente, avendone più possibili. Ilteam in genere si compone di:

∗ Product Owner: Colui che commissiona, segue il prodotto e ne definisce irequisiti;

∗ Team di sviluppo;

∗ Scrum Master: Colui che cerca di "tenere motivato" il team di sviluppocercando di allontanarli dalle distrazioni e porre sfide per migliorare la squadra.Spesso è un ruolo diverso dal Project Manajer.

Page 19: Analisi e reingegnerizzazione di un applicativo MES

1.4. METODOLOGIA DI SVILUPPO 9

1.5 Tecnologie utilizzateLe tecnologie utilizzate dall’azienda sono diverse e vanno a formare un’infrastrutturaper lo sviluppo, versionamento, configurazione, manutenzione e documentazione deivari prodotti.

1.5.1 SviluppoLo sviluppo dell’applicativo avviene attraverso l’Integrated Development Enviroment(IDE) Eclipse che riesce a gestire diversi linguaggi di programmazione e permette diinstallare diversi plug-in al suo interno. L’azienda ha installato Subversion e Tomcat,un server che consente di eseguire una Applicazione web. L’applicazione che si stasviluppando è suddivisa in tre strati, che comunicano tra loro (chiamati tier):

∗ User interface: Attraverso i linguaggi HTML,CSS, Javascript e AngularJS.La user interface deve ancora essere sviluppata. Come scritto nella sezione didocumentazione viene preceduta da una analisi che porta a creare dei Mockup.La user interface sarà una single page application cioè una pagina web, più fluida,che si comporta come applicazione desktop;

∗ Business logic: Strato con priorità nella fase di sviluppo, in quanto è quelloche richiede più lavoro. Sviluppato con Java Enterprise Edition e con AngularJs,che fa da supporto con la Dependency Injection e crea i test dell’applicazione.Inizialmente si sviluppano le parti più critiche, come quella REpresentationalState Transfer (REST) dell’applicativo, che fa comunicare il client con la businesslogic. Lo sviluppo di parti critiche fin da subito è necessario perché, attraverso itest, c’è più probabilità che si individuino gli errori durante lo sviluppo di altreparti. Successivamente alle parti critiche, si passa alla parte di creazione deiflussi della business logic, ovvero le funzionalità richieste dall’applicativo, ancheesse precedute da un’analisi;

∗ Database: Il database è analizzato e re-ingegnerizzato a partire dalla parte delcore business, ovvero quella in cui risiedono la maggior parte dei dati. Per far ciòsi utilizza MySQL e MySQL Workbench che mi permette di avere una visionedel database attraverso uno schema, anziché solo testo.

Figura 1.5: Rappresentazione dell’architettura multi-tier di JMES

Page 20: Analisi e reingegnerizzazione di un applicativo MES

10 CAPITOLO 1. CONTESTO AZIENDALE

1.5.2 Versionamento e ConfigurazionePer il versionamento e la configurazione l’azienda utilizza due prodotti. Il primo èGoogle Drive salvae file e li condivide con gli altri membri del team. Viene utilizzatoper i documenti, mockup delle pagine web e i diagrammi Unified Modeling Language(UML). Drive non mantiene le versioni precedenti di un file, ma solo quelle con l’ultimamodifica effettuata. I file salvati non sono parte integrante del prodotto, quindi nonhanno l’obbligo di essere versionati perché Scrum ha come obiettivo l’interazionemassima con il committente. I documenti, comunque, vengono configurati attraversola creazione di cartelle specifiche per argomento.

Figura 1.6: Ambiente web di Google drive

Il secondo è Subversion che versiona e configura il codice sorgente, in modo che se cisono dei problemi si può tornare indietro con la versione precedente del file. Ognigiorno, alla mattina, avviene l’unione dei file provenienti dalla repository a quelli localie ogni sera avviene la pubblicazione del lavoro fatto in giornata. Inoltre il projectmanager cerca di assegnare lavori diversi a ogni membro, in questo modo si dovrebbeassicurare che i membri del team non lavorino agli stessi file. Si è deciso di adottarequesto metodo per evitare conflitti che interromperebbero il lavoro di qualche altromembro del team. La configurazione avviene attraverso i package dell’IDE Eclipse,dove il prodotto viene suddiviso in funzionalità. Per utilità Subversion, che è un clienta riga di comando, viene installato attraverso un plug-in all’interno di Eclipse. Inquesto modo l’azienda riesce a gestire più facilmente Subversion perché principalmen-te sviluppa con i sistemi operativi Windows e il plug-in garantisce una interfaccia utente.

Figura 1.7: Plug-in di Subversion installato in Eclipse

Page 21: Analisi e reingegnerizzazione di un applicativo MES

1.4. METODOLOGIA DI SVILUPPO 11

1.5.3 ManutenzioneLa manutenzione, purtroppo, non ho potuto vederla approfonditamente perché ilprodotto è ancora in fase di sviluppo. Da quello che ho visto, quando si individuavanodegli errori attraverso i test, scritti in AngularJS, si cerca di risolverli subito.

1.5.4 DocumentazioneLa documentazione secondo il metodo Scrum non è fondamentale per lo sviluppo diun applicativo, in quanto ci si relaziona principalmente con il committente o chi nefa le veci. La documentazione, quindi, viene usata per gestire in un modo migliorei concetti, requisiti ed informazioni che si vogliono comunicare al team. In questomodo le informazioni nel documento, rispetto alla voce, restano permanenti e sempreconsultabili. Per comodità, si usa il pacchetto Office di Microsoft, che permettedi scrivere documenti in modo più veloce rispetto a Latex che richiede anche laformattazione del testo.I documenti non sono solo testuali ma anche UML, ovvero dei disegni creati attraversoil programma Astah Professional.Inoltre prima di affrontare la parte di sviluppo dell’interfaccia d’uso di un’applicazionesi utilizza una Applicazione web chiamata Mockingbird che disegna a livello concettualeun Mockup delle pagine web. In questo modo si ha una visione generale dell’applicazionee quindi si rende più semplice lo sviluppo dell’interfaccia grafica.

Figura 1.8: Esempio di creazione di un caso d’uso in Astah

Page 22: Analisi e reingegnerizzazione di un applicativo MES

12 CAPITOLO 1. CONTESTO AZIENDALE

1.5.5 SupportoLa comunicazione tra dipendenti può avvenire attraverso due tecnologie. La prima,più formale, è l’email aziendale che consente di avere scambio di email tra i dipendentie clienti. La seconda tecnologia è Skype che permette di comunicare tra dipendentiin modo informale attraverso le chiamate utilizzando il Voice over IP (VoIP), ma ilsuo reale utilizzo all’interno dell’azienda è di chat tra dipendenti. In questo modo sifacilita lo scambio di informazioni, come per Scrum dove l’informazione deve essereveloce è immediata, rispetto all’email aziendale che è più "rigida" e sopratutto menoguardata durante l’arco della giornata.

Figura 1.9: Email aziendale IBM iNotes

Figura 1.10: Skype, esempio di chat

Page 23: Analisi e reingegnerizzazione di un applicativo MES

Capitolo 2

Stage

2.1 Punto di vista dell’aziendaSanmarco Informatica S.p.A è una società che è sempre alla ricerca di nuove risorse,persone giovani laureate o laureandi, da inserire all’interno dell’azienda. Il principalemetodo per proporsi a queste persone è attraverso eventi organizzati, principalmenteuniversitari, che puntano a far conoscere l’azienda con argomenti di interesse comune.Un’ulteriore opportunità sono gli stage obbligatori, fra i quali Informatica. Stage-IT èun evento, annuale, che favorisce l’incontro tra aziende e studenti per poter accordarsiper uno stage da svolgere. L’azienda si presenta con una descrizione generale delle loroattività, quindi non propone stage standard ma ritiene che debbano seguire le esigenzeaziendali del momento. Se uno studente è interessato gli si propone uno stage che ingenere ha come obbiettivo quello di integrare la risorsa all’interno di un team per farin modo che successivamente venga assunto.I vantaggi che l’azienda prevede, nell’inserire una persona in fase di laurea all’interno,sono molteplici.Innanzitutto lo stage permette all’azienda di valutare un possibile candidato al postodi lavoro, senza dover gravare di costi di stipendio ma bensì con un riconoscimento erimborso spese adeguati. Se lo stage va a buon fine, l’azienda può assumere lo stagista,annullando i tempi di ricerca del candidato ideale e riducendo il periodo di formazioneche è già avvenuto.Inoltre in modo più ampio, l’azienda mantiene relazioni costanti con il personaleaccademico dell’università e instaura nuove conoscenze che potrebbero portare a nuovecollaborazioni nell’ambito della ricerca.Lo stage proposto dall’azienda consiste in un reverse engineering di una soluzionesoftware già esistente chiamato JGalileo Manufacturing Execution System (JMES).Un software per la gestione di tempi e materiali di produzione di un’azienda. Lostage prevede una analisi tecnica del prodotto, permettendo all’azienda di individuareeventuali errori commessi e la riscrittura del prodotto rimuovendone i difetti riscontrati.Il tirocinante, inserito nel team già esistente, principalmente lo rafforza riducendone itempi di sviluppo.

Figura 2.1: Logo di Stage-IT 2017

13

Page 24: Analisi e reingegnerizzazione di un applicativo MES

14 CAPITOLO 2. STAGE

2.2 Obiettivi e vincoli dello specifico stage

2.2.1 ObiettiviAziendali

Gli obiettivi che l’azienda si prefigge nello stage si suddividono in obbligatori e deside-rabili.Obbligatori

∗ Studio degli ambienti e linguaggi di sviluppo: Utilizzando la ricerca diinformazioni sul web si impara cosa è un Manufacturing Execution System (MES)e attraverso la discussione con il tutor si chiariscono i dubbi ed eventualmente siapprofondiscono punti poco trattati nello studio.Successivamente si installano gli ambienti d’uso e si studiano le tecnologie chepermettono di sviluppare il prodotto;

∗ Definizione requisiti e struttura del database : Si analizza la parte fon-damentale del database, ovvero quella che contiene la maggior parte dei dati.Nel documento, che viene prodotto vengono descritte le tabelle, i campi e gliattori. Viene richiesto di individuare i problemi, segnalarli nel documento ere-ingegnerizzare il database per risolverli;

∗ Analisi dei flussi di acquisizione dati: Attività che ha come obiettivo vi-sionare i flussi disegnati con il software Activiti e ristrutturarli per rendere piùagevole lo sviluppo del prodotto;

∗ Analisi della business logic "utilizzata" dai flussi: Il compito è quello diispezionare il codice all’interno dei task presenti nei flussi e creare un documentoin cui viene riportato cosa avviene al loro interno;

∗ Analisi della user interface e degli use cases: Dall’analisi della userinterface si produce un documento nel quale viene descritta in dettaglio e dove sisegnalano gli errori, che attraverso la creazione dei Mockup, vengono risolti. Gliuse cases si creano utilizzando le analisi svolte sui flussi di acquisizione dati euser interface.

Desiderabili

∗ Definizione delle linee guida per la re-ingegnerizzazione: Si crea undocumento che spiega al team come evitare gli errori comuni come ad esempioquelli trovati nelle analisi precedenti;

∗ Sviluppo di un strumento per la migrazione del database : Strumentosviluppato con Java, con il quale si spostano i dati presenti nel vecchio database aad uno nuovo. Lo sviluppo non avviene in blocco con tutte le tabelle del database,ma è progressivo, in base alle tabelle sviluppate in modo definitivo in quellonuovo.

Page 25: Analisi e reingegnerizzazione di un applicativo MES

2.2. OBIETTIVI E VINCOLI DELLO SPECIFICO STAGE 15

2.2.2 Vincoli

Temporali

La durata dello stage è stata di trecentoventi ore lavorative che si sono ripartite in ottosettimane, dal lunedì al venerdì per otto ore. Il periodo è iniziato l’undici di luglio edè terminato il cinque di settembre con una pausa per la festa di Ferragosto, il quindicid’agosto. La giornata iniziava alle nove, pausa pranzo dalle tredici alle quattordici eterminava alle diciotto.

Le otto settimane sono state ripartite dal tutor, in questa maniera:

∗ Prima: Ricerca e studio sui concetti base di un MES, linguaggi e ambienti disviluppo;

∗ Seconda: Definizione dei requisiti e struttura del database;

∗ Terza e quarta: Analisi dei flussi di acquisizione dati;

∗ Quinta: Analisi della business logic dei flussi già esistenti;

∗ Sesta: Analisi user interface e use cases;

∗ Settima: Definizione di linee guida per la re-ingegnerizzazione del prodotto;

∗ Ottava: Sviluppo di uno strumento per la migrazione del database.

Tecnologici

I vincoli tecnologi vengono applicati per tutti i dipendenti, e sono:

∗ Strumenti di supporto:

– Principalmente l’azienda preferisce l’utilizzo di computer aziendali consistema operativo Windows. L’azienda comunque permette l’utilizzo delcomputer personale sia con i sistemi operativi Linux e Windows, a pattoche si installi in questi ultimi l’antivirus aziendale;

– L’azienda rende obbligatorio l’utilizzo della email aziendale, IBM iNotes, eSkype per le comunicazioni tra dipendenti.

∗ Tecnologie utilizzate: Le tecnologie che ho utilizzato non potevano esserescelte da parte mia, in quanto il progetto era di gruppo ed era già iniziato quandoil mio stage è partito. Inoltre le tecnologie scelte erano mirate alla creazione diuna Applicazione web.

Metodologici

I vincoli metodologici sono piuttosto larghi e mi permettono di poter interagire inmodo continuo con il team e il tutor aziendale. Quindi se c’è un problema o un dubbioci si può chiarire subito.Ogni fine del mese avviene in una unica riunione gli eventi di Sprint Rewiev e Sprintplanning meeting, che occupano un’intera giornata lavorativa, ai quali è obbligatoriopartecipare.

Page 26: Analisi e reingegnerizzazione di un applicativo MES

16 CAPITOLO 2. STAGE

2.3 Scelta personaleLa mia scelta personale riguarda l’approccio che l’azienda propone per creare unaApplicazione web rispetto a quella che io durante il progetto di Ingegneria del Softwareho visto.Innanzitutto non avevo mai lavorato con un metodo di sviluppo Agile e in una aziendaappartenente al settore informatico. Venire inserito all’interno di un team mi avrebbeaiutato a capire meglio, questi due interessi, rispetto solamente allo studio.C’erano tecnologie che mi interessava imparare e che non avevo mai utilizzato comeAngularJS. Volevo vedere come possono essere applicate tecnologie già conosciute alivello web, come Java che con il quale ho sempre realizzato applicativi desktop.Infine il progetto mi interessava approfondirlo per capire un po’ meglio come funzionanole industrie che installano questi prodotti software e perché li utilizzano.

Page 27: Analisi e reingegnerizzazione di un applicativo MES

Capitolo 3

Il progetto

3.1 Periodo di formazione

3.1.1 Studio del prodottoIl MES è uno strumento software per la gestione e controllo dei processi di produzionedell’azienda, che fa parte integrante dell’ERP JMES.Ogni azienda, che utilizza il software per produrre un articolo, ha uno o più cicli diproduzione che cambiano in base al tipo di lavorazione che viene utilizzata. Il ciclo,per distinguersi dagli altri, composto da varie fasi di lavorazione, viene indicato comeè lavorato il pezzo e i tempi per produrlo.Se un l’articolo è composto da più pezzi, viene usata una distinta base per raggrupparli.A sua volta se il pezzo di un articolo è composto da altri pezzi, avrà lo stesso la suadistinta base e molto probabilmente un suo ciclo di lavorazione.Quando un articolo viene ordinato da più clienti, circa nello stesso periodo, nel softwaregestionale anziché fare una lavorazione separata si uniscono gli ordini per creareun unico ordine di produzione, che può anche produrre in eccesso per un eventualemagazzino.Quando un ordine di produzione arriva al MES, sceglie il ciclo di lavorazione e quindi lesue fasi. Per ogni fase, il software crea delle bolle, ovvero dei lavori, contenti i dati taliper cui gli operai andranno a completare il lavoro nella maniera e nei tempi stabiliti.Le bolle a loro volta possono essere aggraffate tra di loro per creare un insieme di lavorida svolgere.Gli operai che vanno a lavoro, attraverso un terminale, accedono con il proprio badge,che ne registra la presenza. Da questo punto, possono iniziare lavorare le bolle, gliattrezzaggi delle macchine e le attività indirette, che sono ad esempio pulire i macchinario spazzare per terra. All’inizio di ogni attività di lavoro o attrezzaggio, si indica lamacchina con la quale si vuole lavorare e se si è in un lavoro di gruppo.Le attività possono essere interrotte attraverso tre metodi:

∗ Pausa: Un operaio che è in un gruppo, può interrompere il lavoro. Il lavoroviene interrotto esclusivamente per la parte dell’operaio mentre per il resto delgruppo prosegue. Il lavoro può essere ripreso al termine della pausa;

17

Page 28: Analisi e reingegnerizzazione di un applicativo MES

18 CAPITOLO 3. IL PROGETTO

∗ Sospensione: Viene utilizzata quando un operaio che non lavora in gruppo oppu-re tutti i membri del gruppo vogliono interrompere il lavoro per un breve periodo.La sospensione si ferma la macchina e poi si riprende il lavoro successivamentesenza andare a reimpostare i dati richiesti da un inizio lavoro;

∗ Fine Lavoro: La fine del lavoro, non è la conclusione della bolla. Infatti laconclusione della bolla avviene solamente al raggiungimento della quantità dipezzi richiesta. La fine lavoro indica che l’operaio o la squadra ha smesso dilavorare alla bolla. Se si volesse riprendere il lavoro bisogna reimpostarlo comese fosse un inizio lavoro.

La fine del lavoro e la sospensione richiedono ogni volta la dichiarazione della quantitàprodotta, scarta e non conforme.

3.1.2 I problemi del precedente prodotto

Durante la comprensione del domino del MES ho chiesto al tutor il motivo per il qualeil prodotto ha dovuto subire la re-ingegnerizzazione. Il motivo dell’errore è dovuto aduno strumento, scritto in Java, per la gestione dei processi aziendali chiamato Activiti,con il quale sono stati sviluppati i flussi di acquisizione dati del prodotto che sonodei disegni Business Process Model and Notation (BPMN). Il problema di Activitiriguarda l’inserimento dei dati all’interno del database, inserisce più righe rispetto aquelle previste dagli sviluppatori di JMES. Questo problema risulta gravoso quandograndi aziende vanno ad usare il prodotto. Le righe crescono molto velocemente erallentano la reperibilità dei dati e di conseguenza il prodotto stesso.

3.2 Analisi del database

L’analisi del database riguarda il core di quest’ultimo. Il core è l’insieme delle tabelleche compongono la maggior parte dei dati dell’applicativo. Il lavoro, assegnatomi,consisteva nel individuare gli errori del database e successivamente crearne uno nuovo.Il core del database si può dividere in tre aree che si distinguono per la loro funzionalità:

∗ Eventi: Dall’inizio oppure la ripresa di un lavoro, vengono inserite delle nuoverighe all’interno delle tabelle evento. Quando si va a finire, mettere in pausa o insospensione un lavoro si va ad aggiornare le righe. L’area eventi si può dividerein 4 tabelle:

– Uomo: sono presenti i dati in cui viene indicato chi è l’operatore, se èpresente in una squadra, in quale macchina sta lavorando ed le date d’inizioe di fine del lavoro;

– Uomo_Dettaglio: Le righe vengono inserite esclusivamente quando unoperatore inizia a lavorare ad una bolla aggraffata. Va calcolare dei datipresenti nelle varie bolle;

– Macchina: Le righe all’interno della tabella indicano, principalmente, qualè la macchina utilizzata, le date di inizio e fine lavoro, il ciclo e la fase dilavorazione, l’articolo e le quantità dei pezzi prodotti, scarti e non conformi;

– Macchina_Dettaglio: Tabella che raggruppa i dati macchina delle bolleaggraffate. Ogni bolla aggraffata ha le somme delle quantità delle bolle.

Page 29: Analisi e reingegnerizzazione di un applicativo MES

3.2. ANALISI DEL DATABASE 19

∗ Dialogo Operatore: Area che serve a riepilogare in maniera meno dettaglia-ta i dati delle tabelle Evento. Lo scopo di queste tabelle è di inviare i datiall’interfaccia grafica del prodotto, che sarà usata da un’operatore. In questomodo si evita di appesantire il prodotto evitando di chiedere al database datiinutili all’interfaccia grafica. Alla segnalazione della conclusione di un lavorola riga relativa viene cancellata dalle tabelle. L’area si divide in due tabelleDialogo_Operatore e Dialogo_Operatore_Dettaglio che riepiloga le tabelle dellebolle aggraffate;

∗ Supervisore: Area composta da una sola tabella, che riepiloga i dati delletabelle Evento. Serve per poter mostrare nell’iterfacia grafica del supervisore, ilavori in tempo reale che si stanno svolgendo all’interno dell’azienda. Le righe diquesta tabella vengono aggiornate periodicamente (Ad esempio: ogni 5 minuti)in modo tale da acquisire in tempo reale se la produzione sta avanzando e conquale frequenza.

Figura 3.1: Tabelle degli eventi, dialogo operatore e supervisore

Nell’attività di analisi ho notato dei problemi al database. I principali erroririscontrati, sono:

∗ Le tabelle non hanno riferimenti alle altre (foreign-key). Per questo motivo i dativengono replicati su diverse tabelle;

∗ L’attività indiretta non è rappresentata nel database;

∗ Nella tabella Macchina_Dettaglio, mancano dei dati fondamentali, come iriferimenti alle bolle in lavorazione e alle date relative all’inizio e fine lavoro;

∗ In Operatore_Dettaglio mancano dati relativi ai lavori svolti dall’operatorepresenti nella bolla aggraffate, lo stato del lavoro, ovvero pausa, sospensione efine.

Questi errori trovati, a mio parere, rendono più difficile reperire i dati, creando piùcomplessità nelle interrogazioni al database che per questo motivo viene rallentato.Per risolvere gli errori trovati, c’era bisogno di una re-ingegnerizzazione del database.La re-ingegnerizzazione delle tabelle evento è iniziata con la creazione di un tabellaevento generale. Questa tabella permette di rappresentare anche le attività indirette eattraverso le foreign-key, viene riferita dalle tabelle eventi macchina e operatore. Ulte-riormente, le tabelle dettaglio espandono le loro relative tabelle operatore e macchina.In particolare, la tabella Eventi_Dettaglio ha un campo che punta a se’ e permettealle bolle di riferire a quale bolla aggraffata appartengono.

Page 30: Analisi e reingegnerizzazione di un applicativo MES

20 CAPITOLO 3. IL PROGETTO

Figura 3.2: Tabelle Eventi Ristrutturate

Utilizzando lo stesso metodo, come per Eventi, anche Dialogo operatore vieneristrutturato. In particolare è avvenuta l’unione della tabella supervisore con quelladialogo operatore perché molti dei loro dati corrispondono. La tabella Dialoghi oltread essere riferita dalle tabelle Fermo ed Efficienza, che vanno ad aggiungerne ulterioridati, ha anche un riferimento alla tabella Evento per far in modo che, nel caso serva, sipossa avere tutti i dati disponibili. Questo riferimento viene soprattutto utilizzato peraggiornare periodicamente quei dati di cui il supervisore necessita. Infatti, avere unriferimento alla chiave dell’evento, facilita la scrittura delle query e le rende più velocirispetto a una ricerca in base a dei parametri.

Figura 3.3: Tabelle Dialogo operatore e Supervisore unite e ristrutturate

Page 31: Analisi e reingegnerizzazione di un applicativo MES

3.3. FLUSSI DI ACQUISIZIONE DATI 21

3.3 Flussi di acquisizione datiI flussi di acquisizione dati, nel precedente prodotto, sono stati scritti con Activiti, nelquale viene utilizzata la rappresentazione grafica BPMN.

Figura 3.4: Flusso di bolla aggraffata

Mi è stato indicato di re-ingegnerizzare i flussi a partire da quelli esistenti e di nonutilizzare i gateway ma esclusivamente la connessione di sequenza tra i task. Attraversoun task di domanda partono multiple connessioni di sequenza che segnalano con deltesto la risposta alla decisione.I flussi con pochi task devono essere incorporati all’interno dei flussi principali e quelliche non sono utili alla spiegazione del flusso possono essere inseriti in altri. I taskchiamanti una volta eseguiti devono avere task successivo di controllo di eventualierrori o attività di cancellazione o annullamento.La re-ingegnerizzazione ha permesso di rendere più semplici i flussi e quindi più capibilida parte del team.In seguito analizzando il codice all’interno dei task per capire meglio il funzionamen-to dei flussi. Ho creato un documento in cui descrivevo il "comportamento" di ogni task.

Page 32: Analisi e reingegnerizzazione di un applicativo MES

22 CAPITOLO 3. IL PROGETTO

Figura 3.5: Flusso della bolla aggraffata ristrutturato

3.4 Analisi user interfaceIl documento prodotto, attraverso immagini e testo, descrive l’analisi della user interfacerelativa alla parte dell’operatore. La conoscenza dei flussi, precedentemente ristrutturati,ha permesso di trovare ogni possibile percorso nei flussi di lavoro e vedere tutta laparte grafica. La parte grafica non ha gravi problemi. In generale gli errori riscontratisono relativi all’usabilità. L’usabilità se poco considerata, durante lo sviluppo, portaalla fine frustrazione nell’utilizzo da parte dell’operatore.I principali errori individuati sono:

∗ I problemi riscontrati nella pagina principale sono prevalentemente di scrolling.La pagina l’ho suddivisa in tre parti: in alto l’area della scelta dell’attività, alcentro lo "Stato delle macchine" e in basso le righe di riepilogo.

Page 33: Analisi e reingegnerizzazione di un applicativo MES

3.4. ANALISI USER INTERFACE 23

Figura 3.6: Pagina principale utilizzata dall’operatore

– Nell’area in alto troviamo il bottone "Nuova attività", che se premutomostra ulteriori bottoni che eseguono i flussi. Il problema dei bottoni è diessere tanti e di essere disposti sempre su due colonne con posizionamentocentrale. Questa posizione comporta all’operatore l’effettuare uno scroll perraggiungere il attività interessata.

– Nell’area centrale vengono riepilogati i lavori iniziati, in pausa o in so-spensione. Ogni lavoro viene identificato da un rettangolo che contiene leinformazioni principali. I lavori se diventano tanti obbligano l’operatore aeseguire uno scroll verticale per cercare il lavoro.

– Nell’area in basso si ripete il riepilogo dei lavori inseriti in riga e checontengono più informazioni rispetto alla rappresentazione dell’area centrale.Quest’area è la più problematica in quanto richiede sia lo scroll verticale eorizzontale.

Per risolvere i problemi presentati ho pensato di riprogettare la pagina. I bottonidi "Nuova attività" sono stati spostati sulla destra in questo modo sono più facilida trovare e sono posizionati abbastanza in alto da non dover ricorrere allo scroll.L’area centrale e quella in basso sono state rispettivamente inserite in una tabpermettendo ad entrambe di avere più spazio. Inoltre nell’area centrale vieneridotta la grandezza dei rettangoli e nell’area dei lavori in riga, le righe in basealla risoluzione dello schermo mostrano dati in più o in meno tra quelli superflui;

Page 34: Analisi e reingegnerizzazione di un applicativo MES

24 CAPITOLO 3. IL PROGETTO

Figura 3.7: Mockup della pagina principale

∗ Durante le attività di scelta di una macchina oppure di una dichiarazione diquantità, viene proposta una form contenente sia un riepilogo delle informazionisia dei dati da inserire. I dati della form sono in colonna e obbligano l’operatoread effettuare uno scroll verticale per visualizzarli tutti ed inserirli.

Figura 3.8: Form di scelta della macchina

Page 35: Analisi e reingegnerizzazione di un applicativo MES

3.5. CASI D’USO 25

Ho valutato questa soluzione, i dati di riepilogo della form vengono messi inriga e man mano che gli schermi si riducono di lunghezza passano ad una rigasuccessiva, compattandosi;

Figura 3.9: Mockup della selezione macchina

∗ In diverse pagine avviene un riepilogo dei lavori. I lavori riepilogati sono visualiz-zati in riga e spesso obbligano uno scroll orizzontale della pagina. Il problemaè dovuto al fatto che spesso si inseriscono dati aggiuntivi che non servono almomento e sono da contorno a quelli principali. Per sistemate il problema sipotrebbe, in base alla grandezza dello schermo, fare in modo che i dati aggiuntivivengano visualizzati o nascosti.

3.5 Casi d’usoQuesto tipo di attività non è mai stata fatta per il prodotto precedente e quindi nonavevo niente da analizzare. Ho utilizzato come punto di riferimento l’interfaccia graficae la mia conoscenza riguardante i flussi di acquisizione dati. Da parte del tutor mi èstato chiesto di concentrami particolarmente sulla parte riguardante l’operatore. Hoiniziato a cercare i principali attori per poi creare i casi d’uso.I principali attori individuati sono:

∗ Operatore: Persona che accede all’applicativo per portare a termine i lavoririchiesti dall’azienda;

∗ Operatore in Squadra: Persona che lavora in un team, che ha come obiettivovelocizzare il completamento di un lavoro. L’operatore per poter lavorare insquadra deve averne una già pre-stabilità, la quale verrà scelta all’inizio di ognilavoro;

Figura 3.10: Attori dei casi d’uso

Page 36: Analisi e reingegnerizzazione di un applicativo MES

26 CAPITOLO 3. IL PROGETTO

In seguito, sempre utilizzando l’interfaccia grafica, ho iniziato a creare il primocaso d’uso, quello più generale che è la pagina principale dell’operatore. A partire daquesto caso d’uso, iniziale, ho individuato al suo interno degli altri che a loro volta necontenevano altri ancora.I casi d’uso vengono identificati attraverso un nome composto da UC (che sta per usecase) e un numero al suo fianco. Casi d’uso principali ricavati, sono:

∗ UC0 Dialogo_operatore: La pagina iniziale in cui un operatore gestisce leproprie attività. Questo caso d’uso include tutti gli altri casi d’uso;

∗ UC1 Gestione note lavoro/lavoro macchina: Permette, a livello generaleper singolo utente, di annotare e visualizzare delle note personali. Il caso d’usoviene riutilizzato in UC6, dove è possibile scrivere una nota su un’attività per glialtri operatori;

∗ UC2 Gestione attività: Caso d’uso che permette di gestire tutte le attività,selezionando una azione da compiere. Questo caso d’uso richiede, all’operatore,dei prerequisiti prima di svolgere un’azione, come l’inserimento del badge peridentificarsi e la scelta opzionale della squadra nel caso ne abbia una. Il casod’uso condivide con gli eredi di UC7 diverse azioni che non ho voluto esporreperché ritengo che siano informazioni esclusive dell’azienda;

Figura 3.11: UC34 - Pre-requisiti da svolgere prima di iniziare un’azione

Page 37: Analisi e reingegnerizzazione di un applicativo MES

3.5. CASI D’USO 27

∗ UC3 Visualizzazione legenda: Attraverso l’apposito bottone si visualizza unalegenda in cui si spiega cosa significano i colori dei rettangoli "Stato macchine". Sisfruttano i colori affinché l’operatore individui più velocemente il genere di attività elo stato in cui si trova;

∗ UC4 Visualizzazione "Stato macchine": L’operatore può visualizzare i rettangoli"Stato Macchina" contenenti lo stato delle attività. Se cliccato un rettangolo apriràuna pagina in cui è possibile vedere ulteriori dettagli e gestire il lavoro, incluso in UC6;

∗ UC5 Visualizzazione righe lavori: L’operatore può visualizzare i dati delle attivitàdisposti in riga. Come per UC4 se viene cliccata una riga si aprirà la pagina del lavorocon ulteriori dettagli, incluso in UC6;

∗ UC6 Gestione singola attività operatore: Visualizza i dettagli dell’attività, per-mette di gestire delle note per gli operatori (UC1) e selezionare un tipo di azione dasvolgere e quindi eventualmente cambiare lo stato dell’attività (UC7);

∗ UC7 Seleziona attività: Caso d’uso generico incluso in UC6. Indica un gruppo diazioni che posso essere eseguite per un’attività. Attraverso l’ereditarietà, i casi d’usofigli vanno a specificare quali azioni sono disponibili basandosi sullo stato e il tipo diattività, che sono descritte nella legenda.

Figura 3.12: UC0 - Pagina principale dove si interfaccia l’operatore

Page 38: Analisi e reingegnerizzazione di un applicativo MES

28 CAPITOLO 3. IL PROGETTO

3.6 Progettazione e programmazioneNel piano di lavoro assegnatomi, la progettazione del prodotto non era prevista.Il mio stage si concentrava sopratutto sull’analisi e l’individuazione dei difetti di alcuneparti del prodotto preesistente.La re-ingegnerizzazione del prodotto si applicava su parti troppo piccole per essereconsiderata una progettazione vera e propria. Si è trattato, quindi di un’attività dicorrezione di errori e di imperfezioni.I flussi di acquisizione dati, che avevo ristrutturato, sono dei diagrammi per la model-lazione dei processi e non rappresentano la progettazione che è modellata attraverso idiagrammi della classi.L’applicazione della programmazione avveniva, l’ultima settimana di stage, con unosviluppo, parziale, dello strumento di migrazione del database.Il codice che ho scritto non mi pare abbastanza significativo da meritare menzione inquesta relazione, perché lo reputo un prodotto comune nelle aziende di settore.

3.7 Verifica e validazione

3.7.1 VerificaLa verifica del mio lavoro, che riguarda principalmente la crezione di documenti, èstata fatta esclusivamente da me. Ogni volta che ne terminavo un documento, eseguivola verifica di tipo Walkthrough, una rilettura per identificare gli errori di scrittura ecorreggerli. Nell’attività di sviluppo di uno strumento di migrazione del database avreipotuto creare dei test, ma per motivi di tempo, non sono stati inclusi all’interno delpiano di lavoro.

3.7.2 ValidazionePurtroppo la validazione del mio lavoro, durante lo stage, non è stata fatta da nessuno,sempre per motivi di tempo. Non escludo che il mio tutor, successivamente allo stageabbia fatto la validazione del mio lavoro.Di conseguenza, esprimerò una mia personale versione della validazione, nei puntiseguenti:

∗ Studio degli ambienti e linguaggi di sviluppo:

– Studio del dominio dell’applicativo MES: Ho studiato il dominio del MESche mi ha aiutato a svolgere più facilmente il lavoro assegnatomi;

– Studio dei linguaggi di sviluppo: I linguaggi di sviluppo studiati, fino ad unlivello "base", mi hanno permesso avere di più familiarità con l’applicativo;

– Installazione degli ambienti di sviluppo: Grazie all’aiuto di un membro delteam sono riuscito ad installarli velocemente.

Queste attività mi hanno aiutato ad affrontare al meglio il resto dello stagefacilmente;

∗ Definizione requisiti e struttura del database: Con l’attività di analisidel core database ho individuato gli errori relativi al "vecchio" database. Suc-cessivamente, attraverso la re-ingegnerizzazione, ho creato le nuove tabelle cheavrebbero aiutato di molto il team nel loro lavoro;

Page 39: Analisi e reingegnerizzazione di un applicativo MES

3.7. VERIFICA E VALIDAZIONE 29

∗ Analisi dei flussi di acquisizione dati: I flussi precedenti, attraverso l’analisi,sono riuscito a re-ingegnerizzarli e quindi fare in modo che siano da linee guidaal team per lo sviluppo in codice dei flussi re-ingegnerizzati;

∗ Analisi della business logic "utilizzata" dai flussi: Leggendo il codice al-l’interno dei task presenti nei flussi ne riportavo il comportamento sul documento,permettendo al team di capire meglio come agiscono i flussi;

∗ Analisi della user interface e degli use cases:

– Analisi della user interface: La parte grafica dell’operatore, viene riportatasu un documento. Ogni errore trovato viene risolto attraverso un Mockup chepermette di consigliare a chi lo svilupperà come evitare gli errori commessiprecedentemente nella user interface;

– Analisi della use cases : Creati i diagrammi relativi alla parte dell’operatore,attraverso la user interface ed i flussi, permettono a chi li osserva di farsiun’idea del prodotto e di come si interfacceranno gli operatori all’applicativo.

∗ Definizione delle linee guida per la re-ingegnerizzazione: Attraversol’analisi fatta, ho potuto scrivere un documento nel quale è consigliato, achi svilupperà JMES, come evitare di commettere gli errori comuni trovatiprecedentemente;

∗ Sviluppo di un strumento per la migrazione del database: Ho sviluppato,parzialmente, uno strumento che permette di spostare i dati dal database vecchioa quello nuovo. Questo software permette alle aziende di non perdere i propridati che erano presenti nell’applicativo vecchio.

Page 40: Analisi e reingegnerizzazione di un applicativo MES

30 CAPITOLO 3. IL PROGETTO

3.8 Riepilogo finaleIl mio stage ha permesso, al team di sviluppo, di avere l’analisi del prodotto relativaalle parte dell’operatore. Per ogni analisi, ho scritto un documento e dove necessarioho effettuato la re-ingegnerizzazione del prodotto.Innanzitutto, al team interessava qualcuno che si occupasse del database, area fon-damentale del prodotto, strato più inferiore dell’architettura multi-tier. L’attività dianalisi e ristrutturazione, del database, era la sezione più importante perché portavaun contributo, subito e di spessore, all’applicativo. Non mi sono occupato di tutto ildatabase, ma della parte degli eventi dove si conservano, in tabelle, i dati dell’areaproduttiva di un’azienda.Seguendo le linee guida del tutor, ho lavorato all’analisi e alla re-ingegnerizzazionedei flussi di acquisizione dati che, come per le tabelle eventi, si occupano dell’areaproduttiva di un’azienda. I flussi, utilizzando il database per reperire le informazioniutili, gestiscono i lavori dell’operatore. Il mio lavoro ha permesso, al team, di averedelle linee guida da seguire per lo sviluppo dei flussi in Java.Ho analizzato, inoltre, il codice all’interno dei task dei flussi, producendo un documen-to. Il documento, descrive come agiscono i task e di conseguenza rende di più facilecomprensione i flussi.Successivamente, mi sono occupato dello strato "client" dell’architettura. Ho scrittol’analisi della user interface in un documento, dove riportavo il suo funzionamento egli errori di usabilità. I Mockup, da me realizzati, suggeriscono, al team, come risolverei problemi riscontrati nell’interfaccia grafica.I casi d’uso non erano stati realizzati precedentemente, quindi ho dovuto ricavarliattraverso i flussi e la user interface. Ritengo siano molto importanti, per il team e peri manutentori del prodotto, per capire meglio i requisiti.Dopo, aver analizzato e re-ingegnerizzato le parti presenti in tutti gli strati dell’ar-chitettura, ho lavorato alla stesura di un documento, per il team, che permettesse dicapire come evitare i problemi riscontrati precedentemente.Infine, nel mio piano di lavoro era presente la richiesta di sviluppo di uno strumento perla migrazione del database. Lo strumento permette alle aziende, di spostare i dati delvecchio database a quello nuovo. Iniziando questa attività desiderabile, ho contribuito asvilupparlo affinché quando ci sarà il collaudo del prodotto, i clienti possano continuarea lavorare senza il rischio di perdere i dati.

Page 41: Analisi e reingegnerizzazione di un applicativo MES

Capitolo 4

Valutazioni Retrospettive

4.1 Obiettivi raggiuntiIn questa sezione presenterò gli obiettivi, descritti nel capitolo 2, raggiunti durante lostage:

Obiettivi raggiunti

Studio degli ambienti e linguaggidi sviluppo

Studio delle tecnolo-gie

Completato; con uno studio autonomo.

Configurazione degliambienti di sviluppo

Completato; grazie all’aiuto di un membro delteam che mi ha assistito nell’installazione diEclipse e dei plug-in al suo interno.

Comprensione del do-minio MES

Completato; con ricerca e studio delle informazioninel web in modo autonomo e confronto con il tutorper chiarire alcuni punti.

Definizione requisiti e strutturadel database

Analisi del database Completata; producendo l’analisi della parterelativa al core database, come richiesto dal tutor.

Individuazione deiproblemi

Completato; rintracciati, la maggior parte.

Re-ingegnerizzazione Completata; re-ingegnerizzato il core database.Analisi dei flussi di acquisizionedati

Completata; flussi re-ingegnerizzati.

Analisi della business logic "utiliz-zata" dai flussi

Completata; prodotto un documento dove sianalizzano i task dei flussi di acquisizione dati.

Analisi della user interface e degliuse cases

Analisi della user in-terface

Completata; analizzata e creato un documento re-lativi all’user interface dell’operatore, su richiestadel tutor.

Analisi degli use cases Completata; disegnati i casi d’uso relativiall’operatore.

Definizione linee guida per la re-ingegnerizzazione

Completata; definite le principali linee guida, giànote a seguito dell’analisi del precedente prodotto.

Sviluppo di uno strumento per lamigrazione del database

Completato parzialmente; sviluppate, dal team inmodo definitivo, solo alcune tabelle del database.

Tabella 4.1: Obiettivi raggiunti durante lo stage

31

Page 42: Analisi e reingegnerizzazione di un applicativo MES

32 CAPITOLO 4. VALUTAZIONI RETROSPETTIVE

4.2 Bilancio formativoDurante lo stage ho imparato nuove nozioni, che attraverso l’università o per contomio non avevo mai studiato.Innanzitutto, mettendo in pratica le lezioni di Ingegneria del Software, ho consolidatoun po’ di più la mia conoscenza del metodo di sviluppo Scrum. L’azienda non segueper filo e per segno la metodologia Scrum, ma adotta una sua variante personalizzata.Il Daily Scrum che andrebbe fatto ogni mattina per un quarto d’ora, non viene fatto,prediligendo invece una comunicazione continua con i membri del team durante l’arcodella giornata. Le due riunioni Sprint Review e Sprint Planning Meeting sono unite inunico incontro che si svolge in un’unica giornata lavorativa una volta al mese. I ticketsono presenti e vengono usati dal resto del team, ma io non li ho avuti perché i mieicompiti erano già definiti.Queste variazioni, a mio parere, sono rischiose e se le confrontiamo con metodologiaScrum "pura", non impongono una comunicazione "forzata" come il Daily Scrum, dovei membri del team discutono il proprio lavoro. In questo caso, se in un progetto mancala comunicazione può deviare dai suoi requisiti e subire rallentamenti.A livello tecnologico sono riuscito ad approfondire, per il breve periodo dello stage,l’approccio che l’azienda ha verso un’Applicazione web. Ho aggiunto alle mie conoscen-ze AngularJS, che non era prevista la mia applicazione al progetto, ma ho imparato leprincipali direttive che permettono la creazione di una single page application.Con il CSS, tecnologia che già conoscevo, ho scoperto il Framework Ulkit che permettedi avere già strutture grafiche, scritte con CSS e Javascript, pronte all’utilizzo. Anchequesto Framework non ho potuto usarlo, però l’ho trovato interessante perché riduce ilcarico di lavoro in quanto non ci sono da sviluppare i file di formattazione del testo.Uno dei mie obiettivi era quello di capire, attraverso il lavoro dello stage, i benefici cheil software porta al cliente.Ho confermato la mia idea che i software, prodotti dalle aziende del settore informatico,permettono ai loro clienti di gestire meglio i loro processi aziendali, migliorandoli inefficienza ed efficacia.

Page 43: Analisi e reingegnerizzazione di un applicativo MES

4.3. GAP DI CONOSCENZE 33

4.3 Gap di conoscenzeLo stage, svolto presso la Sanmarco Informatica S.p.A, non richiedeva uno sforzoeccessivo per imparare le tecnologie, perché quelle che non conoscevo erano poche e difacile studio. Il merito è da imputare alla formazione che l’università che mi ha concessoe mi ha permesso di imparare le basi per il lavoro di Ingegnere del Software. Grazieall’università, ho delle basi solide che nella mia carriera lavorativa posso consolidare eapprofondire, come è già avvenuto, durante lo stage, per la tecnologia Java e metodologiadi sviluppo Scrum.Prima dell’entrata nel mondo del lavoro, secondo me, andrebbero approfonditi alcunitemi che al giorno d’oggi sono di attualità e che riporto di seguito:

∗ Sistemi di versionamento: Dovrebbero essere introdotti, prima di Ingegneriadel Software del terzo anno, perché nella loro semplicità d’uso viene reso piùsemplice lo sviluppo dei progetti;

∗ Usabilità: Fondamentale per la creazione di un prodotto perché rende con-fortevole all’utente l’uso e sicuramente ne migliora l’esperienza. A mio parere,dovrebbe essere introdotta all’interno del corso di tecnologie web anziché nelpercorso di Laurea Magistrale;

∗ Mondo Mobile A mio parere, il mondo mobile, che nella realtà è molto diffuso,non viene trattato adeguatamente nella laurea triennale. Sarebbe consono,secondo me, trattare Android e iOS nel corso di Sistemi Operativi e inserire nellalaurea triennale un corso relativo alla programmazione mobile, che è già presentenel percorso di Laurea Magistrale;

∗ Apertura alle nuove tecnologie: Durante il precorso universitario mi sonoreso conto che ci sono più tecnologie e metodologie rispetto a quelle insegnate.Alcune tecnologie emergenti dovrebbero essere introdotte all’interno dell’ambitouniversitario per facilitarne la conoscenza e la diffusione. Una buona soluzione,che è già adottata ad Ingegneria del Software sono i seminari tecnologici, delleconferenze fatte da professionisti, che si potrebbero espandere anche ad altri corsia partire dal secondo anno. In particolare il web sta cambiano molto, c’è unalarga diffusione delle applicazioni web, di conseguenza anche le tecnologie persvilupparle. Nel corso di Tecnologie Web si studiano i linguaggi "base" per lacreazione di un sito web e quindi suggerirei che le tecnologie emergenti siano piùnote e in modo che gli studenti possano sperimentarle nel loro progetto.

Page 44: Analisi e reingegnerizzazione di un applicativo MES
Page 45: Analisi e reingegnerizzazione di un applicativo MES

Appendice A

BPMN

Il BPMN è uno standard per la modellazione dei processi business. Ha l’obiettivo disupportare la gestione dei processi aziendali, fornendo una notazione semplice ma ingrado di rappresentare in modo complesso la semantica dei processi.Ogni flusso realizzato dall’azienda, ha utilizzato questi elementi:

Figura 4.1: Elemento task

Task: Rappresenta un modulo delflusso ed è un’attività atomica, ov-vero non può essere ulteriormentesuddivisa. I vari moduli possonoessere riutilizzati in vari flussi, inquesto modo è possibile aumentareil riuso. I task di Activiti possonodifferenziarsi in due tipologie. Mac-china in cui è inserito il codice javadi esecuzione e Operatore, identifi-cabile attraverso la rappresentazione da una persona stilizzata dove è richiesto,attraverso l’utilizzo dell’interfaccia grafica, che l’operatore inserisca i dati;

Figura 4.2: Elemento task chiamante

Task chiamante: Task che richia-ma l’esecuzione di un flusso. Evi-ta che una sequenza di task comu-ni vengano continuamente ripetuti.Grazie a questo elemento e possibi-le scriverli solo una volta e quandonecessario richiamarli;

Figura 4.3: Gateway esclusivo

Gateway esclusivo: Simbolo cherappresenta una decisione tra duepercorsi all’interno del flusso;

Figura 4.4: Gateway parallelo

Gateway parallelo: Simbolo cheindica si sta iniziando l’esecuzionedi percorsi in parallelo;

35

Page 46: Analisi e reingegnerizzazione di un applicativo MES

36 CAPITOLO 4. VALUTAZIONI RETROSPETTIVE

Figura 4.5: Connessione di sequenza

Connessione di sequenza: Frec-cia che collega un task ad un al-tro oppure ad gateway e vicever-sa. Attraverso questo simbolo vienerappresenta il percorso del flusso;

Figura 4.6: Evento d’inizio flusso

Evento d’inizio: Punto d’iniziodel flusso. Indica che qualcosa haattivato il flusso;

Figura 4.7: Evento di fine flusso

Evento di fine: Punto di terminedel flusso. Indica che il flusso èstato completamente eseguito.

Page 47: Analisi e reingegnerizzazione di un applicativo MES

Glossario

Applicazione web Per Applicazione web si intende una applicazione accessibile viaweb. 9, 11, 15, 16, 32

BPMN Vedi appendice A. 39

Cloud Computing Per Cloud Computing si indica una forma di erogazione di servizicome elaborazione, archiviazione di dati attraverso il web a partire da un insiemedi risorse preesistenti e configurabili. Un fornitore fornisce delle risorse, che sonocondivise tra utenti e configurabili in base alle esigenze dell’utente. Quandol’utente rilascia la risorsa essa viene riportata allo stato iniziale e rimessa adisposizione ad altri utenti. 6, 38

CRM La gestione delle relazioni con i clienti è un concetto legato alla fidelizzazionedei clienti. La fidelizzazione è importate per una azienda in quanto permette diavere un rapporto longevo con i clienti. . 39

Dependecy Injection La dependency Injection è un desing pattern il cui scopo èquello di semplificare lo sviluppo e migliorare la testabilità del software. 9

ERP Enterprise Resource Planning (Pianificazione delle risorse d’impresa) è unsistema per la gestione di tutti i processi business aziendali rilevanti ed è compostoda un insieme di software, dove ognuno rappresenta un processo aziendale, checomunicano tra di loro. 39

Framework Struttura di supporto su cui un software può essere organizzato eprogettato. 32

IBM Power Systems IBM Power Systems è una serie di server nati con lo scopoprincipale di supportare delle applicazioni mission-critical . 1, 6, 38

IDE L’IDE è un ambiente di sviluppo, ovvero un software che aiuta i programmatoria scrivere il codice sorgente di un programma. 39

Internet of Things Per internet degli oggetti si intende l’estensione di Internet aglioggetti e luoghi concreti. Gli oggetti collegati alla rete permettono di scambiaredati con altri dispositivi. Si possono ricevere informazioni e gestire il prodottoda remoto. 5

MES Un MES è un sistema informatizzato per la gestione e il controllo della produt-tività di un’azienda. 39

37

Page 48: Analisi e reingegnerizzazione di un applicativo MES

38 Glossario

Mockup Il Mockup è l’attività di riprodurre un oggetto o modello in scala ridotta omaggiorata. Nella attività di web desing si costruiscono pagine web mediantesoftware grafici e non HTML. 9, 11, 14, 29, 30

OpenPOWER Foundation La OpenPOWER Foundation è una collaborazione at-torno ai prodotti IBM Power Systems. L’obiettivo della fondazione è quello diconsentire ai fornitori di costruire server personalizzati, infrastrutture di rete edi memorizzazione per futuri centri dati e Cloud Computing . 1

REST REST è una architettura software con lo scopo di dividere lo stato dell’appli-cazione e funzionalità in risorse web. 39

SEO Con il termine ottimizzazione per i motori di ricerca si intende tutte quelleattività volte a migliorare la visibilità di un sito web sui motori di ricerca. Inquesto modo si cerca di mantenere e migliorare la propria posizione nelle paginedi risposta alle interrogazioni degli utenti web . 39

SPC SPC è l’applicazione di un metodo matematico o statistico che consente dicontenere l’esito di un processo all’interno di specifici limiti, determinati attraversolo studio della variazione naturale dei limiti di processo. 39

UML In ingegneria del software UML, Unified Modeling Language (ing. linguaggio dimodellazione unificato) è un linguaggio di modellazione basato sul paradigmaobject-oriented. L’UML svolge un’importantissima funzione di "lingua franca"nella comunità della progettazione e programmazione a oggetti. Gran parte dellaletteratura di settore usa tale linguaggio per descrivere soluzioni analitiche eprogettuali in modo sintetico e comprensibile ad un vasto pubblico. 39

VoIP Per Voice over IP è una tecnologia che permette di effettuare una conversazionetelefonica sfruttando la connessione ad Internet che utilizzi il protocollo IP. 39

Workflow management Il workflow mangment è la gestione dei gruppi di lavorocollaborativi. Un processo consiste in un insieme di attività per svolgere unlavoro e raggiungere un obbiettivo comune. Il workflow mangament si occupa digestire i processi mediante software specifici. . 5

Page 49: Analisi e reingegnerizzazione di un applicativo MES

Acronimi e abbreviazioni

BPMN Business Process Model and Notation. 18, 21, 35, 37

CRM Customer Relationship Managment. 3, 37

ERP Entrprise Resoursce Planning. 2, 6, 17, 37

IDE Integrated Development Enviroment. 9, 10, 37

JMES JGalileo Manufacturing Execution System. 13, 17, 18, 29

MES Manufacturing Execution System. 14, 15, 17, 18, 28, 31, 37

REST REpresentational State Transfer. 9, 38

SEO Search Engine Optimization. 3, 38

SOC Security Operation Center. 6

SPC Statistical Process Control. 38

UML Unified Modeling Language. 10, 11, 38

VoIP Voice over IP. 12, 38

39

Page 50: Analisi e reingegnerizzazione di un applicativo MES
Page 51: Analisi e reingegnerizzazione di un applicativo MES

Bibliografia

Siti web consultati4words. url: http://www.4words.it/it/.

Business Process Model and Notation. url: https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation.

Cloud Computing - Wikipedia. url: https://it.wikipedia.org/wiki/Cloud_computing.

CRM - Wikipedia. url: https://it.wikipedia.org/wiki/Customer_relationship_management.

Discovery Quality. url: https://www.discoveryquality.com/.

ERP - Wikipedia. url: https://it.wikipedia.org/wiki/Enterprise_resource_planning.

IBM Power Systems - IBM. url: https://www-03.ibm.com/systems/it/power/.

Jgalileo. url: https://www.jgalileo.com/.

Next BI. url: https://nextbi.it/.

OpenPower Foundation - Wikipedia. url: https : / / en . wikipedia . org / wiki /OpenPOWER_Foundation.

Sanmarco Informatica. url: https://www.sanmarcoinformatica.com/.

Scrum - Wikipedia. url: https://it.wikipedia.org/wiki/Scrum_(informatica).

SEO - Wikipedia. url: https : / / it . wikipedia . org / wiki / Ottimizzazione _(motori_di_ricerca).

Skype - Wikipedia. url: https://it.wikipedia.org/wiki/Skype.

SMITech. url: https://www.smitech.it/.

41