Thesis opportunities


Expiration date: [2010-03-01]

2010-03-01 Progettazione e sviluppo di un framework per l'analisi di log file
Questo stage si colloca nell'ambito del progetto SHADOWS, progetto finanziato dall'Unione Europea che ha come finalità la definizione di un framework ed una metodologia per lo sviluppo di applicazioni self-healing, in grado cioè di diagnosticare e correggere difetti software. Obiettivo dello stage è la definizione di un framework per l'analisi di file di log registrati durante esecuzioni caratterizzate da malfunzionamenti software e l'individuazione di anomalie correlate con il malfunzionamento come problemi di inizializzazione, driver difettosi, intrusioni nel sistema. In letteratura sono descritte diverse tecniche di analisi di log file che permettono a sviluppatori ed amministratori di sistema di diagnosticare malfunzionamenti software. Tali tecniche permettono di individuare diversi tipi di anomalie a seconda dell'approccio adottato, le tecniche basate su algoritmi di clustering, ad esempio, permettono di individuare alterazioni nella frequenza degli eventi di log, mentre le tecniche basate sul confronto di automi a stati finiti permettono di individuare di sequenze di eventi inattese. Lo strumento sviluppato deve permettere a sviluppatori ed amministratori di sistema di combinare differenti tecniche di analisi di log al fine di ottenere analisi caratterizzate da elevata precisione e richiamo. Lo studente dovrà inoltre effettuare uno studio comparativo che evidenzi benefici e punti deboli dell'approccio combinato rispetto all'utilizzo delle singole tecniche.
Level: Bachelor
Advisor: Leonardo Mariani
Supervisor: Fabrizio Pastore
Contact: pastore@disco.unimib.it
Expiration date: 2010-03-01

2010-03-01 Definizione di un framework per lo sviluppo di applicazioni in grado di gestire in maniera automatizzata i problemi di concorrenza.
Questo stage si colloca nell'ambito del progetto SHADOWS, progetto finanziato dall'Unione Europea che ha come finalità la definizione di un framework ed una metodologia per lo sviluppo di applicazioni self-healing, in grado cioè di diagnosticare e correggere difetti software. Lo stage ha come obiettivi la progettazione e lo sviluppo di un plug-in per Eclipse che permetta agli sviluppatori di software di implementare applicazioni in grado di prevenire fallimenti causati da una non corretta gestione della concorrenza. Lo strumento sviluppato si basa sulla tecnica ConFunkHealing per la prevenzione di difetti di concorrenza, sviluppata dal Laboratorio di Test ed Analisi del Software (LTA) in collaborazione con i Laboratori di Ricerca IBM di Haifa. La tecnica ConFunkHealing si basa su due fasi: l'inferenza di un modello che descriva il corretto protocollo di gestione della concorrenza del sistema, ed la gestione automatizzata a runtime degli eventi concorrenti, al fine di prevenire violazioni del protocollo e fallimenti inattesi. Lo strumento sviluppato deve permettere agli sviluppatori software di inferire agilmente i modelli comportamentali del sistema e di abilitare le funzionalità di prevenzione automatizzata. Lo strumento si dovrà integrare con il tool ConTest sviluppato da IBM e con gli strumenti ALFA e ConFunkHealer sviluppati dal laboratorio LTA. Il plug-in realizzato verrà utilizzato e distribuito pubblicamente nell'ambito del progetto SHADOWS.
Level: Bachelor
Advisor: Leonardo Mariani
Supervisor: Fabrizio Pastore
Contact: mariani@disco.unimib.it
Expiration date: 2010-03-01

2010-03-01 Progettazione e sviluppo di un sistema per il monitoraggio di componenti Off The Shelf
I sistemi software spesso integrano componenti sviluppati da terze parti, forniti senza codice sorgente, con specifiche incomplete implementati utilizzando diversi linguaggi e librerie. L'assenza di specifiche e di codice sorgente rende l'integrazione di tali componenti difficoltosa e spesso causa numerosi difetti difficili da individuare durante il collaudo dell'applicazione in quanto dipendenti dall'ambiente, o complesse sequenze di utilizzo difficili da prevedere a testing time.
Il Laboratorio di Testing ed Analisi del software ha sviluppato BCT, una tecnica di analisi dinamica del software in grado di diagnosticare a runtime anomalie nelle interazioni tra componenti e di facilitare la diagnosi di problemi ed eventualmente la correzione automatizzata se inserite in un contesto self-healing.
BCT è implementato come plug-in per Eclipse e permette di monitorare componenti implementati in Java anche in assenza di codice sorgente.
Obiettivo dello stage è lo sviluppo di un framework che permetta il monitoraggio di componenti sviluppati utilizzando differenti linguaggi (C,C++,C#) e compilati in linguaggio macchina.
Lo strumento dovrà permettere il monitoraggio di applicazioni per sistemi windows e unix, e si deve integrare con gli strumenti di monitoraggio di sistema utilizzati in tali ambienti (ptrace, dtrace, valgrind ad esempio) per registrare i dati relativi alle interazioni tra i componenti.
Lo strumento dovrà essere controllato attraverso un plug-in per Eclipse che dovrà permettere l'esportazione dei dati di sistema nel formato di BCT.
Level: Bachelor
Advisor: Leonardo Mariani/Mauro Pezzè
Supervisor: Fabrizio Pastore
Contact: mariani@disco.unimib.it
Expiration date: 2010-03-01