Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DDQI - Resumen - 2010
DDQI - Resumen - 2010
Motivación
El autor plantea un método para resolver los problemas que según él se plantean en los métodos
formales de inspección de software. Los dos problemas mencionados son:
El método planteado no solo incluye las clásicas tareas manuales de inspección, sino que
también propone investigar aspectos más de base en el desarrollo de sistemas. Un ejemplo de
esto es la detección de patrones de errores humanos y la detección y prevención de “cadena de
errores”.
Planteo
La idea principal es generar “hipótesis” acerca de la calidad de los artefactos del proyecto en
base a datos procedentes de métricas. Estas hipótesis permitirán guiar de forma más eficiente y
efectiva sucesivas inspecciones dado que los inspectores se concentrarán en comprobar su
validez.
Una hipótesis incluye información acerca del tipo de defecto que es probable que exista en
determinado artefacto (defect type) así como también que partes del artefacto pueden contener
estos defectos (defect location).
Hay que recordar que el objetivo de DDQI no es solamente encontrar y remover defectos, sino
también prevenir futuras ocurrencias de los mismos. Por este motivo, cada defecto encontrado
en un artefacto debe llevar a analizar la causa raíz del mismo. Una vez encontrada la causa, se
podrán elaborar nuevas hipótesis que podrán ser aplicadas a nuevos artefactos afectados por la
misma causa raíz.
El proceso de DDQI agrega dos etapas previas al proceso de inspección formal. En estas dos
etapas se toman métricas del artefacto a inspeccionar (además de métricas históricas) y se
generan las hipótesis para luego dar paso al proceso normal de inspección.
Tomando las fechas y horas de modificación de ambos artefactos se grafica y se elaboran las
siguientes hipótesis:
Midiendo la longitud de las variables en cada artefacto de código se puede inferir la experiencia
y la formación de los desarrolladores.
2)From programmer’s background, build hypothesis about injected defects. ( in Java example )
-- IF COBOL programmer, check the “Error handling routine” and “inappropriate try-catch
block”.
-- IF C/C++, check bugs of “Null Pointer Dereference”.
-- IF Java, check “Resource Leaking” and too many “new”
Conclusiones
Según el autor, el método resulta efectivo según la calidad de las hipótesis inferidas de los datos
empíricos. DDQI fue aplicado a más de 1300 proyectos a lo largo de 9 años demostrando su
efectividad ya que permitió aumentar en 4 veces la cantidad de proyectos inspeccionados
reduciendo considerablemente el tiempo promedio de inspección.
No sugiere a DDQI como un reemplazo de los métodos clásicos sino más bien como un
complemento de estos.
Por otro lado plantea el futuro de DDQI en dos direcciones: a corto plazo, reducir el esfuerzo de
inspecciones y producir acciones de prevención de defectos más detallados; a largo plazo,
generar una base de conocimiento que permita una generalización de la evidencia empírica.
Referencias