Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia...

47
1 Universidad de Castilla-La Mancha Escuela Superior de Informática Departamento de Tecnologías y Sistemas de Información Ciudad Real - España Ingeniería del Software basada en la evidencia Marcela Genero Bocco Grupo Alarcos [email protected] 2

Transcript of Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia...

Page 1: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

1

Universidad de Castilla-La Mancha

Escuela Superior de Informática

Departamento de Tecnologías y Sistemas de Información

Ciudad Real - España

Ingeniería del Software basada en la

evidencia

Marcela Genero BoccoGrupo Alarcos

[email protected]

2

Page 2: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

2

3

Contenido

• Introducción a la ISBE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

4

“Trabajando con evidencias científicas

en lugar de con suposiciones, el

desarrollo de software se convertirá en

una verdadera disciplina de

ingeniería”

Conceptos

Introducción a la ISBE

Ingeniería del software basada

en la evidencia (ISBE)

Page 3: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

3

5

Introducción a la ISBE

Objetivo de la ISBE:

“proporcionar los medios por los que la mejor

evidencia actual de la investigación se pueda

integrar con la experiencia práctica y los valores

humanos en el proceso de la

toma de decisiones sobre el desarrollo

y mantenimiento de software”

Barbara A. Kitchenham, Tore Dybå, Magne Jørgensen:

Evidence-Based Software Engineering. ICSE 2004: 273-281

Tore Dybå, Barbara A. Kitchenham, Magne Jørgensen:

Evidence-Based Software Engineering for Practitioners. IEEE

Software 22(1): 58-65 (2005)

Objetivos

6

Introducción a la IBSE

¿Por qué es importante impartir enseñanza sobre

ISBE?

• Proporciona a los futuros profesionales el conocimiento, la

experiencia, la actitud y las habilidades que les permitan

tomar mejores decisiones.

Enseñanza de la ISBE

Page 4: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

4

7

Introducción a la ISBE

• No es posible obtener resultados válidos

universalmente

• No tienen sentido las preguntas universales

"¿Qué es mejor: programación en solitario o

programación por pares? ¿Probar al inicio o al

final?

Contextualizar la evidencia¿Qué funciona para quién, dónde, cuándo, y por qué?

Contextualización de evidencias

8

Esencial !!!! Colaboración

entre universidad e industria

IndustriaUniversidad

Introducción a la ISBE

Colaboración universidad-industria

Page 5: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

5

Some Do’s and Don’ts of Industrial Collaboration

Anna Sandberg, Lars Pareto,

Thomas Arts.

Agile Collaborative Research:

Action Principles for Industry-

Academia Collaboration.

IEEE Software 28(4): 74-83 (2011).

Introducción a la ISBE

9

Colaboración universidad-industria

10

Introducción a la ISBE

Según Sandberg et al. (2011) los factores críticos para la buena

colaboración entre industria y academia son:

• Involucrar a la dirección en la formulación del problema y la

gestión y conducción de la investigación.

• Tener acceso a los mejores empleados y competencias de

la empresa.

• Ser capaz de comunicar ideas, progreso, resultados, etc.

• Escoger temas de interés durante un considerable periodo

de tiempo.

• Abordar problemas reales de la industria.

• Alinear los resultados con los objetivos de la industria.

• Obtener resultados con un impacto real en la práctica.

• Generar nuevas ideas, conocimiento, patentes, procesos,

métodos, técnicas y publicaciones.

Colaboración universidad-industria

Page 6: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

6

11

Introducción a la ISBE

• Metodos primarios: utilizados para realizar

estudios con el objetivo de obtener evidencia

empírica sobra un tema de interés.

• Experimentos

• Estudios de casos

• Encuestas

• Métodos secundarios: permiten sintetizar la

evidencia obtenida en estudios primarios.

realizados

• Revisiones sistemáticas de la literatura (SLRs)

• Mapeos sistemáticos de la literatura (SMSs)

• Estudios terciarios

Métodos para recopilar evidencia en la IS

12

Contenido

• Introducción a la ISBE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

Page 7: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

7

Introducción a los métodos empíricos

• Los estudios empíricos permiten crear

conocimiento que puede mejorar la práctica de la

IS

Aplicar los conceptos y técnicas en la práctica

de la IS

Añadir experiencias sobre su aplicación al

"cuerpo de conocimiento" de la IS

Conceptos

Teoría, Cuerpo de

conocimiento de IS

Conceptos aplicados,

Experiencias

Práctica, Proyectos de IS

13

Objetivos de los estudios empíricos

• Construir conocimiento y comprensión sobre la

IS en la práctica

Para usar en futuros proyectos

Para comparación (benchmarking)

• Evaluar nuevas tecnologías

