Corso di laurea in Ingegneria informatica - apotheken-forum.ch · in azienda di diversi studenti...

16
56 57 “Capacità, competenza e conoscenza sono solo alcuni dei motivi che spingono TCPOS a collaborare con la SUPSI. Questa partnership ha portato nel corso degli anni all’inserimento in azienda di diversi studenti provenienti dal corso di laurea in informatica. I nuovi collaboratori, grazie all’ottima preparazione, sono riusciti ad affrontare nel migliore dei modi le diverse sfide del mondo del lavoro e a diventare da subito delle valide risorse per il nostro team”. Giacomo Knechtli Direttore Generale TCPOS Corso di laurea in Ingegneria informatica

Transcript of Corso di laurea in Ingegneria informatica - apotheken-forum.ch · in azienda di diversi studenti...

56 57

“Capacità, competenza e conoscenza sono solo alcuni dei motivi che spingono TCPOS a collaborare con la SUPSI. Questa partnership ha portato nel corso degli anni all’inserimento in azienda di diversi studenti provenienti dal corso di laurea in informatica. I nuovi collaboratori, grazie all’ottima preparazione, sono riusciti ad affrontare nel migliore dei modi le diverse sfide del mondo del lavoro e a diventare da subito delle valide risorse per il nostro team”.

Giacomo KnechtliDirettore Generale TCPOS

Corso di laurea in

Ingegneria informatica

59

La lista dei lavori di Bachelor presen-tati in questo catalogo rappresenta uno spaccato interessante delle at-tività dei progetti di ricerca applicata in corso presso il Dipartimento tecno- logie innovative e delle necessità delle aziende del territorio. In effetti istituti del dipartimento e aziende sono la provenienza dei temi e leggendo le descrizioni dei singoli lavori si intuisce quanto sia forte il legame tra SUPSI e aziende locali. Del resto, il lavoro di Bachelor, pur rappresentando solo uno tra i vari punti di contatto tra la nostra scuola e il mondo aziendale, è tra i più importanti perché permette ai nostri studenti di lavorare in un contesto produttivo, applicando da subito le conoscenze apprese durante lo studio. Da sempre la SUPSI può vantare nella sua offerta formativa un ciclo di studi in informatica. Fondato presso la vecchia Scuola tecnica superiore (STS) nel 1986 e integrato nell’attuale scuola universitaria dalla sua fondazione, avvenuta nel 1997, quello in informatica rappresenta nel contesto territoriale un ciclo di studi di tradizione, dove gli aspetti teorici vengono da subito combinati a lavori ed esercitazioni pratiche in laboratorio, dispensando allo stu- dente quella giusta dose di concre-tezza che caratterizza tutti i Ba-chelor presso le scuole universitarie professionali svizzere. Il ciclo di studi è sostenuto da una serie di istituti attivi in progetti di ricerca applicata e trasferimento di tecnologia, sia a livello locale che internazionale. I docenti del corso di laurea proven-gono dagli stessi istituti o da aziende attive nel territorio.

Il curriculum combina conoscenze scientifiche e culturali con una solida preparazione tecnica nelle tecnolo-gie innovative. Il settore delle nuove tecnologie è particolarmente adatto all’autoimprenditorialità; per questo motivo, durante lo studio, al futuro ingegnere vengono dati stimoli e nozioni di base per creare un’azienda propria, se lo desidera e se ritiene di avere un’idea imprenditoriale valida.Oltre ai temi direttamente legati alle tecnologie, in costante evoluzione, i corsi danno importanza ad altre capacità del futuro ingegnere, come quella di analizzare e risolvere pro-blemi complessi e quella di saper in-teragire in modo professionale con i colleghi e con il mondo esterno. L’ingegnere informatico è del resto per sua natura confrontato con aspetti multidisciplinari e deve saper lavorare con colleghi di progetto di provenienze professionali diverse. Le competenze acquisite nell’ambi-to dei lavori di gruppo, della comuni-cazione e della gestione di progetti gli consentiranno, con l’esperienza, di gestire team di sviluppo e progetti. Del resto, è noto che una buona parte dei quadri delle piccole e medie imprese svizzere proviene per tra- dizione dalle scuole universitarie pro- fessionali e i laureati in informatica alla SUPSI non fanno eccezione.

Responsabile del corso di laureaSandro Pedrazzini

Corso di laurea in

Ingegneria informaticaVisita il sito

www.supsi.ch/dti/bachelor/ingegneria-informatica.ch

60 61

Francesco BertacchiMatteo BesenzoniReda BousbahDenis BrogginiGaspar Felipe Cardoso De SantanaNasko CepilovMirco De TomasiFederico D’IgnazioSofia GeronziGiuliano GremlichRezart LohjaLorenzo MadonnaLuca MargonarVincenzo MessanaChristian OrtegaMarko PacakPedro Daniel PaganoAris PiattiStefano PinoliArdian RusitiSimone SguazzaMarzio StampanoniStefano TonioloPaolo Veronesi

Laureati 2017

62 63

AbstractNell’ambito della fisioterapia, in par-ticolar modo nel caso dei disturbi cervicali, da anni sono disponibili strumenti d’aiuto alla terapia e alla diagnosi che hanno però dei grossi limiti. Molti di questi strumenti ri-chiedono la registrazione manuale dei valori e molti esercizi effettuati si limitano a far seguire al paziente proiezioni su di una parete piana. Una soluzione più dinamica e au-tomatizzata offrirebbe notevole supporto ai professionisti del setto-

re. Questo progetto ha lo scopo di realizzare ambienti 3D e Realtà Au-mentata, che riescano a sopperire ai limiti imposti finora. Sfruttando un comune smartphone è infatti possibile realizzare un ambiente 3D in cui l’utente può immergersi com-pletamente. La realizzazione tecnica ha seguito i principi della program-mazione agile tenendo sempre in considerazione il committente. Nel tempo i contenuti sono stati mo-dificati in base alle sue richieste e alle sue esigenze e le componenti

software testate costantemente. La piattaforma così realizzata offre ai pazienti degli esercizi utili alla te-rapia dei propri disturbi e ai super-visori degli strumenti di supporto al monitoraggio delle attività. La piat-taforma è anche stata strutturata in modo da offrire la possibilità di ag-giungere contenuti futuri in modo semplice e dinamico.

Obiettivi– Registrare i movimenti del paziente ed i dati più im-

portanti in modo automatico e preciso.– Rendere disponibili i dati in un formato riutilizzabile in

fase di analisi.– Offrire la possibilità al medico di monitorare ed intera-

gire con lo svolgimento delle attività. – Permettere al paziente di eseguire gli esercizi in modo

autonomo.– Realizzare versioni alternative degli esercizi esistenti

che coprano tutti i movimenti possibili.– Offrire la possibilità di realizzare nuovi esercizi in

modo rapido.

ConclusioneIl risultato finale é stato ottenuto evolvendosi e model-landosi assieme alle richieste del committente, riuscendo così a soddisfare le aspettative nonostante i requisiti si-ano cambiati nel tempo. Alla conclusione di questo pro-

getto si è in grado di presentare un prodotto funzionan-te, ma anche pronto ad integrare le future funzionalità. Gli esercizi realizzati rappresentano ottimi risultati, ma il punto di forza dell’applicazione risiede nella possibilità di crearne di nuovi e integrarli in modo semplice e veloce. Questo progetto è anche buona dimostrazione di come le emergenti tecnologie VR stiano diventando sempre più utilizzabili. Infatti, è possibile realizzare contenuti di Virtual Reality in ambiente mobile avvalendosi così di un ambiente portabile e che rende lo sviluppo contenuti 3D più rapido. Nelle prossime versioni di browser e sistemi operativi è prevista l’aggiunta di nuovi supporti dedicati ai contenuti VR, incrementando maggiormente la por-tata di quest’applicazione.Per questo software è previsto un ulteriore sviluppo, sic-come il committente è interessato a realizzare un sosti-tuto digitale all’attuale strumentazione dedicata alla va-lutazione delle capacità motorie dei pazienti.

La realtà virtuale come ausilio alla fisioterapia

Francesco Bertacchi RelatoreNicola Rizzo

Ingegneria informaticaIngegneria informatica

AbstractLa federazione ciclistica ticinese “Ticino Cycling” ha quale obiettivo quello di promuovere lo sport del ciclismo presso i giovani. Una delle azioni è quella di permettere ai ra-gazzi e alle ragazze di provare a ga-reggiare senza obbligo di continui-tà e senza obbligo di appartenere a una società. Per far questo è neces-

sario uno strumento amministra-tivo, di facile utilizzo, utile a gestire in modo veloce le iscrizioni, i dati dei ragazzi, i dati delle varie mani-festazioni ciclistiche e le classifiche, parziali e stagionali, in tutte le loro tipologie. La reportistica è anche un requisito importante.

Obiettivi– Studiare la situazione attuale, con interviste agli orga-

nizzatori e verifica del software utilizzato in precedenza.– Analizzare il software esistente, basato su Microsoft

Access individuandone le criticità.– Gestire i requisiti secondo priorità e realizzare l’appli-

cativo standalone.– Definire un modello dati relazionale robusto.– Realizzare reportistica (pdf) e gestire i formati di

esportazione e importazione.

