Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería de Software
Marcela Genero Bocco / José A. Cruz-Lemus
Grupo Alarcos
http://alarcos.esi.uclm.es
Contenidos
• Introducción
• Tipos de Estudios empíricos
• Experimentos
Conceptos generales
Proceso experimental
• Replicación
• Algunas recomendaciones
• Herramientas de Soporte
• Conclusiones
• Bibliografía y recursos útiles
2
Experimentación en Ingeniería del Software.
1
Introducción
3
Experimentación en Ingeniería del Software.
Introducción
4
Experimentación en Ingeniería del Software.
2
Introducción
Motivación
En España:
•El 30% de los artículos no tienen nada
de experimentación y solo el 10% de JISBD Total Con Prom.
los que tienen algo de experimentación Artículos Exp.
siguen una aproximación formal
(Zelkowitz, 1998) 1999 37 2 4.26 %
2000 39 6 15.38 %
•Sólo el 8% de los artículos publicados
incluyen una evaluación cuantitativa de 2001 38 4 10.53 %
al menos dos páginas (Tichy, 1993)
2002 39 8 20.51 %
•Sobre 400 artículos de investigación, el
40% de aquellos que requerían 2003 78 4 5%
validación empírica no la tenían (Tichy, 2004 52 8 15%
1995)
2005 40 2 5%
•Entre 5453 artículos científicos 2006 56 3 5%
publicados en 12 revistas y
conferencias relevantes entre 1993 y 2007 58 1 1,72%
2002, 103 artículos (1,9%) presentaban
experimentos controlados (Sjoberg et al. 2008 52 1 1,92%
2005).
2009 59 5 8,47%
5
Experimentación en Ingeniería del Software.
Introducción
Motivación
Excusa Refutación
El método científico tradicional no es Para entender el proceso de la información,
aplicable los científicos informáticos deben observar
los fenómenos y formular y probar
explicaciones. Este es el método científico
El nivel de experimentación actual es Comparando con otras ciencias, los
suficiente científicos informáticos validan un
porcentaje mínimo de sus proclamas
Los experimentos tienen un coste muy alto Pueden llevarse a cabo experimentos
significativos con presupuestos pequeños
Las demostraciones son suficientes Las demostraciones sólo ilustran un
potencial pero no demuestran nada
La experimentación ralentiza el progreso Aumentar el porcentaje de artículos con
validación significativa es una buena
forma de acelerar el progreso
Las tecnologías cambian demasiado rápido Si una cuestión se vuelve irrelevante de
forma rápida es que no estaba bien definida
6
Experimentación en Ingeniería del Software.
3
Introducción
Motivación
Contenidos
• Introducción
• Tipos de estudios empíricos
• Experimentos
Conceptos generales
Proceso experimental
• Replicación
• Algunas recomendaciones
• Herramientas de Soporte
• Conclusiones
• Bibliografía y recursos útiles
8
Experimentación en Ingeniería del Software.
4
Tipos de estudios empíricos
9
Experimentación en Ingeniería del Software.
Control de la NO NO SI
ejecución
Control de la NO SI SI
medición
Coste de la BAJO MEDIO ALTO
investigación
Facilidad de ALTO BAJO ALTO
réplica
10
Experimentación en Ingeniería del Software.
5
Contenidos
• Introducción
• Tipos de estudios empíricos
• Experimentos
Conceptos generales
Proceso experimental
• Replicación
• Algunas recomendaciones
• Herramientas de Soporte
• Conclusiones
• Bibliografía y recursos útiles
11
Experimentación en Ingeniería del Software.
Experimentos
Conceptos Generales
12
Experimentación en Ingeniería del Software.
6
Experimentos
Conceptos Generales
Factores (tratamientos)
independientes
experimento
dependiente
Diseño del
Variable
Variables
.....
.....
Proceso
13
Experimentación en Ingeniería del Software.
Experimentos
Conceptos Generales
• Tratamientos
un determinado valor para un factor
• Objetos
procesos, productos, recursos
• Sujetos
Personas que aplican los tratamientos a los objetos
• Experimento
consiste en una serie tests (trials) donde cada test es una
combinación de tratamiento-objeto-sujeto
14
Experimentación en Ingeniería del Software.
7
Experimentos
Conceptos Generales: Ejemplo
15
Experimentación en Ingeniería del Software.
Contenidos
• Introducción
• Experimentos
Conceptos generales
Proceso experimental
• Replicación
• Algunas recomendaciones
• Herramientas de Soporte
• Conclusiones
• Bibliografía y recursos útiles
16
Experimentación en Ingeniería del Software.
8
Experimentos
Proceso Experimental
Definición
Definición Operación
Operación
Estudio
Estudio
Análisis ee
Análisis Datos piloto
piloto
Interpretación
Interpretación
Presentación
Presentación Amenazas
Amenazas
yy Difusión
Difusión Conclusiones
17
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Definición
Evaluar
con el propósito de <Propósito>
(¿cuál es la intención?)
9
Experimentos
Proceso Experimental: Definición
• 1. Definición
Ejemplos de definición de objetivos:
Objeto de Enfoque de
estudio Propósito calidad Perspectiva Contexto
Producto Caracterizar Efectividad Desarrollador Sujetos
Proceso Supervisar Costo Mantenedor Objetos
Modelo Evaluar Fiabilidad Director de proyectos
Métrica Predecir Mantenibilidad Cliente
Teoría Controlar Portabilidad Usuario
Cambiar Investigador
19
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Planificación
2. Planificación
20
Experimentación en Ingeniería del Software.
10
Experimentos
Proceso Experimental: Planificación
Problemas de
Reduce costes y tiempo
jueguete vs.
¿Generalizacón?
problemas reales
21
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Planificación
2. Planificación
22
Experimentación en Ingeniería del Software.
11
Experimentos
Proceso Experimental: Planificación
Formulación de la hipótesis
Se deriva
Se deriva del
del objetivo:
objetivo: una
una oo más
más H
H00
Plantilla GQM
Plantilla GQM
Analizar métodos
Analizar métodos OO
OO yy OP
OP
Con el
Con el propósito
propósito de
de Evaluar
Evaluar con
con respecto
respecto aa su
su
productividad
productividad
Desde el
Desde el punto
punto de
de vista
vista del
del investigador
investigador
En el
En el contexto
contexto dede estudiantes
estudiantes de de grado
grado
HH00 :: Productividad
Productividad OO OO == Productividad
Productividad OP OP
((conservadora,
conservadora, no
no existe
existe efecto
efecto del tratamiento))
del tratamiento
HH11 :: Productividad
Productividad OO OO ≠≠ Productividad
Productividad OP OP
(alternativa))
(alternativa
23
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Planificación
Formulación de la hipótesis
• El hecho de corroborar las hipótesis conlleva a diferentes tipos
de riesgos
24
Experimentación en Ingeniería del Software.
12
Experimentos
Proceso Experimental: Planificación
2. Planificación
Variables Independientes
variables cuyos valores son
Planificación del experimento
cambiados para estudiar su efecto
Definición Selección
del Otras
Formulación
contexto Selección
de las
de las
hipótesis
variables
Selección
de los
sujetos
Diseño
Variables del
Dependientes
variablesexperimento
Instrumen- que queremos estudiar
Evaluación
Diseño de la
para ver el efecto de los cambios en
tación las variables independientes
validez
25
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Planificación
2. Planificación
26
Experimentación en Ingeniería del Software.
13
Experimentos
Proceso Experimental: Planificación
• ¿Y el tamaño de la muestra?
Si hay gran variabilidad en la población se necesita un
muestra de mayor tamaño
La técnica de análisis puede influenciar la elección del tamaño
de la muestra
27
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Planificación
2. Planificación
28
Experimentación en Ingeniería del Software.
14
Experimentos
Proceso Experimental: Planificación
• Preguntas Relevantes:
¿Cuántas variables independientes?
• Sólo una Æ Experimentos simples
• Más de una Æ Experimentos factoriales
Experimentos
Proceso Experimental: Planificación
Grupos aleatorios
Inter-sujetos
Grupos aleatorios con bloques
(IES)
Simples Aleatorización
(1 Variable Ind) Reequilibrado (2 niveles)
Intra-sujetos
(IAS) Cuadrado latino (3 o más niveles)
Se asignan todos los
Tratamientos por Sujeto
Factor A
Factorial
Cruzado
Completos M1 M2
Factor B Herr a1 b1 a1 b2
Factoriales (2 factores) NHerr a2 b1 a2 b2
30
Experimentación en Ingeniería del Software.
15
Experimentos
Proceso Experimental: Planificación
2. Planificación
31
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Planificación
2. Planificación
Validez de constructo ¿Hasta qué punto las medidas seleccionadas miden las
Planificación del experimento
variables que aparecen en la hipótesis?
Definición Selección
Validez de las conclusiones
del ¿Hasta qué punto las conclusiones son
Formulación
estadísticamente válidas?
contexto Selección
de las
de las
hipótesis
variables
Validez interna ¿El tratamiento causa “realmente” el efecto? Selección
de los
Validez de externa ¿Pueden generalizarse los resultados obtenidos? sujetos
Diseño del
Instrumen- experimento
Evaluación
Diseño de la tación
validez
32
Experimentación en Ingeniería del Software.
16
Experimentos
Proceso Experimental: Planificación
33
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Planificación
34
Experimentación en Ingeniería del Software.
17
Experimentos
Proceso Experimental: Operación
Operación
Diseño del
Preparación
experimento
Ejecución
Validación
Experimentos piloto: de datos
• Encontrar errores en el procedimiento experimental
• Verificar que las instrucciones son claras
• Verificar si las tareas tienen una complejidad
razonable y se pueden realizar en el tiempo previsto
• Asegurar el correcto funcionamiento de las
herramientas de recolección de datos
• Identificar otras circunstancias imprevistas Datos del
experimento
35
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Operación
Diseño del
Preparación
experimento
Ejecución
Validación
de datos
Recogida de datos:
• Manual (formularios)
• Manual asistido por herramientas
• Automática
Datos del
experimento
36
Experimentación en Ingeniería del Software.
18
Experimentos
Proceso Experimental: Análisis e Interpretación
Interpretación Cuantitativa
Datos Estadísticos
experimentales
descriptivos Reducción
del conjunto
de datos Contraste
de las
1er trim. hipótesis
2do trim.
3er trim.
4to trim.
Conclusiones
1,5
1,0
,5
0,0
-,5
-1,0
-1,5
2 3 4 5 6 7 8 9
Observed value
37
Experimentación en Ingeniería del Software.
Experimentos
Proceso Experimental: Análisis e Interpretación
Contraste de Hipótesis
Kendall
Un factor, ANOVA Kruskal-
Confirmación
más de dos WallisEstadística
Análisis
con
38
Experimentación en Ingeniería del Software.
19
Experimentos
Proceso Experimental: Presentación y Difusión
Presentación y Difusión
Conclusiones
Recopilación de Información
Contenidos
• Introducción
• Experimentos
Conceptos generales
Proceso experimental
• Replicación
• Algunas recomendaciones
• Herramientas de Soporte
• Conclusiones
• Bibliografía y recursos útiles
40
Experimentación en Ingeniería del Software.
20
Replicación
41
Experimentación en Ingeniería del Software.
Replicación
Laboratory Packages
42
Experimentación en Ingeniería del Software.
21
Algunas Recomendaciones
43
Experimentación en Ingeniería del Software.
Algunas Recomendaciones
44
Experimentación en Ingeniería del Software.
22
Algunas Recomendaciones
45
Experimentación en Ingeniería del Software.
Herramientas de Soporte
46
Experimentación en Ingeniería del Software.
23
Herramientas de Soporte
<<include>>
SuperUser Delete Survey or Experiment
<<include>>
<<include>> Register
Administrator
(from Analysi s Model)
View Reports
<<include>>
47
47
18
Experimentación en Ingeniería del Software.
Herramientas de Soporte
Task
Model
Ta sks Group
• Empirical Web-Gen Experiment
name
name
image
name
ti mer
statement
answers
solution
random complexity
1 1..n 1 1..n random 1 1..n positive mark
instructions random
order negative mark
order
order
0..n
Answer
user
answer given
date
48
Experimentación en Ingeniería del Software.
24
Herramientas de Soporte
• Empirical Web-Gen
49
Experimentación en Ingeniería del Software.
Contenidos
• Introducción
• Experimentos
Conceptos generales
Proceso experimental
• Replicación
• Algunas recomendaciones
• Herramientas de Soporte
• Conclusiones
• Bibliografía y recursos útiles
50
Experimentación en Ingeniería del Software.
25
Conclusiones
51
Experimentación en Ingeniería del Software.
Conclusiones
52
Experimentación en Ingeniería del Software.
26
Contenidos
• Introducción
• Experimentos
Conceptos generales
Proceso experimental
• Replicación
• Algunas recomendaciones
• Herramientas de Soporte
• Conclusiones
• Bibliografía y recursos útiles
53
Experimentación en Ingeniería del Software.
Bibliografía
Redes
ISERN (International Software Engineering Research Network)
http://www.iese.fhg.de/ISERN/
Revistas:
Empirical Software Engineering
http://www.kluweronline.com/issn/1382-3256
Conferencias
ESEM
ICSE
RESER Workshop (dentro del ICSE)
Etc…
54
Experimentación en Ingeniería del Software.
27
Bibliografía
Libros genéricos
55
Experimentación en Ingeniería del Software.
Bibliografía
Experimentos
• Briand, L. Morasca, S., Basili, V. Defining and Validating Measures for Object-
Based High-Level Design. IEEE TSE 25 (5) 722-743 (1999) .
• Briand, L., Labiche, Y., Di Penta, M., Yan-Bondoc, H. An Experimental
Investigation of Formality in UML-Based Development IEEE TSE 31(10)
(2005)
• Cruz-Lemus, Genero, M., Morasca, S. y Piattini, M. (2009). Assessing the
Understandability of UML Statechart Diagrams with Composite States - A
Family of Empirical Studies. Empirical Software Engineering, Vol 14, pág. 685–
719, 2009.
• Dzidek, W., Arisholm, E., Briand, L. A Realistic Empirical Evaluation of the
Costs and Benefits of UML in Software Maintenance. IEEE TSE, 34(3), 1-29
(2008).
• Genero, M., Manso, MªE., Viasggio, A., Piattini, M. and Canfora, G. (2007).
Building Measure-based Prediction Models for UML Class Diagram
Maintainability. Empirical Software Engineering. 12(5), 517-549, 2007.
• Genero, M., Poels, G. and Piattini, M. (2008). Defining and Validating Metrics
for Assessing the Understandability of Entity-Relationship Diagrams. Data and
Knowledge Engineering. 64(3), 534-557.
56
Experimentación en Ingeniería del Software.
28
Bibliografía
Experimentos
• Jedlitschka, A., Ciolkowski, M. y y Pfahl D. (2008). Reporting experiments in
Software engineering. Chapter 8, (2008). Guide to Advanced Empirical
Software Engineering. Springer.
• 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 Transactions on Software Engineering, 28(8) 721-
734.
• Reinhartz-Berger, I., Dori, D. OPM vs. UML—Experimenting with
Comprehension and Construction of Web Application Models. Empirical
Software Engineering, 10 57–79 (2005)
• Verelst, J. The Influence of the Level of Abstraction on the Evolvability of
Conceptual Models of Information Systems. Empirical Software Engineering 10
467-494 (2005).
57
Experimentación en Ingeniería del Software.
Bibliografía
Casos de estudio
58
Experimentación en Ingeniería del Software.
29
Bibliografía
Encuestas
• 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.
• 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). ACM SIGSOFT Software
Engineering Notes.
• 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.
59
Experimentación en Ingeniería del Software.
Bibliografía
Réplicas y familias de experimentos
• Basili V., Shull F. and Lanubile F. (1999) Building knowledge through families
of experiments, IEEE Transactions on Software Engineering, 25(4) (1999)
435-437.
• Brooks, A., Roper, M., Wood, M., Daly, J., Miller, J. (2008).Replication´s role
in Software Engineering. Chapter 14, (2008). Guide to Advanced Empirical
Software Engineering. Springer.
• Juristo, N., Vegas, S. Using differences among replications of software
engineering experiments to gain knowledge. ESEM 2009: 356-366
• 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. Lecture Notes on Empirical Software Engineering
(Juristo N. and Moreno A. Eds.), World Scientific, Singapore, 39-84.
• Shull, F., Jeffrey C. Carver, Sira Vegas, Natalia Juristo Juzgado: The role of
replications in Empirical Software Engineering. Empirical Software
Engineering 13(2): 211-218 (2008).
• Vegas, S., Juristo, N., Moreno, A.M., Solari, M., and Letelier, P. 2006.
Analysis of the Influence of Communication between Researchers on
Experiment Replication. ISESE 2006. 28-37.
60
Experimentación en Ingeniería del Software.
30
Bibliografía
Agregación de resultados
Bibliografía
Revisiones sistemáticas de la literatura
31
Bibliografía
Varios
• Carver, J., Jaccheri, L., Morasca, S., and Shull, F. 2003. Issues in Using
Students in Empirical Studies in Software Engineering Education.
METRICS'03, 239-249.
• García, F., Serrano, M., Cruz-Lemus, J.A., Genero, M., Calero, C. y Piattini, M.
(2008). Empirical Studies in Software Engineering Courses: Some
Pedagogical Experiences. International Journal of Engineering Education.
• Höst, M., Regnell, B., and Wohlin, C. 2000. Using Students as Subjects - a
Comparative Study of Students & Profesionals in Lead-Time Impact
Assessment. Proc. 4th Conference on Empirical Assessment & Evaluation in
Software Engineering (EASE 2000), Keele, UK, 201-214.
• 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.
• Tichy W.F., Lucowicz L., Prechelt L., Heinz E.A. (1995) Experimental
evaluation in computer science: a quantitative study. Journal of Systems and
Software, 28(1).
• Tichy, W. (1998). Should Computer Scientists Experiment More? IEEE
Computer, 31(5), 32-40.
63
Experimentación en Ingeniería del Software.
Bibliografía
Varios
• http://sequoia.cs.byu.edu/?page=reser2010§ion=resources
64
Experimentación en Ingeniería del Software.
32
Experimentación en
Ingeniería de Software
Marcela Genero Bocco / José A. Cruz-Lemus
Grupo Alarcos
http://alarcos.esi.uclm.es
33