Experimentación en Ingeniería del Software
- Profesor (Coordinador):
- Sira Vegas
- svegas@fi.upm.es
- Profesor:
- Natalia Juristo
- natalia@fi.upm.es
Semestre
Segundo semestre
Créditos
4 ECTS
Resumen
No se están evaluando de forma adecuada las tecnologías de Ingeniería de Software, es decir, los profesionales no saben a ciencia cierta si una tecnología es o no eficaz y, en caso afirmativo, no pueden estar seguros de cuán eficaz y aplicable es. Esta falta de evaluación adecuada menoscabe la capacidad de la industria para producir software competitivo de calidad.
La ingeniería de software experimental (ISE) es una disciplina de la Ingeniería de Software que pretende producir información fiable para los profesionales acerca de qué tecnologías se deben utilizar en los proyectos de desarrollo de software. La ISE utiliza estudios empíricos (experimentos, cuasi-experimentos, estudios de caso, etc.) para evaluar la eficacia de las tecnologías para el desarrollo de software.
Esta asignatura tiene como objetivo formar a los alumnos en las habilidades básicas necesarias para aplicar los métodos empíricos. Se centra en los experimentos, ya que constituyen el tipo de estudio empírico más maduro y mejor entendido en el campo de la IS. Los alumnos aprenderán cómo realizar, analizar, agregar y replicar los experimentos (en la industria y en entornos académicos).
Objetivos:
- Comprensión de la limitación actual de las tecnologías de la ingeniería del software debido a su estudio deficiente
- Comprensión de lo que son un laboratorio experimental y un experimento en la ingeniería del software
- Conocimiento de los distintos elementos de los experimentos en la ingeniería del software: variable de respuesta, factores, niveles, etc.
- Diseño de experimentos para las tecnologías de ingeniería del software: randomización, otras estrategias de control, tipos de diseño, etc.
- Comprensión de los informes de los experimentos en la ingeniería del software
- Aplicación de las técnicas de análisis de datos estadísticas (es decir, t-test, ANOVA, cálculo de tamaño de muestras)
Programa
- Introducción a la ingeniería del software experimental
- Los fundamentos del empiricismo
- El método científico
- Normas científicas: relaciones causa-efecto
- Inmadurez científica de la ingeniería del software
- Laboratorio y experimento
- El concepto de laboratorio
- El concepto de experimento
- Un laboratorio para la ingeniería del software
- Un experimento para la ingeniería del software
- Elementos de un experimento
- Variables respuesta
- Factores y niveles
- Tipos de estudios empíricos
- El diseño de experimentos
- Tipos de variables
- Tipos de control
- Validez del experimento
Bibliografía
- Natalia Juristo; Ana M. Moreno: "Basics of software engineering experimentation". Kluwer 2001
- Claes Wohlin, Per Runeson: "Experimentation in software engineering: An introduction". Kluwer 2000
Prerrequisitos
- Conocimientos básicos de estadística
Idioma en que se imparte
Inglés
Competencias Específicas
Código | Competencia | Nivel |
---|---|---|
CEM1 | Identificar, a partir del estado de la cuestión, la presencia de problemas de investigación relacionados con la concepción, la construcción, el uso y la evaluación de sistemas sociotécnicos complejos que hagan un uso intensivo de software | A |
CEM3 | Aplicar métodos de investigación relevantes a problemas abiertos en el área de la Ingeniería del Software, relacionados tanto con las características peculiares del producto software como con la gestión del desarrollo del mismo. | A |
Resultados de Aprendizaje
Código | Resultado de Aprendizaje | Competencias asociadas | Nivel de Adquisición |
---|---|---|---|
RA-IS-23 | Comprender la aplicación del paradigma experimental en ingeniería del software | CEM1, CEM3 | A |
RA-IS-24 | Diseñar experimentos en ingeniería del software, incluyendo replicaciones experimentales | CEM1, CEM3 | A |
RA-IS-35 | Realizar agregaciones de experimentos en ingeniería del software | CEM3 | A |
Guía de Aprendizaje
Guía de aprendizaje: Experimentación en Ingeniería del Software