ConclusioneI dati, che precedentemente erano passati da utente a utente tramite un database access su chiavetta USB, sono adesso gestiti da un database SQLite incorporato in un‘applicazione grafica creata in QT.Il vantaggio principale consiste nel non essere obbligati ad avere installato sul proprio computer Microsoft Ac-cess per poter aprire l’applicazione ed è possibile impor-tare database a scelta all’avvio. L’applicazione permette di inserire, modificare o vi-sualizzare velocemente i dati presenti sul database e di esportarli in formati predisposti per la stampa.

Software Gestionale per campionato ciclistico

Matteo Besenzoni RelatoreAmos Brocco

PartnerTicino Cycling

64 65Ingegneria informatica

AbstractLo scopo di questo progetto è quel-lo di inserire una componente di in-telligenza artificiale all’interno del sistema attuale sviluppato da IDSIA per l’interfacciamento umano-ro-bot, che permetta ad un operatore con sensori wearable di inviare co-mandi ai robot tramite il riconosi-mento di gesti.Prima di tutto sono stati stabiliti i

gesti da riconoscere. Lo ‘stop’, che verrà usato come banco di pro-va per prendere confidenza con le tecnologie, e il ‘puntamento’ (vedi foto) il cui riconoscimento sarà la necessità concreta del progetto. In una prima fase sono state registra-te delle sessioni dove l’operatore, indossante 2 dispositivi MYO, inte-ragisce con l’ambiente circostante al fine di estrarre dai dati esempi di

gesti da riconoscere ed esempi di gesti da ignorare.Da una serie di classificatori adde-strati con i dati raccolti (si analiz-zeranno alberi decisionali, random forest e reti neurali) è poi possibile analizzare, selezionare e applicare il migliore dei tre per quelle che sono le necessità del sistema di interfac-ciamento.

Obiettivi– Studiare un sistema per la raccolta di dati riguardanti

sensori wearable inseriti in un contesto di robotica.– Applicare tecniche di machine learning (classificazio-

ne supervisionata) a un problema pratico.– Applicare tecniche di elaborazione di segnali per l’e-

strazione delle features.– Confrontare un sistema feature-based con un sistema

basato su deep learning.– Integrare il sistema di riconoscimento automatico in

quello esistente di interfacciamento uomo-robot.

ConclusioneL’obiettivo di riconoscere con robustezza uno o più ge-sti è stato raggiunto. Insieme ad esso, è stata sviluppa-ta una pipeline generica che permette l’acquisizione di dati e il relativo addestramento su qualsiasi tipo di gesto e sensore. I risultati ottenuti sono molto incoraggianti, in quanto tutti gli obiettivi sono stati raggiunti utilizzando relativa-mente pochi dati registrati da più persone con struttura fisica eterogenea. Il classificatore è stato integrato con successo nel sistema robotico real-time.Questo progetto è il primo mattone per uno sviluppo volto a riconoscere più gesti contemporaneamente con gli stessi sensori, oppure per la realizzazione di un clas-sificatore che riconosca in modo robusto i gesti tramite l’utilizzo di un solo MYO o di un altro sensore IMU più comune.

Riconoscimento di gesti tramite sensore wearable per applicazioni in robotica

Denis Broggini RelatoreLuca Maria Gambardella

Ingegneria informatica

AbstractIl progetto si inserisce nel conte-sto dei sistemi di localizzazione in-door, nello specifico di un sistema di localizzazione basato sul Wi-Fi fingerprinting. Lo scopo è quello di implementare una piattaforma che consente agli utenti, attraverso l’u-so di un dispositivo mobile, di ritro-vare la posizione propria e quella di una persona cercata in un ambiente indoor, e di guidare l’utente verso la persona cercata, sfruttando il siste-

ma di localizzazione già esistente. La piattaforma ha una parte server, costituita da un web service, in gra-do di interfacciarsi con i dati presenti nel database. Questo componente è di fondamentale importanza poiché espone tutte le funzionalità neces-sarie per gestire la localizzazione dei dispositivi, la gestione degli utenti e soprattutto l’elaborazione dei per-corsi per la navigazione. Si dispone inoltre di una parte client, ovvero un’applicazione per smartphone,

che sfrutta le funzionalità offerte dal web service. Il client in questione permette all’utente di selezionare una persona registrata al servizio e avviare una navigazione indoor fino alla persona cercata. Infine, per faci-litare la configurazione dei percorsi sulle mappe, la piattaforma com-prende un client aggiuntivo che ar-ricchisce ulteriormente le funziona-lità offerte dal web service.

Obiettivi– Implementare il sistema completo (client e server).– Implementare un algoritmo per il calcolo del percorso

minimo per arrivare alla posizione della persona da lo-calizzare, a partire dalla posizione corrente, sfruttando le informazioni sul grafo dei percorsi consentiti.

– Acquisire know-how sulle piattaforme open source per la pubblicazione di dati spaziali e applicazioni car-tografiche interattive per il web.

– Documentare esaustivamente il progetto.

ConclusioneI risultati raggiunti sono soddisfacenti. Infatti, il web ser-vice allo stato attuale riesce a fornire in modo efficiente i servizi richiesti dai client per effettuare la localizzazio-ne di persone su una mappa e a guidare l’utente verso una persona specifica. Il client si presenta semplice da usare e in fase di navigazione adatta automaticamente l’orientamento della mappa per fornire una visione co-moda all’utente.Il progetto tuttavia lascia spazio ad ulteriori sviluppi fu-turi, sia lato server che lato client. Lato client si potreb-be estendere lo sviluppo su altre piattaforme. Il server attualmente è legato a una singola località per quan-to concerne la navigazione indoor, tuttavia è possibile estendere il supporto alla navigazione multi-mappa con pochi sforzi implementativi.

People tracking: una piattaforma per la localizzazione di persone e la navigazione in ambienti indoor Gaspar FelipeCardoso De Santana

RelatoreSalvatore Vanini

66 67Ingegneria informaticaIngegneria informatica

AbstractNel campo della consulenza inge-gneristica le imprese sono spesso confrontate con lo svolgimento di misurazioni di vario tipo. L’archivia-zione, la gestione e la reperibilità dei dati di misura svolgono un ruolo im-portante in questo campo.Il primo obbiettivo di questo lavoro di tesi è quello di creare una struttura di base per lo sviluppo di una piattafor-ma web che sia il più versatile possi-bile e che permetta in futuro l’archi-viazione e la consultazione di dati di

diversi tipi di misure.Il secondo obbiettivo del lavoro con-siste nella realizzazione di un sistema informatico di conteggio e carat-terizzazione del traffico basato su un’analisi video. Un sistema di questo tipo permette un incremento del-la durata e della qualità delle misure rispetto al rilevamento manuale. Il lavoro svolto ha permesso di rag-giungere gli obbiettivi prefissati. Una struttura di base per una piattaforma web per la gestione di dati di misu-ra di diverso tipo è stata realizzata e

applicata nel caso concreto di misure legate al traffico ferroviario. Utiliz-zando quale base la libreria OpenCV è inoltre stato costruito e testato in un caso reale un algoritmo per il ri-conoscimento e la caratterizzazione dei passaggi di treni su di un asse fer-roviario. L’attendibilità di gran parte dei dati raccolti è buona e gli errori ri-scontrati sono generalmente ridotti. Nonostante la quantità di problemi da risolvere sia stata considerevole il sistema costruito presenta una buo-na affidabilità.

Obiettivi– Creare una struttura di base per lo sviluppo di una

piattaforma web che sia il più versatile possibile e che permetta in futuro l’archiviazione e la consultazione di dati di diversi tipi di misure.

– Realizzare un sistema informatico di conteggio e ca-ratterizzazione del traffico basato su un’analisi video. Un sistema di questo tipo permette un notevole ri-sparmio di tempo e un incremento della durata e della qualità delle misure rispetto al rilevamento manuale.

ConclusioneA conclusione del lavoro si può affermare che gli ob-biettivi sono stati raggiunti. Innanzitutto l’impiego della piattaforma realizzata per la gestione delle misure del traffico ferroviario ha fin da subito facilitato la reperibili-tà dei dati raccolti, e quindi ha anche semplificato la loro interpretazione. Secondariamente è stato possibile mettere all’opera OpenCV nel contesto di misura del traffico ferroviario. L’attendibilità di gran parte dei dati raccolti è buona e gli

errori riscontrati sono generalmente ridotti. Nel caso di errori di entità rilevante, è già stata pensata una soluzio-ne per migliorare l’efficacia del sistema. Nonostante la quantità di problemi da risolvere sia stata considerevole il sistema costruito presenta una buona affidabilità.Le competenze che ho accumulato con questo lavoro sono sufficienti per poter affermare che anche il know how di IFEC è cresciuto rilevantemente, e continuerà a crescere costantemente poiché i campi di lavoro che la ditta affronterà sono in continuo ampliamento, quindi il software avrà un incessante bisogno di aggiornamenti legati ai nuovi contesti di lavoro in cui verrà impiegato.

Piattaforma conteggio veicoli

Nasko Cepilov RelatoreGiacomo Poretti

AbstractLa richiesta dell’azienda Marconi Technologies si basa sull’esigenza di integrare nel proprio sistema di conferenza un modulo utente per il supporto a molteplici meccanismi di votazione e un’interfaccia per amministratore o moderatore.L’amministratore o il moderatore del sistema può inserire dei quesi-ti che richiedono la votazione degli utenti presenti in sala. Quando il

moderatore decide di aprire una votazione, il sistema di conferenza passa automaticamente allo stato di votazione in cui offre agli utenti di votare sul quesito proposto. Una volta terminata la votazione, il si-stema mostra i risultati e permette agli utenti presenti in sala di ripren-dere ad usare liberamente il proprio sistema di conferenza. Il sistema supporta diverse tipolo-gie di votazione, tra cui: favorevole

