Detección de defectos de diseño mediante métricas de código
- López Nozal, Carlos
- M. Esperanza Manso Martínez Co-director
- Yania Crespo Co-director
Universidade de defensa: Universidad de Valladolid
Fecha de defensa: 19 de decembro de 2012
- Mario G. Piattini Velthuis Presidente/a
- Miguel Á. Laguna Secretario/a
- Silvia Mara Abrahao Gonzales Vogal
- Pablo Javier Tuya González Vogal
- José Antonio Cruz Lemus Vogal
Tipo: Tese
Resumo
La identificación de defectos de diseño en entidades de código es una de las tareas del proceso de mantenimiento del software que sirve para evaluar la calidad de un sistema. Un defecto de diseño describe una situación que sugiere un problema potencial en la estructura del software. La intención de diseño de la entidad, que puede ser expresada como estereotipos de clasificadores estándar de UML, proporciona una fuente de información utilizada en algunas definiciones textuales de defectos. En las entidades de código de un sistema software orientado a objetos la información de estereotipos UML no suele estar disponible explícitamente, aunque los diseñadores y programadores la hayan tenido en cuenta en sus soluciones. En la práctica de la automatización de detección de defectos de diseño, esta información es obviada a pesar de su posible utilidad en el proceso de identificación de defectos. Actualmente existen métodos de identificación del defecto de diseño basados en métricas de código. Incluso existen herramientas que lo automatizan, como InCode y JDeodorant, ambas avaladas con importantes publicaciones de investigación, en las que esta información no se tiene en cuenta. En esta tesis proponemos utilizar técnicas de aprendizaje supervisado basado en clasificadores de tipo árbol de decisión, para modelar el problema de la detección de defectos de diseño como una clasificación de entidades de código ``con defecto'' o ``sin defecto''. La clasificación inicial en la fase de entrenamiento se puede obtener a partir de los métodos actuales. Este trabajo presenta varios casos de estudio experimentales para evaluar cómo influye la información relativa a la naturaleza de diseño de la entidad en la detección de tres defectos (GodClass, Feature Envy y Data Class) para distintos clasificadores. La evaluación consiste en comparar de medidas de rendimiento del clasificador obtenidas en la fase de entrenamiento (Recuperación, Precisión y F-Measure). Las resultados experimentales avalan la validez de considerar la naturaleza de diseño de la entidad en los métodos de identificación de defectos de código. Finalmente, como trasferencia del conocimiento de los resultados de investigación, en la tesis se proponen prototipos de herramientas software de detección de defectos de diseño que incluyen la naturaleza de diseño de la entidad de código.