Centro de Investigación e Innovación en Ingeniería de Software de la Facultad de Ingeniería
Centro de Investigación e Innovación en Ingeniería de Software

Ingeniería de software empírica

La ciencia y la tecnología utilizan la experimentación como medio para avanzar en la obtención de conocimiento. Junto con otros métodos empíricos, la experimentación permite encontrar evidencia para contrastar con hechos las hipótesis que provienen de la teoría.

La Ingeniería de Software es una disciplina relativamente joven. Todavía enfrenta desafíos importantes en la maduración de su cuerpo de conocimientos. El volumen de investigación publicada ha aumentado considerablemente en los últimos años. Sin embargo, una parte importante de estas publicaciones carecen de base empírica.

En muchos casos se trata únicamente de propuestas teóricas o pruebas de concepto. Las amenazas a la validez de estos conocimientos es considerable, lo que implica riesgos en la formación de profesionales y la toma de decisiones a nivel de las empresas.

Líneas de investigación

Métodos para ingeniería de software basada en evidencia

La Ingeniería de Software Basada en Evidencia es un enfoque metodológico de investigación que tiene como objetivo buscar evidencia para soportar las hipótesis de conocimiento en el campo de la Ingeniería de Software.

Está línea de investigación tiene como objetivo desarrollar métodos para aplicar este enfoque. Concretamente se está desarrollando paquetes de laboratorio para la replicación de experimentos de Ingeniería de Software.

Otros métodos investigados en esta área son: casos de estudio, cuasi-experimentos, revisiones sistemáticas y agregación de resultados.

Comparación experimental de técnicas de detección y análisis de defectos

Todas las ramas de ingeniería aplican pruebas a sus productos. La prueba tiene como objetivo dar información sobre los aspectos de calidad, particularmente sobre los defectos que contienen los productos.

En la Ingeniería de Software existen varias propuestas de técnicas y herramientas para detectar defectos en distintas etapas del desarrollo. Entre las familias de técnicas más conocidas se encuentran las pruebas de caja negra y pruebas de caja blanca. Estos enfoques permiten analizar el producto desde distintos enfoques: funcionalidad y estructura.

Sin embargo, la evidencia sobre la eficacia y eficiencia sobre estas técnicas es limitada. Tampoco se conoce empíricamente que tipo de defectos son detectados con más facilidad por cada técnica. Esta línea de investigación realiza experimentos con testers que aplican distintas técnicas y herramientas.

Se analizan los resultados para obtener conocimiento que permita mejorar la toma de decisiones relativas a la selección de técnicas de prueba. Para facilitar la replicación del experimento se ha desarrollado un paquete de laboratorio para comparar técnicas de prueba.

Replicación y empaquetamiento de experimentos en ingeniería de software

Para que el conocimiento científico pueda evolucionar y ser se requiere que los experimentos sean replicados. La replicación tiene como propósito aumentar la confianza sobre los resultados y profundizar en los detalles del fenómeno estudiado.

En esta área se aborda el problema de la facilitación de las replicaciones de experimentos de ingeniería de software. Para satisfacer este objetivo se propone un esquema de paquete de laboratorio. El paquete de laboratorio es el contenedor de la información y materiales relativos a un experimento con el objetivo de ser replicado.

El esquema puede instanciarse para múltiples experimentos de ingeniería de software para facilitar el proceso de replicación. El esquema propuesto cuenta de una estructura y guías para la elaboración del contenido de un paquete de laboratorio.