o contrario, voto di lista (scelta tra n elementi), opinione. Il sistema deve infine supportare correttamente più lingue, tra cui lingue che utiliz-zano un sistema di scrittura diffe-rente da quelli occidentali (es. giap-ponese, russo o arabo).

Obiettivi– Progettare il sistema in modo tale che sia generico,

offrendo la possibilità di personalizzare un quesito a seconda delle tipologie di votazione.

– Prevedere il supporto multilingua, considerando an-che lingue con sistema di scrittura diverso dalle occi-dentali.

– Realizzare il sistema completo database, backend, client.

– Integrare il modulo di votazione nell’applicazione aziendale già esistente.

– Creare un’interfaccia per amministratore e modera-tore per svolgere operazioni sui quesiti.

ConclusioneAl termine del progetto sono stati soddisfatti tutti i re-quisiti iniziali, aggiungendo inoltre features richieste dal committente durante gli incontri settimanali.Il modulo per amministratore o moderatore è stato implementato come web App ed è utilizzato per svol-gere le operazioni richieste nelle specifiche. È compito dell’amministratore inserire le giuste traduzioni per ogni quesito affinché il sistema multilingua funzioni corret-tamente. Il modulo utente è stato integrato all’interno dell’applicazione Android esistente e permette di se-lezionare una lingua tra quelle supportate dal sistema. Una volta ricevuta l’attivazione di un quesito, lo mostra nella lingua corretta dando la possibilità entro un certo timeout di votare. Terminata la votazione vengono vi-sualizzati i risultati all’interno di un grafico a torta.Come sviluppi futuri si potrebbe prevedere di caricare template di quesiti tramite dei file predefiniti

Vote AllOffrire un modulo di votazione personalizzabile con supporto multilinguaMirco De Tomasi Relatore

Salvatore VaniniPartnerMarconi Technologies

PartnerIFEC ingegneria SA

68 69Ingegneria informaticaIngegneria informatica

AbstractIl progetto si incentra sul confron-to di traiettorie, un campo di studi sempre più emergente e necessario negli ambiti della robotica e dell’IoT, sia per monitorare quanto un og-getto stia seguendo un percorso prestabilito, sia per fare controlli di qualità tra diversi sensori e diverse modalità di movimento. Il confron-to di traiettorie consiste nel fare un paragone su come diverse traiet-torie siano simili tra loro, e si vuo-le mostrare questa differenza sia

graficamente, che numericamente.Nella prima fase ci si è incentra-ti sull’osservazione di un drone e su come esso generasse traiettorie, partecipando alle prove pratiche del progetto Drone-Fly-Way, accom-pagnando questa fase pratica da una ricerca su come avviene il con-fronto di traiettorie. La seconda fase è stata invece dedicata allo sviluppo di un’applicazione in Python, sulla base dei framework Qt e ROS, che permette all’utente finale di fare i confronti necessari.

Il cuore dell’applicazione è una fine-stra di RVIZ, un software di visualiz-zazione grafica 3D che fa parte del framework di ROS.

Obiettivi– Prendere confidenza con le più moderne tecnologie

software in uso nel campo della robotica mobile e dei droni autonomi.

– Sviluppare dei sottosistemi software ben integrati in ROS, un framework esistente (complesso ma molto modulare).

– Partecipare alle fasi finali di un progetto con forte componente di innovazione dando il proprio contri-buto.

– Effettuare uno studio su come confrontare le traietto-rie, sugli algoritmi e i problemi esistenti.

– Sviluppare un’applicazione che permetta la visualizza-zione e il confronto tra traiettorie, con la possibilità di ascoltare contemporaneamente diverse traiettorie.

ConclusioneGli obbiettivi sono stati soddisfatti con successo:– L’utente può caricare più traiettorie, vederle mostrate

a schermo in 3D, e ha anche la possibilità di ottenere dati numerici che vengono aggiornati in tempo reale, per ciascuna traiettoria.

– Il programma è stato strutturato in modo da essere composto da quattro componenti indipendenti, i quali possono essere sostituti da terze parti se necessario. Per il calcolo della distanza è stato usato un algoritmo basato su distanza euclidea.

– L’applicazione è facilmente estendibile e permette in maniera leggera e pulita di visualizzare graficamente e testualmente quanto due traiettorie differiscano tra di loro.

Validazione sperimentale di un sistema di localizzazione e coordinamento per il volo di droni

Federico D’Ignazio RelatoreLuca Gambardella

AbstractInizialmente il progetto doveva ri-guardare il rendering di mappe con alta densità di oggetti, ma duran-te gli incontri con i rappresentanti dell’azienda gli obiettivi del progetto si sono spostati verso il supporto allo sviluppo di nuove reti di dispositivi. Per progettare nuove reti di dispo-sitivi l’azienda ha un tool di simula-zione dove vengono inserite le posi-zioni dei dispositivi e viene simulato il comportamento della rete. In que-

sto progetto è stato sviluppato un software che consente di generare le posizioni di questi dispositivi. Si è svi-luppata un’applicazione desktop con servizio web complementare utiliz-zando Electron e Node.js. L’applicazione permette di selezio-nare un’area sulla mappa, mediante il servizio web estrarne le strade e visualizzarle, in seguito posizionarci i dispositivi, ed esportare i dati gene-rati. All’utente viene inoltre data la possibilità di importare le posizioni

dei dispositivi precedentemente sal-vate e modificarle.

Obiettivi– Familiarizzare con il contesto operativo.– Ricerca dello stato dell’arte.– Definizione di un modello descrittivo del modulo di

posizionamento degli oggetti.– Implementazione del modulo di posizionamento.

ConclusioneAlla luce dei risultati ottenuti l’applicazione desktop e il servizio web sviluppati soddisfano i requisiti. Sele-zionando un’area o impostando due punti si possono richiedere le strade al servizio web visualizzandole sul-la mappa. Le strade possono anche essere disegnate manualmente. Quando si hanno le strade si possono posizionare automaticamente i dispositivi lungo que-sti percorsi ad una distanza parametrizzata. Si possono aggiungere, spostare e cancellare dispositivi ed infine esportare il risultato in formato ‘.kml’. Utilizzando questo formato è possibile importare nuovamente i dispositivi precedentemente salvati.In più si è aggiunta la possibilità di cercare un luogo, per esempio un comune, e visualizzarne i confini o se non disponibili, la mappa viene centrata sul posto.Il progetto ha la possibilità di essere migliorato: per esempio si potrebbe creare un proprio servizio per otte-nere l’altitudine invece di sfruttare le API di Google.Il progetto è stato una sfida interessante ed il risultato è un’applicazione potente ed intuitiva.

Pre-processing e rendering di mappe GIS per IoT platforms

Sofia Geronzi RelatoreNicola Rizzo

PartnerParadox Engineering

70 71Ingegneria informaticaIngegneria informatica

AbstractL’obbiettivo principale di questo progetto è sfruttare l’enorme po-tenzialità degli Honeypot, crean-do una struttura per processare e analizzare i dati da essi generati per avere un’immagine chiara dei vari attacchi avvenuti. Questa strut-tura dovrà comprendere una rac-colta e uno stoccaggio dei dati in modo performante e la possibilità di analizzare i dati in maniera mol-to semplificata. Le tecnologie che ho utilizzato sono tutte open sour-

ce e utilizzate a livello professionale. Possono essere divise in due tipo-logie, ovvero quelle che hanno per-messo di raccogliere e immagazzi-nare i dati dai vari devices, e quelle che vanno a ricoprire l’esigenza di analizzarli. Per quanto riguarda la prima parte ho utilizzato due librerie di Apache, completamente compa-tibili tra di loro, Kafka e Hadoop. Mi hanno permesso di creare un siste-ma clusterizzato per integrare i dati, con tutti i vantaggi del caso, alte performance, scalabilità orizzontale,

fault tollerance. Mentre per l’analisi dei dati ho utilizzato Elasticsear-ch, un progetto molto attuale e in continua evoluzione che permette di eseguire analisi su grandi mole di dati con alte performance. Grazie a questo progetto sono riuscito a creare un sistema che sfrutta i dati degli Honeypot, dati fondamentali per la sicurezza informatica, dando la possibilità ad un team di IT-secu-rity, composto da tecnici o anche da semplici analisti, di accedervi in ma-niera efficiente e semplificata.

Obiettivi– Creare un sistema di stoccaggio distribuito e ridon-

dante.– Studiare le tecniche di processing distribuito (Cluste-

ring, GPU,…)– Studiare una strutturazione da dati raw.– Implementare un sistema di processing distribuito per

lo stutturazione dei logs.– Sviluppare di un servizio REST per accedere ai dati.– Creare un’interfaccia web per visualizzare i risultati.

ConclusioneIl compito principale di questo progetto era quello di creare una struttura performante per collezionare e sal-vare i log file generati dai vari device, sfruttando così la potenzialità maggiore di questa tecnologia, ovvero la scalabilità orizzontale. Grazie a Kafka, Hadoop e ai vari software creati da me sono riuscito ad ottenere questo risultato. Ho la possibilità di aggiungere o rimuovere device con molta facilità, infatti qualora un nuovo Ho-

