00 CAMPUS ARISTÓTELES CALAZANS SIMÕES (CAMPUS A. C. SIMÕES) IC - INSTITUTO DE COMPUTAÇÃO TRABALHOS DE CONCLUSÃO DE CURSO (TCC) - GRADUAÇÃO - IC Trabalhos de Conclusão de Curso (TCC) - Bacharelado - CIÊNCIA DA COMPUTAÇÃO- IC
Use este identificador para citar ou linkar para este item: http://www.repositorio.ufal.br/jspui/handle/123456789/9772
Tipo: Trabalho de Conclusão de Curso
Título: An empirical study on the frequency of disciplined and undisciplined annotations in preprocessor –based systems in C and C++
Autor(es): Viana Filho, José Carlos
Primeiro Orientador: Ribeiro, Márcio de Medeiros
metadata.dc.contributor.advisor-co1: Bibiano, Ana Carla Gomes
metadata.dc.contributor.referee1: Santos Neto, Baldoino Fonseca dos
metadata.dc.contributor.referee2: Cordeiro, Thiago Damasceno
Resumo: As linguagens de programação C e C++ permitem uma ferramenta de preprocessador para escrever anotações condicionais. Comunidades de software relevantes tais como Linux e Apache tem usado anotações condicionais em seus projetos. No entanto, desenvolvedores escrevem estas anotações condicionais de uma forma indisciplinada muitas vezes. A aplicação de anotações condicionais indisciplinadas ou anotações indisciplinadas pode ter um efeito negativo sobre a legibilidade do código e o aumento da propensão de erros. Ao longo desses últimos 10 anos, estudos empíricos tem investigado como o uso de anotações indisciplinada tem afetado a qualidade do software e como disciplinar essas anotações. Uma estratégia proposta para resolver anotações indisciplinadas é aplicar refatorações. Refatoração é uma transformação de código que almeja melhorar a qualidade do código preservando o comportamento do programa. No contexto de anotações disciplinadas, uma refatoração almeja disciplinar uma anotação indisciplinada. No entanto, não existem evidências empíricas sobre até que ponto o número de anotações disciplinadas tem aumentado e/ou diminuído ao longo desses últimos dez anos. Principalmente, se desenvolvedores aplicam refatorações sobre anotações disciplinadas e se essas refatorações disciplinam essas anotações. Baseado nessas limitações da literatura, esse estudo almeja verifica se a frequência de anotações indisciplinadas e disciplinadas ao longo desses últimos dez anos, e se desenvolvedores aplicam refatorações sobre anotações indisciplinadas na prática. Nós investigamos 23 projetos de software que foram investigados dez anos atrás sobre anotações indisciplinadas. Nossos resultados apresentam que somente 10 projetos de sobre tiveram um aumento significativo no número de anotações disciplinadas nesses últimos dez anos, nós também apresentamos 19 refatorações que foram aplicadas na prática. Nós observamos que desenvolvedores refatoram não sobre anotações disciplinadas, mas também anotações indisciplinadas. Esses resultados podem motivar estudos futuros para investigar se contribuições e recomendações de refatorações existentes tem ajudado desenvolvedores para disciplinar anotações ou se os desenvolvedores tem usado o conhecimento empírico existente para resolver anotações disciplinadas.
Abstract: The C and C++ programming languages allow a preprocessor tool to write conditional annotations. Relevant software communities such as Linux and Apache have used conditional annotations in their software projects. However, developers write these conditional annotations in an undisciplined way. The application of undisciplined conditional annotations or undisciplined annotations can have a negative effect on code readability and increasing the error proneness. Over the last ten years, empirical studies have investigated how the use of undisciplined annotations can affect the software quality and how to discipline these annotations. A proposed strategy to solve undisciplined annotation is to apply refactorings. Refactoring is a code transformation that aims to improve the code quality, preserving the program behavior. In the context of undisciplined annotations, one refactoring aims to discipline it. However, there is no empirical evidence on to what extent the number of disciplined annotations increased and/or decreased over the last ten years. Mainly, if developers applied refactorings on undisciplined annotations and these refactorings disciplined these annotations. Based on those literature limitations, our study aims to verify if the frequency of disciplined and undisciplined annotations during the last ten years, if developers apply refactorings on undisciplined annotations in the practice. We investigated 23 software projects that were investigated ten years ago on undisciplined annotations. Our results presented that only ten software projects had an increase in the number of disciplined annotations over the last ten years, and we presented 19 refactorings that were applied in practice. We observed that developers refactor not only undisciplined annotations but also disciplined ones. These results can motivate future studies to investigate if existing findings and recommendations of refactorings have helped developers to discipline annotations or if developers have used the existing empirical knowledge to solve undisciplined annotations.
Palavras-chave: C e C++ (linguagens de computador)
Software
Refatoração
Anotações Condicionais
Conditional Annotations
Disciplined Annotations
Undisciplined Annotations
Refactoring
Mining Software Repositories
CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Idioma: por
País: Brasil
Editor: Universidade Federal de Alagoas
Sigla da Instituição: UFAL
metadata.dc.publisher.department: Curso de Ciências da Computação
Citação: VIANA FILHO, José Carlos. An empirical study on the frequency of disciplined and undisciplined annotations in preprocessor–based systems in C and C++. 2022. 23 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências de Computação) - Instituto de Computação, Curso de Ciências da Computação, Universidade Federal de Alagoas, Maceió, 2021.
Tipo de Acesso: Acesso Aberto
URI: http://www.repositorio.ufal.br/jspui/handle/123456789/9772
Data do documento: 1-out-2021
Aparece nas coleções:Trabalhos de Conclusão de Curso (TCC) - Bacharelado - CIÊNCIA DA COMPUTAÇÃO- IC



Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.