Sunteți pe pagina 1din 40

Ingeniería de Software Empírica

Capítulo 2: Ingeniería de Software Empírica


Universidad de Cuenca
Facultad de Ingeniería
Ing. Ma. Fernanda Granda
fernanda.granda@ucuenca.edu.ec

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 1


Objetivos
El objetivo aquí es presentar las fases de un experimento y los
conceptos básicos.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 2


Contenido
Fases de un experimento empírico:
Definición del estudio empírico
Diseño Experimental
Condución y Análisis
Interpretación de los resultados
Reporte
Diseño de experimentos: objetivos y principios básicos

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 3


Proceso de la Investigación Empírica -
Fases

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 4


Definición
1.Objeto de estudio: ¿Cuál es la entidad bajo estudio?
2.Motivación: ¿Por qué se está estudiando esto?
3.Propósito: ¿Cuál es el objetivo del estudio?
4.Alcance: ¿Cuáles son las dimensiones del estudio?
5.Perspectiva: ¿Desde qué punto de vista el estudio es conducido?
6.Dominio: ¿Cuál es el área de Estudio?

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 5


Definición – Objeto de Estudio
Hace referencia al factor de estudio, puede ser un producto,
proceso, recurso u otro artefacto de software.
Es importante describir las características ya conocidas del objeto
de estudio y en cuáles se va a enfocar el estudio actual
Ejemplos:
◦ Métricas de diseño y código
◦ Técnicas de verificación dinámicas
◦ Metodologías de desarrollo ágiles
◦ Producto de software (entorno de desarrollo, herramientas varias)

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 6


Definición -Motivación
Pueden existir múltiples razones que motiven el estudio.
oAlgunas de ellas son heredadas de los hallazgos de estudios anteriores (estado
del arte) y las preguntas de investigación que esos estudios no pudieron
contestar o explorar
o Ampliar el conocimiento sobre algo no conocido o parcialmente conocido es una motivación de por sí
oOtras provienen de las necesidades de la industria que utiliza/explota/se ve
afectada por el fenómeno de estudio
o En estos casos la importancia práctica de los resultados del estudio deben ser parte de la motivación

El valor que proporcionan las respuestas a las preguntas de


investigación están directamente relacionadas con la motivación del
estudio

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 7


Definición -Propósito
Determina las áreas específicas a explorar/investigar del fenómeno
Está directamente relacionado con las preguntas de investigación y
responde a la motivación de lo que se quiere
conocer/ampliar/explorar/determinar
Se debe definir el efecto primario que está bajo estudio, éste debe
ser claro y hace referencia a las variables dependientes del estudio.
Ejemplos:
oConocer el costo de la utilización de la herramienta X
oAnalizar la capacidad de una técnica
oDeterminar el umbral de efectividad de un proceso aplicado a diferentes
contextos

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 8


Definición -Alcance
•Definir el fenómeno a investigar, ubicado dentro de una
disciplina/tema de investigación
oDefinir qué de ese fenómeno se va a estudiar y qué no (límites del estudio)
•Definir el contexto:
oLugar donde se ejecuta el estudio: ubicación, tiempo, características del
entorno
oSujetos que van a participar: características de los sujetos
oArtefactos que se van a utilizar
•Una buena definición del alcance del estudio nos va a permitir
determinar el alcance de los resultados del mismo
INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 9
Definición -Perspectiva
Refiere al punto de vista con que los resultados obtenidos son
interpretados
Las métricas asociadas al estudio tienen que ser definidas en base
a dicha perspectiva. Por ejemplo, desde el punto de vista de(del):
oCliente
oEquipo de desarrollo
oDesarrollador
oLa empresa
oInvestigador
oUsuario

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 10


Definición -Dominio
El fenómeno a investigar está ubicado dentro de una disciplina/tema de
investigación.
Es necesario tener conocimiento del estado del arte de esa disciplina y en
particular de los hallazgos de otros estudios empíricos en relación a ese
fenómeno.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 11


Definición –Método GQM
Basili propone un método denominado GQM (Goal-Question-
Metric) para ayudar a la definición de un estudio empírico
◦ Nivel conceptual (Meta): Se establece un objetivo para cada elemento de
medición, considerando el producto, proceso y los recursos, desde diferentes
puntos de vista
◦ Nivel operativo (Pregunta): Con base en las metas definidas se establece un
conjunto de preguntas que permiten caracterizar la evaluación / logro de un
objetivo específico
◦ Nivel cuantitativo (Métrica): A cada pregunta se le asocian datos que
permitan dar respuesta cuantitativa a los objetivos, de manera objetiva o
subjetiva.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 12