neypot entrasse a far parte del sistema, non basterà far altro che eseguire su di esso il mio software java visto in precedenza per collezionare i suoi dati e metterli a di-sposizione per l’analisi.Un’ altro aspetto importante era quello dell’analisi dei dati da parte di utenti non prettamente tecnici. Grazie al client Web che ho realizzato sono andato a coprire anche questo requisito. Naturalmente il client dispone ancora di miglioramenti, ma sono riuscito comunque a dimostrare che è possibile utilizzare le enormi poten-zialità fornite da Elasticsearch anche distaccandosi dalla sua parte grafica, ovvero Kibana.Questo progetto mi ha permesso di utilizzare fra-mework professionali che nel mio percorso di studi non avevo mai visto. Naturalmente questo ha implicato tut-to un periodo di studio dei vari software prima di passare alla vera e propria implementazione. Inoltre, ho potuto consolidare tutte le conoscenze dei linguaggi principali di programmazione.

Analysis framework of distributed thread and malware data-sources

Giuliano Gremlich RelatoreAngelo Consoli

Partner+GF+ AgieCharmilles

PartnerHockey Club Lugano

AbstractCon la digitalizzazione delle informa-zioni in tutte le aziende c’è sempre più spesso la necessità di analizzare dati e poter ricavare delle informa-zioni da questi dati.Andare ad analizzarli in formato te-stuale o in altri formati tecnici come il JSON,CSV o XML è molto faticoso e a volte è impossibile arrivare a delle conclusioni data la mole di dati.I grafici hanno il vantaggio di essere

molto intuitivi e offrono la possibi-lità di tirare fuori conclusioni da una mole di dati con una semplice oc-chiata. Data questa necessità i pro-grammatori si trovano spesso con il problema di dover inserire nelle pro-prie applicazioni web dei grafici im-battendosi in eccessivo lavoro da fare per inserirli. È stata creata una libreria che permette di aggiungere una sola riga di HTML per inserire un grafico.Inoltre si da la possibilità di specifica-

re solo la sorgente dei dati che si vo-gliono caricare nel grafico, così che i dati possono essere ospitati anche in un altro sistema.Inoltre, è stato implementato un si-stema di filtri che si possono usare per fare un parsing dei dati prima di passarli al grafico.

Obiettivi– Semplificare più possibile la creazione di un grafico. – Dare la possibilità di dividere l’inserimento del grafico

nella pagina html dalla logica di creazione del dataset di dati da visualizzare nel grafico. Quindi bisognerà permettere di specificare solo l’indirizzo dove andare a prendere il dataset e la libreria che si deve occupare di fare la richiesta (AJAX) e caricare i dati. Questi dati vengono quindi presi dall’indirizzo specificato, il qua-le potrebbe anche non essere sotto il controllo di chi crea il grafico, ma una semplice sorgente di dati pub-blica o concessa da privati.

ConclusioneCon la creazione della libreria EasyGraph si è ridotto mol-tissimo il lavoro del programmatore che vuole inserire un grafico nella propria pagina web.Si è passati da una media di una decina di righe di codi-ce per inserire un grafico con le librerie preesistenti, a una sola riga per ogni grafico.Con EasyGraph è possibile creare un grafico solamente inserendo un elemento html con i parametri che indicano il tipo di grafico, l’indirizzo dove andare a prendere i dati e i filtri che si vogliono applicare.Si è implementata la possibilità di specificare semplice-mente la sorgente dei dati che può essere ospitata anche in un altro sistema e questi vengono caricati tramite ri-chiesta AJAX nel grafico o nei filtri desiderati.La libreria è stata progettata per poter essere estesa in fu-turo con altri tipi di grafici o altri filtri che il programmato-re avrà bisogno.

EasyGraph Dynamic web-based dashboard

Rezart Lohja RelatoreAlan Ferrari

7372 Ingegneria informaticaIngegneria informatica

AbstractLa chiusura convessa di un insieme di punti è il poligono convesso più piccolo che li racchiude tutti. Le ap-plicazioni di questo tipo di algoritmi spaziano dalla robotica alla compu-ter vision fino alla data science. È possibile trovare la chiusura con-vessa utilizzando la programma-zione lineare, partendo dalla sua definizione, applicabile quindi in alte dimensionalità. Molti algoritmi si

possono usare per trovare la chiu-sura convessa in modo efficace, uno tra questi è l’algoritmo di Jarvis co-nosciuto per la sua semplicità, sia a livello implementativo che a livello di comprensione. Vi è poi il miglior algoritmo in termini di tempo tra quelli sviluppati, appurato mediante confronti, ovvero il QuickHull. Esso ha un’implementazione per il caso bidimensionale e un’altra per il caso tridimensionale che è possibile ge-

neralizzare in dimensione generica. Il contributo di questa tesi è l’imple-mentazione di quest’ultima versio-ne, in modo da avere un algoritmo funzionante in alte dimensionalità più veloce della programmazio-ne lineare. Per avere una verifica di tipo intuitivo del funzionamento dell’algoritmo è stata implementata un’interfaccia di visualizzazione per il caso 2D e 3D.

Obiettivi– Introdurre il concetto di convex hull, definirlo mate-

maticamente e mostrare alcuni usi pratici.– Studiare gli algoritmi per la realizzazione del convex

hull dato un insieme di n punti in uno spazio bidimen-sionale, tridimensionale e in dimensione generica.

– Implementare gli algoritmi studiati, ovvero Linear Programming, Jarvis, QuickHull 2D, QuickHull 3D, in modo che funzionino anche utilizzando dei punti nor-malizzati.

– Rappresentare graficamente i risultati degli algoritmi sia in due dimensioni che in tre dimensioni.

– Approssimare gli algoritmi e i punti secondo un delta specificato.

– Verificare sotto quali condizioni un’approssimazione è migliore di un’altra facendo un’analisi dei punti interni ed esterni al convex hull.

– Verificare l’accuratezza dopo le varie prove.– Verificare quale degli algoritmi utilizzati è il più veloce.– Implementare in Java un algoritmo che individua il

convex hull in d dimensioni. Deve essere più efficien-te in termini di tempo della programmazione lineare usata in d dimensioni.

ConclusioneSono stati implementati tutti gli algoritmi prefissati. In primis Linear Programming che sfrutta la definizione ma-tematica di convex hull. Si evince dalle prove effettuate che il miglior algoritmo da usare nello spazio bidimensio-nale con punti normalizzati è l’algoritmo di Jarvis, mentre con punti non normalizzati è il QuickHull 2D. Nel caso di spazio tridimensionale il QuickHull 3D è nettamente mi-gliore della programmazione lineare. Dalle diverse prove è emerso che più il livello di approssi-mazione è basso, più il tempo di esecuzione dell’algorit-mo è basso a sua volta. Quindi se si vuole un algoritmo veloce e che non commetta errori, non si deve approssi-mare, ma utilizzare il numero originale, almeno nel caso di punti generati in modo random.È stata realizzata una versione del QuickHull in 3D facil-mente generalizzabile in dimensione arbitraria grazie al paper «The Quickhull Algorithm for Convex Hull». Già in tre dimensioni si è dimostrato, mediante test, che l’algo-ritmo implementato è più veloce della programmazione lineare. Questo risultato è quello che si auspicava veden-do la complessità computazionale dell’algoritmo.

Algoritmi per Chiusura Convessa in Alte Dimensionalità: Analisi, Sviluppo, Visualizzazione e Approssimazioni Lorenzo Madonna Relatore

Luca Maria GambardellaPartnerSistema bibliotecario ticinese

AbstractIl Sistema bibliotecario ticinese (SBT) è alla ricerca di una soluzione software che consenta l’automatiz-zazione del processo di prestito di un libro. Attualmente le 4 sedi prin-cipali ticinesi vantano oltre 70’000 prestiti annui ciascuna.Lo scopo è quello di effettuare un’a-nalisi delle tecnologie sul mercato e di portare un prototipo di soluzione.Tramite tecniche di Computer Vi-

sion e Machine Learning e con l’ausilio di telecamere installate su Raspberry Pi 2, il sistema è in grado di rilevare quando un libro viene ri-mosso da uno scaffale, il frame vie-ne processato tramite algoritmi di matching e viene identificato il libro con il maggior numero di occorren-ze, infine viene inviata una notifica contente il dettaglio del libro allo smartphone dell’utente che ha ef-fettuato l’azione.

Per conoscere l’identità dell’uten-te che ha effettuato l’azione, il suo smartphone comunica con i Beacon Bluetooth installati nello stabile cosi che il sistema sia in grado di traccia-re la sua posizione. Il progetto è stato portato a termi-ne correttamente, evidenziando i difetti di un sistema di questo tipo e portando soluzioni valide per un ambiente produttivo.

Obiettivi– Individuare una valida alternativa all’indicizzazione di

ogni singolo libro con il chip RFID.– Se possibile evitare una grossa spesa come quella di

1 chip RFID per ogni libro presente (200’000 CHF da preventivo) utilizzando qualche altra tecnologia.

– Valutare soluzioni diverse al fine di automatizzare il si-stema di prestito di uno o più libri all’interno di una bi-blioteca da parte di un utente con un budget minore.

