Abstract:
RESUMO:A metáfora da dívida técnica (DT) é amplamente usada para encapsular inúmeros problemas
de qualidade de software. Ela descreve o compromisso entre o benefício a curto prazo
de tomar um atalho durante a fase de concepção ou implementação de um produto de
software (por exemplo, para cumprir um prazo) e as consequências a longo prazo de tomar
esse atalho, o que pode afetar a qualidade do produto de software. Algumas DT podem
nunca causar falhas, mas, ao invés disso, tornam um software menos eficiente, menos
escalável, mais difícil de aprimorar ou mais facilmente violável, como por exemplo os code
smells. A presença de code smells no projeto fazem com que seja mais difícil adicionar novas
funções, facilitam o surgimento de defeitos, impactam na qualidade externa e reduzem
a manutenibilidade do código. Os code smells devem ser gerenciados para garantir a
qualidade do software e também reduzir seus custos de manutenção e evolução. No entanto,
as ferramentas para a detecção de code smells geralmente fornecem resultados apenas
considerando a perspectiva dos arquivos (classes e métodos), o que não é usual durante
a gestão do projeto. Neste trabalho, uma técnica é proposta para identificar/visualizar
code smells em uma nova perspectiva: funcionalidade de software. A técnica proposta
adota ferramentas de Mineração de Repositório de Software (MRS) para identificar as
funcionalidades do software e em seguida os code smells que afetam essas funcionalidades.
Além disso, também propusemos uma abordagem para apoiar tarefas de manutenção
guiadas pela visualização dos code smells em nível de funcionalidades com o objetivo de
avaliar sua aplicabilidade em projetos de software real. Foi realizado um estudo de caso
para avaliar tal abordagem, sendo obtidos resultados que indicam que a abordagem pode
ser útil para diminuir os code smells existentes, bem como evitar a introdução de novos
code smells.
ABSTRACT:The technical debt (TD) metaphor is widely used to encapsulate numerous software quality
problems. It describes the trade-off between the short term benefit that taking a shortcut
during the design or implementation phase of a software product (for example, in order
to meet a deadline) and the long term consequences of taking said shortcut, which may
affect the quality of the software product. Some DTs can never cause crashes, but instead
make software less efficient, less scalable, harder to upgrade, or more easily breached, such
as code smells. The presence of code smells in a project make it more difficult to add
new features, facilitate the emergence of defects, impact on external quality and reduce
the maintainability of the code. Code smells must be managed to guarantee the software
quality and also reduce its maintenance and evolution costs. However, the tools for code
smells detection usually provide results only considering the files perspective (class and
methods), that is not usual during the project management. In this work, a technique
is proposed to identify/visualize code smells from a new perspective: software features.
The proposed technique adopts Mining Software Repository (MRS) tools to identify the
software features and also the code smells that affect these features. Additionally, we also
proposed an approach to support maintenance tasks guided by code smells visualization at
the feature level aiming to evaluate its applicability on real software projects. The results
indicate that the approach can be useful to decrease the existent code smells, as well as
avoid the introduction of new ones.