Por ej.: ¿Mejora una nueva técnica/método la calidad?

Comprender en qué contexto funciona mejor una

técnica

Objetivos de los estudios empíricos

14

EVIDENCIA

Introducción a los métodos empíricos

Page 8: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

8

Personas

personalidad de los desarrolladores y su

impacto en ...

Procesos

Ágiles, cascada, RUP, CMM, …

Prácticas

Programación por pares, ...

Tecnología

OO vs. Non-OO, …

Temas de los estudios empíricos

15

Introducción a los métodos empíricos

• Para probar (o refutar) teorías, mitos, creencias

populares

Por ejemplo: “Creo que el método A es mejor

que el B”

• Encontrar relaciones

Por ejemplo: Relación entre la mantenibilidad y

LoC

• Para elegir entre modelos/técnicas/herramientas:

Por ejemplo: UML y ER para el modelado de

datos

Ejemplos de uso de los estudios empíricos

16

Introducción a los métodos empíricos

Page 9: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

9

17

Contenido

• Introducción a la IBSE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

18

¿Cuándo son apropiadas?: para un análisis exploratorio temprano, se

suelen hacer en retrospectiva cuando una técnica/herramienta ha sido

utilizada durante un tiempo. Permite descubrir factores de influencia,

diferencias y similitudes, etc.

Nivel de control: bajo.

Recolección de datos: (online) cuestionarios, entrevistas.

Análisis de datos: comparar diferentes poblaciones entre los

encuestados, análisis de asociación y de tendencias, la consistencia de

las puntuaciones.

Pros: la generalización de los resultados es mas fácil (que en los

estudios de casos), aplicable en la práctica.

Cons: poco control de variables, el diseño del cuestionario es difícil

(validez, fiabilidad), la búsqueda de encuestados puede ser un reto,

necesita un gran número de encuestados, la ejecución puede tardar más

tiempo.

Encuestas

Tipos de estudios empíricos

Page 10: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

10

19

:

Encuestas

Encuesta realizada via web sobre la

adopción y el uso de UML en la industria

Tipos de estudios empíricos

20

¿Cuándo son apropiados?: el fenómeno bajo estudio no se puede

separar del contexto; queremos evaluar el cambio en una situación

típica. Son estudios observacionales, se realizan generalmente en

entornos industriales.

Nivel de control: medio

Recolección de datos: medidas de productos y de procesos,

cuestionarios, entrevistas

Análisis de datos: generalmente cualitativo, pero también puede ser

cuantitativo

Pros: aplicable en proyectos reales, ayudan a contestar preguntas del tipo

“porque”, “como”, pueden generar nuevas teorias/explicaciones

Cons: la generalización es a menudo difícil y cuestionada por los

revisores, el impacto de los factores de confusión es difícil evaluar /

aislar, el análisis de los resultados es subjetivo, por lo general es una

labor muy intensa en la recolección de datos.

Estudios de casos

Tipos de estudios empíricos

Page 11: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

11

21

Estudio de casos

Integración de XP con modelos de gestión

tradicionales (Ericsson y ABB)

Tipos de estudios empíricos

22

¿Cuándo son apropiados?: control sobre quien esta usando una

tecnología, cuándo, dónde y bajo que cirscunstancias.

Investigación de las tareas autónomas, donde se pueden obtener

resultados de inmediato. Se realizan off-line (en laboratorios)

Nivel de control: alto

Recolección de datos: medición de productos y procesos,

cuestionarios

Anáilis de datos: estadísticos descriptivos, de test de hipótesis

Pros: ayudan a establecer relaciones causales, confrimar teorías

Cons: representatividad? Es un reto planificarlos en en un entorno

real, la aplicación en el contexto industrial requiere

compromisos

Experimentos

Tipos de estudios empíricos

Page 12: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

12

23

Experimentos

¿Ayuda el uso de los diagramas UML a

realizar el mantenimiento del software

mejor y más rápido?

Tipos de estudios empíricos

24

• Control de la ejecución. Cantidad de control que el investigador

tiene sobre el estudio

• Control de la medición. Nivel en que el investigador puede

decidir sobre que medidas deben ser recolectadas y ser

incluidas o excluidas durante la ejecución del estudio (en una

encuesta sólo tenemos opiniones no atributos medibles

directamente)

• Coste de la investigación. Relativo a la necesidad de recursos.

• Facilidad de réplica. Facilidad de volver a llevar a cabo el

mismo estudio bajo las mismas condiciones pero con distinta

población

Comparación

Tipos de estudios empíricos

Page 13: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

13

25

Factor Encuesta Estudio de

caso

Experimento

Control de ejecución NO NO SI

Control de medición NO SI SI

Coste de investigación BAJO MEDIO ALTO

