@PhDThesis{Francisco:2021:AsCoAn,
author = "Francisco, Phyllipe de Souza Lima",
title = "Assessing code annotations usage in software projects",
school = "Instituto Nacional de Pesquisas Espaciais (INPE)",
year = "2021",
address = "S{\~a}o Jos{\'e} dos Campos",
month = "2021-09-16",
keywords = "code annotations, software metric, software visualization,
polymetric view, metadata, anota{\c{c}}{\~o}es, metadados,
m{\'e}tricas de software, visualiza{\c{c}}{\~a}o de software,
vis{\~a}o polim{\'e}trica.",
abstract = "Code annotation is a language feature that enables the
introduction of custom metadata on programming elements. In Java,
this feature was introduced on version 5, and it is widely used by
the leading enterprise application frameworks and APIs. Although
very popular to simplify metadata configuration, software
engineering lack research and experiments about them. Also, its
abuse and misuse can reduce source code readability, comprehension
and complicate its maintenance. Our work proposes an approach to
assess code annotations usage and distribution in a software
project to overcome this. We begin defining a novel suite of
software metrics dedicated to code annotations. We analyzed their
distribution in open-source projects by extracting their values
from 24,947 java classes and obtaining threshold values.We also
provided a way to interpret these threshold values using a
percentile rank analysis, revealing outliers. Afterward, we
proposed a novel polymetric view tailored specifically to
visualize code annotations distribution and usage using our
metrics as input. We named it CADV - Code Annotations Distribution
Visualization. To validate the CADV, we conducted two experiments.
The first was an interview with six professional developers from
EMBRACE, and the second was conducted asynchronously with 44
students through a form. As a target software, we used the
SpaceWeather system. Our results show that the proposed
visualization approach can aid developers and students in
comprehending the distribution of code annotations, packages
responsibilities and potentially detect misplaced ones.
Furthermore, CADV provides a much quicker approach to identify
code annotations and schemas when compared with manual code
inspection. RESUMO: Anota{\c{c}}{\~o}es de c{\'o}digo s{\~a}o
uma caracter{\'{\i}}stica de linguagem que permitem a
configura{\c{c}}{\~a}o de metadados em elementos de
programa{\c{c}}{\~a}o. Na linguagem Java, essa
caracter{\'{\i}}stica foi introduzida na vers{\~a}o 5 e {\'e}
utilizada por desenvolvedores de frameworks e APIs corporativas
amplamente utilizadas. Mesmo que as anota{\c{c}}{\~o}es sejam
muito populares para simplificar a configura{\c{c}}{\~a}o de
metadados, a comunidade de engenharia de software possui poucos
trabalhos que as investigam. Adicionalmente, o seu uso inadequado
pode reduzir a legibilidade, compreens{\~a}o e comprometer a
manuten{\c{c}}{\~a}o do sistema. Com isso, esse trabalho
apresenta uma abordagem para avaliar o uso e
distribui{\c{c}}{\~a}o de anota{\c{c}}{\~o}es em projetos
Java. O primeiro passo foi definir um novo conjunto de
m{\'e}tricas de c{\'o}digo fonte capaz de extrair
caracter{\'{\i}}sticas das anota{\c{c}}{\~o}es usadas. Para
validar as m{\'e}tricas, fizemos uma coleta em 25 projetos de
c{\'o}digo aberto e foi poss{\'{\i}}vel observar como elas se
comportam. Em seguida, com as m{\'e}tricas dispon{\'{\i}}veis,
fizemos uma proposta de visualiza{\c{c}}{\~a}o polim{\'e}trica
projetada para visualizar anota{\c{c}}{\~o}es de c{\'o}digo e
como est{\~a}o distribu{\'{\i}}das. Para validar a
visualiza{\c{c}}{\~a}o conduzimos dois experimentos. O primeiro
foi feito com seis desenvolvedores que participaram da
cria{\c{c}}{\~a}o do sistema SpaceWeather do EMBRACE, e o
segundo foi conduzido com 44 alunos de gradua{\c{c}}{\~a}o. Os
resultados mostraram que a visualiza{\c{c}}{\~a}o permite
compreender rapidamente a distribui{\c{c}}{\~a}o das
anota{\c{c}}{\~o}es e identificar as responsabilidades dos
pacotes.",
committee = "Stephany, Stephan (presidente) and Guerra, Eduardo Martins
(orientador) and Meirelles, Paulo Roberto Miranda (orientador) and
Queiroz, Gilberto Ribeiro de and Shiguemori, Elcio Hideiti and
Valente, Marco Tulio and Sant’Anna, Cl{\'a}udio Nogueira",
englishtitle = "Avaliando o uso de anota{\c{c}}{\~o}es de c{\'o}digo em
projetos de software",
language = "en",
pages = "171",
ibi = "8JMKD3MGP3W34T/45DA8DH",
url = "http://urlib.net/ibi/8JMKD3MGP3W34T/45DA8DH",
targetfile = "publicacao.pdf",
urlaccessdate = "2024, Apr. 27"
}