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

  1. Introducción a la ingeniería del software experimental
    1. Los fundamentos del empiricismo
    2. El método científico
    3. Normas científicas: relaciones causa-efecto
    4. Inmadurez científica de la ingeniería del software
  2. Laboratorio y experimento
    1. El concepto de laboratorio
    2. El concepto de experimento
    3. Un laboratorio para la ingeniería del software
    4. Un experimento para la ingeniería del software
  3. Elementos de un experimento
    1. Variables respuesta
    2. Factores y niveles
    3. Tipos de estudios empíricos
  4. El diseño de experimentos
    1. Tipos de variables
    2. Tipos de control
    3. Validez del experimento
  5. Análisis de datos
    1. Los fundamentos de la estadística inferencial
    2. Pruebas paramétricas para muestras independientes
    3. Pruebas paramétricas para muestras relacionadas
    4. Pruebas no paramétricas

Bibliografía

  • Natalia Juristo; Ana M. Moreno: "Basics of software engineering experimentation". Kluwer 2001
  • Claes Wohlin et al.: "Experimentation in software engineering: An introduction". Kluwer 2000

Prerequisitos

  • Conocimientos básicos de estadística

Método de Evaluación

  • Se evaluarán los alumnos únicamente basándose en los trabajos prácticos. No se llevará a cabo ningún examen.
  • La evaluación de los trabajos prácticos dependerá de (1) la presentación llevada a cabo por los estudiantes en clase y (2) la corrección de los resultados.
  • La calificación final se computará mediante una media ponderada.

Idioma en que se imparte

Inglés

Competencias Específicas

Código, descripción y nivel de cada una de las competencias específicas de la asignatura
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, descripción, competencias asociadas y nivel de adquisición de cada uno de los resultados de aprendizaje de la asignatura
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

Guía de Aprendizaje

Guía de aprendizaje: Experimentación en Ingeniería del Software