Facilidad de réplica ALTO BAJO ALTO

Comparación

Tipos de estudios empíricos

Combinación de métodos

Idea inical

Encuestas

Estudios de casos industrialesExperimentos

Entrevistas exploratorias

Ciclo del vida del conocimiento empírico

26

Tipos de estudios empíricos

Page 14: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

14

27

Contenido

• Introducción a la IBSE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

Un experimento es una investigación empírica que

investiga las relaciones de causa-efecto. Los

experimentos se llevan a cabo cuando el

investigador quiere el control de la situación, con

la manipulación directa, precisa y sistemática del

comportamiento del fenómeno a estudiar

Ventaja: Permiten investigar las situaciones en las

que las hipótesis son verdaderas y proporcionan el

contexto en el que se recomiendan normas,

métodos y herramientas para su uso.

Conceptos generales

28

Experimentos

Page 15: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

15

29

Orientados a personas:

Un experimento en el cual los individuos o los equipos llevan a

cabo una o más tareas de ingeniería de software para comparar

diferentes poblaciones, procesos, métodos, técnicas, lenguajes

o herramientas.

Por ejemplo se quiere comparar el desarrollo “tradicional vs.

ágil” del software

Orientados a la tecnología:

Generalmente se aplican diferentes herramientas a diferentes

objetos.

Por ejemplo al mismo programa se le aplican dos técnicas de

generación de casos de prueba diferentes.

Conceptos generales

Experimentos

Tecnología

Variable independiente

(factor-tratamiento)

Variable dependiente

(salida)

Efecto

Otras variables independientes

(controladas)

(experiencia de los

sujetos, complejidad

de los tareas y de los

objetos, etc.)

Tiempo,

costes,

calidda

Conceptos generales

30

Experimentos

Page 16: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

16

31

Contenido

• Introducción a la IBSE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

Presentación y difusión

Conclusiones

Definición Planificación

OperaciónAnálisis e

interpretcaión

Objetivo

Datos

(Wohlin et al., 2000-2012)

Diseño del exeprimento

Proceso experimental

32

Experimentos

Page 17: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

17

DEFINICIÓN.

Porqué se realiza el experimento?• Definir los objetivos del experimento

(utlilizar la plantilla GQM))

Proceso experimental

Experimentos

PLANIFICACION. ¿Cómo se debe realizar el experimento?

• Selección del contexto.

• Selección de sujetos.

• Selección de variables.

Variable independiente (factor)

Variable dependiente (salida)

Otros factores (deben ser controlados)

• Formulación de hipótesis

• Diseño

• Instrumentación (preparara objetos, directrices, tareas,

procedimiento de medición, etc.)

• Evaluación de la validez. (considerar validez internas, externa,

de constructo, de conclusiones)

Proceso experimental

Experimentos

Page 18: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

18

OPERACION

• Preparación (informar y motivar a los sujetos, preparar/chequear

material, estudio piloto, entrenar sujetos)i

• Ejecucción (llevar a cabo experimento y recolectar datos)

• Validación de datos (controlar los datos recogidos)

Proceso experimental

Experimentos

ANÁLISIS E INTERPRETACIÓN DE DATOS• Entender los datos (estadísticos descripitivos)

• Probar hipñotesis (test estadísticos)

• Interpretación de datos (Rechazar o no la hipótesis nula, explicarcomo se pueden utilizar los resultados)

Proceso experimental

Experimentos

Page 19: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

19

PRESENTACIÓN Y DIFUSIÓN

• Reportar el experimento para que externos puedan entender los

resultados y el contexto del estudio.

• Poner de manera accesible todo el material experimental.

Proceso experimental

Experimentos

38

Contenido

• Introducción a la IBSE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

Page 20: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

20

Ejemplos

Budgen, D. Burn, A.J., Brereton, P., Kitchenham, B.,

Pretorius, R. (2011). Empirical evidence about the UML:

a systematic literature review, Software Practice and

Experience, 41(4): 363-392.

• 49 estudios primarios publicados hasta finales

de 2008.

Genero, M., Fernández-Sáez, A.M., Nelson, H.J., Poels,

G., Piattini, M. (2011). A Systematic Literature Review on

the Quality of UML Models, Journal of Database

Management, 22(3): 46-70.

• 266 articulo publicados entre 1997-2009.

• 30 % incluyes algun tipo de estudio empírico (24

% experimentos, 5 % estudios de casos, 1%

encuestas).

39

Temas sobre experimentos relacionados con UML

Ana M. Fernández-Sáez, Marcela Genero, Michel R. V.

Chaudron. (2013). Empirical studies concerning the

maintenance of UML diagrams and their use in the

maintenance of code: A systematic mapping study.

Information and Software Technology 55(7): 1119-1142 .

