[pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING

Detalhes bibliográficos
Autor(a) principal: RAPHAEL OLIVEIRA CABRAL
Data de Publicação: 2024
Tipo de documento: Tese
Idioma: eng
Título da fonte: Repositório Institucional da PUC-RIO (Projeto Maxwell)
Texto Completo: https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=2
http://doi.org/10.17771/PUCRio.acad.66797
Resumo: [pt] A aplicação de princípios de design tem sido reconhecida há muito tempo como benéfica para a compreensão e manutenção em projetos de software tradicionais. Esses benefícios podem ser válidos de forma semelhante para projetos de aprendizado de máquina (ML), que envolvem experimentação iterativa com dados, modelos e algoritmos. No entanto, os componentes de ML são frequentemente desenvolvidos por cientistas de dados com diversas formações educacionais, resultando potencialmente em código que não segue as práticas recomendadas de desenvolvimento de software. Para compreender melhor esse fenômeno, investigamos o impacto dos princípios de design SOLID na compreensão do código de ML. Para tanto, conduzimos um experimento controlado com três trials independentes (replicações exatas), envolvendo no total 100 cientistas de dados. Reestruturamos o código de ML real da indústria que não usava princípios SOLID. Dentro de cada ensaio, um grupo foi apresentado ao código de ML original, enquanto o outro foi apresentado ao código de ML incorporando princípios SOLID. Os participantes de ambos os grupos foram convidados a analisar o código e preencher um questionário que incluía perguntas abertas e fechadas sobre a sua compreensão. Os resultados do estudo fornecem evidências estatisticamente significativas de que a adoção dos princípios de design SOLID pode melhorar a compreensão do código no âmbito dos projetos de ML. Propomos que os princípios de design de engenharia de software devem ser difundidos na comunidade de ciência dedados e considerados para melhorar a capacidade de manutenção do código de ML.
id PUC_RIO-1_0091b650dc4064be76aa35d6dfd5604b
oai_identifier_str oai:MAXWELL.puc-rio.br:66797
network_acronym_str PUC_RIO-1
network_name_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository_id_str 534
spelling [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING [en] INVESTIGATING THE IMPACT OF SOLID DESIGN PRINCIPLES ON MACHINE LEARNING CODE UNDERSTANDING [pt] SOLID[pt] COMPREENSAO DE CODIGO[pt] APRENDIZADO DE MAQUINA[en] SOLID[en] CODE UNDERSTANDING[en] MACHINE LEARNING[pt] A aplicação de princípios de design tem sido reconhecida há muito tempo como benéfica para a compreensão e manutenção em projetos de software tradicionais. Esses benefícios podem ser válidos de forma semelhante para projetos de aprendizado de máquina (ML), que envolvem experimentação iterativa com dados, modelos e algoritmos. No entanto, os componentes de ML são frequentemente desenvolvidos por cientistas de dados com diversas formações educacionais, resultando potencialmente em código que não segue as práticas recomendadas de desenvolvimento de software. Para compreender melhor esse fenômeno, investigamos o impacto dos princípios de design SOLID na compreensão do código de ML. Para tanto, conduzimos um experimento controlado com três trials independentes (replicações exatas), envolvendo no total 100 cientistas de dados. Reestruturamos o código de ML real da indústria que não usava princípios SOLID. Dentro de cada ensaio, um grupo foi apresentado ao código de ML original, enquanto o outro foi apresentado ao código de ML incorporando princípios SOLID. Os participantes de ambos os grupos foram convidados a analisar o código e preencher um questionário que incluía perguntas abertas e fechadas sobre a sua compreensão. Os resultados do estudo fornecem evidências estatisticamente significativas de que a adoção dos princípios de design SOLID pode melhorar a compreensão do código no âmbito dos projetos de ML. Propomos que os princípios de design de engenharia de software devem ser difundidos na comunidade de ciência dedados e considerados para melhorar a capacidade de manutenção do código de ML.[en] Applying design principles has long been acknowledged as beneficial for understanding and maintainability in traditional software projects. These benefits may similarly hold for machine learning (ML) projects, which involve iterative experimentation with data, models, and algorithms. However, ML components are often developed by data scientists with diverse educational backgrounds, potentially resulting in code that doesn t adhere to software development best practices. In order to better understand this phenomenon, we investigated the impact of the SOLID design principles on ML code understanding. To this end, we conducted a controlled experiment with three independent trials (exact replications), overall involving 100 data scientists. We restructured ML code from a real industrial setting that did not use SOLID principles. Within each trial, one group was presented with the original ML code, while the other one was presented with ML code incorporating SOLID principles. Participants of both groups were asked to analyze the code and fill out a questionnaire that included both open-ended and closed-ended questions on their understanding. The study results provide statistically significant evidence that the adoption of the SOLID design principles can improve code understanding within the realm of ML projects. We put forward that software engineering design principles should be spread within the data science community and considered for enhancing the maintainability of ML code. MAXWELLMARCOS KALINOWSKIMARCOS KALINOWSKIMARCOS KALINOWSKIRAPHAEL OLIVEIRA CABRAL2024-05-23info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=2http://doi.org/10.17771/PUCRio.acad.66797engreponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)instacron:PUC_RIOinfo:eu-repo/semantics/openAccess2024-06-03T00:00:00Zoai:MAXWELL.puc-rio.br:66797Repositório InstitucionalPRIhttps://www.maxwell.vrac.puc-rio.br/ibict.phpopendoar:5342024-06-03T00:00Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)false
dc.title.none.fl_str_mv [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
[en] INVESTIGATING THE IMPACT OF SOLID DESIGN PRINCIPLES ON MACHINE LEARNING CODE UNDERSTANDING
title [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
spellingShingle [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
RAPHAEL OLIVEIRA CABRAL
[pt] SOLID
[pt] COMPREENSAO DE CODIGO
[pt] APRENDIZADO DE MAQUINA
[en] SOLID
[en] CODE UNDERSTANDING
[en] MACHINE LEARNING
title_short [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
title_full [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
title_fullStr [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
title_full_unstemmed [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
title_sort [pt] INVESTIGANDO O IMPACTO DA APLICAÇÃO DE PRINCÍPIOS DE PROJETO SOLID NA COMPREENSÃO DE CÓDIGO DE MACHINE LEARNING
author RAPHAEL OLIVEIRA CABRAL
author_facet RAPHAEL OLIVEIRA CABRAL
author_role author
dc.contributor.none.fl_str_mv MARCOS KALINOWSKI
MARCOS KALINOWSKI
MARCOS KALINOWSKI
dc.contributor.author.fl_str_mv RAPHAEL OLIVEIRA CABRAL
dc.subject.por.fl_str_mv [pt] SOLID
[pt] COMPREENSAO DE CODIGO
[pt] APRENDIZADO DE MAQUINA
[en] SOLID
[en] CODE UNDERSTANDING
[en] MACHINE LEARNING
topic [pt] SOLID
[pt] COMPREENSAO DE CODIGO
[pt] APRENDIZADO DE MAQUINA
[en] SOLID
[en] CODE UNDERSTANDING
[en] MACHINE LEARNING
description [pt] A aplicação de princípios de design tem sido reconhecida há muito tempo como benéfica para a compreensão e manutenção em projetos de software tradicionais. Esses benefícios podem ser válidos de forma semelhante para projetos de aprendizado de máquina (ML), que envolvem experimentação iterativa com dados, modelos e algoritmos. No entanto, os componentes de ML são frequentemente desenvolvidos por cientistas de dados com diversas formações educacionais, resultando potencialmente em código que não segue as práticas recomendadas de desenvolvimento de software. Para compreender melhor esse fenômeno, investigamos o impacto dos princípios de design SOLID na compreensão do código de ML. Para tanto, conduzimos um experimento controlado com três trials independentes (replicações exatas), envolvendo no total 100 cientistas de dados. Reestruturamos o código de ML real da indústria que não usava princípios SOLID. Dentro de cada ensaio, um grupo foi apresentado ao código de ML original, enquanto o outro foi apresentado ao código de ML incorporando princípios SOLID. Os participantes de ambos os grupos foram convidados a analisar o código e preencher um questionário que incluía perguntas abertas e fechadas sobre a sua compreensão. Os resultados do estudo fornecem evidências estatisticamente significativas de que a adoção dos princípios de design SOLID pode melhorar a compreensão do código no âmbito dos projetos de ML. Propomos que os princípios de design de engenharia de software devem ser difundidos na comunidade de ciência dedados e considerados para melhorar a capacidade de manutenção do código de ML.
publishDate 2024
dc.date.none.fl_str_mv 2024-05-23
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=2
http://doi.org/10.17771/PUCRio.acad.66797
url https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=66797&idi=2
http://doi.org/10.17771/PUCRio.acad.66797
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv MAXWELL
publisher.none.fl_str_mv MAXWELL
dc.source.none.fl_str_mv reponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)
instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
instacron:PUC_RIO
instname_str Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
instacron_str PUC_RIO
institution PUC_RIO
reponame_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
collection Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository.name.fl_str_mv Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
repository.mail.fl_str_mv
_version_ 1849967327325454336