ConclusioneLa Computer Vision rappresenta il futuro della tecnolo-gia ed è applicabile in molti frangenti della vita quotidiana dalle attività semplici a quelle più complesse.Per esempio, Amazon, ha rivoluzionato il mondo della vendita al dettaglio con Amazon Go, entri, scegli, prendi e vai... Questa nuova esperienza di shopping senza cas-sa proposta da Amazon è resa possibile grazie a molte delle tecnologie che si trovano già a bordo delle auto a guida automatica: Computer Vision, sensori e machine learning che apprendono dall’esperienza. Tutto converge nella “Just Walk Out Shopping” in grado di rilevare quan-do i prodotti sono presi o rimessi sugli scaffali tenendone traccia nel carrello virtuale del cliente. Finito lo shopping, si esce semplicemente dal negozio e, dopo poco, il conto verrà addebitato sull’account Amazon che invierà una ri-cevuta. Con questo progetto, si è voluto cercare di imitare quanto fatto da un colosso come Amazon, con migliaia di dipendenti e milioni di dollari a disposizione e portare questa tecnologia all’interno di una biblioteca.

Biblioteca del futuroSocietà Bibliotecaria Cantonale

Luca Margonar RelatoreGiacomo Poretti

74 75Ingegneria informaticaIngegneria informatica

AbstractIl progetto prevede la realizzazio-ne di una piattaforma per l’Azienda Rex, la quale si occupa di produzione e vendita di articoli tecnici in mate-riali elastici e la combinazione di essi con supporti rigidi, che permetta di generare delle istruzioni di mon-taggio del prodotto SwissCross in modo da rendere maggiormente autonomi i clienti nella fase di istal-lazione.

La piattaforma ha come principale input un file Autocad, già presente in azienda per la produzione. Da esso vengono estratti tutti i dati neces-sari alla creazione della scena, che sarà realizzata in automatico ma con la possibilità di apportarvi mo-difiche da parte dell’utente, in modo da essere il più veritiera possibile. Dalla scena si estrapolano delle foto che verranno inserite nel PDF delle istruzioni insieme a immagini mo-

dificate ad hoc per il prototipo trat-tato in modo da essere il più chiare possibili per l’utilizzatore. Il progetto dimostra la fattibili-tà dell’integrazione di più pezzi da montare e funzionalità aggiuntive come un canale diretto per l’assi-stenza sui pezzi venduti in grado di migliorare il servizio post vendita of-ferto dall’azienda.

Obiettivi– Definizione di un database locale di supporto e sviluppo

di un’interfaccia grafica in grado di definire e descrive-re ogni singolo passaggio relativo al montaggio della struttura, e mantenere aggiornato il database di sup-porto con tutte le componenti utilizzate per ogni sin-gola “composizione”.

– Obiettivo del programma è permettere di automatiz-zare la stampa di una una serie di file PDF relativi ai sin-goli step di montaggio della struttura, congiuntamente alla stampa ricapitolativa delle singole componenti e le relative quantità.

ConclusioneL’obiettivo principale di questo progetto consiste nel-la creazione di istruzioni per il montaggio del prodotto SwissCroos dell’Azienda Rex di Mendrisio. L’articolo in questione è un prodotto di gomma che facilita l’attra-versamento dei binari, ed è proprio a partire da questi che, tramite l’utilizzo di alcuni supporti, viene montato. Il progetto ha dimostrato la sua fattibilità mediante l’u-so di un’applicazione web, molto comoda in quanto cross-platform, e con molte possibilità di estensione per soddisfare interamente le richieste del committente. In-fatti esso verrà integrato aggiungendo ulteriori supporti per il montaggio e altre funzionalità. I risultati ottenuti hanno soddisfatto le attese, ricevendo quindi un riscontro positivo. Nel momento dell’attuazio-ne reale, l’azienda gioverà di numerosi benefici econo-mici e tempistici. L’implementazione di questo progetto in maniera auto-noma mi ha portato notevoli benefici, in quanto penso abbia contribuito ad una grande crescita personale. Mi ha permesso inoltre di consolidare la conoscenza di al-cuni framework e conoscerne di nuovi e molto interes-santi, come Web GL.

REX - Istruzioni tipo IKEA

Vincenzo Messana RelatoreGiacomo Poretti

PartnerREX Articoli Tecnici SA

AbstractIl progetto si svolge nel contesto dei sistemi di controllo del traffico ae-reo ed elusione di collisioni in volo (TCAS). L’organizzazione Interna-zionale dell’Aviazione Civile richiede l’installazione dei sistemi TCAS so-lamente su velivoli con una massa massima di decollo superiore ai 5700 kg oppure autorizzati a trasportare più di 19 passeggeri. I sistemi TCAS presentano costi molto elevati, di conseguenza, velivoli di minor di-

mensioni non ne sono equipaggiati.È quindi necessario fornire un si-stema alternativo ai TCAS che sia finanziariamente sostenibile, suffi-cientemente utile ed affidabile, e fa-cilmente adattabile a piccoli velivoli.L’approccio scelto è quello di svilup-pare un sistema composto da com-ponenti software e hardware. Il risultato è un’applicazione mobi-le Android per smartphone e tablet che permette di tracciare tutte le informazioni necessarie dei velivoli

inviandole ad un back end, il quale le immagazzina e restituisce una lista dei velivoli vicini. Le stesse in-formazioni sono utilizzate anche per un front end web, il quale permette il tracciamento di tutti i velivoli che utilizzano il sistema.È ora disponibile un prototipo con le caratteristiche e i requisiti richiesti utile per piccoli mezzi di trasporto. Sono necessari ulteriori studi per ve-rificare la copertura e la disponibilità effettiva del segnale GSM in volo.

Obiettivi– Dimostrare la funzionalità di un sistema di controllo

anticollisione client-server per velivoli non muniti di sistema TCAS.

– Realizzare un primo prototipo di software fruibile su dispositivi mobili (smartphone, tablet) basato su tec-nologie di telefonia mobile e sistema di GPS.

– Implementare un applicativo web per il controllo del traffico aereo da terra.

– Realizzare il prodotto testandolo, costruendolo e di-stribuendolo sistematicamente.

ConclusioneIl prodotto finale ottenuto dalla realizzazione del pro-getto è un primo prototipo, che dimostra la fattibilità di un sistema simile ad un dispositivo TCAS utilizzando strumenti accessibili e di costo moderato.SkyCheck presenta tutte le funzionalità indispensabili per supportare il pilota al volo quali: allerta del traffico e sistema di elusione delle collisioni.Il risultato finale propone una soluzione per risolvere il problema mediante l’utilizzo di un semplice dispositivo mobile. Alcuni fattori però, sono stati trascurati durante lo svolgimento del progetto, rappresentando dei poten-ziali limiti e problemi del software.Per motivi di tempo e di ovvi problemi di risorse, l’appli-cativo realizzato non è stato testato in un reale caso d’u-so per analizzarne il comportamento ad alte quote.Dunque un’analisi e uno studio più approfondito sul-le tecnologie utilizzate, dimostrerà se un software con questa tipologia di architettura è una soluzione accetta-bile o meno per risolvere la problematica.

SkyCheck: prototipo per applicazione di controllo anticollisione in volo

Christian Ortega RelatoreRoberto Guidi

PartnerGeneralAvia SA

76 77Ingegneria informatica Ingegneria informatica

AbstractL’atto di riprodurre files media di-rettamente da una fonte web sen-za memorizzare i dati localmente è conosciuto come streaming. In veste di comuni utenti, si pratica lo streaming riproducendo film salva-ti su un server remoto, ma in realtà lo streaming si estende ad una più vasta gamma di utilizzi, quali pren-dere parte a una videoconferenza o inviare frames video da un satellite

spaziale a un computer. Lo strea-ming è oggigiorno sempre più co-munemente utilizzato, soprattutto a causa del fatto che la gente non vuole più memorizzare files sulle proprie devices: le aziende quindi stanno lavorando arduamente al fine di includere funzionalità basate sullo streaming nei loro prodotti. Lo streaming deve pertanto essere co-stantemente migliorato, analizzato e validato, per poter essere inte-

grato in prodotti che siano all’altez-za delle aspettative della clientela. Questo è lo scopo della twinSTRE-AMER 1.0: offrire una piattaforma professionale e funzionale sulla quale testare dispositivi, protocolli e parametri e offrire una valida analisi dei risultati delle statistiche.

ObiettiviNell’ambito del progetto CTI JamSection, l’istituto ISIN sta sviluppando una piattaforma per lo streaming in alta definizione di eventi dal vivo (audio e video). Per la fase iniziale del progetto si rende necessario lo sviluppo di un’applicazione in grado di inviare e/o ricevere delle streams audio e/o video su rete LAN. Per l’invio e la rice-zione delle streams verrà utilizzato il framework GStre-amer (framework open source per lo sviluppo di appli-cazioni multimediali) mentre la GUI verrà sviluppata utilizzando Qt. I requisiti principali dell’applicazione sono i seguenti:– Inviare e ricevere contemporaneamente streams au-

dio e video specificandone l’indirizzo IP, la porta e l’ID della stream.

– Parametrizzare le streams inviate.– Selezionare la sorgente della stream.– Selezionare il protocollo da utilizzare per l’invio dei

pacchetti.– Eseguire delle misure di performances.

ConclusioneLa scoperta di nuovi framework e lo studio approfondi-to del loro funzionamento è una skill indispensabile per un ingegnere del giorno d’oggi. Un ingegnere che sco-pre per la prima volta GStreamer, si trova di fronte a una realtà completamente nuova. Il campo di studio non si sofferma ai semplici elementi utilizzati in twinSTRE-AMER 1.0 e alla crezione di pipelines semi-complesse: esiste in background un intero mondo composto da en-coders, decoders, equalizers, payloaders e protocolli web da studiare in profondità e implementare poi in softwa-re C/C++. Lo studio approfondito di tutti gli elementi permetterebbe la realizzazione di software in grado di competere con i maggiori media player e servizi di strea-ming presenti oggigiorno sul mercato. GStreamer resta una delle librerie multimedia con maggiori possibilitàdi sviluppo. Essendo esso un framework opensource, il contributo di utenti provenienti da tutto il mondo e da diversi campi di studio legati all’ambito multimedia, ne garantisce una crescita e sviluppo costante nel tempo. twinSTREAMER 1.0 offre le funzionalità base che uno streaming-tester può richiedere.