• 38 artículos, 1997-2010.

• 63 experimentos y 3 estudios de casos

• Sólo 3 uso de UML en el manteniemiento

• 60 relacionados con la comprensión y

modificación de los propios diagramas.

40

Ejemplos

Temas sobre experimentos relacionados con UML

Page 21: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

21

Temas sobre experimentos relacionados con UML

• Impacto de variantes en la notación sobre la

comprensión y modificación

• Impacto de la la calidad de los modelos UML en la

comprensión y la modificación

• Comparación de UML y ER sobre la comprensión y

modificación

• Validación de medidas como indicadores de la

comprensión y modificación de los modelos UML

• Beneficios de usar UML en el ciclo de vida del

desarrollo de software

41

Ejemplos

Fernández-Sáez, A., Chaudron, M., Genero, M., Ramos, I.

(2013). Are forward designed or reverse-engineered UML

diagrams more helpful for code maintenance?: a controlled

experiment. EASE 2013, 60-71.

Material available at:

http://alarcos.esi.uclm.es/originUML

maintenance/

42

Ejemplos

Page 22: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

22

• Objetivo a largo pazo Investigar los beneficios

de usar Uml ene el mantenimiento.

• Objetivo del presnete estudio Investigar si los

diagramas FD o los RE son mas útiles para

mantener el código.• Diagramas FD desarrollados y mantenidos manualmente.

• Diagramas RE obtenidos automáticamente y no mantenidos.

Impacto de los resultados:

+ Diagramas FD mantener los diagramas actualizados

+ Diagramas RE no mantener los diagramas (ahorro de

tiempo)

43

Ejemplos

Motivación

Origen

(Diagramas FD -

RE)

Variable(s) independiente

(factores-tratamiento)

Variable(s) dependiente

(salida)

Efecto

Otras variables independientes

(controladas)

(experiencia)

Mantenibilidad

Efectividad

Eficiencia

44

Ejemplos

Motivación

Page 23: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

23

Utilizando la platilla GQM el objetivo es:

Analizar <OBJECT OF STUDY>

con el propósito de <PURPOSE>

con respecto a <QUALITY FOCUS>

desde el punto de vista <PERSPECTIVE>

en el contexto de <CONTEXT>

¿Que se estudia?

¿Cuál es la intención?

¿Qué efecto se

estudia?

¿Dsede el punto de

vista de quién?

¿Dónde se realizá el estudio?

45

Ejemplos

Definición

Utilizando la plantilla GQM nuetro objetivo es:

Analizar el origen de los diagramas UML

con el propósito de evaluarlos

con respecto a su beneficio o soporte hpara mantener el

código

desde el punto de vista del investigador

en el contexto de alumnos de quinto curso de la Ingenieria

Informática de la Universidad de Sevilla.

46

Ejemplos

Definición

Page 24: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

24

Selección de objetos:

Los objetos experimentales se pueden conseguir:

• Hacerlos, hechos por alumnos, encontrarlos en intermet,

pedirlos a una empress, encontrarlos en un repositorio

(ReMoDD).

Objetos seleccionados:

• Apliación de un centro deportivo (cliente-servidor, Java)

• Diagramas RE IBM Rational Software Architect

#Diag. de

clases

#clases #Diag. de

secuencia

#mensajes LoC

FD 4 16 21 2265123

RE 4 21 11 191

47

Ejemplos

Panificación

Opciones:

• estudiantes vs. profesionales

• Muestras probabilísticicas y no-probalísticas

Sujetos:

• 40 alumnos de quinto curso de Ingeniería

Informática

• Selección por conveniencia

48

Ejemplos

Panificación: Selección de sujetos

Page 25: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

25

Independiente(“factor”):

El Origen de los diagramas UML

• Tratamiento: FD (Diagramas FD) and RE (Diagramas RE)

Dependiente (“salida”, “efecto”):

Maintainabilidad: la habilidad de mantener el código.

¿Cómo medir la variable dependiente?

MEffec: # tareas correctas - # tareas realizadas / #tareas

MEffic: # tareas correct - # tareas realizadas / Tiempo

49

Ejemplos

Panificación: Selección de variables

Hipótesis Nula (rechazar) : H1,0: No existe diferencia significativa en la efectividad de los

sujetos cuando mantienen código utilizando diagramas FD o

diagramas RE.

H2,0: No existe diferencia significativa en la eficiencia de los

sujetos cuando mantienen código utilizando diagramas FD o

diagramas RE.

Hipótesis Alternativa: H1,1:H1,0

H2,1: H2,0

50

Ejemplos

Panificación: Formulación de hipótesis

Page 26: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

26

Preguntas relevantes

¿Cuántas variables independientes (factores)?

• Un factor factor Diseño simple