Proceso de la Investigación Empírica -
Fases

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 13


Diseño Experimental
Es la fase más importante y contempla:
◦ Definición de las preguntas de investigación
◦ Identificación y definición de variables dependientes e
independientes
◦ Formulación de las hipótesis
◦ Recolección de datos empíricos
◦ Métodos empíricos a utilizar

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 14


Diseño Experimental –Preguntas de
investigación
Se define el problema a través de preguntas de investigación, identificando los conceptos
principales y las relaciones a ser exploradas
Las preguntas deben ser formuladas de forma tal que ayuden a describir el fenómeno bajo
estudio
Ejemplos:
◦ ¿Porqué el nivel de uso de testing es bajo en las empresas desarrolladoras de software en Cuenca? ¿El
tipo de empresa influye sobre el nivel de uso de testing? (causas del problema)
◦ ¿Cómo afecta el bajo nivel de uso de testing al gasto empresarial en el área de desarrollo en las
empresas de Cuenca? (consecuencias del problema)
◦ ¿Si se aplicaran políticas de control de la calidad de software se aumentarían los índices de uso de
testing en los desarrolladores? (solución al problema)
◦ ¿Hay diferentes niveles de uso de testing entre los desarrolladores privados y públicos? (comparativo)
◦ ¿El bajo nivel de uso testing en las empresas desarrolladoras ha sido una constante en los últimos 20
años? (longitudinal)

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 15


Diseño Experimental –Identificación y
definición de variables
•Variables dependientes: son aquellas variables que observamos y medimos para
responder a las preguntas de investigación. Dependen del contexto experimental y de la
variación (adrede) de las variables independientes. Ejemplos:
◦ Esfuerzo
◦ Costo
◦ Efectividad
◦ Eficiencia

•Variables independientes: son aquellas variables que manipulamos adrede, las cuales
suponemos afectan a la variable dependiente, de la cual observamos su
comportamiento. Ejemplos:
◦ Técnicas
◦ Herramientas
◦ Procedimientos

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 16


Diseño Experimental –Formulación de
Hipótesis
Las hipótesis deben ser cuidadosamente definidas
Los datos recolectados se usarán para la prueba de estas hipótesis
◦ Para esto es muy importante tener cuidado en la elección de la muestra

En base a los resultados de estas pruebas, se debe tomar una decisión acerca de
la validez de la misma (si se acepta o se rechaza)
Se formulan en términos de hipótesis nula (H0) e hipótesis alternativa (H1).
Ejemplo:
◦ H0 :El tipo de mutante no influencia en la efectividad de la herramienta en detectar fallos en
el artefacto de software.
◦ H1: El tipo de mutante influencia en la efectividad de la herramienta en detectar fallos en el
artefacto de software.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 17


Diseño Experimental –Recolección de
datos empíricos
El investigador decide las fuentes de donde se obtendrán los datos empíricos y cómo estos
serán recolectados
En algunos casos se pueden obtener a través de los sistemas:
◦ Sistemas universitarios/académicos
◦ Sistemas comerciales
◦ Sistemas Opensource

Es necesario tener cuidado en cómo se recolectan dichos datos y la forma en la cual se realizan
las mediciones de las variables.
◦ Costo
◦ Tamaño
◦ Esfuerzo

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 18


Diseño Experimental –Análisis de datos
Se debe elegir la técnica de análisis de datos de acuerdo al tipo de
variables dependientes que se usan y al diseño experimental
◦ Tipo de variable: nominal, discreta, etc.
◦ Tipo de diseño: múltiples opciones para cada tipo de estudio
La elección se debe basar en las fortalezas y debilidades de la
técnica en sí, ya que en la mayoría de los casos hay varias
alternativas que podrían aplicar.
En algunas ocasiones es necesario definir un proceso de análisis de
datos, en donde pueden haber varias opciones de técnicas
dependiendo de ciertas características de los datos recolectados.
INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 19
Proceso de la Investigación Empírica -
Fases

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 20


Conducción y análisis
En esta fase se lleva a cabo la conducción (o ejecución) del
experimento, en donde se recolectan los datos necesarios para luego
realizar el posterior análisis de los mismos
Dependiendo del tipo de estudio a realizar, la fase de conducción
puede resultar más o menos compleja

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 21


Conducción
Se deben seleccionar los sujetos y se deben preparar los artefactos a
ser utilizados para la ejecución y recolección de datos
Los sujetos deben estar motivados para participar (sean conscientes
o no de su participación)
En algunos casos se requiere una etapa de instrumentación
 Se deben tener pronto todos los artefactos necesarios: instrumentos,
