Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio

Autores
Gullino, Mauro
Año de publicación
2020
Idioma
español castellano
Tipo de recurso
tesis de maestría
Estado
versión aceptada
Colaborador/a o director/a de tesis
Robiolo, Gabriela
Rossi, Gustavo Héctor
Descripción
La predicción de defectos es un tema importante en la Ingeniería de Software. Puede utilizarse para evaluar la calidad del producto final, estimando si se cumplen los estándares de calidad contractuales o los impuestos para la aceptación del producto por parte del cliente. También puede facilitar la previsión de los recursos para pruebas o verificación formal. El presente trabajo selecciona un conjunto de métricas estáticas (o de producto) y de cambio (o de proceso) con el objetivo de predecir los defectos de versiones sucesivas. Como método de estimación se utiliza la regresión logística. Se presenta un caso de estudio sobre el proyecto de código abierto MediaWiki, que soporta a Wikipedia. Este producto cuenta con 1000 clases y 365 KLOC. Se han obtenido las métricas estáticas y de cambio durante el período de un año con distintos cortes temporales. Se construyeron herramientas ad hoc para calcular las métricas definidas por autores como Chidamber & Kemerer, Robiolo y Moser. Se busca estudiar la viabilidad de aplicar estas métricas en un lenguaje de programación orientado a objetos diferente, ya que las investigaciones de referencia han trabajado históricamente con lenguajes de tipado estático (principalmente C++ y Java) mientras que MediaWiki se encuentra desarrollado en PHP, que es un lenguaje orientado a objetos dinámicamente tipado, muy utilizado en el desarrollo web de pequeña y mediana escala. A estos efectos, también se proponen métricas nuevas, que buscan medir estos aspectos de tipado del lenguaje y sus efectos en el producto y la calidad del mismo. Para recolectar las métricas de cambio del código fuente se han clasificado manualmente alrededor de 2800 commits de 230 desarrolladores, realizados al repositorio de versiones del proyecto durante el año 2014. Esta clasificación tiene por objeto identificar qué modificaciones al código fuente se pueden imputar a correcciones de defectos (Fault Repairing) y cuáles a introducción de nueva funcionalidad (Feature Introduction), siguiendo el trabajo de Hassan. Esta clasificación permite definir métricas con las cuales construir modelos de predicción de defectos. Se comprueba que la cantidad y tamaño de los cambios de tipo “Feature Introduction” realizados a una clase son los mejores predictores de los defectos futuros de la misma. Además, se comprueba que utilizando métricas de cambio es posible obtener mejores resultados en la predicción que con métricas estáticas, pero las primeras representan un mayor esfuerzo de medición que las segundas.
Magister en Ingeniería de Software
Universidad Nacional de La Plata
Facultad de Informática
Materia
Ciencias Informáticas
Predicción
Defectos
Ingeniería de software
Nivel de accesibilidad
acceso abierto
Condiciones de uso
http://creativecommons.org/licenses/by-nc/4.0/
Repositorio
SEDICI (UNLP)
Institución
Universidad Nacional de La Plata
OAI Identificador
oai:sedici.unlp.edu.ar:10915/93237

