<?xml version="1.0" encoding="ISO-8859-1"?>
<metadatalist>
	<metadata ReferenceType="Thesis">
		<site>mtc-m21d.sid.inpe.br 808</site>
		<holdercode>{isadg {BR SPINPE} ibi 8JMKD3MGPCW/3DT298S}</holdercode>
		<identifier>8JMKD3MGP3W34T/45DA8DH</identifier>
		<repository>sid.inpe.br/mtc-m21d/2021/09.08.19.55</repository>
		<lastupdate>2021:12.13.18.09.38 urlib.net/www/2021/06.04.03.40 simone</lastupdate>
		<metadatarepository>sid.inpe.br/mtc-m21d/2021/09.08.19.55.46</metadatarepository>
		<metadatalastupdate>2022:04.03.23.15.33 sid.inpe.br/bibdigital@80/2006/04.07.15.50 administrator</metadatalastupdate>
		<secondarykey>INPE-18502-TDI/3149</secondarykey>
		<citationkey>Francisco:2021:AsCoAn</citationkey>
		<title>Assessing code annotations usage in software projects</title>
		<alternatetitle>Avaliando o uso de anotações de código em projetos de software</alternatetitle>
		<course>CAP-COMP-DIPGR-INPE-MCTI-GOV-BR</course>
		<year>2021</year>
		<date>2021-09-16</date>
		<thesistype>Tese (Doutorado em Computação Aplicada)</thesistype>
		<secondarytype>TDI</secondarytype>
		<numberofpages>171</numberofpages>
		<numberoffiles>1</numberoffiles>
		<size>10184 KiB</size>
		<author>Francisco, Phyllipe de Souza Lima,</author>
		<committee>Stephany, Stephan (presidente),</committee>
		<committee>Guerra, Eduardo Martins (orientador),</committee>
		<committee>Meirelles, Paulo Roberto Miranda (orientador),</committee>
		<committee>Queiroz, Gilberto Ribeiro de,</committee>
		<committee>Shiguemori, Elcio Hideiti,</committee>
		<committee>Valente, Marco Tulio,</committee>
		<committee>Sant’Anna, Cláudio Nogueira,</committee>
		<e-mailaddress>phyllipe_slf@yahoo.com.br</e-mailaddress>
		<university>Instituto Nacional de Pesquisas Espaciais (INPE)</university>
		<city>São José dos Campos</city>
		<transferableflag>1</transferableflag>
		<keywords>code annotations, software metric, software visualization, polymetric view, metadata, anotações, metadados, métricas de software, visualização de software, visão polimétrica.</keywords>
		<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ções de código são uma característica de linguagem que permitem a configuração de metadados em elementos de programação. Na linguagem Java, essa característica foi introduzida na versão 5 e é utilizada por desenvolvedores de frameworks e APIs corporativas amplamente utilizadas. Mesmo que as anotações sejam muito populares para simplificar a configuraçã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ão e comprometer a manutenção do sistema. Com isso, esse trabalho apresenta uma abordagem para avaliar o uso e distribuição de anotações em projetos Java. O primeiro passo foi definir um novo conjunto de métricas de código fonte capaz de extrair características das anotações usadas. Para validar as métricas, fizemos uma coleta em 25 projetos de código aberto e foi possível observar como elas se comportam. Em seguida, com as métricas disponíveis, fizemos uma proposta de visualização polimétrica projetada para visualizar anotações de código e como estão distribuídas. Para validar a visualização conduzimos dois experimentos. O primeiro foi feito com seis desenvolvedores que participaram da criação do sistema SpaceWeather do EMBRACE, e o segundo foi conduzido com 44 alunos de graduação. Os resultados mostraram que a visualização permite compreender rapidamente a distribuição das anotações e identificar as responsabilidades dos pacotes.</abstract>
		<area>COMP</area>
		<language>en</language>
		<targetfile>publicacao.pdf</targetfile>
		<usergroup>phyllipe.lima@inpe.br</usergroup>
		<usergroup>pubtc@inpe.br</usergroup>
		<usergroup>simone</usergroup>
		<visibility>shown</visibility>
		<copyright>urlib.net/www/2012/11.12.15.10</copyright>
		<readpermission>allow from all</readpermission>
		<documentstage>not transferred</documentstage>
		<mirrorrepository>urlib.net/www/2021/06.04.03.40.25</mirrorrepository>
		<nexthigherunit>8JMKD3MGPCW/3F2PHGS</nexthigherunit>
		<nexthigherunit>8JMKD3MGPCW/46KUES5</nexthigherunit>
		<citingitemlist>dpi.inpe.br/banon/2004/02.16.09.30.00 2</citingitemlist>
		<citingitemlist>sid.inpe.br/bibdigital/2013/10.12.22.16 1</citingitemlist>
		<hostcollection>urlib.net/www/2021/06.04.03.40</hostcollection>
		<agreement>autorizacao.pdf .htaccess2 .htaccess</agreement>
		<lasthostcollection>urlib.net/www/2021/06.04.03.40</lasthostcollection>
		<supervisor>Meirelles, Paulo Roberto Miranda,</supervisor>
		<supervisor>Guerra, Eduardo Martins,</supervisor>
		<url>http://mtc-m21d.sid.inpe.br/rep-/sid.inpe.br/mtc-m21d/2021/09.08.19.55</url>
	</metadata>
</metadatalist>