twinSTREAMER 1.0: Applicazione per lo streaming audio e video

Marko Pacak RelatoreLoris Grossi

AbstractIn una realtà lavorativa dove quali-tà ed efficienza sono sinonimi e non complementari, è necessario fornire alla clientela un servizio celere, ma allo stesso tempo preciso e affida-bile a un prezzo concorrenziale. Per questa ragione analizzando il pro-cesso di elaborazione dei dati, utiliz-zato da IFEC ingegneria SA durante i monitoraggi di vibrazione, sono stati

identificati dei punti problematici in merito agli aspetti sopracitati. Le fasi d’importazione e di elaborazione dei dati registrati dai vari strumenti di misura hanno portato alla luce una serie di passaggi dovuti all’uso di più programmi. Attraverso lo sviluppo di questo lavoro di tesi è stata realizzata un’applicazione che racchiude tutte le funzionalità necessarie per ovvia-re ai tediosi passaggi utilizzati prima

migliorandone la qualità e l’efficien-za. Questa applicazione si è dimo-strata efficace ed efficiente in quanto tramite test eseguiti si è ottenuto lo stesso risultati del vecchio sistema, ma in un settimo del tempo. Quanto ottenuto porta un chiaro guadagno a livello di tempo e di denaro, permet-tendo di offrire ai committenti risul-tati in tempi più brevi ad un prezzo più contenuto.

ObiettiviL’obiettivo primario che si vuole raggiungere con questo progetto è quello di sviluppare un software che racchiuda tutte le funzionalità di analisi necessarie a ottenere risul-tati di qualità, riducendo il tempo e le risorse impiegate. Gli obiettivi che si vogliono raggiungere sono: – Associazione di segnali di vibrazione e di acustica ad

eventi registrati .– Parametrizzazione totale del software, potendo sce-

gliere quale strumento o mezzo usare come dato pri-mario per l’analisi .

– Controllo della qualità dei risultati tramite analisi dei segnali.

– Creazione di grafici in modo automatico per i dati e i ri-sultati.

– Confronto con le normative vigenti (DIN, VSS, VVRTB).

ConclusioneLo sviluppo di questa applicazione è nato dall’esigenza di migliorare l’efficienza e l’efficacia del processo di elabo-razione dei dati misurati in un contesto di lavoro reale.Come dimostrato dai risultati ottenuti tramite i test di performance, questo nuovo sistema permette di velo-cizzare di circa trenta volte le fasi necessarie all’elabo-razione, dalla preparazione, all’importazione, all’asso-ciazione, alla visualizzazione e infine all’esportazione dei dati. In un test di caso reale sono stati messi a confronto il vecchio e il nuovo sistema, eseguendo un’elaborazione compresa di fase di validazione eseguita dall’utente. I ri-sultati ottenuti sono stati più precisi, dettagliati e ricavati in un settimo del tempo, passando da sette giorni lavo-rativi ad uno. Quanto ottenuto porta un chiaro guada-gno a livello di tempo e di denaro, permettendo di offrire ai committenti, risultati in tempi più brevi ad un prezzo più contenuto.

Software per l’associazione e l’analisi dei segnali di vibrazione ed acustica

Pedro Daniel Pagano RelatoreAmos Brocco

PartnerIFEC ingegneria SA

78 79Ingegneria informatica Ingegneria informatica

AbstractIl Natural Language Processing (NLP) è una tecnica che negli ulti-mi anni è stata in grado di portare innumerevoli innovazioni nel mon-do tecnologico. L’obiettivo di que-sto progetto è quello di valutare il funzionamento dei vari software attualmente presenti proprio in questo ambito. La valutazione dei software viene effettuata compa-rando l’output ottenuto dai softwa-re testati con una ground-truth di riferimento, fornita dal Dipartimen-

to formazione e apprendimento della SUPSI. Inizialmente si è reso necessario scoprire e collaudare i tools di analisi della lingua. Dopo questa fase introduttiva, si è inizia-to a normalizzare e rendere con-frontabili le due fonti di testo. In una seconda fase, sono state calcolate le percentuali di accuratezza grezze che hanno permesso di comprende-re meglio il funzionamento e la pre-cisione di ogni tool. Infine, sono sta-te effettuate delle statistiche mirate, volte ad evidenziare i pregi e i difetti

di ogni software. La realizzazione di matrici di confusione e di accura-tezza generate per categoria hanno permesso un confronto diretto tra i vari programmi.I risultati e le statistiche ottenute confrontando le due parti di testo evidenziano che i software di NLP non funzionano come dichiarato se confrontati con un italiano non standard. Le percentuali di accura-tezza ottenute distano infatti alme-no 10-15 punti percentuali da quanto dichiarato.

Obiettivi– Acquisire familiarità con le tecnologie e sfruttarne a

pieno le potenzialità.– Apprendere fondamenti teorici e pratici dell’NLP.– Rendere le due fonti di testi comparabili.– Calcolare degli indici grezzi e accurati per la valutazione.– Fornire strumenti ‘grafici’ per la valutazione.– Evidenziare pregi e difetti di ogni applicativo.

ConclusioneQuesto progetto mi ha dato la possibilità di affrontare due tematiche che di questi tempi sono molto discusse: il Natural Language Processing e il machine learning. Gli obiettivi del progetto, così come i requisiti imposti dal committente, si possono considerare raggiunti e rispet-tati. Lo sviluppo ha permesso di valutare ed evidenziare i software di NLP su un corpus di testi redatti in italiano non-standard. I risultati ottenuti hanno mostrato la ca-renza di accuratezza dei software nell’analisi di questo tipo di scritti. Le conoscenze teoriche e pratiche acquisi-te sono molte e concernono sia gli aspetti tecnici, come l’NLP, il machine learning e il linugaggio Python, sia quelli organizzativi e di gestione di un progetto di natura pret-tamente agile.

Sviluppo di strumenti per l’analisi automatica di testi in lingua italiana

Aris Piatti RelatoreDaniele Puccinelli

AbstractL’ecologia è un tema che sempre più entra a far parte, in modo diretto o indiretto, delle nostre vite. A partire dal ventunesimo secolo si trova sem-pre più al centro di importanti eventi e sensibili dibattiti, malgrado ven-ga spesso percepita come qualcosa di distante, fastidioso e incrollabile. Piuttosto che sensibilizzare il pubbli-co attraverso apocalittiche minacce, si vuole puntare su un’istruzione po-sitiva, divertente e appassionante. Da qui nasce l’idea dello sviluppo di un videogioco incentrato sul tema

dell’ambiente, dove al giocatore viene affidata la gestione di un in-tero pianeta nel quale soddisfare le esigenze di una civiltà in continua espansione, senza tuttavia ignorare i delicati equilibri dell’ecosistema fra sostenibilità e costi.La creazione di un videogioco non si focalizza unicamente sulla program-mazione di codice, ma necessita di tutta una serie di attività interdisci-plinari al fine di creare un prodotto completo e interessante.

ObiettiviLo scopo primario è quello dello sviluppo di un videogio-co per smartphone su piattaforme Windows ed Android.Gli obiettivi sono suddivisi come di seguito:– Definizione della storia di gioco, ossia dinamiche del

pianeta, degli edifici e ambientali.– Costruzione del videogioco attorno ad una superficie

in tre dimensioni con supporto multi-poligonale a più livelli.

– Creazione del supporto per il salvataggio e carica-mento del file di gioco.

– Creazione e gestione delle attività d’animazione dei contenuti.

– Creazione dei modelli grafici 3D.– Creazione dei contenuti audio.– Gestione degli input su dispositivi mobile.– Ottimizzazione dei processi e delle prestazioni.– Convalida e verifica delle attività su piattaforme differenti.

ConclusioneNel percorso di sviluppo del videogioco sono stati imple-mentati i moduli di base, come la gestione delle anima-zioni, l’impatto dei collisori e l’interazione degli input, oltre a componenti più mirate, come quella relativa all’uso della scheda grafica. Alla scrittura di codice sorgente si è affiancata anche la creazione di modelli 3D (con relativi stili e colorazioni) e delle fonti sonore (musica e rumori di fondo). Di supporto al tutto vi è la trama, ovvero il messaggio da far passare all’utente attraverso una storia che rappresenta il punto centrale dell’applicazione e che contempla sia l’aspetto ludico che quello formativo.Per finalizzare il videogioco, quindi renderlo disponibile all’utenza, è necessario ampliare il comparto grafico con maggiori edifici, eseguire collaudi finali e stabilire un’effi-ciente strategia di pubblicazione tramite i mercati di rife-rimento.

Eco Planet BuilderVideogioco per smartphone

Stefano Pinoli RelatoreAchille Peternier

80 81Ingegneria informatica Ingegneria informatica

AbstractIl progetto richiedeva di individuare e definire un sistema che permet-tesse l’analisi automatica di codice sorgente Java. Le analisi effettuate sono di due tipi, analisi statiche ef-fettuate sul testo del codice sorgen-te e analisi dinamica effettuata sul codice compilato. Inoltre, il sistema dovrà poter analizzare in contem-poranea più codici sorgente, que-sti ultimi sono diversi fra di loro, in

