Oggigiorno, si assiste a una rapida evoluzione dei linguaggi di programmazione, specialmente dei codici funzionali, che rappresentano una possibile soluzione al problema del rapido sviluppo dei volumi di affari. Il progetto
SEFUNC (Software engineering properties of functionally enabled languages), finanziato dall’UE, ha analizzato i vantaggi di questi nuovi linguaggi, studiando la capacità delle caratteristiche funzionali moderne di garantire un miglioramento della produttività degli sviluppatori e la riduzione della complessità del codice.
Poiché gli studi empirici sull’ingegneria del software richiedono l’acquisizione e l’elaborazione dei dati ricavati dagli archivi degli applicativi, i ricercatori hanno sviluppato nuovi strumenti per valutare le applicazioni esistenti correlate ai linguaggi funzionali. È stata quindi concepita una straordinaria operazione di estrazione di archivi che consente di recuperare tutti i dati disponibili da GitHub, una piattaforma popolare di attività di hosting, mirroring e collaborazione progettuale.
Per raggiungere gli obiettivi prefissati, il gruppo di lavoro ha ideato GHTorrent, un mirror di dati offline scalabile e interrogabile, in grado di sfruttare la raccolta di dati distribuiti attraverso ecosistemi di linguaggi visualizzati e di sviluppo basato su pull. Dopo la raccolta, i dati sono proposti nuovamente alla comunità di utilizzatori attraverso la pagina web del progetto, che prevede più di 2 terabyte di informazioni in due formati di database. Questa risorsa consente ai ricercatori di condurre studi quantitativi completi sulle tecniche di popolamento in aree specifiche, tra cui ecosistemi di software, collaborazione distribuita ed estrazione di archivi.
Fondamentalmente, il gruppo di lavoro si è concentrato sull’analisi dello sviluppo basato su pull, che rappresenta un nuovo paradigma dello sviluppo di software distribuiti, conducendo le prime analisi quantitative su vasta scala relative al funzionamento di questo modello attraverso l’estrazione di dati ricavati da 300 progetti di grandi dimensioni o 170 000 richieste pull. Dallo studio sono emersi i fattori che influenzano la decisione di unire una richiesta pull e la durata di elaborazione, che forniscono informazioni importanti per il miglioramento del livello di efficienza dei progetti collaborativi distribuiti.
È opportuno osservare che, nel 2013, l’iniziativa si è aggiudicata il “Best data showcase award” nel corso della conferenza “Mining Software Repositories” in virtù dell’uso innovativo delle tecniche di ricerca per indicizzazione distribuite e la condivisione di dati importanti con la comunità di utilizzatori. I lavori progettuali, che hanno condotto alla pubblicazione di numerosi articoli sull’argomento, sono stati citati come ricerca più all’avanguardia nel corso di svariate conferenze nel settore di riferimento. I risultati dell’iniziativa contribuiranno senza ombra di dubbio alla promozione dell’ingegneria del software e al rapido sviluppo dei linguaggi funzionali.