formularios, guías, herramientas, etc.
 Puede involucrar capacitación/entrenamiento de sujetos

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 22


Conducción (cont.)
Ambiente de ejecución:
◦ Real: el estudio no debería afectar el proyecto más de lo necesario, en caso
contrario los datos recolectados perderían validez
◦ Ficticio: se debe controlar el ambiente, los datos pueden no ser generalizables
a ambientes reales
Los datos pueden ser recolectados de diversas formas:
◦ Manualmente (formularios con o sin soporte informático)
◦ Mediante entrevistas
◦ Automáticamente a través de herramientas
Se debe chequear la correcta recolección de los mismos
INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 23
Análisis de los datos
Comienza luego de que finaliza la conducción/ejecución del
estudio y se cuenta con los datos recolectados
Consta de 3 etapas:
1. Estadísticos Descriptivos: para comprender los datos
2. Reducción del conjunto de datos: para eliminar atributos
irrelevantes y datos erróneos
3. Análisis estadístico: para determinar las relaciones causa/efecto

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 24


Análisis de los datos –Estadísticos
descriptivos
Se utilizan para validar la correctitud de los datos recolectados antes
de comenzar con el análisis estadístico
Se deben depurar (o “reducir”) de tal forma que puedan ser leídos
fácilmente y se puedan utilizar para el posterior análisis estadístico
Dentro de las medidas de estadísticas descriptivas más comúnmente
usadas están:
◦ Media
◦ Mediana
◦ Desviación estándar

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 25


Ejemplos de gráficas –dispersión y otros
que muestren la forma de los datos
Es una de las distribuciones de probabilidad de variable continua que con más
frecuencia aparece aproximada en fenómenos reales. La gráfica de su función
de densidad de probabilidad f(x) tiene una forma acampanada y es simétrica
respecto de un determinado parámetro estadístico (su media aritmética, μ). Esta
curva se conoce como campana de Gauss y es el gráfico de una función
gaussiana.
La importancia de esta distribución radica en que permite modelar numerosos
fenómenos naturales, sociales y psicológicos. Mientras que los mecanismos que
subyacen a gran parte de este tipo de fenómenos son desconocidos, por la
enorme cantidad de variables incontrolables que en ellos intervienen, el uso del
modelo normal puede justificarse asumiendo que cada observación se obtiene
como la suma de unas pocas causas independientes

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 26


Análisis de los datos –Reducción del
conjunto de datos
La aplicación de los métodos estadísticos tienen determinadas
“precondiciones” acerca de la forma de los datos (por ejemplo:
distribución normal).
Si los datos no representan lo que se cree (no tienen la forma
esperada), las conclusiones que se derivan de los resultados de la
aplicación de los métodos estadísticos es incorrecta.
Los errores en los datos se pueden dar sistemáticamente o bien
presentarse en pocas mediciones (outliers).

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 27


Análisis de los datos –Análisis estadístico
De acuerdo a la técnica de análisis definida en el diseño del
experimento se procede a realizar el test de hipótesis
Objetivo: ver si es posible rechazar la hipótesis nula H0.
Si la hipótesis nula no es rechazada, no se puede decir nada sobre
los resultados. En cambio, si es rechazada, se puede declarar que la
hipótesis es falsa con una significancia dada α, también llamado
“nivel de riesgo” o “probabilidad de error”.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 28


Análisis de los datos –Análisis estadístico
(cont)
Para probar H0 se define una unidad de prueba t y un área
crítica C, la cual es parte del área sobre la que varía t.
A partir de estas definiciones se formula la prueba de
significancia de la siguiente forma:
◦ Si t pertenece a C, rechazar H0
◦ Si t no pertenece a C, no rechazar H0

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 29


Proceso de la Investigación Empírica -
Fases

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 30


Interpretación de los resultados
Se examina la razón por la cual se rechazó/aceptó la hipótesis nula
Este proceso proporciona a los investigadores una idea/visión sobre
los motivos reales de la decisión derivada de la hipótesis bajo prueba
Se derivan conclusiones del estudio en base a los resultados del
análisis realizado
Se define la significancia y relevancia práctica de los resultados
Las limitaciones del estudio se presentan a través de amenazas a la
validez

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 31


