SlideShare una empresa de Scribd logo
1 de 124
Descargar para leer sin conexión
FACULTAD DE INGENIERÍA
PLATAFORMA G-LEARNING DE APOYO A LA PEDAGOGÍA
Proyecto de Titulación para Optar al Título de
Ingeniero Civil Informático
Rodrigo Riquelme Espinosa
SANTIAGO DE CHILE
DICIEMBRE 2014
FACULTAD DE INGENIERÍA
PLATAFORMA G-LEARNING DE APOYO A LA PEDAGOGÍA
Proyecto de Titulación para Optar al Título de
Ingeniero Civil Informático
Alumno : Rodrigo Riquelme Espinosa
RUT : 13.272.164-5
Profesor Guía : Carlos Fuentealba Canario
SANTIAGO DE CHILE
DICIEMBRE 2014
DEDICATORIA
A Elena.
Aunque aún no puedas leer esto, desde que llegaste eres mi motivación e
inspiración principal para pensar en el juego y en la educación como temas
importantes para el presente y el futuro.
Eres un regalo para nuestras vidas y tienes el poder para lograr lo que quieras en
la tuya.
AGRADECIMIENTOS
A mi mujer Karol por su paciencia, apoyo y empuje que ha sido crucial para llevar
adelante mi desarrollo personal y profesional en instancias como ésta, y por ser la
mujer de mi vida.
A mi madre Victoria, cuya dedicación y educación ha sido fundamental para crecer
como persona y ser un aporte para los míos y para la sociedad.
A mi hermano Luis Felipe, por aceptar mis desafíos y terminar derrotándome en mis
propios juegos, mostrándome posibilidades que no había podido ver antes, lo que
me ayudó a potenciarlas para mejorar el valor del juego.
A mi profesor guía Carlos Fuentealba por su profesionalismo en brindar las
directrices y por cumplir un rol clave para la calidad de este trabajo.
i
ÍNDICE
ÍNDICE DE FIGURAS ........................................................................................... vii
ÍNDICE DE PANTALLAS....................................................................................... xi
ÍNDICE DE TABLAS............................................................................................. xii
RESUMEN .............................................................................................................. 1
ABSTRACT............................................................................................................. 2
I. INTRODUCCIÓN ............................................................................................. 3
Justificación........................................................................................................ 4
El juego como Herramienta de Aprendizaje................................................ 4
Empresa............................................................................................................. 5
Gamelena................................................................................................... 5
II. ANÁLISIS ........................................................................................................ 6
Situación Actual de la Educación en Chile.......................................................... 6
Indicadores Internacionales ........................................................................ 6
Indicadores Nacionales............................................................................. 11
Participación de Padres y Apoderados ..................................................... 12
Modelo de Negocios......................................................................................... 13
Objetivos Generales y Específicos............................................................ 13
Objetivo General............................................................................................. 13
Objetivos Específicos...................................................................................... 13
ii
Situación a Alcanzar................................................................................. 14
Para los Alumnos............................................................................................ 14
Para los Profesores ........................................................................................ 14
Para los Padres y Apoderados........................................................................ 15
Para la Sociedad ............................................................................................ 15
Canvas del Modelo de Negocios .............................................................. 16
Segmentos de Clientes................................................................................... 16
Propuesta de valor.......................................................................................... 16
Canales .......................................................................................................... 16
Relaciones con Clientes.................................................................................. 17
Fuentes de Ingreso......................................................................................... 17
Recursos Clave .............................................................................................. 17
Actividades Clave ........................................................................................... 18
Socios Clave................................................................................................... 18
Estructura de Costos ...................................................................................... 18
Marco Teórico .................................................................................................. 20
Estudio de la Historia................................................................................ 20
Juegos Didácticos..................................................................................... 20
Sistemas Basados En Reglas................................................................... 22
Algoritmo Rete.......................................................................................... 23
Implementación De Rete .......................................................................... 24
iii
Drools............................................................................................................. 26
Node.js ..................................................................................................... 32
NPM ............................................................................................................... 33
Nools.............................................................................................................. 33
Express .......................................................................................................... 34
Gulp................................................................................................................ 35
Socket.io......................................................................................................... 35
Git............................................................................................................. 36
Mongo DB................................................................................................. 36
Tecnologías Del Lado Del Navegador ...................................................... 37
HTML 5 - Web Sockets................................................................................... 37
CSS 3............................................................................................................. 37
Tangerine ................................................................................................. 38
Composer....................................................................................................... 38
Zend Framework............................................................................................. 39
Dojo Toolkit..................................................................................................... 39
MySQL ........................................................................................................... 40
Cloud Engines .......................................................................................... 40
Digital Ocean.................................................................................................. 41
Docker............................................................................................................ 42
Metodología de Desarrollo................................................................................ 43
iv
III. INGENIERÍA DE REQUERIMIENTOS ....................................................... 45
Requerimientos Funcionales Juego.................................................................. 45
Requerimientos Funcionales Back Office ......................................................... 46
Requerimientos No Funcionales juego ............................................................. 47
Requerimientos No Funcionales BackOffice..................................................... 48
IV. INGENIERÍA DE DISEÑO .......................................................................... 49
Modelo del Dominio.......................................................................................... 49
Casos de Uso y Actividades............................................................................. 50
Vista General de Casos de Uso................................................................ 50
Detalle de Casos de Uso .......................................................................... 51
Iniciar Sesión Juego........................................................................................ 51
Crear Nuevo Juego......................................................................................... 54
Sincronizar Jugadores .................................................................................... 56
Administrar Juego........................................................................................... 58
Guardar y Cargar Juego ................................................................................. 67
Iniciar Sesión Back Office ............................................................................... 70
Administrar Módulos y Acciones ..................................................................... 71
Administrar Perfiles......................................................................................... 75
Administrar Grupos......................................................................................... 78
Administrar Usuarios....................................................................................... 80
Administrar Preguntas..................................................................................... 82
v
Administrar Cartas y Reglas............................................................................ 85
Despliegue ....................................................................................................... 87
V. IMPLEMENTACIÓN....................................................................................... 88
Plan de Implementación y Puesta en Marcha................................................... 88
Lista de Actividades para la Implementación ............................................ 90
Definición de Objetivos Educacionales y Organizacionales ............................. 90
Definición de Objetivos Curriculares................................................................ 90
Logística......................................................................................................... 90
Instalación ...................................................................................................... 92
Capacitación................................................................................................... 92
Soporte y Monitoreo........................................................................................ 92
Evaluación y Repetición del Ciclo.................................................................... 93
Plan de Gestión del Cambio y Capacitaciones ................................................. 94
Actividades ............................................................................................... 94
Política de Respaldo......................................................................................... 95
Estructura de Costos e Ingresos....................................................................... 96
Estructura de Costos ................................................................................ 96
Planificación de Ventas al Primer Año. ..................................................... 97
Estrategia de Financiamiento.................................................................... 97
VI. INGENIERÍA DE QA .................................................................................. 98
Plan de Pruebas............................................................................................... 98
vi
Pruebas Unitarias ..................................................................................... 98
Pruebas de Integración Continua............................................................ 102
Pruebas de Carga y Estrés..................................................................... 104
VII. CONCLUSIONES..................................................................................... 105
vii
ÍNDICE DE FIGURAS
Ilustración 1 - Isotipo Gamelena.............................................................................. 5
Ilustración 2 - Promedios prueba PISA 2012 - La Tercera ...................................... 7
Ilustración 3 - Resultados 4° básicos 2012 en Historia, Geografía y Ciencias
Sociales - MINEDUC............................................................................................. 11
Ilustración 4 - Niveles de incentivo a la lectura en el hogar - MINEDUC............... 12
Ilustración 5 - Diagrama del modelo de negocios – fuente propia......................... 14
Ilustración 6- Canvas del modelo de negocios - fuente propia.............................. 19
Ilustración 7 - Sistema basado en reglas – quazoo.com ....................................... 23
Ilustración 8 - Sistema basado en el algoritmo Rete - Red Hat............................. 24
Ilustración 9 - Nodos Rete - Red Hat..................................................................... 25
Ilustración 10 – Nodos Tipo Objeto para JBoss Drools - Red Hat......................... 25
Ilustración 11 - Nodos Alfa - Red Hat.................................................................... 26
Ilustración 12 - Logotipo JBoss Drools - Red Hat.................................................. 26
Ilustración 13 - Nodo Join - Red Hat ..................................................................... 28
Ilustración 14 - Logotipo Node.js - nodejs.org ....................................................... 32
Ilustración 15 - Arquitectura de Node JS - zenika.com.......................................... 32
Ilustración 16 - Logotipo NPM - npmjs.org ............................................................ 33
Ilustración 17 - Logotipo C2FO - c2fo.com............................................................ 33
Ilustración 18 - Logotipo Express - expressjs.org.................................................. 34
viii
Ilustración 19 - Logotipo Gulp - gulpjs.com ........................................................... 35
Ilustración 20 - Socket.io + Nodejs – lightstreamer.com........................................ 35
Ilustración 21 - Isotipo Git - git-scm.com ............................................................... 36
Ilustración 22 - Logotipo Mongo DB - mongodb.org.............................................. 36
Ilustración 23 - Logotipo HTML5 – W3C................................................................ 37
Ilustración 24 - Logotipo CSS3 - W3C................................................................... 37
Ilustración 25 - Isotipo Tangerine – fuente propia ................................................. 38
Ilustración 26 - Logotipo Composer - getcomposer.org......................................... 38
Ilustración 27 - Logotipo Zend Framework - Zend Technologies........................... 39
Ilustración 28 - Logotipo Dojo Toolkit - The Dojo Foundation................................ 39
Ilustración 29 - Logotipo MySQL - Oracle Corporation.......................................... 40
Ilustración 30 - Proveedores de cloud services - Amazon, Red Hat, Heroku,
Google................................................................................................................... 40
Ilustración 31 - Logotipo Digital Ocean - digitalocean.com.................................... 41
Ilustración 32 - Isotipo Docker - docker.com ......................................................... 42
Ilustración 33 - Ciclo iterativo Lean – bravent.net.................................................. 44
Ilustración 34 - Diagrama del modelo de dominio ................................................. 49
Ilustración 35 – Diagrama general de casos de uso.............................................. 50
Ilustración 36 - Diagrama de casos de uso "iniciar sesión juego" ......................... 52
Ilustración 37 - Diagrama de actividades CU01 "iniciar sesión" ............................ 52
ix
Ilustración 38 - Diagrama de actividades CU02 "cerrar sesión" ............................ 53
Ilustración 39 - Diagrama de actividades CU03 "reiniciar contraseña".................. 53
Ilustración 40 - Diagrama de casos de uso “crear juego” ...................................... 54
Ilustración 41 - Diagrama de actividades CU04 "validar sesión"........................... 55
Ilustración 42 - Diagrama de actividades CU05 "crear nuevo juego" .................... 55
Ilustración 43 - Diagrama de actividades CU06 "invitar a alumnos"...................... 56
Ilustración 44 - Diagrama de casos de uso "sincronizar jugadores"...................... 57
Ilustración 45 - Diagrama de actividades CU07 "sincronizar jugadores” ............... 58
Ilustración 46 - Diagrama casos de uso "administrar juego" ................................. 62
Ilustración 47 - Diagrama de actividades CU09 "mover personajes" .................... 63
Ilustración 48 - Diagrama de actividades CU10 "usar cartas" ............................... 64
Ilustración 49 - Diagrama de actividades CU11 “atacar fuerte enemigo” .............. 65
Ilustración 50 - Diagrama de actividades CU12 "defender fuerte"......................... 66
Ilustración 51 - Diagrama de casos de uso "guardar y cargar juego".................... 68
Ilustración 52 - Diagrama de actividades CU13 "guardar juego"........................... 68
Ilustración 53 - Diagrama de actividades CU14 "cargar juego" ............................. 69
Ilustración 54 - Diagrama de casos de uso "iniciar sesión back office" ................. 71
Ilustración 55 - Diagrama de casos de uso "administrar módulos y acciones"...... 72
Ilustración 56 - Diagrama de actividades CU18 "administrar módulos"................. 73
x
Ilustración 57 - Diagrama de actividades CU19 "administrar acciones" ................ 74
Ilustración 58 - Diagrama de casos de uso "administrar perfiles".......................... 76
Ilustración 59 - Diagrama de actividades CU21 "administrar perfiles"................... 77
Ilustración 60 - Diagrama de casos de uso "administrar grupos" .......................... 78
Ilustración 61 - Diagrama de actividades CU20 "administrar grupos" ................... 79
Ilustración 62 - Diagrama de casos de uso "administrar usuarios de back office". 81
Ilustración 63 - Diagrama de casos de uso “administrar alumnos”........................ 81
Ilustración 64 - Diagrama de actividades CU25 “administrar usuarios”................ 82
Ilustración 65 - Diagrama de casos de uso “administrar preguntas” ..................... 83
Ilustración 66 - Diagrama de actividades CU26 "administrar preguntas" .............. 84
Ilustración 67 - Diagrama de casos de uso "administrar cartas y reglas".............. 85
Ilustración 68 - Diagrama de actividades CU27 "administrar cartas y reglas" ....... 86
Ilustración 69 - Diagrama de deployment.............................................................. 87
Ilustración 70 - Ciclo de implementación – fuente propia ...................................... 88
Ilustración 71 - Interfaz de administración de Droplets - Digital Ocean................. 95
Ilustración 72 - Logotipo Jenkins - jenkins.ci.org................................................. 102
Ilustración 73 – Tabla de resultados de pruebas en JMeter - Digital Ocean ....... 104
xi
ÍNDICE DE PANTALLAS
Pantalla 1 - Iniciar sesión juego............................................................................. 51
Pantalla 2 - Pantalla principal del juego................................................................. 58
Pantalla 3 - Listar cartas........................................................................................ 59
Pantalla 4 - Usar cartas......................................................................................... 60
Pantalla 5 - Contestar preguntas........................................................................... 61
Pantalla 6 - Guardar juego .................................................................................... 67
Pantalla 7 - Iniciar sesión back office .................................................................... 70
Pantalla 8 - Administrar módulos........................................................................... 71
Pantalla 9 - Administrar perfiles............................................................................. 75
Pantalla 10 - Administrar usuarios......................................................................... 80
Pantalla 11 - Administrar preguntas ...................................................................... 83
xii
ÍNDICE DE TABLAS
Tabla 1 - Promedios en resolución de problemas PISA 2012 - OCDE.................. 10
Tabla 2 - Ejemplo de regla Rete escrita en Drools - Red Hat................................ 29
Tabla 3 - Ejemplo de reglas Rete escritas en Nools - C2FO................................. 34
Tabla 4 - Requerimientos funcionales juego - fuente propia ................................. 45
Tabla 5 - Requerimientos funcionales back office - fuente propia......................... 46
Tabla 6 - Requerimientos no funcionales juego - fuente propia ............................ 47
Tabla 7 - Requerimientos no funcionales back office - fuente propia.................... 48
Tabla 8 - Actividades de implementación.............................................................. 89
Tabla 9 - Actividades de gestión del cambio – fuente propia ................................ 94
Tabla 10 - Estructura de costos 3 primeros años .................................................. 96
Tabla 11 - Resumen de costos 3 primeros años ................................................... 96
Tabla 12 - Ventas mercado nacional..................................................................... 97
Tabla 13 - Estrategia de financiamiento ................................................................ 97
Tabla 14 - Archivo de configuración test unitarios PHP Unit – fuente propia ........ 98
Tabla 15 – Implementación Caso de Prueba para Zend Framework PHP Unit -
fuente propia ......................................................................................................... 99
Tabla 16 - Implementación Caso de Prueba con PHP Unit Selenium - fuente propia
............................................................................................................................ 100
Tabla 17 - Ejemplo de caso de pruebas Mocha - unitjs.com............................... 101
xiii
Tabla 18 – Buildfile Ant para integración con Jenkins -
http://johnhamelink.com/testing-nodejs-with-jenkins.html.................................... 103
1
RESUMEN
El Proyecto Plataforma G-Learning de Apoyo a la Pedagogía aborda el problema
educacional relacionado con el abismo tecnológico que existe entre los formatos de
la enseñanza tradicional y las motivaciones de los estudiantes a través de una
combinación específica de estudio y entretención para satisfacer las demandas
actuales de los estudiantes, profesores y apoderados a través del juego didáctico.
Esta Plataforma G-Learning es implementada con el juego Weichan el cual es una
recreación del hito de la Historia de Chile llamado “Guerra de Arauco”, cuya temática
es abordada en los niveles NB3 y NB41
dentro del programa escolar del Ministerio
de Educación.
Para cumplir la misión didáctica, la plataforma usa una base de conocimientos
creada por docentes y expertos, los cuales son un elemento clave en la entrega de
valor pedagógico, estos actores se ven beneficiados al usar la herramienta para
potenciar su propia labor docente.
La Plataforma G-Learning es un emprendimiento concebido por el autor de este
proyecto, el cual va de la mano con la creación de la empresa Start-Up Gamelena,
la cual distribuye Weichan como un servicio (Software as Service).
1
Cursos 5° y 6° de educación general básica.
2
ABSTRACT
The project G-Learning Platform to Support Education is focused in the
educational problem related to the technological gap between the formats of
traditional education and the motivations of students through a specific combination
of study and entertainment to meet current demands of students, teachers and
parents through educational games.
This G-Learning Platform will be implemented with the game Weichan which is a
recreation of the landmark in the history of Chile called “Arauco War”, whose
contents are passed in NB3 and NB4 levels2
according to the program school of the
Ministry of Education of Chile, so this game is aimed at teaching that school
segment.
To fulfill this educational mission, the platform uses a knowledge base created by
teachers and experts, which are a key actors in delivery of educational value, these
actors are favored when using the tool to enhance their own teaching.
This G-Learning Platform is an enterprise conceived by the author of this project,
which goes hand in hand with the creation of the Business Start-Up called Gamelena
which will distribute Weichan as a service (Software as Service).
2
Courses 5° and 6° of basic chilean educational levels.
3
I. INTRODUCCIÓN
Al año 2014, los estudiantes de 3eros básicos a 4tos medios de Chile
(aproximadamente 2.000.000 de estudiantes) reflejan un marcado desinterés en el
estudio y poco entendimiento de la Historia de Chile e Historia Universal, esto se
refleja en los bajos resultados de la prueba SIMCE y PSU.
Los métodos actuales de enseñanza de la Historia privilegian los datos o
Habilidades Memorísticas de los Alumnos (fechas, nombres, lugares) en desmedro
de Habilidades de Aplicación (caracterización, protagonismo, realización, juegos,
ensayos, etc.).
Hoy en día el uso de las tecnologías de información abarcan una parte cada vez
mayor del quehacer diario, estas se han transformado en herramientas de gran
alcance para múltiples usos, ganando rápidamente aceptación y familiaridad sobre
todo en niños y jóvenes.
Por ello se hace importante que en la enseñanza escolar los docentes se dediquen
a explorar y conocer las posibilidades que ofrecen las herramientas tecnológicas y
de esta forma poder crear espacios de aprendizajes dinámicos, interesantes y de
valor educativo, de forma de sintonizar con los canales de comunicación que
realmente usan los estudiantes.
Dentro de este contexto se propone el desarrollo de una plataforma de juego
didáctico, específicamente para el ramo de Historia y Geografía de Chile, el cual
abarcará el tema de la Guerra de Arauco, involucrando en esta plataforma a
profesores y alumnos.
Esta solución abarca el desarrollo de una plataforma genérica basada en la
configuración de reglas y hechos que conforman un juego, además de la base de
conocimientos necesaria para implementar una plataforma pedagógica, dicha
plataforma la llamaremos Plataforma G-Learning.
4
Justificación
El juego como Herramienta de Aprendizaje
A pesar de que hoy en día los videojuegos en sus múltiples plataformas están
focalizados casi por completo en ofrecer diversión, existe un gran potencial en el
juego como herramienta pedagógica.
Los videojuegos bien enfocados son una herramienta útil para fomentar la
curiosidad y estimular la creatividad, entregar un canal de comunicación para los
actores del proceso educativo y entregar mensajes didácticos.
Este potencial es suficiente para expandir el mercado del videojuego desde el nicho
de la entretención hasta el nicho de la educación.
Este enfoque es llamado G-Learning, el cual puede considerarse una evolución del
E-Learning. Este es un método de enseñanza basado en el Juego Didáctico
asociado a aprendizaje significativo (conocimiento perdurable, no cortoplacista) y
pensamiento crítico (aplicación de acuerdo a lo aprendido en procesos didácticos).
La educación o el aprendizaje ya no se limitan a un espacio-tiempo determinado y
definido3
.
En el caso de estudiantes de 15 años de edad de países de la OCDE, más de un
90% asiste a una escuela donde tiene acceso a un ordenador, pero menos del 5%
usa el ordenador en el aula durante más de una hora a la semana. Por otra parte,
más del 75% de los docentes utiliza casi diariamente el ordenador para su trabajo,
por no hablar de los usos privados, pero apenas se sirve de él en el aula.4
3
(UNESCO, 2005)
4
(UNESCO, 2012)
5
Empresa
Gamelena.
Ilustración 1 - Isotipo Gamelena
 Misión: Estimular la curiosidad, potenciar la creatividad, generar motivación
para el aprendizaje y brindar entretenimiento a través del juego didáctico.
 Visión: Contribuir a la formación integral de todos los niños del país.
 Valores Estratégicos: Diversión, Creatividad, Educación, Sociabilidad,
Compromiso, Responsabilidad.
 Responsable: Rodrigo Riquelme
 E-Mail: rodrigo.riquelme.e@gmail.com