id SEDICI_a18bc8c57f35c239da6733a96fe6c535
oai_identifier_str oai:sedici.unlp.edu.ar:10915/93237
network_acronym_str SEDICI
repository_id_str 1329
network_name_str SEDICI (UNLP)
spelling Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambioGullino, MauroCiencias InformáticasPredicciónDefectosIngeniería de softwareLa predicción de defectos es un tema importante en la Ingeniería de Software. Puede utilizarse para evaluar la calidad del producto final, estimando si se cumplen los estándares de calidad contractuales o los impuestos para la aceptación del producto por parte del cliente. También puede facilitar la previsión de los recursos para pruebas o verificación formal. El presente trabajo selecciona un conjunto de métricas estáticas (o de producto) y de cambio (o de proceso) con el objetivo de predecir los defectos de versiones sucesivas. Como método de estimación se utiliza la regresión logística. Se presenta un caso de estudio sobre el proyecto de código abierto MediaWiki, que soporta a Wikipedia. Este producto cuenta con 1000 clases y 365 KLOC. Se han obtenido las métricas estáticas y de cambio durante el período de un año con distintos cortes temporales. Se construyeron herramientas ad hoc para calcular las métricas definidas por autores como Chidamber & Kemerer, Robiolo y Moser. Se busca estudiar la viabilidad de aplicar estas métricas en un lenguaje de programación orientado a objetos diferente, ya que las investigaciones de referencia han trabajado históricamente con lenguajes de tipado estático (principalmente C++ y Java) mientras que MediaWiki se encuentra desarrollado en PHP, que es un lenguaje orientado a objetos dinámicamente tipado, muy utilizado en el desarrollo web de pequeña y mediana escala. A estos efectos, también se proponen métricas nuevas, que buscan medir estos aspectos de tipado del lenguaje y sus efectos en el producto y la calidad del mismo. Para recolectar las métricas de cambio del código fuente se han clasificado manualmente alrededor de 2800 commits de 230 desarrolladores, realizados al repositorio de versiones del proyecto durante el año 2014. Esta clasificación tiene por objeto identificar qué modificaciones al código fuente se pueden imputar a correcciones de defectos (Fault Repairing) y cuáles a introducción de nueva funcionalidad (Feature Introduction), siguiendo el trabajo de Hassan. Esta clasificación permite definir métricas con las cuales construir modelos de predicción de defectos. Se comprueba que la cantidad y tamaño de los cambios de tipo “Feature Introduction” realizados a una clase son los mejores predictores de los defectos futuros de la misma. Además, se comprueba que utilizando métricas de cambio es posible obtener mejores resultados en la predicción que con métricas estáticas, pero las primeras representan un mayor esfuerzo de medición que las segundas.Magister en Ingeniería de SoftwareUniversidad Nacional de La PlataFacultad de InformáticaRobiolo, GabrielaRossi, Gustavo Héctor2020-03-26info:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTesis de maestriahttp://purl.org/coar/resource_type/c_bdccinfo:ar-repo/semantics/tesisDeMaestriaapplication/pdfhttp://sedici.unlp.edu.ar/handle/10915/93237https://doi.org/10.35537/10915/93237spainfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc/4.0/Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-29T11:19:21Zoai:sedici.unlp.edu.ar:10915/93237Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-29 11:19:22.186SEDICI (UNLP) - Universidad Nacional de La Platafalse
dc.title.none.fl_str_mv Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
title Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
spellingShingle Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
Gullino, Mauro
Ciencias Informáticas
Predicción
Defectos
Ingeniería de software
title_short Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
title_full Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
title_fullStr Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
title_full_unstemmed Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
title_sort Predicción de defectos en un lenguaje dinámicamente tipado usando métricas estáticas y de cambio
dc.creator.none.fl_str_mv Gullino, Mauro
author Gullino, Mauro
author_facet Gullino, Mauro
author_role author
dc.contributor.none.fl_str_mv Robiolo, Gabriela
Rossi, Gustavo Héctor
dc.subject.none.fl_str_mv Ciencias Informáticas
Predicción
Defectos
Ingeniería de software
topic Ciencias Informáticas
Predicción
Defectos
Ingeniería de software
dc.description.none.fl_txt_mv La predicción de defectos es un tema importante en la Ingeniería de Software. Puede utilizarse para evaluar la calidad del producto final, estimando si se cumplen los estándares de calidad contractuales o los impuestos para la aceptación del producto por parte del cliente. También puede facilitar la previsión de los recursos para pruebas o verificación formal. El presente trabajo selecciona un conjunto de métricas estáticas (o de producto) y de cambio (o de proceso) con el objetivo de predecir los defectos de versiones sucesivas. Como método de estimación se utiliza la regresión logística. Se presenta un caso de estudio sobre el proyecto de código abierto MediaWiki, que soporta a Wikipedia. Este producto cuenta con 1000 clases y 365 KLOC. Se han obtenido las métricas estáticas y de cambio durante el período de un año con distintos cortes temporales. Se construyeron herramientas ad hoc para calcular las métricas definidas por autores como Chidamber & Kemerer, Robiolo y Moser. Se busca estudiar la viabilidad de aplicar estas métricas en un lenguaje de programación orientado a objetos diferente, ya que las investigaciones de referencia han trabajado históricamente con lenguajes de tipado estático (principalmente C++ y Java) mientras que MediaWiki se encuentra desarrollado en PHP, que es un lenguaje orientado a objetos dinámicamente tipado, muy utilizado en el desarrollo web de pequeña y mediana escala. A estos efectos, también se proponen métricas nuevas, que buscan medir estos aspectos de tipado del lenguaje y sus efectos en el producto y la calidad del mismo. Para recolectar las métricas de cambio del código fuente se han clasificado manualmente alrededor de 2800 commits de 230 desarrolladores, realizados al repositorio de versiones del proyecto durante el año 2014. Esta clasificación tiene por objeto identificar qué modificaciones al código fuente se pueden imputar a correcciones de defectos (Fault Repairing) y cuáles a introducción de nueva funcionalidad (Feature Introduction), siguiendo el trabajo de Hassan. Esta clasificación permite definir métricas con las cuales construir modelos de predicción de defectos. Se comprueba que la cantidad y tamaño de los cambios de tipo “Feature Introduction” realizados a una clase son los mejores predictores de los defectos futuros de la misma. Además, se comprueba que utilizando métricas de cambio es posible obtener mejores resultados en la predicción que con métricas estáticas, pero las primeras representan un mayor esfuerzo de medición que las segundas.
Magister en Ingeniería de Software
Universidad Nacional de La Plata
Facultad de Informática
description La predicción de defectos es un tema importante en la Ingeniería de Software. Puede utilizarse para evaluar la calidad del producto final, estimando si se cumplen los estándares de calidad contractuales o los impuestos para la aceptación del producto por parte del cliente. También puede facilitar la previsión de los recursos para pruebas o verificación formal. El presente trabajo selecciona un conjunto de métricas estáticas (o de producto) y de cambio (o de proceso) con el objetivo de predecir los defectos de versiones sucesivas. Como método de estimación se utiliza la regresión logística. Se presenta un caso de estudio sobre el proyecto de código abierto MediaWiki, que soporta a Wikipedia. Este producto cuenta con 1000 clases y 365 KLOC. Se han obtenido las métricas estáticas y de cambio durante el período de un año con distintos cortes temporales. Se construyeron herramientas ad hoc para calcular las métricas definidas por autores como Chidamber & Kemerer, Robiolo y Moser. Se busca estudiar la viabilidad de aplicar estas métricas en un lenguaje de programación orientado a objetos diferente, ya que las investigaciones de referencia han trabajado históricamente con lenguajes de tipado estático (principalmente C++ y Java) mientras que MediaWiki se encuentra desarrollado en PHP, que es un lenguaje orientado a objetos dinámicamente tipado, muy utilizado en el desarrollo web de pequeña y mediana escala. A estos efectos, también se proponen métricas nuevas, que buscan medir estos aspectos de tipado del lenguaje y sus efectos en el producto y la calidad del mismo. Para recolectar las métricas de cambio del código fuente se han clasificado manualmente alrededor de 2800 commits de 230 desarrolladores, realizados al repositorio de versiones del proyecto durante el año 2014. Esta clasificación tiene por objeto identificar qué modificaciones al código fuente se pueden imputar a correcciones de defectos (Fault Repairing) y cuáles a introducción de nueva funcionalidad (Feature Introduction), siguiendo el trabajo de Hassan. Esta clasificación permite definir métricas con las cuales construir modelos de predicción de defectos. Se comprueba que la cantidad y tamaño de los cambios de tipo “Feature Introduction” realizados a una clase son los mejores predictores de los defectos futuros de la misma. Además, se comprueba que utilizando métricas de cambio es posible obtener mejores resultados en la predicción que con métricas estáticas, pero las primeras representan un mayor esfuerzo de medición que las segundas.
publishDate 2020
dc.date.none.fl_str_mv 2020-03-26
dc.type.none.fl_str_mv info:eu-repo/semantics/masterThesis
info:eu-repo/semantics/acceptedVersion
Tesis de maestria
http://purl.org/coar/resource_type/c_bdcc
info:ar-repo/semantics/tesisDeMaestria
format masterThesis
status_str acceptedVersion
dc.identifier.none.fl_str_mv http://sedici.unlp.edu.ar/handle/10915/93237
https://doi.org/10.35537/10915/93237
url http://sedici.unlp.edu.ar/handle/10915/93237
https://doi.org/10.35537/10915/93237
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by-nc/4.0/
Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
eu_rights_str_mv openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc/4.0/
Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:SEDICI (UNLP)
instname:Universidad Nacional de La Plata
instacron:UNLP
reponame_str SEDICI (UNLP)
collection SEDICI (UNLP)
instname_str Universidad Nacional de La Plata
instacron_str UNLP
institution UNLP
repository.name.fl_str_mv SEDICI (UNLP) - Universidad Nacional de La Plata
repository.mail.fl_str_mv alira@sedici.unlp.edu.ar
_version_ 1844616067322740736
score 13.070432