• 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

Software systems are becoming the core of the business of several industrial com- panies and, for this reason, they are getting bigger and more complex. Further- more, they are subject of frantic modifications every day with regard to the imple- mentation of new features or for bug fixing activities. In this context, often devel- opers have not the possibility to design and implement ideal solutions, leading to the introduction of technical debt, i.e., “not quite right code which we postpone making it right”.

One noticeable symptom of technical debt is represented by the bad code smells, which were defined by Fowler to indicate sub-optimal design choices applied in the source code by developers. In the recent past, several studies have demon- strated the negative impact of code smells on the maintainability of the source code, as well as on the ability of developers to comprehend a software system.

This is the reason why several automatic techniques and tools aimed at discover- ing portions of code affected by design flaws have been devised. Most of them rely on the analysis of the structural properties (e.g., method calls) mined from the source code.

Despite the effort spent by the research community in recent years, there are still limitations that threat the industrial applicability of tools for detecting code smells. Specifically, there is a lack of evicence regarding (i) the circustamces lead- ing to code smell introduction, (ii) the real impact of code smells on maintain- ability, since previous studies focused the attention on a limited number of soft- ware projects. Moreover, existing code smell detectors might be inadeguate for the detection of many code smells defined in literature. For instance, a number

xi

(3)

of code smells are intrinsically characterized by how code elements change over time, rather than by structural properties extractable from the source code.

In the context of this thesis we face these specific challenges, by proposing a number of large-scale empirical investigations aimed at understanding (i) when and why smells are actually introduced, (ii) what is their longevity and the way developers remove them in practice, (iii) what is the impact of code smells on change- and fault-proneness, and (iv) how developers perceive code smells. 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 compare their ability in detecting code smells with respect to other existing baseline approaches solely relying structural analysis.

The findings reported in this thesis somehow contradicts common expecta- tions. In the first place, we demonstrate that code smells are usually introduced during the first commit on the repository involving a source file, and therefore they are not the result of frequent modifications during the history of source code.

More importantly, almost 80% of the smells survive during the evolution, and the number of refactoring operations performed on them is dramatically low. Of these, only a small percentage actually removed a code smell. At the same time, we also found that code smells have a negative impact on maintainability, and in particular on both change- and fault-proneness of classes. In the second place, we demonstrate that developers can correctly perceive only a subset of code smells characterized by long or complex code, while the perception of other smells de- pend on the intensity with which they manifest themselves.

Furthermore, we also demonstrate the usefulness of historical and textual anal- ysis as a way to improve existing detectors using orthogonal informations. The usage of these alternative sources of information help developers in correctly di- agnose design problems and, therefore, they should be actively exploited in future research in the field.

Finally, we provide a set of open issues that need to be addressed by the re- search community in the future, as well as an overview of further future applica- tions of code smells in other software engineering field.

xii

Riferimenti

Documenti correlati

We will relate the transmission matrix introduced earlier for conductance and shot noise to a new concept: the Green’s function of the system.. The Green’s functions represent the

In order to specify multilevel service compositions, we assign security levels to principal identities and express both contracts and compositions as typed terms of our

A categorical core/periphery partition (Borgatti & Everett, 1999) reveals that seven subject areas constitute the network core: Public Sector, Organizational Psychology,

We show that segregation according to information preferences leads to a seg- regation of information: If groups do not interact with each other, within each group, only the

In Sprugnoli and Tonelli (2017) we presented an effort to gather from domain experts requirements about the linguistic annotation of events in the historical domain. This previous

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

Al termine di questa analisi del- lo stato di avanzamento della rifor- ma del mercato elettrico inglese, buttare un’occhiata alle previsioni di lungo periodo di National

In order to study the relationships between sex hor- mones, aging, and circulating levels of cardiac natri- uretic peptides and to define reference values for atrial natriuretic