• Más de un factor Diseño factorial

¿Cuántos sujetos por tratamiento?

• Entre-sujetos: cada sujeto recibe un único tratamiento.

• Intra-sujetos: cada sujeto recibe todos los tratamientos.

51

Ejemplos

Panificación: Diseño

Opción 1: diseño intra-sujetos

52

Ejemplos

Panificación: Diseño

Page 27: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

27

Opción 2: diseño entre-sujetos

• Diseño seleccionado por restricciones de tiempo

• Las amenazas que puede haber por el factor experiencia se

intentaron paliar con un cuestionartio pre-experimento

53

Ejemplos

Panificación

Objeto: Sistema del centro deportivo (código + diagramas de clase y

de secuencia) correspondiente a los dos tratamientos.

Tareas:

Pre-experimento

• Cuestionario de conociemiento, Test de UML y Java

Mantenimiento

• 5 tareas de mantenimeinto Aleatorias

• 3 mantenimietno adaptativo

• 2 mantenimeinto correctivo

• Escribir tiempo de inicio y de fin

Post-experimento

• Retroalimentación sobre la percepción de los sujetos

54

Ejemplos

Panificación: Instrumentación

Page 28: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

28

Validez interna: ¿Es realmente el tratamiento el que

causa el efecto?

Validez externa: ¿Se pueden generalizar los

resultados?

Validez de constructo: ¿Refleja la intrumentación

del experimento el constructo bajo estudio?

Validez de las conclusiones: ¿Son los resultados

válidos estadísticamente?

55

Ejemplos

Panificación: Evaluación de la validez

Validez interna:

Sujetos com experiencia similar

El efecto fatia se intento paliar (duración)

Asignación aleatoria en grupos

Validez externa:

Selección de objetos y sujetos

Validez de constructo:

Selección de dominios conocidos

Diagramas con similar tamaño

Seleccionar medidas apropiadas

Take care with evaluation apprehension

Validez de las conclusiones:

Seleccionar os test estadístico acorde al diseño del experimento

Comprobar las asunciones de los test estadísticos

56

Ejemplos

Panificación: Evaluación a la validez

Page 29: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

29

Estudio Piloto

¿Porqué? Controlar el material, duración, etc.

¿Cuándo? Un mes antes de la ejecución

¿Quién? 6 estudiantes de doctorado del grupo

Alarcos de la UCLM (España)

57

Ejemplos

Operación: Instrumentación

1ª sesión Entrenamiento 2 horas de entrenaimiento el dia previo.

Esta sesión inlcuyó vatias tareas: :

• Ejercicio colaborativo.

• Cuestionario pre-experimento

• Cuestionario de conociemento, Test de Java y UML

2ª sesión Ejecución (2 horas)• Asignación de sujetos en dos grupos ubicados en la misma

sala

• Explicar el procedimeinto del experimento (aconsejar sobre el

tiempo, tareas, etc.)

• Entregar el material, Recibir el material completado

• Entregar el cuestionario post-experimento, Recibir el

cuestionario completado

58

Ejemplos

Operación: Preparación

Page 30: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

30

Origen N

MEffec MEffic

χ Median SD χ Median SD

RE 20 0.641 0.6818 0.165 0.00270 0. 00283 0.00079

FD 20 0.650 0.6818 0.148 0.00273 0. 00303 0.00072

59

Ejemplos

Análisis e interpretación de datos: Estadísticos descriptivos

• Test de Mann-Withney

No significativos

Dividiendo por tipo de

mantenimiento: No significativos

MEffec

p-valueobserved

power

Effect

size

R

Origen 0.957 0.054 0.001 NO

MEffic

p-valueobserved

power

Effect

size

R

Origen 0.534 0.051 0.0003 NO

60

Ejemplos

Análisis e interpretación de datos: Prueba de hipótesis

Page 31: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

31

61

Ejemplos

Análisis e interpretación de datos: Cuestionario post-experimento

• T-test

62

Ejemplos

Análisis e interpretación de datos: Cuestionario post-experimento

Page 32: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

32

63

Ejemplos

Análisis e interpretación de datos: Cuestionario post-experimento

• Los resultados no son concluyentes

• La hipótesis nula no se puede rechazar

• Los estadísticos descriptivos muestran una

cierta tendencia Diagramas FD

• Preferencia subjetiva para los Diagramas FD

• Más usados (diagramas de clases)

• Más fáciles de leer y de entender

• Los resultados son válidos en el contecto de

sistemas simples relacionados con dominios

bien conocidos e ingenieros de software

noveles.

• Realizamos réplicas ara obener resultados más

concluyentes (Sevilla y Bari) 64

Ejemplos

Conclusiones

Page 33: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

33

65

Contenido

• Introducción a la IBSE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

