Exportar registro bibliográfico


Metrics:

Technical debt prioritization: methods, techniques, and a large exploratory study (2023)

  • Authors:
  • Autor USP: PINA, DIOGO DE JESUS - IME
  • Unidade: IME
  • Sigla do Departamento: MAC
  • DOI: 10.11606/T.45.2023.tde-11092023-221224
  • Subjects: DESENVOLVIMENTO DE SOFTWARE; INTELIGÊNCIA ARTIFICIAL; APRENDIZADO COMPUTACIONAL
  • Keywords: Aprendizado de máquina; Artificial intelligence; Dívida técnica; Gerenciamento de dívida técnica; Machine learning; Priorização de dívida técnica; Technical debt; Technical debt management; Technical debt prioritization
  • Agências de fomento:
  • Language: Inglês
  • Abstract: Equipes de desenvolvimento de software precisam priorizar o pagamento de itens de dívida técnica para melhorar a qualidade do software e garantir um ritmo no desenvolvimento de novas funções e manutenção do código. Ferramentas de identificação são capazes de encontrar milhares de itens de dívida técnica de código em um repositório. Logo, é inviável pagar todos os itens, pois levaria meses ou até anos. Portanto, o time precisa decidir quais itens deveram ser pagos e quando realizar o pagamento. Nós realizamos um mapeamento da literatura para identificar os trabalhos realizados para ajudar no processo de priorização de dívida técnica. Nós encontramos trabalhos que conceituam o processo, desenvolvem arcabouços de priorização e aplicação de diversos métodos para realizar a priorização. Apesar dos esforços realizados, ainda não foi desenvolvido um método de priorização que considera o contexto do desenvolvimento do software, funcione em várias linguagens de programação, cubram diversos tipos de dívida técnica e seja integrado a uma ferramenta para aplicá-lo na prática. A partir do mapeamento, a nossa motivação para esta pesquisa é entender como os desenvolvedores priorizam itens de dívida técnica em projetos reais de software. Além disso, nós também aplicamos métodos de aprendizado de máquina para automatizar o processo de priorização. Nós desenvolvemos a ferramenta Sonarlizer Xplorer para minerar e analisar projetos públicos hospedados no GitHub suportando nossosestudos. O resultado da aplicação da ferramenta é uma lista com itens de dívida técnica e métricas de código de um grande número de projetos de software. Nós aplicamos um questionário para coletar dados de projetos Java públicos para entender quais critérios os desenvolvedores de software usam para priorizar dívida técnica de código em projetos reais. Então, analisamos os dados usando Teoria Fundamentada Straussiana e agrupamos os critérios em quinze categorias, dividindo-as em duas super-categorias relacionadas ao pagamento da dívida técnica e três relacionadas ao não pagamento. Nós encontramos que quando os desenvolvedores decidiram pagar um item de dívida técnica, eles querem pagar logo. Quando eles decidem não pagar, geralmente é porque a dívida foi adquirida intencionalmente e está relacionado a decisões de projeto. Quando eles usaram critérios parecidos, a níveis de prioridade de pagamento são parecidos. Por fim, nós observamos que cada projeto de software precisa de regras próprias para identificar seus itens de dívida técnica. Nós também estudamos a aplicação de métodos de aprendizado de máquina para priorizar os itens de dívida técnica em projetos reais de software. Nós aplicamos o mesmo questionário do estudo anterior e obtivemos 2.616 respostas. Com as respostas, criamos um dataset usando três estratégias de rotulação: "pagar ou não", 3-classes e prioridade. Então, aplicamos nove métodos de machine learning bem-conhecidos sobre 27 métricas de códigopara construir um modelo para decidir se um item de dívida técnica deve ser pago (com acurácia de 0,79 e F1 de 0,85) e quando realizar o pagamento, aplicando quatro abordagens atingindo desempenho de acurácia de 0,57 usando análise tradicional e 0,81 usando análise tunada
  • Imprenta:
  • Data da defesa: 24.08.2023
  • Acesso à fonteAcesso à fonteDOI
    Informações sobre o DOI: 10.11606/T.45.2023.tde-11092023-221224 (Fonte: oaDOI API)
    • Este periódico é de acesso aberto
    • Este artigo é de acesso aberto
    • URL de acesso aberto
    • Cor do Acesso Aberto: gold
    • Licença: cc-by-nc-sa

    How to cite
    A citação é gerada automaticamente e pode não estar totalmente de acordo com as normas

    • ABNT

      PINA, Diogo de Jesus. Technical debt prioritization: methods, techniques, and a large exploratory study. 2023. Tese (Doutorado) – Universidade de São Paulo, São Paulo, 2023. Disponível em: https://www.teses.usp.br/teses/disponiveis/45/45134/tde-11092023-221224/. Acesso em: 03 out. 2024.
    • APA

      Pina, D. de J. (2023). Technical debt prioritization: methods, techniques, and a large exploratory study (Tese (Doutorado). Universidade de São Paulo, São Paulo. Recuperado de https://www.teses.usp.br/teses/disponiveis/45/45134/tde-11092023-221224/
    • NLM

      Pina D de J. Technical debt prioritization: methods, techniques, and a large exploratory study [Internet]. 2023 ;[citado 2024 out. 03 ] Available from: https://www.teses.usp.br/teses/disponiveis/45/45134/tde-11092023-221224/
    • Vancouver

      Pina D de J. Technical debt prioritization: methods, techniques, and a large exploratory study [Internet]. 2023 ;[citado 2024 out. 03 ] Available from: https://www.teses.usp.br/teses/disponiveis/45/45134/tde-11092023-221224/


Digital Library of Intellectual Production of Universidade de São Paulo     2012 - 2024