• Non ci sono risultati.

Universit`a degli Studi di Salerno Dipartimento di Scienze Aziendali – Management and Innovation Systems

N/A
N/A
Protected

Academic year: 2021

Condividi "Universit`a degli Studi di Salerno Dipartimento di Scienze Aziendali – Management and Innovation Systems"

Copied!
3
0
0

Testo completo

(1)

Universit`a degli Studi di Salerno

Dipartimento di Scienze Aziendali – Management and Innovation Systems

Dottorato di Ricerca

Management and Information Technology

Curriculum in Informatica, Sistemi Informatici e Tecnologie del Software XV Ciclo

Tesi di Dottorato

Code Smells: Relevance of the Problem and Novel Detection Techniques

Tutor

Prof. Andrea De Lucia Coordinatore

Prof. Andrea De Lucia

Candidato Fabio Palomba Matr. 8887600001

Anno Accademico 2015/2016

(2)

Abstract

I sistemi software stanno diventando il cuore delle attivit`a di molte aziende e, per questa ragione, sono sempre pi `u grandi e complessi. Inoltre, sono frequentemente soggetti a modifiche che riguardano l’implementazione di nuove funzionalit`a o la risoluzione di difetti. In questo contesto, spesso gli sviluppatori non hanno la possibilit`a di progettare ed implementare soluzioni ideali, introducendo quindi technical debt, ovvero codice non ben progettato, la cui ri-progettazione viene postposta nel futuro.

Un notevole sintomo della presenza di technical debt `e rappresentato dai bad code smell, che sono stati definiti da Fowler per indicare scelte di progettazione e/o implementazione sub-ottimali applicati dai programmatori durante lo sviluppo di un progetto software.

Nel recente passato, molti studi hanno dimostrato l’impatto negativo dei code smell sulla manutenibilit`a e comprensibilit`a del codice sorgente. Per questa ra- gione, molte tecniche sono state proposte per l’identificazione di porzioni di codice affetto da problemi di progettazione. Molte di queste tecniche si basano sull’analisi delle propriet strutturali (ad esempio, chiamate a metodi esterni) estraibili dal codice sorgente.

Nonostante lo sforzo che la comunit`a di ricerca ha profuso negli anni recenti, ci sono ancora limitazioni che precludono l’applicabilit`a industriale di tool per l’identificazione di smell. Nello specifico, c’`e una mancanza di evidenza empir- ica riguardo (i) le circostanze che portano all’introduzione degli smell, e (ii) il reale impatto degli smell sulla manutenibilit`a, in quanto studi precedenti hanno focalizzato l’attenzione su un numero limitato di progetti software. Inoltre, le tec-

ii

(3)

niche esistenti per l’identificazione di smell sono inadeguate per quanto concerne l’identificazione di molti dei code smell definiti in letteratura. Ad esempio, molti code smell sono intrinsecamente caratterizzati da come gli elementi nel codice cambiano nel tempo, piuttosto che da propriet`a strutturali estraibili dal codice sorgente.

Nel contesto di questa tesi abbiamo affrontato queste sfide specifiche, propo- nendo diversi studi empirici su larga scala aventi come obiettivo quello di capire (i) quando e perch`e i code smell sono realmente introdotti, (ii) qual `e la loro longevit`a e come gli sviluppatori li rimuovono, (iii) qual `e l’impatto degli smell sulla propen- sione ai difetti e ai cambiamenti, e (iv) come gli sviluppatori percepiscono gli smell.

Allo stesso tempo, abbiamo proposto due nuovi approcci per la rilevazione di code smell che si basano sull’utilizzo di sorgenti alternative di informazioni, ovvero storiche e testuali, e abbiamo valutato e confrontato la loro capacit`a nella identificazione rispetto alle altre tecniche basate su analisi strutturale.

I risultati riportati in questa tesi contraddicono le aspettative comuni. Ad esem- pio, abbiamo dimostrato che i code smell sono spesso introdotti durante il primo commit che introduce l’artefatto affetto dal problema di progettazione. Dall’altro lato, abbiamo dimostrato l’utilit`a dell’analisi storica e testuale come un modo ag- giuntivo per migliorare tecniche esistenti con informazioni ortogonali. Inoltre, for- niamo un insieme di problemi aperti che necessitato di ulteriore attenzione in fu- turo, cos`ı come una panoramica di ulteriori applicazioni future dei code smell in altri contesti nel campo dell’ingegneria del software.

iii

Riferimenti

Documenti correlati

Nella seconda parte analizzerò in modo più approfondito il concetto di Urbanizzazione, basandomi sulle teorie di crescita regionale; dallo spazio uniforme-astratto allo spazio

Rigido perché l’occhialeria lavora su collezione, tre volte l’anno Marcolin presenta una collezione, suddividendo i modelli uscenti in classi (classe A,B, C). I

Gli obiettivi della politica monetaria sono iscritti nel Federal Reserve Act, il quale sancisce: “ Il Consiglio dei Governatori del Federal Reserve System e il Federal Open

richiesta di chiarimenti a ridosso del termine di decadenza, avendo il contribuente sessanta giorni per fornirli, la proroga del termine di decadenza potrebbe protrarsi fino

Questo è un altro motivo per il quale le OP a maggiore valorizzazione fanno un elevato uso dei finanziamenti: essendo cooperative, infatti, i conferimenti dei soci

1) Si identificano maggiormente con il loro gruppo dietetico, cioè mostrano una centralità dietetica più elevata (5.90 > 4.96). Questo significa che i vegani sono più orgogliosi

This thesis focuses on the “Thrust Surface Method” application, specifical- ly in the implementation of an algorithm able to produce compressive membrane stress states on

At the same time, we devise two novel approaches for code smell detection that rely on alternative sources of information, i.e., historical and textual, and we evaluate and