quanto possono variare a livello di struttura. Per soddisfare queste esi-genze è necessario lo sviluppo di un applicativo.Si è stati in grado di produrre un software che permette, la pubbli-cazione di codice sorgente attraver-so un’interfaccia web dove si ha la possibilità di definire il tipo di analisi da effettuare e vederne subito il ri-sultato. I risultati successivamente possono venir esportati in formati

grafici e/o Excel.Grazie al prodotto realizzato è pos-sibile eseguire analisi su diversi co-dici sorgente in contemporanea, senza alcun vincolo sul quantitativo di codice sorgente, se non per quello Hardware.

Obiettivi– Velocizzare l’analisi del codice rendendola automatiz-

zata.– Ridurre i tempi di correzione degli esercizi.– Permettere la visualizzazione di grafici.– Permettere l’esportazione delle analisi.

ConclusioneIl prodotto finale realizzato è un primo prototipo, il quale dimostra la fattibilità di un sistema web per l’analisi di un codice sorgente.Il risultato finale proposto offre già un assaggio di un si-stema che si potrebbe eventualmente rendere completo grazie a sviluppi futuri.La pianificazione e la realizzazione del prodotto sono andate a buon fine, le tempistiche sono state rispettate e tutte le funzionalità pianificate sono state implemen-tate con successo.In conclusione mi ritengo soddisfatto del lavoro svilup-pato su tutti punti di vista. Questo progetto mi ha con-sentito di accrescere le mie conoscenze e competenze professionali portando un valore aggiunto alla mia for-mazione.

Automatic source code evaluation

Ardian Rusiti RelatoreVanni Galli

PartnerCentro Professionale Tecnico di Trevano

AbstractLo scopo di questo progetto è stato la realizzazione di un’architettura software per l’analisi streaming di dati derivanti da sensori. L’architet-tura è stata applicata al processa-mento di dati di consumo elettrico aggregato di un’abitazione residen-ziale. I dati di consumo sono stati generati da un simulatore di serie storiche. Successivamente si è in-tegrato un algoritmo di disaggre-

gazione che, a partire dal consumo totale misurato, stima il contributo dovuto a ciascun apparecchio col-legato. Si sono quindi verificate le prestazioni dell’algoritmo. Il lavoro è stato diviso in quattro fasi: nella prima si è definita un’architet-tura prototipale per lo streaming dei dati. Nella seconda fase è stato in-tegrato il disaggregatore nell’archi-tettura. Nella terza si è resa l’archi-tettura robusta e sono state raccolte

diverse misure e indici di prestazione relative allo stream processing. Infi-ne nell’ultima fase si sono misurate le perfomances del disaggregatore.

Obiettivi– Costruire un’architettura per lo streaming di dati pro-

dotti dai sensori al fine di poterli analizzare in tempo reale.

– Rendere l’architettura robusta.– Verificare i limiti dell’architettura– Integrare un disaggregatore di consumi elettrici all’in-

terno dell’architettura.– Misurare le capacità di ripartizione dei consumi del di-

saggregatore.

ConclusioneL’architettura è stata messa in campo con successo, ma è stato evidenziato che uno smart meter che dovesse fungere da producer dovrebbe avere un minimo di po-tenza di calcolo e di memoria per eseguire il codice a lui pertinente del framework Kafka. Il funzionamento dell’architettura è stato verificato con successo per quanto riguarda le seguenti caratteristiche:Fault tolerance: proprietà assicurata grazie all’imple-mentazione basata sul cluster Apache kafka.Scalabilità: l’architettura riesce a scalare facilmente all’aumentare del numero di sensori.

Manutenibilità: si possono aggiungere o togliere facil-mente nuovi componenti (producers o consumers) sen-za che gli altri ne risentano o debbano essere modificati. Infine si è potuto mostrare come il disaggregatore riesca a stimare al massimo il 5% di errore per alcune categorie di consumo. Per altre apparecchiature invece l’errore è sopra al 20% rispetto alla “ground truth”. Sono state an-che create delle baseline di comparazione con dei disag-gregatori “banali” che si limitano ad assegnare la riparti-zione dei consumi secondo la statistica dei consumi dei singoli apparecchi. Si è quindi riscontrato che in alcune categorie l’errore cumulato era comunque inferiore ri-spetto ai disaggregatori banali.

Disaggregazione di serie storiche in un’architettura di stream processing

Simone Sguazza RelatoreAndrea Emilio Rizzoli

82 Ingegneria informatica Ingegneria informatica

AbstractIl settore di produzione software di iride.ch SA si avvale di IdEA, un am-biente e un motore per lo sviluppo rapido di applicativi web, per la cre-azione di gestionali aziendali per i suoi clienti. Prodotto dall’azienda nel 2014, negli anni ha presentato mol-ti limiti, forzando il team di sviluppo alla creazione di artifici per aggirarli.Dopo attente valutazioni si é deciso di riscrivere il toolkit in una versione

completamente nuova ospitata su Google Cloud Platform.É stata completamente rivista la parte grafica della piattaforma, che ora risulta scalabile nelle dimensioni per essere usata su tutti i dispositivi e aggiunge numerose soluzioni per aumentarne l’usabilitá.Come prova della corretta pro-grammazione del porting si é svi-luppato IMS-18, il gestionale azien-dale per iride.ch SA. Esso é stato

progettato per integrare al suo interno tutte le funzionalitá atte a coprire l’intero processo aziendale, dalla gestione della fornitura di ser-vizi alla fatturazione. Questo progetto getta le basi per ulteriori sviluppi sia in IdEA che in IMS-18. La documentazione prepa-rata fungerá da base per fasi succes-sive di lavoro.

Obiettivi– Preparazione dell’ambiente di sviluppo secondo le

tecnologie richieste. – Contributo al porting di IdEA su Google Cloud Plat-

form. – Raccolta dei requisiti dell’applicativo tramite interviste

presso il committente. Analisi di fattibilitá e suddivi-sione dei requisiti raccolti in fasi di sviluppo.

– Sviluppo dell’applicativo IMS-18 con IdEA v2. – Stesura di un rapporto finale documentando il lavoro

svolto, quanto appreso e le problematiche riscontrate.

ConclusioneI cambiamenti effettuati al sistema di produzione software per iride.ch SA hanno gettato le basi per ulte-riori sviluppi e miglioramenti. Durante il corso del pro-getto sono venute alla luce brillanti idee per velocizzare ulteriormente il processo di creazione degli applicativi.Il cambiamento verso l’uso della tecnologia cloud di Google ha permesso di eliminare i limiti di velocitá e di potenza di calcolo che prima erano presenti e ha modi-ficato totalmente il modo di approcciarsi alla program-mazione dei gestionali offerti da iride.ch SA. La nuova veste grafica del sistema fornisce agli uten-ti un’interfaccia in grado di adattarsi a tutti i formati di schermi sulla quale viene utilizzata, e soprattutto facili-tato l’utilizzo degli applicativi prodotti. Il nuovo software di gestione aziendale IMS-18 é stato un ottimo stress-test per il porting della piattaforma e offre spazio a enormi espansioni per il futuro.Grazie alle nuove tecniche di gestione dei progetti intro-dotte con il lavoro di diploma, come la scelta di applicare la modalitá agile di sviluppo, la ditta possiede ora stru-menti avanzati per organizzare il proprio lavoro in ma-niera piú professionale.

Porting di IdEA sul Cloud e l’applicazione IMS-18

Marzio Stampanoni RelatoreGiovanni Taddei

PartnerIride.ch SA

83

AbstractNel campo del machine learning e della robotica, i ricercatori dell’Isti-tuto Dalle Molle di studi sull’intel-ligenza artificiale (IDSIA) vogliono sviluppare una pipeline completa per un sistema di controllo di un ro-bot mobile. Il sistema deve essere in grado di ricevere come input uno stream di immagini le quali verran-no processate una per una con lo scopo di estrarre informazioni di controllo riguardo alla presenza o

meno di un ostacolo. L’approccio al problema vuole essere di tipo ”per-ception-action”, il che sta a indicare che il controller va a collegare diret-tamente la percezione del robot con il suo movimento.Per quanto riguarda l’applicazione di machine learning, si sono usati 2 ap-procci principali: il primo basato su classificatori di tipo random forest e il secondo tramite l’utilizzo di reti neurali, mentre il controllore rimane di tipo ”reattivo” il che sta a indica-

re che non si utilizza nessun tipo di memoria ma ci si basa sulle infor-mazioni del momento.Il risultato ottenuto è un sistema funzionante in tutte le sue parti ba-sato su una rete neurale, che può rilevare, attraverso uno stream real-time di immagini, ostacoli ed agire di conseguenza per evitarli.Il sistema inoltre si adatta a qualsiasi tipo di robot da terra o drone provvi-sto di una videocamera.

Obiettivi– Prendere confidenza con i concetti chiave della robo-

tica mobile e le rispettive tecnologie (ROS).– Sviluppare un semplice sistema di machine learning

end-to-end con lo scopo di riconoscere ostacoli ed evitarli.

– Prendere conoscenza di sistemi di machine learning complessi come reti neurali.

– Applicare un sistema ad un robot da terra.– Validare un sistema reale.

