Linee guida di scrittura | Linee guida di sviluppo | Tesi in corso | Tesi svolte

Prima di richiedere la tesi…

Prima di richiedere formalmente la tesi, assicuratevi di avere letto con attenzione questa pagina. Leggere con attenzione significa anche e soprattuto seguire gli hyperlink presenti nelle descrizione perché possiate approfondire gli argomenti di tesi.
Quando infine avrete qualcosa da discutere, contattate il responsabile del Collab, prof. Filippo Lanubile.

 

Tesi da assegnare – supervisionate da un ricercatore del Collab

Software Engineering for Artificial Intelligence (SE4AI)

L’Intelligenza Artificiale (AI) è sempre più al centro dell’attenzione per le applicazioni innovative che è in grado di sostenere. Anche i sistemi software si arriccchiscono di funzionalità di AI e si aprono nuove sfide per sviluppare sistemi AI-enabled.

In tale ambito, proponiamo tesi di laurea sui seguenti argomenti principali per estendere Behaviz,, un nostro prodotto di AI incentrato sui dati comportamentali, tra cui il riconoscimento delle emozioni da testi scritti. Tra le estensioni possibili, la creazione di widget da integrare in dashboard aziendali o la creazione di nuovi plugin corrispondenti a modelli di ML.

 

AI-augmented software development

Emotion detection in Software Engineering

Per garantire il successo di progetti software di successo è importante monitorare le emozioni a livello individuale e i team, poichè le emozioni negative possono rappresentare un ostacolo allo sviluppo collaborativo.

Nell’ambito di queste tematiche, l’attività di ricerca e le relative tesi vertono sui seguenti argomenti principali:

  • Sentiment analysis delle interazioni tra sviluppatori mediate da piattaforme collaborative quali Stack Overflow, GitHub, Jira, ecc.
  • Riconoscimento di emozioni a partire dall’analisi dei sensori biometrici su dispositivi indossabili

Personality detection in Software Engineering

La collaborazione, spesso a distanza, tra sviluppatori di progetti distribuiti su scala globale nasconde numerose insidie tra cui scarsa fiducia, mancato gioco di squadra, disallineamento tra aspirazioni personali e obiettivi di progetto. Conoscere la personalità degli sviluppatori può essere di aiuto nel comprendere i problemi e possibilmente prevenirli.

Attualmente, proponiamo le seguenti tesi nell’ambito dell’analisi della personalità:

  • Riconoscimento automatico della personalità secondo il modello Big 5: basandosi sui recenti sviluppi delle tecnologie di AI/ML, individuare gli approcci basati su deep learning più promettenti e realizzare un prototipo in Python.

  • Studio della relazione tra personalità e propensione a rimanere vittime di attacchi di phising,

 

Mining di Online Creative Communities

Le tesi che vertono su questo argomento analizzano comunità creative online, siano esse di sviluppo software open source (OSS) o di artefatti creative (e.g., musicali), confrontandole e identificando le somiglianze/differenze fondamentali in termini di dinamiche di collaborazione.

Alcune idee di tesi in questo ambito:

  • Sviluppo di un modello basato su pre-trained trasformer di tipo BERT per costruire un GitHub bot che fornisca, all’interno di discussioni di progetto, puntatori ad altre discussioni potenzialmente correlate.
  • Studio sull’impatto causato dall’abbandono di developer in un progetto open source Cosa accadrebbe a livello di progetto dopo che qualcuno lascia un progetto per sempre o si prende una lunga pausa? Qualcun altro assume il loro compito/ruolo? In tal caso, potremmo creare un suggeritore per suggerire chi. Questa idea si collega con la futura funzione GH di “suggerire un manutentore”, che tuttavia sarebbe manuale.
  • Studio dell’effetto dell’adozione di bot (più in generelare di automation) per le pratiche di code review in GitHub.

 

Tesi da assegnare su progetti esterni

Un invito sempre valido è quello di partecipare attivamente a un progetto open source di vostro interesse. Questa è un’opportunità concreta per mettere alla prova e migliorare le vostre capacità, confrontandovi con altri sviluppatori di tutto il mondo. E’ importante che la scelta sia dettata dall’interesse in un’applicazione o una tecnologia, soprattutto se già ne conoscete limiti e pregi: questo renderebbe più semplice l’inizio della collaborazione (ciononostante, ogni vuoto è colmabile). L’applicazione con la quale “provare” la tecnologia potreste averla già individuata oppure potreste trovarla consultando una guida alla contribuzione a un progetto open source o l’analizzatore di progetti open source Open Hub. Quello che vi si chiede non è granchè diverso dall’iniziativa Google Summer of Code, in cui un manipolo di studenti valorosi sono ingaggiati per pochi mesi al fine di creare o estendere un progetto di open source software. Nel vostro caso il premio è la tesi di laurea.