124
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

Plataforma G-Learning

Embed Size (px)

Citation preview

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: [email protected]

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()); } }

101

Las pruebas en Mocha se ejecutan en serie. Facilita el mapeo de las excepciones

no capturadas a los casos de prueba correctos.

Tabla 17 - Ejemplo de caso de pruebas Mocha - unitjs.com

var test = require('unit.js') describe('My module', function() { var MainClass = require('my-module/lib/main'); it('load', function() { var myModule = require('my-module'); test .function(myModule) .hasName('MyModule') .object(myModule()) .isInstanceOf(MainClass); }); describe('Main class', function() { it('emit() - emit an event', function() { var main = new MainClass(); var listener = function(value) { spy(); test.string(value) .isIdenticalTo('value of any event'); }; test .given('add listener', function() { main.on('any.event', listener); }) .when('emit an event', function() { main.emit('any.event', 'value of any event'); }) .then(function() { test .function(main.listeners('any.event')) .bool(spy.calledOnce) .isTrue(); }) }); it('connection', function(done) { main.get('http://localhost/api/show/item', function(err, json, headers) { var now = new Date(); if(err) { test.fail(err.message); } test .value(headers) .object(json) .hasKey('title', 'item title') .date(json.updatedAt) .isBefore(now); done(); }); }); }); });

102

Pruebas de Integración Continua

La integración continua está relacionada con la práctica del desarrollo de hacer

commit35 frecuentemente de nuevo código fuente.

Esto significa que el nuevo código, idealmente, se debe integrar rápida y fácilmente

con la base de código existente.

La integración continua requiere construir y probar el código con frecuencia, esto

permite acelerar el proceso de desarrollo, ya que se construye y se prueba

automáticamente.

Jenkins es un servidor de integración continua. Permite

automatizar todo tipo de tareas a través de "Jobs".

Al usar Jenkins con un proyecto PHP se automatiza la

clonación del proyecto, se gestiona la administración de los

paquetes externos con Composer, se genera

documentación de la API, se ejecutan pruebas PHP Unit y

se generan informes de cobertura de código.

Sebastian Bergmann, el creador de PHP Unit, ha liberado

plantillas de tareas Jenkins para proyectos PHP las cuales

se pueden usar como punto de partida para la

implementación de la integración continua.

Se usa Git para clonar los proyectos, a través del plugin Git para Jenkins.

35 commit es la acción de liberar código sobre el sistema de control de versiones, en este caso sobre Git

Ilustración 72 - Logotipo

Jenkins - jenkins.ci.org

103

Jenkins se integra con Node.js a través de Apache Ant36, el cual se debe instalar

en el servidor de testing, para estas pruebas de integración continua es necesario

instalar Mocha y Should.js37.

Se configura Ant con un archivo llamado buildfile.xml, en el cual se especifica el

target Jenkins con los plugins necesarios.

Tabla 18 – Buildfile Ant para integración con Jenkins - http://johnhamelink.com/testing-nodejs-with-jenkins.html

36 Software para procesos de automatización de compilación y otras tareas repetitivas, desarrollado en lenguaje Java. 37 Biblioteca y marco de trabajo expresivo, basado en evaluación de condiciones mediante afirmaciones.

<?xml version="1.0" encoding="UTF-8"?> <project name="My Project" default="build" basedir="."> <target name="init" description="Create build folder and subfolders if required"> <echo message="Creating Directories..." /> <mkdir dir="build"/> <mkdir dir="build/testResults"/> </target> <target name="cleanup" description="Remove cruft generated from testing"> <echo message="Cleaning up..." /> <delete includeemptydirs="true" failonerror="false"> <fileset dir="/tmp/node_modules/"> <include name="**" /> </fileset> </delete> <delete includeemptydirs="true" failonerror="false"> <fileset dir="build/testResults"> <include name="**" /> </fileset> </delete> </target> <target name="mocha-jenkins" description="Test framework"> <echo message="Installing Deps ..." /> <exec executable="npm" failonerror="true"> <env key="NODE_PATH" value="/tmp/node_modules/" /> <arg value="install" /> </exec> <echo message="Running the tests ..." /> <exec executable="mocha" output="build/testResults/mocha.xml" failonerror="true"> <env key="NODE_PATH" value="/tmp/node_modules/" /> <arg value="--reporter" /> <arg value="xunit" /> </exec> <echo message="Tests done" /> </target> <target name="jenkins" depends="cleanup,init,mocha-jenkins" /> </project>

104

Pruebas de Carga y Estrés

Se usa JMeter para realizar las pruebas de carga y de estrés a través de una