Interpretación de los resultados –
Significancia y relevancia práctica
De los resultados de un estudio se puede concluir (por ejemplo) que
una determinada herramienta es más costosa que otra.
Significancia: ¿cuánto más costosa es?
◦ ¿100%? ¿200%? ¿0,5%?
Implicancia práctica: ¿en qué sentido práctico este conocimiento es
útil?
◦ Por ejemplo: la elección de esta herramienta en comparación con otra,
frente a un determinado contexto.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 32


Interpretación de los resultados –
Amenazas a la validez
Validez de la conclusión: refieren a las conclusiones estadísticas. Amenazas que
afecten la capacidad de determinar si existe una relación entre la alternativa y el
resultado, y si las conclusiones obtenidas al respecto son válidas. Ejemplos:
◦ La elección de los métodos estadísticos
◦ La elección del tamaño de la muestra

Validez interna: referidas a observar relaciones entre la alternativa y el


resultado que sean producto de la casualidad y no del resultado de la aplicación
de un factor. Esta “casualidad” es provocada por elementos desconocidos que
influyen sobre los resultados sin el conocimiento de los investigadores.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 33


Interpretación de los resultados –
Amenazas a la validez (cont.)
Validez del constructo: indica cómo una medición se relaciona con otras de
acuerdo con la teoría o hipótesis que concierne a los conceptos que se están
midiendo. Ejemplo: medir la experiencia al momento de seleccionar los sujetos
en un experimento.
◦ Cantidad de cursos aprobados (mala medida)
◦ Cantidad de años de experiencia en la industria o una combinación de ambas cosas (buena
medida)

Validez externa: refiere a la habilidad para generalizar los resultados.


◦ Se ve afectada por el diseño del experimento.
◦ Los tres riesgos principales que tiene la validez externa son:
◦ Tener los participantes equivocados como sujetos
◦ Ejecutar el experimento en un ambiente erróneo
◦ Realizar el experimento en un momento que afecte los resultados.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 34


Proceso de la Investigación Empírica -
Fases

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 35


Reporte y presentación de los resultados
Los resultados pueden ser reportados a través de:
◦ Artículos de conferencia
◦ Artículos de revistas
◦ Reportes técnicos
Deben ser reportados desde la perspectiva del lector y documentar
claramente la siguiente información:
◦ Contexto
◦ Motivación
◦ Diseño
◦ Análisis
◦ Resultados
◦ Discusión de los resultados

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 36


Reporte y presentación de los resultados
(cont)
El lector puede querer replicar los resultados del estudio, llevando a cabo un
estudio similar (o idéntico)
Para esto son necesarios los detalles de la definición, diseño, ejecución y análisis
de resultados
Lectura obligatoria: Reporting Experiments in Software Engineering

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 37


Características de un buen estudio
empírico
Claro: los objetivos de investigación, hipótesis y procedimiento de recolección de datos deben
estar claramente definidos
Descriptivo: el investigador debe proveer los detalles necesarios para que el estudio pueda ser
repetido o replicado en similares condiciones
Preciso: la precisión ayuda a generar confianza en los datos. Representa el grado de correctitud
en las medidas y la exactitud de los datos. Una alta precisión es necesaria para especificar los
atributos en detalle.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 38


Diseño Experimental: objetivos y
principios básicos
Se define el Diseño Experimental como: “El conjunto de procedimientos que se utilizan para
generar datos numéricos de un fenómeno, a fin de obtener la máxima información al mínimo
costo”.
Al ejecutar mediciones repetidas de un fenómeno, se espera que las causas circunstanciales
(aleatorias) se compensen, y sea posible hallar un valor más real del fenómeno como un
promedio (media aritmética) de las observaciones obtenidas.
La replicación es el primer principio del Diseño Experimental: “Para un fenómeno natural sobre
cuyos resultados numéricos no se tiene ninguna información previa, sólo es posible realizar
inferencias válidas efectuando réplicas u observaciones repetidas del experimento que genera
tales resultados”.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 39


Diseño Experimental: objetivos y
principios básicos
La aleatorización es el segundo principio del Diseño Experimental: “Las conclusiones que se
deducen de un conjunto de datos numéricos de un fenómeno sólo puede tener validez si estos
datos han sido obtenidos aleatoriamente”.
Se define unidad experimental como el ente sobre el que se realiza una observación.
El agrupamiento de unidades experimentales en bloques homogéneos se denomina control local
y es el tercer principio del Diseño Experimental: “Si las unidades experimentales son
heterogéneas, se ganará eficiencia en el diseño agrupándolas en bloques homogéneos y
efectuando, dentro de cada bloque, una selección aleatoria”.

INGENIERIA DE SOFTWARE EMPIRICA - CAPÍTULO 2 40

S-ar putea să vă placă și