El tema central de la presentación es que la investigación sobre áreas computacionales tiene muchas similitudes con la construcción de productos de software, de esta manera, se propone la adopción de prácticas de Ingeniería de Software para el proceso de Investigación.
2. 2
Resumen
El tema central de la presentación es que la investigación sobre áreas
computacionales tiene muchas similitudes con la construcción de
productos de software, de esta manera, se propone la adopción de
prácticas de Ingeniería de Software para el proceso de Investigación.
Aprovecho la oportunidad para señalar las megatendencias en tecnología y
su impacto sobre la investigación en diversos campos. Asimismo para
mostrar ejemplos sobre el proceso para la generación dinámica de diversos
documentos tales como artículos, presentaciones, tesis, libros, y sobre las
herramientas para un entorno basado en R.
4. Megatendencias en Tecnología
3
Compartir
experiencias
Buscar respuestas
Pertenecer a una
comunidad
BYOD
Estar conectado
Alternar entre
trabajo y no
trabajo
Accesar lo que sea
de donde sea
Usar múltiples
dispositivos
Consumir y
generar
información
Entrega
Acceso
Contenido
Com
portam
iento
5. Megatendencias en Tecnología
3
Compartir
experiencias
Buscar respuestas
Pertenecer a una
comunidad
BYOD
Estar conectado
Alternar entre
trabajo y no
trabajo
Accesar lo que sea
de donde sea
Usar múltiples
dispositivos
Consumir y
generar
información
Entrega
Acceso
Contenido
Com
portam
iento
Las investigaciones realizadas durante los últimos años han
identificado la evolución independiente de estas cuatro fuerzas:
social, móvil, la nube e información. Como resultado de la
consumerización y la ubicuidad de los dispositivos inteligentes
conectados, el comportamiento de la gente ha causado una
convergencia de estas fuerzas.
9. 7
Nuevos Paradigmas en Investigación
Teoría, experimentación, computación,
descubrimiento orientado a datos
Modelo clásico: “Query the
world” (Adquisición de datos para
una determinada hipótesis).
Nuevo modelo: “Download the world,
query the DB” (Adquisición masiva de
datos para soportar muchos hipótesis) Ciencia orientada a datos
10. 7
Nuevos Paradigmas en Investigación
Teoría, experimentación, computación,
descubrimiento orientado a datos
Modelo clásico: “Query the
world” (Adquisición de datos para
una determinada hipótesis).
Nuevo modelo: “Download the world,
query the DB” (Adquisición masiva de
datos para soportar muchos hipótesis) Ciencia orientada a datos
Ejemplos:
Astronomía: Estudios de alta
resolución y alta frecuencia
Biología: Automatización de
laboratorios, análisis de
secuencias
Oceanografía: Modelos de alta
resolución, sensores de bajo
costo
11. 8
Nuevos Paradigmas en Investigación continuación
La tecnología facilita la comunicación y
c o m p a r t i c i ó n a c e l e r a n d o e l
d e s c u b r i m i e n t o c i e n t í f i c o y
promoviendo la inteligencia colectiva.
• Las redes sociales pueden ser un medio
para compartir ideas e información.
• Están apareciendo áreas emergentes
para mejorar los procesos sociales con
tecnología para resolver problemas
difíciles utilizando las aportaciones de un
grupo.
Ciencia interconectada
12. Artículos Acerca de Ciencias Computacionales
Un artículo acerca de ciencias
computacionales en una publicación
científica no es la investigación en si,
es solamente la presentación del
estudio. El trabajo real es el entorno
completo de software, los datos
completos y el conjunto completo de
programas (código) que genera los
resultados.
9
13. La Importancia del Código Fuente
10
Scientific communication relies on evidence that cannot be entirely included in
publications, but the rise of computational science has added a new layer of
inaccessibility. Although it is now accepted that data should be made available on
request, the current regulations regarding the availability of software are inconsistent.
We argue that, with some exceptions, anything less than the release of source programs
is intolerable for results that depend on computation. The vagaries of hardware,
software and natural language will always ensure that exact reproducibility remains
uncertain, but withholding code increases the chances that efforts to reproduce results
will fail.
doi:10.1038/nature10836
doi: 10.1126/science.1218263
14. Principales Razones para no Compartir
11
Código Datos
77% Tiempo para documentar y depurar 54%
52% Contestar las preguntas de usuarios 34%
44% No recibir reconocimiento 42%
40% Posibilidad de patentes —
34% Barreras legales (derechos de autor) 41%
— Tiempo para verificar la liberación 38%
30% Posible pérdida de futuras publicaciones 35%
30% Dar ventaja a competidores 33%
20% Limitaciones de almacenamiento 29%
Survey of Machine Learning Community (Stodden, 2010)
15. Otras Razones para no Compartir
12
Aún no está listo.
N e c e s i t o o t r a
publicación.
Está muy feo. No
hemos tenido la
oportunidad de
depurarlo.
La política de la
Institución no nos
permite compartir.
No tenemos el
personal suficiente.
A d e m á s n o e s
n e c e s a r i o p a r a
entender el artículo.
La persona que lo hizo
y a n o e s t á c o n
n o s o t r o s . N o
podemos localizarlo ni
encontrar la versión.
No lo entenderías.
De hecho nadie lo
e n t i e n d e n i l o
p u e d e h a c e r
funcionar.
No hemos tenido
t i e m p o p a r a
documentarlo. Está
lleno de hacks.
Sólo funciona con
una versión muy
antigua de Matlab.
Danos oportunidad
de migrarlo.
T e n g o q u e
preguntar si te lo
p o d e m o s
compartir.
16. Principales Razones Para Compartir
13
Código Datos
91% Alentar el avance científico 81%
90% Fomentar la participación de otros 79%
86% Ser un buen miembro de la comunidad cientifica 79%
82% Establecer un estándar 76%
85% Mejorar la investigación 74%
81% Lograr que otros investigadores trabajen en el problema 79%
85% Mayor publicidad 73%
78% Retroalimentación 71%
71% Encontrar nuevos colaboradores 71%
Survey of Machine Learning Community (Stodden, 2010)
19. 16
Repetibilidad vs Reproducibilidad
Se obtienen
los mismos
resultados al
e j e c u t a r e l
mismo código
Repetibilidad
Se obtienen diferentes
resultados al ejecutar el
mismo código
Reproducibilidad
Se obtienen los mismos
resultados usando un
programa diferente
Los resultados
no pueden ser
r e p e t i d o s n i
reproducidos
22. 18
Crisis de Credibilidad - Manipulación de Resultados
Resumen del caso: 10 artículos retirados, 6 en
correcciones o parcialmente retirados. Demandas al
hospital por pacientes.
El otro pilar del método científico es la refutación.
Desafortunadamente este no es caso aislado. Para la
mayoría de los casos, no es posible verificar los
resultados y conclusiones de los artículos.
24. 20
Estructura de un Artículo
Establecer un dominio
Identificar área de investigación general / revisar
investigación previa
Establecer un nicho
Existencia de gaps / pregunta
Ocuparlo
Propósito de investigación / hallazgos /
esbozo de artículo
Introducción
¿Qué pregunta o
problema fue estudiado?
25. 20
Estructura de un Artículo
Establecer un dominio
Identificar área de investigación general / revisar
investigación previa
Establecer un nicho
Existencia de gaps / pregunta
Ocuparlo
Propósito de investigación / hallazgos /
esbozo de artículo
Método
Resultados
Introducción
¿Qué pregunta o
problema fue estudiado?
¿Cómo se abordó el problema?
¿Cuáles son los hallazgos?
¿Cómo se probó la validez de la
hipotesis?
26. 20
Estructura de un Artículo
Establecer un dominio
Identificar área de investigación general / revisar
investigación previa
Establecer un nicho
Existencia de gaps / pregunta
Ocuparlo
Propósito de investigación / hallazgos /
esbozo de artículo
Resumen de hallazgos
con respecto a las preguntas de la
investigación
Conclusión
recomendaciones
Método
Resultados
Introducción
¿Qué pregunta o
problema fue estudiado?
Discusión
¿Qué significan?
¿Cómo se abordó el problema?
¿Cuáles son los hallazgos?
¿Cómo se probó la validez de la
hipotesis?
31. 21
Anatomia de un Artículo
Este artículo se compone de 11 páginas con
• texto incluyendo 7 fórmulas y 1 algoritmo
• 12 figuras
• 6 tablas
No se puede apreciar el esfuerzo y tiempo de
la investigación y su conceptualización.
También se desconoce el entorno de
cómputo completo.
37. Generación Dinámica de Documentos
25
+
Código y Texto
Imágenes
estáticas
Producto intermedio
incluye resultados (figuras
y tablas)
Producto
final
+
Datos
38. Generación Dinámica de Documentos
25
+
Código y Texto
Imágenes
estáticas
Producto intermedio
incluye resultados (figuras
y tablas)
Producto
final
+
Datos
Entorno de Cómputo
39. Generación Dinámica de Documentos
25
+
Código y Texto
Imágenes
estáticas
Producto intermedio
incluye resultados (figuras
y tablas)
Producto
final
+
Datos
Entorno de Cómputo
Se puede extender o adaptar a otros
tipos de documentos: tesis,
presentaciones, libros o a otro
formato de salida, por ejemplo HTML.
47. Múltiples Versiones
29
L a s i t u a c i ó n s e c o m p l i c a
introduciendo más revisores:
árbitros, sinodales, colaboradores,
colegas.
¿ Q u é s u c e d e s i e n u n a
corrección / adición se borra una
sección importante, se genera un
error, o se altera el funcionamiento
de los programas?
¿Cómo se coordinan o sincronizan
los cambios si es un trabajo
c o n j u n t o e n t r e v a r i o s
colaboradores?
54. Un Documento de Mayor Complejidad
31
Si la generación completa del documento se tarda alrededor de 2
horas.
¿Qué sucede si solo tengo que modificar 2 figuras del capítulo 2 y
una tabla de la sección de conclusiones?
La solución simple es volver a generar todo el documento, pero no
es la solución óptima ya que si hay un error en el cambio hay que
esperar a que el documento esté listo para revisarlo y por otro
lado, continuamente hay que crear nuevas versiones durante el
periodo de revisión.
56. Gestor de Dependencias
32
La idea es actualizar automáticamente sólo un
conjunto de artefactos a partir de sus dependencias
(otros artefactos), cada vez que éstas cambien en lugar
de realizar la actualización completa de todos los
artefactos.
Resultado: Un ahorro considerable en tiempo para
proyectos grandes.
58. El Código no Funciona
33
Solución:
Contar con una máquina virtual local o en la
nube donde se encuentre instalado la misma
versión del sistema operativo con el ambiente de
desarrollo idéntico, por ejemplo: ambiente de R,
librerías, LaTeX, etc.
65. Otros Conceptos de Ingeniería de Software
35
‣ Planeación del proyecto
‣ Análisis, Arquitectura y Diseño
‣ Documentación y depuración de código
‣ Pruebas
‣ Funcionales
‣ Integrales
‣ Automatización
‣ Optimización de código
‣ Administración de defectos
‣ Integración continua
69. Si estás esperando alguna señal, este es el
momento para empezar a experimentar con
estos conceptos de Ingeniería de Software.
El principal beneficiado serás tú.