Gamelena es un Proyecto que empezó a conceptualizarse el 2013 a partir de los
ramos de Innovación Tecnológica e Innovación y Emprendimiento en la Facultad de
Ingeniería de la Universidad Mayor.
La motivación de este proyecto es brindar entretención de forma sana, a través de
juegos sencillos enfocados en jugadores casuales que fomenten la socialización, la
educación y el desarrollo de habilidades transversales.
En Gamelena creemos que las cosas excepcionales se logran con compromiso y
pasión. Nos divierte lo que hacemos y esa diversión la transmitimos a nuestros
clientes.
6
II. ANÁLISIS
Situación Actual de la Educación en Chile
Indicadores Internacionales
Existe una gran diferencia entre Chile y los países más desarrollados pertenecientes
a la OCDE5
, como puede verse en el siguiente ranking de la prueba PISA6
que fue
tomada a cerca de 510.000 estudiantes en 65 países el año 2012 para las áreas de
Matemática, Ciencia y Lenguaje.
En esa oportunidad, Chile obtuvo 423 puntos, mientras que los países de la OCDE
promediaron 71 más.
La prueba PISA, además, reveló que la puntuación de los chilenos está 190 puntos
por debajo de Shanghai, que obtuvo el mejor desempeño, con 613 puntos.
En Lectura, los estudiantes chilenos obtuvieron 441 puntos, ubicándose en el lugar
47° de los 65 países participantes. Acá también se observa una importante distancia
respecto de los países de la OCDE, que promedian 496 puntos, 55 más que Chile.
Considerando las tres pruebas aplicadas, sólo el 0,2% de los escolares chilenos
tuvo un rendimiento destacado, es decir, que se ubicaron en los niveles 5 y 6 de
desempeño. Mientras que el 97,8% no tuvo puntajes altos en ninguna de las
evaluaciones7
.
5
Organización para la Cooperación y el Desarrollo Económicos. Organismo de cooperación
internacional, cuyo objetivo es coordinar sus políticas económicas y sociales.
6
Programme for International Student Assesment, prueba entregada por la OCDE que se realiza
en varios países para determinar la valoración internacional de los alumnos.
7
(BBC, 2013)
7
Ilustración 2 - Promedios prueba PISA 2012 - La Tercera
8
En Abril del 2014 se dieron a conocer los resultados de la segunda parte de la
prueba internacional PISA, “Solución Creativa de Problemas”, aplicada en 2012,
cuando por primera vez Chile rinde el test en esta área.
Según consigna el informe, “entre los países de la OCDE, Chile es el país de más
bajo rendimiento, con un puntaje promedio de 448 puntos. Esto significa que la
brecha entre el país más alto y el más bajo rendimiento de la OCDE es de 113
puntos de calificación - muy por encima de la desviación estándar”8
.
Además, el informe señala que “alrededor del 90% de los estudiantes de Corea se
encuentran por encima de la puntuación media de Chile y sólo el 10% de los
estudiantes chilenos se ubica por encima de la puntuación media de Corea”.
Según el documento, quienes lideran los resultados son los estudiantes de Singapur
y Corea del Sur quienes obtuvieron los puntajes más altos resolviendo problemas,
con evaluaciones que superan los 560 puntos, ubicándose en los niveles máximos
de la escala de evaluación (5 y 6). Asimismo, Japón, Macao-China, Hong Kong-
China, Shanghai-China y China Taipei figuraron entre los de mejor rendimiento.
8
(PISA, 2012)
9
Desempeño en resolución de problemas
Desempeño
en
resolución
de
problemas,
comparado
con
estudiantes
de todo el
mundo con
desempeño
similar en
matemáticas,
lectura y
ciencias
Desempeño en resolución
de problemas,
por proceso
Desempeño en
resolución de
problemas, por
naturaleza de la
situación del problema
Puntaje
medio
en
PISA
2012
Porcentaje
de alumnos
Con bajo
rendimiento
(Bajo Nivel
2)
Porcentaje
de
alumnos
destacados
(Nivel 5 o
6)
Diferencia
por sexo
(niños -
niñas)
Porcentaje de
solución de
tareas medido
en la
adquisición de
conocimientos
Porcentaje de
solución de
tareas medido
en la
utilización de
conocimientos
Porcentaje
de
solución
en ítems
referentes
a
problemas
en
situaciones
estáticas
Porcentaje
de
solución
en ítems
referentes
a
problemas
en
situaciones
dinámicas
Puntaje
Medio
% %
Puntos de
diferencia
Puntos de
diferencia
Porcentaje
correcto
Porcentaje
correcto
Porcentaje
correcto
Porcentaje
correcto
Promedio OCDE 500 21,4 11,4 7 -7 45,5 46,4 47,1 43,8
Singapur 562 8,0 29,3 9 2 62,0 55,4 59,8 57,5
Corea 561 6,9 27,6 13 14 62,8 54,5 58,9 57,7
Japón 552 7,1 22,3 19 11 59,1 56,3 58,7 55,9
Macao-China 540 7,5 16,6 10 8 58,3 51,3 57,0 51,7
Hong Kong-China 540 10,4 19,3 13 -16 57,7 51,1 56,1 52,2
Shanghai-China 536 10,6 18,3 25 -51 56,9 49,8 56,7 50,3
Taipei-China 534 11,6 18,3 12 -9 56,9 50,1 56,3 50,1
Canadá 526 14,7 17,5 5 0 52,6 52,1 52,7 50,5
Australia 523 15,5 16,7 2 7 52,3 51,5 52,8 49,9
Finlandia 523 14,3 15,0 -6 -8 50,2 51,0 52,1 47,7
Inglaterra (Reino Unido) 517 16,4 14,3 6 8 49,6 49,1 49,5 47,9
Estonia 515 15,1 11,8 5 -15 46,8 49,5 49,7 45,6
Francia 511 16,5 12,0 5 5 49,6 49,4 50,3 47,6
Países Bajos 511 18,5 13,6 5 -16 48,2 49,7 50,4 46,5
Italia 510 16,4 10,8 18 10 49,5 48,0 49,5 46,8
República Checa 509 18,4 11,9 8 1 45,0 46,9 46,2 44,4
Alemania 509 19,2 12,8 7 -12 47,5 49,5 49,4 46,3
Estados Unidos 508 18,2 11,6 3 10 46,5 47,1 46,6 45,9
Bélgica 508 20,8 14,4 8 -10 47,0 47,5 48,3 45,4
Austria 506 18,4 10,9 12 -5 45,7 47,4 48,3 43,0
Noruega 503 21,3 13,1 -3 1 47,7 48,1 49,4 44,5
Irlanda 498 20,3 9,4 5 -18 44,6 45,5 44,4 44,6
Dinamarca 497 20,4 8,7 10 -11 44,2 48,1 47,9 42,3
Portugal 494 20,6 7,4 16 -3 41,6 45,7 44,0 42,0
Suecia 491 23,5 8,8 -4 -1 45,2 44,6 47,7 41,6
Federación Rusa 489 22,1 7,3 8 -4 40,4 43,8 43,8 39,7
República Eslovaca 483 26,1 7,8 22 -5 40,5 43,2 44,2 38,8
Polonia 481 25,7 6,9 0 -44 41,3 43,7 44,1 39,7
España 477 28,5 7,8 2 -20 40,0 42,3 42,3 39,8
Eslovenia 476 28,5 6,6 -4 -34 37,8 42,3 42,9 36,7
Serbia 473 28,5 4,7 15 11 37,7 40,7 40,3 36,8
Croacia 466 32,3 4,7 15 -22 35,2 40,5 39,3 35,6
Hungría 459 35,0 5,6 3 -34 35,2 37,6 38,2 33,9
Turquía 454 35,8 2,2 15 -14 32,8 36,0 35,8 32,7
Israel 454 38,9 8,8 6 -28 38,7 37,0 39,7 35,6
Chile 448 38,3 2,1 13 1 30,9 35,2 34,9 31,8
10
Chipre 445 40,4 3,6 -9 -12 33,6 34,8 37,0 31,4
Brasil 428 47,3 1,8 22 7 28,0 32,0 29,8 29,1
Malasia 422 50,5 0,9 8 -14 29,1 29,3 30,1 27,4
Emiratos Árabes Unidos 411 54,8 2,5 -26 -43 28,4 29,0 29,9 27,1
Montenegro 407 56,8 0,8 -6 -24 25,6 30,0 30,3 25,1
Uruguay 403 57,9 1,2 11 -27 24,8 27,9 27,5 24,8
Bulgaria 402 56,7 1,6 -17 -54 23,7 26,7 28,4 22,3
Colombia 399 61,5 1,2 31 -7 21,8 27,7 26,3 23,7
Tabla 1 - Promedios en resolución de problemas PISA 2012 - OCDE
11
Indicadores Nacionales
En Historia y Geografía y Ciencias Sociales, un 27,6% de los estudiantes de 4°
básico alcanza un Nivel de aprendizaje adecuado y, por lo tanto, logran los
aprendizajes descritos en el currículo para este nivel. Por otro lado, el 36,6% de los
estudiantes alcanza los aprendizajes del Nivel de Aprendizaje elemental mientras
que el 35,9% se encuentra en el nivel de aprendizaje insuficiente.
La siguiente tabla muestra la distribución nacional de resultados 4° básicos 2012
según Niveles de Aprendizaje en Historia, Geografía y Ciencias Sociales y su
variación con la medición del año 20109
.
Ilustración 3 - Resultados 4° básicos 2012 en Historia, Geografía y Ciencias Sociales - MINEDUC
9
(MINEDUC, 2013)
12
Participación de Padres y Apoderados
A continuación una figura que nos demuestra el nivel de compromiso de padres con
sus hijos en términos de incentivo de lectura.
Ilustración 4 - Niveles de incentivo a la lectura en el hogar - MINEDUC
Los padres y apoderados que se encuentran en un nivel de incentivo bajo, declaran
realizar con muy poca frecuencia estas prácticas o solo una de ellas de manera
frecuente10
.
Para pasar de un nivel de incentivo bajo a medio resulta necesario leer cuentos o
historias con el estudiante, acompañarlo mientras lee y conversar de sus lecturas,
al respecto puede ser de utilidad participar en otras instancias relacionadas con los
contenidos de sus lecturas como el juego con contenido pedagógico.
10
(MINEDUC, 2013)
13
Modelo de Negocios
Objetivos Generales y Específicos
Objetivo General
“Proyectar una mejora de un 10% de los promedios de notas en Historia y
Geografía, para los alumnos de 5° y 6° Básico que participen en el programa
educacional, a partir del 2015”
Objetivos Específicos
 Involucrar a los RRHH necesarios para crear una base de
conocimientos con valor pedagógico.
 Diseñar e implementar un prototipo tecnológico de juego didáctico de
Historia.
 Planificar la ejecución de una marcha blanca en por lo menos un
colegio municipal y/o particular.
14
Situación a Alcanzar
Ilustración 5 - Diagrama del modelo de negocios – fuente propia
Para los Alumnos
Satisfacer la entretención, el estudio y entendimiento de la Historia de Chile en un
único servicio. “Educar a través de la entretención”.
Para los Profesores
Brindar una herramienta que permita mejorar la enseñanza de la Historia de Chile
de una forma didáctica y cercana a la realidad de aprendizaje de los alumnos (el
juego).
15
Para los Padres y Apoderados
Entregar una instancia de participación de los padres en el proceso educacional de
sus hijos a través del juego.
Para la Sociedad
Propiciar la formación de personas con ganas de aprender, más cultas, más
integradas a la sociedad, con mejor comprensión de su entorno, más tolerantes, no
discriminadoras y con mejor capacidad de toma de decisiones.
16
Canvas del Modelo de Negocios
El Modelo Canvas es una herramienta que describe un modelo de negocios
dividiéndolo en 9 módulos básicos que cubren las áreas: cliente, oferta
infraestructura y visibilidad económica, sirve de apoyo a la generación de un
proyecto de una estrategia de negocios11
.
Segmentos de Clientes
Los clientes son el centro de cualquier modelo de negocios, los segmentos de
clientes pertenecen a grupos diferentes si están dispuestos a pagar por diferentes
aspectos de la oferta.
 Colegios: Es el segmento principal, el modelo de negocios está enfocado en
satisfacer sus necesidades a través de la propuesta de valor.
 Jugadores Casuales: Les interesa la entretención, si bien el modelo de
negocio no está enfocado en este segmento, se considera su existencia para
acciones futuras.
Propuesta de valor
Se crea valor para un segmento de mercado mediante una combinación específica
de elementos adecuados a sus necesidades.
 Entretener Educando: Entregar las herramientas para satisfacer necesidades
educacionales y entretener a través de un servicio novedoso, cómodo y útil.
Canales
Los canales de comunicación, distribución y venta establecen el contacto entre la
empresa y los clientes.
11
(Osterwalder, 2013)
17
 Weichan.cl: Los servicios se entregan en su totalidad en el sitio web, apoyado
por correo electrónico para notificar a los clientes y entregar soporte
 Entrevistas: Con profesores, directores, sostenedores de colegios.
Relaciones con Clientes
La relación con los clientes está basada en la captación y fidelización.
 Weichan.cl: Se usa el sitio web y el correo electrónico de la plataforma para
dar a conocer novedades y ofertas.
 Redes Sociales: Representan un medio de comunicación masiva de bajo
costo y de gran alcance.
Fuentes de Ingreso
Se refiere al flujo de caja que genera una empresa en los diferentes segmentos del
mercado.
 Software como Servicio: Los colegios, pagando una cuota, pueden configurar
la plataforma según sus necesidades de cobertura de contenidos y segmentos de
jugadores.
 Publicidad: Proveedores de publicidad como Google AdSense pagan una
comisión por el tráfico generado por sus banners mediante una comisión por clic en
sus banners publicitarios.
Recursos Clave
Son los activos más importantes para que el modelo de negocios funcione.
 Recursos Humanos: Ingenieros de Investigación y Desarrollo, Community
Managers, Relacionadores Públicos.
 Recursos Intelectuales: Código fuente, algoritmos, propiedad intelectual.
18
Actividades Clave
Corresponde a las acciones más importantes que debe realizar la empresa para
que el modelo de negocios funcione.
 Plataforma G-Learning: Creación y mantención de la plataforma de juegos y
generación de conocimientos de valor pedagógico.
Socios Clave
Esto se refiere a la red de proveedores y socios que contribuyen al funcionamiento
del modelo de negocio.
 Colegios: Contribuyen a la marcha blanca y en el levantamiento de base de
conocimientos.
 Digital Ocean: Provee la infraestructura Cloud que permite levantar la
plataforma.
Estructura de Costos
Describe los costes que implica la puesta en marcha el modelo de negocio.
 Cloud Services: Costo de suscripción mensual a Digital Ocean.
 Sueldos: Costo de horas hombre para las actividades de investigación,
desarrollo, marketing y relaciones públicas.
19
Ilustración 6- Canvas del modelo de negocios - fuente propia
20
Marco Teórico
Estudio de la Historia
El estudio de Historia trata de organizar el pasado y, por lo tanto, su estudio sirve
para fortalecer otras ramas del conocimiento; es útil para la literatura, para la
filosofía, para el conocimiento del progreso científico, para la música, etc. De hecho,
hay muchas disciplinas que no son posibles de comprender sin conocer algo de su
historia. Por otra parte el estudio de la Historia al estar íntimamente ligado a la
lectura, hace inevitable el desarrollo del lenguaje y de la comprensión de lectura.
En las sociedades contemporáneas la Historia tiene un papel importante. Vivimos
en el seno de sociedades que utilizan la Historia para legitimar acciones políticas,
culturales y sociales.12
La Historia se puede considerar como la memoria colectiva de la humanidad.
Sin memoria individual, una persona pierde su identidad, y no sabría cómo actuar
frente a los demás. La memoria colectiva es similar, aunque su pérdida no paralice
de inmediato la actividad privada cotidiana nos priva de una de las referencias más
importantes para guiar las acciones y relaciones con nuestro entorno.
Juegos Didácticos
El juego didáctico es una estrategia que se puede utilizar en cualquier nivel o
modalidad. El juego que posee un objetivo educativo, se estructura como un juego
reglado que incluye momentos de acción pre-reflexiva y de simbolización o
apropiación abstracta-lógica de lo vivido para el logro de objetivos de enseñanza
curriculares, cuyo objetivo último es la apropiación por parte del jugador, de los
contenidos fomentando el desarrollo de la creatividad. El uso de esta estrategia
12
(Prats, y otros, 1998)
21
persigue una cantidad de objetivos que están dirigidos hacia la ejercitación de
habilidades en áreas determinadas.13
Es de importancia conocer las características que debe tener un juego para que sea
didáctico y manejar su clasificación para saber cuál utilizar y cuál sería el más
adecuado para un determinado grupo de educandos. Una vez definida la naturaleza
del juego y sus elementos es donde surgen las preguntas de cómo elaborar el juego,
con qué objetivo crearlo, cuáles son los pasos para realizarlo y cuáles son los
materiales más adecuados para su realización.
Las estrategias deben contribuir a motivar a los niños y niñas para que sientan la
necesidad de aprender. En este sentido debe servir para despertar por sí mismas
la curiosidad y el interés de los alumnos, pero a la vez hay que evitar que sea una
ocasión para que el alumno con dificultades se sienta rechazado, comparado
indebidamente con otros o herido en su autoestima personal.
Las reglas del juego constituyen un elemento organizativo del mismo. Estas reglas
son las que van a determinar qué y cómo hacer las cosas, y además dan la pauta
de cómo cumplir las actividades planteadas.
Una vez establecidos estos objetivos es necesario conocer sus características para
realizarlo de una manera práctica, sin olvidar que debe contemplar lo siguiente14
:
 Intención didáctica.
 Objetivo didáctico.
 Reglas, limitaciones y condiciones.
13
(Chacón, 2008)
14
(Chacón, 2008)
22
 Un número de jugadores.
 Una edad específica.
 Diversión.
 Tensión.
 Trabajo en equipo.
 Competición.
