Você está aqui: Página Inicial / Pós-Graduação / Informática / Temas de Pesquisa / Mineração e Análise de Dados aplicadas à Engenharia de Software

Mineração e Análise de Dados aplicadas à Engenharia de Software

Orientador: Prof. Dr. Baldoino Fonseca

Descrição:

Software development and maintenance may degrade the software quality. One of the primary ways to reduce undesired effects of development and maintenance is Refactoring, which is a technique to improve software code quality without changing its observable behavior. To safely apply a refactoring, several issues must be considered: (i) identify the code parts that should be improved (such parts are known as code smells); (ii) determine the changes (or corrections) that must be applied to the code in order to improve its quality (e. g. reusability, flexibility, extendibility, effectiveness); (iii) evaluate the corrections impacts on code quality; and (iv) check that the observable behavior of the software will be preserved after applying the corrections. Given the number of issues to consider, refactoring by hand has been assumed to be an expensive and error-prone task. Therefore, there is a need for solutions that can help developers to perform refactoring activities in an autonomous way, that is, to automatically and independently decide whether a correction should be applied or not in order to improve software code quality without changing its observable behavior. Several proposals have been introduced to deal with specific refactoring activities. In this context, we investigate intelligent techniques able to autonomously deal with the above-mentioned refactoring issues. To evaluate our approaches, we performed empirical studies on code smells detection and correction, code quality improvement and preservation of the software observable behavior.

Referências:

  1. Mário Hozano; Alessandro Garcia; Baldoino Fonseca; Evandro Costa. Are you smelling it? Investigating how similar developers detect code smells. Information and Software Technology. 2018.
  2. Identifying Design Problems in the Source Code: A Grounded Theory.  40th International Conference on Software Engineering, 2018. 
  3. Understanding the impact of refactoring on smells: a longitudinal study of 23 software projects. In: the 2017 11th Joint Meeting, 2017, Paderborn. Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2017, 2017. p. 465.
  4. HOZANO, M. ; GARCIA, A. ; ANTUNES, NUNO ; Fonseca, B. ; COSTA, E.  Smells are sensitive to developers! On the efficiency of (un)guided customized detection. In: International Conference on Program Comprehension (ICPC), 2017, Buenos Aires. 25th International Conference on Program Comprehension (ICPC), 2017. p. 110-120.
  5. Lucas Amorim; Baldoino Fonseca; Nuno Antunes; Evandro Costa; Márcio Ribeiro. Experience Report: Evaluating the Effectiveness of Decision Trees for Detecting Code Smells. The 26th IEEE International Symposium on Software Reliability Engineering, August 2015. 
  6. Baldoino Fonseca ; RIBEIRO, M. M. ; Silva, Viviane Torres ; BRAGA, C. O. ; Lucena, Carlos J. P. ; COSTA, EVANDRO . AutoRefactoring: A platform to build refactoring agents. Expert Systems with Application, v. 42, p. 1652-1664, 2015.