66

• “El uso de experimentos precisos y repetible es el signo de

una disciplina madura o de ingeniería”

• Es importante replicar los experimentos (corroborar/refutar

resultados):

Internas: réplicas realizadas por los investigadores que

realizaron el experimento original.

Externas: réplicas realizadas por experimentadores que no

tuvieron nada que ver con el experimento original.

• Es importante construir “paquetes de laboratorio”:

descripción del proceso experimental, decisiones tomadas,

etc.• Favorecen las réplicas externas

Para lograr réplicas externas efectivas es necesario: Comunicación efectiva entre el experimentador original y lo

experimentadores eternos.

Transmitir el conocimiento tácito

Réplicas

Page 34: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

34

67

Contenido

• Introducción a la IBSE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplo

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

68

• Objetivo Agregar la evidencia empírica de

experimentos que persiguen la misma hipótesis

para construir un cuerpo de conocimeinto sobre el

tema investigado.

• Técnicas para recopilar/agregar resultados:

Revisones sitemáticas de la literatura

Meta-análisis

Agregación de resultados

Page 35: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

35

Fernández-Sáez, A., Genero, M., Chaudron, M., Caivano, D.,

Ramos, I. (2015). Are Forward Designed or Reverse-

Engineered UML Diagrams More Helpful for Code

Maintenance?: A Family of Experiments. Submitted to

Information and Software Technology (Special section

EASE 2013). (En prensa)

RESULTADOS:

1) El rendimiento de los sujetos es mejor

cuando usan Diagramas FD

2) Los sujetos prefieren los diagramas FD

3) Los sujetos consideran que los diagramas

FD son más fáciles de entender.

Seguir un

enfoque

basado en

modelos

69

Agregación de resultados

Ejemplo

70

Contenido

• Introducción a la IBSE

• Introducción a los métodos empíricos

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplo

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

Page 36: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

36

71

Recomendaciones

• Kitchenham et al. (2002) proponen una serie de

recomendaciones para la investigación empírica en

la Ingeniería de Software.

• Jedlitschka et al. (2008) proponen

recomendaciones sobre ¿Cómo reportar

experimentos?

¿Qué hacer?

Planificación

Seleccionar objetos de tamaño y complejidad similar

Asignar las mismas tareas a cada tratamiento

Tratar de aliviar tanto como sea posible las amenzas a

la validez

Preparar pre-cuestionarios para recopilar la experiencia

de los sujetos

Preparar post-cuestionarios para recopilar el feedback

de los sujetos

Preparar el material en el lenguaje nativo de los sujetos

Recomendaciones

72

Page 37: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

37

Operación

Realizar un estudio piloto para chequear el material

Hacer una estimación precisa del tiempo de duración

Estimular a los sujetos para que participen

Capacitar a los sujetos en el tema bajo estudio

Antes de la ejecución del experimento realizar un ejemplo

con los sujetos

Formar grupos balanceados por la experiencia

Explicar claramente el procedimiento a seguir para la

ejecución del experimento

¿Qué hacer?

Recomendaciones

73

Análisis de datos e interpretación

Tener suficiente conocimiento estadístico o contactar a

un exeprto

Chequear las suposiciones de los test estadísticos

Contextualizar los resultados

¿Qué hacer?

Recomendaciones

74

Page 38: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

38

Presentación y difusión

Seguir las directrices disponibles para reportar experimentos

Reportar las amenzas que no se pudieron evitar

Reportar la justificación de cada decisión tomada a lo largo

del proceso experimental

Preparar un “paquete de laboratorio” (material experimental,

datos recolectados, etc.) y ponerlo disponible en la web.

Realizar réplicas

¿Qué hacer?

Recomendaciones

75

Definición

No trate de validar “demasiadas cosas” en un único

experimento

Planificación

No desvele la hipótesis que se está investigando a

los sujetos antes de la realización del experimento

No desvele cual es el tratamiento que usted esta

tratando de probar que es mejor

¿Qué NO hacer?

Recomendaciones

76

Page 39: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

39

77

Contenidos

• Introducción

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Conclusiones

• Literatura relevante

Conclusiones

• La Ingeniería del Software basada en la Evidencia promueve la

toma de decisiones en la Ingeniería del Softawre basándonos en

la evidencia.

• La Ingeniería del Software Empírica proporciona los mecanismos

para recopilar la evidencia empírica estudios empíricos

• Los estudios empíricos permiten evaluar/validar

metodos/técnicas en la práctica:

El feedback sobre las técnicas/métodos lleva a mejorar

• Existen diferentes tipos de estudios empíricos (estrategias)

Dependiendo del objetivo y el contexto

Con diferentes Pros y Cons

• Es importante una buena formación en estudios empíricos,