Sistemas Basados En Reglas
Una plataforma genérica de G-Learning debe servir como herramienta de
configuración de reglas y hechos, ya que todos los juegos necesitan reglas y
hechos para su funcionamiento, sean físicos o virtuales.
Los sistemas basados en reglas trabajan mediante la aplicación de reglas,
comparación de resultados (match), resolución de conflictos (conflict
resolution) y aplicación de las nuevas reglas (act) basadas en la situación
modificada.
Existen algoritmos e implementaciones especializadas para la configuración de
reglas, uno de los métodos más aceptados es el algoritmo Rete.
23
Ilustración 7 - Sistema basado en reglas – quazoo.com
Algoritmo Rete
Fue inventado por el Dr. Charles Forgy y documentado en su tesis de doctorado en
1978-79 para la Universidad Carnegie Mellon en Pittsburg, Pennsylvania. Una
versión simplificada del documento fue publicado en 1982. La palabra Rete proviene
de "red" en latín15
.
Este algoritmo es un método para comparar un conjunto de patrones o reglas con
un conjunto de objetos y así determinar todos los posibles emparejamientos, esto
reduce sensiblemente el tiempo para calcular las reglas que pueden ser activadas,
evitando iteraciones sobre la memoria de producción.
Para ello genera un grafo que representa el conjunto de reglas que es usado para
determinar si los antecedentes de estas reglas se verifican.
15
(Wikipedia, 2014)
24
Ilustración 8 - Sistema basado en el algoritmo Rete - Red Hat
Implementación De Rete
El algoritmo se puede dividir en 2 partes: compilación de reglas y tiempo de
ejecución.
La compilación de reglas se describe cómo las reglas en la memoria productiva se
configuran para generar una red de discriminación eficiente. Es una red de
discriminación que se usa para filtrar datos.
La idea es filtrar los datos de medida que se propagan a través de la red. En la parte
superior de la red los nodos tendrán muchas correspondencias y a medida que
bajemos de la red habrá menos correspondencias. La parte inferior de la red son
los nodos terminales.
25
En su tesis, el Dr. Forgy describió 4 nodos básicos: raíz, entrada-1, entrada-2 y
terminales16
.
Ilustración 9 - Nodos Rete - Red Hat
El nodo raíz es donde todos los objetos entran en la red. A partir de ahí, se pasa
inmediatamente a un Nodo Tipo Objeto. El propósito de los Nodo Tipo Objeto es
asegurarse de que el motor no trabaje más de lo necesario.
Ilustración 10 – Nodos Tipo Objeto para JBoss Drools - Red Hat
16
(Red Hat, 2014)
26
Los Nodos Tipo Objeto pueden propagarse a Los Nodos Alfa, Nodos
Adaptadores de Entrada Izquierda y Nodos Beta.
Los Nodos Alfa se utilizan para evaluar las condiciones literales. Por ejemplo,
Account.name == "Mr trout" es una condición literal.
Cuando hay múltiples condiciones literales para un solo tipo de objeto. Significa que
si una aplicación hace preguntas acerca de un objeto Account, primero debe
satisfacer la primera condición literal antes de que pueda continuar con el
siguiente Nodo Alfa.
A continuación se muestran las combinaciones Nodos Alfa para Cheese (name ==
"cheddar, strength =="strong ").
Ilustración 11 - Nodos Alfa - Red Hat
Drools
Drools es un sistema de gestión de reglas de
negocio (BRMS, por la sigla en inglés de business
rule management system) con un motor de reglas
basado en inferencia de encadenamiento hacia
adelante (forward chaining), más correctamente
conocido como sistema de reglas de producción,
Ilustración 12 - Logotipo JBoss Drools -
Red Hat
27
usando una implementación avanzada del algoritmo Rete, está desarrollado para el
servidor de aplicaciones Red Hat JBoss, las reglas se implementan en lenguaje
Java y Mvel17
.
Drools extiende Rete al optimizar la propagación del Nodo Tipo Objeto a un Nodo
Alfa utilizando arreglos (Hashes). Cada vez que un Nodo Alfa se añade a un Nodo
Tipo Objeto se añade el valor literal como una clave para un arreglo con el Nodo
Alfa como valor18
.
Cuando una nueva instancia entra como Nodo Tipo Objeto, en lugar de propagar
a cada Nodo Alfa, se puede en recuperar el Nodo Alfa correcto directamente desde
el arreglo – evitando tener que controlar flujos innecesarios.
Hay dos tipos de nodos de dos entradas: Nodos Join y Nodos Not - ambos son
tipos de Nodos Beta. Los Nodos Beta son usados para comparar 2 objetos, y sus
campos, el uno al otro.
La entrada de la izquierda se llama Memoria Beta y recuerda todas las tuplas
entrantes.
La entrada de la derecha se llama Memoria Alfa y recuerda todos los objetos
entrantes.
17
Lenguaje de expresión de tipo dinámico/estático, incrustable, para la Plataforma Java
18
(Red Hat, 2014)
28
Ilustración 13 - Nodo Join - Red Hat
Para habilitar el primer objeto, en el caso “Cheese”, para entrar en la red se utiliza
un Nodo Adaptador de Entrada Izquierda - esto toma un objeto como una entrada
y se propaga a una única tupla de objetos.
Los Nodos Terminales se usan para indicar que una única regla ha encontrado
todas sus condiciones - en este punto podemos decir la regla tiene una
correspondencia completa. Una regla con condiciones 'or' puede tener múltiples
nodos terminales.
Drools también realiza intercambio de nodos. Muchas reglas repiten los mismos
patrones, compartir nodos permite colapsar esos patrones para que no tengan que
ser re-evaluadas para cada caso individual. Las dos reglas siguientes comparten el
mismo patrón de la primera, pero no la última.
29
La siguiente figura es una implementación en código Drools de patrones Rete.
En la ilustración 11 se muestra la representación gráfica del código Drools de la
Tabla 2, la red Rete muestra el Nodo Alfa como compartido, pero no los Nodos
Beta. Cada Nodo Beta tiene su propio Nodo Terminal. El segundo patrón hubiera
sido el mismo si también hubiese sido compartido.
rule
when
Cheese( $chedddar : name == "cheddar" )
$person : Person( favouriteCheese == $cheddar )
then
System.out.println( $person.getName() + " likes cheddar" );
end
rule
when
Cheese( $chedddar : name == "cheddar" )
$person : Person( favouriteCheese != $cheddar )
then
System.out.println( $person.getName() + " does not like cheddar" );
end
Tabla 2 - Ejemplo de regla Rete escrita en Drools - Red Hat
30
Ilustración 11 - Nodos Rete compartidos - Red Hat
31
El siguiente diagrama ilustra una topografía básica Rete, y muestra las asociaciones
entre diferentes tipos de nodos y recuerdos.
Ilustración 12 – Esquema de sistema Rete - Wikipedia
El diagrama proporciona una vista lógica de Rete. Las implementaciones pueden
ser diferentes en detalles. En particular, el diagrama muestra entradas “dummy”
ofreciendo activaciones a la derecha a la cabeza de las ramas de los nodos beta.
32
Node.js
Es un conjunto de herramientas Open Source para el desarrollo de aplicaciones del
lado del servidor basado en el motor V8 el cual
es conocido por ser el motor Javascript19
de
Google Chrome.
Su meta es permitir construir aplicaciones
altamente escalables y escribir código que
maneje decenas de miles de conexiones simultáneas en una sólo una máquina
física.
En lenguajes como Java y PHP, cada conexión genera un nuevo hilo que
potencialmente viene acompañado de 2 MB de memoria. En un sistema que tiene
8 GB de RAM, esto da un número máximo teórico de conexiones concurrentes de
cerca de 4.000 usuarios. Node.js en lugar de generar un nuevo hilo de Sistema
Operativo para cada conexión, dispara una ejecución de evento dentro del proceso
del motor de Node.js.
Ilustración 15 - Arquitectura de Node JS - zenika.com
19
Lenguaje de programación que se usa principalmente en los navegadores web (client side).
Ilustración 14 - Logotipo Node.js - nodejs.org
33
NPM
Node Packaged Modules o NPM es el gestor de paquetes
oficial de Node.js.
NPM se ejecuta a través de la línea de comandos y gestiona
las dependencias de una aplicación. También permite a los
usuarios instalar aplicaciones Node.js que están disponibles
en el registro de NPM.
NPM está escrito completamente en JavaScript y fue desarrollado por Isaac Z.
Schlueter, con la inspiración de proyectos similares para PHP (PEAR) y Perl (CPAN)
Nools
Nools es una implementación del
algoritmo Rete escrito completamente en
Javascript, se instala como módulo de
Node JS a través de NPM.
Nools está fuertemente inspirado en
Drools.
Fue desarrollo por C2FO, una compañía de software financiero, para permitirles
reflejar los eventos y cambios de estado de los mercados de forma dinámica.
Ilustración 16 - Logotipo
NPM - npmjs.org
Ilustración 17 - Logotipo C2FO - c2fo.com
34
Al utilizar Nools se define un flujo que actúa como contenedor de reglas que luego
se pueden utilizar para obtener una sesión
Tabla 3 - Ejemplo de reglas Rete escritas en Nools - C2FO
Express
Es un framework liviano que proporciona pequeñas,
pero robustas herramientas para servidores HTTP
basadas en Node.js. Soporta 14 motores de plantilla a
través de Consolidate.js. Se instala por NPM.
define Message {
text : '',
constructor : function(message){
this.text = message;
}
}
//find any message that starts with hello
rule Hello {
when {
m : Message m.text =~ /^hello(s*world)?$/;
}
then {
modify(m, function(){this.text += " goodbye";});
}
}
//find all messages then end in goodbye
rule Goodbye {
when {
m : Message m.text =~ /.*goodbye$/;
}
then {
console.log(m.text);
}
}
Ilustración 18 - Logotipo Express -
expressjs.org
35
Gulp
Es un sistema de construcción, que se puede utilizar para automatizar
tareas comunes en el desarrollo de un sitio web, tales como deployment
y tests automatizados. Está construida sobre Node.js y escrito en
JavaScript.
Socket.io
Socket.io es una librería que permite manejar eventos en tiempo real mediante una
conexión TCP en JavaScript, permite una comunicación bidireccional cliente-
servidor mediante una API de manejo de Web Sockets, se puede usar en el cliente
y en el servidor, vía Node.js. Se instala por NPM.
Ilustración 20 - Socket.io + Nodejs – lightstreamer.com
Ilustración 19 - Logotipo
Gulp - gulpjs.com
36
Git
Git es un sistema de gestión de código fuente y control de revisiones con un énfasis
en la velocidad, integridad de datos, y soporte para flujos de
trabajo distribuidas, no lineales. Git fue inicialmente
diseñado y desarrollado por Linus Torvalds para el desarrollo
del kernel de Linux en 2005, y se ha convertido en el sistema
de control de versiones más ampliamente adoptado para el
desarrollo de software.
Git es un Sistema no centralizado, por lo que no existe el
concepto de repositorio principal, cada uno de los clientes de
un proyecto versionado con Git, puede a la vez ser servidor.
Mongo DB
Es un sistema de base de
datos NoSQL20
orientado a
documentos, en vez de
guardar los datos en tablas
como se hace en las base de
datos relacionales,
MongoDB guarda
estructuras de datos en documentos tipo JSON21
con un esquema dinámico
(MongoDB llama ese formato BSON22
), haciendo que la integración de los datos
en ciertas aplicaciones sea más fácil y rápida.
20
Bases de datos no relacionales, con énfasis en la velocidad y escalabilidad.
21
Javascript Object Notation, formato ligero para el intercambio de datos.
22
Binary JSON.
Ilustración 21 - Isotipo Git -
git-scm.com
Ilustración 22 - Logotipo Mongo DB - mongodb.org
37
Tecnologías Del Lado Del Navegador
HTML 5 - Web Sockets
Web Sockets es una tecnología que proporciona un canal
de comunicación bidireccional y full-duplex sobre un único
socket TCP23
. Está diseñada para ser implementada en
navegadores y servidores web, pero puede utilizarse por
cualquier aplicación cliente/servidor. La API de Web
Sockets está siendo normalizada por la W3C24
, y el
protocolo Web Socket, a su vez, está siendo normalizado
por el IETF25
.
CSS 3
Es un lenguaje usado para definir la presentación de un
documento estructurado escrito en HTML, CSS 3 a diferencia
de sus predecesores, no está limitada a una representación en
2 dimensiones de un documento web, ya que además permite
representar escenarios tridimensionales mediante los atributos
transform y transition los cuales soportan 3 coordenadas (x,
y, z) para el manejo de 3 dimensiones.
23
Transmission Control Protocol, uno de los protocolos fundamentales en Internet.
24
World Wide Web, comunidad internacional donde sus organizaciones miembro y el público en
general trabajan conjuntamente para desarrollar estándares Web.
25
Internet Enginnering Task Force, organización internacional abierta de normalización de la
ingeniería de Internet, actuando en áreas como transporte, encaminamiento, seguridad.
Ilustración 23 - Logotipo
HTML5 – W3C
Ilustración 24 - Logotipo
CSS3 - W3C
38
Tangerine
Tangerine es un Framework de alto nivel cuyo objetivo es
automatizar la creación de Back Office a través la definición de
sus módulos vía archivos XML.
Tiene herramientas automatizadas para levantar un back-office
con módulos y perfilamiento de usuarios, está basado en Zend
Framework PHP.
A través de Zend_DB, soporta casi todos los motores de bases
de datos relacionales de clase mundial como MS SQL Server, Oracle, MySQL y
Postgres.
Usa Dojo Toolkit, un framework Javascript, para el layout y creación de widgets
del lado del cliente.
Se usará Tangerine para el desarrollo del Back Office lo que permitirá minimizar
su tiempo de desarrollo, mostrando un look and feel estándar del framework, para
enfocar la personalización del look and feel en el juego (el front-office).
Composer
Es un gestor de dependencias a nivel de aplicación para PHP,
que proporciona un formato estándar para la gestión de las
dependencias de software y librerías necesarias. Composer
está fuertemente inspirado por NPM de Node.js y bundler de
Ruby, Tangerine usa Composer para la gestión de
dependencias PHP.
Ilustración 25 - Isotipo
Tangerine – fuente
propia
Ilustración 26 - Logotipo
Composer -
getcomposer.org
39
Zend Framework
Zend Framework es un
framework open source para
PHP26
desarrollado por Zend
Technologies, la cual es
empresa que ha desarrollado las
versiones de PHP desde 1997 a la fecha.
Zend Framework implementa el patron MVC27
, es 100% orientado a objetos y sus
componentes tienen un bajo acoplamiento por lo que se pueden usar en forma
independiente. Brinda un estándar de codificación y certificaciones brindadas por
Zend Technologies.
Cuenta con soporte para internacionalización y localización28
de aplicaciones.
Entrega herramientas para crear la estructura de directorios y clases por línea de
comandos, integración con PHP Unit por medio de Zend_Test_PhpUnit para
facilitar y automatizar la creación de Test Unitarios.
Dojo Toolkit
Es un framework Javascript que contiene APIs y
widgets (controles) para facilitar el desarrollo de
aplicaciones Web. Contiene un sistema de
empaquetado inteligente, efectos de UI, APIs drag
and drop, widgets, abstracción de eventos, APIs
de almacenamiento en el cliente, localización, e
interacción de APIs con AJAX.
26
Lenguaje de programación de uso general de código del lado del servidor.
27
Patrón de diseño que separa una aplicación en tres capas: modelo, vista y controlador.
28
Soporte multi-idioma.
Ilustración 27 - Logotipo Zend Framework - Zend Technologies
Ilustración 28 - Logotipo Dojo Toolkit -
The Dojo Foundation
40
Viene integrado en frameworks como Zend Framework, en IDEs como IBM
Rational Application Developer y herramientas de desarrollo rápido como Spring
Roo.
MySQL
MySQL es un sistema de gestión de bases de datos
relacional, multihilo y multiusuario.
MySQL Standard Edition incluye el motor InnoDB, lo que
la convierte en una base de datos compatible con ACID29
para transacciones seguras. La replicación MySQL permite
entregar aplicaciones escalables y de alto rendimiento.
Cloud Engines
Ilustración 30 - Proveedores de cloud services - Amazon, Red Hat, Heroku, Google
El enfoque de Web Hosting tradicional no encaja con las necesidades de la
Plataforma G-Learning, ni de Weichan en forma óptima, ya que generalmente los
servicios de Hosting tradicionales ofrecen un servidor pre-configurado,
generalmente con un ambiente LAMP (Linux, Apache, MySQL, PHP) compartido e
impersonalizable, lo que nos da una limitación técnica. Por otra parte en estos
29
Atomicidad, consistencia, aislamiento y durabilidad.
Ilustración 29 - Logotipo
MySQL - Oracle Corporation
41
ambientes generalmente el manejo de archivos es vía FTP, sin control de versiones,
lo cual es un obstáculo para el desarrollo ágil.
Existen distintos enfoques y alternativas comerciales para publicar una aplicación
como Weichan, los cuales se llaman cloud engines, éstos son un tipo de cloud
services enfocados al desarrollo de aplicaciones.
Para este enfoque de desarrollo de aplicaciones en la nube existen proveedores
tales como: Amazon Web Services, Google App Engine, Red Hat OpenShit y
Heroku, entre otros, generalmente el costo del servicio parte desde planes gratuitos
o muy baratos, los cuales pueden ser mejorados en prestaciones, mediante pago.
Estos servicios tienen una interfaz de administración de aplicaciones vía web,
algunos proveen herramientas de escritorio e integración a ambientes de desarrollo
(IDEs).
Digital Ocean
Por otra parte Digital Ocean ofrece un servicio de
VPS30
, lo cual difiere en cierta forma del modelo de
cloud engine, pero resuelve el mismo problema.
Usa el concepto de Droplet, el cual es básicamente
una imagen de sistema operativo, configurado para
un fin específico, para ello proporciona acceso a la
consola del sistema operativo vía web o cliente ssh31
de escritorio. Es posible capturar la imagen de un
Droplet, para poder volver a levantar la imagen del sistema operativo.
30
Virtual Private Server, permite gestionar un servidor virtual con su propio sistema operativo.
31
Protocolo para acceder a máquinas remotas a través de una red.
Ilustración 31 - Logotipo Digital Ocean
- digitalocean.com
42
Docker
Docker es un proyecto de código abierto y
una herramienta que puede empaquetar
una aplicación y sus dependencias en un
contenedor virtual que se puede ejecutar en
cualquier servidor Linux.
Esto permite flexibilidad y portabilidad para
que la aplicación se pueda ejecutar en
diferentes instalaciones, como una nube
pública, nube privada, “metal desnudo”, etc.
Permite crear "contenedores". Estos contenedores de Docker pueden definirse
como máquinas virtuales ligeras, Las características principales de estos
contenedores son la portabilidad, la ligereza y la autosuficiencia.
Un contenedor Docker no contiene todo un sistema operativo, sino únicamente
aquellas librerías, archivos y configuraciones necesarias para desplegar las
funcionalidades que contenga. Asimismo Docker se encarga de la gestión del
contenedor y de sus aplicaciones. Docker extiende LXC32
.
32
Linux Containers: Tecnología de virtualización en el nivel de sistema operativo para Linux que
permite crear múltiples sistemas totalmente aislados entre si sobre la misma máquina o sistema
anfitrión, sin emular un sistema operativo completo para cada instancia.
Ilustración 32 - Isotipo Docker - docker.com
43
Metodología de Desarrollo
Se trabajará en el área del conocimiento y dentro de un proceso de mejora continua,
para esto se usará la metodología Lean de desarrollo de software, haciendo
hincapié en el desarrollo iterativo e incremental, optimizar, reducir desperdicios,
énfasis en la calidad, ciclos cortos de entrega e involucrar a todos los actores dentro
de lo posible.
La metodología Lean es una traducción de los principios y las prácticas de la forma
de producir originado en el Sistema de Producción de Toyota trasladado hacia el
área del desarrollo de software33
, esta tiene los siguientes principios:
 Optimizar el todo.
 Eliminar desperdicios.
 Calidad en la construcción.
 Aprender constantemente.
 Entregar rápido.
 Involucrar a todo el mundo.
 Seguir mejorando.
Otro principio importante dentro de la metodología de desarrollo es la orientación a
prototipos: para cada iteración se mostrarán pequeños prototipos funcionales como
pruebas de concepto, de forma de liberar rápidamente y dar visibilidad. Uno de los
principios implícitos de Lean es “equivocarse rápido” de esta forma se minimizan
33
(Poppendieck, y otros, 2003)
44
los riesgos y los costos de las decisiones equivocadas y se toman antes las
decisiones correctas.
En la metodología Lean las actividades de medición, construcción y aprendizaje son
continuas y transversales para las etapas de definición, diseño, desarrollo y testing.
Ilustración 33 - Ciclo iterativo Lean – bravent.net
45
III. INGENIERÍA DE REQUERIMIENTOS
Requerimientos Funcionales Juego
N° Requerimiento
RFJ-01 Autentificar usuario
RFJ-02 Iniciar nuevo juego
RFJ-03 Invitar a usuario
RFJ-04 Sincronizar usuarios
RFJ-05 Administrar juego
RFJ-06 Guardar y cargar juego
Tabla 4 - Requerimientos funcionales juego - fuente propia
46
Requerimientos Funcionales Back Office
N° Requerimiento
RFB-01 Autentificar Usuario
RFB-02 Administrar Módulos y Acciones
RFB-03 Administrar Perfiles
RFB-04 Administrar Grupos
RFB-05 Administrar Usuarios
RFB-06 Administrar Preguntas
RFB-07 Administrar Reglas y Cartas
Tabla 5 - Requerimientos funcionales back office - fuente propia
47
Requerimientos No Funcionales juego
N° Requerimiento
RNFJ-01 El sistema debe funcionar en Chrome 36, Firefox 32, Safari 8 e Internet Explorer 11.
RNFJ-02 El Sistema debe ser escalable vertical y horizontalmente.
RNFJ-03 El sistema debe funcionar y ser usable en PCS y dispositivos móviles.
RNFJ-04 Debe monitorearse la carga del sistema.
RNFJ-05 El sistema debe contar con medidas de seguridad que resguarden la integridad del juego.
RNFJ-06 El sistema debe propiciar la usabilidad y facilitar la comprensión de la dinámica del juego para
los jugadores.
Tabla 6 - Requerimientos no funcionales juego - fuente propia
48
Requerimientos No Funcionales BackOffice
N° Requerimiento
RNFB-01 El sistema debe funcionar en Chrome 36, Firefox 32, Safari 8 e Internet Explorer 9.
RNFB-02 Las acciones del usuario que involucren temas de seguridad deben ser validadas en el
servidor
RNFB-03 El Sistema debe ser escalable vertical y horizontalmente.
RNFB-04 Las acciones de usuario que involucren temas de usabilidad deben ser implementadas en el
navegador.
RNFB-05 El sistema debe incluir módulos de seguridad que impidan accesos a módulos no autorizados.
RNFB-06 El sistema debe propiciar la usabilidad, facilitando el mantenimiento, la revisión y la
reversibilidad de los cambios realizados.
Tabla 7 - Requerimientos no funcionales back office - fuente propia
49
IV. INGENIERÍA DE DISEÑO
Modelo del Dominio
La plataforma está compuesta por 2 subdominios que comparten información la que
se almacena en base de datos y en archivos json, estas dos subdominios son.
 El Juego el cual estará soportado por Node.js, Nools y Express.
 El Back Office el cual estará soportado por Tangerine
Las otras entidades del dominio representadas en el siguiente diagrama persistirán
en base de datos.
Ilustración 34 - Diagrama del modelo de dominio
50
Casos de Uso y Actividades
Vista General de Casos de Uso
La siguiente ilustración muestra los casos de uso generales del sistema, incluyendo
acciones del subdominio juego y del subdominio back office, los perfiles son
profesor, alumno y apoderado, también está el perfil gamelena el cual realiza
labores de soporte y administración de bajo nivel usando el back office.
Ilustración 35 – Diagrama general de casos de uso
51
Detalle de Casos de Uso
El detalle de los casos de uso se desprende de los requerimientos funcionales.
Se contemplan los perfiles alumno (también llamado jugador en algunos casos),
profesor y apoderado.
Iniciar Sesión Juego
Pantalla 1 - Iniciar sesión juego
El alumno debe ingresar sus credenciales (usuario y contraseña) para iniciar sesión
y unirse a un juego o ingresar al back office, según sea el caso.
El inicio de sesión es extendido por las actividades.
Resolver captcha: después de 5 intentos fallidos de ingreso, el jugador deberá
resolver un código captcha, como medida de seguridad ante ataques
automatizados.
Enviar contraseña por email: si un jugador olvidó su contraseña puede solicitar
que esta le sea enviada por email, en este caso se generará una nueva contraseña
temporal.
También existe la acción de cerrar sesión, lo cual cierra la sesión abierta.
52
Ilustración 36 - Diagrama de casos de uso "iniciar sesión juego"
Ilustración 37 - Diagrama de actividades CU01 "iniciar sesión"
53
Ilustración 38 - Diagrama de actividades CU02 "cerrar sesión"
Ilustración 39 - Diagrama de actividades CU03 "reiniciar contraseña"
54
Crear Nuevo Juego
Un profesor puede crear un nuevo juego e invitar a sus alumnos.
Un profesor puede participar en los juegos que ha creado, si lo desea.
Cada uno de los personajes del juego arranca con 5 puntos de vida.
Un profesor debe invitar a alumnos para que se unan a un juego, estos jugadores
reciben un link vía email, para facilitar el proceso de unirse a un juego.
Se debe verificar que el profesor que posea una sesión válida.
Ilustración 40 - Diagrama de casos de uso “crear juego”
55
Ilustración 41 - Diagrama de actividades CU04 "validar sesión"
Ilustración 42 - Diagrama de actividades CU05 "crear nuevo juego"
56
Ilustración 43 - Diagrama de actividades CU06 "invitar a alumnos"
Sincronizar Jugadores
Los alumnos deben sincronizan sus avances en el juego en tiempo real y en forma
automática, estos alumnos (o jugadores) participan en 2 equipos.
Según la cantidad de jugadores, el juego estará bajo una de las siguientes
modalidades:
 1 jugador versus 1 jugador.
 2 jugadores versus 2 jugadores.
57
 4 jugadores contra 4 jugadores.
Se debe verificar que los jugadores posean una sesión válida.
Ilustración 44 - Diagrama de casos de uso "sincronizar jugadores"
58
Ilustración 45 - Diagrama de actividades CU07 "sincronizar jugadores”
Administrar Juego
Pantalla 2 - Pantalla principal del juego
59
Una vez que un jugador se haya unido a un juego y habiéndose éste iniciado, podrá
administrar la forma en que este participa en el juego, esto incluye:
Mostrar estado: un jugador (alumno) puede ver su estado de avance en el juego,
y puntos de vida.
Mostrar estado de otros jugadores: el jugador también puede ver el estado de
los otros jugadores.
Listar cartas: un jugador puede ver en cualquier momento del juego sus propias
cartas.
Pantalla 3 - Listar cartas
Usar cartas: dependiendo de su naturaleza, una carta puede ser utilizada durante
uno o más de los siguientes eventos:
 Antes de mover.
 Durante un movimiento.
60
 Después de mover.
 Como respuesta a un ataque.
Pantalla 4 - Usar cartas
Mover personajes: el jugador puede mover a su(s) personajes en el tablero de
juego con el objetivo de llegar al extremo contrario de la partida o con el de atacar
a algún oponente, para esto debe lanzar el dado, el dado su vez puede ser puede
ser reemplazado por cartas número.
Los movimientos son secuenciales y diagonales (como en el juego de damas), un
movimiento cuenta de tantos pasos como puntos de dado haya obtenido el jugador.
Atacar: los ataques son a nivel de personajes, un personaje puede atacar a otro a
través de sus movimientos (mover personajes) o a través de cartas, si es a través
de cartas puede aumentar el daño contestando una pregunta aleatoria, ingresada
previamente por un profesor.
Contestar Preguntas: Al realizar un ataque con cartas se desplegará una pregunta
aleatoria, la cual si es contestada correctamente aumenta el daño ocasionado.
61
La pregunta tiene el formato de selección múltiple, y puede existir una o varias
opciones correctas, lo cual debe estar señalado correctamente al momento de
mostrar la pregunta. Deben marcarse todas las opciones correctas para que la
respuesta a su vez sea considerada como correcta.
Pantalla 5 - Contestar preguntas
Defender: Existirán cartas defensivas las cuales pueden anular, disminuir o
devolver al atacante el daño producido por un ataque.
62
Ilustración 46 - Diagrama casos de uso "administrar juego"
Se debe verificar que los jugadores posean una sesión válida.
63
Ilustración 47 - Diagrama de actividades CU09 "mover personajes"
64
Ilustración 48 - Diagrama de actividades CU10 "usar cartas"
65
Ilustración 49 - Diagrama de actividades CU11 “atacar fuerte enemigo”
66
Ilustración 50 - Diagrama de actividades CU12 "defender fuerte"
67
Guardar y Cargar Juego
Pantalla 6 - Guardar juego
Guardar juego: Un profesor puede guardar el estado de avance de un juego, el
cual puede ser reanudado más tarde con la acción “cargar juego”.
Cargar juego: Un juego guardado puede ser reanudado por un profesor, para que
este sea inicializado deben iniciar sesión todos los alumnos participantes.
El profesor puede asignar reemplazantes de los jugadores que no estén disponibles
para continuar con el juego guardado.
68
Ilustración 51 - Diagrama de casos de uso "guardar y cargar juego"
Ilustración 52 - Diagrama de actividades CU13 "guardar juego"
69
Ilustración 53 - Diagrama de actividades CU14 "cargar juego"
70
Iniciar Sesión Back Office
Pantalla 7 - Iniciar sesión back office
El profesor, apoderado o gamelena deben ingresar sus credenciales (usuario y
contraseña) para iniciar sesión y unirse a un juego.
El inicio de sesión es extendido por las acciones.
Resolver captcha: después de 5 intentos fallidos de ingreso, el jugador deberá
resolver un código captcha como medida de seguridad ante ataques automatizados.
Enviar contraseña por email: si un alumno olvidó su contraseña puede solicitar
que esta le sea enviada por email, en este caso se generará una nueva contraseña
temporal.
71
Ilustración 54 - Diagrama de casos de uso "iniciar sesión back office"
Administrar Módulos y Acciones
Pantalla 8 - Administrar módulos
72
El back office está compuesto por módulos, por ejemplo, existe un módulo de
preguntas y un módulo de usuarios, estos son mantenidos por el mantenedor de
módulos, el cual se puede llamar módulo de módulos.
Administrar Acciones: existen 4 acciones recurrentes para los módulos, las
cuales son: agregar, leer, modificar, eliminar. Algunos módulos pueden tener
acciones especiales, por ejemplo cambiar contraseña e incluso acciones que en
este momento no están contempladas, por lo que también existe un módulo
administrador de acciones.
Ilustración 55 - Diagrama de casos de uso "administrar módulos y acciones"
73
Ilustración 56 - Diagrama de actividades CU18 "administrar módulos"
74
Ilustración 57 - Diagrama de actividades CU19 "administrar acciones"
75
Administrar Perfiles
Pantalla 9 - Administrar perfiles
Los perfiles segmentan a los usuarios en forma vertical, estos definen el acceso a
realizar acciones sobre un módulo.
Todos los usuarios con acceso al back office están segmentados en perfiles, los
perfiles profesor y gamelena se definen en el módulo de perfiles, esta acción la
realiza un usuario perteneciente al perfil gamelena.
Los perfiles tienen asociados un conjunto de permisos, cada uno de estos está
asociado a un módulo y una acción.
76
Ilustración 58 - Diagrama de casos de uso "administrar perfiles"
77
Ilustración 59 - Diagrama de actividades CU21 "administrar perfiles"
78
Administrar Grupos
Los grupos segmentan a los usuarios en forma horizontal, estos definen el acceso
a realizar acciones sobre un registro. El registro debe pertenecer a un módulo
configurado para soportar perfilamiento de grupos.
Esto permite que un usuario pueda acceder a determinados registros de un
módulo y tener bloqueado el acceso a otros registros del mismo módulo.
El módulo de alumnos soporta perfilamiento a través de grupos, estos solo
pueden ser administrados por sus propios profesores, y no por profesores con los
que no estén relacionados.
Un usuario del back office puede pertenecer a uno, muchos o ningún grupo.
Ilustración 60 - Diagrama de casos de uso "administrar grupos"
79
Ilustración 61 - Diagrama de actividades CU20 "administrar grupos"
80
Administrar Usuarios
Pantalla 10 - Administrar usuarios
Los usuarios son administrados en 2 módulos, uno para usuarios de back office34
y otros para los usuarios con perfil alumno.
34
Usuarios pertenecientes a perfiles profesor o gamelena.
81
Ilustración 62 - Diagrama de casos de uso "administrar usuarios de back office"
Ilustración 63 - Diagrama de casos de uso “administrar alumnos”
82
Ilustración 64 - Diagrama de actividades CU25 “administrar usuarios”
Administrar Preguntas
El profesor ingresa preguntas las cuales son usadas en los juegos que este crea,
estas preguntas son asociadas a los grupos a los que pertenece el profesor.
Los profesores también pueden revisar y asociar preguntas agregadas por
colegas a sus propios grupos.
83
Pantalla 11 - Administrar preguntas
Ilustración 65 - Diagrama de casos de uso “administrar preguntas”
84
Ilustración 66 - Diagrama de actividades CU26 "administrar preguntas"
85
Administrar Cartas y Reglas
El usuario con perfil gamelena puede agregar cartas y asociar reglas. Estas reglas
se escriben en archivos Nools, los cuales son generados al escribir la regla en el
formulario de edición.
Debe existir un mecanismo que valide la regla esté escrita correctamente y que al
menos no genere errores de compilación e idealmente que compruebe el flujo de la
regla mediante herramientas de tests unitarios de Node.js.
Ilustración 67 - Diagrama de casos de uso "administrar cartas y reglas"
86
Ilustración 68 - Diagrama de actividades CU27 "administrar cartas y reglas"
87
Despliegue
Se levanta un Droplet en Digital Ocean con Linux Ubuntu Server 14.04, Node.js
0.10, PHP 5.5, MySQL 5.3, Mongo DB 2.6,Git 2.1, y Subversion 1.8.
Ilustración 69 - Diagrama de deployment
88
V. IMPLEMENTACIÓN
Plan de Implementación y Puesta en Marcha
Debido a que las implementaciones de software significativos requieren un gran
esfuerzo y toman tiempo para producir sus resultados máximos, es aconsejable
comenzar con un programa piloto, que podría ser visto como una etapa de
aplicación con su propio ciclo.
Un piloto suele implicar menos objetivos, menos personal y menos usuarios, un
plazo menor y menor costo. Le permite al cliente obtener una vista previa de la
logística, de desafíos involucrados y experimentar el grado de éxito que se puede
esperar del software.
Múltiples pasos y etapas ocurren a menudo simultáneamente, mientras que otros
pueden requerir atención continua o repetida a medida que evolucione la situación.
Ilustración 70 - Ciclo de implementación – fuente propia
Definición de
Objetivos
Educacionales
Integración
Curricular y
Organizacional.
Logística
Entrega e
Instalación
Capacitaciones
Monitoreo y
soporte
Evaluación
89
Etapa Implementación del Software Educativo
Definición de Objetivos
Educacionales y Motivaciones
de los Stakeholders
Qué deberían lograr los usuarios.
Cómo se mejora el aprendizaje.
Cuál es la disposición e interés de los docentes y alumnos a
dedicar su tiempo para una implementación exitosa.
Integración Curricular y
Organizacional
Cómo se ajusta el uso de software a los estándares de
aprendizaje.
Uso del software: cuánto se usa, por quién se usa y cuándo se
usa.
Conexión del software a otros recursos.
Logística Identificar tareas y responsabilidades.
Preparar presupuesto y línea de tiempo para instalación,
monitoreo y programa de evaluación.
Anticipar la necesidad de múltiples ciclos de uso para
solucionar problemas y afinar las mejores prácticas.
Entrega e Instalación Preparar el entorno técnico y seguimiento de la instalación.
Llevar a cabo las pruebas de aceptación en contra los criterios
previstos.
Capacitación Capacitación de uso y mantenimiento del software.
Monitoreo y Soporte Monitorear el progreso del plan y ajustar aplicación si es
necesario para aumentar eficacia.
Recopilar información sobre la evaluación del software.
Evaluación y Repetición del
Ciclo
Uso de la información recolectada y métricas para responder
preguntas y evaluar éxito contra los criterios planificados.
Tabla 8 - Actividades de implementación
90
Lista de Actividades para la Implementación
Definición de Objetivos Educacionales y Organizacionales
 Desarrollar y comunicar una declaración clara de la visión institucional,
propósito y metas para el desarrollo del software.
 Evaluar el software para determinar si coincide con la visión institucional,
propósito y metas, incluyendo la investigación detrás de la construcción de la
historia para el software, así como la investigación previa de su impacto
efectivo en aprendizaje.
 Desarrollar indicadores para cada objetivo contra el que el éxito pueda ser
evaluado.
 Obtener un compromiso por parte del personal para su apoyo, uso y beneficio
del software, verificar que cumpla con necesidades importantes para ellos y
que ellos estén dispuestos a hacer el esfuerzo necesario para implementar
adecuadamente.
Definición de Objetivos Curriculares
 Ajustar el software al plan de estudios y a los estándares de aprendizaje que
apoya.
 Ajustar el uso del software a los procesos que apoya, ya sea de instrucción,
prácticas o actividades extracurriculares.
Logística
 Designar un coordinador de la organización que tendrá la responsabilidad
general y la autoridad para llevar a cabo y supervisar la aplicación de
software.
91
 Designar responsabilidades del personal específico para la capacitación, la
instalación, y el soporte del software
 Designar a una persona que pueda ser contactada con regularidad para
responder preguntas y resolver problemas.
 Verificar que la programación de la implementación encaja con el calendario
de la institución y que no se verá comprometida por la falta de acceso debido
a las pruebas, vacaciones, u otros períodos de actividad especial. Reconocer
que a mediados de año la implementación puede ser apropiada y necesaria,
pero podría requerir más tiempo para la integración con éxito en los procesos
existentes.
 Verificar que el personal involucrado en la ejecución tiene el adecuado
manejo de tecnología para aprender la operación del software. Si no,
desarrollar y establecer un plan de formación para proporcionar las
habilidades tecnológicas básicas.
 Desarrollar un plan de evaluación que especifique:
• Criterios para los resultados exitosos de la utilización del software
• Preguntas a responder para determinar si se han cumplido los criterios
• Información y mediciones necesarias para responder a esas preguntas
• Los métodos que se utilizarán para recopilar esa información, como la forma
en se recopilará datos de uso de software, datos de rendimiento de los
usuarios, entrevistas con los interesados, reportes y encuestas.
 Comprometerse a una implementación comercial de varios años para que los
problemas de la puesta en marcha en el primer año se puedan mejorar.
Ajustar plan de evaluación por etapas, considerar que las expectativas de
éxito crecen con el tiempo.
92
Instalación
 Comprobar estado del hardware y de los sistemas, disponibilidad de red y
acceso a Internet de los sitios donde se utilizará el software.
 Verificar que las actividades de instalación y otorgamiento de accesos al
sistema para alumnos, docentes y apoderados se cumpla satisfactoriamente.
Capacitación
 Proporcionar una orientación completa para el personal que administrará el
producto, incluyendo objetivos y expectativas.
 Llevar a cabo un programa de formación eficaz del personal que incluya:
• Antecedentes sobre la dinámica del juego
• Instrucciones de la operación y mantenimiento del juego
• Sugerencias acerca de cómo y cuánto tiempo se debe involucrar
efectivamente a los estudiantes con el juego
Soporte y Monitoreo
 Asegurarse de que hay un seguimiento del progreso del plan de
implementación y se resuelven los problemas a medida que surgen, se
informa a los tomadores de decisiones, según corresponda.
 Asegurarse de que el software se utilice con el tiempo adecuado a la tarea
para los estudiantes, y que la información generada por el juego en el
desempeño del estudiante se está incluyendo en el análisis del progreso.
 Proveer capacitación continua, según sea necesario, incluir entrenamiento
específico para la aplicación, así como para la integración de tecnología en
los procesos y las prácticas educativas básicas. El Soporte incluye:
93
• Un foro para que los profesores y alumnos puedan compartir
preguntas e información relacionada con el uso del juego y que apoye
el cumplimiento de sus objetivos
• Web Help con instrucciones de la operación y mantenimiento del juego
además de las reglas de juego.
• Soporte vía e-mail.
 Recopilar información según lo señalado en el plan de evaluación.
Evaluación y Repetición del Ciclo
 Analizar la información recogida durante la aplicación y aplicar el análisis
para responder a las preguntas de evaluación previstos.
 Verificar los resultados de implementación contra los criterios del programa
para el éxito.
 Utilizar los resultados de la evaluación para planificar mejoras en el próximo
ciclo de implementación.
94
Plan de Gestión del Cambio y Capacitaciones
Para el cumplimiento de los objetivos del proyecto es de gran importancia que los
involucrados (profesores, alumnos, dirección) asuman una actitud positiva ante el
cambio, por lo cual debemos ocuparnos de los incentivos y motivaciones para
realizar el cambio, de la comunicación necesaria para que todos entiendan el
alcance del proyecto en el colegio y de la capacitación para puedan participar del
cambio.
Actividades
Actividad Formato Cuando A quien va
dirigido
Resultados
esperados
Reunión de
proyecto
Reuniones de
avance y
requerimientos
2 veces al mes Equipo de
proyecto,
profesores,
directores
Controlar avance
y requerimientos
Demos Presentaciones 2 por cada
implantación
Profesores,
directores,
Alumnos.
Motivación y
compromiso.
Quick Wins Reuniones de
trabajo
Durante cada
reunión
Todos Mantener
expectativas
Capacitación
online
Manual web A demanda Profesores,
directores,
Alumnos
Motivar
usabilidad
Feedback
online
Formulario web,
email
A demanda Profesores,
directores,
Alumnos
Solucionar
problemas
Tabla 9 - Actividades de gestión del cambio – fuente propia
95
Política de Respaldo
Usando la herramienta Snapshot de Digital Ocean, se debe capturar la imagen del
sistema operativo una vez al mes y cada vez que se efectue una actualización a
nivel de sistema operativo, se deben conservar las 6 últimas capturas, pudiendo
eliminarse las más antiguas.
Se usará el Snapshot más reciente para levantar un ambiente de pruebas.
Ilustración 71 - Interfaz de administración de Droplets - Digital Ocean
Se debe hacer un respaldo de las base de datos MySQL y MongoDB en forma
diaria a través de un proceso programado a nivel de sistema operativo, deben
conservarse los respaldos de hasta 30 días y eliminarse los respaldos más antiguos.
Deben agregarse tags para las distintas versiones del software, como puntos de
restauración del código fuente versionado en Git.
96
Estructura de Costos e Ingresos
Estructura de Costos
A Continuación se muestra una estimación de los costos de Gamelena durante los
tres primeros años, considerando los costos de la plataforma G-Learning y
Weichan.
# Detalle CF CV PRIMER AÑO SEGUNDO AÑO TERCER AÑO Costo
Mensual
(M)$
Costo
Total
(M) $
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12
1 RRHH
Administración y
Gestión
x 1.5 36
Desarrollo x 1.5 27
Soporte x 1 24
2 Equipamiento TIC
Mensualidad Digital
Ocean - Plan US $10
x x 0.006 0.036
Mensualidad Digital
Ocean - Plan US $80
x x 0.048 1.44
3 Logística
Habitabilidad
(arriendo)
x 0.5 12
Muebles x 3 3
Consumos Básicos x x 0,3 7,2
4 Publicidad
Publicidad x 1 2
Total Costos 112,676
Tabla 10 - Estructura de costos 3 primeros años
Es pertinente mencionar que el aumento de costos de los años 2 y 3 se justifica sólo
si se proyecta un aumento de las ventas respectivo que justifique la inversión en
RRHH y logística para satisfacer los requerimientos del negocio.
Costos Anuales (M)$
Año 1 15,324
Año 2 50,176
Año 3 47,176
Tabla 11 - Resumen de costos 3 primeros años
97
Planificación de Ventas al Primer Año.
El formato de venta en esta fase es de suscripción mensual por curso con
derecho a administrar un grupo de hasta 40 alumnos más sus apoderados
respectivos (uno por cada alumno) y hasta 5 profesores los cuales administran a 1
grupo, estos profesores administran los juegos y las preguntas formuladas en estos
juegos.
La suscripción mensual tiene un costo 5UF mensuales por curso, pudiendo
agregarse más alumnos por 0,25 UF mensuales C/U.
Se estima la cantidad necesaria de ventas para hacer el proyecto sustentable
durante el primer año.
Ventas mercado nacional
Precio anual por curso $1.250.000
Cantidad de unidades vendidas 15
Total de ingresos (CLP$) $18.750.000
Tabla 12 - Ventas mercado nacional
Estrategia de Financiamiento.
Parte de la estrategia de financiamiento es buscar socios inversionistas y postular
a los fondos concursables Corfo/Sercotec. Los montos pueden variar de acuerdo a
los aportes estatales y/o privados que se hagan en Gamelena.
USO INVERSIONISTA
(M $)
EMPRENDEDOR
(M $)
ESTADO
(M $)
BANCO
(M $)
Total
(M $)
Recursos Humanos 30 47 10 87
Equipamiento TIC 1,476 1,476
Logística 10 12,2 22,2
Publicidad 2 2
TOTALES 40 48,476 12 12,2 112,676
PORCENTAJE (%) 35,55% 43,02% 10,65% 10,82% 100%
Tabla 13 - Estrategia de financiamiento
98
VI. INGENIERÍA DE QA
Plan de Pruebas
Para ejecutar un set de pruebas se levanta un Snapshot del ambiente de
producción en un nuevo Droplet de Digital Ocean dedicado para pruebas, con las
mismas características de Hardware: 1GB de RAM, procesador de 1 Core, Disco
SSD de 30GB.
Pruebas Unitarias
Para las pruebas unitarias se prueban los diferentes componentes MVC del
BackOffice mediante PHP Unit Y Zend Framework a través de
Zend_Test_PhpUnit, los cuales ofrecen un marco de trabajo optimizado para la
realización de pruebas unitarias.
Los casos de uso se pueden mapear generalmente a un controlador y a una o más
acciones para dicho controlador, estas acciones tienen su equivalente en la batería
de tests unitarios.
Se debe hacer un test unitario por cada caso de uso, basando el criterio de éxito en
las salidas del test contra la definición de las salidas de las actividades del caso de
uso.
Tabla 14 - Archivo de configuración test unitarios PHP Unit – fuente propia
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/3.7/phpunit.xsd"
bootstrap="./bootstrap.php" colors="true">
<testsuite name="Application Test Suite">
<directory>./application</directory>
<directory>./library</directory>
<directory>./selenium</directory>
</testsuite>
<php>
<const name="PHPUNIT_USERNAME" value="user"/>
<const name="PHPUNIT_PASSWORD" value="password"/>
<const name="PHPUNIT_BROWSER" value="chrome"/>
<const name="PHPUNIT_WAITSECONDS" value="6"/>
<const name="PHPUNIT_BASEURL" value="http://testing.weichan.local"/>
</php>
</phpunit>
99
Tabla 15 – Implementación Caso de Prueba para Zend Framework PHP Unit - fuente propia
<?php
class AdminControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{
public function setUp ()
{
$this->bootstrap = $this->bootstrap = new Zend_Application(
APPLICATION_ENV, $_ENV['APPLICATION_CONFIG']);
parent::setUp();
}
public function initUserInfo ()
{
$authAdapter = Zwei_Admin_Auth::getInstance()->getAuthAdapter();
$username = PHPUNIT_USERNAME;
$password = PHPUNIT_PASSWORD;
$auth = Zend_Auth::getInstance();
$authAdapter->setIdentity($username)->setCredential($password);
$result = $auth->authenticate($authAdapter);
if ($result->isValid()) {
Zwei_Admin_Auth::initUserInfo($authAdapter);
} else {
echo "Usuario '$username' o Password '$password' incorrectos.";
}
}
public function testIndexNotAuthenticatedAction ()
{
$params = array(
'action' => 'index',
'controller' => 'Admin',
'module' => 'default'
);
$urlParams = $this->urlizeOptions($params);
$url = $this->url($urlParams);
$this->dispatch($url);
$this->assertModule($urlParams['module']);
$this->assertController($urlParams['controller']);
$this->assertAction($urlParams['action']);
$this->assertRedirectTo('/admin/login');
}
public function testLoginAction ()
{
$params = array(
'action' => 'login',
'controller' => 'Admin',
'module' => 'default'
);
$urlParams = $this->urlizeOptions($params);
$url = $this->url($urlParams);
$this->dispatch($url);
$this->assertQueryCount('form#loginForm', 1);
$this->assertQueryContentContains('.login-form .header h1', 'weichan');
}
}
100
Para la navegación se realizarán tests con Selenium HQ a través de
Zend_Test_PhpUnit Selenium. Selenium HQ es un entorno de pruebas de software
para aplicaciones web basadas en la automatización de acciones en el navegador.
Las pruebas pueden ejecutarse usando la mayoría de los navegadores web
modernos.
Tabla 16 - Implementación Caso de Prueba con PHP Unit Selenium - fuente propia
Para los test unitarios de lado del servidor Node.js usaremos Mocha, el cual es un
framework de pruebas JavaScript que se ejecuta en el servidor Node.js y en el
navegador.
<?php
class BrowserTest extends PHPUnit_Extensions_Selenium2TestCase
{
protected function setUp()
{
$this->bootstrap = new Zend_Application(APPLICATION_ENV, $_ENV['APPLICATION_CONFIG']);
$this->setBrowser(PHPUNIT_BROWSER);
$this->setBrowserUrl(PHPUNIT_BASE_URL);
}
public function initUserInfo()
{
$authAdapter = Zwei_Admin_Auth::getInstance()->getAuthAdapter();
$username = PHPUNIT_USERNAME;
$password = PHPUNIT_PASSWORD;
$auth = Zend_Auth::getInstance();
$authAdapter->setIdentity($username)->setCredential($password);
$result = $auth->authenticate($authAdapter);
if ($result->isValid()){
Zwei_Admin_Auth::initUserInfo($authAdapter);
} else {
echo "Usuario '$username' o Password '$password' incorrectos.";
}
}
public function testLogin()
{
$this->url('admin');
$model = new SettingsModel();
$row = $model->find('titulo_adm')->current();
$this->assertEquals($row->value, $this->title());
$this->byId('username')->value(PHPUNIT_USERNAME);
$this->byId('password')->value(PHPUNIT_PASSWORD);
$this->byId('login')->click();
$this->byId('loginForm')->submit();
$modules = new AclModulesModel();
$this->initUserInfo();
$this->iterateTree($modules->getTree());
}
}
Plataforma G-Learning
Plataforma G-Learning
Plataforma G-Learning
Plataforma G-Learning
Plataforma G-Learning
Plataforma G-Learning
Plataforma G-Learning

Más contenido relacionado

Similar a Plataforma G-Learning

Robert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdf
Robert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdfRobert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdf
Robert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdfDavidStevenPinzonCar
 
Proyecto diseño publicitario
Proyecto diseño publicitarioProyecto diseño publicitario
Proyecto diseño publicitariodanyelee
 
Estudio de pre factibilidad comza
Estudio de pre factibilidad comzaEstudio de pre factibilidad comza
Estudio de pre factibilidad comzaMaría Elizabeth
 
Revista proyecto sena animagen
Revista proyecto sena animagenRevista proyecto sena animagen
Revista proyecto sena animagenJulietha Gomez
 
Manual Marca Smark - Armijos, Molina S., Navarrete
Manual Marca Smark - Armijos, Molina S., NavarreteManual Marca Smark - Armijos, Molina S., Navarrete
Manual Marca Smark - Armijos, Molina S., NavarreteJuanFernandoArmijosP
 
Cómo iniciar su_propio_negocio_-_el_perfil_empresarial
Cómo iniciar su_propio_negocio_-_el_perfil_empresarialCómo iniciar su_propio_negocio_-_el_perfil_empresarial
Cómo iniciar su_propio_negocio_-_el_perfil_empresarialArgentina Rodriguez
 
Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...
Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...
Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...Saulo Crez
 
cancha sinteticaProyecto final cancha sintetica en duran
cancha sinteticaProyecto final cancha sintetica en durancancha sinteticaProyecto final cancha sintetica en duran
cancha sinteticaProyecto final cancha sintetica en duranDaniel Laquise
 
PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...
PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...
PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...Felipe Kurt
 
Sistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelp
Sistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelpSistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelp
Sistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelpVlady Tintaya
 
CUADERNIA
CUADERNIACUADERNIA
CUADERNIAjaysara
 
PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.
PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.
PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.OSCAR IVAN TIUSO HERNANDEZ
 
Portafolio Mariela Estefany Rodriguez.pdf
Portafolio Mariela Estefany Rodriguez.pdfPortafolio Mariela Estefany Rodriguez.pdf
Portafolio Mariela Estefany Rodriguez.pdfMassielRodriguez34
 
Proyecto de grado_eglence
Proyecto de grado_eglenceProyecto de grado_eglence
Proyecto de grado_eglenceEglence
 
PROYECTO ESCRITO
PROYECTO ESCRITOPROYECTO ESCRITO
PROYECTO ESCRITOJhamit A
 

Similar a Plataforma G-Learning (20)

Robert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdf
Robert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdfRobert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdf
Robert Torres_Trabajo de Suficiencia Profesional_Titulo Profesional_2019.pdf
 
Proyecto diseño publicitario
Proyecto diseño publicitarioProyecto diseño publicitario
Proyecto diseño publicitario
 
Estudio de pre factibilidad comza
Estudio de pre factibilidad comzaEstudio de pre factibilidad comza
Estudio de pre factibilidad comza
 
Revista proyecto sena animagen
Revista proyecto sena animagenRevista proyecto sena animagen
Revista proyecto sena animagen
 
Manual Marca Smark - Armijos, Molina S., Navarrete
Manual Marca Smark - Armijos, Molina S., NavarreteManual Marca Smark - Armijos, Molina S., Navarrete
Manual Marca Smark - Armijos, Molina S., Navarrete
 
Cómo iniciar su_propio_negocio_-_el_perfil_empresarial
Cómo iniciar su_propio_negocio_-_el_perfil_empresarialCómo iniciar su_propio_negocio_-_el_perfil_empresarial
Cómo iniciar su_propio_negocio_-_el_perfil_empresarial
 
Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...
Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...
Proyecto analisis de factibilidad para la creacion y adecuacion de un centro ...
 
cancha sinteticaProyecto final cancha sintetica en duran
cancha sinteticaProyecto final cancha sintetica en durancancha sinteticaProyecto final cancha sintetica en duran
cancha sinteticaProyecto final cancha sintetica en duran
 
Manual optativa
Manual optativaManual optativa
Manual optativa
 
SISTEMAS DE INFORMACIÓN-PERUTEC
SISTEMAS DE INFORMACIÓN-PERUTECSISTEMAS DE INFORMACIÓN-PERUTEC
SISTEMAS DE INFORMACIÓN-PERUTEC
 
PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...
PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...
PLANIFICACIÓN ESTRATÉGICA PARA ORGANIZACIONES NO GUBERNAMENTALES. Caso: Inter...
 
Capitulo nº 7 lideres de la productividad
Capitulo nº 7 lideres de la productividadCapitulo nº 7 lideres de la productividad
Capitulo nº 7 lideres de la productividad
 
Sistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelp
Sistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelpSistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelp
Sistema de seguimiento_y_monitoreo_de_proyectos_orientados_resultados_cadelp
 
CUADERNIA
CUADERNIACUADERNIA
CUADERNIA
 
PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.
PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.
PROYECTO DE GRADO PARA EL TITULO DE ESPECIALISTA EN FINANZAS.
 
Portafolio Mariela Estefany Rodriguez.pdf
Portafolio Mariela Estefany Rodriguez.pdfPortafolio Mariela Estefany Rodriguez.pdf
Portafolio Mariela Estefany Rodriguez.pdf
 
Usil empanada de soya
Usil empanada de soyaUsil empanada de soya
Usil empanada de soya
 
Proyecto de grado_eglence
Proyecto de grado_eglenceProyecto de grado_eglence
Proyecto de grado_eglence
 
Trabajo de Grado UFT MLS
Trabajo de Grado UFT MLSTrabajo de Grado UFT MLS
Trabajo de Grado UFT MLS
 
PROYECTO ESCRITO
PROYECTO ESCRITOPROYECTO ESCRITO
PROYECTO ESCRITO
 

Último

Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 

Plataforma G-Learning

  • 1. FACULTAD DE INGENIERÍA PLATAFORMA G-LEARNING DE APOYO A LA PEDAGOGÍA Proyecto de Titulación para Optar al Título de Ingeniero Civil Informático Rodrigo Riquelme Espinosa SANTIAGO DE CHILE DICIEMBRE 2014
  • 2. FACULTAD DE INGENIERÍA PLATAFORMA G-LEARNING DE APOYO A LA PEDAGOGÍA Proyecto de Titulación para Optar al Título de Ingeniero Civil Informático Alumno : Rodrigo Riquelme Espinosa RUT : 13.272.164-5 Profesor Guía : Carlos Fuentealba Canario SANTIAGO DE CHILE DICIEMBRE 2014
  • 3. DEDICATORIA A Elena. Aunque aún no puedas leer esto, desde que llegaste eres mi motivación e inspiración principal para pensar en el juego y en la educación como temas importantes para el presente y el futuro. Eres un regalo para nuestras vidas y tienes el poder para lograr lo que quieras en la tuya.
  • 4. AGRADECIMIENTOS A mi mujer Karol por su paciencia, apoyo y empuje que ha sido crucial para llevar adelante mi desarrollo personal y profesional en instancias como ésta, y por ser la mujer de mi vida. A mi madre Victoria, cuya dedicación y educación ha sido fundamental para crecer como persona y ser un aporte para los míos y para la sociedad. A mi hermano Luis Felipe, por aceptar mis desafíos y terminar derrotándome en mis propios juegos, mostrándome posibilidades que no había podido ver antes, lo que me ayudó a potenciarlas para mejorar el valor del juego. A mi profesor guía Carlos Fuentealba por su profesionalismo en brindar las directrices y por cumplir un rol clave para la calidad de este trabajo.
  • 5. i ÍNDICE ÍNDICE DE FIGURAS ........................................................................................... vii ÍNDICE DE PANTALLAS....................................................................................... xi ÍNDICE DE TABLAS............................................................................................. xii RESUMEN .............................................................................................................. 1 ABSTRACT............................................................................................................. 2 I. INTRODUCCIÓN ............................................................................................. 3 Justificación........................................................................................................ 4 El juego como Herramienta de Aprendizaje................................................ 4 Empresa............................................................................................................. 5 Gamelena................................................................................................... 5 II. ANÁLISIS ........................................................................................................ 6 Situación Actual de la Educación en Chile.......................................................... 6 Indicadores Internacionales ........................................................................ 6 Indicadores Nacionales............................................................................. 11 Participación de Padres y Apoderados ..................................................... 12 Modelo de Negocios......................................................................................... 13 Objetivos Generales y Específicos............................................................ 13 Objetivo General............................................................................................. 13 Objetivos Específicos...................................................................................... 13
  • 6. ii Situación a Alcanzar................................................................................. 14 Para los Alumnos............................................................................................ 14 Para los Profesores ........................................................................................ 14 Para los Padres y Apoderados........................................................................ 15 Para la Sociedad ............................................................................................ 15 Canvas del Modelo de Negocios .............................................................. 16 Segmentos de Clientes................................................................................... 16 Propuesta de valor.......................................................................................... 16 Canales .......................................................................................................... 16 Relaciones con Clientes.................................................................................. 17 Fuentes de Ingreso......................................................................................... 17 Recursos Clave .............................................................................................. 17 Actividades Clave ........................................................................................... 18 Socios Clave................................................................................................... 18 Estructura de Costos ...................................................................................... 18 Marco Teórico .................................................................................................. 20 Estudio de la Historia................................................................................ 20 Juegos Didácticos..................................................................................... 20 Sistemas Basados En Reglas................................................................... 22 Algoritmo Rete.......................................................................................... 23 Implementación De Rete .......................................................................... 24
  • 7. iii Drools............................................................................................................. 26 Node.js ..................................................................................................... 32 NPM ............................................................................................................... 33 Nools.............................................................................................................. 33 Express .......................................................................................................... 34 Gulp................................................................................................................ 35 Socket.io......................................................................................................... 35 Git............................................................................................................. 36 Mongo DB................................................................................................. 36 Tecnologías Del Lado Del Navegador ...................................................... 37 HTML 5 - Web Sockets................................................................................... 37 CSS 3............................................................................................................. 37 Tangerine ................................................................................................. 38 Composer....................................................................................................... 38 Zend Framework............................................................................................. 39 Dojo Toolkit..................................................................................................... 39 MySQL ........................................................................................................... 40 Cloud Engines .......................................................................................... 40 Digital Ocean.................................................................................................. 41 Docker............................................................................................................ 42 Metodología de Desarrollo................................................................................ 43
  • 8. iv III. INGENIERÍA DE REQUERIMIENTOS ....................................................... 45 Requerimientos Funcionales Juego.................................................................. 45 Requerimientos Funcionales Back Office ......................................................... 46 Requerimientos No Funcionales juego ............................................................. 47 Requerimientos No Funcionales BackOffice..................................................... 48 IV. INGENIERÍA DE DISEÑO .......................................................................... 49 Modelo del Dominio.......................................................................................... 49 Casos de Uso y Actividades............................................................................. 50 Vista General de Casos de Uso................................................................ 50 Detalle de Casos de Uso .......................................................................... 51 Iniciar Sesión Juego........................................................................................ 51 Crear Nuevo Juego......................................................................................... 54 Sincronizar Jugadores .................................................................................... 56 Administrar Juego........................................................................................... 58 Guardar y Cargar Juego ................................................................................. 67 Iniciar Sesión Back Office ............................................................................... 70 Administrar Módulos y Acciones ..................................................................... 71 Administrar Perfiles......................................................................................... 75 Administrar Grupos......................................................................................... 78 Administrar Usuarios....................................................................................... 80 Administrar Preguntas..................................................................................... 82
  • 9. v Administrar Cartas y Reglas............................................................................ 85 Despliegue ....................................................................................................... 87 V. IMPLEMENTACIÓN....................................................................................... 88 Plan de Implementación y Puesta en Marcha................................................... 88 Lista de Actividades para la Implementación ............................................ 90 Definición de Objetivos Educacionales y Organizacionales ............................. 90 Definición de Objetivos Curriculares................................................................ 90 Logística......................................................................................................... 90 Instalación ...................................................................................................... 92 Capacitación................................................................................................... 92 Soporte y Monitoreo........................................................................................ 92 Evaluación y Repetición del Ciclo.................................................................... 93 Plan de Gestión del Cambio y Capacitaciones ................................................. 94 Actividades ............................................................................................... 94 Política de Respaldo......................................................................................... 95 Estructura de Costos e Ingresos....................................................................... 96 Estructura de Costos ................................................................................ 96 Planificación de Ventas al Primer Año. ..................................................... 97 Estrategia de Financiamiento.................................................................... 97 VI. INGENIERÍA DE QA .................................................................................. 98 Plan de Pruebas............................................................................................... 98
  • 10. vi Pruebas Unitarias ..................................................................................... 98 Pruebas de Integración Continua............................................................ 102 Pruebas de Carga y Estrés..................................................................... 104 VII. CONCLUSIONES..................................................................................... 105
  • 11. vii ÍNDICE DE FIGURAS Ilustración 1 - Isotipo Gamelena.............................................................................. 5 Ilustración 2 - Promedios prueba PISA 2012 - La Tercera ...................................... 7 Ilustración 3 - Resultados 4° básicos 2012 en Historia, Geografía y Ciencias Sociales - MINEDUC............................................................................................. 11 Ilustración 4 - Niveles de incentivo a la lectura en el hogar - MINEDUC............... 12 Ilustración 5 - Diagrama del modelo de negocios – fuente propia......................... 14 Ilustración 6- Canvas del modelo de negocios - fuente propia.............................. 19 Ilustración 7 - Sistema basado en reglas – quazoo.com ....................................... 23 Ilustración 8 - Sistema basado en el algoritmo Rete - Red Hat............................. 24 Ilustración 9 - Nodos Rete - Red Hat..................................................................... 25 Ilustración 10 – Nodos Tipo Objeto para JBoss Drools - Red Hat......................... 25 Ilustración 11 - Nodos Alfa - Red Hat.................................................................... 26 Ilustración 12 - Logotipo JBoss Drools - Red Hat.................................................. 26 Ilustración 13 - Nodo Join - Red Hat ..................................................................... 28 Ilustración 14 - Logotipo Node.js - nodejs.org ....................................................... 32 Ilustración 15 - Arquitectura de Node JS - zenika.com.......................................... 32 Ilustración 16 - Logotipo NPM - npmjs.org ............................................................ 33 Ilustración 17 - Logotipo C2FO - c2fo.com............................................................ 33 Ilustración 18 - Logotipo Express - expressjs.org.................................................. 34
  • 12. viii Ilustración 19 - Logotipo Gulp - gulpjs.com ........................................................... 35 Ilustración 20 - Socket.io + Nodejs – lightstreamer.com........................................ 35 Ilustración 21 - Isotipo Git - git-scm.com ............................................................... 36 Ilustración 22 - Logotipo Mongo DB - mongodb.org.............................................. 36 Ilustración 23 - Logotipo HTML5 – W3C................................................................ 37 Ilustración 24 - Logotipo CSS3 - W3C................................................................... 37 Ilustración 25 - Isotipo Tangerine – fuente propia ................................................. 38 Ilustración 26 - Logotipo Composer - getcomposer.org......................................... 38 Ilustración 27 - Logotipo Zend Framework - Zend Technologies........................... 39 Ilustración 28 - Logotipo Dojo Toolkit - The Dojo Foundation................................ 39 Ilustración 29 - Logotipo MySQL - Oracle Corporation.......................................... 40 Ilustración 30 - Proveedores de cloud services - Amazon, Red Hat, Heroku, Google................................................................................................................... 40 Ilustración 31 - Logotipo Digital Ocean - digitalocean.com.................................... 41 Ilustración 32 - Isotipo Docker - docker.com ......................................................... 42 Ilustración 33 - Ciclo iterativo Lean – bravent.net.................................................. 44 Ilustración 34 - Diagrama del modelo de dominio ................................................. 49 Ilustración 35 – Diagrama general de casos de uso.............................................. 50 Ilustración 36 - Diagrama de casos de uso "iniciar sesión juego" ......................... 52 Ilustración 37 - Diagrama de actividades CU01 "iniciar sesión" ............................ 52
  • 13. ix Ilustración 38 - Diagrama de actividades CU02 "cerrar sesión" ............................ 53 Ilustración 39 - Diagrama de actividades CU03 "reiniciar contraseña".................. 53 Ilustración 40 - Diagrama de casos de uso “crear juego” ...................................... 54 Ilustración 41 - Diagrama de actividades CU04 "validar sesión"........................... 55 Ilustración 42 - Diagrama de actividades CU05 "crear nuevo juego" .................... 55 Ilustración 43 - Diagrama de actividades CU06 "invitar a alumnos"...................... 56 Ilustración 44 - Diagrama de casos de uso "sincronizar jugadores"...................... 57 Ilustración 45 - Diagrama de actividades CU07 "sincronizar jugadores” ............... 58 Ilustración 46 - Diagrama casos de uso "administrar juego" ................................. 62 Ilustración 47 - Diagrama de actividades CU09 "mover personajes" .................... 63 Ilustración 48 - Diagrama de actividades CU10 "usar cartas" ............................... 64 Ilustración 49 - Diagrama de actividades CU11 “atacar fuerte enemigo” .............. 65 Ilustración 50 - Diagrama de actividades CU12 "defender fuerte"......................... 66 Ilustración 51 - Diagrama de casos de uso "guardar y cargar juego".................... 68 Ilustración 52 - Diagrama de actividades CU13 "guardar juego"........................... 68 Ilustración 53 - Diagrama de actividades CU14 "cargar juego" ............................. 69 Ilustración 54 - Diagrama de casos de uso "iniciar sesión back office" ................. 71 Ilustración 55 - Diagrama de casos de uso "administrar módulos y acciones"...... 72 Ilustración 56 - Diagrama de actividades CU18 "administrar módulos"................. 73
  • 14. x Ilustración 57 - Diagrama de actividades CU19 "administrar acciones" ................ 74 Ilustración 58 - Diagrama de casos de uso "administrar perfiles".......................... 76 Ilustración 59 - Diagrama de actividades CU21 "administrar perfiles"................... 77 Ilustración 60 - Diagrama de casos de uso "administrar grupos" .......................... 78 Ilustración 61 - Diagrama de actividades CU20 "administrar grupos" ................... 79 Ilustración 62 - Diagrama de casos de uso "administrar usuarios de back office". 81 Ilustración 63 - Diagrama de casos de uso “administrar alumnos”........................ 81 Ilustración 64 - Diagrama de actividades CU25 “administrar usuarios”................ 82 Ilustración 65 - Diagrama de casos de uso “administrar preguntas” ..................... 83 Ilustración 66 - Diagrama de actividades CU26 "administrar preguntas" .............. 84 Ilustración 67 - Diagrama de casos de uso "administrar cartas y reglas".............. 85 Ilustración 68 - Diagrama de actividades CU27 "administrar cartas y reglas" ....... 86 Ilustración 69 - Diagrama de deployment.............................................................. 87 Ilustración 70 - Ciclo de implementación – fuente propia ...................................... 88 Ilustración 71 - Interfaz de administración de Droplets - Digital Ocean................. 95 Ilustración 72 - Logotipo Jenkins - jenkins.ci.org................................................. 102 Ilustración 73 – Tabla de resultados de pruebas en JMeter - Digital Ocean ....... 104
  • 15. xi ÍNDICE DE PANTALLAS Pantalla 1 - Iniciar sesión juego............................................................................. 51 Pantalla 2 - Pantalla principal del juego................................................................. 58 Pantalla 3 - Listar cartas........................................................................................ 59 Pantalla 4 - Usar cartas......................................................................................... 60 Pantalla 5 - Contestar preguntas........................................................................... 61 Pantalla 6 - Guardar juego .................................................................................... 67 Pantalla 7 - Iniciar sesión back office .................................................................... 70 Pantalla 8 - Administrar módulos........................................................................... 71 Pantalla 9 - Administrar perfiles............................................................................. 75 Pantalla 10 - Administrar usuarios......................................................................... 80 Pantalla 11 - Administrar preguntas ...................................................................... 83
  • 16. xii ÍNDICE DE TABLAS Tabla 1 - Promedios en resolución de problemas PISA 2012 - OCDE.................. 10 Tabla 2 - Ejemplo de regla Rete escrita en Drools - Red Hat................................ 29 Tabla 3 - Ejemplo de reglas Rete escritas en Nools - C2FO................................. 34 Tabla 4 - Requerimientos funcionales juego - fuente propia ................................. 45 Tabla 5 - Requerimientos funcionales back office - fuente propia......................... 46 Tabla 6 - Requerimientos no funcionales juego - fuente propia ............................ 47 Tabla 7 - Requerimientos no funcionales back office - fuente propia.................... 48 Tabla 8 - Actividades de implementación.............................................................. 89 Tabla 9 - Actividades de gestión del cambio – fuente propia ................................ 94 Tabla 10 - Estructura de costos 3 primeros años .................................................. 96 Tabla 11 - Resumen de costos 3 primeros años ................................................... 96 Tabla 12 - Ventas mercado nacional..................................................................... 97 Tabla 13 - Estrategia de financiamiento ................................................................ 97 Tabla 14 - Archivo de configuración test unitarios PHP Unit – fuente propia ........ 98 Tabla 15 – Implementación Caso de Prueba para Zend Framework PHP Unit - fuente propia ......................................................................................................... 99 Tabla 16 - Implementación Caso de Prueba con PHP Unit Selenium - fuente propia ............................................................................................................................ 100 Tabla 17 - Ejemplo de caso de pruebas Mocha - unitjs.com............................... 101
  • 17. xiii Tabla 18 – Buildfile Ant para integración con Jenkins - http://johnhamelink.com/testing-nodejs-with-jenkins.html.................................... 103
  • 18. 1 RESUMEN El Proyecto Plataforma G-Learning de Apoyo a la Pedagogía aborda el problema educacional relacionado con el abismo tecnológico que existe entre los formatos de la enseñanza tradicional y las motivaciones de los estudiantes a través de una combinación específica de estudio y entretención para satisfacer las demandas actuales de los estudiantes, profesores y apoderados a través del juego didáctico. Esta Plataforma G-Learning es implementada con el juego Weichan el cual es una recreación del hito de la Historia de Chile llamado “Guerra de Arauco”, cuya temática es abordada en los niveles NB3 y NB41 dentro del programa escolar del Ministerio de Educación. Para cumplir la misión didáctica, la plataforma usa una base de conocimientos creada por docentes y expertos, los cuales son un elemento clave en la entrega de valor pedagógico, estos actores se ven beneficiados al usar la herramienta para potenciar su propia labor docente. La Plataforma G-Learning es un emprendimiento concebido por el autor de este proyecto, el cual va de la mano con la creación de la empresa Start-Up Gamelena, la cual distribuye Weichan como un servicio (Software as Service). 1 Cursos 5° y 6° de educación general básica.
  • 19. 2 ABSTRACT The project G-Learning Platform to Support Education is focused in the educational problem related to the technological gap between the formats of traditional education and the motivations of students through a specific combination of study and entertainment to meet current demands of students, teachers and parents through educational games. This G-Learning Platform will be implemented with the game Weichan which is a recreation of the landmark in the history of Chile called “Arauco War”, whose contents are passed in NB3 and NB4 levels2 according to the program school of the Ministry of Education of Chile, so this game is aimed at teaching that school segment. To fulfill this educational mission, the platform uses a knowledge base created by teachers and experts, which are a key actors in delivery of educational value, these actors are favored when using the tool to enhance their own teaching. This G-Learning Platform is an enterprise conceived by the author of this project, which goes hand in hand with the creation of the Business Start-Up called Gamelena which will distribute Weichan as a service (Software as Service). 2 Courses 5° and 6° of basic chilean educational levels.
  • 20. 3 I. INTRODUCCIÓN Al año 2014, los estudiantes de 3eros básicos a 4tos medios de Chile (aproximadamente 2.000.000 de estudiantes) reflejan un marcado desinterés en el estudio y poco entendimiento de la Historia de Chile e Historia Universal, esto se refleja en los bajos resultados de la prueba SIMCE y PSU. Los métodos actuales de enseñanza de la Historia privilegian los datos o Habilidades Memorísticas de los Alumnos (fechas, nombres, lugares) en desmedro de Habilidades de Aplicación (caracterización, protagonismo, realización, juegos, ensayos, etc.). Hoy en día el uso de las tecnologías de información abarcan una parte cada vez mayor del quehacer diario, estas se han transformado en herramientas de gran alcance para múltiples usos, ganando rápidamente aceptación y familiaridad sobre todo en niños y jóvenes. Por ello se hace importante que en la enseñanza escolar los docentes se dediquen a explorar y conocer las posibilidades que ofrecen las herramientas tecnológicas y de esta forma poder crear espacios de aprendizajes dinámicos, interesantes y de valor educativo, de forma de sintonizar con los canales de comunicación que realmente usan los estudiantes. Dentro de este contexto se propone el desarrollo de una plataforma de juego didáctico, específicamente para el ramo de Historia y Geografía de Chile, el cual abarcará el tema de la Guerra de Arauco, involucrando en esta plataforma a profesores y alumnos. Esta solución abarca el desarrollo de una plataforma genérica basada en la configuración de reglas y hechos que conforman un juego, además de la base de conocimientos necesaria para implementar una plataforma pedagógica, dicha plataforma la llamaremos Plataforma G-Learning.
  • 21. 4 Justificación El juego como Herramienta de Aprendizaje A pesar de que hoy en día los videojuegos en sus múltiples plataformas están focalizados casi por completo en ofrecer diversión, existe un gran potencial en el juego como herramienta pedagógica. Los videojuegos bien enfocados son una herramienta útil para fomentar la curiosidad y estimular la creatividad, entregar un canal de comunicación para los actores del proceso educativo y entregar mensajes didácticos. Este potencial es suficiente para expandir el mercado del videojuego desde el nicho de la entretención hasta el nicho de la educación. Este enfoque es llamado G-Learning, el cual puede considerarse una evolución del E-Learning. Este es un método de enseñanza basado en el Juego Didáctico asociado a aprendizaje significativo (conocimiento perdurable, no cortoplacista) y pensamiento crítico (aplicación de acuerdo a lo aprendido en procesos didácticos). La educación o el aprendizaje ya no se limitan a un espacio-tiempo determinado y definido3 . En el caso de estudiantes de 15 años de edad de países de la OCDE, más de un 90% asiste a una escuela donde tiene acceso a un ordenador, pero menos del 5% usa el ordenador en el aula durante más de una hora a la semana. Por otra parte, más del 75% de los docentes utiliza casi diariamente el ordenador para su trabajo, por no hablar de los usos privados, pero apenas se sirve de él en el aula.4 3 (UNESCO, 2005) 4 (UNESCO, 2012)
  • 22. 5 Empresa Gamelena. Ilustración 1 - Isotipo Gamelena  Misión: Estimular la curiosidad, potenciar la creatividad, generar motivación para el aprendizaje y brindar entretenimiento a través del juego didáctico.  Visión: Contribuir a la formación integral de todos los niños del país.  Valores Estratégicos: Diversión, Creatividad, Educación, Sociabilidad, Compromiso, Responsabilidad.  Responsable: Rodrigo Riquelme  E-Mail: rodrigo.riquelme.e@gmail.com Gamelena es un Proyecto que empezó a conceptualizarse el 2013 a partir de los ramos de Innovación Tecnológica e Innovación y Emprendimiento en la Facultad de Ingeniería de la Universidad Mayor. La motivación de este proyecto es brindar entretención de forma sana, a través de juegos sencillos enfocados en jugadores casuales que fomenten la socialización, la educación y el desarrollo de habilidades transversales. En Gamelena creemos que las cosas excepcionales se logran con compromiso y pasión. Nos divierte lo que hacemos y esa diversión la transmitimos a nuestros clientes.
  • 23. 6 II. ANÁLISIS Situación Actual de la Educación en Chile Indicadores Internacionales Existe una gran diferencia entre Chile y los países más desarrollados pertenecientes a la OCDE5 , como puede verse en el siguiente ranking de la prueba PISA6 que fue tomada a cerca de 510.000 estudiantes en 65 países el año 2012 para las áreas de Matemática, Ciencia y Lenguaje. En esa oportunidad, Chile obtuvo 423 puntos, mientras que los países de la OCDE promediaron 71 más. La prueba PISA, además, reveló que la puntuación de los chilenos está 190 puntos por debajo de Shanghai, que obtuvo el mejor desempeño, con 613 puntos. En Lectura, los estudiantes chilenos obtuvieron 441 puntos, ubicándose en el lugar 47° de los 65 países participantes. Acá también se observa una importante distancia respecto de los países de la OCDE, que promedian 496 puntos, 55 más que Chile. Considerando las tres pruebas aplicadas, sólo el 0,2% de los escolares chilenos tuvo un rendimiento destacado, es decir, que se ubicaron en los niveles 5 y 6 de desempeño. Mientras que el 97,8% no tuvo puntajes altos en ninguna de las evaluaciones7 . 5 Organización para la Cooperación y el Desarrollo Económicos. Organismo de cooperación internacional, cuyo objetivo es coordinar sus políticas económicas y sociales. 6 Programme for International Student Assesment, prueba entregada por la OCDE que se realiza en varios países para determinar la valoración internacional de los alumnos. 7 (BBC, 2013)
  • 24. 7 Ilustración 2 - Promedios prueba PISA 2012 - La Tercera
  • 25. 8 En Abril del 2014 se dieron a conocer los resultados de la segunda parte de la prueba internacional PISA, “Solución Creativa de Problemas”, aplicada en 2012, cuando por primera vez Chile rinde el test en esta área. Según consigna el informe, “entre los países de la OCDE, Chile es el país de más bajo rendimiento, con un puntaje promedio de 448 puntos. Esto significa que la brecha entre el país más alto y el más bajo rendimiento de la OCDE es de 113 puntos de calificación - muy por encima de la desviación estándar”8 . Además, el informe señala que “alrededor del 90% de los estudiantes de Corea se encuentran por encima de la puntuación media de Chile y sólo el 10% de los estudiantes chilenos se ubica por encima de la puntuación media de Corea”. Según el documento, quienes lideran los resultados son los estudiantes de Singapur y Corea del Sur quienes obtuvieron los puntajes más altos resolviendo problemas, con evaluaciones que superan los 560 puntos, ubicándose en los niveles máximos de la escala de evaluación (5 y 6). Asimismo, Japón, Macao-China, Hong Kong- China, Shanghai-China y China Taipei figuraron entre los de mejor rendimiento. 8 (PISA, 2012)
  • 26. 9 Desempeño en resolución de problemas Desempeño en resolución de problemas, comparado con estudiantes de todo el mundo con desempeño similar en matemáticas, lectura y ciencias Desempeño en resolución de problemas, por proceso Desempeño en resolución de problemas, por naturaleza de la situación del problema Puntaje medio en PISA 2012 Porcentaje de alumnos Con bajo rendimiento (Bajo Nivel 2) Porcentaje de alumnos destacados (Nivel 5 o 6) Diferencia por sexo (niños - niñas) Porcentaje de solución de tareas medido en la adquisición de conocimientos Porcentaje de solución de tareas medido en la utilización de conocimientos Porcentaje de solución en ítems referentes a problemas en situaciones estáticas Porcentaje de solución en ítems referentes a problemas en situaciones dinámicas Puntaje Medio % % Puntos de diferencia Puntos de diferencia Porcentaje correcto Porcentaje correcto Porcentaje correcto Porcentaje correcto Promedio OCDE 500 21,4 11,4 7 -7 45,5 46,4 47,1 43,8 Singapur 562 8,0 29,3 9 2 62,0 55,4 59,8 57,5 Corea 561 6,9 27,6 13 14 62,8 54,5 58,9 57,7 Japón 552 7,1 22,3 19 11 59,1 56,3 58,7 55,9 Macao-China 540 7,5 16,6 10 8 58,3 51,3 57,0 51,7 Hong Kong-China 540 10,4 19,3 13 -16 57,7 51,1 56,1 52,2 Shanghai-China 536 10,6 18,3 25 -51 56,9 49,8 56,7 50,3 Taipei-China 534 11,6 18,3 12 -9 56,9 50,1 56,3 50,1 Canadá 526 14,7 17,5 5 0 52,6 52,1 52,7 50,5 Australia 523 15,5 16,7 2 7 52,3 51,5 52,8 49,9 Finlandia 523 14,3 15,0 -6 -8 50,2 51,0 52,1 47,7 Inglaterra (Reino Unido) 517 16,4 14,3 6 8 49,6 49,1 49,5 47,9 Estonia 515 15,1 11,8 5 -15 46,8 49,5 49,7 45,6 Francia 511 16,5 12,0 5 5 49,6 49,4 50,3 47,6 Países Bajos 511 18,5 13,6 5 -16 48,2 49,7 50,4 46,5 Italia 510 16,4 10,8 18 10 49,5 48,0 49,5 46,8 República Checa 509 18,4 11,9 8 1 45,0 46,9 46,2 44,4 Alemania 509 19,2 12,8 7 -12 47,5 49,5 49,4 46,3 Estados Unidos 508 18,2 11,6 3 10 46,5 47,1 46,6 45,9 Bélgica 508 20,8 14,4 8 -10 47,0 47,5 48,3 45,4 Austria 506 18,4 10,9 12 -5 45,7 47,4 48,3 43,0 Noruega 503 21,3 13,1 -3 1 47,7 48,1 49,4 44,5 Irlanda 498 20,3 9,4 5 -18 44,6 45,5 44,4 44,6 Dinamarca 497 20,4 8,7 10 -11 44,2 48,1 47,9 42,3 Portugal 494 20,6 7,4 16 -3 41,6 45,7 44,0 42,0 Suecia 491 23,5 8,8 -4 -1 45,2 44,6 47,7 41,6 Federación Rusa 489 22,1 7,3 8 -4 40,4 43,8 43,8 39,7 República Eslovaca 483 26,1 7,8 22 -5 40,5 43,2 44,2 38,8 Polonia 481 25,7 6,9 0 -44 41,3 43,7 44,1 39,7 España 477 28,5 7,8 2 -20 40,0 42,3 42,3 39,8 Eslovenia 476 28,5 6,6 -4 -34 37,8 42,3 42,9 36,7 Serbia 473 28,5 4,7 15 11 37,7 40,7 40,3 36,8 Croacia 466 32,3 4,7 15 -22 35,2 40,5 39,3 35,6 Hungría 459 35,0 5,6 3 -34 35,2 37,6 38,2 33,9 Turquía 454 35,8 2,2 15 -14 32,8 36,0 35,8 32,7 Israel 454 38,9 8,8 6 -28 38,7 37,0 39,7 35,6 Chile 448 38,3 2,1 13 1 30,9 35,2 34,9 31,8
  • 27. 10 Chipre 445 40,4 3,6 -9 -12 33,6 34,8 37,0 31,4 Brasil 428 47,3 1,8 22 7 28,0 32,0 29,8 29,1 Malasia 422 50,5 0,9 8 -14 29,1 29,3 30,1 27,4 Emiratos Árabes Unidos 411 54,8 2,5 -26 -43 28,4 29,0 29,9 27,1 Montenegro 407 56,8 0,8 -6 -24 25,6 30,0 30,3 25,1 Uruguay 403 57,9 1,2 11 -27 24,8 27,9 27,5 24,8 Bulgaria 402 56,7 1,6 -17 -54 23,7 26,7 28,4 22,3 Colombia 399 61,5 1,2 31 -7 21,8 27,7 26,3 23,7 Tabla 1 - Promedios en resolución de problemas PISA 2012 - OCDE
  • 28. 11 Indicadores Nacionales En Historia y Geografía y Ciencias Sociales, un 27,6% de los estudiantes de 4° básico alcanza un Nivel de aprendizaje adecuado y, por lo tanto, logran los aprendizajes descritos en el currículo para este nivel. Por otro lado, el 36,6% de los estudiantes alcanza los aprendizajes del Nivel de Aprendizaje elemental mientras que el 35,9% se encuentra en el nivel de aprendizaje insuficiente. La siguiente tabla muestra la distribución nacional de resultados 4° básicos 2012 según Niveles de Aprendizaje en Historia, Geografía y Ciencias Sociales y su variación con la medición del año 20109 . Ilustración 3 - Resultados 4° básicos 2012 en Historia, Geografía y Ciencias Sociales - MINEDUC 9 (MINEDUC, 2013)
  • 29. 12 Participación de Padres y Apoderados A continuación una figura que nos demuestra el nivel de compromiso de padres con sus hijos en términos de incentivo de lectura. Ilustración 4 - Niveles de incentivo a la lectura en el hogar - MINEDUC Los padres y apoderados que se encuentran en un nivel de incentivo bajo, declaran realizar con muy poca frecuencia estas prácticas o solo una de ellas de manera frecuente10 . Para pasar de un nivel de incentivo bajo a medio resulta necesario leer cuentos o historias con el estudiante, acompañarlo mientras lee y conversar de sus lecturas, al respecto puede ser de utilidad participar en otras instancias relacionadas con los contenidos de sus lecturas como el juego con contenido pedagógico. 10 (MINEDUC, 2013)
  • 30. 13 Modelo de Negocios Objetivos Generales y Específicos Objetivo General “Proyectar una mejora de un 10% de los promedios de notas en Historia y Geografía, para los alumnos de 5° y 6° Básico que participen en el programa educacional, a partir del 2015” Objetivos Específicos  Involucrar a los RRHH necesarios para crear una base de conocimientos con valor pedagógico.  Diseñar e implementar un prototipo tecnológico de juego didáctico de Historia.  Planificar la ejecución de una marcha blanca en por lo menos un colegio municipal y/o particular.
  • 31. 14 Situación a Alcanzar Ilustración 5 - Diagrama del modelo de negocios – fuente propia Para los Alumnos Satisfacer la entretención, el estudio y entendimiento de la Historia de Chile en un único servicio. “Educar a través de la entretención”. Para los Profesores Brindar una herramienta que permita mejorar la enseñanza de la Historia de Chile de una forma didáctica y cercana a la realidad de aprendizaje de los alumnos (el juego).
  • 32. 15 Para los Padres y Apoderados Entregar una instancia de participación de los padres en el proceso educacional de sus hijos a través del juego. Para la Sociedad Propiciar la formación de personas con ganas de aprender, más cultas, más integradas a la sociedad, con mejor comprensión de su entorno, más tolerantes, no discriminadoras y con mejor capacidad de toma de decisiones.
  • 33. 16 Canvas del Modelo de Negocios El Modelo Canvas es una herramienta que describe un modelo de negocios dividiéndolo en 9 módulos básicos que cubren las áreas: cliente, oferta infraestructura y visibilidad económica, sirve de apoyo a la generación de un proyecto de una estrategia de negocios11 . Segmentos de Clientes Los clientes son el centro de cualquier modelo de negocios, los segmentos de clientes pertenecen a grupos diferentes si están dispuestos a pagar por diferentes aspectos de la oferta.  Colegios: Es el segmento principal, el modelo de negocios está enfocado en satisfacer sus necesidades a través de la propuesta de valor.  Jugadores Casuales: Les interesa la entretención, si bien el modelo de negocio no está enfocado en este segmento, se considera su existencia para acciones futuras. Propuesta de valor Se crea valor para un segmento de mercado mediante una combinación específica de elementos adecuados a sus necesidades.  Entretener Educando: Entregar las herramientas para satisfacer necesidades educacionales y entretener a través de un servicio novedoso, cómodo y útil. Canales Los canales de comunicación, distribución y venta establecen el contacto entre la empresa y los clientes. 11 (Osterwalder, 2013)
  • 34. 17  Weichan.cl: Los servicios se entregan en su totalidad en el sitio web, apoyado por correo electrónico para notificar a los clientes y entregar soporte  Entrevistas: Con profesores, directores, sostenedores de colegios. Relaciones con Clientes La relación con los clientes está basada en la captación y fidelización.  Weichan.cl: Se usa el sitio web y el correo electrónico de la plataforma para dar a conocer novedades y ofertas.  Redes Sociales: Representan un medio de comunicación masiva de bajo costo y de gran alcance. Fuentes de Ingreso Se refiere al flujo de caja que genera una empresa en los diferentes segmentos del mercado.  Software como Servicio: Los colegios, pagando una cuota, pueden configurar la plataforma según sus necesidades de cobertura de contenidos y segmentos de jugadores.  Publicidad: Proveedores de publicidad como Google AdSense pagan una comisión por el tráfico generado por sus banners mediante una comisión por clic en sus banners publicitarios. Recursos Clave Son los activos más importantes para que el modelo de negocios funcione.  Recursos Humanos: Ingenieros de Investigación y Desarrollo, Community Managers, Relacionadores Públicos.  Recursos Intelectuales: Código fuente, algoritmos, propiedad intelectual.
  • 35. 18 Actividades Clave Corresponde a las acciones más importantes que debe realizar la empresa para que el modelo de negocios funcione.  Plataforma G-Learning: Creación y mantención de la plataforma de juegos y generación de conocimientos de valor pedagógico. Socios Clave Esto se refiere a la red de proveedores y socios que contribuyen al funcionamiento del modelo de negocio.  Colegios: Contribuyen a la marcha blanca y en el levantamiento de base de conocimientos.  Digital Ocean: Provee la infraestructura Cloud que permite levantar la plataforma. Estructura de Costos Describe los costes que implica la puesta en marcha el modelo de negocio.  Cloud Services: Costo de suscripción mensual a Digital Ocean.  Sueldos: Costo de horas hombre para las actividades de investigación, desarrollo, marketing y relaciones públicas.
  • 36. 19 Ilustración 6- Canvas del modelo de negocios - fuente propia
  • 37. 20 Marco Teórico Estudio de la Historia El estudio de Historia trata de organizar el pasado y, por lo tanto, su estudio sirve para fortalecer otras ramas del conocimiento; es útil para la literatura, para la filosofía, para el conocimiento del progreso científico, para la música, etc. De hecho, hay muchas disciplinas que no son posibles de comprender sin conocer algo de su historia. Por otra parte el estudio de la Historia al estar íntimamente ligado a la lectura, hace inevitable el desarrollo del lenguaje y de la comprensión de lectura. En las sociedades contemporáneas la Historia tiene un papel importante. Vivimos en el seno de sociedades que utilizan la Historia para legitimar acciones políticas, culturales y sociales.12 La Historia se puede considerar como la memoria colectiva de la humanidad. Sin memoria individual, una persona pierde su identidad, y no sabría cómo actuar frente a los demás. La memoria colectiva es similar, aunque su pérdida no paralice de inmediato la actividad privada cotidiana nos priva de una de las referencias más importantes para guiar las acciones y relaciones con nuestro entorno. Juegos Didácticos El juego didáctico es una estrategia que se puede utilizar en cualquier nivel o modalidad. El juego que posee un objetivo educativo, se estructura como un juego reglado que incluye momentos de acción pre-reflexiva y de simbolización o apropiación abstracta-lógica de lo vivido para el logro de objetivos de enseñanza curriculares, cuyo objetivo último es la apropiación por parte del jugador, de los contenidos fomentando el desarrollo de la creatividad. El uso de esta estrategia 12 (Prats, y otros, 1998)
  • 38. 21 persigue una cantidad de objetivos que están dirigidos hacia la ejercitación de habilidades en áreas determinadas.13 Es de importancia conocer las características que debe tener un juego para que sea didáctico y manejar su clasificación para saber cuál utilizar y cuál sería el más adecuado para un determinado grupo de educandos. Una vez definida la naturaleza del juego y sus elementos es donde surgen las preguntas de cómo elaborar el juego, con qué objetivo crearlo, cuáles son los pasos para realizarlo y cuáles son los materiales más adecuados para su realización. Las estrategias deben contribuir a motivar a los niños y niñas para que sientan la necesidad de aprender. En este sentido debe servir para despertar por sí mismas la curiosidad y el interés de los alumnos, pero a la vez hay que evitar que sea una ocasión para que el alumno con dificultades se sienta rechazado, comparado indebidamente con otros o herido en su autoestima personal. Las reglas del juego constituyen un elemento organizativo del mismo. Estas reglas son las que van a determinar qué y cómo hacer las cosas, y además dan la pauta de cómo cumplir las actividades planteadas. Una vez establecidos estos objetivos es necesario conocer sus características para realizarlo de una manera práctica, sin olvidar que debe contemplar lo siguiente14 :  Intención didáctica.  Objetivo didáctico.  Reglas, limitaciones y condiciones. 13 (Chacón, 2008) 14 (Chacón, 2008)
  • 39. 22  Un número de jugadores.  Una edad específica.  Diversión.  Tensión.  Trabajo en equipo.  Competición. Sistemas Basados En Reglas Una plataforma genérica de G-Learning debe servir como herramienta de configuración de reglas y hechos, ya que todos los juegos necesitan reglas y hechos para su funcionamiento, sean físicos o virtuales. Los sistemas basados en reglas trabajan mediante la aplicación de reglas, comparación de resultados (match), resolución de conflictos (conflict resolution) y aplicación de las nuevas reglas (act) basadas en la situación modificada. Existen algoritmos e implementaciones especializadas para la configuración de reglas, uno de los métodos más aceptados es el algoritmo Rete.
  • 40. 23 Ilustración 7 - Sistema basado en reglas – quazoo.com Algoritmo Rete Fue inventado por el Dr. Charles Forgy y documentado en su tesis de doctorado en 1978-79 para la Universidad Carnegie Mellon en Pittsburg, Pennsylvania. Una versión simplificada del documento fue publicado en 1982. La palabra Rete proviene de "red" en latín15 . Este algoritmo es un método para comparar un conjunto de patrones o reglas con un conjunto de objetos y así determinar todos los posibles emparejamientos, esto reduce sensiblemente el tiempo para calcular las reglas que pueden ser activadas, evitando iteraciones sobre la memoria de producción. Para ello genera un grafo que representa el conjunto de reglas que es usado para determinar si los antecedentes de estas reglas se verifican. 15 (Wikipedia, 2014)
  • 41. 24 Ilustración 8 - Sistema basado en el algoritmo Rete - Red Hat Implementación De Rete El algoritmo se puede dividir en 2 partes: compilación de reglas y tiempo de ejecución. La compilación de reglas se describe cómo las reglas en la memoria productiva se configuran para generar una red de discriminación eficiente. Es una red de discriminación que se usa para filtrar datos. La idea es filtrar los datos de medida que se propagan a través de la red. En la parte superior de la red los nodos tendrán muchas correspondencias y a medida que bajemos de la red habrá menos correspondencias. La parte inferior de la red son los nodos terminales.
  • 42. 25 En su tesis, el Dr. Forgy describió 4 nodos básicos: raíz, entrada-1, entrada-2 y terminales16 . Ilustración 9 - Nodos Rete - Red Hat El nodo raíz es donde todos los objetos entran en la red. A partir de ahí, se pasa inmediatamente a un Nodo Tipo Objeto. El propósito de los Nodo Tipo Objeto es asegurarse de que el motor no trabaje más de lo necesario. Ilustración 10 – Nodos Tipo Objeto para JBoss Drools - Red Hat 16 (Red Hat, 2014)
  • 43. 26 Los Nodos Tipo Objeto pueden propagarse a Los Nodos Alfa, Nodos Adaptadores de Entrada Izquierda y Nodos Beta. Los Nodos Alfa se utilizan para evaluar las condiciones literales. Por ejemplo, Account.name == "Mr trout" es una condición literal. Cuando hay múltiples condiciones literales para un solo tipo de objeto. Significa que si una aplicación hace preguntas acerca de un objeto Account, primero debe satisfacer la primera condición literal antes de que pueda continuar con el siguiente Nodo Alfa. A continuación se muestran las combinaciones Nodos Alfa para Cheese (name == "cheddar, strength =="strong "). Ilustración 11 - Nodos Alfa - Red Hat Drools Drools es un sistema de gestión de reglas de negocio (BRMS, por la sigla en inglés de business rule management system) con un motor de reglas basado en inferencia de encadenamiento hacia adelante (forward chaining), más correctamente conocido como sistema de reglas de producción, Ilustración 12 - Logotipo JBoss Drools - Red Hat
  • 44. 27 usando una implementación avanzada del algoritmo Rete, está desarrollado para el servidor de aplicaciones Red Hat JBoss, las reglas se implementan en lenguaje Java y Mvel17 . Drools extiende Rete al optimizar la propagación del Nodo Tipo Objeto a un Nodo Alfa utilizando arreglos (Hashes). Cada vez que un Nodo Alfa se añade a un Nodo Tipo Objeto se añade el valor literal como una clave para un arreglo con el Nodo Alfa como valor18 . Cuando una nueva instancia entra como Nodo Tipo Objeto, en lugar de propagar a cada Nodo Alfa, se puede en recuperar el Nodo Alfa correcto directamente desde el arreglo – evitando tener que controlar flujos innecesarios. Hay dos tipos de nodos de dos entradas: Nodos Join y Nodos Not - ambos son tipos de Nodos Beta. Los Nodos Beta son usados para comparar 2 objetos, y sus campos, el uno al otro. La entrada de la izquierda se llama Memoria Beta y recuerda todas las tuplas entrantes. La entrada de la derecha se llama Memoria Alfa y recuerda todos los objetos entrantes. 17 Lenguaje de expresión de tipo dinámico/estático, incrustable, para la Plataforma Java 18 (Red Hat, 2014)
  • 45. 28 Ilustración 13 - Nodo Join - Red Hat Para habilitar el primer objeto, en el caso “Cheese”, para entrar en la red se utiliza un Nodo Adaptador de Entrada Izquierda - esto toma un objeto como una entrada y se propaga a una única tupla de objetos. Los Nodos Terminales se usan para indicar que una única regla ha encontrado todas sus condiciones - en este punto podemos decir la regla tiene una correspondencia completa. Una regla con condiciones 'or' puede tener múltiples nodos terminales. Drools también realiza intercambio de nodos. Muchas reglas repiten los mismos patrones, compartir nodos permite colapsar esos patrones para que no tengan que ser re-evaluadas para cada caso individual. Las dos reglas siguientes comparten el mismo patrón de la primera, pero no la última.
  • 46. 29 La siguiente figura es una implementación en código Drools de patrones Rete. En la ilustración 11 se muestra la representación gráfica del código Drools de la Tabla 2, la red Rete muestra el Nodo Alfa como compartido, pero no los Nodos Beta. Cada Nodo Beta tiene su propio Nodo Terminal. El segundo patrón hubiera sido el mismo si también hubiese sido compartido. rule when Cheese( $chedddar : name == "cheddar" ) $person : Person( favouriteCheese == $cheddar ) then System.out.println( $person.getName() + " likes cheddar" ); end rule when Cheese( $chedddar : name == "cheddar" ) $person : Person( favouriteCheese != $cheddar ) then System.out.println( $person.getName() + " does not like cheddar" ); end Tabla 2 - Ejemplo de regla Rete escrita en Drools - Red Hat
  • 47. 30 Ilustración 11 - Nodos Rete compartidos - Red Hat
  • 48. 31 El siguiente diagrama ilustra una topografía básica Rete, y muestra las asociaciones entre diferentes tipos de nodos y recuerdos. Ilustración 12 – Esquema de sistema Rete - Wikipedia El diagrama proporciona una vista lógica de Rete. Las implementaciones pueden ser diferentes en detalles. En particular, el diagrama muestra entradas “dummy” ofreciendo activaciones a la derecha a la cabeza de las ramas de los nodos beta.
  • 49. 32 Node.js Es un conjunto de herramientas Open Source para el desarrollo de aplicaciones del lado del servidor basado en el motor V8 el cual es conocido por ser el motor Javascript19 de Google Chrome. Su meta es permitir construir aplicaciones altamente escalables y escribir código que maneje decenas de miles de conexiones simultáneas en una sólo una máquina física. En lenguajes como Java y PHP, cada conexión genera un nuevo hilo que potencialmente viene acompañado de 2 MB de memoria. En un sistema que tiene 8 GB de RAM, esto da un número máximo teórico de conexiones concurrentes de cerca de 4.000 usuarios. Node.js en lugar de generar un nuevo hilo de Sistema Operativo para cada conexión, dispara una ejecución de evento dentro del proceso del motor de Node.js. Ilustración 15 - Arquitectura de Node JS - zenika.com 19 Lenguaje de programación que se usa principalmente en los navegadores web (client side). Ilustración 14 - Logotipo Node.js - nodejs.org
  • 50. 33 NPM Node Packaged Modules o NPM es el gestor de paquetes oficial de Node.js. NPM se ejecuta a través de la línea de comandos y gestiona las dependencias de una aplicación. También permite a los usuarios instalar aplicaciones Node.js que están disponibles en el registro de NPM. NPM está escrito completamente en JavaScript y fue desarrollado por Isaac Z. Schlueter, con la inspiración de proyectos similares para PHP (PEAR) y Perl (CPAN) Nools Nools es una implementación del algoritmo Rete escrito completamente en Javascript, se instala como módulo de Node JS a través de NPM. Nools está fuertemente inspirado en Drools. Fue desarrollo por C2FO, una compañía de software financiero, para permitirles reflejar los eventos y cambios de estado de los mercados de forma dinámica. Ilustración 16 - Logotipo NPM - npmjs.org Ilustración 17 - Logotipo C2FO - c2fo.com
  • 51. 34 Al utilizar Nools se define un flujo que actúa como contenedor de reglas que luego se pueden utilizar para obtener una sesión Tabla 3 - Ejemplo de reglas Rete escritas en Nools - C2FO Express Es un framework liviano que proporciona pequeñas, pero robustas herramientas para servidores HTTP basadas en Node.js. Soporta 14 motores de plantilla a través de Consolidate.js. Se instala por NPM. define Message { text : '', constructor : function(message){ this.text = message; } } //find any message that starts with hello rule Hello { when { m : Message m.text =~ /^hello(s*world)?$/; } then { modify(m, function(){this.text += " goodbye";}); } } //find all messages then end in goodbye rule Goodbye { when { m : Message m.text =~ /.*goodbye$/; } then { console.log(m.text); } } Ilustración 18 - Logotipo Express - expressjs.org
  • 52. 35 Gulp Es un sistema de construcción, que se puede utilizar para automatizar tareas comunes en el desarrollo de un sitio web, tales como deployment y tests automatizados. Está construida sobre Node.js y escrito en JavaScript. Socket.io Socket.io es una librería que permite manejar eventos en tiempo real mediante una conexión TCP en JavaScript, permite una comunicación bidireccional cliente- servidor mediante una API de manejo de Web Sockets, se puede usar en el cliente y en el servidor, vía Node.js. Se instala por NPM. Ilustración 20 - Socket.io + Nodejs – lightstreamer.com Ilustración 19 - Logotipo Gulp - gulpjs.com
  • 53. 36 Git Git es un sistema de gestión de código fuente y control de revisiones con un énfasis en la velocidad, integridad de datos, y soporte para flujos de trabajo distribuidas, no lineales. Git fue inicialmente diseñado y desarrollado por Linus Torvalds para el desarrollo del kernel de Linux en 2005, y se ha convertido en el sistema de control de versiones más ampliamente adoptado para el desarrollo de software. Git es un Sistema no centralizado, por lo que no existe el concepto de repositorio principal, cada uno de los clientes de un proyecto versionado con Git, puede a la vez ser servidor. Mongo DB Es un sistema de base de datos NoSQL20 orientado a documentos, en vez de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON21 con un esquema dinámico (MongoDB llama ese formato BSON22 ), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida. 20 Bases de datos no relacionales, con énfasis en la velocidad y escalabilidad. 21 Javascript Object Notation, formato ligero para el intercambio de datos. 22 Binary JSON. Ilustración 21 - Isotipo Git - git-scm.com Ilustración 22 - Logotipo Mongo DB - mongodb.org
  • 54. 37 Tecnologías Del Lado Del Navegador HTML 5 - Web Sockets Web Sockets es una tecnología que proporciona un canal de comunicación bidireccional y full-duplex sobre un único socket TCP23 . Está diseñada para ser implementada en navegadores y servidores web, pero puede utilizarse por cualquier aplicación cliente/servidor. La API de Web Sockets está siendo normalizada por la W3C24 , y el protocolo Web Socket, a su vez, está siendo normalizado por el IETF25 . CSS 3 Es un lenguaje usado para definir la presentación de un documento estructurado escrito en HTML, CSS 3 a diferencia de sus predecesores, no está limitada a una representación en 2 dimensiones de un documento web, ya que además permite representar escenarios tridimensionales mediante los atributos transform y transition los cuales soportan 3 coordenadas (x, y, z) para el manejo de 3 dimensiones. 23 Transmission Control Protocol, uno de los protocolos fundamentales en Internet. 24 World Wide Web, comunidad internacional donde sus organizaciones miembro y el público en general trabajan conjuntamente para desarrollar estándares Web. 25 Internet Enginnering Task Force, organización internacional abierta de normalización de la ingeniería de Internet, actuando en áreas como transporte, encaminamiento, seguridad. Ilustración 23 - Logotipo HTML5 – W3C Ilustración 24 - Logotipo CSS3 - W3C
  • 55. 38 Tangerine Tangerine es un Framework de alto nivel cuyo objetivo es automatizar la creación de Back Office a través la definición de sus módulos vía archivos XML. Tiene herramientas automatizadas para levantar un back-office con módulos y perfilamiento de usuarios, está basado en Zend Framework PHP. A través de Zend_DB, soporta casi todos los motores de bases de datos relacionales de clase mundial como MS SQL Server, Oracle, MySQL y Postgres. Usa Dojo Toolkit, un framework Javascript, para el layout y creación de widgets del lado del cliente. Se usará Tangerine para el desarrollo del Back Office lo que permitirá minimizar su tiempo de desarrollo, mostrando un look and feel estándar del framework, para enfocar la personalización del look and feel en el juego (el front-office). Composer Es un gestor de dependencias a nivel de aplicación para PHP, que proporciona un formato estándar para la gestión de las dependencias de software y librerías necesarias. Composer está fuertemente inspirado por NPM de Node.js y bundler de Ruby, Tangerine usa Composer para la gestión de dependencias PHP. Ilustración 25 - Isotipo Tangerine – fuente propia Ilustración 26 - Logotipo Composer - getcomposer.org
  • 56. 39 Zend Framework Zend Framework es un framework open source para PHP26 desarrollado por Zend Technologies, la cual es empresa que ha desarrollado las versiones de PHP desde 1997 a la fecha. Zend Framework implementa el patron MVC27 , es 100% orientado a objetos y sus componentes tienen un bajo acoplamiento por lo que se pueden usar en forma independiente. Brinda un estándar de codificación y certificaciones brindadas por Zend Technologies. Cuenta con soporte para internacionalización y localización28 de aplicaciones. Entrega herramientas para crear la estructura de directorios y clases por línea de comandos, integración con PHP Unit por medio de Zend_Test_PhpUnit para facilitar y automatizar la creación de Test Unitarios. Dojo Toolkit Es un framework Javascript que contiene APIs y widgets (controles) para facilitar el desarrollo de aplicaciones Web. Contiene un sistema de empaquetado inteligente, efectos de UI, APIs drag and drop, widgets, abstracción de eventos, APIs de almacenamiento en el cliente, localización, e interacción de APIs con AJAX. 26 Lenguaje de programación de uso general de código del lado del servidor. 27 Patrón de diseño que separa una aplicación en tres capas: modelo, vista y controlador. 28 Soporte multi-idioma. Ilustración 27 - Logotipo Zend Framework - Zend Technologies Ilustración 28 - Logotipo Dojo Toolkit - The Dojo Foundation
  • 57. 40 Viene integrado en frameworks como Zend Framework, en IDEs como IBM Rational Application Developer y herramientas de desarrollo rápido como Spring Roo. MySQL MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario. MySQL Standard Edition incluye el motor InnoDB, lo que la convierte en una base de datos compatible con ACID29 para transacciones seguras. La replicación MySQL permite entregar aplicaciones escalables y de alto rendimiento. Cloud Engines Ilustración 30 - Proveedores de cloud services - Amazon, Red Hat, Heroku, Google El enfoque de Web Hosting tradicional no encaja con las necesidades de la Plataforma G-Learning, ni de Weichan en forma óptima, ya que generalmente los servicios de Hosting tradicionales ofrecen un servidor pre-configurado, generalmente con un ambiente LAMP (Linux, Apache, MySQL, PHP) compartido e impersonalizable, lo que nos da una limitación técnica. Por otra parte en estos 29 Atomicidad, consistencia, aislamiento y durabilidad. Ilustración 29 - Logotipo MySQL - Oracle Corporation
  • 58. 41 ambientes generalmente el manejo de archivos es vía FTP, sin control de versiones, lo cual es un obstáculo para el desarrollo ágil. Existen distintos enfoques y alternativas comerciales para publicar una aplicación como Weichan, los cuales se llaman cloud engines, éstos son un tipo de cloud services enfocados al desarrollo de aplicaciones. Para este enfoque de desarrollo de aplicaciones en la nube existen proveedores tales como: Amazon Web Services, Google App Engine, Red Hat OpenShit y Heroku, entre otros, generalmente el costo del servicio parte desde planes gratuitos o muy baratos, los cuales pueden ser mejorados en prestaciones, mediante pago. Estos servicios tienen una interfaz de administración de aplicaciones vía web, algunos proveen herramientas de escritorio e integración a ambientes de desarrollo (IDEs). Digital Ocean Por otra parte Digital Ocean ofrece un servicio de VPS30 , lo cual difiere en cierta forma del modelo de cloud engine, pero resuelve el mismo problema. Usa el concepto de Droplet, el cual es básicamente una imagen de sistema operativo, configurado para un fin específico, para ello proporciona acceso a la consola del sistema operativo vía web o cliente ssh31 de escritorio. Es posible capturar la imagen de un Droplet, para poder volver a levantar la imagen del sistema operativo. 30 Virtual Private Server, permite gestionar un servidor virtual con su propio sistema operativo. 31 Protocolo para acceder a máquinas remotas a través de una red. Ilustración 31 - Logotipo Digital Ocean - digitalocean.com
  • 59. 42 Docker Docker es un proyecto de código abierto y una herramienta que puede empaquetar una aplicación y sus dependencias en un contenedor virtual que se puede ejecutar en cualquier servidor Linux. Esto permite flexibilidad y portabilidad para que la aplicación se pueda ejecutar en diferentes instalaciones, como una nube pública, nube privada, “metal desnudo”, etc. Permite crear "contenedores". Estos contenedores de Docker pueden definirse como máquinas virtuales ligeras, Las características principales de estos contenedores son la portabilidad, la ligereza y la autosuficiencia. Un contenedor Docker no contiene todo un sistema operativo, sino únicamente aquellas librerías, archivos y configuraciones necesarias para desplegar las funcionalidades que contenga. Asimismo Docker se encarga de la gestión del contenedor y de sus aplicaciones. Docker extiende LXC32 . 32 Linux Containers: Tecnología de virtualización en el nivel de sistema operativo para Linux que permite crear múltiples sistemas totalmente aislados entre si sobre la misma máquina o sistema anfitrión, sin emular un sistema operativo completo para cada instancia. Ilustración 32 - Isotipo Docker - docker.com
  • 60. 43 Metodología de Desarrollo Se trabajará en el área del conocimiento y dentro de un proceso de mejora continua, para esto se usará la metodología Lean de desarrollo de software, haciendo hincapié en el desarrollo iterativo e incremental, optimizar, reducir desperdicios, énfasis en la calidad, ciclos cortos de entrega e involucrar a todos los actores dentro de lo posible. La metodología Lean es una traducción de los principios y las prácticas de la forma de producir originado en el Sistema de Producción de Toyota trasladado hacia el área del desarrollo de software33 , esta tiene los siguientes principios:  Optimizar el todo.  Eliminar desperdicios.  Calidad en la construcción.  Aprender constantemente.  Entregar rápido.  Involucrar a todo el mundo.  Seguir mejorando. Otro principio importante dentro de la metodología de desarrollo es la orientación a prototipos: para cada iteración se mostrarán pequeños prototipos funcionales como pruebas de concepto, de forma de liberar rápidamente y dar visibilidad. Uno de los principios implícitos de Lean es “equivocarse rápido” de esta forma se minimizan 33 (Poppendieck, y otros, 2003)
  • 61. 44 los riesgos y los costos de las decisiones equivocadas y se toman antes las decisiones correctas. En la metodología Lean las actividades de medición, construcción y aprendizaje son continuas y transversales para las etapas de definición, diseño, desarrollo y testing. Ilustración 33 - Ciclo iterativo Lean – bravent.net
  • 62. 45 III. INGENIERÍA DE REQUERIMIENTOS Requerimientos Funcionales Juego N° Requerimiento RFJ-01 Autentificar usuario RFJ-02 Iniciar nuevo juego RFJ-03 Invitar a usuario RFJ-04 Sincronizar usuarios RFJ-05 Administrar juego RFJ-06 Guardar y cargar juego Tabla 4 - Requerimientos funcionales juego - fuente propia
  • 63. 46 Requerimientos Funcionales Back Office N° Requerimiento RFB-01 Autentificar Usuario RFB-02 Administrar Módulos y Acciones RFB-03 Administrar Perfiles RFB-04 Administrar Grupos RFB-05 Administrar Usuarios RFB-06 Administrar Preguntas RFB-07 Administrar Reglas y Cartas Tabla 5 - Requerimientos funcionales back office - fuente propia
  • 64. 47 Requerimientos No Funcionales juego N° Requerimiento RNFJ-01 El sistema debe funcionar en Chrome 36, Firefox 32, Safari 8 e Internet Explorer 11. RNFJ-02 El Sistema debe ser escalable vertical y horizontalmente. RNFJ-03 El sistema debe funcionar y ser usable en PCS y dispositivos móviles. RNFJ-04 Debe monitorearse la carga del sistema. RNFJ-05 El sistema debe contar con medidas de seguridad que resguarden la integridad del juego. RNFJ-06 El sistema debe propiciar la usabilidad y facilitar la comprensión de la dinámica del juego para los jugadores. Tabla 6 - Requerimientos no funcionales juego - fuente propia
  • 65. 48 Requerimientos No Funcionales BackOffice N° Requerimiento RNFB-01 El sistema debe funcionar en Chrome 36, Firefox 32, Safari 8 e Internet Explorer 9. RNFB-02 Las acciones del usuario que involucren temas de seguridad deben ser validadas en el servidor RNFB-03 El Sistema debe ser escalable vertical y horizontalmente. RNFB-04 Las acciones de usuario que involucren temas de usabilidad deben ser implementadas en el navegador. RNFB-05 El sistema debe incluir módulos de seguridad que impidan accesos a módulos no autorizados. RNFB-06 El sistema debe propiciar la usabilidad, facilitando el mantenimiento, la revisión y la reversibilidad de los cambios realizados. Tabla 7 - Requerimientos no funcionales back office - fuente propia
  • 66. 49 IV. INGENIERÍA DE DISEÑO Modelo del Dominio La plataforma está compuesta por 2 subdominios que comparten información la que se almacena en base de datos y en archivos json, estas dos subdominios son.  El Juego el cual estará soportado por Node.js, Nools y Express.  El Back Office el cual estará soportado por Tangerine Las otras entidades del dominio representadas en el siguiente diagrama persistirán en base de datos. Ilustración 34 - Diagrama del modelo de dominio
  • 67. 50 Casos de Uso y Actividades Vista General de Casos de Uso La siguiente ilustración muestra los casos de uso generales del sistema, incluyendo acciones del subdominio juego y del subdominio back office, los perfiles son profesor, alumno y apoderado, también está el perfil gamelena el cual realiza labores de soporte y administración de bajo nivel usando el back office. Ilustración 35 – Diagrama general de casos de uso
  • 68. 51 Detalle de Casos de Uso El detalle de los casos de uso se desprende de los requerimientos funcionales. Se contemplan los perfiles alumno (también llamado jugador en algunos casos), profesor y apoderado. Iniciar Sesión Juego Pantalla 1 - Iniciar sesión juego El alumno debe ingresar sus credenciales (usuario y contraseña) para iniciar sesión y unirse a un juego o ingresar al back office, según sea el caso. El inicio de sesión es extendido por las actividades. Resolver captcha: después de 5 intentos fallidos de ingreso, el jugador deberá resolver un código captcha, como medida de seguridad ante ataques automatizados. Enviar contraseña por email: si un jugador olvidó su contraseña puede solicitar que esta le sea enviada por email, en este caso se generará una nueva contraseña temporal. También existe la acción de cerrar sesión, lo cual cierra la sesión abierta.
  • 69. 52 Ilustración 36 - Diagrama de casos de uso "iniciar sesión juego" Ilustración 37 - Diagrama de actividades CU01 "iniciar sesión"
  • 70. 53 Ilustración 38 - Diagrama de actividades CU02 "cerrar sesión" Ilustración 39 - Diagrama de actividades CU03 "reiniciar contraseña"
  • 71. 54 Crear Nuevo Juego Un profesor puede crear un nuevo juego e invitar a sus alumnos. Un profesor puede participar en los juegos que ha creado, si lo desea. Cada uno de los personajes del juego arranca con 5 puntos de vida. Un profesor debe invitar a alumnos para que se unan a un juego, estos jugadores reciben un link vía email, para facilitar el proceso de unirse a un juego. Se debe verificar que el profesor que posea una sesión válida. Ilustración 40 - Diagrama de casos de uso “crear juego”
  • 72. 55 Ilustración 41 - Diagrama de actividades CU04 "validar sesión" Ilustración 42 - Diagrama de actividades CU05 "crear nuevo juego"
  • 73. 56 Ilustración 43 - Diagrama de actividades CU06 "invitar a alumnos" Sincronizar Jugadores Los alumnos deben sincronizan sus avances en el juego en tiempo real y en forma automática, estos alumnos (o jugadores) participan en 2 equipos. Según la cantidad de jugadores, el juego estará bajo una de las siguientes modalidades:  1 jugador versus 1 jugador.  2 jugadores versus 2 jugadores.
  • 74. 57  4 jugadores contra 4 jugadores. Se debe verificar que los jugadores posean una sesión válida. Ilustración 44 - Diagrama de casos de uso "sincronizar jugadores"
  • 75. 58 Ilustración 45 - Diagrama de actividades CU07 "sincronizar jugadores” Administrar Juego Pantalla 2 - Pantalla principal del juego
  • 76. 59 Una vez que un jugador se haya unido a un juego y habiéndose éste iniciado, podrá administrar la forma en que este participa en el juego, esto incluye: Mostrar estado: un jugador (alumno) puede ver su estado de avance en el juego, y puntos de vida. Mostrar estado de otros jugadores: el jugador también puede ver el estado de los otros jugadores. Listar cartas: un jugador puede ver en cualquier momento del juego sus propias cartas. Pantalla 3 - Listar cartas Usar cartas: dependiendo de su naturaleza, una carta puede ser utilizada durante uno o más de los siguientes eventos:  Antes de mover.  Durante un movimiento.
  • 77. 60  Después de mover.  Como respuesta a un ataque. Pantalla 4 - Usar cartas Mover personajes: el jugador puede mover a su(s) personajes en el tablero de juego con el objetivo de llegar al extremo contrario de la partida o con el de atacar a algún oponente, para esto debe lanzar el dado, el dado su vez puede ser puede ser reemplazado por cartas número. Los movimientos son secuenciales y diagonales (como en el juego de damas), un movimiento cuenta de tantos pasos como puntos de dado haya obtenido el jugador. Atacar: los ataques son a nivel de personajes, un personaje puede atacar a otro a través de sus movimientos (mover personajes) o a través de cartas, si es a través de cartas puede aumentar el daño contestando una pregunta aleatoria, ingresada previamente por un profesor. Contestar Preguntas: Al realizar un ataque con cartas se desplegará una pregunta aleatoria, la cual si es contestada correctamente aumenta el daño ocasionado.
  • 78. 61 La pregunta tiene el formato de selección múltiple, y puede existir una o varias opciones correctas, lo cual debe estar señalado correctamente al momento de mostrar la pregunta. Deben marcarse todas las opciones correctas para que la respuesta a su vez sea considerada como correcta. Pantalla 5 - Contestar preguntas Defender: Existirán cartas defensivas las cuales pueden anular, disminuir o devolver al atacante el daño producido por un ataque.
  • 79. 62 Ilustración 46 - Diagrama casos de uso "administrar juego" Se debe verificar que los jugadores posean una sesión válida.
  • 80. 63 Ilustración 47 - Diagrama de actividades CU09 "mover personajes"
  • 81. 64 Ilustración 48 - Diagrama de actividades CU10 "usar cartas"
  • 82. 65 Ilustración 49 - Diagrama de actividades CU11 “atacar fuerte enemigo”
  • 83. 66 Ilustración 50 - Diagrama de actividades CU12 "defender fuerte"
  • 84. 67 Guardar y Cargar Juego Pantalla 6 - Guardar juego Guardar juego: Un profesor puede guardar el estado de avance de un juego, el cual puede ser reanudado más tarde con la acción “cargar juego”. Cargar juego: Un juego guardado puede ser reanudado por un profesor, para que este sea inicializado deben iniciar sesión todos los alumnos participantes. El profesor puede asignar reemplazantes de los jugadores que no estén disponibles para continuar con el juego guardado.
  • 85. 68 Ilustración 51 - Diagrama de casos de uso "guardar y cargar juego" Ilustración 52 - Diagrama de actividades CU13 "guardar juego"
  • 86. 69 Ilustración 53 - Diagrama de actividades CU14 "cargar juego"
  • 87. 70 Iniciar Sesión Back Office Pantalla 7 - Iniciar sesión back office El profesor, apoderado o gamelena deben ingresar sus credenciales (usuario y contraseña) para iniciar sesión y unirse a un juego. El inicio de sesión es extendido por las acciones. Resolver captcha: después de 5 intentos fallidos de ingreso, el jugador deberá resolver un código captcha como medida de seguridad ante ataques automatizados. Enviar contraseña por email: si un alumno olvidó su contraseña puede solicitar que esta le sea enviada por email, en este caso se generará una nueva contraseña temporal.
  • 88. 71 Ilustración 54 - Diagrama de casos de uso "iniciar sesión back office" Administrar Módulos y Acciones Pantalla 8 - Administrar módulos
  • 89. 72 El back office está compuesto por módulos, por ejemplo, existe un módulo de preguntas y un módulo de usuarios, estos son mantenidos por el mantenedor de módulos, el cual se puede llamar módulo de módulos. Administrar Acciones: existen 4 acciones recurrentes para los módulos, las cuales son: agregar, leer, modificar, eliminar. Algunos módulos pueden tener acciones especiales, por ejemplo cambiar contraseña e incluso acciones que en este momento no están contempladas, por lo que también existe un módulo administrador de acciones. Ilustración 55 - Diagrama de casos de uso "administrar módulos y acciones"
  • 90. 73 Ilustración 56 - Diagrama de actividades CU18 "administrar módulos"
  • 91. 74 Ilustración 57 - Diagrama de actividades CU19 "administrar acciones"
  • 92. 75 Administrar Perfiles Pantalla 9 - Administrar perfiles Los perfiles segmentan a los usuarios en forma vertical, estos definen el acceso a realizar acciones sobre un módulo. Todos los usuarios con acceso al back office están segmentados en perfiles, los perfiles profesor y gamelena se definen en el módulo de perfiles, esta acción la realiza un usuario perteneciente al perfil gamelena. Los perfiles tienen asociados un conjunto de permisos, cada uno de estos está asociado a un módulo y una acción.
  • 93. 76 Ilustración 58 - Diagrama de casos de uso "administrar perfiles"
  • 94. 77 Ilustración 59 - Diagrama de actividades CU21 "administrar perfiles"
  • 95. 78 Administrar Grupos Los grupos segmentan a los usuarios en forma horizontal, estos definen el acceso a realizar acciones sobre un registro. El registro debe pertenecer a un módulo configurado para soportar perfilamiento de grupos. Esto permite que un usuario pueda acceder a determinados registros de un módulo y tener bloqueado el acceso a otros registros del mismo módulo. El módulo de alumnos soporta perfilamiento a través de grupos, estos solo pueden ser administrados por sus propios profesores, y no por profesores con los que no estén relacionados. Un usuario del back office puede pertenecer a uno, muchos o ningún grupo. Ilustración 60 - Diagrama de casos de uso "administrar grupos"
  • 96. 79 Ilustración 61 - Diagrama de actividades CU20 "administrar grupos"
  • 97. 80 Administrar Usuarios Pantalla 10 - Administrar usuarios Los usuarios son administrados en 2 módulos, uno para usuarios de back office34 y otros para los usuarios con perfil alumno. 34 Usuarios pertenecientes a perfiles profesor o gamelena.
  • 98. 81 Ilustración 62 - Diagrama de casos de uso "administrar usuarios de back office" Ilustración 63 - Diagrama de casos de uso “administrar alumnos”
  • 99. 82 Ilustración 64 - Diagrama de actividades CU25 “administrar usuarios” Administrar Preguntas El profesor ingresa preguntas las cuales son usadas en los juegos que este crea, estas preguntas son asociadas a los grupos a los que pertenece el profesor. Los profesores también pueden revisar y asociar preguntas agregadas por colegas a sus propios grupos.
  • 100. 83 Pantalla 11 - Administrar preguntas Ilustración 65 - Diagrama de casos de uso “administrar preguntas”
  • 101. 84 Ilustración 66 - Diagrama de actividades CU26 "administrar preguntas"
  • 102. 85 Administrar Cartas y Reglas El usuario con perfil gamelena puede agregar cartas y asociar reglas. Estas reglas se escriben en archivos Nools, los cuales son generados al escribir la regla en el formulario de edición. Debe existir un mecanismo que valide la regla esté escrita correctamente y que al menos no genere errores de compilación e idealmente que compruebe el flujo de la regla mediante herramientas de tests unitarios de Node.js. Ilustración 67 - Diagrama de casos de uso "administrar cartas y reglas"
  • 103. 86 Ilustración 68 - Diagrama de actividades CU27 "administrar cartas y reglas"
  • 104. 87 Despliegue Se levanta un Droplet en Digital Ocean con Linux Ubuntu Server 14.04, Node.js 0.10, PHP 5.5, MySQL 5.3, Mongo DB 2.6,Git 2.1, y Subversion 1.8. Ilustración 69 - Diagrama de deployment
  • 105. 88 V. IMPLEMENTACIÓN Plan de Implementación y Puesta en Marcha Debido a que las implementaciones de software significativos requieren un gran esfuerzo y toman tiempo para producir sus resultados máximos, es aconsejable comenzar con un programa piloto, que podría ser visto como una etapa de aplicación con su propio ciclo. Un piloto suele implicar menos objetivos, menos personal y menos usuarios, un plazo menor y menor costo. Le permite al cliente obtener una vista previa de la logística, de desafíos involucrados y experimentar el grado de éxito que se puede esperar del software. Múltiples pasos y etapas ocurren a menudo simultáneamente, mientras que otros pueden requerir atención continua o repetida a medida que evolucione la situación. Ilustración 70 - Ciclo de implementación – fuente propia Definición de Objetivos Educacionales Integración Curricular y Organizacional. Logística Entrega e Instalación Capacitaciones Monitoreo y soporte Evaluación
  • 106. 89 Etapa Implementación del Software Educativo Definición de Objetivos Educacionales y Motivaciones de los Stakeholders Qué deberían lograr los usuarios. Cómo se mejora el aprendizaje. Cuál es la disposición e interés de los docentes y alumnos a dedicar su tiempo para una implementación exitosa. Integración Curricular y Organizacional Cómo se ajusta el uso de software a los estándares de aprendizaje. Uso del software: cuánto se usa, por quién se usa y cuándo se usa. Conexión del software a otros recursos. Logística Identificar tareas y responsabilidades. Preparar presupuesto y línea de tiempo para instalación, monitoreo y programa de evaluación. Anticipar la necesidad de múltiples ciclos de uso para solucionar problemas y afinar las mejores prácticas. Entrega e Instalación Preparar el entorno técnico y seguimiento de la instalación. Llevar a cabo las pruebas de aceptación en contra los criterios previstos. Capacitación Capacitación de uso y mantenimiento del software. Monitoreo y Soporte Monitorear el progreso del plan y ajustar aplicación si es necesario para aumentar eficacia. Recopilar información sobre la evaluación del software. Evaluación y Repetición del Ciclo Uso de la información recolectada y métricas para responder preguntas y evaluar éxito contra los criterios planificados. Tabla 8 - Actividades de implementación
  • 107. 90 Lista de Actividades para la Implementación Definición de Objetivos Educacionales y Organizacionales  Desarrollar y comunicar una declaración clara de la visión institucional, propósito y metas para el desarrollo del software.  Evaluar el software para determinar si coincide con la visión institucional, propósito y metas, incluyendo la investigación detrás de la construcción de la historia para el software, así como la investigación previa de su impacto efectivo en aprendizaje.  Desarrollar indicadores para cada objetivo contra el que el éxito pueda ser evaluado.  Obtener un compromiso por parte del personal para su apoyo, uso y beneficio del software, verificar que cumpla con necesidades importantes para ellos y que ellos estén dispuestos a hacer el esfuerzo necesario para implementar adecuadamente. Definición de Objetivos Curriculares  Ajustar el software al plan de estudios y a los estándares de aprendizaje que apoya.  Ajustar el uso del software a los procesos que apoya, ya sea de instrucción, prácticas o actividades extracurriculares. Logística  Designar un coordinador de la organización que tendrá la responsabilidad general y la autoridad para llevar a cabo y supervisar la aplicación de software.
  • 108. 91  Designar responsabilidades del personal específico para la capacitación, la instalación, y el soporte del software  Designar a una persona que pueda ser contactada con regularidad para responder preguntas y resolver problemas.  Verificar que la programación de la implementación encaja con el calendario de la institución y que no se verá comprometida por la falta de acceso debido a las pruebas, vacaciones, u otros períodos de actividad especial. Reconocer que a mediados de año la implementación puede ser apropiada y necesaria, pero podría requerir más tiempo para la integración con éxito en los procesos existentes.  Verificar que el personal involucrado en la ejecución tiene el adecuado manejo de tecnología para aprender la operación del software. Si no, desarrollar y establecer un plan de formación para proporcionar las habilidades tecnológicas básicas.  Desarrollar un plan de evaluación que especifique: • Criterios para los resultados exitosos de la utilización del software • Preguntas a responder para determinar si se han cumplido los criterios • Información y mediciones necesarias para responder a esas preguntas • Los métodos que se utilizarán para recopilar esa información, como la forma en se recopilará datos de uso de software, datos de rendimiento de los usuarios, entrevistas con los interesados, reportes y encuestas.  Comprometerse a una implementación comercial de varios años para que los problemas de la puesta en marcha en el primer año se puedan mejorar. Ajustar plan de evaluación por etapas, considerar que las expectativas de éxito crecen con el tiempo.
  • 109. 92 Instalación  Comprobar estado del hardware y de los sistemas, disponibilidad de red y acceso a Internet de los sitios donde se utilizará el software.  Verificar que las actividades de instalación y otorgamiento de accesos al sistema para alumnos, docentes y apoderados se cumpla satisfactoriamente. Capacitación  Proporcionar una orientación completa para el personal que administrará el producto, incluyendo objetivos y expectativas.  Llevar a cabo un programa de formación eficaz del personal que incluya: • Antecedentes sobre la dinámica del juego • Instrucciones de la operación y mantenimiento del juego • Sugerencias acerca de cómo y cuánto tiempo se debe involucrar efectivamente a los estudiantes con el juego Soporte y Monitoreo  Asegurarse de que hay un seguimiento del progreso del plan de implementación y se resuelven los problemas a medida que surgen, se informa a los tomadores de decisiones, según corresponda.  Asegurarse de que el software se utilice con el tiempo adecuado a la tarea para los estudiantes, y que la información generada por el juego en el desempeño del estudiante se está incluyendo en el análisis del progreso.  Proveer capacitación continua, según sea necesario, incluir entrenamiento específico para la aplicación, así como para la integración de tecnología en los procesos y las prácticas educativas básicas. El Soporte incluye:
  • 110. 93 • Un foro para que los profesores y alumnos puedan compartir preguntas e información relacionada con el uso del juego y que apoye el cumplimiento de sus objetivos • Web Help con instrucciones de la operación y mantenimiento del juego además de las reglas de juego. • Soporte vía e-mail.  Recopilar información según lo señalado en el plan de evaluación. Evaluación y Repetición del Ciclo  Analizar la información recogida durante la aplicación y aplicar el análisis para responder a las preguntas de evaluación previstos.  Verificar los resultados de implementación contra los criterios del programa para el éxito.  Utilizar los resultados de la evaluación para planificar mejoras en el próximo ciclo de implementación.
  • 111. 94 Plan de Gestión del Cambio y Capacitaciones Para el cumplimiento de los objetivos del proyecto es de gran importancia que los involucrados (profesores, alumnos, dirección) asuman una actitud positiva ante el cambio, por lo cual debemos ocuparnos de los incentivos y motivaciones para realizar el cambio, de la comunicación necesaria para que todos entiendan el alcance del proyecto en el colegio y de la capacitación para puedan participar del cambio. Actividades Actividad Formato Cuando A quien va dirigido Resultados esperados Reunión de proyecto Reuniones de avance y requerimientos 2 veces al mes Equipo de proyecto, profesores, directores Controlar avance y requerimientos Demos Presentaciones 2 por cada implantación Profesores, directores, Alumnos. Motivación y compromiso. Quick Wins Reuniones de trabajo Durante cada reunión Todos Mantener expectativas Capacitación online Manual web A demanda Profesores, directores, Alumnos Motivar usabilidad Feedback online Formulario web, email A demanda Profesores, directores, Alumnos Solucionar problemas Tabla 9 - Actividades de gestión del cambio – fuente propia
  • 112. 95 Política de Respaldo Usando la herramienta Snapshot de Digital Ocean, se debe capturar la imagen del sistema operativo una vez al mes y cada vez que se efectue una actualización a nivel de sistema operativo, se deben conservar las 6 últimas capturas, pudiendo eliminarse las más antiguas. Se usará el Snapshot más reciente para levantar un ambiente de pruebas. Ilustración 71 - Interfaz de administración de Droplets - Digital Ocean Se debe hacer un respaldo de las base de datos MySQL y MongoDB en forma diaria a través de un proceso programado a nivel de sistema operativo, deben conservarse los respaldos de hasta 30 días y eliminarse los respaldos más antiguos. Deben agregarse tags para las distintas versiones del software, como puntos de restauración del código fuente versionado en Git.
  • 113. 96 Estructura de Costos e Ingresos Estructura de Costos A Continuación se muestra una estimación de los costos de Gamelena durante los tres primeros años, considerando los costos de la plataforma G-Learning y Weichan. # Detalle CF CV PRIMER AÑO SEGUNDO AÑO TERCER AÑO Costo Mensual (M)$ Costo Total (M) $ Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 1 RRHH Administración y Gestión x 1.5 36 Desarrollo x 1.5 27 Soporte x 1 24 2 Equipamiento TIC Mensualidad Digital Ocean - Plan US $10 x x 0.006 0.036 Mensualidad Digital Ocean - Plan US $80 x x 0.048 1.44 3 Logística Habitabilidad (arriendo) x 0.5 12 Muebles x 3 3 Consumos Básicos x x 0,3 7,2 4 Publicidad Publicidad x 1 2 Total Costos 112,676 Tabla 10 - Estructura de costos 3 primeros años Es pertinente mencionar que el aumento de costos de los años 2 y 3 se justifica sólo si se proyecta un aumento de las ventas respectivo que justifique la inversión en RRHH y logística para satisfacer los requerimientos del negocio. Costos Anuales (M)$ Año 1 15,324 Año 2 50,176 Año 3 47,176 Tabla 11 - Resumen de costos 3 primeros años
  • 114. 97 Planificación de Ventas al Primer Año. El formato de venta en esta fase es de suscripción mensual por curso con derecho a administrar un grupo de hasta 40 alumnos más sus apoderados respectivos (uno por cada alumno) y hasta 5 profesores los cuales administran a 1 grupo, estos profesores administran los juegos y las preguntas formuladas en estos juegos. La suscripción mensual tiene un costo 5UF mensuales por curso, pudiendo agregarse más alumnos por 0,25 UF mensuales C/U. Se estima la cantidad necesaria de ventas para hacer el proyecto sustentable durante el primer año. Ventas mercado nacional Precio anual por curso $1.250.000 Cantidad de unidades vendidas 15 Total de ingresos (CLP$) $18.750.000 Tabla 12 - Ventas mercado nacional Estrategia de Financiamiento. Parte de la estrategia de financiamiento es buscar socios inversionistas y postular a los fondos concursables Corfo/Sercotec. Los montos pueden variar de acuerdo a los aportes estatales y/o privados que se hagan en Gamelena. USO INVERSIONISTA (M $) EMPRENDEDOR (M $) ESTADO (M $) BANCO (M $) Total (M $) Recursos Humanos 30 47 10 87 Equipamiento TIC 1,476 1,476 Logística 10 12,2 22,2 Publicidad 2 2 TOTALES 40 48,476 12 12,2 112,676 PORCENTAJE (%) 35,55% 43,02% 10,65% 10,82% 100% Tabla 13 - Estrategia de financiamiento
  • 115. 98 VI. INGENIERÍA DE QA Plan de Pruebas Para ejecutar un set de pruebas se levanta un Snapshot del ambiente de producción en un nuevo Droplet de Digital Ocean dedicado para pruebas, con las mismas características de Hardware: 1GB de RAM, procesador de 1 Core, Disco SSD de 30GB. Pruebas Unitarias Para las pruebas unitarias se prueban los diferentes componentes MVC del BackOffice mediante PHP Unit Y Zend Framework a través de Zend_Test_PhpUnit, los cuales ofrecen un marco de trabajo optimizado para la realización de pruebas unitarias. Los casos de uso se pueden mapear generalmente a un controlador y a una o más acciones para dicho controlador, estas acciones tienen su equivalente en la batería de tests unitarios. Se debe hacer un test unitario por cada caso de uso, basando el criterio de éxito en las salidas del test contra la definición de las salidas de las actividades del caso de uso. Tabla 14 - Archivo de configuración test unitarios PHP Unit – fuente propia <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/3.7/phpunit.xsd" bootstrap="./bootstrap.php" colors="true"> <testsuite name="Application Test Suite"> <directory>./application</directory> <directory>./library</directory> <directory>./selenium</directory> </testsuite> <php> <const name="PHPUNIT_USERNAME" value="user"/> <const name="PHPUNIT_PASSWORD" value="password"/> <const name="PHPUNIT_BROWSER" value="chrome"/> <const name="PHPUNIT_WAITSECONDS" value="6"/> <const name="PHPUNIT_BASEURL" value="http://testing.weichan.local"/> </php> </phpunit>
  • 116. 99 Tabla 15 – Implementación Caso de Prueba para Zend Framework PHP Unit - fuente propia <?php class AdminControllerTest extends Zend_Test_PHPUnit_ControllerTestCase { public function setUp () { $this->bootstrap = $this->bootstrap = new Zend_Application( APPLICATION_ENV, $_ENV['APPLICATION_CONFIG']); parent::setUp(); } public function initUserInfo () { $authAdapter = Zwei_Admin_Auth::getInstance()->getAuthAdapter(); $username = PHPUNIT_USERNAME; $password = PHPUNIT_PASSWORD; $auth = Zend_Auth::getInstance(); $authAdapter->setIdentity($username)->setCredential($password); $result = $auth->authenticate($authAdapter); if ($result->isValid()) { Zwei_Admin_Auth::initUserInfo($authAdapter); } else { echo "Usuario '$username' o Password '$password' incorrectos."; } } public function testIndexNotAuthenticatedAction () { $params = array( 'action' => 'index', 'controller' => 'Admin', 'module' => 'default' ); $urlParams = $this->urlizeOptions($params); $url = $this->url($urlParams); $this->dispatch($url); $this->assertModule($urlParams['module']); $this->assertController($urlParams['controller']); $this->assertAction($urlParams['action']); $this->assertRedirectTo('/admin/login'); } public function testLoginAction () { $params = array( 'action' => 'login', 'controller' => 'Admin', 'module' => 'default' ); $urlParams = $this->urlizeOptions($params); $url = $this->url($urlParams); $this->dispatch($url); $this->assertQueryCount('form#loginForm', 1); $this->assertQueryContentContains('.login-form .header h1', 'weichan'); } }
  • 117. 100 Para la navegación se realizarán tests con Selenium HQ a través de Zend_Test_PhpUnit Selenium. Selenium HQ es un entorno de pruebas de software para aplicaciones web basadas en la automatización de acciones en el navegador. Las pruebas pueden ejecutarse usando la mayoría de los navegadores web modernos. Tabla 16 - Implementación Caso de Prueba con PHP Unit Selenium - fuente propia Para los test unitarios de lado del servidor Node.js usaremos Mocha, el cual es un framework de pruebas JavaScript que se ejecuta en el servidor Node.js y en el navegador. <?php class BrowserTest extends PHPUnit_Extensions_Selenium2TestCase { protected function setUp() { $this->bootstrap = new Zend_Application(APPLICATION_ENV, $_ENV['APPLICATION_CONFIG']); $this->setBrowser(PHPUNIT_BROWSER); $this->setBrowserUrl(PHPUNIT_BASE_URL); } public function initUserInfo() { $authAdapter = Zwei_Admin_Auth::getInstance()->getAuthAdapter(); $username = PHPUNIT_USERNAME; $password = PHPUNIT_PASSWORD; $auth = Zend_Auth::getInstance(); $authAdapter->setIdentity($username)->setCredential($password); $result = $auth->authenticate($authAdapter); if ($result->isValid()){ Zwei_Admin_Auth::initUserInfo($authAdapter); } else { echo "Usuario '$username' o Password '$password' incorrectos."; } } public function testLogin() { $this->url('admin'); $model = new SettingsModel(); $row = $model->find('titulo_adm')->current(); $this->assertEquals($row->value, $this->title()); $this->byId('username')->value(PHPUNIT_USERNAME); $this->byId('password')->value(PHPUNIT_PASSWORD); $this->byId('login')->click(); $this->byId('loginForm')->submit(); $modules = new AclModulesModel(); $this->initUserInfo(); $this->iterateTree($modules->getTree()); } }