ConclusioneCon questo progetto siamo stati in grado di costruire una pipeline completa e funzionante, composta da 3 fasi principali, ovvero: raccolta dati, applicazione di machine learning e utilizzo del classificatore risultante per con-trollare il robot. Alla fine di questa pipeline siamo riusciti a ottenere un sistema in grado di rilevare ostacoli attra-

verso l’analisi delle immagini e reagire per evitarli.Il sistema e’ stato validato sperimentalmente e risulta ben funzionante, nonostante l’approccio concettual-mente molto semplice. Grazie a ciò il robot riesce a rea-gire ed evitare degli ostacoli che gli si presentano davan-ti indipendentemente dalla forma e dal colore.Durante lo sviluppo abbiamo anche avuto la possibi-lità di confrontare varie tecniche analizzando i pregi e i difetti di ognuna al fine di scegliere quella migliore per massimizzarne le performance.Questo progetto mi ha permesso di prendere confiden-za con il mondo della robotica e i suoi strumenti. Quel-lo che è stato fatto è approfondire ROS, un framework molto potente per la comunicazione tra robot e acqui-sizione di dati. È stato inoltre un’occasione per scoprire le potenzialità di Python e dei suoi moduli e librerie come Keras e SciPy.

Implementazione di una pipeline basata su Machine Learning per un semplice task di visual servoing per un robot mobileStefano Toniolo Relatore

Luca Maria Gambardella

84 Ingegneria informatica

AbstractCon Internet of Things (IoT) si fa ri-ferimento ad un sistema nel quale oggetti del mondo reale sono con-nessi ad internet e possono scam-biarsi dati. Questi oggetti raccol-gono informazioni di varia natura nell’ambiente in cui risiedono e que-sto può rappresentare un problema per la sicurezza e la privacy di chi li utilizza nel caso in cui non fossero protetti.Nei prossimi decenni è prevista una crescita esponenziale di questo settore e di conseguenza anche dei rischi che ne derivano, è necessario quindi trovare una soluzione per

rendere queste reti il più sicure pos-sibile. La tecnologia distributed led-ger technology (DLT) rappresentauna rivoluzione tecnologica che può risolvere alcune tra le principa-li problematiche di IoT. Con DLT si fa riferimento ad una rete di data-base distribuiti che permettono ai partecipanti di creare, diffondere e memorizzare informazioni in modo efficiente e sicuro. Questo genere di database permette di eliminare ogni autorità centrale che gestisce i dati e ne garantisce la non ripudiabilità,chi ha eseguito un’operazione non può negare di averla fatta. L’obbiet-tivo di questo documento è quindi

quello di far convergere le due tec-nologie allo scopo di comprendere se la loro integrazione può produrre vantaggi significativi in termini di si-curezza informatica. Paradox Engi-neering è un’azienda di tecnologia che sviluppa soluzioni avanzate per l’Internet of Things. Verrà eseguita un’analisi dei loro sistemi IoT per valutarne i proble-mi esistenti prima dell’integrazio-ne della piattaforma DLT per poi rivalutarli a seguito di una possibile integrazione di questa nuova tecno-logia.

Obiettivi– Familiarizzare con il contesto operativo di Paradox

Engineering.– Ricercare lo stato dell’arte delle tecnologie IoT e DLT e

compilare il relativo rapporto.– Contribuire alla definizione delle funzionalità di secu-

rity della IoT platform e valutazione del livello di sicu-rezza raggiunto dopo l’implementazione della piatta-forma DLT.

– Contribuire alla progettazione e implementazione di un dimostratore utilizzando reti reali o simulate.

– Stesura del rapporto finale.

ConclusioneI cambiamenti effettuati al sistema di produzione software per iride.ch SA hanno gettato le basi per ulte-riori sviluppi e miglioramenti. Durante il corso del pro-getto sono venute alla luce brillanti idee per velocizzare

ulteriormente il processo di creazione degli applicativi.Il cambiamento verso l’uso della tecnologia cloud di Google ha permesso di eliminare i limiti di velocitá e di potenza di calcolo che prima erano presenti e ha modi-ficato totalmente il modo di approcciarsi alla program-mazione dei gestionali offerti da iride.ch SA. La nuova veste grafica del sistema fornisce agli uten-ti un’interfaccia in grado di adattarsi a tutti i formati di schermi sulla quale viene utilizzata, e soprattutto facili-tato l’utilizzo degli applicativi prodotti. Il nuovo software di gestione aziendale IMS-18 é stato un ottimo stress-test per il porting della piattaforma e offre spazio a enormi espansioni per il futuro.Grazie alle nuove tecniche di gestione dei progetti intro-dotte con il lavoro di diploma, come la scelta di applicare la modalitá agile di sviluppo, la ditta possiede ora stru-menti avanzati per organizzare il proprio lavoro in ma-niera piú professionale.

DLT e Cybersecurity per migliorare la sicurezza nellepiattaforme IoT

Paolo Veronesi RelatoreAmos Brocco

PartnerParadox Engineering

86

Bachelor of Sciencein Ingegneria informatica

RelatoriAngelo ConsoliCristian Bovino

Reda BousbahPer me l’informatica ha sempre avuto un che di magico, fin da piccolo, rimanevo affascinato di fronte ad un computer, adoravo giocarci e mi piaceva imparare ad usarlo. Tutto l’insieme di luci, colori e suoni mi catturava per ore in questo mondo stupendo. In seguito studiai elettronica, mi interessava capire il funziona-mento dei circuiti; grazie a questa formazione ebbi il primo approc-cio con la programmazione. Da quel momento mi fu chiaro: dai microcontrollori volevo passa-re ad architetture più complesse, specializzandomi in programma-zione e nella sicurezza dei sistemi informatici.

Vincitore del premio TalenThesis 2017

Reda Bousbah Hardening of Embedded Systems and IoT Elements

87

Sandro Pedrazzini, responsabile del corso di laureaIl lavoro di Bachelor di Reda Bousbah è improntato su una tematica che è tra le attività strategiche del gruppo di sicurezza e cyber-crime della SUPSI: la sicurezza delle infrastrutture interconnesse in rete, con particolare attenzione a moduli di dimensioni e di potenza di calcolo limitate (small form factor computers, embedded systems).Rendere sicura la comunicazione rappresenta la chiave di volta per l’affidabilità e la resilienza di un sistema distri-buito nei confronti delle proprie vulnerabilità intrinseche e di attacchi da parte di terzi. Le botnets (reti composte da dispositivi infettati) fanno uso sempre più crescente di dispositivi IoT (Internet of Things).Le aspettative del committente sono state raggiunte e in parte anche superate, se confrontate con gli obiettivi iniziali del progetto. Il lavoro svolto è stato sviluppato con un buon livello di autonomia e in modo professionale, completando il processo con alcuni test su infrastrutture fornite dal committente.

Abstract Lo scopo di questo progetto è quel-lo di studiare e trovare un metodo di rafforzare dei device IoT (Internet of Things) rendendoli meno visibili in rete e di conseguenza più sicuri.Dopo l’analisi dei diversi aspetti legati alla sicurezza di questo tipo di dispositivi, è stata sviluppatauna soluzione che integra le diversecomponenti analizzate. La rea-lizzazione di questo progetto ha richiesto l’uso di molteplici tecno-logie. Per la gestione, è stata creata un’applicazione web, utilizzando il framework Laravel. Sui client, i singoli device, è stata sviluppata un’interfaccia REST in Node.JS in modo da renderli controllabili e sicuri. Per garantire maggior sicurezza, un kernel Linux custom è stato compilato, rendendo dispo-nibili delle funzionalità aggiuntive.

ObiettivoLa presenza di dispositivi comuni, quali lampadine, webcam e piccoli elettrodomestici, connessi in rete è diventata la prassi e un trend destinato a crescere a dismisuranei prossimi anni. Purtroppo la grande spinta commerciale non ha fatto sempre corrispondere sviluppo tecnologico con sviluppo nel campo della sicurezza. Questo ha portato alla presenza di molti dispositivi vulnerabili espo-sti in rete. Con questo progetto si è voluto realizzare un’alternativa che implementasse un protocollo di comunicazione, pensato per rendere i dispositivi invisibili agli

scanner di rete e che fornisse al contempo un elevato livello di sicurezza. Il tutto tenendo conto del funzionamento di questi dispositivi e della loro applicazione, in modo da non comportarne il funzionamento.

MotivazioniLa sicurezza è un tema molto attuale oggigiorno, i recenti attacchicontro colossi del mercato e le rispettive perdite economiche e di immagine mostrano l’importanza di questo settore e come spesso passi in secondo piano. Grazie ai dispositivi IoT è possibile realizzare delle soluzioni estremamente interessanti, in grado di adattarsi completamente alle esigenze dell’utente. Il fatto di poter lavorare ad un tema attuale quale sicurezza unita ai dispositivi IoT, è stato il mo-tivo che mi ha fatto scegliere questo progetto tra i tanti presentati.

ConclusioniIl protocollo realizzato, unito all’architettura per la gestione dei dispositivi IoT, mostra come sia possibile creare un protocollo che renda i dispositivi invisibili agli scanner di rete e che permetta dicomunicare in modo sicuro. Le prove svolte mostrano anche come una più attenta e precisa compilazione del kernel Linux renda questi oggetti resilienti ad infezioni. Il prototipo permette di utilizzare i dispositivi al pieno delle loro funzionalità senza venir meno alla sicurezza.

Schema di funzionamento del protocollo

Home page della pagina di gestione dei dispositivi

Dispositivi utilizzati durante lo sviluppo