estadística, etc.

• Existe gran cantidad de literatura

• El uso de estudios empíricos en la Ingeniería del Softwrae esta

en crecimiento78

Page 40: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

40

79

Contenido

• Introducción

• Tipos de estudios empíricos

• Experimentos

Conceptos generales

Proceso experimental

• Ejemplos

• Réplicas

• Agregación de resultados

• Recomendaciones

• Conclusiones

• Literatura relevante

80

Red

ISERN (International Software Engineering Research

Network) http://isern.iese.de/Portal/

Conferencias

EASE (Evaluation and Assessment in Software

Engineering)

ESEM (Empirical Software Engineering and

Measurement)

ICSE (International Conference on Software Engineering)

CISE ( workshop en ICSE )

Etc…

Literatura relevante

Red y conferencias

Page 41: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

41

Liteartura relevante

Revistas donde se publican estudios empíricos

Revistas

81

82

Literatura relevante

Libros

Page 42: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

42

Literatura relevante

• Wohlin, C., Runeson, P., Höst. M., Ohlson, M., Regnell, B.,

Wesslén, A. (2012). Experimentation in Software

Engineering: An Introduction. Springer.

• Juristo, N., Moreno, A. (2001). Basics of Software

Engineering Experimentation. Kluwer Academic Publishers.

• Shull, Forrest; Singer, Janice; Sjøberg, Dag I.K. (Eds.)

(2008). Guide to Advanced Empirical Software Engineering.

Springer.

Libros

83

• Per Runeson, Martin Host, Austen

Rainer, Bjorn Regnell. (2012). Case

Study Research in Software

Engineering: Guidelines and

Examples. 1st ed., Wiley.

• Yin, R. K. (2008). Case Study

Research, 4th ed., SAGE

Publications.

Lietaratura relevante

Libros

84

Page 43: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

43

85

Fink, Arlene. The Survey Handbook,

Sage Publications, (2003).

Fink, Arlene. How to report on surveys,

Sage Publications, 2nd ed. (2003).

• Kitchenham, B., Pfleeger, S. (2008).

Personal opinion survey. Chapter 3,

Guide to Advanced Empirical Software

Engineering. Springer.

Literatura relevante

Libros

• Kitchenham B., Pfleeger S., Pickard L., Jones P., Hoaglin D., El-

Emam K. and Rosenberg J. (2002). Preliminary Guidelines for

Empirical Research in Software Engineering. IEEE TSE, 28(8) 721-

734.

• Jedlitschka, A., Ciolkowski, M. and Pfahl D. (2008). Reporting

experiments in Software Engineering. Chapter 8, Guide to Advanced

Empirical Software Engineering. Springer.

• Carver, J.. (2010). Towards Reporting Guidelines for Experimental

Replications: A Proposal. 1st International Workshop on Replication in

Empirical Software Engineering Research (RESER) [Held during ICSE

2010]. Cape Town, South Africa.

• Runeson, P., Höst, M. Guidelines for conducting and reporting case

study research in software engineering. Empirical Software

Engineering (2009) 14:131–164.

• Kitchenham, B. Pfleeger, S. Principles of survey research. ACM

SIGSOFT Software Engineering Notes. Part 1 26(6) : 16-18 (2001),

Part 2 27(1): 18-20 (2002), Part 3 27(2): 20-24 (2002), Part 4 27(3):

20-23 (2002), Part 5 27(5): 17-20 (2002), Part 6 28(2): 24-27 (2003)..

Literatura relevante

Directrices

86

Page 44: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

44

87

• Dzidek, W. J., Arisholm, E., Briand, L. C. (2008). A realistic empirical

evaluation of the costs and benefits of UML in software maintenance.

IEEE Transactions on Software Engineering, 34(3), 407–432.

• Arisholm, E., Briand, L. C., Hove, S. E., & Labiche, Y. (2006). The

impact of UML documentation on software maintenance: An

experimental evaluation. IEEE Transactions on Software Engineering,

32(6), 365–381.

• Jeffrey C. Carver, Nachi Nagappan, Alan Page. The Impact of

Educational Background on the Effectiveness of Requirements

Inspections: An Empirical Study. IEEE Trans. Software Eng. 34(6): 800-

812 (2008)

• Erik Arisholm, Hans Gallis, Tore Dybå, Dag I. K. Sjøberg. Evaluating

Pair Programming with Respect to System Complexity and Programmer

Expertise. IEEE Trans. Software Eng. 33(2): 65-86 (2007)

• Lionel C. Briand, Yvan Labiche, Massimiliano Di Penta, Han (Daphne)

Yan-Bondoc. An Experimental Investigation of Formality in UML-Based

Development. IEEE Trans. Software Eng. 31(10): 833-849 (2005)