interfaz gráfica, mediante esta herramienta se construye un plan de pruebas para

ejecutarlo en contra un servidor web.

Los criterios a medir son:

Latencia: El número de milisegundos que transcurre entre el momento en JMeter

envió la solicitud y cuando se ha recibido una respuesta inicial

Tiempo de muestra: el número de milisegundos que el servidor se demora en

responder completamente a una solicitud (respuesta + latencia)

Ilustración 73 – Tabla de resultados de pruebas en JMeter - Digital Ocean

Estrés: se ajusta el número de hilos en la prueba para ver cuántos puede manejar

el servidor antes de que comience a exhibir una degradación del rendimiento.

105

VII. CONCLUSIONES

Weichan abarca un área del conocimiento acotada y específica, la Historia. Si bien

está relacionada con prácticamente todas las áreas del conocimiento, su estudio en

profundidad de esta requiere cierto interés en las humanidades, ciencias políticas,

lectura e investigación documental.

No hay que perder de vista que todos los niños diferentes y tienen diversos intereses

y habilidades, por lo que el valor pedagógico y el impacto de una herramienta

enfocada en la Historia no será igual en todos los alumnos.

Más que provocar el interés de los alumnos en un ramo específico, lo que se

pretende es ayudar a los educandos a descubrir sus propios intereses, este es el

gran objetivo pedagógico de Weichan como juego didáctico.

La plataforma G-Learning ofrece un marco de trabajo basado en reglas para la

creación y configuración de juegos con valor educativo. A través de esta plataforma

se pueden desarrollar otros juegos didácticos para diferentes áreas del

conocimiento, tales como Ciencias, Lenguaje o Matemáticas mediante la

configuración de reglas Rete, la cual es uno de las características principales de

este marco de trabajo.

Por otro lado, una parte importante de la propuesta de valor de Weichan es la

integración de la actividad docente en el juego, a través de la generación de

bases de conocimientos generadas por los profesores para los alumnos, usando de

un único servicio para educar y entretener.

De esta forma, con la participación de educadores y educandos, es posible hacer

Historia a través del juego didáctico.

106

BIBLIOGRAFÍA

BBC. 2013. El examen más importante del mundo. [En línea] 2013.

http://www.bbc.co.uk/mundo/noticias/2013/12/131203_pisa_resultados_am.shtml.

C2FO. Nools - Rete based rules engine written in javascript. [En línea]

https://github.com/C2FO/nools.

Chacón, Paula. 2008. El Juego Didáctico como estrategia de enseñanza y

aprendizaje ¿Cómo crearlo en el aula? [En línea] 2008.

http://www.grupodidactico2001.com/PaulaChacon.pdf.

IT eBooks. 2013. Express Web Application Development. [En línea] 2013. http://it-

ebooks.info/book/2966/.

IT eBooks. 2012. Professional Node JS. [En línea] 2012. http://it-

ebooks.info/book/984/.

MINEDUC. 2013. Curriculum en línea. [En línea] 2013.

http://www.curriculumenlineamineduc.cl/605/w3-propertyvalue-55586.html.

Osterwalder, Alexander. 2013. Generación de Modelos de Negocio. s.l. : Deusto,

2013.

PISA. 2012. Results: Creative Problem Solving. [En línea] 2012.

http://www.oecd.org/pisa/keyfindings/PISA-2012-results-volume-V.pdf.

Poppendieck, Mary y Poppendieck, Tom. 2003. Lean Software Development:

An Agile Toolkit”. Boston : Addison-Wesley, 2003.

Prats, Joaquim y Santacana, Joan. 1998. Enseñar Historia y Geografía.

Principios básicos. [En línea] 1998.

http://www.ub.edu/histodidactica/index.php?option=%20com_content&view=article

&id=75:ensenar-historia-y-geografia-principios-basicos&catid=24:articulos-

cientificos&Itemid=118.

107

Red Hat. 2014. Drools, Bussiness Rules Management System. [En línea] 2014.

http://www.drools.org.

Riquelme, Rodrigo. Tangerine - Escalable and Modular Framework for Resource

Management Systems. [En línea] https://github.com/DonMostro/tangerine.

UNESCO. 2012. Tecnología y escuela: más allá del voluntarismo. [En línea] 2012.

http://portal.unesco.org/geography/es/ev.php-

URL_ID=15381&URL_DO=DO_TOPIC&URL_SECTION=201.html.

UNESCO. 2005. Informe Mundial de la UNESCO . París : s.n., 2005. ISBN 92–3–

304000–3.

Wikipedia. 2014. Rete Algorithm. [En línea] 2014.

http://en.wikipedia.org/wiki/Rete_algorithm.