Técnicas avanzadas de depuración de software

La depuración de software (más conocida como "debugging") es una de las tareas más complejas en el proceso de desarrollo de software, en especial cuando se trata de productos software industriales. Sin embargo, se trata de un proceso esencial que se debe realizar en la práctica totalidad de los desarrollos software y que tiene como objetivo la detección y corrección de los errores (errores de todo tipo: de ejecución, de funcionamiento, de rendimiento, etc).
Los errores se pueden detectar mediantes técnicas de testeo (basadas en casos de prueba), mediante técnicas de verificación formal, mediante la inclusión de asertos en el código, etc. En cualquiera de los casos, resulta imprescindible contar con herramientas potentes que faciliten la detección de errores y, especialmente, su corrección.
Por otro lado, en el ámbito de las aplicaciones web para Internet, resulta especialmente importante también el uso de técnicas para la depuración de sitios web, de forma que se garanticen propiedades como su accesibilidad, navegabilidad, eficiencia, mantenibilidad, corrección (ausencia de errores), portabilidad y facilidad de uso.

En el grupo de investigación hemos desarrollado diferentes técnicas avanzadas de depuración basadas en "fragmentación automática" o en "depuración algorítmica". Mientras las primeras permiten reducir el ámbito de búsqueda de los errores, las segundas son muy útiles para localizar sistemáticamente la ubicación de un error a partir del conocimiento del programador. También trabajamos con técnicas de "profiling", las cuales permiten analizar el consumo de recursos de cada unidad de la aplicación, de forma que se puedan localizar los "cuellos de botella" del sistema y evitarlos, mejorando así el rendimiento global del sistema desarrollado. Finalmente, disponemos de herramientas de filtrado de páginas web que permiten mostrar sólo los aspectos relacionados con un determinado criterio, lo que puede resultar esencial a la hora de analizar la información proporcionada por el sitio web, depurar el contenido, etc.

Responsable científico: Vidal Oriola Germán Francisco

Aplicaciones

  • La principal aplicación de nuestras técnicas es la depuración automática o semi-automática de software. Las técnicas se pueden adaptadar a distintos lenguajes de programación o metodologías de desarrollo.
  • Por otro lado, las herramientas de filtrado web permiten, de manera totalmente automática, transformar un sitio web de forma que sólo muestre la información relevante con respecto a cierto criterio. Esta utilidad podría tambien considerarse como una facilidad para los usuarios que naveguen por un sitio web, permitiendo centrar su atención en determinados aspectos y evitando otros.

Ventajas técnicas

  • Las principales ventajas técnicas de nuestros métodos de depuración es que permiten reducir los tiempos de detección, localización y corrección de errores software, algo crucial en el desarrollo de los programas. Estos procesos se vienen realizando en la mayor parte de los casos de forma manual o con herramientas simples y totalmente guiadas por el programador.

Beneficios que aporta

  • Los principales beneficios del uso de técnicas avanzadas de depuración son los derivados de la reducción en los tiempos de desarrollo de software (en el que la depuración de código tiene un peso considerable).
  • Por otro lado, hay beneficios menos tangibles derivados de la mejora en la calidad del software producido, la posibilidad de incluir certificaciones de calidad, etc.

Experiencia relevante

  • Desde su creación, el grupo está orientado al desarrollo de técnicas relacionadas con las temáticas tratadas aquí, lo que viene avalado por el número y calidad de las publicaciones de los miembros del equipo, así como por los proyectos de I+D+I en los que han participado.