Litertaura relevante

Ejemplos de experimentos

88

• Lionel C. Briand, Christian Bunse, John W. Daly. A Controlled

Experiment for Evaluating Quality Guidelines on the Maintainability of

Object-Oriented Designs. IEEE Trans. Software Eng. 27(6): 513-530

(2001)

• Iris Reinhartz-Berger, Dov Dori. OPM vs. UML - Experimenting with

Comprehension and Construction of Web Application Models. Empirical

Software Engineering 10(1): 57-80 (2005)

• Silvia Teresita Acuña, Marta Gómez, Natalia Juristo Juzgado. How do

personality, team processes and task characteristics relate to job

satisfaction and software quality? Information & Software Technology

51(3): 627-639 (2009)

• Scaniello, G., Gravino, C., Genero, M., Cruz-Lemus, J.A., Tortora, G.

The Impact of UML Models Produced in the Requirements Analysis

Process on Source Code Comprehensibility and Modifiability:Results

from a Family of Four Experiments. ACM TOSEM (2013).

Litertaura relevante

Ejemplos de experimentos

Page 45: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

45

89

• Mas experimentos en:

Sjoberg, D., Hannay, J., Hansen, O., Kampenes., V.,

Karahasanovic., A., Liborg, N., Rekdal, A. (2005). A Survey

of Controlled Experiments in Software Engineering. IEEE

TSE 31(9), 2005.

» 103 artículos que describían 113

experimentos controlados, 1993 -

2002.

Litertaura relevante

Ejemplos de experimentos

90

• Damian, D., Chisan, J., Pal, Y. Requirements Engineering and

Downstream Software Development: Findings from a Case Study.

Empirical Software Engineering, 10, 255–283, 2005

• Karlstrom, D., Runeson, P. Integrating agile software development

into stage-gate managed product development. Empirical Software

Engeeniering. (2006) 11: 203–225.

• Z. Li, N. H. Madhavji, S. S. Murtaza, M. Gittens, A. V. Miranskyy, D.

Godwin, and E. Cialini. Characteristics of multiple-component

defects and architectural hotspots: a large system case study.

Empirical Software Engineering, 16(5):667–702, 2011.

• Segal, J. When Software Engineers Met Research Scientists: A

Case Study. Empirical Software Engineering, 10, 517–536, 2005.

• Morisio, M. Romano, D., Stamelos, I. Quality, Productivity, and

Learning in Framework-Based Development: An Exploratory Case

Study. IEEE TSE, 28(9), (2002), 876-888.

• A. Rainer, The longitudinal, chronological case study research

strategy: A definition and an example from IBM Hursley Park,

Information and Software Technology, Volume 53, Issue 7, July

2011, Pages 730-746

Literatura relevante

Ejemplos de estudios de casos

Page 46: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

46

91

• Grossman, M., Aronson, J. E., & McCarthy, R. V. (2005).

Does UML make the grade? Insights from the software

development community. Information and Software

Technology 47(6) 383-397. Newton, MA, USA.

• M. Jørgensen, K. Moløkken-Østvold, How large are

software cost overruns? A review of the 1994 CHAOS

report, Information and Software Technology, 48(4):297-

301, 2006,

• Lange, C. F. J., Chaudron, M. R. V.,Muskens, J. (2006). In

practice: UML software architecture and design description.

IEEE Software 23(2) 40-46.

Literatura relevante

Ejemplos de encuestas

• Basili V., Shull F. and Lanubile F. (1999). Building knowledge

through families of experiments, IEEE TSE, 25(4) 435-437.

• Brooks, A., Roper, M., Wood, M., Daly, J., Miller, J. (2008).

Replication´s role in Software Engineering. Chapter 14, Guide

to Advanced Empirical Software Engineering. Springer.

• Shull F., Carver J., Travassos G., Maldonado J., Conradi R.

and Basili V. (2003). Replicated Studies: Building a Body of

Knowledge about Software Reading Techniques. LNCS (Juristo

N. and Moreno A. Eds.), World Scientific, Singapore, 39-84.

• Shull, F., Carver, J., Vegas, S., Juristo, N. (2008). The role of

replications in Empirical Software Engineering. Empirical

Software Engineering 13(2), 211-218.

Literatura relevante

Réplicas

92

Page 47: Ingeniería del Software basada en la evidencia · Ingeniería del software basada en la evidencia (ISBE) 3 5 Introducción a la ISBE Objetivo de la ISBE: “proporcionar los medios

47

Universidad de Castilla-La Mancha

Escuela Superior de Informática

Departamento de Tecnologías y Sistemas de Información

Ciudad Real - España

Ingeniería del Software basada en la

evidencia

Marcela Genero BoccoGrupo Alarcos

[email protected]