Standard

Toward a Smell-aware Bug Prediction Model. / Palomba, Fabio; Zanoni, Marco; Arcelli Fontana, Francesca; De Lucia, Andrea; Oliveto, Rocco.

In: IEEE Transactions on Software Engineering, Vol. 45, No. 2, 02.2019, p. 194-218.

Research output: Contribution to journalArticleScientificpeer-review

Harvard

Palomba, F, Zanoni, M, Arcelli Fontana, F, De Lucia, A & Oliveto, R 2019, 'Toward a Smell-aware Bug Prediction Model' IEEE Transactions on Software Engineering, vol. 45, no. 2, pp. 194-218. https://doi.org/10.1109/TSE.2017.2770122

APA

Palomba, F., Zanoni, M., Arcelli Fontana, F., De Lucia, A., & Oliveto, R. (2019). Toward a Smell-aware Bug Prediction Model. IEEE Transactions on Software Engineering, 45(2), 194-218. https://doi.org/10.1109/TSE.2017.2770122

Vancouver

Palomba F, Zanoni M, Arcelli Fontana F, De Lucia A, Oliveto R. Toward a Smell-aware Bug Prediction Model. IEEE Transactions on Software Engineering. 2019 Feb;45(2):194-218. https://doi.org/10.1109/TSE.2017.2770122

Author

Palomba, Fabio ; Zanoni, Marco ; Arcelli Fontana, Francesca ; De Lucia, Andrea ; Oliveto, Rocco. / Toward a Smell-aware Bug Prediction Model. In: IEEE Transactions on Software Engineering. 2019 ; Vol. 45, No. 2. pp. 194-218.

BibTeX

@article{8d24b0d6a9eb48f6a49d690e471317f3,
title = "Toward a Smell-aware Bug Prediction Model",
abstract = "Code smells are symptoms of poor design and implementation choices. Previous studies empirically assessed the impact of smells on code quality and clearly indicate their negative impact on maintainability, including a higher bug-proneness of components affected by code smells. In this paper, we capture previous findings on bug-proneness to build a specialized bug prediction model for smelly classes. Specifically, we evaluate the contribution of a measure of the severity of code smells (i.e., code smell intensity) by adding it to existing bug prediction models based on both product and process metrics, and comparing the results of the new model against the baseline models. Results indicate that the accuracy of a bug prediction model increases by adding the code smell intensity as predictor. We also compare the results achieved by the proposed model with the ones of an alternative technique which considers metrics about the history of code smells in files, finding that our model works generally better. However, we observed interesting complementarities between the set of buggy and smelly classes correctly classified by the two models. By evaluating the actual information gain provided by the intensity index with respect to the other metrics in the model, we found that the intensity index is a relevant feature for both product and process metrics-based models. At the same time, the metric counting the average number of code smells in previous versions of a class considered by the alternative model is also able to reduce the entropy of the model. On the basis of this result, we devise and evaluate a smell-aware combined bug prediction model that included product, process, and smell-related features. We demonstrate how such model classifies bug-prone code components with an F-Measure at least 13 percent higher than the existing state-of-the-art models.",
keywords = "Code smells, bug prediction, empirical study, mining software repositories",
author = "Fabio Palomba and Marco Zanoni and {Arcelli Fontana}, Francesca and {De Lucia}, Andrea and Rocco Oliveto",
note = "Accepted author manuscript",
year = "2019",
month = "2",
doi = "10.1109/TSE.2017.2770122",
language = "English",
volume = "45",
pages = "194--218",
journal = "IEEE Transactions on Software Engineering",
issn = "0098-5589",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
number = "2",

}

RIS

TY - JOUR

T1 - Toward a Smell-aware Bug Prediction Model

AU - Palomba, Fabio

AU - Zanoni, Marco

AU - Arcelli Fontana, Francesca

AU - De Lucia, Andrea

AU - Oliveto, Rocco

N1 - Accepted author manuscript

PY - 2019/2

Y1 - 2019/2

N2 - Code smells are symptoms of poor design and implementation choices. Previous studies empirically assessed the impact of smells on code quality and clearly indicate their negative impact on maintainability, including a higher bug-proneness of components affected by code smells. In this paper, we capture previous findings on bug-proneness to build a specialized bug prediction model for smelly classes. Specifically, we evaluate the contribution of a measure of the severity of code smells (i.e., code smell intensity) by adding it to existing bug prediction models based on both product and process metrics, and comparing the results of the new model against the baseline models. Results indicate that the accuracy of a bug prediction model increases by adding the code smell intensity as predictor. We also compare the results achieved by the proposed model with the ones of an alternative technique which considers metrics about the history of code smells in files, finding that our model works generally better. However, we observed interesting complementarities between the set of buggy and smelly classes correctly classified by the two models. By evaluating the actual information gain provided by the intensity index with respect to the other metrics in the model, we found that the intensity index is a relevant feature for both product and process metrics-based models. At the same time, the metric counting the average number of code smells in previous versions of a class considered by the alternative model is also able to reduce the entropy of the model. On the basis of this result, we devise and evaluate a smell-aware combined bug prediction model that included product, process, and smell-related features. We demonstrate how such model classifies bug-prone code components with an F-Measure at least 13 percent higher than the existing state-of-the-art models.

AB - Code smells are symptoms of poor design and implementation choices. Previous studies empirically assessed the impact of smells on code quality and clearly indicate their negative impact on maintainability, including a higher bug-proneness of components affected by code smells. In this paper, we capture previous findings on bug-proneness to build a specialized bug prediction model for smelly classes. Specifically, we evaluate the contribution of a measure of the severity of code smells (i.e., code smell intensity) by adding it to existing bug prediction models based on both product and process metrics, and comparing the results of the new model against the baseline models. Results indicate that the accuracy of a bug prediction model increases by adding the code smell intensity as predictor. We also compare the results achieved by the proposed model with the ones of an alternative technique which considers metrics about the history of code smells in files, finding that our model works generally better. However, we observed interesting complementarities between the set of buggy and smelly classes correctly classified by the two models. By evaluating the actual information gain provided by the intensity index with respect to the other metrics in the model, we found that the intensity index is a relevant feature for both product and process metrics-based models. At the same time, the metric counting the average number of code smells in previous versions of a class considered by the alternative model is also able to reduce the entropy of the model. On the basis of this result, we devise and evaluate a smell-aware combined bug prediction model that included product, process, and smell-related features. We demonstrate how such model classifies bug-prone code components with an F-Measure at least 13 percent higher than the existing state-of-the-art models.

KW - Code smells

KW - bug prediction

KW - empirical study

KW - mining software repositories

UR - http://www.scopus.com/inward/record.url?scp=85034272704&partnerID=8YFLogxK

U2 - 10.1109/TSE.2017.2770122

DO - 10.1109/TSE.2017.2770122

M3 - Article

VL - 45

SP - 194

EP - 218

JO - IEEE Transactions on Software Engineering

T2 - IEEE Transactions on Software Engineering

JF - IEEE Transactions on Software Engineering

SN - 0098-5589

IS - 2

ER -

ID: 44905516