Cuba Eo
Cuba Eo
Cuba Eo
TESIS
AUTORES
Omar CUBA ESTRELLA
Maycol Henrry ESPINOZA RAMÍREZ
ASESOR
Percy Edwin DE LA CRUZ VÉLEZ DE VILLA
Lima, Perú
2020
Reconocimiento - No Comercial - Compartir Igual - Sin restricciones adicionales
https://creativecommons.org/licenses/by-nc-sa/4.0/
Usted puede distribuir, remezclar, retocar, y crear a partir del documento original de modo no
comercial, siempre y cuando se dé crédito al autor del documento y se licencien las nuevas
creaciones bajo las mismas condiciones. No se permite aplicar términos legales o medidas
tecnológicas que restrinjan legalmente a otros a hacer cualquier cosa que permita esta licencia.
Referencia bibliográfica
Grupo de investigación NO
Agencia financiadora NO
Siendo las 5pm horas del día 28 de diciembre del año 2020 se reunieron virtualmente
los docentes designados como miembros de Jurado de Tesis, presidido por el Mg.
Santiago Domingo Moquillaza Henríquez (Presidente), el Mg. Luis Ángel Guerra Grados
(Miembro) y el Mg. Percy Edwin De la Cruz Vélez de Villa (Miembro Asesor), usando la
plataforma Meet para la sustentación Virtual de la tesis Intitulada: “APLICACIÓN
MÓVIL DE CONTROL ACADÉMICO UTILIZANDO LA ARQUITECTURA DE
MICROSERVICIOS BAJO LA METODOLOGÍA DE DESARROLLO SCRUM Caso:
Escuela Profesional de Obstetricia de la Universidad Nacional Mayor de San Marcos”, del
Bachiller: Omar Cuba Estrella; para obtener el Título Profesional de Ingeniero de
Sistemas.
Presidente
Mg. Santiago D. Moquillaza Henríquez
Siendo las 5pm horas del día 28 de diciembre del año 2020 se reunieron virtualmente
los docentes designados como miembros de Jurado de Tesis, presidido por el Mg.
Santiago Domingo Moquillaza Henríquez (Presidente), el Mg. Luis Ángel Guerra Grados
(Miembro) y el Mg. Percy Edwin De la Cruz Vélez de Villa (Miembro Asesor), usando la
plataforma Meet para la sustentación Virtual de la tesis Intitulada: “APLICACIÓN
MÓVIL DE CONTROL ACADÉMICO UTILIZANDO LA ARQUITECTURA DE
MICROSERVICIOS BAJO LA METODOLOGÍA DE DESARROLLO SCRUM Caso:
Escuela Profesional de Obstetricia de la Universidad Nacional Mayor de San Marcos ”, del
Bachiller: Maycol Henrry Espinoza Ramírez; para obtener el Título Profesional de
Ingeniero de Sistemas.
Presidente
Mg. Santiago D. Moquillaza Henríquez
PALABRAS CLAVES
Calidad educativa, control académico, rendimiento académico, metodología ágil,
microservicios.
1
SINEACE es creada para garantizar que las instituciones educativas en el Perú
ofrezcan un servicio de calidad
2
Abstract
In Peru, the educational quality in the universitiesshows a low level compared to the
other Latin American universities according to (COMEXPERU, 2011), SINEACE1
(Yanada, Rivera, & Castro, 2012),(Quacquarelli Symonds, 2013),(INEI, 2015),
(Quacquarelli Symonds, 2015).
The SINEACE standards that we highlight are the evaluation of the teaching
performance, the adequate follow-up to students and having a computer system that
supports academic management. (SINEACE, 2016)
Academic factors such as the control of class attendance, academic monitoring of
students and teachers are related to the academic performance of students and teachers
according to (Moromi, 2002), (Rodriguez & Herrera, 2009) and (Tolentino, 2014)
In the Professional School of Obstetrics - Faculty of Medicine of the National
University of San Marcos, it is desired to have a computer system that facilitates
compliance with the aforementioned standards of SINEACE, currently the information
of the classes such as attendance, record of notes, notices and queries are not centralized
or available at the moment because they are recorded on physical paper, excel files or
other means making it difficult to perform a good academic control of students and
teachers on time.
The proposal of this thesis is to develop a computer system that solves the problem
described and improves academic quality through academic control of the Professional
School of Obstetrics - Faculty of Medicine of the National University of San Marcos.
The proposed system is based on the mobile solution because its application was more
convenient and the use of the microservice architecture in which the services are
isolated, easy to implement, have high cohesion and low coupling, provide
technological variety, among other advantages
In addition, SCRUM was chosen, which is an agile methodology that allows us to be in
contact with customers, adapt evolutionarily to changes, allowing shorten development
times and has only necessary documentation. It also ensures efficient and organized
delivery of the software.
At the end, the validation and implementation of the system was carried out in which it
was reviewed whether it provides adequate academic control of students and teachers,
as well as providing useful information to both students, teachers and the school
management.
KEY WORDS
Academic quality, academic performance, academic control, agile methodology,
microservices.
1
SINEACE is created to ensure that educational institutions in Peru offer a quality
service.
3
ÍNDICE
ÍNDICE DE TABLAS ................................................................................................................. 11
ÍNDICE DE FIGURAS................................................................................................................ 13
1 INTRODUCCIÓN ............................................................................................................. 18
1.1 Antecedentes ............................................................................................................... 18
1.2 Definición del problema............................................................................................. 32
1.3 Objetivos ..................................................................................................................... 32
1.4 Justificación ................................................................................................................ 33
1.5 Alcances y limitaciones .............................................................................................. 34
1.5.1 Alcances .................................................................................................................. 34
1.5.2 Limitaciones............................................................................................................ 34
1.6 Organización de la tesis ............................................................................................. 34
2 MARCO TEÓRICO .......................................................................................................... 36
2.1 Definición de términos ................................................................................................... 36
2.1.1 Control ........................................................................................................................ 36
2.1.2 Sistemas de control de gestión................................................................................... 36
2.1.3 Calidad educativa....................................................................................................... 38
2.1.4 Acreditación y la mejora continua ............................................................................ 38
2.1.5 Matriz de estándares de acreditación de Perú ........................................................ 38
2.2 Metodología de desarrollo ............................................................................................. 39
2.2.1 Metodología RUP............................................................................................................ 39
2.2.2 Metodología SCRUM ................................................................................................. 39
2.3 Desarrollo de aplicación móvil...................................................................................... 40
2.3.1 Web.............................................................................................................................. 41
2.3.2 Híbrido ........................................................................................................................ 41
2.3.3 Javascript nativo .................................................................................................................. 42
2.3.4 Compilación cruzada ................................................................................................. 43
2.3.5 Nativo .......................................................................................................................... 43
2.4 Arquitectura ................................................................................................................... 44
2.4.1 Arquitectura orientada a servicios (SOA) ............................................................... 44
2.4.2 Arquitectura basada en Microservicios ................................................................... 45
3 ESTADO DE ARTE .......................................................................................................... 47
3.1 Taxonomía ...................................................................................................................... 47
3.2 Método de revisión de la literatura............................................................................... 48
3.2.1 Artículos ...................................................................................................................... 49
4
3.2.1.1 Una aproximación holística a las metodologías agiles desde laprogramación
extrema 49
3.2.1.2 JavaScript in mobile applications: React Native vs Ionic vs NativeScript vs
Native development ................................................................................................................... 51
3.2.1.3 Disambiguation and Comparison of SOA, Microservices and Self-Contained
Systems 53
3.2.1.4 Propuesta de arquitectura de microservicios, metodología Scrum para una
aplicación móvil de control académico: Caso Escuela Profesional de Obstetricia de la
Universidad Nacional Mayor de San Marcos. ........................................................................ 55
3.2.1.5 Comparación de metodologías ágiles y procesos de desarrollo de software
mediante un instrumento basado en CMMI ........................................................................... 57
3.2.2 Tesis ............................................................................................................................ 58
3.2.2.1 Sistema web de gestión académica en el centro de idiomas de la ESPAM MFL .58
3.2.2.2 Sistema de seguimiento de syllabus .......................................................................... 60
3.2.2.3 Sistema de seguimiento estudiantil........................................................................... 62
3.2.2.4 Diseño e implementación de una app sobre desarrollo sostenible con backend de
arquitectura basada en microservices y de una react native front-end app ........................ 64
3.2.2.5 Arquitectura basada en microservicios ................................................................... 66
3.3 Metodología de desarrollo ............................................................................................ 70
3.3.1 Metodología scrum .................................................................................................... 70
3.3.1.1 Definición ................................................................................................................... 70
3.3.1.2 Características de scrum ........................................................................................... 71
3.3.1.3 Flujo scrum ................................................................................................................ 71
3.3.1.4 Elementos de scrum................................................................................................... 72
3.3.1.5 Roles............................................................................................................................ 72
3.3.1.6 Lista de requerimientos............................................................................................. 73
3.3.1.7 Product backlog ......................................................................................................... 73
3.3.1.8 Sprint scrum .............................................................................................................. 73
3.3.1.9 Planificación ............................................................................................................... 74
3.3.1.10 Sprint backlog ........................................................................................................ 75
3.3.1.11 Scrum diario (Daily) .............................................................................................. 75
3.3.1.12 Rol del scrum master durante el scrum ............................................................... 75
3.3.1.13 Estimaciones........................................................................................................... 75
3.3.1.14 Builds continuos y pruebas básicas ...................................................................... 76
3.3.1.15 Revisión del sprint ................................................................................................. 76
3.3.1.16 Reunión retrospectiva scrum ................................................................................ 76
6
3.4.3.5 Reconciliación ............................................................................................................ 87
3.4.3.6 Flux ............................................................................................................................. 87
3.4.3.7 Partes internas ........................................................................................................... 88
3.4.3.8 De código a renderizado nativo ................................................................................ 89
3.4.3.9 Puentear la comunicación entre javascript y código nativo................................... 90
3.4.3.10 Ambiente de desarrollo ......................................................................................... 92
3.4.4 Flutter ......................................................................................................................... 94
3.4.4.1 Definición ................................................................................................................... 94
3.4.4.2 Plataforma específica de código ............................................................................... 95
3.4.4.3 Ambiente de desarrollo ............................................................................................. 95
3.4.4.4 Interfaz de usuario .................................................................................................... 95
3.4.4.5 Desarrollo de aplicativo ............................................................................................ 95
3.4.4.6 Depuración y pruebas ............................................................................................... 96
3.4.5 Xamarin...................................................................................................................... 96
3.4.5.1 Definición ................................................................................................................... 96
3.4.5.2 Ambiente de desarrollo ............................................................................................. 99
3.4.5.3 Desarrollo de aplicación............................................................................................ 99
3.4.5.4 Pruebas ....................................................................................................................... 99
3.5 Arquitectura ................................................................................................................ 100
3.5.1 Arquitectura de 3 capas .......................................................................................... 100
3.5.1.1 Definición ................................................................................................................. 100
3.5.1.2 Capas .............................................................................................................................. 100
3.5.1.3 Es una arquitectura monolítica .............................................................................. 101
3.5.1.4 Ventajas .................................................................................................................... 101
3.5.1.5 Desventajas............................................................................................................... 101
3.5.2 Arquitectura orientada a servicios (SOA) ............................................................. 101
3.5.2.1 Definición ................................................................................................................. 101
3.5.2.2 Elementos de SOA ................................................................................................... 101
3.5.2.2.1 Aplicación Frontend ............................................................................................ 102
3.5.2.2.2 Servicios................................................................................................................ 102
3.5.2.2.3 Repositorio de servicios....................................................................................... 103
3.5.2.2.4 Bus de servicios .................................................................................................... 104
3.5.2.3 Principios de diseño de SOA................................................................................... 105
7
3.5.2.3.2 Acoplamiento de servicios ................................................................................... 106
3.5.2.3.3 Abstracción de servicios ...................................................................................... 107
3.5.2.3.4 Reutilización de servicios .................................................................................... 108
3.5.2.3.5 Autonomía de servicios ....................................................................................... 108
3.5.2.3.6 Servicios sin estado .............................................................................................. 109
3.5.2.3.7 Descubrimiento de servicios ............................................................................... 110
3.5.2.3.8 Composición de servicios .................................................................................... 110
3.5.3 Microservicios .......................................................................................................... 111
3.5.3.1 Definición ................................................................................................................. 111
3.5.3.2 Principios.................................................................................................................. 111
3.5.3.3 Ventajas .................................................................................................................... 113
3.5.3.4 Desventajas............................................................................................................... 115
3.6 Casos de éxito ............................................................................................................... 116
3.6.1 Sistema web de gestión académica en el centro de idiomas de la ESPAM MFL116
3.6.1.1 Objetivos .................................................................................................................. 116
3.6.1.2 Solución .................................................................................................................... 117
3.6.1.3 Resultados ................................................................................................................ 117
3.6.2 Implementación de un sistema web para la mejora del proceso académico de la
institución educativa wari-vilca-huayucachi ......................................................................... 117
3.6.2.1 Objetivos .................................................................................................................. 117
3.6.2.2 Solución .................................................................................................................... 117
3.6.2.3 Resultados ................................................................................................................ 118
3.6.3 Implementación de un sistema web para optimizar la gestión académica en la
I.E. “Villa corazón de Jesús” del distrito de San Juan de Lurigancho. .............................. 118
3.6.3.1 Objetivos .................................................................................................................. 118
3.6.3.2 Solución .................................................................................................................... 119
3.6.3.3 Resultados ................................................................................................................ 119
3.7 Benchmarking.............................................................................................................. 120
4 RESOLUCIÓN DEL PROBLEMA ............................................................................... 122
4.1 Cuadros comparativos ................................................................................................ 122
4.1.1 Comparación metodología de desarrollo ............................................................... 122
4.1.2 Comparación frontend (lado cliente) ..................................................................... 124
4.1.3 Comparación backend (lado servidor) .................................................................. 127
4.2 Descripción de la solución tecnológica ....................................................................... 130
8
4.2.1.1 Visión del proyecto .................................................................................................. 131
4.2.1.2 Identificación de scrum master y stakeholders ..................................................... 131
4.2.1.3 Equipo SCRUM ....................................................................................................... 131
4.2.1.4 Creación del backlog priorizado del producto...................................................... 131
4.2.1.5 Realizar la planificación del lanzamiento .............................................................. 131
4.2.2 Análisis y planificación ........................................................................................... 132
4.2.2.1 Módulos .................................................................................................................... 132
4.2.2.2 Product backlog del sistema ................................................................................... 132
4.2.2.3 Sprint 0 ..................................................................................................................... 143
4.2.2.4 Sprint 1 ..................................................................................................................... 144
4.2.2.5 Sprint 2 ..................................................................................................................... 148
4.2.2.6 Sprint 3 ..................................................................................................................... 153
4.2.2.7 Sprint 4 ..................................................................................................................... 159
4.2.2.8 Sprint 5 ..................................................................................................................... 163
4.2.3 Diseño de la solución ............................................................................................... 167
4.2.3.1 Diseño de la arquitectura ........................................................................................ 167
4.2.3.1.1 Lado cliente .......................................................................................................... 168
4.2.3.1.1.1 React Native ..................................................................................................... 168
4.2.3.1.2 Lado servidor ....................................................................................................... 169
4.2.3.1.2.1 Componentes no funcionales .......................................................................... 169
4.2.3.1.2.1.1 Eureka-Server.............................................................................................. 169
4.2.3.1.2.1.2 Config-Server ............................................................................................... 170
4.2.3.1.2.1.3 API Gateway ................................................................................................ 171
4.2.3.1.2.1.4 Composición ................................................................................................. 172
4.2.3.1.2.2 Componentes funcionales ............................................................................... 175
4.2.3.1.2.2.1 Autenticación ............................................................................................... 175
4.2.3.1.2.2.2 Asistencia...................................................................................................... 176
4.2.3.1.2.2.3 Encuesta ....................................................................................................... 178
4.2.3.1.2.2.4 Coparticipación ........................................................................................... 179
4.2.3.1.2.2.5 Notas ............................................................................................................. 181
4.2.3.1.2.2.6 Periodo académico....................................................................................... 183
4.2.3.1.2.2.7 Notificación .................................................................................................. 185
4.2.3.1.2.2.8 Reportes........................................................................................................ 186
9
4.2.3.3 Manual de usuario................................................................................................... 190
4.2.3.3.1 Inicio ..................................................................................................................... 190
4.2.3.3.2 Módulo del profesor ............................................................................................ 191
4.2.3.3.3 Módulo del alumno.............................................................................................. 211
4.2.3.3.4 Módulo director(a) de escuela ............................................................................ 219
5 CONCLUSIONES ........................................................................................................... 223
6 BIBLIOGRAFÍA ............................................................................................................. 224
ANEXOS .................................................................................................................................. 230
Anexo 1: Encuestas a alumnos en Google Forms .................................................................... 230
Anexo 2: Constancia de la validación del producto.............................................................. 237
10
ÍNDICE DE TABLAS
Tabla 1 Tópicos centrales y preguntas de sistema de control de gestión ..................................... 37
Tabla 2 Mejora de procesos de gestión académica ESPAM-MFL ............................................ 117
Tabla 3 Beneficios tangibles del sistema web para I.E. Villa Corazón de Jesús....................... 119
Tabla 4 Beneficios intangibles del sistema web para I.E. Villa Corazón de Jesús.................... 119
Tabla 5 Benchmarking de las soluciones .................................................................................. 120
Tabla 6 Comparativa entre metodologías tradicionales y ágiles............................................... 122
Tabla 7 Resumen porcentual por área de proceso de metodologías ágiles (Scrum, XP, Iconix)
.............................................................................................................................................123
Tabla 8 Comparación de frameworks multiplataformas Xamarin, React Native, Flutter ......... 124
Tabla 9 Resultado de análisis comparativo de criterios con escala de Likert: desarrollo nativo,
React Native, Native Script e Ionic ........................................................................................... 126
Tabla 10 Comparativa entre arquitectura monolítica y arquitectura de microservicios ............. 127
Tabla 11 Comparativa entre SOA y arquitectura de microservicios .......................................... 129
Tabla 12 Creación del backlog priorizado del producto ............................................................ 131
Tabla 13 Product backlog del sistema: pesos y estimaciones .................................................... 133
Tabla 14 Product backlog: Descripción de historias de usuario (HU) y lista de criterios de
aceptación (CA)......................................................................................................................... 134
Tabla 15 Sprint 0 del sistema .................................................................................................... 143
Tabla 16 Sprint 1 del sistema .................................................................................................... 145
Tabla 17 Sprint 2 del sistema .................................................................................................... 148
Tabla 18 Sprint 3 del sistema .................................................................................................... 153
Tabla 19 Sprint 4 del sistema .................................................................................................... 159
Tabla 20 Sprint 5 del sistema .................................................................................................... 164
Tabla 21 Distribución de encuestas realizadas por los alumnos ................................................ 232
Tabla 22 Resultados de la pregunta: ¿Qué tan lejos vive de su centro de estudios (campus
universitario) y lugares relacionados como hospitales?............................................................. 233
Tabla 23 Resultados de la pregunta: ¿(Cumplen/Cumplieron) los profesores con todas lasclases
del syllabus? .............................................................................................................................. 233
Tabla 24 Resultados de la pregunta: ¿Qué tan difícil (es/fue) llevar un control y seguimiento a
las clases avanzadas por el profesor? ........................................................................................ 234
Tabla 25 Resultados de la pregunta: ¿Qué tan difícil (es/fue) llevar un control de asistencias que
has realizado en tus cursos?....................................................................................................... 234
Tabla 26 Resultados de la pregunta: ¿Considera que (hay/hubo) retrasos en el tiempo en el que
te enterabas de tus notas?........................................................................................................... 235
Tabla 27 Resultados de la pregunta: ¿Qué tan difícil (es/fue) llevar un control y seguimiento a
las notas que has obtenido en tus cursos? .................................................................................. 235
Tabla 28 Resultados de la pregunta: ¿Cree usted que es mejor evaluar al profesor por cada clase
en vez de hacerlo una vez cada semestre, de tal forma que se pueda obtener una
retroalimentación más rápida y realista? ................................................................................... 235
Tabla 29 Resultados de la pregunta: ¿Demora/Demoraba mucho resolver las dudas sobre el
curso? ........................................................................................................................................ 236
Tabla 30 Resultados de la pregunta: ¿Cuánto demora/demoraba en enterarse de los anuncios del
profesor tales como postergación de clases, reprogramación o cualquier otro relacionado al
curso? ........................................................................................................................................ 236
11
Tabla 31 Resultados de la pregunta: ¿Se (encuentra/encontraba) la información del curso como
asistencias o notas digitalizada, disponible para poder consultar en cualquier momento (al
instante)? ................................................................................................................................... 236
Tabla 32 Resultados de la pregunta ¿Considera que la información del curso se encuentra
descentralizada y desorganizada? .............................................................................................. 237
Tabla 33 Resultados de la pregunta ¿Se (encuentra/encontraba) la información del curso como
asistencias o notas digitalizada, disponible para poder consultar en cualquier momento (al
instante)? ................................................................................................................................... 237
12
ÍNDICE DE FIGURAS
Figura 1. Relación de dimensiones y factores de modelo de acreditación de programas de
estudios universitarios (SINEACE, 2016) ................................................................................... 20
Figura 2. Gráfica lineal de pregunta: ¿En que año que se encuentran cursando actualmente o
indicar si es egresado? (Elaboración propia) ............................................................................... 22
Figura 3. Gráfica lineal de pregunta: ¿Qué tan lejos viven los alumnos? (Elaboración propia).23
Figura 4. Gráfica lineal de pregunta: ¿(Cumplen/Cumplieron) los profesores con todas las
clases del syllabus? (Elaboración propia) .................................................................................... 23
Figura 5. Gráfica lineal de pregunta: ¿Qué tan difícil (es/fue) llevar un control y seguimiento a
las clases avanzadas por el profesor? (Elaboración propia) ........................................................ 23
Figura 6. Gráfica lineal de pregunta: ¿Qué tan difícil (es/fue) llevar un control de asistencias
que has realizado en tus cursos? (Elaboración propia) ................................................................ 24
Figura 7. Gráfica lineal de pregunta: ¿Considera que (hay/hubo) retrasos en el tiempo en el que
te enterabas de tus notas? (Elaboración propia)........................................................................... 24
Figura 8. Gráfica lineal de pregunta: ¿Qué tan difícil (es/fue) llevar un control y seguimiento a
las notas que has obtenido en tus cursos? (Elaboración propia) .................................................. 25
Figura 9. Gráfica lineal de pregunta: ¿Cree usted que es mejor evaluar al profesor por cada
clase en vez de hacerlo una vez cada semestre, de tal forma que se pueda obtener una
retroalimentación más rápida y realista? (Elaboración propia) ................................................... 25
Figura 10. Gráfica lineal de pregunta: ¿Demora/Demoraba mucho en resolver las dudas sobre el
curso? (Elaboración propia) ........................................................................................................ 26
Figura 11. Gráfica lineal de pregunta: ¿Cuánto demora/demoraba en enterarse de los anuncios
del profesor tales como postergación de clases, reprogramación o cualquier otro relacionado al
curso? (Elaboración propia) ........................................................................................................ 26
Figura 12. Gráfica lineal de pregunta: ¿Se (encuentra/encontraba) la información del curso
como asistencias o notas digitalizadas disponible para poder consultar en cualquier momento (al
instante)? (Elaboración propia) ................................................................................................... 26
Figura 13. Gráfica lineal de pregunta: ¿Considera que la información del curso se encuentra
descentralizada y desorganizada? Por ejemplo: el uso del papel, archivos excel, sistemas web,
redes sociales. (Elaboración propia) ............................................................................................ 27
Figura 14. Gráfica circular de pregunta: ¿Consideraría que un aplicativo móvil(celular) que
permita el manejo de información de los cursos sería más útil que el uso del papel o de sistemas
que solo funcionen en web? (Elaboración propia)....................................................................... 27
Figura 15.Árbol de problemas del inadecuado control académico en la Escuela Profesional de
Obstetricia de la Facultad de Medicina de la UNMSM. (Elaboración propia) ............................ 29
Figura 16.Diagrama de procesos AS-IS del registro y consulta de asistencias y notas en la
Escuela Profesional de Obstetricia de la Facultad de Medicina de la UNMSM. (Elaboración
propia) ......................................................................................................................................... 30
Figura 17.Diagrama de procesos en base a proceso AS-IS de los anuncios del profesor para los
alumnos de su curso en la Escuela Profesional de Obstetricia de la Facultad de Medicina de la
UNMSM. (Elaboración propia) ................................................................................................... 31
Figura 18. Diagrama de procesos en base a proceso AS-IS de las preguntas y respuestas de los
alumnos y profesores de un curso en la Escuela Profesional de Obstetricia de la Facultad de
Medicina de la UNMSM. (Elaboración propia) .......................................................................... 32
Figura 19. Diagrama del árbol de objetivos (Elaboración propia).............................................. 33
Figura 20. Clasificación de las tecnologías de desarrollo móvil (Rinaldi, 2016) ....................... 41
Figura 21. Arquitectura de aplicativos híbridos (Alférez, 2018) ................................................ 41
13
Figura 22. Arquitectura de aplicativos móviles basados en javascript (Leler, 2017) ................. 42
Figura 23. Arquitectura de aplicaciones móviles nativas (Leler, 2017) ..................................... 43
Figura 24. Elementos de una Arquitectura orientada a servicios (Krafzig, Banke, & Slama,
2004) ........................................................................................................................................... 45
Figura25. Arquitecturas monolíticas vs arquitectura de microservicios (Perez-Herrera, 2015).46
Figura 26. Clasificación ACM 2012(Association for Computing Machinery, 2019) ................ 47
Figura 27. Taxonomía IEEE 2019 (IEEE, 2019) ....................................................................... 47
Figura 28.Líneas de investigación de la facultad de ingeniería de sistemas e
informática(Facultad de Ingeniería de Sistemas e Informática UNMSM, 2019) ........................ 48
Figura 29. Casos de uso del sistema de seguimiento al estudiante (Freire, 2015) ....................... 63
Figura 30.Diseño interno de capas del sistema (Chacón, 2016) ................................................. 65
Figura 31. Arquitectura propuesta: Microservicios de venta online de productos (Perez-Herrera,
2015) ........................................................................................................................................... 68
Figura 32. Diferencias entre máquina virtual y contenedor docker(Perez-Herrera, 2015) .......... 69
Figura 33. Flujo de trabajo de scrum (Fernandez & Cadelli, 2014) ........................................... 72
Figura 34. Fases de XP (Pardo, Triana, & Forero, 2014) ........................................................... 78
Figura 35. Esquema de metodología Iconix (Porras, 2019) ....................................................... 80
Figura 36. Construcción del diagrama de secuencia (Porras, 2019) .......................................... 81
Figura 37. Arquitectura de Ionic para plataforma móvil (Christoph, Rösch, & Schuster, 2018)
...............................................................................................................................................83
Figura 38. Uso de javascript, css y xml (Branstein & Branstein, 2017) ..................................... 84
Figura 39. Como corre compilación JIT en los dispositivos (Branstein & Branstein, 2017) ..... 85
Figura 40. Arquitectura de NativeScript (Branstein & Branstein, 2017).................................... 85
Figura 41. Flujo de datos en react (Alférez, 2018) .................................................................... 87
Figura 42. React y React Native Virtual DOM (Alférez, 2018) ................................................ 87
Figura 43. Flujo de datos en Flux (Alférez, 2018) .................................................................... 88
Figura 44. Esquema de proceso de ejecución en react native (Alférez, 2018) ........................... 89
Figura 45. Puentear en React Native (Alférez, 2018)................................................................. 90
Figura 46. Componente de interfaz nativa de usuario en React Native (Alférez, 2018) ............ 91
Figura 47. Componente de interfaz de módulo nativo en React Native (Alférez, 2018) ............ 91
Figura 48. Arquitectura del sistema Flutter (Alférez, 2018)....................................................... 94
Figura 49. Arquitectura de aplicativos móviles usando Flutter (Alférez, 2018)......................... 95
Figura 50. Ecosistema .NET (Alférez, 2018) ............................................................................. 96
Figura 51. Enlace IOS (Alférez, 2018)....................................................................................... 97
Figura 52. Enlace Android (Alférez, 2018) ................................................................................ 97
Figura 53. Pilas de Xamarin y Xamarin.Forms (Alférez, 2018)................................................. 98
Figura 54. Patrón de Modelo-Vista-ModeloVista (Alférez, 2018)............................................. 98
Figura 55. Dependencia de servicios Xamarin (Alférez, 2018) ................................................. 99
Figura 56. Arquitectura de 3 capas (Sarasty, 2015) ................................................................. 100
Figura 57. Elementos de SOA (Krafzig, Banke, & Slama, 2004) ............................................. 102
Figura 58. Componentes de un servicio en SOA (Krafzig, Banke, & Slama, 2004) ................ 103
Figura 59. Estándar de contratación de servicios en SOA(Erl, 2019) ...................................... 106
Figura 60. Abstracción de servicios en SOA. (Erl, 2019) ......................................................... 107
Figura 61. Autonomía de servicios en SOA (Erl, 2019) ............................................................ 109
Figura 62. Tipos de estados de datos en SOA (Erl, 2019) ......................................................... 109
Figura 63. Ejemplo práctico de microservicios: red social (Newman, 2015, pág. 4) ................ 114
14
Figura 64. Escalabilidad de los microservicios (Newman, 2015, pág. 6)................................. 114
Figura 65. Arquitectura de la solución para el Instituto Educativo Wari-Vilca (Acevedo, 2018)
.............................................................................................................................................118
Figura 66. Módulos del sistema (Elaboración propia) ............................................................... 132
Figura 67. Diagrama del diseño de la arquitectura del sistema. (De la Cruz, Espinoza, & Cuba,
2019) ......................................................................................................................................... 167
Figura 68. Diagrama del funcionamiento del servidor spring cloud eureka(Rajesh, 2016, págs.
232-235) ...............................................................................................................................170
Figura 69. Diagrama del funcionamiento del servicio spring cloud config (Rajesh, 2016, pág.
213) ........................................................................................................................................... 171
Figura 70. Tipos de API Gateway (Rajesh, 2016, pág. 153) ..................................................... 171
Figura 71. Diagrama de funcionamiento del API Composer (Ricardson, 2018, pág. 239) ....... 172
Figura 72. Diagrama de API Composer en el cliente. (Ricardson, 2018, pág. 241) .................. 173
Figura 73. Diagrama de API Composer en el API Gateway (Ricardson, 2018, pág. 242) ........ 174
Figura 74. Diagrama de API Composer como servicio aislado (Ricardson, 2018, pág. 243) ... 174
Figura 75.Diagrama de base de datos del servicio autenticación (Elaboración propia)............ 176
Figura 76.Diagrama de base de datos del servicio asistencia (Elaboración propia) ................. 177
Figura 77. Diagrama de base de datos del servicio encuesta (Elaboración propia) ................... 179
Figura 78. Diagrama de base de datos del servicio coparticipación (Elaboración propia) ........ 180
Figura 79. Diagrama de base de datos del servicio notas (Elaboración propia) ........................ 182
Figura 80. Diagrama de base de datos del servicio periodo-académico (Elaboración propia) .. 184
Figura 81. Diagrama de base de datos del servicio notificación (Elaboración propia) .............. 186
Figura 82. Uso de los servicios en la herramienta Postman (Elaboración propia) .................... 188
Figura 83. Uso de Bitbucket con repositorio GIT (Elaboración propia).................................... 188
Figura 84. Código fuente del repositorio GIT en Bitbucket (Elaboración propia) .................... 189
Figura 85. Uso de nube OneDrive para compartir archivos (Elaboración propia) .................... 189
Figura 86. Interfaz: Acceso al sistema (Elaboración propia)..................................................... 191
Figura 87. Interfaz: Elegir accesos (Elaboración propia) .......................................................... 191
Figura 88. Interfaz del profesor: Visualizar las clases de hoy (Elaboración propia) ................. 192
Figura 89. Interfaz del profesor: Visualizar menú lateral (Elaboración propia) ........................ 192
Figura 90. Interfaz del profesor: Visualizar clases de hoy (Elaboración propia) ....................... 193
Figura 91. Interfaz del profesor: Visualizar clases de hoy – Iniciar clase (Elaboración propia)
.............................................................................................................................................194
Figura 92. Interfaz del profesor: Visualizar clases de hoy – Modificar asistencias de alumnos
(Elaboración propia) .................................................................................................................. 194
Figura 93. Interfaz del profesor: Visualizar clases de hoy – Registrar modificación de
asistencias de alumnos (Elaboración propia)............................................................................. 195
Figura 94. Interfaz del profesor: Visualizar clases de hoy – Terminar clase (Elaboración propia)
.............................................................................................................................................196
Figura 95. Interfaz del profesor: Visualizar asistencias – Listar cursos (Elaboración propia) .196
Figura 96. Interfaz del profesor: Visualizar asistencias – Listar agrupaciones curriculares
(Elaboración propia) .................................................................................................................. 197
Figura 97. Interfaz del profesor: Visualizar asistencias – Listar clases de una agrupación
curricular (Elaboración propia) ................................................................................................. 198
Figura 98. Interfaz del profesor: Visualizar asistencias – Detalle de la clase (Elaboración
propia) ....................................................................................................................................... 199
15
Figura 99. Interfaz del profesor: Visualizar calificaciones - Listado de calificaciones según
variable especifica seleccionada (Elaboración propia) .............................................................. 199
Figura 100. Interfaz del profesor: Visualizar calificaciones – Modificar listado de calificaciones
(Elaboración propia) .................................................................................................................. 200
Figura 101. Interfaz del profesor: Visualizar calificaciones – Registro de calificaciones
(Elaboración propia) .................................................................................................................. 200
Figura 102. Interfaz del profesor: Visualizar promedio general (Elaboración propia) ............. 201
Figura 103. Interfaz del profesor: Visualizar promedio general por alumno (Elaboración propia)
.............................................................................................................................................201
Figura 104. Interfaz del profesor: Visualizar preguntas (Elaboración propia) ......................... 202
Figura 105. Interfaz del profesor: Publicar pregunta (Elaboración propia) .............................. 203
Figura 106. Interfaz del profesor: Pregunta publicada (Elaboración propia)............................ 203
Figura 107. Interfaz del profesor: Realizar respuesta (Elaboración propia) ............................. 205
Figura 108. Interfaz del profesor: Respuesta realizada (Elaboración propia) ........................... 205
Figura 109. Interfaz del profesor: Visualizar anuncios. (Elaboración propia) .......................... 206
Figura 110. Interfaz del profesor: Publicar anuncio (Elaboración propia) ............................... 207
Figura 111. Interfaz del profesor: Anuncio publicado (Elaboración propia) ............................ 207
Figura 112. Interfaz del profesor: Ver fórmula de grupo (Elaboración propia) ........................ 208
Figura 113. Interfaz del profesor: Personalizar fórmula (Elaboración propia) ......................... 209
Figura 114. Interfaz del profesor: Personalizar subfórmulas (Elaboración propia) .................. 209
Figura 115. Interfaz del profesor: Fórmula confirmar personalización (Elaboración propia) .. 210
Figura 116. Interfaz del profesor: Fórmula correctamente personalizada (Elaboración propia)
.............................................................................................................................................211
Figura 117. Interfaz del alumno: Visualizar las clases de hoy (Elaboración propia)................ 212
Figura 118. Interfaz del alumno: Visualizar menú lateral (Elaboración propia) ...................... 212
Figura 119. Interfaz del alumno: Visualizar encuesta (Elaboración propia) ............................ 213
Figura 120. Interfaz del alumno: Encuesta realizada (Elaboración propia) .............................. 214
Figura 121. Interfaz del alumno: Visualizar asistencias – Listar cursos (Elaboración propia) 214
Figura 122. Interfaz del alumno: Visualizar asistencias – Listar agrupaciones curriculares
(Elaboración propia) .................................................................................................................. 215
Figura 123. Interfaz del alumno: Visualizar asistencias – Listado de clases de una agrupación
curricular (Elaboración propia) ................................................................................................. 215
Figura 124. Interfaz del alumno: Visualizar asistencias – Detalle de la clase (Elaboración
propia) ....................................................................................................................................... 216
Figura 125. Interfaz del alumno: Visualizar calificaciones – Listado de calificaciones
(Elaboración propia) .................................................................................................................. 217
Figura 126. Interfaz del alumno: - Visualizar anuncios (Elaboración propia).......................... 218
Figura 127. Interfaz del alumno: - Ver notificaciones (Elaboración propia) ............................ 218
Figura 128. Interfaz de director(a) de escuela – Visualizar menú lateral (Elaboración propia)
.............................................................................................................................................219
Figura 129. Interfaz de director(a) de escuela: Visualizar estadísticas de asistencias
(Elaboración propia) .................................................................................................................. 220
Figura 130. Interfaz de director(a) de escuela - Visualizar estadísticas de calificaciones
(Elaboración propia) .................................................................................................................. 221
Figura 131. Interfaz de director(a) de escuela: Visualizar estadísticas de encuestas (Elaboración
propia) ....................................................................................................................................... 222
Figura 132.Primera parte del formato de la encuesta (Elaboración propia) ............................. 230
16
Figura 133.Segunda parte del formato de la encuesta (Elaboración propia) ............................ 231
Figura 134. Fórmula del cálculo del tamaño de la muestra de población fija (Torres & Paz,
2006) ......................................................................................................................................... 232
Figura 135. Constancia de validación de la especialista (Elaboración propia) ......................... 238
17
1 INTRODUCCIÓN
1.1 Antecedentes
De los ultimos años, existe información de encuestas, rankings e indicadores que
muestran que la educación universitaria en Perú ha tenido muchos inconvenientes a
continuación se muestran las comparaciones del ranking de las universidades peruanas
con respecto a las universidades latinoamericanas.
Según (COMEXPERU, 2011) en el año 2011, era evidente que había problemas en la
educación universitaria en Perú. Las causas de estos problemasmencionan:
La desigualdad de oportunidades para el acceso de la educación universitaria:
Debido a que todas las oportunidades que existían en el país se centraban en
Lima y las demás provincias no podían tener acceso a la misma calidad
educativa.
Incremento de las universidades nacionales y privadas: Esto no garantizaba un
buen nivel competitivo, debido a que aunque haya un mayor número de
universidades no se aseguraba que la educacion sea de calidad.
Ninguna universidad peruana se encontraba en las 30 primeras universidades del
ranking de las 100 mejores universidades latinoamericanas en el año
2010.(Quacquarelli Symonds, 2010)
Según la publicación de SINEACE (Yanada, Rivera, & Castro, 2012), el Perú se
encontraba por debajo del rango promedio con lo que respecta a calidad educativa en
comparación con otros países.
Se menciona una encuesta realizada el año 2010 denominada ENHAB (Encuesta
Sobre Habilidades y Funcionamiento del Mercado Laboral Peruano), en el cual
se manifestaba un deterioro en la calidad del sistema universitario debido a que
el número de profesionales insatisfechos con sus estudios superiores se había
incrementado.
Se cita como uno de los indicadores, que la brecha salarial del mejor pagado y el
peor pagado entre los profesionales en Perú era de 10 a 1, mientras que en Chile
la proporción era sólo de 3 a 1, lo cual muestra una brecha muy grande de
diferencia y era un índice negativo para la educación universitaria en nuestro
país.
En lo que respecta al entorno laboral, según el estudio de Manpower,
mencionaba que el 42% de las empresas peruanas se encontraban con
dificultades para encontrar un profesional con las características requeridas,
siendo este porcentaje más alto que el promedio de América Latina (34%). Otro
aspecto que indica que la calidad de educación superior en el Perú no se
encontraba a nivel de la educación en otros países es que según la ENAHO
(Encuesta Nacional de Hogares) la tasa de subempleo (que viene a ser otra
ocupación diferente a la que se dedica una persona) tuvo un porcentaje muy
elevado.
En el año 2013, se encontraban solo tres universidades peruanas dentro de las 100
primeras universidades en Latinoamérica las cuales fueron la Pontificia Universidad
18
Católica del Perú en el puesto 30, la Universidad Nacional Mayor de San Marcos en el
puesto 57 y la Universidad Peruana Cayetano Heredia en el puesto 65.(Quacquarelli
Symonds, 2013)
Según el informe de (INEI, 2015), en la cual se realizó una encuesta nacional a
egresados universitarios y universidades se encontraron los siguientes indicadores:
Solo el 8.2 % de las universidades encuestadas contaban con una certificación
ISO, la cual es la base del sistema de gestión de la calidad, esta es una norma
internacional que se centra en todos los elementos de administración de calidad
con los que una universidad debería contar para mejorar la calidad de la
educación.
El 23% de egresados no se encuentran laborando con empleos relacionados a su
carrera.
El 37.3% de egresados considera que los servicios otorgados por la universidad
no fueron buenos.
De las 122 universidades encuestadas solo 8 contaban con acreditación por
SINEACE.
El 24.4% de egresados mencionan que el desempeño académico no fue bueno.
Según el 67.4% de los encuestados comentan que los trámites administrativos no
fueron buenos.
En el año 2015, se seguían contando con 3 universidades peruanas dentro del ranking de
las 100 mejores universidades de Latinoamérica, se encontraban la Pontificia
Universidad Católica del Perú en el puesto 21, la Universidad Nacional Mayor de San
Marcos en el puesto 70 y la Universidad Peruana Cayetano Heredia en el puesto 74; aun
así se debe resaltar a la Pontificia Universidad Católica del Perú que subió en la escala
de posiciones perteneciendo así a las 30 mejores universidades latinoamericanasen
cambio las otras universidades bajaron.(Quacquarelli Symonds, 2015)
En el año 2017, no varío mucho las posiciones de las universidades con respecto al
2016, ya que seguían solo 3 universidades peruanas en el top 100 de mejores
universidades latinoamérica.(Quacquarelli Symonds, 2017)
Para el año 2019, la Pontificia Universidad Católica del Perú se coloca en el puesto 18,
es decir entre los 20 mejores de Latinoamérica, y la Universidad Nacional Mayor de
San Marcos sube cinco posiciones. (Quacquarelli Symonds, 2019)
Para el año 2020, la Pontificia Universidad Católica del Perú se coloca en el puesto
16,mejor que el año pasado y se mantiene en las 20 mejores de Latinoamérica, por otro
lado, hay 4 universidades en el top 100 de las mejores universidades de latinoamérica.
(Quacquarelli Symonds, 2020)
Ante la problemática de las universidades peruanas, se propone mejorar la calidad
educativa en el año 2006 (SINEACE, 2016), se creó la ley 28740 (Ley de Creación del
Sistema Nacional de Evaluación, Acreditación y Certificación de la Calidad -
SINEACE). Su función era la de apoyar a las instituciones a conseguir la acreditación
mediante la evaluación de éstas. En su reglamento se menciona la aseguración de los
19
servicios de calidad de las instituciones educativas (colegios, universidades, entre otros)
ya sean públicas o privadas. En el año 2014, se creó la Ley Universitaria (LeyN° 30220)
que declaraba en uno de sus puntos la reorganización del SINEACE, en esta ley se creó
un nuevo modelo de acreditación, basada en una matriz de estándares.
20
presentan estudiosrelacionados a los estándares mencionados anteriormente con
estudios que reflejan su relación con el desempeño académico de alumnos y del
docente:
Relacionado al estándar 14, sobre el seguimiento del desempeño de docentes,
indica que existe un buen porcentaje de alumnos encuestados que consideran
que el desempeño académico de los docentes es bajo entre los puntos
mencionados se encuentran los siguientes: identificar intereses de estudiantes,
promover participación de los intereses de los estudiantes, conocimientos en
fundamentos teóricos y/o tecnológicos. Como conclusión en base a indicadores
de las encuestas que realizó se tiene una relación significativa entre el
desempeño docente universitario y la satisfacción de los estudiantes del
programa (Tolentino, 2014).
Relacionado al estándar 20, sobre el seguimiento del desempeño de estudiantes:
Hay un importante factor que es la ejecución curricular (control o seguimiento
del sílabo o currículo del curso). Se tomó como objeto de estudio los resultados
de las encuestas aplicadas a los alumnos del primer año de estudio de la Facultad
de Odontología de la UNMSM, en dondela autora hace énfasis en la
dependencia existente entre el cumplimiento continuo del sílabo con el
rendimiento académico, ella menciona lo siguiente: “Existe relación directa
entre la ejecución curricular y el rendimiento académico (…) donde la
percepción positiva de los estudiantes sobre la ejecución curricular se
correlaciona con un mejor rendimiento académico”(Moromi, 2002).
Otro factor importante relacionado al estándar 20,viene a ser la asistencia a
clases del alumnado universitario el cual es importante para obtener un
rendimiento académico esperado. Se realiza un estudio donde se toma como
fuente de datos los registros de asistencias y los resultados del examen final del
curso de metodología de investigación. Se logra comprobar a través de técnicas
estadísticas, que existe una dependencia entre las siguientes variables: asistencia
a clases (teóricas, prácticas) y superación de la asignatura. Se concluye del
estudio realizado, que la asistencia a clases tanto práctica como teórica influye
en la superación o mejor rendimiento académico en los universitarios(Rodriguez
& Herrera, 2009).
Relacionado al estándar 30, se menciona que las instituciones de educación
superior han tenido cambios con la incorporación de las tecnologías de
información. Existe una necesidad de que se usen estrategias tecnológicas
innovadoras para que las universidades realicen procesos de mejora de calidad
apoyados en las tecnologías de información. Menciona que según Cukierman
refiere a que los alumnos están acostumbrados a usar estas tecnologías de forma
casi innata y que se debería aprovechar su uso para acceder a la información y al
conocimiento(Kuz, Falco, & Giandini, 2016).
La inserción de las tecnologías de información en las universidades ha supuesto
una transformación y optimización de procesos administrativos, de la gestión y
de procesos de enseñanza-aprendizaje. También menciona que la integración de
éstas proporciona la mejora del proceso educativo(Álvarez & Mayo, 2009).
21
De acuerdo a (SINEACE, 2020), la escuela profesional de obstetricia de la UNMSM se
encuentra en proceso de autoevaluación la cual es realizada por ésta misma y se basa en
el matriz de estándares y en la guía de evaluación, y como se menciona en(De la Cruz,
Espinoza, & Cuba, 2019), de acuerdo alas reuniones con la directora de escuela en la
Escuela Profesional de Obstetricia - Facultad de Medicina de la UNMSM se desea
mejorar la calidad educativa siguiendo los estándares mencionados de la matriz de
estándares de la ley universitaria del SINEACE, los cuales son: un adecuado
seguimiento al estudiante, evaluación al docente y el de contar con un sistema
informático.
Es importante mencionar que los alumnos de 2.º a 5.º año si llevan los cursos en su
escuela mientras que los alumnos de 1.er año llevan los cursos en Estudios Generales
(EEGG).
Se realizaron encuestas (véase Anexo 1) a los alumnos de obstetricia que cuentan con 1
año de experiencia en los cursos impartidos por la Escuela Profesional de Obstetricia
(EPO), es por ello que se delimitaron las encuestasa alumnos de 3.er,4.º, 5.ºaño
académico y alumnos egresados menores de un año, ya que todos los mencionados
cumplen con esa condición sin excepción.
Esta encuesta tiene un tamaño muestral probabilístico de 219 estudiantes de una
población de 364 estudiantes, esta cantidad de muestrasatisface el tamaño mínimo que
requiere elnivel de confianza de 95% y margen de error de 5%.
Figura 2.Gráfica lineal de pregunta: ¿En que año que se encuentran cursando
actualmente o indicar si es egresado?(Elaboración propia)
Para resumir, se mencionan los resultados de las preguntas de la encuesta realizada por
los alumnos:
De acuerdo con la gráfica(véase Figura 3), donde 1 es“muy cerca” y 5 es“muy
lejos”, alrededor del 90.8% de los encuestados considera que no viven cerca de
su campus universitario y/o hospitales.
22
Figura 3.Gráfica lineal de pregunta: ¿Qué tan lejos viven los alumnos?(Elaboración
propia)
De acuerdo con la gráfica (véase Figura 4), donde 1 es“muy pocas” y 5 es “todas
sin excepción”, el 85.84% de los alumnos encuestados considera que no se llegó
a cumplir todas las clases del syllabus de los cursos.
Figura 5.Gráfica lineal de pregunta: ¿Qué tan difícil (es/fue) llevar un control y
seguimiento a las clases avanzadas por el profesor?(Elaboración propia)
23
De acuerdo con la gráfica (véase Figura 6), donde 1 es “muy fácil” y 5 es “muy
difícil”, el 63.47% de los encuestados considera que no es fácil llevar el control
de sus asistencias de clases en los cursos.
Figura 6.Gráfica lineal de pregunta: ¿Qué tan difícil (es/fue) llevar un control de
asistencias que has realizado en tus cursos?(Elaboración propia)
De acuerdo con la gráfica (véase Figura 7), donde 1 es “muy poco” y 5 es
“demasiado”, el 86.30% de los encuestados considera que el retraso en el tiempo
que se toma en enterarse de sus notas es regular a demasiado.
24
Figura 8.Gráfica lineal de pregunta: ¿Qué tan difícil (es/fue) llevar un control y
seguimiento a las notas que has obtenido en tus cursos?(Elaboración propia)
Figura 9.Gráfica lineal de pregunta: ¿Cree usted que es mejor evaluar al profesor por
cada clase en vez de hacerlo una vez cada semestre, de tal forma que se pueda obtener
una retroalimentación más rápida y realista?(Elaboración propia)
De acuerdo con la gráfica (véase Figura 10), donde 1 es “no demora” y 5 es
“demora mucho”, el 66.21% considera que existedemora en resolver sus dudas.
25
Figura 10.Gráfica lineal de pregunta: ¿Demora/Demoraba mucho en resolver las dudas
sobre el curso?(Elaboración propia)
De acuerdo con la gráfica (véase Figura 11), donde 1 es “muy poco” y 5 es
“demasiado”, el 75.34% de los encuestados considera que la demora en
enterarse de los anuncios que realiza el profesor es regular a alta.
26
Figura 13. Gráfica lineal de pregunta: ¿Considera que la información del curso se
encuentra descentralizada y desorganizada? Por ejemplo: el uso del papel, archivos
excel, sistemas web, redes sociales.(Elaboración propia)
27
Por lo general, no se llega a cumplir todos los temarios del sílabo de los cursos
en su totalidad, esto debido a feriados, ausencia del profesor o simplemente que
el profesor no haya podido culminar con todos los temas del syllabus.
En la actualidad,solo algunos profesores acuden aaplicacionesinformáticas
(correo, facebook, whatsapp, etc.) para comunicar avisos a su delegado y/o
alumnos, tales comoregistro de notas, falta a clase por enfermedad, postergación
de clase por feriado u otro acontecimiento que es complicado para los alumnos
de saber en un momento dado, muchas veces el alumno debe indagar por otros
medios para poder enterarse, lo cual causa pérdida de tiempo y genera malestar
en ellos.
No se llega a medir la satisfacción de los alumnos por cada clase impartida del
profesor, se hizo menciónde que ésta se podría realizar mediante encuestas por
cada clase.
El resumen de la información impartida de las clases como la ejecución
curricular(sílabo), las asistencias de alumnos y profesores, y las notas viene a ser
tediosa de manejar para la dirección de escuela, esta información normalmente
se registra a fin de ciclo por lo que también para la dirección de escuela sería
importante contar con esta información en tiempo real en forma de estadísticas.
Se mencionó que cuentan con sistemas informáticos web pero que no se llegan a
usar mucho debido a que no en todos los salones se cuentan con computadoras
menos en los locales externos a las facultades, pero si comentó que la mayoría
de los profesores contaba con smartphones y sería más útil el uso de aplicativos
móviles.
Para comprender mejor la problemática mencionada de la Escuela Profesional de
Obstetricia – Facultad de Medicina de la UNMSM se presenta un árbol de problemas, el
cual se encuentra detallado (véaseFigura 15). Esta técnica permite reconocer el
problema principal, sus causas y sus efectos.
28
Figura 15.Árbol de problemas del inadecuado control académico en la Escuela
Profesional de Obstetricia de la Facultad de Medicina de la UNMSM. (Elaboración
propia)
Además, se realizó el proceso AS-IS (Tal como está) ya que ayuda a generar un
entendimiento de como se está realizando el proceso de negocio, del mismo modo
permite establecer puntos críticos del proceso.
Para la visualización panorámica del proceso de negocio se hace uso del software
Bizagi Modeler que nos permite plasmarlosintéticamente a través de un diagrama.
Se muestra el diagrama de proceso AS-IS del registro y consulta de asistencias de los
alumnos y profesores de la escuela profesional de obstetricia de la Facultad de Medicina
de la UNMSM (véaseFigura 16). En la cual se puede evidenciar que existen los
siguientes problemas:
El alumno no sabe sus asistencias, ni sus calificaciones, ya que no se encuentran
disponibles a través de un medio informativo. Ocasionalmente el profesor lo
deriva al delegado del grupo, lamentablemente este actúa de manera pasiva (en
su gran mayoría), lo cual produce una ralentización en la comunicación.
El registro de asistencias y notas es realizado manualmente a través de papel
físicopara cada profesor del curso.
Existe riesgo de pérdida de información ya que ésta se encuentra en papelfísico.
La dirección de escuela carece de indicadores y/o estadísticas sobre las
asistencias, calificacioneso cualquier otro de índole académico;los cuales no
favorecen a la rápida toma de decisiones, por consecuente, tomar las medidas
correspondientes que amerite el caso.
29
El uso de papel físicono conlleva a mantener un ecosistema sostenible.
Se muestra el diagrama de procesos AS-IS de los anuncios del profesor hacia los
alumnos de su curso dentro de la Escuela Profesional de Obstetricia de la Facultad de
Medicina de la UNMSM. (véaseFigura 17). En la cual se puede evidenciar que existen
los siguientes problemas:
Existen retrasos en la recepción de anuncios realizados por los profesores hacia
los alumnos.
Se depende mucho del delegado para emitir los anuncios.
Los medios de comunicaciónpodrían no ser los más adecuados.
No existe un único canal por el cual los estudiantesse enteren de los avisos
realizados por el docente.
30
Figura 17.Diagrama de procesos en base a proceso AS-IS de los anuncios del profesor
para los alumnos de su curso en la Escuela Profesional de Obstetricia de la Facultad de
Medicina de la UNMSM. (Elaboración propia)
31
Figura 18. Diagrama de procesos en base a proceso AS-IS de las preguntas y respuestas
de los alumnos y profesores de un curso en la Escuela Profesional de Obstetricia de la
Facultad de Medicina de la UNMSM. (Elaboración propia)
32
Figura 19. Diagrama delárbol de objetivos (Elaboración propia)
Objetivo principal
Desarrollar un aplicativo móvil que use la arquitectura de microserviciosen base a la
metodología de desarrollo SCRUM que pueda mejorar el control académico. Caso:
Escuela Profesional de Obstetricia - Facultad de Medicina de la Universidad Nacional
Mayor de San Marcos.
Objetivos secundarios
Permitir el control de la asistencia a clases del profesor.
Permitir el control de la asistencia a clases de los alumnos.
Permitir el control de las notas de los alumnos.
Brindar estadísticas e indicadores para la dirección de escuela
Brindar medición del desempeño de los profesores por clase al permitir que los
alumnos realicen encuestas por cada clase.
Proporcionar un medio de interacción para que alumnos y profesores se puedan
comunicar mediante anuncios, preguntas y respuestas.
Brindar información disponible en línea.
Organizar y centralizar la información en el sistema para todos los interesados.
Reducir el tiempo de búsqueda de información.
1.4 Justificación
Este trabajo se enfoca en realizar un software que permita mejorar la eficacia y
eficiencia del control académico de alumnos y profesores de la Escuela Profesional de
33
Obstetricia de la Facultad de Medicina de la UNMSM, con el fin de poder mejorar su
calidad académica de acuerdo con los estándares de acreditación del SINEACE en las
que se mencionan el control de alumnos y profesores y el poder contar con un sistema
informático que apoye ala gestión académica.
1.5 Alcances y limitaciones
1.5.1 Alcances
La solución propuesta será usada solo por alumnos, profesores y ladirección de
escuela de la Escuela Académica Profesional de Obstetricia de la Facultad de
Medicina de la UNMSM.
La solución se desarrollará enel último semestre activo.
Los usuarios tendrán acceso a notificaciones en tiempo real.
El aplicativose desarrollarápara móviles Android e IOS.
Se realizará pruebasinternas en el desarrollo de software y pruebas con los usuarios
para validar las funcionalidades del software.
El sistema de información abarcará los siguientes puntos:
o Visualización de los cursos designados en el semestre para los alumnos y
profesores.
o Registro de asistencias de alumnos y profesores en las clases impartidas del
curso
o Registro de encuesta de los alumnos por cada clase impartida del curso.
o Registro y visualización de las notas en el curso.
o Registro y visualización de los anuncios en el curso.
o Registro y visualización de preguntas y respuestas en el curso.
o Visualización de estadísticas para la dirección de escuela.
1.5.2 Limitaciones
Limitación espacial:
El aplicativo de control académico cubre geográficamente el Perúdebido a que
abarca el área de la Escuela Profesional de Obstetricia de la Facultad de Medicina de
la UNMSM, las prácticas en diferentes hospitales y los internados se realizan en
diferentes ciudades.
Limitación social
El aplicativo de control académico beneficiará a los alumnos (2.º a 5.º año),
profesores y la dirección de escuela de la Escuela Profesional de Obstetricia de la
Facultad de Medicina de la UNMSM.
Limitación técnica
No aplica, ya que se cuentan con los conocimientos adecuados sobre hardware y
software sobre la arquitectura de microservicios y de reactnative.
1.6 Organización de la tesis
La tesis que se presenta está organizada de la siguiente manera, en el capítulo II se
describe el marco teórico (Definición de términos, metodologías de desarrollo,
arquitectura de software). En el capítulo III, se hace enfoque en el estado del arte
34
(Taxonomía, artículos, tesis, tecnología, casos de éxito y benchmarking). En el capítulo
IV, se presentala resolución del problema (cuadros comparativos y la descripción de la
solución tecnológica).En el capítulo V, se presentan las conclusiones.
35
2 MARCO TEÓRICO
2.1.1 Control
Control:Significa la comprobación, inspección, fiscalización, intervención. Regulación
manual o automática, sobre un sistema(Real Academia Española, 2001).
Según (Koontz, Weihrich, & Cannice, 2012), el control es medir y corregir las
actividades de los subordinados para asegurar que los eventos se ajusten a los planes.De
acuerdo con(Haimann, 2005)el control es el proceso de verificación para determinar si
se están cumpliendo los planes o no, si existe un progreso hacia los objetivos y metas.
(Zona Económica, 2019)
Se puede resumir al control como un proceso que verifica y corrige si los planes van de
acuerdo con lo establecido.
36
(Beuren & Teixeira, 2014) menciona que una de las funciones de la evaluación de
desempeñoes la de proveer información valiosa para latoma de decisiones, siendo este
el apoyo principalpara el proceso de planeamiento y control,así como mantenerse
alineados con los objetivostrazados de la organización. Otra importante funcionalidades
la “señalización”, esto quiere decir, mostrar a los empleados la importancia de
losaspectos estratégicos establecidos y brindar informaciónno financiera a los
stakeholders, talescomo la innovación, operaciones, niveles de satisfaccióndel cliente,
entre otros.(De la Cruz, Espinoza, & Cuba, 2019)
Como esta mencionado en (De la Cruz, Espinoza, & Cuba, 2019) , para (Ferreira &
Otley, 2006)una forma de evaluar a los sistemas de control de gestión es a través del
framework “Gestión del desempeño y control”, cuya finalidad es capturar la estructura y
funcionalidad de los sistemas de control de gestión. A continuación, (véaseTabla 1), se
listan los 12 tópicos centrales y las preguntas con las que éstas son fórmuladas:
Tabla 1
Tópicos centrales y preguntas de sistema de control de gestión.
Tópicos Preguntas
Misión y visión ¿Cuál es la visión y misión de la organización y como se
llama la atención de los gerentes y empleados? ¿Qué
mecanismos, procesos y redes son usados para transmitir los
propósitos y objetivos generales de la organización hacia sus
miembros?
Factores claves de ¿Cuáles son los factores claves que se consideran
éxito fundamentales para el éxito general de la organización y
como les llama la atención a los gerentes y empleados?
Planes y estrategias: ¿Cuál es la estructura de la organización y que impacto tiene
en el diseño y uso de los sistemas de gestión del
rendimiento? ¿Cómo influye y como está influenciado por el
proceso de gestión estratégica?
Estructura de la ¿Cuáles son las medidas de desempeño clave de la
organización organización?
Indicadores claves ¿Cuáles son las medidas de desempeño clave de la
del desempeño: organización que se derivan de sus objetivos, factores clave
de éxito y estrategia y planes? ¿Cómo se especifican y qué
papel juegan en la evaluación de desempeño? ¿Existen
omisiones significativas?
Establecimiento de ¿Qué nivel de desempeño debe alcanzar la organización para
objetivos cada una de sus medidas de desempeño clave (identificadas
en la pregunta anterior), como se encarga de establecer los
objetivos de desempeño apropiados para ellos y que tan
difíciles son esos objetivos?
Evaluación del ¿Qué procesos, si los hay, sigue la organización para evaluar
desempeño el desempeño individual, grupal y organizacional? ¿Las
evaluaciones de desempeño son principalmente objetivas,
subjetivas o mixtas y que tan importantes son la información
37
y los controles formales e informales en estos procesos?
Sistema de ¿Qué recompensas financieras y/o no financieras, obtendrán
recompensas los gerentes y otros empleados al alcanzar los objetivos de
desempeño u otros aspectos evaluados del desempeño (o, a
la inversa, que sanciones sufrirán al no lograrlos)?
Flujo de información ¿Qué flujos específicos de información (retroalimentación y
avance), sistemas y redes tiene implementada la
organización para respaldar el funcionamiento de sus
sistemas de gestión de desempeño?
Tipos de uso de los ¿Qué tipo de uso se hace de la información y de los diversos
flujos mecanismos de control establecidos? ¿Se pueden
caracterizar estos usos en términos de diversas tipologías en
la literatura? ¿Cómo difieren los controles y sus usos en
diferentes niveles jerárquicos?
Fuente:(De la Cruz, Espinoza, & Cuba, 2019), adaptado de (Ferreira &Otley, 2006) y
citado en(Beuren& Teixeira, 2014).
38
Dimensión de formaciónintegral: Es el eje central. Evalúa el proceso de
enseñanza y aprendizaje a los alumnos, el soporte a los estudiantes y docentes,
como los procesos de investigación y responsabilidad social.
Dimensión de soporte institucional: Evalúa los aspectos relacionados con la
gestión de recursos, infraestructura y el soporte para lograr el bienestar de los
miembros de la institución educativa
Dimensión de resultados: Verifica los resultados del aprendizaje y el perfil de
egreso como también los objetivos educacionales de la institución.
40
Figura 20. Clasificación de las tecnologías de desarrollo móvil (Rinaldi, 2016)
2.3.1 Web
En este tipo de clasificación se desarrolló un sitio web para el navegador web del
dispositivo móvil que pueda usar las funciones táctiles y adaptarse a diferentes tamaños,
el propósito es que se pueda reusar el código base y tomar ventajas de las habilidades en
el desarrollo web dado que no son usadas las funciones del software o software de las
plataformas específicas.(Alférez, 2018)
De acuerdo con(Alférez, 2018) se mencionan dos tipos:
Diseño responsivo y adaptativo, que optimiza la experiencia del usuario a través
de los diferentes dispositivos ajustando el tamaño de ventas, resoluciones y
contexto de uso.
Aplicativos de web progresivos que es una tecnología la cual toma ventaja de los
navegadores y las tecnologías web para comportarse de una forma similar a un
aplicativo móvil en un dispositivo.
2.3.2 Híbrido
En este tipo de clasificación (véase Figura 21), se encuentran aquellos aplicativos
construidos dentro de un webview que es una interfaz que renderiza el contenido web en
un aplicativo, entonces se usan tecnologías como HTML5, CSS y JavaScript y además
se provee un componente nativo que provee acceso a los recursos nativos de un
dispositivo por ejemplo GPS, cámara entre otros, todo esto directo de JavaScript,
gracias a interfaces de funciones escritas en código nativo del sistema
operativo.(Alférez, 2018)
41
Los inconvenientes vienen a ser un decremento en el rendimiento del dispositivo o que
la experiencia de usuario nativa es difícil de conseguir dado que se agregan capas, la
ventaja es que se pueden reusar las habilidades web a varias plataformas móviles con un
solo código base.(Alférez, 2018)
Apache Cordova es un ejemplo de un componente que puede acceder a funciones del
dispositivo, éste es un proyecto de código abierto mantenido por la fundación de
Apache Software, entre sus funciones esta que puede establecer comunicación con APIS
nativas y el webview mediante plugin de la arquitectura. (Alférez, 2018)
Ionic es un framework de código abierto creado por la compañía del mismo nombre que
tiene licencia MIT. Usa Apache Cordova y combina Angular con su propia librería de
interfaz gráfica que provee una colección de componentes que tienen la forma,
sensación y funcionalidades nativas de cada plataforma móvil. También puede crear
aplicativos de web progresivos. Ejemplos de empresas que usaron este framework son
McDonald o compañía de ropas Diesel.(Alférez, 2018)
2.3.3 Javascriptnativo
En este tipo de clasificación (véase Figura 22) los aplicativos comparten el código base
para varios dispositivos, pero no en vez de construir una página web se renderiza a los
widgets nativos de las plataformas elegidas. (Alférez, 2018)
42
2.3.4 Compilación cruzada
Los aplicativos son escritos en un lenguaje de programación base y luego compilados en
código nativo para cada plataforma móvil soportada.(Alférez, 2018)
De acuerdo con(Alférez, 2018) entre las principales soluciones están Xamarin y Flutter:
Xamarin fue desarrollado por la empresa del mismo nombre luego comprada por
Microsoft en 2016, ofrece como lenguaje C#, librería de clases para trabajar
alrededor de 3 plataformas (Android IOS y Windows Phone) compilado en
aplicaciones nativas.
Flutter es un framework móvil de interfaces gráficas de Google que permite
desarrollar interfaces multiplataforma, ofrece como lenguaje Dart. Uno de los
aplicativos que usaron este framework es la aplicación de música Hamilton.
2.3.5 Nativo
El desarrollo nativo involucra usar el SDK (Software Development Kit) de Android o
IOS para codificar con sus propias herramientas, programación de lenguaje y APIS que
funcionen en su plataforma. Se compilan en código maquina y puede interactuar
directamente y tomar ventaja de características del sistema operativo (usar software o
hardware especifico de un dispositivo)(Alférez, 2018)
Android por su parte es un sistema operativo desarrollado y mantenido por Google
basado en una versión modificada del Kernel de Linux. Los aplicativos pueden ser
escritos con Java o Kotlin usando Android SDK.(Alférez, 2018)
IOS por otro lado tiene su sistema operativo desarrollado y mantenido por Apple Inc. y
es exclusivo para su hardware a diferencia de Android, está basado en UNIX y las
aplicaciones pueden ser escritas con Swift u Objective-C.(Alférez, 2018)
A continuación, se muestra la arquitectura de aplicaciones móviles nativas que muestra
los componentes y la forma que interactúan el aplicativo y la plataforma. (véase Figura
23)
43
2.4 Arquitectura
44
Figura 24. Elementos de una Arquitectura orientada a servicios(Krafzig, Banke, &
Slama, 2004)
45
La consistencia es eventual, ya que todo no está en un solo lugar sino disperso
en varios lugares, por lo tanto,se debe realizar una gestión de la consistencia
eventual para cada uno de ellos.
Se debe contar con gente con experiencia para manejar la gran cantidad de
servicios.
Se puede apreciar la diferencia entre una arquitectura monolíticala cual contiene todo a
esto nos referimos con interfaz de usuario, lógica de negocio, capa de acceso a datos; y
la otra arquitectura basada en microservicios que se subdivide en varios aplicativos cada
uno con funciones en específico que se comunican entre sí con la vista y/o con la base
de datos. (véaseFigura25)
46
3 ESTADO DE ARTE
3.1 Taxonomía
Según la taxonomía publicada por ACM (véaseFigura26), la presente tesis pertenece al
área temática de investigaciónService-orientedarchitectures (en español Arquitectura
orientada a servicios)que pertenece a la clasificación Enterprise computing(en español
Computación empresarial)que a su vez pertenece a la clasificaciónAppliedcomputing(en
español Computación aplicada).
48
Universidad Israel (UISRAEL).
Universidad Central del Ecuador (UCE).
Escuela Superior Politécnica Agropecuaria de Manabí Manuel Félix López
(ESPAM).
Para la búsqueda se utilizaron descriptores como: sistema de control, arquitecturas de
software, SOA, arquitectura orientada a servicios,microservicios, metodología ágil,
Scrum, computación distribuida, sistemas móviles híbridos, ReactNative,
Ionic.Adicionalmente, se tuvo en consideración los siguientes dos criterios para el filtro:
los criterios de inclusión y exclusión.
Criterios de inclusión:
Como criterio de inclusión se menciona que los artículos y tesis tengan una
antigüedad menor a 8 años (2012 - 2019).
Artículos que pertenezcan a revistas indexadas.
Criterios de exclusión:
Como criterio de exclusión se menciona que los artículos y tesis tengan una
antigüedad mayor a 8 años (menor al año 2012).
Artículos que no pertenezcan a revistas indexadas.
3.2.1 Artículos
50
El aporte a nuestra tesis viene a ser las ventajas de las metodologías agiles frente a las
metodologías tradicionales.
51
Mientras que las aplicaciones hibridas poseen un costo mínimo, yaque
solo se requiere programar en un único lenguaje. Sin embargo, cuando se
requieren de prestaciones externas dentro del dispositivo móvil, los
costos suelen aumentar debido a que no hay mucha documentación con
respecto a estas integraciones.
Emuladores y depuración
Las aplicaciones nativas cuentan con entornos de desarrollo
integradosreconocidos en el mercado, tales como Android Studio o
Xcode. Con respecto a las aplicaciones hibridas, el desarrollo resulta
muy similar a la programación web al usarhotreloading, mecanismo que
permite visualizar un cambio realizado poco después que se haya
guardado un cambioen el código trabajado.
Tiempo de respuesta y velocidad
Las aplicaciones nativas como es de esperar poseen un tiempo de
respuesta casi instantáneo. En las aplicaciones hibridas, en particular
ReactNative y NativeScript, cuentan con tiempos de respuesta casi
similares a las totalmente nativas. Mientras que Ionic, cuenta con
latencias perceptiblespor cualquier usuario.
Reconocimiento profesional
Las aplicaciones nativas tienen abarcado un gran sector del mercado,
tales como Youtube, Google Maps son un claro ejemplo de ello. Por otra
parte, aplicaciones hibridas basadas en ReactNative, han tenido una
exponencial acogida en el mercado, ejemplos claros de ello son:
Facebook, Instagram, Skype.
Reutilización de código y trabajo en equipo
Las soluciones nativas no tienen ventajas o desventajas en cuanto a
términos de reutilización. Para el caso de los multiplataforma (hibridas),
se cuentan con componentes disponiblespara ser reutilizados en otros
proyectos.
El trabajo en equipo para las soluciones hibridas resulta ser
multidisciplinar, ya que una tarea independientemente de su complejidad
puede ser abordada por diferentes programadores. A diferencia de las
soluciones nativas, en las cuales la ayuda mutua suele ser más
complicadadebido a que cada plataforma maneja un lenguaje diferente.
Mantenimiento y actualizaciones
Al realizar una modificación a las soluciones nativas estas repercutirán
directamente a dos diferentes proyectos (Android y IOS), lo cual se
traduce en doble trabajo. A diferencia de las soluciones hibridas, las
cualessolo dependen de un único proyecto, sin embargo, cuando se trate
de un error especifico en un sistema operativo la corrección suele ser más
complicado de resolver en comparación con las soluciones nativas.
3.2.1.2.5 Conclusiones
Resulta claro que si lo que se requiere es desarrollar un aplicativo móvil básico y
puntualsin recurrir en demasía a los recursos externos propiciados por el dispositivo
52
móvil, entonces debemos inclinarnos por las soluciones hibridas, ya que estas nos
ofrecen un único canal para que nuestra aplicación se construya satisfactoriamente. Sin
embargo, si es todo lo opuesto a lo anterior, es decir, obtener todo el rendimiento del
procesador o querer integrar con servicios externoscomo: mapas, GPS, VoIP, Chat o
Notificaciones Push resultaramás factible optar por las soluciones nativas.
3.2.1.2.6 Aporte
El aporte a nuestra tesis viene a ser las ventajas propiciadas por las aplicaciones hibridas
con respecto a las aplicaciones nativas. Al ser nuestra solución un aplicativo móvil de
consulta y/o registro de datoscon al menos un servicio externo: envió y recepción de
notificaciones, vemos conveniente que nuestra solución se trate de una aplicación móvil
hibrida.
53
Arquitectura orientada a servicios (SOA):
Esta arquitectura se caracteriza por tener un estilo orquestado (servicios tontos y
tuberías inteligentes), por ejemplo, para resolver la solicitud de un cliente, este
debe pasar a través de un middleware (ESB) que comprende el paso a paso entre
la interacción de varios servicios predefinidos.A pesar de que esta tecnología
provea de un amplio abanico de herramientas de integración, su debilidad radica
en el impacto que surge al realizar algún cambio en cualquierservicio, el cual se
podría propagar a las próximas capas, a otros ESB que dependan del servicio en
cuestión o a la capa frontend.
Microservicios:
Esta arquitectura tiene un estilo coreográfico (servicios inteligentes y tuberías
simples) es decir cada servicio debe serresponsable de realizar sus propias tareas
a cada momento, ademásdeben sabercómointeractuar con otros servicios, sin
depender del direccionamiento de otros componentes.Las ventajas que ofrece
esta arquitectura es la de eliminar el acoplamiento originado por el middleware
(SOA), enintegrarse correctamente con la filosofía de DevOps (Entrega continua
+ Despliegue continuo)dado que los cambios originados en algún microservicio
no repercuten en otros dominios, solo en ellos mismos, el cual permite a su vez
una efectiva escalabilidad. Como contraparte se incrementa la complejidad en el
modelo de datos, lo cual podría generar replicación de datos.
Self-ContainedSystem:
La propuesta de esta arquitectura es la misma a lo señalado en los microservicios
solo queagregando los módulos relacionados con la interfaz de usuario.El
beneficio que se obtiene al implantar este tipo de arquitectura es la de
responsabilizar el impactode un cambio originado en un microservicio a un solo
equipode trabajo cubriendo todas las capas del mini sistema (Lado cliente +
Lado servidor). A diferencia de los microservicios donde la codificación de la
interfaz de usuario es responsabilidad de terceros.
3.2.1.3.5 Conclusiones
Claramente existe una gran ventaja de la arquitectura de microservicios frente a SOA
por las características mencionadas anteriormente.Según mencionan los autores, esta
arquitectura calza mejor para aplicaciones relativamente pequeñas, bien particionadasy
definidas. Sin embargo, SOAtiene un punto fuerte: sus herramientas de integración,
siendo mejor en el desacoplamiento del contrato, por ende, estámás orientado agrandes,
complejasy amplias organizaciones que incluyen sistemas legados, componentes
compartidos a lo largo de la empresa.
3.2.1.3.6 Aporte
El aporte a nuestra tesis viene a ser las ventajas que ofrece la arquitectura de
microservicios frente a la arquitectura SOA. Al sernuestra solución un proyectode un
mediano alcance, sin sistemas legados al que incurrir, sin dependencias transversales;
vemos conveniente optar por la arquitectura de microservicios, ya que sin lugar a duda
54
ofrece condiciones que van de la mano con las buenas prácticas de ingeniería de
software.
55
proyectado acabar con el desarrollo dentro de 6 Sprints, siendo la duración de cada
sprint: 1 mes. El primer sprint es destinado a la concepción de la arquitectura de
Microservicios que soporte el aplicativo móvil, las tecnologías a escoger para el
desarrollo móvil, mientras que los restantessprints serán proyectadas para el desarrollo y
validaciónde las tareasinferidas por las historias de usuarioobtenidas juntamente con el
ProductOwner.En cuanto al diseño de la arquitectura, esta se basa en Microservicios. Se
opto por esta arquitectura al comprobar a través de un análisis comparativo entre SOA y
Microservicios, que estos últimos ofrecen mayores ventajas al considerar al proyecto
como un proyecto incipiente, sin dependencias transversales y de escala mediana. La
arquitectura propuesta presenta dos tipos de componentes: funcionales y no funcionales.
Entre los componentes funcionales se tiene:
Autenticación:Microservicio encargado de la seguridad de los microservicios en
general. Basado en Oauth2, el cual cede un token de acceso cada vez que inicie
sesión y este token permitirá acceder a los demás recursos propiciados por los
demás servicios.
Asistencia: Permite consultar, registrar, actualizar y finalizar las asistencias de las
clases.
Encuesta: Encargada de calificar el grado de satisfacción de un estudiante
originado por la clase impartida de un docente.
Coparticipación: Responsable de la interacción entre docentes y estudiantes, es
decir, emisión de comunicados, sistema de preguntas y respuestas relacionadas a
un tema en común.
Notas: Permite consultar y registrarlas calificaciones de los estudiantes a un nivel
detallado según la fórmula especificada por el propio docente.
Periodo académico: Contiene la malla curricular correspondiente a los diferentes
cursos de un semestre académico. Posee la relación de alumnos inscritos, la
relación de horarios, los grupos asignados, etc.
Notificación: Responsable de notificar cualquier evento relevante realizado por
algún actor del Sistema.
Reportes: Responsable de presentar estadísticas referentes a asistencias,
calificaciones y satisfacción por clase impartida. Con la finalidad que sean útiles
para unidad estratégica en la toma de decisiones.
Entre los componentes no funcionales, se cuentan con:
Eureka-Server:Permite el auto-registro y descubrimiento dinámicodesde que un
servicio es iniciado por primera vez.
Config-Server: Encargada de alojar las propiedades de configuración de todos los
microservicios. Con ello no existe la necesidad de reiniciar un microservicio al
querer cambiar una propiedad de configuración.
Gateway: Es la única puerta por la que un cliente puede acceder a un recurso
propiciado por cualquier microservicio.Tiene la funcionalidad de rutear la
solicitud de un cliente a un determinado Microservicio (Labor de Proxy).
Composición: Su función principal es la de armar estructuras compuestas de dos
o más respuestas de microservicios diferentes.
56
3.2.1.4.5 Conclusiones
Con la propuesta de este diseño se tiene un mejor punto de partida para la posterior
implementación del sistema móvil distribuido. Al apoyarse en Scrum para la captación
de requerimientos a través de historias de usuario y poder formalizarlas a través de
criterios de aceptación asegura lo que el cliente realmente requiere. Por otro lado, la
arquitectura de Microservicios formulada establece las bases de un desarrollo continuo
y evolutivo que lo centraliza mayormente a culminar los requerimientos funcionales,
por lo que generalmente son los que aportan mayor valor al cliente.
3.2.1.4.6 Aporte
Al ser parte de nuestra tesis, esto aporta directamente en la resolución del problema
como un preludio que permita la satisfactoria implementación de la solución.
57
El instrumento no solo puede abarcar las metodologías ágiles sino también a otros
métodos o procesos.
3.2.1.5.6 Aporte
El aporte a nuestra tesis viene a ser dada porque enfatiza las virtudes de SCRUM
usando las prácticas de los distintos niveles de CMMI las cuales contiene una fuerte
gestión y desarrollo aceptables en comparación a otras metodologías como XP o Iconix.
3.2.2 Tesis
59
implementación de notificaciones a los usuarios sobre información importante
para ellos.
3.2.2.2.5 Observaciones
Los casos de uso no son usuales en SCRUM, se prefieren historias de usuario que
indiquen el valor, costo, riesgo que significa para los usuarios,así como criterios de
aceptación.
La solución está limitada a usuarios que usan web no es adaptativa a móviles.
3.2.2.2.6 Conclusiones
El sistema muestra la automatización de la gestión académica en la cual se daba control
manualmente y al haber una gran cantidad de personas esta tarea se complicaba.
El uso de la metodología ágil SCRUM y uso de casos de uso para la abstracción del
negocio permite que se pueda centrar más en la programación y en avances
incrementales mediante sprints.
3.2.2.2.7 Aporte
Esta tesis aporta a la nuestra el uso de software implantado con éxito en la gestión
académica de un instituto de estudios, se observa la automatización y optimización de
procesos manuales y el uso de la metodología ágil SCRUM que influyó en el desarrollo
del software.
60
El aporte del autor viene a ser dado por la implantación de un sistema informático que
permita hacer el adecuado seguimiento del syllabus, para cumplir con ello, se plantea
desarrollar un sistema de ambiente web de tal forma que para el usuario sea un sistema
amigable.
La cuarta fase está estrechamente relacionada con la tercera, aquí entra a tallar las
pruebas unitarias, según el autor, la unidad de prueba corresponde a una clase.
3.2.2.2.5 Observaciones
El uso de XP si bien es una metodología ágil tiene en uno de sus principios la
programación en pareja la cual no se realizó en esta tesis.
Con este aplicativo se logra mejorar el control de asistencia al docente, así como el
cumplimiento con el syllabus.
Falto realizar la implantación del sistema en dicha universidad.
3.2.2.2.6 Conclusiones
Con la implantación de este nuevo sistema, se alcanza mayor dinamicidad en
comparación con el anterior sistema. Además de ello la generación de reportes para el
seguimiento de syllabus y para la asistencia del alumnado permite un mejor control de
61
rendimiento académico. En cuanto a la automatización del proceso de seguimiento de
syllabus, se evitan las tareas manuales presentadas en el anterior sistema. Por lo tanto,
con la nueva implementación del sistema, se logra optimizar el proceso de seguimiento
de syllabus en dicha institución.
3.2.2.2.7 Aporte
Aporta a nuestra tesis en el sentido que se menciona que la implantación de un sistema
pudo mejorar control de asistencias tanto del profesor como del alumno, además se
observa que el uso de una metodología ágil como XP fue de mucha utilidad.
62
La solución planteada por este autor es la de poder hacer un “seguimiento” al propio
estudiante, durante y después de realizar las actividades educativas, con el fin de ubicar
a tiempo aquellos alumnos necesiten apoyo pedagógico, a través de una serie de pasos
nombrado como “Proceso de seguimiento estudiantil”.
El sistema se divide en tres principales módulos los cuales son:
Modulo: Docente.
Modulo: Estudiante.
Modulo: Padre de familia.
Todo englobado bajo la arquitectura de 3 capas Cliente – Servidor.
JSF: Capa vista
EJB: Capa controlador
JPA: Capa persistencia
La solución está desarrollada con la metodología de orientación a objetos.
3.2.2.3.4 Proceso para resolver el problema
El proceso de la solución está comprendido en los siguientes casos de uso, como se
muestra en la siguiente imagen (véase Figura 29).
63
Necesidad de reportes inteligentes que estén a disposición de los diversos usuarios que
tiene el sistema, que no esté limitado a un navegador web, si no también poder
ampliarse a un dispositivo inteligente como lo puede ser el uso en smartphones.
Por parte de la arquitectura de la solución se debería optar por una arquitectura
orientada a servicios, ya que tiene un conjunto de ventajas como el de la escalabilidad.
3.2.2.3.6 Conclusiones
Con la implantación del nuevo sistema se apoyará a cada uno de los alumnos en las
diferentes asignaturas impartidas en el año lectivo, con este sistema se mantendrá al
padre de familia informado sobre las actividades que realiza su hijo, fomentando así una
gestión participativa. Con este sistema se logra elevar el nivel del rendimiento
académico.
3.2.2.3.7 Aporte
Aporta a nuestra tesis en el sentido que menciona las ventajas del control académico y
cómo mediante el sistema se registra información y luego se procesa como reportes a
diferentes roles ayuda a este fin.
3.2.2.4
Diseño e implementación de una app sobre desarrollo sostenible con
backend de arquitectura basada en microservices y de una
reactnativefront-end app
(Chacón, 2016)
3.2.2.4.1 Estado del arte:
La autora menciona que existe degradación del medio ambiente y que es necesario crear
conciencia de cómo reducirla.
3.2.2.4.2 Motivación del autor:
La autora está motivada porque desea apoyar en la reducción de la degradación del
medio ambiente sin comprometer los recursos y posibilidades de futuras generaciones,
así como el aprendizaje de nuevas tecnologías.
3.2.2.4.3 Descripción del aporte del autor:
El aporte de la autora viene a ser dado por la implementación de un aplicativo móvil con
el uso de microservicios que permita apoyar en la reducción de la degradación del
medio ambiente.
Las etapas principales fueron análisis, diseño, implementación y pruebas. En el primero
se definieron las funcionalidades como casos de uso, en el segundo se definió la
arquitectura y el diseño de base de datos, en el tercero se avanzó con el desarrollo del
software y por último la prueba del aplicativo en base a la verificación de los casos de
prueba. El avance del desarrollo se dio con el uso de scrum de un periodo de 2-3
semanas en cada sprint.
64
Las funcionalidades del sistema propuesto abarcan las funcionalidades del registro y
consulta de hechos(sucesos sobre la contaminación ambiental) y acciones dividido en
secciones como agua, comida, transporte y temperatura y acciones como por ejemplo
para la sección agua están acciones como ducha corta, lavar con agua fría; para la
sección comida están acciones comer carne, comer pescado; para la sección temperatura
están las acciones como encender calefacción, ponerse un sweater y por ultimo para la
sección transporte están las acciones como usar coche o usar bicicleta.
La arquitectura de la solución está compuesta por una capa de presentación y una capa
lógica, en la primera se encuentra el aplicativo móvil y en la segunda la arquitectura de
microservicios. (véase Figura 30)
Se eligió aplicativo móvil debido a que menciona que en su país de procedencia España
había mayor preferencia de uso de celulares sobre las computadoras. Sobre la tecnología
del desarrollo móvil que eligió esta se basó en un aplicativo con el
frameworkReactNative que permite crear aplicaciones nativas en Android e IOS
mediante el uso de Javascript, dado que era más práctico en vez de crear 2 aplicaciones
diferentes.
Sobre el desarrollo del backend se usó la arquitectura de microservicios en vez de la
arquitectura monolítica debido a que ofrecía las ventajas de menor dependencia, mejor
encapsulamiento de las funciones, posibilidad de escalar, probar, implementar los
microservicios de manera aislada. Los servicios como la base de datos hicieron uso de
Amazonaws es decir uso servicios alojados en la nube que proveen alojamiento para
aplicativos y bases de datos
3.2.2.4.5 Conclusiones:
Pudo cumplir los objetivos trazados con las pruebas generales mediante la validación de
los casos de uso. Le sirvió de aprendizaje dado que eran todas nuevas tecnologías para
la autora.
3.2.2.4.6 Aporte
Aporta en nuestra tesis en el sentido que muestra el uso de reactnative para dispositivos
móviles el cual es útil tanto para dispositivos que funcionan con Android e IOS y su
coordinación con los microservicios cada uno funcionando de manera aislada.
66
Escalabilidad eficiente (se puede realizar en cada microservicio dependiendo del
nivel de uso que tengan estos se le asignaran más recursos para que puedan
manejarla para eso menciona el uso de un balanceador de carga)
Flexibilidad y facilidad en actualización (el microservicio debe ser posible de
actualizarse a nuevas versiones incluso realizar cambios bruscos, incluso si se ve
que su uso ya no es adecuado se puede quitar o reemplazar por uno con mejores
características.)
Capacidad organizativa del equipo de trabajo: se puede dividir mejor el trabajo
debido a que las funcionalidades están disgregadas, esto debido a que la
coordinación va a ser más eficaz.
Eficiencia: es posible que se ahorre en costes de mantenimiento y ahorro
energético al usar la computación en la nube como lo están haciendo muchas
compañías.
Las desventajas que el autor menciona de este tipo de arquitectura son las siguientes
Complejidad de la aplicación: Debido a que la mayoría está acostumbrado al
desarrollo de aplicaciones monolíticas, menciona que puede ser complicado para
tratar temas como la comunicación entre servicios o dividirlos ya que son
nuevos problemas que abordarían.
Difícil migración desde aplicaciones monolíticas: En muchos casos resulta ser
muy complejo, debido a que las funciones están muy entrelazadas haciendo muy
difícil el cambio.
Comunicación entre microservicios: Cuando más grande es el aplicativo más
grande se volverán las comunicaciones y es posible que una de estas pueda fallar
en el tiempo, para eso es conveniente una buena subdivisión y contemplar que
hacer en caso de fallos
Seguridad en las comunicaciones: Este tipo de arquitectura usa mucho las
comunicaciones por lo cual deben realizarse técnicas de cifrados en los casos
que se requieran.
3.2.2.5.2 Descripción del aporte del autor
El autor propone la arquitectura mostrada (véase Figura 31) para el caso de una tienda
online, en la cual se muestran los siguientes componentes:
La interfaz de usuario: la pantalla principal con la cual el usuario se comunica
contiene 4 vistas: Vista inicial (Login), Vista de registro delusuario, Vista de
presentación del catálogo de productos disponibles, y la vista del carrito de compras. Se
hizo uso de lenguajes como HTML5, CSS, JavaScript ya que trabajan bien con NodeJS,
además se usó el framework Twitter Bootstrap
Microservicio “gestión de usuario y peticiones”: este microservicio permite poder
iniciar la sesión al usuario de acuerdo con los accesos que este tenga; además permite
67
realizar peticiones es decir cuando requiere una función en particular este microservicio
se encarga de comunicarse con otro microservicio para resolver la petición realizada.
Microservicio “Búsqueda”: Este microservicio se encarga de realizar una petición
HTTP tipo POST que se encarga de consultar un modelo en la base de datos de
productos disponibles.
Microservicio “Ordenación de catálogo”: Este microservicio se encarga de ordenar el
catálogo de productos disponibles en función de determinadas características como el
precio o la talla de los modelos.
Microservicio “Carrito de compra”: Este microservicio se encarga de almacenar los
productos seleccionados por el cliente, para esto y como no usa una base de datos
relacional se guarda el nombre de usuario como identificador en la base de datos Redis.
También tiene la funcionalidad de poder realizar la compra de los productos
correspondiente a aquellos productos seleccionados en el carrito de compras.
68
El uso de Docker ya que ofrece maquinas virtualizadas que pueden correr al
mismo tiempo, para el despliegue de los servicios y el despliegue de las bases de
datos. A continuación, se muestra una imagen comparando el uso de recurso de
una máquina virtual y contenedores Docker(véase Figura 32), se aprecia que una
máquina virtual tiene un propio sistema operativo virtual en contraparte Docker
cuenta con un solo motor que forma contenedores para que cada aplicación
pueda correr en un entorno de esta manera se ahorran muchos recursos.
69
Esta tesis aporta a la nuestra en el uso de la arquitectura de microservicios la cual se ve
que tiene varias ventajas de las cuales podemos mencionar la disminución del impacto
por fallos, heterogeneidad de sistemas, escalabilidad eficiente, flexibilidad al cambio,
eficiencia en costes, mejor capacidad organizativa del trabajo.
3.3.1.1 Definición
Scrum es una metodología ágil de gestión de proyectos cuyo objetivo primordial es
elevar al máximo la productividad de un equipo. Pone su atención y hace foco sobre
valores y prácticas de gestión, en vez de requerimientos, prácticas de desarrollo,
implementación y otras cuestiones técnicas. Esta metodología delega completamente en
el equipo la responsabilidad de decidir la mejor manera de trabajar para ser lo más
productivos posibles, es decir, que es flexible y los integrantes del equipo pueden optar
por organizar la forma de interactuar entre ellos. (Fernandez & Cadelli, 2014)
La terminología “Scrum” procede del deporte llamado rugby, donde se designa al acto
de preparar el avance del equipo en unidad pasando la pelota a uno y otro jugador.
Scrum es adaptable, ágil, autoorganizado y con pocos tiempos muertos. Esta
metodología ágil fue desarrollada por Jeff Sutherland y elaborada más formalmente por
Ken Schwaber. Poco tiempo después Sutherland y Schwaber se unieron para refinar y
extender Scrum. Se la ha llegado a conocer como una herramienta de hiper-
productividad. Schwaber se dio cuenta entonces de que un proceso necesita aceptar el
cambio, en lugar de esperar predictibilidad. Se enfoca en el hecho de que procesos
definidos y repetibles sólo funcionan para atacar problemas definidos y repetibles con
gente definida y repetible en ambientes definidos y repetibles. Toma el cambio como
una forma de entregar al final del desarrollo algo más cercano a la verdadera necesidad
del cliente. Puede ser aplicado teóricamente a cualquier contexto en donde un grupo de
gente necesita trabajar junta para lograr una meta común.(Fernandez & Cadelli, 2014)
De acuerdo con(Fernandez & Cadelli, 2014), se basa en los principios ágiles:
Satisfacer al cliente mediante tempranas y continuas entregas de software que
aporten valor. Entregar software funcional lo más pronto posible.
Predisposición y respuesta al cambio dado que presentan una ventaja
competitiva.
Entregar frecuentemente software que funcione y no planificaciones o
documentación de análisis o diseño.
70
Fortalecer la comunicación y la colaboración.
El software que funciona es la medida del progreso.
El desarrollo debe ser sostenible por los desarrolladores y usuarios deben
colaborar para que esto suceda.
Atención continua en la calidad técnica y buen diseño mejora la agilidad.
La simplicidad es esencial, camino simple consistente con objetivos claros.
El equipo debe ser autoorganizado, ellos determinan los objetivos que persiguen.
Reflexión sobre cómo llegar a ser más efectivo en intervalos de tiempo,
adaptarse a nuevos entornos.
71
Figura 33. Flujo de trabajo de scrum(Fernandez & Cadelli, 2014)
3.3.1.5 Roles
De acuerdo con(Fernandez & Cadelli, 2014), la dimensión del equipo total de Scrum no
debería ser superior a veinte personas. Si hay más, lo más recomendable es formar
varios equipos. No hay una técnica oficial para coordinar equipos múltiples, pero se han
documentado experiencias de hasta 800 miembros, divididos en Scrum de Scrum
definiendo un equipo central que se encarga de la coordinación, las pruebas cruzadas y
la rotación de los miembros. Scrum tiene una estructura muy simple. Todas las
responsabilidades del proyecto se reparten en 3 roles:
a) Productowner (Dueño del producto) Representa a todos los interesados en el
producto final. Es el responsable oficial del proyecto, gestión, control y
visibilidad de la lista de acumulación o lista de retraso del producto (Product
Backlog). Toma las decisiones finales de las tareas asignadas al registro y
convierte sus elementos en rasgos a desarrollar.
Sus áreas de responsabilidad son:
Financiación del proyecto.
Requisitos del sistema.
Retorno de la inversión del proyecto.
72
Lanzamiento del proyecto.
b) Scrum Master (Líder del proyecto) Responsable del proceso Scrum, de
cumplir la meta y resolver los problemas. Así como también, de asegurarse que
el proyecto se lleve a cabo de acuerdo con las prácticas, valores y reglas de
Scrum y que progrese según lo previsto. Interactúa con el cliente y el equipo.
Coordina los encuentros diarios, y se encarga de eliminar eventuales obstáculos.
Debe ser miembro del equipo y trabajar a la par.
c) Team (Equipo) Responsable de transformar el Backlog de la iteración en un
incremento de la funcionalidad del software, es decir, de convertir el product
backlog en un software entregable. El equipo tiene la autoridad para
reorganizarse y definir las acciones necesarias o sugerir eliminación de
impedimentos. Características del equipo:
Autogestionado
Autoorganizado
Multifuncional
El número ideal para la conformación de un equipo es entre 8 y 10
personas
3.3.1.7 Productbacklog
Se puede armar en base a los requerimientos priorizados. Este es una forma de registrar
y organizar el trabajo pendiente para el producto (actividades y requerimientos). Es un
documento dinámico que incorpora constantemente las necesidades del sistema. Por lo
tanto, nunca llega a ser una lista completa y definitiva. Se mantiene durante todo el ciclo
de vida (hasta finalizar el sistema) y es responsabilidad del ProductOwner.(Fernandez &
Cadelli, 2014)
73
Scrum, que divide de esta forma el desarrollo de un proyecto en un conjunto de
pequeñas “carreras”.(Fernandez & Cadelli, 2014)
De acuerdo con(Fernandez & Cadelli, 2014), las características del Sprint son las
siguientes:
Duración máxima de 30 días.
Durante el Sprint no se puede modificar el trabajo que se ha acordado en el
Backlog.
Sólo es posible cambiar el curso de un Sprint, abortándolo, y sólo lo puede hacer
el Scrum Master si decide que no es viable por alguna de las razones siguientes:
- La tecnología acordada no funciona.
- Las circunstancias del negocio han cambiado.
- El equipo ha tenido interferencias.
3.3.1.9 Planificación
De acuerdo con(Fernandez & Cadelli, 2014), se planifica en detalle el trabajo al inicio
de cada Sprint asumiendo que los objetivos no van a cambiar durante el mismo, de esta
manera se atenúa el riesgo. Los aspectos para tener en cuenta sobre la planificación de
un Sprint:
Una determinación general de alcance, frecuentemente basada en una EDT
(Estructura de División del Trabajo).
Estimaciones de esfuerzo de alto nivel realizadas durante la etapa de concepción
del proyecto.
Esfuerzo dedicado a labores de soporte o de preparación de los ambientes
requeridos por el proyecto.
74
Registra las tareas, asignaciones y estimaciones.
Inicia el Backlog del Sprint.
3.3.1.13 Estimaciones
Las estimaciones se realizan por primera vez en la reunión de planificación al inicio del
Sprint. Posteriormente, las tareas se reestiman todos los días y se registran sus cambios
en el Backlog del Sprint.Esta actividad puede ser realizada inmediatamente antes o
después del Scrum diario.(Fernandez & Cadelli, 2014)
75
De acuerdo con(Fernandez & Cadelli, 2014), algunas claves para la estimación son las
siguientes:
Siempre se realizan estimaciones de esfuerzo, no de duración.
Siempre se estima el esfuerzo total pendiente para terminar la tarea, no se estima
el esfuerzo consumido.
76
3.3.2 Metodología programación extrema
3.3.2.1 Definición
La metodología XP (extreme programming: programación extrema) es una metodología
ágil es un conjunto de buenas prácticas para el desarrollo de software, se enfoca en
resultados y en reducir procesos del desarrollo de software.(Pardo, Triana, & Forero,
2014)
3.3.2.2 Objetivos
De acuerdo con(Pardo, Triana, & Forero, 2014), se mencionan los siguientes objetivos
que esta metodología busca:
Establecer mejores prácticas de desarrollo de software.
Optimizar la ejecución de proyectos.
Garantizar la calidad del software.
Potenciar el trabajo en equipo al máximo.
3.3.2.3 Fases
De acuerdo con(Pardo, Triana, & Forero, 2014), la metodología extrema está dividida
en cuatro fases(véaseFigura 34):
1. Planificación: Esla fase donde se hace un buen entendimiento entre la parte
empresarial y técnica mediante reuniones, historias de usuario, planes de
entrega, planes de iteración. Está delimitado por el alcance de la presente
versión.
2. Diseño: En esta fase se encuentran elementos como metáforas, tarjetas CRC
(clase, responsabilidad y colaboración) y reciclaje.
3. Codificación: En esta fase se definen las parejas de programación, integración
continua (integrar y probar el código en la versión resultante) y la propiedad
colectiva (nadie es dueño del código, otro programador puede hacer cambios si
es conveniente).
4. Pruebas: Se definen 2 tipos en esta metodología:
La prueba unitaria: Se hace las pruebas del código paso a paso, para
reducir el impacto de errores cuando se hacen modificaciones.
La prueba de aceptación: Evalúa si el producto puede adaptarse a otros
ambientes, se resaltan las funcionalidades que tienen más importancia
por el usuario.
77
Figura 34.Fases de XP(Pardo, Triana, & Forero, 2014)
3.3.2.5 Valores
De acuerdo con(Pardo, Triana, & Forero, 2014), en la programación extrema se
promueven los siguientes valores:
1. Comunicación: Debe haber una buena comunicación entre los equipos que
desarrollan para intercambiar información correcta de manera continua yrápida.
2. Simplicidad: Se recomienda un enfoque simple con relación al proceso y la
codificación.
3. Retroalimentación: Se recomienda contar con retroalimentación entre los
actores que se obtienen cuando se realizan pruebas, integraciones, versiones y
entregas frecuentes.
78
4. Coraje: Las personas deben expresar su punto de vista sin inhibiciones en el
desarrollo del proyecto.
5. Valentía: Se menciona que no se debe temer a la programación ni postponerla.
6. Respeto: Las decisiones de equipo se deben respetar ante decisiones
individuales.
3.3.2.6 Principios
De acuerdo con(Pardo, Triana, & Forero, 2014), se mencionan los siguientes principios:
La prioridad es la satisfacción al cliente.
Se aceptan los cambios y se toman como ventaja competitiva
Las entregas de software son frecuentes
Debe haber un fuerte vínculo entre programadores y clientes.
Los proyectos deben tener individuos motivados
Obtener la información directamente del cliente.
El software avanzado es la mejor medición del progreso.
Se promueve desarrollo de software dado las horas definidas sin tiempos
adicionales.
El buen diseño de software mejora la agilidad, para que aumentar nuevas
funcionalidades no sea tedioso.
La simplicidad es importante, para no hacer de más basta con cumplir los
requisitos del cliente.
Mejorar la arquitectura surge en las relaciones dinámicas entre los miembros del
equipo.
Reflexionar sobre la eficacia, la cual es reflejada por la simplicidad y la
flexibilidad.
3.3.3.1 Definición
De acuerdo con(Porras, 2019), Iconix es una metodología ágil con principios de
desarrollo incremental e iterativo, presenta un proceso puro, práctico y simple con el
análisis y representación del problema de forma eficaz, usa UML (Lenguaje de
Modelamiento Unificado) de forma reducida es por ello por lo que no genera tanta
documentación. Entre sus características se destacan:
A diferencia de extreme programming (XP) comprende etapas de análisis y
diseño
Uso simplificado de UML: modelo de dominio, casos de uso, diagrama de
robustez, diagrama de secuencia, diagrama de clases.
Aporta buen nivel de trazabilidad entre requisitos y el producto de software
Se muestra la concepción de la forma de trabajo en Iconix (véase Figura 35), en la cual
se puede diferenciar el modelo dinámico del estático. Aquí se producen productos de
79
software que se desarrollan incrementalmente y de forma paralela. El modelo estático se
incrementa y es refinado por el modelo dinámico.
80
3.3.3.4 Fase: Diseño detallado
En esta fase participan los diagramas de secuencia que definen el comportamiento de un
caso de uso, en la cual se muestra la colaboración dinámica entre objetos del sistema, y
se realizan interacción entre estos mediante una secuencia de pasos. Toma como entrada
los casos de uso y el diagrama de robustez.(Porras, 2019)
A continuación, se muestra una imagen de cómo se realiza la construcción del diagrama
de secuencia (véase Figura 36).
81
3.4 Aplicativo móvil
3.4.1 Ionic
3.4.1.1 Definición
Es un kit de herramientas de código abierto que permite crear aplicaciones móviles y de
escritorio usando tecnologías web como HTML, CSS y JavaScript. Está centrado en la
experiencia del usuario frontend o la interacción de un aplicativo (controles,
interacciones, gestos y animaciones). Fácil de aprender y se integra bien con otras
librerías o frameworks como Angular o puede ser usado sin un frameworkfrontend solo
con scripts incluidos. Para la fecha de esta tesis, Ionic Framework tiene integración
oficial con Angular, pero el soporte a Vue y React están en desarrollo. (Ionic
Framework Documentation, 2019)
3.4.1.2 Componentes UI
Ionic Framework es una librería de componentes de UI (interfaz gráfica) los cuales son
reusables y sirven para armar los bloques de construcción del aplicativo, todas
desarrolladas con los estándares web HTML, CSS y JavaScript. Estos componentes son
preconstruidos y permiten un alto grado de personalización para que cada aplicativo
pueda tener su propio estilo. (Ionic Framework Documentation, 2019)
3.4.1.4 Navegación
Los aplicativoswebs tradicionales usan historia lineal esto quiere decir que pueden
navegar entre páginas dado que se almacena todo en una pila de historial lineal del
navegador. En contraste los aplicativos móviles utilizan la navegación paralela “no
lineal” teniendo por ejemplo pilas de navegación por pestaña en el caso de una interfaz
con pestañas.
Ionic se adopta a ambos enfoques al soportan tanto navegación lineal como paralela,
para la fecha de la tesis se recomienda usar el enrutador de Angular que está
funcionando con Ionic 4 para versiones anteriores, Ionic manejaba su propio enrutador
personalizado. (Ionic Framework Documentation, 2019)
82
porque está basado en estándares web y APIs comunes que son compartidas por todas
éstas. (Ionic Framework Documentation, 2019)
Para los aplicativos móviles se hacen uso de “webviews” que son proveídos por
SDKs(Herramientas de desarrollo de software) de IOS y Android que permiten
renderizar cualquier aplicativo Ionic y permitir el acceso nativo a funciones nativas del
SDK. Para acceder a las funciones nativas del SDK se pueden usar proyectos como
Capacitor y Cordova, esto permite a desarrolladores usar herramientas comunes de
desarrollo web y tener acceso a características nativas del dispositivo como
acelerómetro, cámara, GPS y muchos otros. (Ionic Framework Documentation, 2019)
3.4.1.6 Temática
El frameworkIonic está construido usando CSS lo que permite tomar ventaja de la
flexibilidad de las variables de CSS. Esto hace posible un buen diseño del aplicativo
según los estándares web, pero además se pueden cambiar y personalizar y así crear un
diseño propio. (Ionic Framework Documentation, 2019)
3.4.1.7 Arquitectura
Como se puede apreciar en la imagen (véaseFigura 37), Ionic hace uso de servicios y
directivas para poder usar las tecnologías web(html5, angular, css) para el diseño de la
interfaz de usuario del aplicativo y para acceder a las funciones de éste usan directivas y
servicios dados por apache cordova que pueden acceder a funciones nativas del
dispositivo.
Figura 37. Arquitectura de Ionic para plataforma móvil(Christoph, Rösch, & Schuster,
2018)
3.4.1.8 Ventajas
De acuerdo con(Ospiva, 2019), entre las ventajas que ofrece ionic están:
Es fácil de correr el aplicativo en un dispositivo real o un emulador, dado que
ionic provee de empaquetado de aplicación nativa, servidor de desarrollo y
recarga en vivo.
El servidor de desarrollo ofrece recarga en vivo que permite que los nuevos
recursos y cambios se vean en el navegador cuando el código cambia, esto
mejora los tiempos de desarrollo.
83
El servidor de desarrollo ofrece un reporte de errores como su traza para ubicar
el problema.
Existen una gran cantidad de componentes UI creados listos para usar en el
aplicativo Ionic.
Se provee de configuración especifica de acuerdo con la plataforma para que sea
fácil definir el estilo que tendrán las diferentes plataformas.
3.4.1.9 Desventajas
De acuerdo con(Ospiva, 2019), la principal desventaja que tiene es sobre el rendimiento
del aplicativo ionic ya que es un framework híbrido y necesita de webviews por esto el
rendimiento es menor en comparación con un aplicativo nativo.
3.4.2 NativeScript
3.4.2.1 Definición
Es un framework de código abierto para construir aplicativos móviles multiplataformas
para Android e IOS, el cual es creado y mantenido por Telerik. Está escrito en una
combinación de Javascript, XML y CSS (véaseFigura 38), el componente JavaScript
corre la lógica de negocio, acceso a datos y el control del flujo del aplicativo, la Proción
en XML define la interfaz gráfica de usuario (UI) y por último el CSS es usado para dar
estilo al UI tal cual como un aplicativo en HTML. NativeScript se renderiza sus
componentes en XML en elementos nativos de UI del aplicativo de acuerdo con la
plataforma ya sea Android o IOS. (Branstein & Branstein, 2017)
3.4.2.2 Ventajas
A diferencia de Xamarin que es un framework híbrido cross-compilednativescript usa
JIT compiled que permite que los aplicativos sean compilados en tiempo de ejecución y
no antes de la ejecución del aplicativo. A diferencia de compilar los códigos en un
aplicativo nativo, native script tiene una máquina virtual en JavaScript el código corre
en dicha máquina. (véaseFigura 39) (Branstein & Branstein, 2017)
84
Figura 39. Como corre compilación JIT en los dispositivos (Branstein & Branstein,
2017)
El tipo de aplicativos que se pueden desarrollar se menciona que son de consumidores o
líneas de negocios es decir aplicativos para empresas, redes sociales, etc.
3.4.2.3 Desventajas
Para juegos que usen gráficos 3D no es conveniente debido a que nativescript agrega
una capa de abstracción para esos casos si se considera escribir en código nativo de
Android o IOS. (Branstein & Branstein, 2017)
3.4.2.4 Arquitectura
Como se muestra en la imagen (véaseFigura 40), se pueden apreciar los componentes de
NativeScript. El código del aplicativo como se mencionó que contiene la lógica de
negocio que responde a eventos e interacciones, CSS, y UI. El componente NativeScript
CLI agrupa el código, el entorno de ejecución de Nativescript, sus módulos y la
máquina virtual de JavaScript para que pueda correr en dispositivos, simuladores o
emuladores Android e IOS para esto hace uso de sus SDK de cada plataforma para
construir y compilar a un aplicativo nativo. (Branstein & Branstein, 2017)
85
3.4.3 ReactNative
3.4.3.1 Definición
Fue creado y actualmente está siendo desarrollado por Facebook, está basado en el
frameworkReact, el cual es una de las librerías de Javascript más usadas según una
encuesta realizada porStackOverflow en el año 2017. Permite a los desarrolladores crear
aplicaciones con un código fuente en común para ambas plataformas del mercado
actual: Android e IOS.(Alférez, 2018)
Su principal objetivo es la de crear aplicaciones con la experiencia nativa, es decir sus
interfaces y la usabilidad sean las mismas que cuando se desarrollan APIS
nativas.(Alférez, 2018)
3.4.3.2 React
Es una librería de Javascript que permite crear interfaces de usuario, contiene
componentes están programados de forma declarativa, manipula con APIs el DOM
(modelo de objeto de documento) que tiene la estructura de un árbol de objetos que
tiene una página HTML, se encarga de realizar cambios cuando su estado o propiedades
cambian, actualizando la vista.(Alférez, 2018)
86
lanzar un evento en los componentes hijos para propagar a través de un árbol, a su vez
los padres actualizarán la vista de arriba hacia abajo. (Alférez, 2018)
3.4.3.5 Reconciliación
React usa un Virtual DOM (véase Figura 42) ya que la directa manipulación de DOM es
ineficiente ya que se consideró para páginas estáticas renderizadas por un servidor, ese
virtual DOM está separado del servidor y se usa para detectar si ha habido cambios
usando algoritmos de diferenciación, este proceso se denomina reconciliación. Cuando
ocurran cambios en el estado se traducirá en operaciones del DOM que permitan re-
renderizar el contenido, optimizar el proceso de actualizar la vista. En el caso de
ReactNative el renderizado se realiza a dispositivos móviles.(Alférez, 2018)
3.4.3.6 Flux
React permite describir la interfaz de usuario como una función del estado de los
componentes. Para manejar este estado se vuelve más complicado cuando se hace más
grande el aplicativo dado que hay un estrecho vínculo entre interacciones de usuario y
cambios de estado. Por eso se creó Flux basado en el patrón de diseño observador. Está
compuesto de 3 partes: dispatcher (despachador), store (almacén), view (vista).(Alférez,
2018)
87
El Flujo de datos en Flux (véase Figura 43) funciona desde que el usuario genera
acciones que se envían a través de un despachador central, luego los almacenes
mantienen la lógica y el estado y son responsables de mantener el estado consistente de
acuerdo a las acciones recibidas y emitir cambios con eventos y por último las vistas
escuchan los eventos y se encargan de re-renderizar y propagar los datos a través del
árbol obtenido del almacén. Una de las implementaciones más usadas es Redux bastante
aceptada entre los desarrolladores. (Alférez, 2018)
88
Hilo de JavaScript corre el código Javascript en la máquina virtual de
JavaScript.
89
Yoga, un motor de diseño que implementa un subconjunto de css optimizado
para plataformas móviles, es responsable de calcular propiedades precisas de las
vistas en las pantallas del dispositivo. Para cada nodo de sombra se crea un nodo
Yoga que permite comunicar con el código nativo de la plataforma específica y
crea la interfaz de usuario en el dispositivo.
90
Figura 46.Componente de interfaz nativade usuario en ReactNative(Alférez, 2018)
Los módulos nativos (véase Figura 47) permiten acceder a la plataforma subyacente que
es el hecho de escribir código nativo y acceder con JavaScript, solo exporta métodos y
constantes más no componentes de interfaz de usuario.(Alférez, 2018)
91
react crea un DOM virtual para optimizar la cantidad de información que pasa a través
del puente.(Alférez, 2018)
92
JavaScript que siguen la convención de CSS en la web y el algoritmo flexbox.(Alférez,
2018).
Depuración
De acuerdo con(Alférez, 2018)reactnative ofrece algunas funcionalidades que facilita e
incrementa el proceso de depuración:
Recarga automática (Recarga en vivo y recarga en caliente)
La inspección de componentes react de jerarquía y parámetros.
Monitor de rendimiento
Además, (Alférez, 2018) menciona que la aplicación puede ser probada en dispositivos
reales y/o dispositivos simulados:
En dispositivos reales se requiere de unaconfiguración especialsegún el
ambiente ya sea expo o reactnative, además en caso de ser un dispositivo IOS
unaPC MAC es requerida.
En dispositivos simulados, los proyectos están simulados en un ambiente de
reactnative se compila con un dispositivo virtual con el cual cada IDE debe estar
configurado.
Diferentes herramientas se necesitan para depurar el ca los proyectos de reactnative que
son 3(Javascript, Android, iOS) como puntos de interrupción, variables de inspección,
etc.Para el código nativo se requiere IDES para depurar como Android Studio o Xcode,
por otro lado, la lógica de JavaScript puede ser analizada por herramientas de
reactnative, Google Chrome como depuración remota, Nuclide un plugin de
Atom.(Alférez, 2018).
Pruebas
De acuerdo con(Alférez, 2018), reactnative tiene una librería denominada Jest que es
usada por Facebook para probar componentes en ambos aplicativos react o reactnative,
además pueden ser usadas para probar un frameworkJavascript. Permite al
desarrollador:
Afirmar valores
Pruebas instantáneas: un estado de referencia de un componente es almacenado
y luego su estado actual y la referencia son comparados a través de la ejecución
de la aplicación.
Pruebas de funcionalidad asíncronas.
Estados Mock y eventos simulados como toques.
Además(Alférez, 2018) menciona quereactnative también incluye pruebas de
integración según la plataforma (dispositivos Android e IOS) y pruebas fin-a-fin son
llevadas a cabos para obtener productos de buena calidad.
93
3.4.4 Flutter
3.4.4.1 Definición
Según (Flutter Official Documentation, 2018), Flutter es un SDK de aplicativo móvil
para construir aplicativos con alto rendimiento y alta fidelidad para IOS y Android
desde un mismo código fuente que permita a desarrolladores entregar aplicativos con
buen rendimiento que se sientan naturales en distintas plataformas. Está escrito en Dart,
y corre en la máquina virtual de Dart en cual trabaja directamente con el código fuente
no con código en bytes, soporta compilación JIT durante el desarrollo que permite
cambios en caliente, y AOT para producción ya que brinda inicio rápido y rendimiento
esperado de una aplicación. (Alférez, 2018)
En la imagen (véaseFigura 48), se muestra la arquitectura del sistema Flutter en la cual
la parte en verde son capas que pueden ser personalizadas por el desarrollador para
conseguir una funcionalidad específica a continuación se definirán sus componentes de
acuerdo con(Alférez, 2018):
El motor(engine) es el tiempo de ejecución que está construido con código C++.
Usa Skia como librería de renderizado de gráficos 2D y el API Core Dart,
expone una librería dart:ui que permite precisar las coordenadas de cada
elemento del canvas.
La capa de renderizado es una capa de abstracción que permite construir la vista
como un árbol de objetos que se actualiza cuando un cambio ocurre, consiste en
3 pasos: el cálculo de diseño que posiciona los elementos, pintura que permite
definir como se verán los objetos y componerlos que junta los elementos en un
solo dibujo para que aparezcan en la pantalla como una sola cosa.
La capa material/cupertino usa la capa de composición de los widgets para
implementar controles definidos que siguen las líneas de diseño de la plataforma
específica.
Los widgets son muy importantes en Flutter son semejantes a los componentes
de React, La capa de widgets soluciona el problema de tener que construir y
mantener el árbol, ya que en vez de crear cambiar al árbol crea un árbol de
widgets inmutables cada vez que se actualiza. Cuando se crea un árbol paralelo
de elementos se crea una referencia a sus actuales widgets y sus objetos de
renderizados correspondientes.
94
3.4.4.2 Plataforma específica de código
Flutter adopta el concepto de plugins que permiten acceder a las características del
hardware de un dispositivo. Estos se comunican con la plataforma a través de canales
que manejan comunicación con el paso asíncrona de mensajes. El desarrollador puede
escribir código nativo y exponerlo en un API basado en mensajería. (Alférez, 2018)
95
3.4.4.6 Depuración y pruebas
Flutter CLI provee una herramienta lint(analizador Dart), y una herramienta de
depuración y perfil(observatorio Dart). Ambas corren por defecto cuando se ejecuta la
aplicación, cada capa del frameworkFlutter provee una función para volcar la
información en la consola, permitiendo al desarrollador llevar un análisis profundo de la
ejecución. (Alférez, 2018)
Además, provee módulos y herramientas para la prueba unitaria y la prueba de los
widgets, que pueden correr en la máquina virtual Dart. Además, se pueden llevar acabo
las pruebas de integración con Flutter Driver, que permite conectar a un aplicativo
corriendo en un dispositivo real o simulador, emite comandos y ejecuta scripts de
prueba en la computadora del desarrollador. (Alférez, 2018)
3.4.5 Xamarin
3.4.5.1 Definición
Es un framework para el desarrollo de aplicativos móviles multiplataforma comprado y
actualmente desarrollado por Microsoft. Se dirige a las plataformas Android, IOS y
Windows está basado en C#, el cual es un lenguaje desarrollado por la propia compañía
su ejecución está basada en el framework .NET. Xamarin provee ecosistema de plugins
para acceder a las funciones del dispositivo específico. (Alférez, 2018)
.Net framework es usado solo en el ambiente de ejecución de Windows, Xamarin por
otro lado usa Mono, una implementación de código abierto de .NET que provee
compatibilidad en otras plataformas, esto permite que desarrolladores c# puedan escribir
código multiplataforma dirigidas a Windows, macOS, Linux, Android e iOS.
(véaseFigura 50) (Alférez, 2018)
96
sistema operativo o el procesador elegido. Hay dos tipos de traducción a código
máquina que se usan de acuerdo con Microsoft:
Just in Time (JIT): Compilado en memoria en la ejecución como cuando corre
Aheadof Time (AOT): Compilación ejecutada antes de la ejecución y
almacenada dentro del paquete de aplicaciones.
Hay dos tipos de códigos que juegan un rol: Código Manejado (MSIL) llevado a cabo
por el tiempo de ejecución mono y el código nativo que corre en plataforma específica
(tiempo de ejecución de objective-c o Android). (Alférez, 2018)
En IOS se requiere una computadora MAC con macOS como sistema operativo para
compilar los aplicativos, existe además una restricción que impide generar código de
tiempo de ejecución en un dispositivo, se usa la compilación AOT para producir código
binario nativo IOS y las clases .NET usadas. (véase Figura 51) (Alférez, 2018)
97
El primer enfoque se enfoca en compartir el ambiente (lenguaje de programación,
aplicación en tiempo de ejecución y librerías) y la lógica de negocia entre las
plataformas, pero cada interfaz de usuario debe ser desarrollada por cada plataforma.
(Alférez, 2018)
Por otra parte, el segundo enfoque añade una capa de abstracción que permite construir
UIs nativas para cada plataforma compartiendo solo un código base. (Alférez, 2018)
98
Figura 55. Dependencia de servicios Xamarin(Alférez, 2018)
3.4.5.4 Pruebas
De acuerdo con(Alférez, 2018), Xamarin ofrece las formas de pruebas:
Pruebas unitarias en Xamarin.IOS
Herramientas de pruebas de la lógica C# en .NET.
Pruebas automatizadas gracias a Centro de aplicaciones de visual studio, además
este centro permite la integración y entrega continua, construcción remota,
establecer notificaciones y pruebas en dispositivos reales.
Xamarinprofiler para analizar la aplicación y coleccionar data relevante al
correr.
99
3.5 Arquitectura
3.5.1.1 Definición
La arquitectura predecesora de 2 capas solo teníalas capas de cliente y de servidor que
hacíanque el cliente maneje la lógica de negocio mezclada con la interfaz de usuario
haciendo que sea difícil la portabilidad, la solución fuecrearnuevas capascon la finalidad
de separar la lógica de la aplicación de la interfaz de usuario y del mecanismo utilizado
para el almacenamiento de datos (arquitectura de 3 capas). La acción de separar estas
nuevas capas permite reducir el grado de acoplamiento que hay entre unidades o
componentes, entre los cuales existe un alto grado de dependencia.(Ganchoso & Vera,
2015)
3.5.1.2 Capas
A continuación, se presenta la interacción de estas capas en este tipo de modelo de
arquitectura(véaseFigura 56):
3.5.1.4 Ventajas
De acuerdo con(Sarasty, 2015), algunas ventajas que se encuentran son las siguientes:
La estructura de datos se puede modificar sin afectar a la interfaz de usuario.
El código de la capa intermedia se puede reutilizar por varias aplicaciones, si fue
desarrollado o diseñado modularmente.
Es más sencillo realizar modificaciones sobre una capa sin afectar los módulos
restantes, lo cual facilita el desarrollo, mantenimiento y uso.
3.5.1.5 Desventajas
De acuerdo con(Sarasty, 2015), entre algunas de las desventajas que se encuentran son
las siguientes:
Incremento en el tráfico de red, por lo que se requerirá un balanceo de carga.
El cliente puede que no cuente con los recursos del servidor por falta o
problemas de conexión.
3.5.2.1 Definición
SOA es un modelo de arquitectura que posiciona a los servicios como un mecanismo
esencial para poder incrementar la eficiencia, agilidad y productividad de una empresa.
La implementación de SOA puede consistir en la combinación de tecnologías,
productos, APIs, extensiones para el soporte de una infraestructura, y otras partes.(Erl,
2019)
Los servicios vienen a ser los componentes unitarios de la arquitectura SOA, son
aplicaciones que residen en servidores centralizados, éstos intercambian datos entre
sistemas independientemente del lenguaje de programación en el que estén
desarrolladas y de la plataforma en dónde se ejecuten.(Erl, 2019)
101
Figura 57. Elementos de SOA(Krafzig, Banke, & Slama, 2004)
3.5.2.2.1 AplicaciónFrontend
Es uno de los principales artefactos que tiene SOA, son los participantes activos. Ellos
inician y controlan toda la actividad de los sistemas empresariales. Hay diferentes tipos
de aplicaciones frontend. Una aplicación frontend con una interfaz de usuario gráfico,
como una aplicación web o un cliente enriquecido que interactúa directamente con los
usuarios finales, es el ejemplo más claro. Sin embargo, es enteramente posible que una
aplicación frontend delegue mucho de su responsabilidad para un proceso de negocio a
uno o más servicios. Últimamente, sin embargo, siempre una aplicación frontend inicia
un proceso de negocio y recibe los resultados.(Krafzig, Banke, & Slama, 2004, págs.
58-65)
3.5.2.2.2 Servicios
De acuerdo con(Krafzig, Banke, & Slama, 2004, págs. 58-65), un servicio es un
componente de software de significado funcional distinto que típicamente encapsula un
concepto de negocio de alto nivel.
Tal como se muestra en la imagen (véase Figura 58), un servicio consiste en varias
partes:
Contrato: El contrato del servicio provee una especificación informal del
propósito, funcionalidad, restricciones, y uso del servicio. La forma de esta
especificación puede variar, dependiendo del tipo de servicio. Un elemento no
obligatorio del contrato del servicio es una formal definición de interface basada
en lenguajes como IDL o WSDL. A pesar de que no es obligatorio, una
definición formal de interfaz de servicio agrega un beneficio significativo:
Provee la abstracción e independencia de la tecnología, incluyendo el lenguaje
de programación, middleware, protocolo de red y entorno de ejecución. Sin
embargo, es importante entender que el contrato de servicio provee más
102
información que una especificación formal. El contrato puede imponer detalles
semánticos de la funcionalidad y parámetros que no están sujetos a IDL o
WSDL especificaciones.(Erl, 2019)
Interface: La funcionalidad del servicio es expuesto por la interfaz del servicio
a los clientes que son conectados al servicio usando una red. Aunque la
descripción de la interface es parte del contrato del servicio, la implementación
física de la interface consiste en “stubsservice” (trozo de código usado como
sustituto de alguna otra funcionalidad, interfaces de servicios), que son
incorporados dentro de los clientes de un servicio.
Implementación: La implementación del servicio físicamente provee la lógica
del negocio requerido y los datos apropiados. Es la realización técnica que
satisface el contrato del servicio. La implementación del servicio consiste en uno
o más artefactos tales como programas, datos de configuración y bases de datos.
Lógica de negocio: La lógica del negocio que es encapsulado por un servicio es
parte de su implementación. Se pone a disposición a través de las interfaces de
servicio. Sin embargo, programar en contra de las interfaces es indeseable, si o
ni uno aplica un enfoque orientado a servicios.
Data: Un servicio puede también incluir datos. En particular, es el propósito de
un servicio centrada en los datos.
103
Un repositorio de servicios puede ser arbitrariamente simple, en un extremo, la
tecnología no puede ser requerida. Un lote de impreso de contratos de servicio
localizado en una oficina y accesible por todos los proyectos es ya un repositorio de
servicios valido. Sin embargo, existen mejores maneras de proporcionar esta
información al tiempo que conserva la simplicidad del repositorio.(Krafzig, Banke, &
Slama, 2004, págs. 58-65)
En algunos casos, las compañías han desarrollado sus propias herramientas que
automáticamente generan la descripción de los servicios de las definiciones formales de
los servicios. Esta es una particularidad muy útil si la definición formal del servicio esta
anotado con información adicional sobre el servicio. Notar que esta información es
típicamente muy diferente de la metainformaciónproveída por APIs de bajo nivel como
clases Java. Esto es debido a los diferentes roles que las definiciones de los servicios
juegan en SOA. Los servicios están típicamente no relacionadoscon códigos de
librerías, pero están ligados a la ejecución. (Krafzig, Banke, & Slama, 2004, págs. 58-
65)
Es importante distinguir entre tiempo de desarrollo y tiempo de ejecución de servicios
“vinculados”. Vincular se refiere a la manera en que las definiciones del servicio y las
instancias del servicio son localizadas, incorporadas dentro de la aplicación cliente, y
finalmente conectados al nivel de la red.(Krafzig, Banke, & Slama, 2004, págs. 58-65)
Tiempo de desarrollo vinculación: Si los servicios son descubiertos y
vinculados en tiempo de desarrollo, las firmas de las operaciones del servicio
son conocidas de antemano, tanto como el protocolo de servicio y la locación
física del servicio (o al menos el exacto nombre del servicio en un directorio de
servicio). Sin embargo, el tiempo de desarrollo de vinculación es un simple
modelo, es suficiente para más propuestas. Permite a los proyectos identificar
funcionalidades que han sido creadas por antiguos proyectos y reusar esos
servicios.
Tiempo de ejecución vinculación: Tiempo de ejecución es aún más complejo
que el tiempo de desarrollo de vinculación. El tiempo de ejecución de
vinculación va másallá de la complejidad de la búsqueda dinámica del servicio
por propiedades con interfaces de servicios predefinidos es muy raro y es
limitado para muy pocos dominios de aplicaciones. Un raro ejemplo para un
dominio que realmente requiera servicios dinámica y altamente vinculados está
en el mundo inalámbrico
104
compuesto de una simple tecnología, sino que más bien comprende una variedad de
productos y conceptos.(Krafzig, Banke, & Slama, 2004, págs. 58-65)
De acuerdo con(Krafzig, Banke, & Slama, 2004, págs. 58-65), se mencionan las
características más resaltantes del bus de servicio:
Conectividad: El propósito principal del bus de servicio es interconectar los
participantes de SOA. Provee facilidades que permiten a los participantes de una
frontendaplicación SOA y servicios para invocar la funcionalidad de los servicios.
Heterogeneidad de la tecnología: El bus de servicios debe abarcar una variedad
de tecnologías diferentes. La realidad de las empresas es caracterizada por
tecnologías heterogéneas. Consecuentemente, el bus de servicios debe ser capaz
para conectar participantes que estén basadas en lenguajes de programas
diferentes, sistemas operativos, entornos de ejecución. Además, usualmente
encontrar una multitud de productos middleware y protocolos de comunicación en
la empresa y todo esto debe ser soportado por el bus de servicio.
Heterogeneidad de los conceptos de comunicación: Similarmente a la
heterogeneidad de las tecnologías, el bus de servicio debe también abarcar una
variedad de conceptos de comunicaciones diferentes. Debido a los requisitos
divergentes de las diferentes aplicaciones, el bus de servicios debe permitir modos
de comunicaciones diferentes. Obviamente, se debe al menos tener facilidades
para comunicación de sincronización y desincronización.
Servicios técnicos: Aunque el propósito del bus de servicios es principalmente
comunicación, debe también proveer servicios técnicos, tales como logging,
auditoria, seguridad, transformación de mensaje o transacciones.
105
Figura 59.Estándar de contratación de servicios en SOA(Erl, 2019).
Este principio predica el enfoque de “Primer contrato” en la entrega del servicio, por el
que se desarrollan a medida contratos (antes de la implementación de estos) de acuerdo
con el diseño de las normas que se aplican a todos los servicios dentro de un
determinado inventario de servicios.(Erl, 2019)
Las políticas y esquemas normalizadas pueden ser centralizadas por lo que una
definición representa un conjunto oficial de afirmaciones políticas o tipos complejos
que pueden ser referenciados por múltiples definiciones WSDL.(Erl, 2019)
Las normas de diseño de contrato pueden afectar y dar forma a muchas definiciones de
elementos y la estructura general del WSDL, XML Schema, y políticas de definición de
documentos.(Erl, 2019)
106
La proliferación del acoplamiento positivo es deseable ya que permite a
implementaciones de servicios evolucionar si consumidores de servicios.(Erl, 2019)
107
Esto pone un gran énfasis en la fiabilidad y la previsibilidad de un servicio,
independientemente de lo que puede ser encapsulado (también se plantea cuestiones
como que debe ser publicado dentro de los SLA).(Erl, 2019)
108
Figura 61. Autonomía de servicios en SOA(Erl, 2019)
La gestión de datos de estado consume recursos del sistema y puede dar a lugar una
carga significativa de recursos cuando varias instancias de servicios se invocan al
mismo tiempo, sobre todo con los servicios agnósticos que están involucradas en la
automatización de múltiples procesos de negocio.(Erl, 2019)
109
Por lo tanto, la delegación temporal y el aplazamiento de la administración del estado
pueden aumentar la escalabilidad del servicio y soportar un amplio rango de
reusabilidad y descomposición con el tiempo.(Erl, 2019)
Los estados de los datos son comúnmente diferentes en tiempo de ejecución
permitiendo que un servicio permanezca activo y sin estado, mientras que se produce
otro procesamiento.(Erl, 2019)
3.5.3 Microservicios
3.5.3.1 Definición
Según (Perez-Herrera, 2015), este tipo de arquitectura tiene como idea principal dividir
el software en servicios que sean lo más independientes posibles entre ellos distribuidos
en diferentes lugares lo cual lo convierte en un sistema distribuido.
Según (Fowler & Lewis, s.f.), los principales aportantes en este tipo de arquitectura,
losmicroservicios se definen como un estilo arquitectural en el que múltiples servicios
funcionanindividualmente desplegados de una manera automatizada, además se
comunican con mecanismos ligeros generalmente usando un recurso API basado en
HTTP.
De acuerdo con(Newman, 2015, págs. 2-3), los microservicios son servicios autónomos
que trabajan juntos. Detallando a más profundidad analiza los sistemas monolíticos los
cuales menciona que usan un código fuente en muchos casos muy extensos, lo cual hace
que hacer nuevos cambios o corregir errores sea más dificultoso, en contraparte lo que
se desea con microservicios es que sea modular para esto necesita ser cohesivo ósea
agrupar código con la misma razón y separar por otro lado código que cumpla diferentes
razones. Es por eso por lo que microservicios se enfocan en hacer servicios en base a los
límites del negocio de esta forma se evita que estos sean demasiado grandes. Sobre esto
menciona que los microservicios deben ser lo suficientemente pequeños y no muy
pequeños, mientras más se reduzca el tamaño más crecen las ventajas, pero a la vez las
desventajas de la implementación de esta arquitectura; también depende del tamaño del
equipo dado que se asignan pocas personas.
Cada microservicio debe ser desplegado de manera aislado en una plataforma como
servicio (PAAS), es por eso por lo que se trata de evitar que múltiples servicios estén en
un solo lugar. Las comunicaciones entre estos son mediante llamadas en red.(Newman,
2015)
3.5.3.2 Principios
Menciona que se puede escoger que principios adoptar en base a la organización,
siempre conociendo los riesgos que ello aqueja.(Newman, 2015, págs. 45-50)
111
De acuerdo con(Newman, 2015, págs. 45-50), se mencionan los siguientes principios
que se resaltan más:
Modelar entorno a conceptos de negocios
Se menciona que en base a la experiencia de interfaces basadas en límites del contexto
de negocio son más estables. Al modelar en dominios se asegura que se reflejen los
cambios de los procesos de negocio más fácilmente.
Adoptar la cultura de automatización
Dado que los microservicios aumentan la complejidad, es bueno contar con fortalecer
una cultura de automatización con herramientas que soporten los microservicios. El
testeo automatizado es esencial, es un proceso más complejo que los sistemas
monolíticos, también se menciona que se debe adoptar la integración continua para una
rápida retroalimentación en la calidad de la producción.
Considerar definir ambientes que especifiquen las diferencias de uno y otro pero que
puedan desplegarse de una manera uniforme.
Esconder detalles internos de implementación
Para maximizar la habilidad de permitir la evolución de los microservicios
independientes es vital que se esconda los detalles de su implementación, definir bien
los límites de negocios es un buen soporte.
Los servicios deben esconder su base de datos para evitar el acoplamiento que si tienen
las tradicionales arquitecturas orientadas a servicios y para la generación de reportes
hacer un movimiento masivo de datos que puede darse por eventos.
Los servicios deben proveer APIS con tecnología agnóstica (que son servicios que no se
preocupan del contexto en el que son llamados) que permite que se usen diferentes
tecnologías. Considerar usar REST que formaliza la separación de la implementación
interna y externa.
Descentralizar todas las cosas:
Para maximizar la autonomía de los microservicios se necesita buscar constantemente
los cambios para delegar el control de los servicios a los equipos.
Hay que asegurar que cada equipo tiene sus servicios es un paso importante, ellos son
responsables de los cambios, de cuando lanzan una nueva versión, cada equipo debe ser
experto en el dominio del negocio en el cual están creando. Intentar adoptar un modelo
de gobierno compartido en los que cada equipo colectivamente comparten
responsabilidades de la visión técnica del sistema.
Se puede este principio a la arquitectura, evitar enfoques como los buses de servicios
empresariales o sistemas de orquestación los cuales centralizan la lógica de negocios y
sus servicios son tontos. En vez preferir coreografía sobre orquestación y usar un
middleware tonto con endpoint inteligentes que aseguren mantener la lógica asociada y
112
su información dentro de los límites de los servicios ayudando a tener las cosas
cohesivas.
Despliegue independiente:
Se debe tratar de asegurar que los microservicios puedan ser desplegados por ellos
mismos. Aun cuando hay cambios deberían coexistir versiones diferentes que permitan
a los clientes cambiar sobre el tiempo. Esto permite optimizar la velocidad de nuevas
características e incrementar la autonomía de los equipos ya que no necesitan orquestar
sus despliegues. Se puede adoptar por el modelo un servicio por host que reduce el
impacto de afectar a otro servicio no relacionado. En general se recomienda no que el
despliegue de un servicio no bloquee a otro y que los clientes decidan cuando se
actualizan ellos mismos.
Aislar las fallas:
Una arquitectura de microservicios puede ser más resistente que un sistema monolítico,
pero solo si se cuenta con un plan de fallas dentro del sistema. Si no se cuenta con el
hecho de que puede y va a fallar, el sistema va a comenzar a fallar y puede hacer al
sistema más frágil.
Cuando se usan llamadas no se debe tratar las llamadas remotas como las llamadas
locales en las que hay una especie de fallo.
Comprender que y como usar los circuitbreakers (interruptores automáticos) para limitar
las consecuencias de un componente defectuoso. Comprender el impacto de que pasaría
si una parte del sistema se comporta erróneamente, a veces se debe sacrificar la
disponibilidad o consistencia.
Altamente observables:
No se puede confiar en observar el comportamiento de una sola interfaz para ver si el
sistema funciona correctamente, En cambio se debe usar una vista de todo unido para
ver lo que está pasando. Usar monitoreo con transacciones de prueba que simulen un
comportamiento real. Es importante agregar logs, estadísticas y usar IDS
correlacionados que permitan el rastreo de las llamadas del sistema.
3.5.3.3 Ventajas
Según(Newman, 2015, págs. 4-7), las ventajas que podemos encontrar en el uso de la
arquitectura microservicios son las siguientes:
Tecnología heterogénea:
Dado que los microservicios pueden estar en diferentes sitios independientes unos de
otros se pueden usar diversidades de tecnología, esto nos ayuda a encontrar la
herramienta apropiada para el tipo de trabajo que se realice en vez de conformarse a una
sola tecnología estandarizada.
En la siguiente imagen (véase Figura 63) se muestra que en fines de buscar un mejor
rendimiento se pueden realizar distintas bases de datos. El ejemplo trata de una red
113
social que guarda las relaciones de usuarios en una base de datos de grafos, las
imágenes en un almacenamiento blob y el uso de tecnología java, y las publicaciones
(posts) mediante tecnología Ruby usando un almacenamiento de documentos
Con los microservicios se logra que nuevas tecnologías puedan ser integradas
rápidamente, esto debido mayormente a que los riesgos son mucho menores que una
sola aplicación monolítica.
Resistencia: La arquitectura de microservicios debe ser resistente a fallos, si algo falla y
no están en cascada se puede aislar el problema y el aplicativo continúa trabajando; por
otro lado, en la arquitectura monolítica si el servicio falla todo el aplicativo debe
pararse, una forma de mitigar el error se corría en varias máquinas el aplicativo. Sin
embargo, el autor menciona que se debe ser cuidadoso para asegurar que los
microservicios puedan mejorar la resistencia a fallos. La red puede y va a fallar para eso
la arquitectura debe estar preparada.
Escalabilidad: Cuando se tiene un servicio monolítico todo debe ser escalado junto,
dado que está relacionado y restringido por lo grande que es el aplicativo. Con más
pequeños servicios se puede escalar solo los servicios que se desean
En la siguiente imagen (véase Figura 64), se muestra el escalado solo en la parte que se
requiere pudiendo poner menos hardware a las que no lo requieren.
114
para solucionar todos los posibles errores entre versiones. Con microservicios se pueden
realizar cambios y desplegar solo dicho servicio, esto permite nuestro código desplegar
rápidamente, lo cual permite que las nuevas funcionalidades se puedan ver más rápido
Alineamiento con la organización: Existen problemas asociados con largos equipos y
largos códigos fuentes. Es realidad que los equipos más pequeños con códigos fuentes
más pequeños tienden a ser más productivos. Microservicios ayuda a alinear la
arquitectura a la organización, ayudando a reducir el número de personas trabajando
sobre un código fuente.
Componibilidad: Una de las claves de los microservicios es la reusabilidad de
funcionalidades en otras palabras componentes. Los microservicios pueden ser usados
de diferentes formas en diferentes lugares. Esto es importante ahora que todo está
conectado a diferencia de antes que se limitaba a una sola aplicación en escritorio, web
o celular. Es por eso por lo que la arquitectura debe ser adaptable a nuevos tipos de
comunicación.
Optimizado para ser reemplazable: A menudo en grandes organizaciones hay
aplicativos antiguos que no se remueven o cambian por que ponen son muy grandes y
ponen en riesgo al trabajo. Con servicios individuales el costo de reemplazarlos por
otras implementaciones o incluso eliminarlas son mucho más fáciles de manejar.
3.5.3.4 Desventajas
Según (Fowler & Lewis, s.f.), las desventajas que podemos encontrar en el uso de la
arquitectura microservicios son las siguientes:
Distribución: Los microservicios que usan sistemas distribuidos promueven la
modularidad, pero el hecho que sea distribuido puede ser su principal desventaja. Las
complejidades de estas son:
1) Rendimiento: El rendimiento de realizar llamadas a funciones remotas sonlentas
a comparación de llamadas a funciones en el proceso. Esto se puede mitigar
mediante:
a. Incrementar la granularidad: De esta manera se haría menos llamadas de
funciones remotas, lo cual por otro lado complicaría la programación del
modelo de la aplicación, se tiene que saber cómo se interconectaran los
servicios y llamar a un servicio colaborativo al menos una vez.
b. Asíncrono: Si se realizan tareas asincrónicas en paralelo se tiene la
ventaja de que puede durar a lo mucho lo que la más lenta de todas las
llamadas remotas demoraría.
2) Confiabilidad: Las llamadas a funciones en el proceso se esperan que funcionen
siempre, pero una llamada remota podría fallar en cualquier momento. Si hay
más cantidad de microservicios la probabilidad de que ocurra es más alta. Esto
se puede mitigar mediante la colaboración asincrónica ajustando el manejo de
fallos y pueda resultar en una mejor recuperación, aun así, se debe agregar
complejidad adicional averiguando las consecuencias de cada llamada remota.
115
Consistencia eventual: Cuando se realiza una operación en el sistema puede ser que
este se quede colgado hasta que finalice su operación, esto es un problema de usabilidad
ya que el usuario incluso desconoce si ha ocurrido un error o no.
Esto se puede complicar en la medida que la lógica de negocio tome decisiones sobre
información inconsistente cuando esto sucede diagnosticar el problema se puede volver
extremadamente difícil.
Con los microservicios la cantidad de consistencias eventuales va a crecer debido a que
la base de datos esta descentralizada, mientras que en una aplicación monolítica todo
forma parte de una transacción. Para esto los desarrolladores deben prever estos
problemas de la consistencia y saber cómo detectarlos antes de que el código ocasiones
estos problemas.
Complejidad operacional: Al ser cada unidad independiente para ser desplegada se
hace muy conveniente al momento de desplegar, pero esto añade otro tipo de
complejidades como tener un número mucho mayor de microservicios que de
aplicaciones. Muchas organizaciones tendrán la dificultad de lidiar con tal grande
cantidad de servicios
Esto refuerza el rol de la entrega continua, y en la arquitectura de microservicios es
esencial. Además, la complejidad operacional también se ve incrementada debido a la
creciente demanda de manejo de servicios y la monitorización de estos.
Manejar esta complejidad requerirá nuevas habilidades y herramientas; aun así, seguirá
siendo más compleja que una arquitectura monolítica. Además, se necesita introducir la
cultura “devops” que consiste en una excelente colaboración entre desarrolladores,
operaciones y todo aquel involucrado en la entrega del software
3.6.1.1 Objetivos
Los objetivos son los siguientes:
Mejorar la gestión de procesos académicos del centro de idiomas ESPAM MFL
donde se encuentran procesos de preinscripción, admisión, matrícula y gestión
de expedientes.
Disminuir trámites a nivel personal y el uso de papeles.
Reducir la carga de trabajo del personal debido a la mayor demanda.
116
3.6.1.2 Solución:
Lasolución consiste en diseñar e implementar una solución que permita mejorar la
propuesta pedagógica de calidad de formación del estudiante para esto brinda los
procesos de preinscripción, selección, admisión, planes de estudio, modelos
pedagógicos, ofertas de programas e información académica. Además, se mejora el
manejo de información, disponibilidad, menor tiempo y la reducción del uso de papel
3.6.1.3 Resultados:
El sistema fue utilizado por 2 ciclos académicos permitiendo la mejora de los procesos
académicos y en la reducción de tiempo, y mejora de la atención brindada. (véaseTabla
2)
Tabla 2
Mejora de procesos de gestión académica ESPAM-MFL
Tiempo en segundos
Sin Con % de
Proceso de gestión académica sistema sistema mejora
Matrícula (por alumno) 50 35 30%
Elaboración de listados (por curso) 93 15 84%
Búsqueda de reporte completo de notas de
un módulo (por curso) 120 20 83%
Búsqueda de historial académico (por
alumno) 600 15 98%
Elaboración de certificados (por alumno) 900 50 94%
Fuente: (Ganchoso & Vera, 2015)
3.6.2.1 Objetivos
A continuación, se muestran los objetivos:
Disminuir tiempo en cambios del plan curricular.
Disminuir tiempo y errores de registro de alumnos y matrículas.
Disminuir tiempo de entrega de registros auxiliares.
Disminuir errores en asignación de notas de alumnos
Disminuir tiempo en correcciones de notas.
Entrega de boleta de notas más rápido
3.6.2.2 Solución:
Mejorar el proceso administrativo académico en la Institución Educativa “Wari-Vilca”-
Huayucachi, 2018 mediante la implementación de sistema web.
Se empleo la metodología RUP y su arquitectura (véase Figura 65) consta de 3 capas:
capa de presentación, capa de procesos y capa de datos
117
Figura 65.Arquitectura de la solución para el Instituto Educativo Wari-Vilca(Acevedo,
2018)
3.6.2.3 Resultados:
Los resultados obtenidos con la implementación del sistema web comprueban lo
siguiente:
Se logro mejorar el proceso administrativo académico.
El sistema web influye positivamente en un 34.4% en el proceso de entrega de
boleta de notas mejorando el proceso administrativo académico.
El sistema web influye positivamente en un 25% en el proceso de consultas y
reportes mejorando el proceso administrativo académico.
Los padres de familia y/o apoderados pueden tener acceso rápido, detallado y
confiable a la información solicitada referente a lo académico en menor tiempo.
Se facilitó el control de las notas por parte del personal administrativo teniendo
ahora toda la información en el sistema web.
Se redujo el tiempo de consulta por parte de los padres de familia y/o
apoderados.
3.6.3.1 Objetivos
Reducir el tiempo de consulta del estado del nivel académico del estudiante de la
I.E.P. Villa Corazón de Jesús
Facilitar el llenado de notas por parte de los docentes a cargo de un grado y
curso específico
Reducir el tiempo de consulta de las asistencias de todo el personal de trabajo y
alumnos de la I.E.P. Villa Corazón de Jesús
118
3.6.3.2 Solución
La solución consiste en la implementación de un sistema web que permita optimizar la
gestión académica de la I.E.P. Villa Corazón de Jesús de San Juan de Lurigancho. Entre
sus funciones tendrá el registro de notas, registros académicos, brinda control
académico a los padres y permitirá la gestión de asistencias.
3.6.3.3 Resultados
A continuación, se muestran beneficios tangibles (véase Tabla 3) después de la
implementación del sistema web con relación al porcentaje de cómo fue anteriormente.
Tabla 3
Beneficios tangibles del sistema web para I.E. Villa Corazón de Jesús
119
tiempo en el min. 2,000.00 1,200.00 800.00
proceso de
consulta de
asistencia de
los
empleados.
S/.
Total
2400.00
Fuente: (Berrospi & Pilar, 2013)
Y finalmente se obtuvo un retorno a la inversión en un año de 6.7 el cual fue positivo, y
la tasa de interna de retorno en 17% mayor a la tasa de descuento 10% el cual indica que
es un proyecto que no genera pérdidas y un valor actual de neto de S/. 5.350.76 soles
que indica que es un proyecto viable.
3.7 Benchmarking
Se seleccionaron tres casos de estudio cuyos aportes obtuvieron mayor impacto con la
resolución del problema (véase Tabla 5).
Tabla 5
Benchmarking de las soluciones
Características Sistema Web de Diseño e Aplicación móvil
Gestión implementación de de control
Académica en una app sobre académico
el centro de desarrollo sostenible utilizando la
idiomas de la con backend de arquitectura de
ESPAM arquitectura basada microservicios
en microservicios y de bajo la
una metodología de
reactnativefrontend desarrollo Scrum
app
Metodología de Scrum Scrum Scrum
desarrollo
Tecnología Front- Aplicativo Web Aplicación híbrida Aplicación híbrida
end (ReactNative) (ReactNative)
Tecnología Back- Arquitectura de Arquitectura de Arquitectura de
end 3 capas microservicios microservicios
Permite la Si Si Si
automatización y
optimización de los
procesos manuales
en general
Multiplataforma No Si Si
(Android, IOS y
Web)
Uso de tecnología Sí Sí Sí
Open Source
Infraestructura de On-Premise Cloud Computing Cloud Computing
120
despliegue (Amazon Web
Services)
Nivel de Regular Regular Alto
complejidad
(cantidad de
funcionalidades que
ofrece el sistema)
(Elaboración Propia)
Adicionalmente a las características mencionadas, nuestro aporte “Aplicación móvil de
control académico utilizando la arquitectura de microservicios bajo la metodología de
desarrollo Scrum” propicio las siguientes ventajas competitivas:
Solución personalizada, al captar los requerimientos (a través de historias de
usuario) por parte de la directora de escuela de la Escuela Profesional de
Obstetricia (UNMSM).
Respaldo de la Escuela Profesional de Obstetricia (UNMSM), dado que se
cuenta con la constancia de validación del producto por parte de la directora de
la EPO – UNMSM(véase Anexo 2).
Económicamente viable, debido al uso masivo de los teléfonos inteligentes;
estudiantes, docentes y otros administrativos pueden realizar sus actividades
académicas accediendo al sistema de control académico a través de sus
celulares.
121
4 RESOLUCIÓN DEL PROBLEMA
Tradicional Ágil
Prioridad de
Cumplimiento Valor
negocio
Tiempo del
Largo Corto
proyecto
Tamaño del
Grande Pequeño
equipo
Interacción con
Mínima Máxima
el cliente
Ambiente del
Controlado Incertidumbre
desarrollo
Dirección Organizativa Colaborativa
Rigidez del
Cerrado Ampliable
producto
Requisitos Claros Ambiguos
Scrum se destaca más en gestión que la metodología XP o Iconix, debido a que las áreas
que destacan son PP (Planeación de proyectos), PMC (Monitoreo y Control de
123
Proyectos) e IPM (Administración de Proyectos Integrado), mientras que XP o Iconix
están más enfocados en la construcción y desarrollo del producto.
Debido a que nuestro proyecto se inicia de cero, necesitamos realizar una buena gestión
sobre las funcionalidades que tendrá el sistema, además debe estar enfocado en un
avance ágil para dar entregables a los clientes en cortos periodos de tiempo, es por eso
por lo que optamos por la metodología SCRUM para la planificación y el desarrollo del
producto.
Tabla 8
Comparación de frameworksmultiplataformasXamarin, ReactNative, Flutter
125
De este comparativo (véase Tabla 8) se elige aReactNative debido a que:
Su lenguaje JavaScript es el más usado.
Se admiten cambios en caliente.
Se permite el uso de cualquier IDE preferido a diferencia de Xamarin que es
usado en un IDE específico.
Es de código libre al igual que Flutter y diferente con Xamarin.
Tienen una gran cantidad de librerías de terceros si bien posee documentación
algo desactualizada tiene una gran comunidad mayor a Xamarin y a Flutter.
La apariencia y la forma de los aplicativos en ReactNative se ven como
componentes nativos a diferencia de Xamarin o Flutter.
También contamos con una tabla comparativa bajo la escala de Likert de las diferentes
soluciones como: desarrollo nativo, reactnative, native script e ionicque (véase
Tabla 9
Resultado de análisis comparativo de criterios con escala de Likert: desarrollo nativo,
ReactNative, Native Script e Ionic
Soluciones
Criterios Nativas ReactNative Native Ionic
Script
Aprendizaje y calidad de 2 5 3 4
documentación
Costo de desarrollo 2 4 4 4
Emuladores y depuración 4 5 4 4
Tiempo de respuesta y 5 5 4 1
velocidad
Reconocimiento comercial 2 5 1 2
Reutilización de código y 2 5 5 4
trabajo en equipo
Mantenimiento y 2 3 4 4
actualización
Total 22 32 25 23
Fuente:(Brito, Gómez, Santos, & Bernardino, 2018)
126
En la emulación y depuración todos poseen posibilidad de emular y depurar,
pero en ReactNative se pueden reflejar los cambios inmediatamente.
El tiempo de respuesta en reactnative es mejor que ionic y native script y casi
parecido a la aplicación nativa.
En la respuesta comercial, si bien reactnative es relativamente nuevo éste ha ido
creciendo de forma exponencial.
En la reutilización y trabajo en equipo la ventaja de reactnative al igual que ionic
o native script es que es código reutilizable para plataformas móviles en cambio
en desarrollo nativo se requiere un código distinto para cada plataforma
En el tema de mantenimiento y actualización reactnative tiene mejor ventaja que
el desarrollo nativo en el sentido que sólo se modifica un proyecto para los
cambios, aunque ionic y native script lleven un poco de ventaja dadas sus
versiones estables.
127
DevOps el número de tecnologías es tecnologías de DevOps son
limitado requeridas.
Entendible Difícil de entender dado que Fácil de entender como
su complejidad es alta. código fuente es estrictamente
Muchas partes movibles. modular y los servicios usan
SRP (Principio de
responsabilidad única)
Rendimiento No sobrecarga de Comunicación agrega
comunicaciones. sobrecarga. Posible aumento
Componentes tecnológicos en rendimiento dado las
podrían no soportar alternativas de tecnologías
rendimiento.
Fuente: (Kalske, Mäkitalo, & Mikkonen, 2018)
Se puede resaltar del comparativo (véase Tabla 11) que elegimos la arquitectura de
microservicios en vez de la arquitectura monolítica, a continuación, se detallan las
consideraciones que se tomaron:
128
A continuación, se muestra la segunda comparativa(véase Tabla 11), entre la SOA y la
arquitectura de microservicios.
Tabla 11
Comparativa entre SOA y arquitectura de microservicios
4.2.1 Inicio
En esta fase se definirá la visión del producto, definir el equipo de trabajo, historias de
backlog a alto nivel y definición del plan de lanzamiento.
130
4.2.1.1 Visión del proyecto
La visión del proyecto es sobre la gestión de la información de las clases como
asistencias, notas, encuestas y reportes de manera online que apoye en la mejora de la
calidad educativa en la Escuela Profesional de Obstetricia de UNMSM.
La dueña del producto (productowner) será la directora de escuela Clara Diaz Tinoco
encargada de brindar todos los requerimientos del negocio, así como asegurar que se de
mayor valor al proyecto.
131
Duración del Sprint: Existirá unsprint 0 para refinar los requerimientos y definir la
arquitectura y los demás sprints están enumerados del 1 al 5. La duración de cada sprint
debe ser de aproximadamente 1 mes (4 semanas), es posible que se pueda reducir el
tiempo de la duración del sprint de acuerdo con la velocidad del equipo. (De la Cruz,
Espinoza, & Cuba, 2019)
4.2.2.1 Módulos
De acuerdo con el backlog priorizado se identificaron los siguientes módulos presentes
en la siguiente imagen(véase Figura 66).
132
Tabla 13
Productbacklog del sistema: pesos y estimaciones
133
usuario
SPIKE02 Diseño de la arquitectura 5 5
Backend
SPIKE03 Diseño de la arquitectura 5 5
Frontend
SPIKE04 Preparar autenticación por 5 5
OAuth mediante Token
SPIKE05 Implementación de 4 4
Websockets en ReactNative
(Elaboración propia)
A continuación, se mostrará los enunciados de las historias de usuario y sus
correspondientes criterios de aceptación para validarla. (véase Tabla 14)
Tabla 14
Product backlog: Descripción de historias de usuario (HU) y lista de criterios de
aceptación (CA)
134
funciones notificaciones, menú de opciones y
habilitadas del por defecto las clases de hoy (sólo
acceso. alumno o profesor).
HU0 Cerrar Como usuario 1 Indicar Dado que el usuario esta autenticado
3 sesión deseo cerrar cierre de y abra el menú de opciones cuando
sesión en el sesión el usuario indique la opción cerrar
sistema para sesión el sistema debe mostrar un
poder salir del mensaje de confirmación
aplicativo y 2 Confirmar Dado que el usuario esta autenticado
tener restringido cierre de e indico la opción cerrar sesión
mis accesos sesión cuando el usuario indique la opción
cuando lo desee. cerrar sesión se debe cerrar la sesión
y volver al formulario de
autenticación
HU0 Visuali Como usuario 1 Visualizar Dado que el usuario esta autenticado
4 zar deseo ver las opciones cuando indica ver opciones se debe
menú opciones listar las opciones disponibles según
de principales acceso que tuviese e incluir la opción
opcione según el perfil "cerrar sesión".
s que tenga para
poder elegir a
cuál de ellos ir.
HU0 Ver Como 1 Ver cursos Dado que el usuario sea profesor
5 cursos profesor/alumno asignados cuando indique ver la opción ver
deseo ver el (Profesor) cursos se debe mostrar los cursos
listado de cursos que enseña ya sea un profesor
en los que me responsable o designado
encuentro 2 Ver cursos Dado que el usuario sea alumno
inscrito con el asignados cuando indique ver la opción ver
fin de poder (Alumno) grupos se debe mostrar los cursos en
elegir que curso los que está matriculado
deseo consultar.
HU0 Ver Como 1 Ver grupos Dado que el usuario sea profesor
6 grupos profesor/alumno asignados cuando indique ver la opción ver
deseo ver el (Profesor) grupos del curso se debe mostrar los
listado de grupos que enseña ya sea un profesor
grupos de un responsable o designado
curso en los que 2 Ver grupos Dado que el usuario sea alumno
me encuentro asignados cuando indique ver la opción ver
inscrito con el (Alumno) cursos se debe mostrar los grupos en
fin de poder los que está inscrito
elegir que grupo
deseo consultar.
135
HU0 Ver Como 1 Ver clases Dado que el usuario bien sea alumno
7 clases profesor/alumno de hoy o profesor por primera vez cuando
de hoy deseo ver las éste haya entrado con su acceso se le
clases de hoy mostrará las clases disponibles
para poder ver (nombre del tema, grupo, hora,
que clases tengo curso) del día de hoy de forma
pendientes de ordenada de menor a mayor.
una forma
ordenada
HU0 Consult Como 1 Consultar Dado que el usuario como
8 ar profesor/alumno listado de profesor/alumno haya seleccionado
listado deseo ver el Clases un grupo cuando indique consultar
de listado de clases listado de clases se debe mostrar
clases de un grupo para todas las clases diferencias por
poder ver las estado (iniciada, finalizada, no
clases que ya iniciada) e información de la fecha y
realice como las hora de inicio.
que falten
HU0 Consult Como 1 Consultar Dado que el usuario sea profesor y
9 ar clase profesor/alumno clase se le hayan listado las clases
deseo consultar (Profesor) disponibles cuando éste consulte la
una clase para clase se le debe mostrar información
ver su detallada como:
información La fecha de la clase, nombre del
detallada de tema, profesor asignado, estado de la
ésta. clase, hora de inicio, hora de fin, y la
lista de asistencias de los
alumnos(código, nombre y estado de
asistencia), de acuerdo al estado de
la clase se habilitaran las opciones:
Iniciar clase(estado de clase no
iniciada), Guardar asistencias(estado
de clase iniciada), y Finalizar
clase(estado de clase iniciada).
2 Filtrar Dado que el usuario sea profesor y
alumnos se haya consultado la clase cuando
éste requiera filtrar se le debe
permitir filtrar los alumnos por su
código o nombre de alumno.
3 Consultar Dado que el usuario sea profesor y
clase se le hayan listado las clases
(Alumno) disponibles cuando éste consulte la
clase se le debe mostrar información
detallada como:
La fecha de la clase, nombre del
tema, profesor asignado, estado de la
clase, estado de asistencia del
alumno.
136
HU1 Iniciar Como profesor 1 Iniciar Dado el usuario como profesor y se
0 clase deseo iniciar la clase encuentra asignado a una clase y
clase con el fin haya consultado una clase en estado
de marcar mi no iniciada cuando éste indique
asistencia y la iniciar clase se debe iniciar la clase
de mis alumnos. con la fecha y hora actual, así como
inicializar las asistencias de los
alumnos por defecto a inasistencia.
HU1 Guarda Como profesor 1 Guardar Dado el usuario como profesor y se
1 r deseo guardar asistencias encuentra asignado a una clase y
asistenc asistencias de haya consultado una clase en estado
ias de alumno de la iniciada cuando éste indique guardar
alumno clase con el fin asistencias de alumno se deben
de la de poder contar guardar las asistencias de los
clase con esta alumnos modificada en la clase con
información su tipo de asistencia actualizada.
almacenada para
luego
consultarla.
HU1 Finaliza Como profesor 1 Finalizar Dado el usuario como profesor y se
2 r clase deseo finalizar clase encuentra asignado a una clase y
clase con el fin haya consultado una clase en estado
de dar por iniciada cuando éste indique finalizar
culminado la clase se debe finalizar la clase con la
clase y poder fecha y hora actual.
ver otras clases
que tuviera.
HU1 Consult Como profesor 1 Listar Dado el usuario como profesor y ha
3 ar notas deseo ver las fórmulas elegido un grupo cuando desea
como notas de los consultar las notas del grupo se debe
profeso alumnos con el mostrar las fórmulas específicas,
r fin de llevar un subespecíficas y la nota de la
control primera fórmula subespecífica
adecuado de 2 Listar notas Dado el usuario como profesor y
cada evaluación de alumnos tiene fórmulas específicas y
de los alumnos. subespecíficas por elegir cuando éste
elige fórmula específica y
subespecífica se debe mostrar la
relación de alumnos con todas sus
notas si no tuviera por defecto debe
ser 0.
3 Filtrar Dado que el usuario sea profesor y
alumnos se han listado de notas cuando éste
requiera filtrar se le debe permitir
filtrar los alumnos por su código o
nombre de alumno.
137
HU1 Consult Como alumno 1 Ver notas y Dado el usuario como alumno y se
4 ar notas deseo ver las promedio ha elegido un grupo cuando desea
como notas de los de alumno consultar sus notas y promedio se
Alumn alumnos con el debe mostrar cada una de sus notas y
o fin de llevar un su promedio de notas.
control de mis
evaluaciones
como el
promedio de
éstos.
HU1 Registr Como profesor 1 Registrar Dado el usuario como profesor y se
5 ar notas deseo registrar nota ha consultado las notas cuando éste
las notas con el ingresa las notas e indica la opción
fin de tener guardar se debe registrar las notas
actualizado las cambiadas de la evaluación.
notas y llevar un
control
adecuado.
HU1 Consult Como profesor 1 Listar Dado el usuario como profesor
6 ar deseo consultar alumnos cuando éste consulta el promedio
promed el promedio final de los alumnos se debe mostrar
io final ponderado final primero la relación de los alumnos
de de los alumnos 2 Consultar Dado el usuario como profesor y se
alumno con el fin de promedio ha mostrado la relación de alumnos
s evaluar el final de cuando éste el promedio final de un
desempeño alumno alumno se debe mostrar las notas del
general en el promedio final de cada grupo en el
curso de éstos que está inscrito.
HU1 Consult Como 1 Consultar Dado el usuario como
7 ar profesor/anuncio anuncios profesor/alumno y haya seleccionado
anuncio deseo consultar un grupo cuando desee ver los
s los anuncios que anuncios se debe mostrar la lista de
eh publicado anuncios relacionadas al grupo
con el fin de elegida, ordenadas de mayor a menor
revisarlos fecha.
HU1 Registr Como profesor 1 Mostrar Dado el usuario como profesor y
8 ar deseo registrar formulario haya seleccionado un grupo cuando
anuncio un anuncio para de registro desee registrar un anuncio se debe
avisar a los de anuncio mostrar un formulario del registro de
alumnos sobre anuncio (título, descripción del
un anuncio).
acontecimiento. 2 Registrar Dado el usuario como profesor y
anuncio mostrado el formulario de registro de
anuncio cuando haya ingresado el
formulario y guardarlo se debe
mostrar un mensaje de registro
exitoso.
138
HU1 Consult Como 1 Consultar Dado el usuario como
9 ar profesor/alumno preguntas profesor/alumno y haya seleccionado
pregunt deseo consultar un grupo cuando desee ver las
as las preguntas preguntas se debe mostrar la lista de
que eh preguntas relacionadas al grupo
publicado con el elegida ordenadas de mayor a menor
fin de revisarlas fecha.
HU2 Consult Como 1 Consultar Dado el usuario como
0 ar profesor/alumno respuestas profesor/alumno y haya seleccionado
respues deseo consultar un grupo cuando desee ver las
tas respuestas para respuestas se debe mostrar la lista de
obtener respuestas relacionadas al grupo
información de elegida ordenadas de mayor a menor
los demás sobre fecha.
la pregunta.
HU2 Registr Como 1 Mostrar Dado el usuario como profesor y
1 ar profesor/alumno formulario haya seleccionado una clase cuando
pregunt deseo registrar de registro desee registrar una pregunta se debe
a una pregunta de pregunta mostrar un formulario del registro de
para resolver pregunta (descripción de la
una duda que pregunta).
tuviera. 2 Registrar Dado el usuario como profesor y
pregunta mostrado el formulario de registro de
pregunta cuando haya ingresado el
formulario y guardarlo se debe
mostrar un mensaje de registro
exitoso.
HU2 Registr Como 1 Mostrar Dado el usuario como profesor y
2 ar profesor/alumno formulario haya seleccionado una pregunta
respues deseo registrar de registro cuando desee registrar una respuesta
ta una respuesta de se debe mostrar un formulario del
con el fin de respuesta registro de respuesta (descripción de
contestar una la respuesta).
pregunta y tratar 2 Registrar Dado el usuario como profesor y
de solucionar la respuesta mostrado el formulario de registro de
duda. respuesta cuando haya ingresado el
formulario y guardarlo se debe
mostrar un mensaje de registro
exitoso.
HU2 Consult Como 1 Consultar Dado el usuario como el
3 ar profesor/alumno fórmulas profesor/alumno y haya elegido un
fórmula deseo consultar específicas grupo cuando este consultando las
las fórmulas de fórmulas del grupo se debe mostrar
los grupos que las fórmulas específicas del grupo y
estoy inscrito el cálculo del promedio de las notas
con el fin de del grupo.
139
saber cómo se 2 Consultar Dado el usuario como el
calculan los fórmulas profesor/alumno y haya consultado
promedios de subespecífi las fórmulas específicas cuando este
notas cas consultando una fórmula específica
en particular se debe mostrar las
fórmulas subespecíficas del grupo.
HU2 Persona Como profesor 1 Dar Dado el usuario como profesor y la
4 lizar deseo mantenimie fórmula sea de tipo personalizada
fórmula personalizar la nto a cuando desee registrar datos se debe
fórmula porque fórmulas mostrar la información sobre la
deseo cambiar la personaliza fórmula (peso, sigla y nombre) ya
fórmula general das sea de tipo específica o
y registrar mi subespecífica. Puede haber
propia forma de registro/modificación o eliminación
evaluación de fórmulas personalizadas
específicas o subespecíficas, se debe
desvincular con la fórmula
personalizada anterior y eliminar sus
respectivas notas.
2 Cambiar a Dado el usuario como profesor y la
fórmula fórmula del grupo sea de tipo no
personaliza personalizada cuando cambie la
da fórmula a fórmulas personalizada se
debe permitir cambiar de fórmula no
personalizada a personalizada tanto
de las fórmulas específicas como las
subespecíficas.
3 No ha Dado el usuario como profesor y
realizado haya consultado las fórmulas cuando
cambios indique cambiar fórmula y no haya
realizado cambios se debe emitir un
mensaje informativo indicando que
no se hicieron cambios
HU2 Volver Como profesor 1 Volver a Dado el usuario como profesor y la
5 a deseo fórmula no fórmula sea de tipo personalizada
fórmula personalizar la personaliza cuando indique cambiar la fórmula
no fórmula porque da personalizada a personalizada se
persona deseo cambiar la debe volver a la fórmula anterior y
lizada fórmula general eliminar la fórmula personalizada
y registrar mi anterior con sus respectivas notas.
propia forma de
evaluación
HU2 Encuest Como alumno 1 Ver Dado el usuario como alumno y haya
6 ar clase deseo encuestar preguntas consultado una clase en estado
clase con el fin de encuesta iniciada o finalizada cuando éste
de poder evaluar de la clase haya consultado la clase se le debe
la enseñanza y mostrar una encuesta de la clase.
140
el aprendizaje en 2 Encuestar Dado el usuario como alumno y haya
la clase. clase visto la encuesta de la clase y la ha
rellenado cuando éste indique
registrar se debe registrar la encuesta
y emitir un mensaje informativo.
HU2 Consult Como profesor, 1 Consultar Dado el usuario como
7 ar alumno deseo promedio profesor/alumno cuando éste haya
promed consultar el en el listado entrado a ver la lista de clases se
io de promedio de de clases debe ver la información de las clases
encuest encuesta por y el promedio de cada una de éstas.
a por clase con el fin 2 Consultar Dado el usuario como
clase de poder ver promedio profesor/alumno cuando éste haya
cómo fue de en el detalle consultado una clase se debe ver la
buena o mala la de la clase información de la clase y el
clase según los promedio de la clase.
alumnos.
HU2 Recibir Como usuario 1 Registrar Dado el usuario como profesor
8 cantida deseo recibir la cuando registre una asistencia de la
notificacion
d de cantidad actual es de clase se debe llegar una notificación
notifica de asistenciasa los alumnos.
ciones notificaciones 2 Registrar Dado el usuario como profesor
no vistas que cuando registre las notas de los
notificacion
tengo esto con la es de notasalumnos le debe llegar a los alumnos
finalidad de interesados
enterarme 3 Consultar Dado el usuario que haya sido
cuantos nuevos número de autenticado en el sistema cuando
acontecimientos notificacion éste ingrese o se encuentre en la
que me son de es plataforma y tenga nuevas
mi interés han notificaciones se debe mostrar la
ocurrido. cantidad de nuevas notificaciones
que no ha visto.
HU2 Consult Como usuario 1 Consultar Dado el usuario que haya sido
9 ar deseo recibir la últimas autenticado en el sistema cuando
notifica cantidad actual notificacion indique ver notificaciones se debe
ciones de es mostrar las últimas 8 notificaciones
notificaciones ordenados de fecha de mayor a
no vistas que menor.
tengo esto con la 2 Consultar Dado el usuario que haya sido
finalidad de todas las autenticado en el sistema cuando
enterarme cuales notificacion indique ver todas las notificaciones
son los nuevos es se debe mostrar todas las
acontecimientos notificaciones ordenados de fecha de
que me son de mayor a menor y con un estado (no
mi interés han vistas, vistas).
ocurrido.
HU3 Actuali Como usuario 1 Actualizar Dado el usuario que haya sido
0 zar las deseo actualizar las autenticado al sistema y haya
notifica las notificacion consultado las notificaciones cuando
141
ciones notificaciones es como éste las revise se debe actualizar las
que consulte vistas notificaciones como ya vistas.
como ya vistas
con el fin de que
pueda
diferenciar las
que no consulte
de las que
consulte.
HU3 Generar Como director 1 Filtrar Como director de escuela cuando
1 reporte de escuela deseo búsqueda haya ingresado a la sección de
asistenc ver el reporte de reportes de asistencias se debe poder
ias asistencias con filtrar por curso: (todos los cursos o
el fin de realizar un curso en particular), por grupo
el control de (todos los cursos o uno en
asistencias de particular), poralumno (todos los
los cursos. alumnos o uno en particular) o si es
por profesor (todos los profesores o
uno en particular)
2 Mostrar Como director de escuela y haya
estadísticas realizado los filtros de búsqueda
deseado cuando desee ver
estadísticas se debe mostrar un
cuadro estadístico de las asistencias
(a tiempo, tardanzas, faltas y la
cantidad restante) y un gráfico de
barras que indique cuantas
asistencias faltan concretar ya sea
por alumno o por profesor.
HU3 Generar Como director 1 Filtrar Como director de escuela cuando
2 reporte de escuela deseo búsqueda haya ingresado a la sección de
notas ver el reporte de reportes de notas se debe poder
asistencias con filtrar por curso: (todos los cursos o
el fin de realizar un curso en particular), por grupo
el control de (todos los cursos o uno en
notas de los particular), poralumno (todos los
cursos. alumnos o uno en particular)
2 Mostrar Como director de escuela y haya
estadísticas realizado los filtros de búsqueda
deseado cuando desee ver
estadísticas se debe mostrar un
cuadro estadístico de las notas (del 0
al 5, 6 al 10, 11 al 15 y 16 al 20) y
un gráfico de barras que indique
cuantas notas faltan registrar por los
profesores.
142
HU3 Generar Como director 1 Filtrar Como director de escuela cuando
3 reporte de escuela deseo búsqueda haya ingresado a la sección de
encuest ver el reporte de reportes de encuestas se debe poder
as asistencias con filtrar por curso: (todos los cursos o
el fin de realizar un curso en particular), por grupo
el control en (todos los cursos o uno en
base a encuestas particular), porprofesor (todos los
de clases de los profesores o uno en particular)
cursos. 2 Mostrar Como director de escuela y haya
estadísticas realizado los filtros de búsqueda
deseado cuando desee ver
estadísticas se debe mostrar el
promedio de todas las encuestas en
estrellas, y la relación de preguntas
cada una con el promedio de
estrellas de encuestas.
(Elaboración propia)
4.2.2.3 Sprint0
Fecha de inicio:1 de marzo del 2019
Fecha de fin: 31 de marzo del 2019
Planificación:
Este sprint(véase Tabla 15) es una fase previa a los demás sprintsse diferencia en que no
realizará entregables de software con valor al cliente, sino que servirá para tener más
claro el análisis de las historias de usuario, la arquitectura frontend, backend y
ambientes que se usarán para los siguientes sprints.El 1 de marzo del 2019 se realizó la
planificación de este sprint con duración alrededor de 4 horas. La duración del sprint se
estimó en 1 mes aproximadamente. Así mismo se realizó la estimación de las tareas de
los spikescon el equipo SCRUM mediante la técnica planningpoker. El avance fue de
lunes a viernes de 9 a 5 pm y las reuniones diarias para revisar los avances del sprint
duraba alrededor de 15 minutos por Skype.
Tabla 15
Sprint 0 del sistema
143
SPIKE02 Diseño de 1 Establecer lineamientos, tales OMAR 5
la como patrones de diseño, buenas CUBA
arquitectur prácticas, principios SOLID, entre
a Backend otros en la arquitectura de
microservicios.
2 Identificación y definición de los OMAR 5
componentes la arquitectura de CUBA
microservicios.
3 Diseño del esquema de bases de OMAR 5
datos para cada uno de los CUBA
microservicios
4 Implementación de las OMAR 2
infraestructuras de desarrollo y CUBA
pruebas en repositorio con GIT.
5 Generación de script (archivo bat) MAYCOL 2
que inicialice por consola los ESPINOZA
microservicios de forma
automatizada.
SPIKE03 Diseño de 1 Creación y diseño del proyecto MAYCOL 5
la Frontend basado en ReactNative ESPINOZA
arquitectur con el IDE WebStormJetBrains
a Frontend 2 Implementación e integración de MAYCOL 2
la infraestructura de desarrollo y ESPINOZA
pruebas.
3 Integración con el simulador o MAYCOL 3
dispositivo móvil a través de la ESPINOZA
herramienta Expo App.
SPIKE04 Preparar 1 Implementación de Spring Oauth MAYCOL 5
autenticaci 2.0 en el un servicio que a su vez ESPINOZA
ón por sea transversal a todos los
Oauth microservicios
mediante (AuthorizationServer)
tokens 2 Creación del endpointOauth/token MAYCOL 4
ESPINOZA
3 Implementación del MAYCOL 4
endpointOauthrefresh token ESPINOZA
4 Implementación de los receptores MAYCOL 4
de autenticación para los restantes ESPINOZA
microservicios donde se
encuentran los recursos
(ResourceServer)
(Elaboración propia)
4.2.2.4 Sprint 1
Fecha de inicio:1 de abril del 2019
144
Fecha de fin: 30 de abril del 2019
Planificación:
Este es el primer sprint que entrega valor al cliente (véase Tabla 16). El 1 de abril del
2019 se realizó la planificación de este sprint con duración alrededor de 4 horas. La
duración del sprint se estimó en 1 mes aproximadamente. Así mismo se realizó la
estimación de las tareas con el equipo SCRUM mediante la técnica planningpoker y se
comprometió al equipo scrum para su desarrollo. Abarca todas las historias de usuario
del módulo de autenticación y una historia de usuario del módulo de asistencia. El
avance se planeó de lunes a viernes de 9 a 5 pm y las reuniones diarias para revisar los
avances del sprint contarían con una duración aproximada de 15 minutos online por
Hangouts.
Tabla 16
Sprint 1 del sistema
145
HU02 Escoger 1 Llenado inicial de datos de OMAR CUBA 2
acceso prueba de las tablas roles y
perfiles. (Backend)
2 Desarrollo de la GUI "Escoger MAYCOL 3
acceso” en el aplicativo móvil. ESPINOZA
(Frontend)
3 Realización de pruebas en base OMAR CUBA 2
a los criterios de aceptación.
(Frontend)
HU03 Cerrar 1 Desarrollo del API "Cerrar MAYCOL 4
sesión sesión" en el microservicio ESPINOZA
autenticación. (Backend)
2 Desarrollo de la funcionalidad MAYCOL 3
"Cerrar sesión" en el aplicativo ESPINOZA
móvil. (Frontend)
3 Realización de pruebas con OMAR CUBA 2
programa Postman. (Backend)
4 Realización de pruebas en base OMAR CUBA 2
a los criterios de aceptación.
(Frontend)
HU04 Visualizar 1 Acoplar el listado de opciones MAYCOL 4
menú de (roles) con las que cuenta cada ESPINOZA
opciones usuario (perfil) dentro del
servicio encargado de genera
los tokens. (Frontend)
2 Desarrollo del menú lateral MAYCOL 5
izquierdo, el cual permite ESPINOZA
visualizar las opciones
disponibles para el usuario
autenticado. Por defecto oculta,
y que al pasar el dedo sobre el
margen izquierdo se muestre
nuevamente. (Frontend)
3 Definición del esquema de MAYCOL 5
navegabilidad para el ESPINOZA
aplicativo móvil. (Frontend)
4 Llenado inicial de datos de los OMAR CUBA 2
roles correspondientes a cada
usuario según su perfil en la
base de datos autenticación.
(Backend)
5 Realización de pruebas en base OMAR CUBA 2
a los criterios de aceptación.
(Frontend)
HU05 Ver 1 Creación del esquema, tablas, OMAR CUBA 4
cursos constraints, queries
correspondientes a la base de
datos periodo-académico.
146
(Backend)
147
historias de usuario definidas en el sprint. La duración de la reunión fue de 3 horas
aproximadamente.
Retrospectiva:En la fecha 30 de abril de 2019 se dio la retrospectiva entre los
integrantes del equipo scrum. La duración de la reunión fue de 3 horas. Se analizaron
los siguientes puntos:
Ambos avanzamos la arquitectura de microservicios inicialmente, pero luego
decidimos que sería mejor separar el backend y el frontend así veríamos más
rápidos los avances.
Al iniciar el desarrollo tanto en el lado backend como frontend del proyecto
tuvimos complicaciones con el manejo de las tecnologías debido a que
necesitábamos capacitarnos.
Hubo complicaciones en el diseño de la arquitectura ya que se necesitaba tener
una buena abstracción para ver cómo se separaban los microservicios de acuerdo
con la lógica de negocio.
Algunas interfaces de usuario debieron ser reajustados para cumplir los criterios
aceptación.
La coordinación es un factor muy importante para que se trabaje en armonía es
importante compartir y/o notificar sobre cambios, recursos o conocimientos que
otro integrante del equipo scrum desconoce.
El microservicio periodo-académico contiene información útil para otros
microservicios esto es importante ya que puede ser invocado por otros
microservicios para realizar validaciones.
4.2.2.5 Sprint 2
Fecha de inicio:1 de mayo del 2019
Fecha de fin: 31 de mayo del 2019
Planificación:
El 1 de mayo del 2019 se realizó la planificación de este sprint(véase Tabla 17) con
duración alrededor de 4 horas. Así mismo se realizó la estimación de las tareas con el
equipo SCRUM mediante la técnica planningpoker y se comprometió al equipo scrum
para su desarrollo. Abarca todas las historias de usuario del módulo de asistencias e
historias de usuario del módulo de encuestas. El avance se planeó de lunes a viernes de
9 a 5 pm y las reuniones diarias para revisar los avances del sprint contarían una
duración aproximada de 15 minutos presencial.
Tabla 17
Sprint 2 del sistema
150
6 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
7 Realización de pruebas en MAYCOL 2
base a los criterios de ESPINOZA
aceptación. (Frontend)
HU10 Iniciar clase 1 Desarrollo de la OMAR CUBA 5
funcionalidad "Iniciar
clase" en el microservicio
asistencia. (Backend)
2 Desarrollo de la MAYCOL 1
funcionalidad "Iniciar ESPINOZA
clase" en el aplicativo
móvil. (Frontend)
3 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
4 Realización de pruebas en MAYCOL 2
base a los criterios de ESPINOZA
aceptación. (Frontend)
HU11 Guardar 1 Desarrollo de la API OMAR CUBA 5
asistencias "Guardar asistencias de
de alumno alumno" en el
de la clase microservicio asistencia.
(Backend)
2 Desarrollo de la GUI MAYCOL 1
"Guardar asistencias de ESPINOZA
alumno" en el aplicativo
móvil. (Frontend)
3 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
4 Realización de pruebas en MAYCOL 2
base a los criterios de ESPINOZA
aceptación. (Frontend)
HU12 Finalizar 1 Desarrollo de la OMAR CUBA 5
clase funcionalidad
"Finalizarclase" en el
microservicio asistencia.
(Backend)
2 Desarrollo de la MAYCOL 1
funcionalidad ESPINOZA
"Finalizarclase" en el
aplicativo móvil.
(Frontend)
3 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
151
4 Realización de pruebas en MAYCOL 2
base a los criterios de ESPINOZA
aceptación. (Frontend)
HU26 Encuestar 1 Creación del esquema, OMAR CUBA 5
clase tablas, constraints, queries
correspondientes a la base
de datos de encuesta
(Backend)
2 Creación de microservicio OMAR CUBA 4
de encuesta: alojamiento
de código (Git), conexión
base de datos, mapeo de
tablas, configuración de
microservicio. (Backend)
3 Desarrollo de la API OMAR CUBA 5
"Realizar encuesta" en el
microservicio asistencia.
(Backend)
4 Desarrollo de la GUI MAYCOL 4
"Realizar encuesta" en el ESPINOZA
aplicativo móvil.
(Frontend)
5 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
6 Realización de pruebas en MAYCOL 2
base a los criterios de ESPINOZA
aceptación. (Frontend)
HU27 Consultar 1 Desarrollo del API OMAR CUBA 5
promedio de "Consultar promedio de
encuesta por encuesta por clase" en el
clase microservicio encuesta.
(Backend)
2 Usar el servicio OMAR CUBA 4
composición para
combinar las clases
(microservicio periodo-
académico) con el
promedio de encuestas
(microservicio encuesta)
(Backend)
3 Agregar promedio de MAYCOL 1
encuesta a la clase. ESPINOZA
(Frontend)
4 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
152
5 Realización de pruebas en MAYCOL 2
base a los criterios de ESPINOZA
aceptación. (Frontend)
(Elaboración propia)
Revisión: En la fecha 31 de mayo de 2019 se dio la revisión con la dueña del producto
Clara Díaz Tinoco la cual consistió en la validación de los criterios de aceptación de las
historias de usuario definidas en el sprint. La duración de la reunión fue de 3 horas
aproximadamente.
Retrospectiva:En la fecha 31 de mayo de 2019 se dio la retrospectiva entre los
integrantes del equipo scrum. La duración de la reunión fue de 3 horas. Se analizaron
los siguientes puntos:
Se redujo la complejidad en poder usar las tecnologías ya que adquirimos más
práctica, nos costó menos esfuerzo en comparación con el primer sprint.
Se culminó con la parte de acceso al sistema para los alumnos, profesores y
directora de escuela.
Acordamos que debemos mantener la coordinación ya que es importante en este
tipo de proyectos en lo que respecta a base de datos servicios y la parte visual
cuáles son sus usos de cada uno.
El servicio composición fue útil para combinar la información de microservicios
asistencia y periodo-académico y así permitir que cada uno siga aislado es decir
trabaje de forma independiente.
Los datos de prueba ficticios como la fecha actual y adaptación del servicio a
consulta de fecha fueron muy útiles.
4.2.2.6 Sprint 3
Fecha de inicio:1 de junio del 2019
Fecha de fin: 30 de junio del 2019
Planificación:
El 1 de junio del 2019 se realizó la planificación de este sprint (véase Tabla 18)con
duración alrededor de 4 horas. Así mismo se realizó la estimación de las tareas con el
equipo SCRUM mediante la técnica planningpoker y se comprometió al equipo scrum
para su desarrollo. Abarca todas las historias de usuario del módulo de notas e historias
de usuario del módulo de notificaciones. El avance se planeó de lunes a viernes de 9 a 5
pm y las reuniones diarias para revisar los avances del sprint contarían con una duración
aproximada de 15 minutos de forma presencial.
Tabla 18
Sprint 3 del sistema
153
HU13 Consultar 1 Creación del OMAR CUBA 3
notas como esquema, tablas,
profesor constraints, queries
correspondientes a la
base de datos del
microservicio nota
(Backend)
2 Llenado inicial de OMAR CUBA 2
datos de prueba de las
tablas fórmula,
distribucion_fórmula,
nota_alumno del
microservicio nota.
(Backend)
3 Creación de OMAR CUBA 2
microservicio nota:
Alojamiento de
código (Git),
conexión base de
datos, mapeo de
tablas, configuración
de microservicio.
(Backend)
4 Desarrollo del API OMAR CUBA 4
Consultar fórmulas
específicas en el
microservicio nota.
(Backend)
5 Desarrollo del API OMAR CUBA 3
Consultar notas en el
microservicio nota.
(Backend)
6 Desarrollo de la MAYCOL 4
GUIlistar fórmulas ESPINOZA
específicas y
subfórmulas
específicas según el
grupo seleccionado.
(Frontend)
7 Desarrollo de API OMAR CUBA 3
Consultar notas por
alumnos en el servicio
composición.
(Backend)
8 Desarrollo de la GUI MAYCOL 5
sobre listar notas de ESPINOZA
alumnos según
lafórmula
154
seleccionada.
(Frontend)
9 Realización de OMAR CUBA 2
pruebas con programa
Postman. (Backend)
10 Realización de MAYCOL 2
pruebas en base a los ESPINOZA
criterios de
aceptación. (Frontend)
HU14 Consultar 1 Desarrollo del API OMAR CUBA 4
notas como buscar fórmulas y
alumno notas por alumno en
el microservicio nota.
(Backend)
2 Desarrollo de la GUI MAYCOL 3
para mostrar las ESPINOZA
fórmulas y notas del
alumno por grupo
seleccionado.
(Frontend)
3 Realización de OMAR CUBA 2
pruebas con programa
Postman. (Backend)
4 Realización de MAYCOL 2
pruebas en base a los ESPINOZA
criterios de
aceptación. (Frontend)
HU15 Registrar 1 Desarrollo del API OMAR CUBA 5
notas dar mantenimiento a
notas en el
microservicio nota.
(Backend)
2 Desarrollo de la GUI MAYCOL 2
para guardar notas. ESPINOZA
(Frontend)
3 Realización de OMAR CUBA 2
pruebas con programa
Postman. (Backend)
4 Realización de MAYCOL 2
pruebas en base a los ESPINOZA
criterios de
aceptación. (Frontend)
HU16 Consultar 1 Desarrollo del API OMAR CUBA 5
promedio "Buscar notas
final de generales" en el
alumnos microservicio nota, el
cual se encarga de
calcular las notas
155
promedio por alumno.
(Backend)
2 Desarrollar la GUI MAYCOL 4
para mostrar la ESPINOZA
relación de alumnos al
consultar los
promedios. (Frontend)
3 Desarrollar la GUI MAYCOL 4
para mostrar sus notas ESPINOZA
promedias por cada
grupo inscrito de un
alumno. (Frontend)
4 Realización de OMAR CUBA 2
pruebas con programa
Postman. (Backend)
5 Realización de MAYCOL 2
pruebas en base a los ESPINOZA
criterios de
aceptación. (Frontend)
HU28 Recibir 1 Creación del OMAR CUBA 3
cantidad de esquema, tablas,
notificaciones constraints, queries
correspondientes a la
base de datos del
microservicio
notificación.
(Backend)
2 Llenado inicial de OMAR CUBA 2
datos de prueba de la
tabla notificación del
microservicio
notificación.
(Backend)
3 Creación de OMAR CUBA 2
microservicio
notificación:
Alojamiento de
código (Git),
conexión base de
datos, mapeo de
tablas, configuración
de microservicio.
(Backend)
4 Desarrollo del OMAR CUBA 5
websocket para
guardar la cantidad de
notificaciones por
usuario autenticado en
156
el microservicio
notificación.
(Backend)
5 Permitir el registro de OMAR CUBA 3
notificaciones en el
microservicio
notificaciones.
(Llamada asíncrona
por colas usando
RabbitMQ) (Backend)
6 Desarrollo de OMAR CUBA 4
invocaciones para
registrar las
notificaciones en los
microservicios
asistencia, nota.
(Llamada asíncrona
por colas usando
RabbitMQ) (Backend)
7 Desarrollo de opción MAYCOL 5
para consultar número ESPINOZA
de notificaciones,
como la integración
con websockets.
(Frontend)
8 Realización de OMAR CUBA 3
pruebas con programa
de ejemplo.
(Backend)
9 Realización de MAYCOL 2
pruebas en base a los ESPINOZA
criterios de
aceptación. (Frontend)
HU29 Consultar 1 Desarrollo del API OMAR CUBA 3
notificaciones listar notificaciones.
(Backend)
2 Desarrollo del API OMAR CUBA 1
listar últimas
notificaciones.
(Backend)
3 Desarrollo de la GUI MAYCOL 4
para listar las ultimas ESPINOZA
notificaciones.
(Frontend)
4 Desarrollo de interfaz MAYCOL 3
funcional para mostrar ESPINOZA
todas las
notificaciones.
157
(Frontend)
158
Revisión: En la fecha 30 de junio de 2019 se dio la revisión con la dueña del producto
Clara Díaz Tinoco la cual consistió en la validación de los criterios de aceptación de las
historias de usuario definidas en el sprint. La duración de la reunión fue de 3 horas
aproximadamente.
4.2.2.7 Sprint 4
Fecha de inicio:1 de julio del 2019
Fecha de fin: 21 de julio del 2019
Planificación:
El 1 de julio del 2019 se realizó la planificación de este sprint (véase Tabla 19)con
duración alrededor de 4 horas. La duración del sprint se estimó en 3 semanas
aproximadamente. Así mismo se realizó la estimación de las tareas con el equipo
SCRUM mediante la técnica planningpoker y se comprometió al equipo scrum para su
desarrollo. Abarca todas las historias de usuario del módulo de reportes y algunas
historias de usuario del módulo de coparticipación. El avance se planeó de lunes a
viernes de 9 a 5 pm y las reuniones diarias para revisar los avances del sprint contarían
con una duración aproximada de 15 minutos en línea por Hangouts.
Tabla 19
Sprint 4 del sistema
159
demás bases de datos.
(Backend)
3 Creación de OMAR CUBA 3
microservicio reporte:
Alojamiento de código
(Git), conexión base de
datos, mapeo de tablas,
configuración de
microservicio. (Backend)
4 Crear método para OMAR CUBA 3
actualizar las tablas de
asistencia en la base de
datos del microservicio
reporte mediante eventos
usando RabbitMQ.
(Backend)
5 Crear método en el OMAR CUBA 3
microservicio asistencia
que permita actualizar las
asistencias en los reportes
mediante eventos usando
RabbitMQ. (Backend)
6 Desarrollo del API MAYCOL 5
"Generar reportes de ESPINOZA
asistencias" para alumnos
y profesores, por todos
los grupos o un grupo
determinado. (Backend)
7 Desarrollo de la GUI para MAYCOL 5
mostrar el reporte de ESPINOZA
asistencia (Frontend)
8 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
9 Realización de pruebas MAYCOL 2
en base a los criterios de ESPINOZA
aceptación. (Frontend)
HU32 Generar 1 Crear método para OMAR CUBA 3
reporte notas actualizar las tablas de
notas en la base de datos
del microservicio reporte
mediante eventos usando
RabbitMQ. (Backend)
2 Crear método en el OMAR CUBA 3
microservicio nota que
permita actualizar las
asistencias en los reportes
mediante eventos usando
160
RabbitMQ. (Backend)
161
HU17 Consultar 1 Creación del esquema, OMAR CUBA 2
anuncios tablas, constraints,
queries correspondientes
del microservicio
coparticipación.
(Backend)
2 Llenado inicial de la base OMAR CUBA 2
de datos del
microservicio
coparticipación.
(Backend)
3 Creación de OMAR CUBA 2
microservicio
coparticipación:
Alojamiento de código
(Git), conexión base de
datos, mapeo de tablas,
configuración de
microservicio. (Backend)
4 Desarrollo del API OMAR CUBA 2
"Consultar anuncios" en
el microservicio
coparticipación.
(Backend)
5 Desarrollo de API OMAR CUBA 2
“Consultar anuncios”,
que combina consulta de
anuncios con las
personas(periodo-
académico) en el servicio
composición. (Backend)
6 Desarrollo de la GUI para MAYCOL 4
consultar anuncios. ESPINOZA
(Frontend)
7 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
8 Realización de pruebas MAYCOL 2
en base a los criterios de ESPINOZA
aceptación. (Frontend)
HU18 Registrar 1 Desarrollo del API OMAR CUBA 2
anuncio "Registrar anuncio" en el
microservicio
coparticipación.
(Backend)
162
2 Desarrollo de método que OMAR CUBA 2
combina consulta de
anuncios (microservicio
coparticipación) con
datos del curso y los
profesores (microservicio
periodo-académico) en el
servicio composición.
(Backend)
3 Desarrollo de la GUI para MAYCOL 4
consultar anuncios. ESPINOZA
(Frontend)
4 Realización de pruebas OMAR CUBA 2
con programa Postman.
(Backend)
5 Realización de pruebas MAYCOL 2
en base a los criterios de ESPINOZA
aceptación. (Frontend)
(Elaboración propia)
Revisión: En la fecha 21 de julio de 2019 se dio la revisión con la dueña del producto
Clara Díaz Tinoco la cual consistió en la validación de los criterios de aceptación de las
historias de usuario definidas en el sprint. La duración de la reunión fue de 3 horas
aproximadamente.
4.2.2.8 Sprint 5
Fecha de inicio:22 de julio del 2019
Fecha de fin: 13 de agosto del 2019
Planificación:
El 22 de julio del 2019 se realizó la planificación de este sprint (véase Tabla 20)con
duración alrededor de 4 horas. La duración del sprint se estimó en 3 semanas
aproximadamente. Así mismo se realizó la estimación de las tareas con el equipo
SCRUM mediante la técnica planningpoker y se comprometió al equipo scrum para su
163
desarrollo. Abarca las historias de usuario restantes del módulo de coparticipación
(preguntas y respuestas)e historias de usuario del módulo de notas(fórmulas). El avance
se planeó de lunes a viernes de 9 a 5 pm y las reuniones diarias para revisar los avances
del sprint contarían con una duración aproximada de 15 minutos en línea por Hangouts.
Tabla 20
Sprint 5 del sistema
166
(Elaboración propia)
Revisión: En la fecha 13 de agosto de 2019 se dio la revisión con la dueña del producto
Clara Díaz Tinoco la cual consistió en la validación de los criterios de aceptación de las
historias de usuario definidas en el sprint. La duración fue de 3 horas aproximadamente.
Retrospectiva: En la fecha 13 de agosto de 2019 se dio la retrospectiva entre los
integrantes del equipo scrum. La duración fue de 3 horas. Se analizaron los siguientes
puntos:
La duración fue alrededor de 3 semanas se logró mantener el ritmo de avance
como el anterior sprint.
Hubo algunas complicaciones en el desarrollo de las fórmulas backend y
frontend que gracias a la coordinación se pudo superar.
Figura 67. Diagrama del diseño de laarquitectura del sistema.(De la Cruz, Espinoza,
& Cuba, 2019)
La presente arquitectura del sistema(véase Figura 67), está compuesto por el lado
cliente(frontend) en el cual se usará el frameworkreactnative que permite el despliegue
167
en plataformas móviles como Android e iOS, por el lado del servidor(backend) se
cuentan con los componentes no funcionales que apoyan a nuestra arquitectura de
microservicios(confit, eureka, gateway y composición) , los
microservicios(autenticación, asistencias, notas, coparticipación, encuesta, notificación,
reportes) cada uno será desarrollado con springboot y cuenta con acceso privado a su
base de datos, para agregar seguridad de acceso a servicios se hará uso de Oauth2 y por
último para gestionar los eventos(mediante mensajería) se usará RabbitMQ.(De la Cruz,
Espinoza, & Cuba, 2019)
A continuación, se detallarán cada uno de los componentes que escogimos para la
arquitectura.
En el lado cliente se encuentra la parte del software que interactúa directamente con los
usuarios en este caso es un aplicativo móvil desarrollado con el frameworkreactnative.
Este aplicativo interactúa con el lado servidor mediante el consumo de los servicios web
mediante REST y también hace uso de websockets.
4.2.3.1.1.1 ReactNative
ReactNative es un frameworkJavaScriptque permite crear aplicaciones las cuales serán
renderizadas en Android y/o IOS. Está basado en React, el cual es una librería de
Javascript de Facebook para desarrollar interfaces de usuario. Similar a React para web,
reactnative usa una mixtura de Javascript y etiquetas XML(JSX), por debajo se invoca
APIS que invocan el renderizado nativo de Java (para Android) y deObjective-c(para
IOS).(Eisenman, 2016, págs. 1-4)
De acuerdo con(Eisenman, 2016, págs. 1-4), entre sus ventajas están:
Provee de un mejor rendimiento que otros frameworks híbridas como cordova o
ionic ya que usa el renderizado de forma nativa en vez de webviews.
Para el desarrollador, al realizar los cambios no es necesario realizar un
rebuild(reconstruir) el proyecto, si no que este solo necesita refrescar ya que usa
Javascript.
Si ya se sabe programar en react para web es más fácil adaptarse.
Permite compartir e iterar más rápidamente y compartir el conocimiento más
efectivamente.
De acuerdo con(Eisenman, 2016, págs. 1-4), entre sus desventajas están:
Se introduce una nueva capa al proyecto que hace un poco más difícil la
depuración del código fuente.
168
4.2.3.1.2 Lado servidor
En el lado servidor se encuentra la lógica de negocio y acceso a los datos, la cual no es
visible para el cliente.
Aquí se encuentra la arquitectura de microservicios la que se puede clasificar en
componentes en netamente no funcionales y funcionales(incorporan la lógica de
negocio). Para los no funcionales se muestran los componentes: Eureka-Server, Config-
Server, Api Gateway y Composición. Para los funcionales se tienen los siguientes
componentes: Autenticación, Asistencia, Coparticipación, Notas, Encuestas, Periodo-
Académico y Notificaciones. A continuación, se realiza la descripción detallada de los
componentes anteriormente mencionados:
4.2.3.1.2.1.1 Eureka-Server
Este servicio usa el componente springcloud eureka que permite realizar el auto-
registro, descubrimiento dinámico y balanceo de carga.(Rajesh, 2016, págs. 232-235)
El auto-registro de los microservicios es un mecanismo que mantiene un registro de los
estados de los microservicios, de manera similar si un microservicio se da de baja, el
registro se mantiene actualizado con los sucesos que hayan ocurrido en la red de
servicios. El servidor eureka lo registra en el siguiente ping que realiza por defecto cada
30 segundos a los servicios si no responde lo quita de la lista de servicios.(Rajesh, 2016,
págs. 232-235)
El descubrimiento automático de los microservicios es otra de sus funciones, los
clientes son capaces de obtener el estado actual de cada microservicio. Este enfoque se
opone a la configuración estáticadel registro de IPS de los servicios que obligaría a que
se deba reiniciar los servicios o propagar cambios usando sólo
springcloudconfigmediante springcloud bus manualmente. Se hace una consulta(ping)a
los microservicios registrados por defecto cada 30 segundos.(Rajesh, 2016, págs. 232-
235)
El balanceo de carga se hace mediante uso de ribbon (el cual es parte springcloud que
realiza balanceo de carga y se hace usodel algoritmo round-robin para escoger al más
servicio disponible más cercano)(Rajesh, 2016, págs. 232-235)
En el siguiente gráfico(véase Figura 68) se muestra su funcionamiento.
169
Figura 68.Diagrama del funcionamiento del servidorspringcloud eureka(Rajesh, 2016,
págs. 232-235)
En la imagen (véase Figura 68), se puede apreciar el registro de las diferentes instancias
de los microservicios A: instancia 1, instancia 2, instancia 3; y se puede apreciar que
otro microservicio requiere la lista de servicios disponibles al servidor eureka. Además,
se puede apreciar que todos son clientes de eureka server.
4.2.3.1.2.1.2 Config-Server
Este servicio usa el componente springcloudconfig server el cual permite la
configuración externa en el cual los aplicativos y servicios pueden depositar, acceder y
administrar todas las propiedades de configuración en tiempo real. Se encarga de la
propagación de los cambios de configuración a todos los microservicios suscritos. Si se
desea propagar los cambios se puede hacer uso de springcloud bus(que provee de un
mecanismo para refrescar las configuraciones de múltiples instancias, lo cual se logra al
conectar las instancias de los servicios a través de un messagebroker) se puede usar
RabbitMQ para estos fines. Spring Config-Server almacena las propiedades en un
repositorio de control de versiones, tales como GIT o SVN, el repositorio puede ser
local o remoto.(Rajesh, 2016, págs. 211-223)
Como se muestra en la imagen (véase Figura 69), cada microservicio contiene un cliente
de configuración embebido el cual hace una búsqueda a un servidor central de
configuración usando un simple mecanismo declarativo, para que luego éstos los
puedan almacenar en su propio entorno de configuración.
170
Figura 69. Diagrama del funcionamiento del servicio springcloudconfig(Rajesh, 2016,
pág. 213)
171
Políticas específicas del cliente, son fáciles de manejar en un solo sitio en vez de
varios lugares.
Las transformaciones de que requiere el cliente son más difíciles ser
implementadas en los endpoints de los servicios.
Si hay agregación de data, para evitar múltiples llamadas de clientes que
restrinjan el ancho de banda de la red, el gateway debe usarse en el medio.
En la presente tesis, hacemos uso de zuul el cual es un servicio gateway que proviene de
los productos de microservicios de Netflix. También denominado servicio de proxy
reverso, éste usa el servidor de eureka para el descubrimiento de servicios y ribbon para
balancear la carga entre las instancias de los servicios. También es capaz de
enrutamiento, monitoreo, administración, flexibilidad, seguridad entre otros; además
puede cambiar el comportamiento de los servicios al sobrescribirlos en la capa de los
APIS.
4.2.3.1.2.1.4 Composición
Este servicio usa el patrón API composition, este patrón implementa una
consulta(query) al invocar a los servicios que tienen la data por medio de sus APIS y las
combina los resultados en un resultado. (Ricardson, 2018, págs. 238-245)
Api Composer tiene 2 tipos de participantes (véase Figura 71): el primero tipo es el API
Composer que implementa la consulta al realizar las consultas a los servicios
proveedores) y como segundo tipo vienen a ser los servicios proveedores (sonaquellos
servicios que proveen la información que requiere la consulta)
172
algunos casos si habrá dependencia y tendrá que ser secuencial, el objetivo es combinar
operaciones paralelas y secuenciales para obtener un mejor rendimiento. Se recomienda
usar el modelo de programación reactiva (permite la programación asíncrona y
operaciones en paralelo), en java se cuenta con CompletableFutures, rxjava observables
u otro equivalente, en la presente tesis se hizo uso CompletableFuture de java8 para la
llamada asíncrona en paralelo de las APIS de los servicios. (Ricardson, 2018, págs. 238-
245)
De acuerdo con(Ricardson, 2018, págs. 238-245), para implementar un API
Composition hay 3 opciones las cuales se detallarán a continuación:
1. Implementar API Composition en el cliente: En esta opción (véase Figura 72) el
cliente se encarga de realizar las consultas a los servicios proveedores. Es eficiente
siempre y cuando la conexión a estos servicios sea rápida, si están en una conexión
lenta acceder a ellos y cuenta con firewall externo no es práctico.
Figura 72. Diagrama de API Composer en el cliente. (Ricardson, 2018, pág. 241)
173
Figura 73. Diagrama de API Composer en el API Gateway(Ricardson, 2018, pág.
242)
Figura 74. Diagrama de API Composer como servicio aislado(Ricardson, 2018, pág.
243)
En la presente tesis, se usó la tercera opción para que sea otro servicio el que maneje la
lógica de combinar la información y no afecte al API Gateway ya que lo usamos
compartido para los otros microservicios, además que eficientemente trae la
información de los otros servicios en una sola llamada ya que se encuentran en una
conexión aceptable, quedo descartada la opción del API Composition en el cliente
debido a que la conexión no es confiable en la rapidez esta se usara en distintos lugares
en los cuales la conexión puede ser lenta.
174
Por último (Ricardson, 2018, págs. 238-245) menciona que las desventajas de usar el
patrón API Composition son:
Incremento de la sobrecarga: Se necesita recursos de cómputo y red para poder
combinar y realizar queries sobre los diferentes servicios, a diferencia de un aplicativo
monolítico que tiene una sola base de datos en el que solo una llamada es suficiente.
Riesgo de disponibilidad reducida: Como se usan n servicios en vez de solo 1 servicio
es más probable uno pueda no estar disponible, para esto se pueden usar estrategias de
cache por si esto sucediera.La otra estrategia es que el API Composition puede omitir
esa información que aún sea útil pero que no es en sí la información completa.
Riesgo de falta de consistencia transaccional: Puede ser que en el momento de
realizar la consulta un servicio tenga información de un servicio este consistente y otra
no, dado que en microservicios existe la consistencia eventual. A diferencia de un
aplicativo monolítico que tiene transacciones ACID que asegura que la data es
consistente.
4.2.3.1.2.2.1 Autenticación
Descripción:
Este microservicio contiene la información relacionada al usuario, roles y perfiles;
permite a un usuario con perfiles como (profesor, alumno, directora de escuela) la
autenticación en el sistema mediante el ingreso de su usuario y contraseña; también
permite realizar el cierre de sesión de un usuario dado.Aquí se usa Oauth2 el cual brinda
token al cliente que permitirá el acceso de los microservicios.
Base de datos:
A continuación, se muestra el diagrama de base de datos(véase Figura 75) perteneciente
al microservicio autenticación.
175
Figura 75.Diagrama de base de datos del servicio autenticación(Elaboración propia)
Servicios expuestos:
1. Iniciar sesión:
URL:{{URL_APIGATEWAY}}/aplicativos/autenticacion/oauth/token
Descripción:Permite la autenticación del usuario mediante el usuario y contraseña.
2. Cerrar sesión:
URL:{{URL_APIGATEWAY}}/aplicativos/autenticacion/logout
Descripción: Permite el cierre de sesión mediante el token.
3. Obtener información del usuario:
URL:{{URL_APIGATEWAY}}/aplicativos/autenticacion/user
Descripción:Permite obtener la información del usuario que ha iniciado sesión
mediante el token.
4.2.3.1.2.2.2 Asistencia
Descripción:
Este microservicio permite registrar/actualizar y finalizar las asistencias de las clases, en
cada clase se registran las asistencias de los alumnos.
Al registrar la clase se inicializa por defecto a todos los alumnos como
inasistencia.
176
Al actualizar la clase se guardan las modificaciones de las asistencias de
alumnos en la clase.
Al finalizar la clase se culmina el proceso de asistencias de la clase y de los
alumnos.
Además, permite realizar consultas para obtener la información de las
asistencias registradas.
Base de datos:
A continuación, se muestra el diagrama de base de datos(véaseFigura 76) perteneciente
al microservicio asistencia.
177
URL:{{URL_APIGATEWAY}}//aplicativos/asistencia-
service/api/asistencia/buscarPorIdClase?idClase={{ID_CLASE}}&traerAsistAlumnos=
{{TRAER_ASIST_ALUMNOS}}
Descripción:Permite realizar el listado de las asistencias de las clases por el id de clase
y las asistencias de alumno(opcional)
5. Obtener asistencia de alumnos por id de grupo:
URL:{{URL_APIGATEWAY}}/aplicativos/asistencia-
service/api/asistencia/buscarAsistenciaAlumnoPorIdGrupo?idGrupo={{ID_GRUPO }}
Descripción:Permite realizar el listado de las asistencias de los alumnos por el id de
grupo
6. Obtener asistencia de clases por id de grupo:
URL:{{URL_APIGATEWAY}}/aplicativos/asistencia-
service/api/asistencia/buscarAsistenciaClasePorIdGrup?idGrupo={{ID_GRUPO }}
Permite realizar el listado de las asistencias de las clases por el id de grupo
7. Obtener asistencias de alumnos por la lista de id de las clases:
URL:{{URL_APIGATEWAY}}/aplicativos/asistencia-
service/api/asistencia/buscarAsistenciaAlumnoPorClases?idListaClases={{LISTA_ID_
CLASES}}
Descripción:Permite realizar el listado de las asistencias de los alumnos por la lista de
id de las clases.
8. Obtener asistencias de clases por la lista de id de las clases:
URL:{{URL_APIGATEWAY}}/aplicativos/asistencia-
service/api/asistencia/buscarAsistenciaAlumnoPorClases?idListaClases={{LISTA_ID_
CLASES}}
Descripción:Permite realizar el listado de las asistencias de las clases por la lista de id
de las clases.
4.2.3.1.2.2.3 Encuesta
Descripción:
Este microservicio permite realizar las encuestas actualmente estas calificaciones serán
de 1 a 5 estrellas. Permite obtener la última plantilla de encuesta en estado activo con la
cual se realizarán las encuestas. Por último, permite calcular el promedio de encuestas
realizadas en base a las clases.
Base de datos:
A continuación, se muestra el diagrama de base de datos(véaseFigura 77) perteneciente
al microservicio encuesta.
178
Figura 77.Diagrama de base de datos del servicio encuesta(Elaboración propia)
Servicios expuestos:
1. Obtener plantilla de encuesta actual:
URL:{{URL_APIGATEWAY}}/encuesta-
service/api/encuesta/obtenerPlantillaEncuestaActual
Descripción:Permite obtener la actual plantilla de encuesta con la cual se realizarán las
encuestas.
2. Registrar encuesta
URL:{{URL_APIGATEWAY}}/encuesta-service/api/encuesta/registrarEncuesta
Descripción:Permite registrar la encuesta de la clase realizada por el alumno se guardan
los detalles de la encuesta: la calificación dada por el alumno y la pregunta vinculada a
ésta.
3. Obtener promedio por lista de id de las clases:
URL:{{URL_APIGATEWAY}}/encuesta-service/api/encuesta/
buscarPromedioPorClases?idListaClases={{LISTA_ID_CLASES}}
Descripción:Permite obtener la lista de encuestas de las clases con el promedio
calculado de todas las encuestas realizadas por cada clase, se envía la lista de id de las
clases.
4.2.3.1.2.2.4 Coparticipación
Descripción:
Entre las principales funciones de este microservicio son las de “registrar pregunta”, el
cual permite a los estudiantes registrar preguntas referentes a un tema en específico o en
general para que puedan ser respondidas por el docente o en todo caso por un
compañero de clase. “responder respuesta” es el caso consecuente de la acción
179
“registrar pregunta”, puede ser realizado por profesores y/o alumnos con el fin de
solventar la duda registrada en la pregunta. “Registrar anuncios (por parte de los
profesores)”, esta funcionalidad permite al profesor hacer anuncios de algunos
imprevistos o avisos que quiera comunicar.
Base de datos:
A continuación, se muestra el diagrama de base de datos(véaseFigura 78) perteneciente
al microservicio coparticipación.
Servicios expuestos:
1. Listar anuncios:
URL: {{URL_APIGATEWAY}}/coparticipacion-
service/api/coparticipacion/buscarAnunciosPor?idCurso={{ID_CURSO}}&idGrupo={
{ID_GRUPO}}
Descripción:Permite listar los anuncios dado el código del curso y el código de
grupo(opcional)
2. Registrar anuncios:
URL: {{URL_APIGATEWAY}}/coparticipacion-
service/api/coparticipacion/registrarAnuncio
Descripción:Permite registrar un anuncio del profesor que contiene un título y detalle
además se indica a que curso corresponde y opcionalmente a que grupo irá dirigido.
3. Listar preguntas:
URL: {{URL_APIGATEWAY}}/coparticipacion-
service/api/coparticipacion/buscarPreguntasPor?idCurso={{ID_CURSO}}&idGrupo={
{ID_GRUPO}}&idClase={{ID_CLASE}}
180
Descripción:Permite listar las preguntas registradas por el alumno o profesor, se puede
buscar por código de curso(obligatorio), código de grupo es opcional, código de clase es
opcional.
4. Registrar pregunta:
URL: {{URL_APIGATEWAY}}/coparticipacion-
service/api/coparticipacion/registrarPregunta
Descripción:Permite registrar una pregunta del profesor o del alumno que contiene un
detalle además se indica a que curso corresponde, opcionalmente a que grupo y/o clase
está dirigida.
5. Listar respuestas:
URL: {{URL_APIGATEWAY}}/coparticipacion-service/api/coparticipacion/
buscarRespuestasPor?idPregunta={{ID_PREGUNTA}}
Descripción:Permite listar las respuestas dado el código de la pregunta.
6. Registrar respuestas:
URL: {{URL_APIGATEWAY}}/coparticipacion-
service/api/coparticipacion/registrarRespuesta
Descripción:Permite registrar una respuesta de una pregunta ya registrada,
opcionalmente se puede vincular esta respuesta al nombre de la persona que hizo otra
respuesta.
4.2.3.1.2.2.5 Notas
Descripción:
Este microservicio permite a los docentes asignados a los grupos de un curso poder
ingresar las notas de las diferentes evaluaciones de sus alumnos como por ejemplo
examen parcial, practicas, exposiciones entre otros. A su vez permite la consulta y el
registro de fórmulas generales(fórmula promedio de todo el curso) y
específicas(fórmula especifica por cada fórmula general).
Base de datos:
A continuación, se muestra el diagrama de base de datos(véaseFigura 79) perteneciente
al microservicio notas.
181
Figura 79. Diagrama debase de datos del servicio notas(Elaboración propia)
Servicios expuestos:
4. Listar notas:
182
URL: {{URL_APIGATEWAY}}//aplicativos/nota-
service/api/nota/buscarNotasEspecificas?idGrupo={{ID_GRUPO}}&idFormulaEspecif
icaHija={{ID_FORMULA_ESPECIFICA_HIJA}}
Descripción:Permite listar las notas según el grupo y la fórmula especifica hija.Se
realiza una búsqueda de una fórmulapor grupo si existe y si no se toma por defecto la
fórmula por defecto para todos los grupos.
183
Figura 80. Diagrama debase de datos del servicio periodo-académico(Elaboración
propia)
Servicios expuestos:
1. Listar cursos por código de profesor/alumno
URL:{{URL_APIGATEWAY}} /aplicativos/periodo-academico-
service/api/curso/listar?tipoPersona={{TIPO_PERSONA}}
Descripción:Según el usuario que inicio de sesión y tipo de persona(alumno o profesor)
se listan los cursos en los que se encuentran inscritos bien sean los alumnos o los
profesores
2. Buscar curso por id
URL:{{URL_APIGATEWAY}} /aplicativos/periodo-academico-
service/api/curso/buscarPorId?id={{ID_CURSO}}
Descripción:Según el id del curso dado se busca la información detallada del curso.
3. Listar clases de alumno o profesor
URL:{{URL_APIGATEWAY}} /aplicativos/periodo-academico-
service/api/clase/buscarPor?idCurso={{ID_CURSO}}&tipoPersona={{TIPO_PERSO
NA}}
Descripción:Según el usuario que inicio de sesión y tipo de persona (alumno o
profesor) y el id del curso se muestran todas las clases en los que se encuentran inscritos
bien sean los alumnos o los profesores
4. Buscar clases de hoy
184
URL:{{URL_APIGATEWAY}}/aplicativos/periodo-academico-
service/api/clase/buscarPorFechaHoy?tipoPersona={{TIPO_PERSONA}}
Descripción:Método que permite listar las clases del presente día.
5. Buscar por id de clase
URL:{{URL_APIGATEWAY}}/aplicativos/periodo-academico-
service/api/clase/buscarPorId?id={{ID_CLASE}}
Descripción:Método que permite buscar la información de la clase por medio del id de
la clase.
6. Listar alumnos por id de grupo
URL: {{URL_APIGATEWAY}} /aplicativos/periodo-academico-
service/api/persona/buscarAlumnosPor?idGrupo={{ID_GRUPO}}
Descripción:Método que permite que según el id de grupo de un curso se pueden listar
los alumnos inscritos en éste.
4.2.3.1.2.2.7 Notificación
Descripción:
Este microservicio es útil cuando hay cambios o actualizaciones por parte de los
alumnos y profesores que es de importancia para los demás, de lo cual se resaltan las
notificaciones de las asistencias, notas, anuncios, preguntas y respuestas. Además de los
servicios rest expuestos, se hace uso de websockets para la sincronización del número
185
de notificaciones de los usuarios y la invocación internamente del servicio firebase para
dispositivos Android con el fin de enviar notificaciones cuando el aplicativo se
encuentre en background(segundo plano) o cerrado.
Base de datos:
A continuación, se muestra el diagrama de base de datos(véaseFigura 81) perteneciente
al microservicio notificación.
Servicios expuestos
1. Listar notificaciones
URL: {{URL_APIGATEWAY}}/aplicativos/notificacion-
service/notificacion/listarNotificaciones
Descripción:Método que permite realizar la consulta de todas las notificaciones por
medio del código de usuario
4.2.3.1.2.2.8 Reportes
Descripción:
Este microservicio sirve para que se pueda generar reportes y/o estadísticas y que no
necesite llamar a otros servicios es por eso por lo que cuenta con una base de datos que
es alimentada por eventos por los microservicios de asistencias, notas, encuestas y
periodo académico.
Servicios expuestos
186
1. Generar reporte de asistencia de estudiantes
URL:{{URL_APIGATEWAY}}/aplicativos/reporte-
service/api/reporte/attendance/student
Descripción:Método que permite realizar el reporte de asistencias de estudiantes
mediante el código del curso, código del grupo (se puede definir uno específico o
TODOS) y código de alumno (se puede definir uno especifico o TODOS)
187
Figura 82. Uso de los servicios en la herramienta Postman(Elaboración propia).
Bitbucket:El uso de bitbucket nos permitió alojar de forma privada el repositorio con el
controlador de versionesgit(véase Figura 83 y Figura 84) en la nube. Este repositorio
contiene el código fuente, backup de bases de datos (queries y backups) y el archivo
postman que contiene las pruebas de los servicios rest, el uso del controlador de
versiones fue bastante útil dado que se usó para comparar con versiones anteriores, para
visualizar los nuevos cambios y además ayudo a solucionar algunos inconvenientes que
se presentasen.
188
Figura 84. Código fuente del repositorio GIT en Bitbucket (Elaboración propia).
Onedrive: Nos permitióalojar toda la documentación de la tesis (véase Figura 85) como
recursos compartidos, documentos, formatos, bibliografía.
Figura 85. Uso de nube OneDrive para compartir archivos (Elaboración propia).
189
Hangouts, Skype: Nos permitieron trabajar de forma remotaen la cual realizábamos
reuniones sobre el trabajo realizado y las tareas pendientes.
STS (Spring Tool Suite): Nos permitió el desarrollo, debug, pruebas de los
microservicios.
Visual Studio Code, Atom: Nos permitieron el desarrollo, debug y pruebas del lado
frontend(reactnative)
DB Beaver CommunityEdition: Nos permitió generar el esquema de la base de datos
relacional.
ToadforMysql: Nos permitió realizar operaciones (creación, modificación,
eliminación, consultas) en las bases de datos, así como importar información de
archivos excel para realizar la carga académica como los cursos, grupos, clases,
fórmulas, distribución de fórmulas, alumnos y profesores.
MysqlWorkbench: Nos permitió realizar operaciones (creación, modificación,
eliminación, consultas) en las bases de datos, así como exportar las bases de datos en
formato sql.
4.2.3.3.1 Inicio
Acceso al sistema
Aquí el usuario puede indicar sus parámetros de acceso (id de usuario y su clave) si es
correcto dependiendo del acceso que tuviera se les mostrarán accesos a los menús como
director de escuela, profesor o alumno; caso contrario indicará que el usuario y/o clave
no son los correctos. (véaseFigura 86)
190
Figura 86. Interfaz: Acceso al sistema (Elaboración propia)
Seleccionar acceso
En el caso que tenga más de un acceso a los menús se mostrará la relación de accesos
que tiene el usuario. Puede haber accesos de director de escuela, profesor y/o alumno si
es que contase con estos. (véaseFigura 87)
Menú: Profesor
Por defecto se listan las clases que corresponden al presente día, ordenadas a travésdel
horario. Como se puede apreciar, cadaclase (enmarcada dentro de un
rectángulo)presenta su respectivavaloración de estrellas (0 no hay calificación, 1 es muy
bajo y 5 es muy alto). (véaseFigura 88)
191
Figura 88.Interfaz del profesor: Visualizar las clases de hoy (Elaboración propia)
192
nombre del docente, estado, horas de inicio y fin, valoración. En la otra, se muestra el
listado de alumnos (código, nombres completos y estado de asistencia), el cual podrá ser
filtrado por el código universitario o nombres. (véaseFigura 90)
193
Figura 91.Interfaz del profesor:Visualizar clases de hoy – Iniciar clase (Elaboración
propia)
Luego de haber registrado la hora de inicio de la clase, el docente puede registrar la
asistencia de sus alumnos. El docente escoge alguno de los siguientes estados para la
asistencia de un alumno: “Temprano”, “Tarde” y “Falta”. También se permite realizar
filtrado de alumnos ya sea por código o nombre de alumno. (véase Figura 92)
194
Figura 93.Interfaz del profesor: Visualizar clases de hoy – Registrar modificación de
asistencias de alumnos (Elaboración propia)
Para terminar la clase,el docente debeindicar la opción: “Terminar clase”. Luego de esto
la clase estará terminada y no se podrá modificar sus asistencias. (véaseFigura 94)
195
Figura 94.Interfaz del profesor: Visualizar clases de hoy – Terminar clase(Elaboración
propia)
Al hacer clic en la opción “Asistencias” del menú lateral, el sistema muestra el listado
de cursos correspondientes al docente autenticado. (véaseFigura 95)
196
Figura 96.Interfaz del profesor:Visualizar asistencias – Listar agrupaciones curriculares
(Elaboración propia)
197
Figura 97.Interfaz del profesor:Visualizar asistencias – Listarclases de una agrupación
curricular (Elaboración propia)
Al seleccionar alguna de las clases listadas anteriormente, el sistema muestra el detalle
de la clase, así como el listado de alumnos con sus respectivas asistencias a modo de
consulta. (véaseFigura 98)
198
Figura 98.Interfaz del profesor: Visualizar asistencias – Detalle de la clase (Elaboración
propia)
Al hacer clic en la opción “Calificaciones” del menú lateral, el sistema muestra el
listado de cursos correspondientes al docente autenticado similar a asistencias.
(véaseFigura 95) y se listan las agrupaciones curriculares (véase Figura 96)
Al seleccionar una agrupación curricular, el sistema muestra el detalle de las diferentes
calificaciones con las que serán evaluados los alumnos. Es decir, que variables
intervienen en el promedio específico de dicho grupo seleccionado, así como sus
respectivos pesos. Además, se muestra el listado de calificaciones(código, nombre
completo y calificación), se puede filtrar por el código o nombre del alumno.
(véaseFigura 99)
199
Figura 100.Interfaz del profesor: Visualizar calificaciones – Modificar listado de
calificaciones(Elaboración propia)
Finalmente, confirmar los cambios realizados con la opción: “Guardar”. Además, se
presenta la opción de deshacer los cambios realizados en memoria (calificaciones
modificadas sin haber hecho clic en “Guardar”). (véaseFigura 101)
200
Si se elige el submenú promedio general se muestra el listado de alumnos que se puede
filtrar por nombre o código para ver su promedio general. (véase Figura 102)
Figura 103.Interfaz del profesor: Visualizar promedio general por alumno (Elaboración
propia)
201
Para listar las preguntas y/o respuestas se listan primero los cursos, al igual que los
anteriores (véaseFigura 95), se selecciona el curso y se listan los grupos (véaseFigura
96), por último, se listan las clases (véase Figura 97) y se elige una clase. Al haber
elegido esa clase se muestra la relación de preguntas relacionadas a la clase.
(véaseFigura 104)
202
Figura 105.Interfaz del profesor: Publicar pregunta (Elaboración propia)
Luego se vuelve al listado de preguntas en la que se puede visualizar la persona que
publicó hace cuanto tiempo lo hizo e información del curso y grupo. También la opción
para agregar respuestas adicionales a la pregunta en la que pueden participar alumnos o
profesores. (véaseFigura 106)
203
Ahora se muestra que el alumno hizo una respuesta, y la directora interactúa con ella
con una respuesta. (véaseFigura 107)
204
Figura 107.Interfaz del profesor: Realizar respuesta (Elaboración propia)
Luego se muestra la pregunta registrada (véaseFigura 108)
205
grupo. Al haber elegido el grupo se muestra la relación de preguntas relacionadas.
(véaseFigura 109)
206
Figura 110.Interfaz del profesor: Publicar anuncio (Elaboración propia)
Se puede ver el anuncio publicado con su título y su respectiva descripción.
(véaseFigura 111)
207
Para consultar la fórmula del grupo se listan primero los cursos al igual que los
anteriores (véase Figura 95), se selecciona el curso y se listan los grupos (véase Figura
96) y se elige un grupo. Al haber elegido el grupo se muestra la fórmula del grupo que
puede ser personalizada o no personalizada, se puede personalizar la fórmula al agregar
nuevas variables. (véaseFigura 112)
208
Figura 113.Interfaz del profesor:Personalizar fórmula (Elaboración propia)
Luego de haber indicado la opción de ver el detalle de la fórmula personalizada se
puede indicar cada evaluación detallada con la información (nombre de evaluación,
sigla, peso). (véase Figura 114)
209
Por último, se vuelve a la interfaz anterior e indica confirmar fórmula personalizada, se
muestra un mensaje de confirmación del cambio, se reinician las notas que hayan sido
ingresadas con anterioridad. (véaseFigura 115)
210
Figura 116.Interfaz del profesor: Fórmula correctamente personalizada (Elaboración
propia)
Menúalumno
Por defecto se listan las clases que corresponden al presente día, ordenadas a través del
horario. Muy similar al GUI de los docentes, peroa diferencia, se indica el estado de las
asistencias del alumno autenticado (Clase no iniciada, Asistió, Tardanza, Inasistencia).
(véaseFigura 117)
211
Figura 117.Interfaz del alumno: Visualizar las clases de hoy (Elaboración propia)
Al deslizar de izquierda a derecha, se puede visualizar un menú lateral, donde se
encuentran las opciones disponibles para el docente (Clases del presente día, control de
asistencia, control de calificaciones, preguntas y respuestas, etc.). (véaseFigura 118)
212
Luego de seleccionar una clase en específico, el sistema muestrados secciones; en una
de ellas, se muestra el detalle de la clase, tales como, nombre del docente, estado, horas
de inicio y fin, valoración, además se añade el estado de la asistencia del propio alumno
autenticado. En la otra sección, siempre y cuando la clase al menos haya comenzado, se
muestra la encuesta con un total de 10 preguntas cada una de ellas en un rango de 1 a 5
estrellas. (véaseFigura 119)
213
Figura 120.Interfaz del alumno:Encuesta realizada (Elaboración propia)
Al hacer clic en la opción “Asistencias” del menú lateral, el sistema muestra el listado
de cursos correspondientes al alumno autenticado. (véaseFigura 121)
214
Figura 122.Interfaz del alumno: Visualizar asistencias – Listar agrupaciones
curriculares (Elaboración propia)
215
espacio, pero se puede deslizar y ver información detallada de la asistencia como
(Promedio de calificación, nombre de tema, detalle de tema, profesor asignado, estado
de la clase, asistencia del alumno, hora de inicio de la clase y hora de fin de la clase)
(véaseFigura 124)
216
Figura 125.Interfaz del alumno:Visualizar calificaciones – Listado de calificaciones
(Elaboración propia)
En el caso de las preguntas y respuestas se realiza de la misma forma que la hace el
profesor. Para listar preguntas (véaseFigura 104), para publicar pregunta (véaseFigura
105), para ver la pregunta publicada (véaseFigura 106), para realizar la respuesta
(véaseFigura 107), para ver la respuesta realizada (véaseFigura 108).
Para el caso de los anuncios el alumno no tiene permitido realizar anuncios, pero si
consultarlos(véaseFigura 126).
217
Figura 126.Interfaz del alumno: - Visualizar anuncios (Elaboración propia)
La consulta de notificaciones se puede realizar para cualquier usuario en la opción de
campana en la cual al presionarla se listan todas las notificaciones. (véaseFigura 127)
218
4.2.3.3.4 Módulo director(a) de escuela
219
Figura 129. Interfaz dedirector(a) de escuela: Visualizar estadísticas de asistencias
(Elaboración propia)
En esta interfaz se puede apreciar las estadísticas de las notas en forma de gráfica
circular (las subdivisiones están comprendidas entre el promedio de notas obtenidas
como 0-5,6-10,11-15, 16-20), se puede filtrar por curso, grupo y alumnosen ese orden.
(véaseFigura 130)
220
Figura 130. Interfaz dedirector(a) de escuela - Visualizar estadísticas de calificaciones
(Elaboración propia)
En esta interfaz se puede apreciar las estadísticas de las encuestas en base a las
preguntas en la que se puede observar un promedio general, y un promedio por cada
pregunta de la encuesta, además se puede filtrar por curso, grupo y profesor en ese
orden. (véaseFigura 131)
221
Figura 131. Interfaz dedirector(a) de escuela:Visualizar estadísticas de encuestas
(Elaboración propia)
222
5 CONCLUSIONES
Este sistema propuesto sobre el control académico cumplió con los objetivos
planteados inicialmente en base al problema definido relacionado a la EP
Obstetricia UNMSM, éste mismo fue aprobado por la dirección de escuela
(véase Anexo 2), que abarcan los siguientes puntos:
o Permite el control de asistencias de clases delos profesores.
o Permite el control de asistencias de clases de los alumnos.
o Brinda la medición del desempeño del profesor en base a encuestas
realizadas de cada clase por los alumnos.
o Permite el control de notas de los alumnos.
o Brinda estadísticas e indicadores a la dirección de escuela sobre
asistencias, notas y encuestas.
o Proporciona un medio interactivo que facilite la comunicación entre
alumnos y profesores que se consiguió mediante los anuncios, las
preguntas y respuestas.
o Brinda notificaciones a los usuarios en tiempo real.
o La información puede estar disponible todo el día para todos.
o La información se muestra de forma centralizada y ordenada mediante el
acceso al sistema.
o El tiempo de búsqueda de la información es menor al que se hacía
anteriormente debido a que ésta se encuentra accesible con mayor
facilidad desde cualquier smartphone en cualquier lugar.
El uso de la tecnología reactnative permite mayor versatilidad que enfocarse
solo a un tipo de aplicativo móvil, ya que puede crear aplicativos para Android
como IOS a la vez y así poder abarcar una mayor cantidad de usuarios.
El tipo de arquitectura es bastante robusto, es flexible, permite el uso de
componentes independientes, pero también conlleva otros desafíos como la de
manejar información compuesta de varios servicios, pruebas integrales y
despliegue.
Es importante mencionar que el equipo responsable del desarrollo de este tipo de
aplicativos trabaje de forma coordinada y que el equipo conozca los principios
que rigen esta arquitectura.
Trabajos futuros
Hacer que el sistema abarque todos los cursos del periodo académicoactual en la
EP de Obstetricia de la UNMSM.
Haceral sistema disponible para otras facultades de la UNMSM u otras
universidades.
Agregar al sistema el desarrollo web del aplicativo en el lado frontend (lado
cliente).
223
6 BIBLIOGRAFÍA
Abernethy, M. A., & Chua, W. F. (1996). A Field Study of Control System "Redesign": The
impact of institutional Processes on Strategic Choice. Contemporary Accounting
Research, 13(2), 569-606. doi:https://doi.org/10.1111/j.1911-3846.1996.tb00515.x
Association for Computing Machinery. (2019). The ACM Computing Classification System (CCS).
Recuperado el 6 de Junio de 2019, de Association for Computing Machinery:
https://dl.acm.org/ccs/ccs_flat.cfm
Berrospi, R. A., & Pilar, J. M. (2013). Implementación de un sistema web para optimizar la
gestión académica en la I.E. "Villa corazón de Jesús" del distrito San Juan de Lurigancho
(Tesis de pregrado). Universidad de Ciencias y Humanidades, Facultad de Ciencias e
Ingeniería, Escuela Profesional de Ingeniería de Sistemas e Informática, Lima.
Beuren, I. M., & Teixeira, S. A. (2014). Evaluation of management control systems in a higher
education institution with the performance managemente and control. Scielo.
doi:http://dx.doi.org/10.4301/S1807-17752014000100010
Branstein, M., & Branstein, N. (2017). The NativeScript Book building mobile apps with skills
you already have.
Brito, H., Gómez, A., Santos, A., & Bernardino, J. (2018). JavaScript in mobile applications:
React native vs ionic vs NativeScript vs native development. IEEE. 2018 13th Iberian
Conference on Information Systems and Technologies (CISTI), 1-6. Obtenido de
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8399283&isnumber=839
8632
224
Cerny, T., Donahoo, M., & Pechanec, J. (2017). Disambiguation and Comparison of SOA,
Microservices and Self-Contained Systems. RACS '17 Proceedings of the International
Conference on Research in Adaptive and Convergent Systems, 228-235.
doi:10.1145/3129676.3129682
Chacón, L. (2016). Diseño e implementación de una app sobre desarrollo sostenible con back-
end de arquitectura basada en microservices y de una react native front-end app (Tesis
de Pregrado). Universitat Politècnica de Catalunya, Barcelona. Obtenido de
http://hdl.handle.net/2117/97021
Christoph, J., Rösch, D., & Schuster, T. (2018). Cross-Platform Development Suitability of
Current Mobile Application Frameworks. The Eighth International Conference on
Advanced Collaborative Networks, Systems and Applications, 13-20. Obtenido de
https://www.thinkmind.org/index.php?view=article&articleid=colla_2018_2_10_5001
7
Delgadillo, R., & Fermín, A. (2018). Acerca de computación y sus líneas de investigación.
Revista Peruana de Computación y Sistemas 2018, 3-8.
doi:https://doi.org/10.15381/rpcs.v1i1.14852
Eisenman, B. (2016). Learning React Native (First Edition). (M. Foley, Ed.) United States of
America: O'Reilly Media Inc.
Erl, T. (2019). SOA: Principles of Service Design.(P. Hall, Ed.) Recuperado el 23 de junio de 2019,
de Arcitura: https://patterns.arcitura.com/wp-
content/uploads/2019/03/SOA_Principles_Poster.pdf
Ferreira, A., & Otley, D. (2006). The design and use of performance management systems: an
extended framework for analysis. Management Accounting Research, 20(4), 263-282.
225
Flutter Official Documentation. (2018). Obtenido de https://flutter.io/
Fowler, M., & Lewis, J. (s.f.). Microservices Resource Guide. Recuperado el 09 de Junio de 2016,
de Martin Fowler: https://martinfowler.com/microservices/
Ganchoso, J., & Vera, G. (2015). Sistema Web de Gestión Académica en el Centro de Idiomas de
la ESPAM MFL (Tesis de Pregrado). Calceta, Ecuador: ESPAMMFL. Obtenido de
http://repositorio.espam.edu.ec/handle/42000/52
Horngren, C. T., Datar, S. M., & Foster, G. (2000). Contabilidad de costos. Rio de Janeiro: LTC.
IEEE. (2019). 2019 IEEE Taxonomy - Version 1.0. Recuperado el 18 de Junio de 2019, de IEEE:
https://www.ieee.org/content/dam/ieee-org/ieee/web/org/pubs/ieee-taxonomy.pdf
INEI. (2015). Encuesta Nacional a Egresados Universitarios y Universidades 2014. Lima.
Obtenido de
https://www.inei.gob.pe/media/MenuRecursivo/publicaciones_digitales/Est/Lib1298/
Libro.pdf
Kalske, M., Mäkitalo, N., & Mikkonen, T. (2018). Challenges When Moving from Monolith to
Microservice Architecture. En I. Garrigos, & M. Wimmer, Current Trends in Web
Engineering (págs. 32-47). Springer. doi:https://doi.org/10.1007/978-3-319-74433-9_3
Koontz, H., Weihrich, H., & Cannice, M. (2012). Sistema y Proceso de Control. En
Administracion una perspectiva Global y Empresarial 14.ª ed. (págs. 496-497). McGraw
Hill.
Krafzig, D., Banke, K., & Slama, D. (2004). Enterprise SOA: Service-oriented Architecture Best
Practices.Prentice Hall.
Kuz, A., Falco, M., & Giandini, R. (2016). Los TICs como gestoras de cambio en las realidades
educativas universitarias. Recuperado el 2019 de Junio de 19, de
http://extension.unicen.edu.ar/jem/subir/uploads/1230_2016.doc
226
Leler, W. (2017). Hackernoon. Obtenido de What's Revolutionary about Flutter:
https://hackernoon.com/whats-revolutionary-about-flutter-946915b09514
Pardo, P. A., Triana, S., & Forero, N. G. (2014). UNA APROXIMACIÓN HOLÍSTICA A LAS
METODOLOGÍAS ÁGILES DESDE LA PROGRAMACIÓN EXTREMA. Revista Ingeniero Libre
- Edición Nro. 13, 36-45. Obtenido de
http://www.unilibre.edu.co/revistaingeniolibre/revista-13/r13a.pdf
Pertcu, D., & Iordan, V. (2009). Understanding Service-Oriented Architectures in the classroom:
From Web Services to Grid Services. En G. Papadopoulos, G. Wojtkowski, W.
Wojtkowski, S. Wrycza, & J. Zupancic, Information Systems Development: Towards a
Service Provision Society (págs. 831-838). Boston: Springer Science & Business Media.
doi:https://doi.org/10.1007/b137171_87
Porras, E. E. (2019). Metodología Ágil Iconix en la calidad del producto de software (Tesis de
postgrado).Lima. doi:http://repositorio.unfv.edu.pe/handle/UNFV/2956
Quacquarelli Symonds. (2013). QS University Rankings: the top universities latin america
ranking 2014. Recuperado el 6 de Junio de 2019, de
https://www.topuniversities.com/university-rankings/latin-american-university-
rankings/2014
Quacquarelli Symonds. (2015). The top 300 Universities in Latin America 2016. Recuperado el 6
de Junio de 2019, de QS University Rankings: :
https://www.topuniversities.com/university-rankings/latin-american-university-
rankings/2016
227
Quacquarelli Symonds. (2017). Top Ranking Latin America University. Recuperado el 24 de
junio de 2019, de Quacquarelli Symonds: https://www.topuniversities.com/university-
rankings/latin-american-university-rankings/2018
Quacquarelli Symonds. (2019). Top Ranking Latin Universities 2020. Recuperado el 17 de Junio
de 2019, de Quacquarelli Symonds: https://www.topuniversities.com/university-
rankings/latin-american-university-rankings/2020
Quacquarelli Symonds. (2020). Top Ranking Latin Universities 2021. Obtenido de Quacquarelli
Symonds: https://www.topuniversities.com/university-rankings/latin-american-
university-rankings/2021
Real Academia Española. (2001). Diccionario de la lengua española (23.ª ed.). Recuperado el 9
de Julio de 2016, de
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=control
Rinaldi, B. (2016). Making sense of the mobile development ecosystem. Obtenido de Mobile
Business Insights: https://mobilebusinessinsights.com/2016/05/making-sense-of-the-
mobile-development-ecosystem-part-1-the-mobile-web/
228
Nacional Mayor de San Marcos. Obtenido de
http://cybertesis.unmsm.edu.pe/handle/cybertesis/3981
Torres, M., & Paz, K. (2006). Tamaño de una muestra para una investigación de mercado.
Boletin Electrónico vol 2 (2006), 1-13.
Yanada, G., Rivera, M., & Castro, J. (2012). Educación Superior en el Perú: Retos para el
Aseguramiento de la Calidad. Perú: SINEACE. Obtenido de
http://repositorio.minedu.gob.pe/handle/123456789/937
229
ANEXOS
230
Figura 133.Segunda parte del formato de la encuesta (Elaboración propia)
La encuesta se realizó antes del inicio de las clases del presente año 2020, es por ello
que los alumnos que cursaban el año académico actual aún no tenían experiencia en este
año académico.
La encuesta fue inicialmente orientada para todos los alumnos del 1.er al 5.º año
académico y alumnos egresados,pero luego se realizaron filtrosde las
encuestasrealizadas para delimitar mejor la población que se tomará en cuenta:
Se tomaron en cuenta las encuestas realizadas por los alumnos de obstetricia que
cursan actualmente del 3.er al 5.º año académico y a los egresados menores a un
año de antigüedad debido a que cuentan con la experiencia más reciente y
conocen a cabalidad las funciones, controles académicos y administrativos de la
EPO.
No se tomaron en cuenta encuestas realizadas por alumnos que cursaron el 1.er
año académico dado que ellos son ingresantes del presente año y llevarán en
Estudios Generales no en la EPO.
No se tomaron en cuenta las encuestas realizadas por alumnos que cursan el 2.º
año académico porque ellos en su mayoría llevaron el 1.er año académico en
Estudios Generales (EEGG) no en la EPO,dado ese filtro no se tomaronen
cuenta una minoría de encuestas realizadas de alumnos que repitieron y siguen
cursando el 2.º año académico.
231
Por último, no se tomaron en cuenta a encuestas realizadas por los alumnos
egresados con más de un año de antigüedad debido a que su experiencia no es la
más reciente.
El tamaño de la población que se consideró fuede 364 alumnos está distribuido de la
siguiente forma:
93 alumnos de la base 18.
94 alumnos de la base 17.
114 internos.
63 egresados con menos de 1 año.
Para calcular la cantidad de las encuestas realizadas, nos apoyaremos en la pregunta nro.
3: ¿en qué año se encuentra cursando en la universidad o indicar si es egresado?Los
resultados se muestran a continuación (véaseTabla 21).
Tabla 21
Distribución de encuestas realizadas por los alumnos
Figura 134.Fórmula del cálculo del tamaño de la muestra de población fija (Torres &
Paz, 2006)
232
Los parámetros que se mencionan (véase Figura 134) son para la presente tesis tienen
los siguientes valores:
Las variables p (probabilidad de éxito) y q (probabilidad de fracaso) por defecto
se toman como 0.5 (50% para cada una) de acuerdo a (Torres & Paz, 2006) ya
que no se cuenta con estudios anteriores.
Se usa el 95% de nivel de confianza (variable z =1.96 según (Torres & Paz,
2006)).
Se usa el 5% de margen de error (variable d).
Y un tamaño de población fija de 364 estudiantes (variable N).
El cálculo de la fórmula para el cálculo del tamaño muestral de una población fija
(véase Figura 134) con los parámetros mencionados anteriormente dan un tamaño
requerido de 188 estudiantes (variable n), por lo cual el tamaño muestral que obtuvimos
de 219 estudiantes del presente trabajo cumple de sobra con esa cantidad y de esta
manera se demuestra que la encuesta realizada tiene una muestra probabilística que
tiene buena representatividad de la población.
A continuación, se muestra los resultados detallados de la encuesta por cada pregunta,
se obvia la pregunta del código de alumno ya que solo fue referencial y la pregunta
(véaseTabla 21) sobre qué año cursan debido aque ya se mencionó.
Pregunta:¿Qué tan lejos vive de su centro de estudios(campus universitario) y lugares
relacionados como hospitales?Donde el indicador 1 es “muy cerca” y 5 es “muy lejos”.
Acontinuación,se muestran los resultados (véase Tabla 22).
Tabla 22
Resultados de la pregunta: ¿Qué tan lejos vive de su centro de estudios (campus
universitario) y lugares relacionados como hospitales?
234
Tabla 26
Resultados de la pregunta: ¿Considera que (hay/hubo) retrasos en el tiempo en el que
te enterabas de tus notas?
235
Pregunta:¿Demora/Demoraba mucho resolver las dudas sobre el curso? Por ejemplo:
se espera a que haya (una clase o a un delegado o disponibilidad del profesor) para
hacer preguntas o en cualquier momento y/o lugar se puede realizar.Donde 1 es “muy
poco” y 5 es “bastante”.A continuación, se muestran los resultados (véase Tabla 29).
Tabla 29
Resultados de la pregunta: ¿Demora/Demoraba mucho resolver las dudas sobre el
curso?
237
o Brinda manejo de fórmulas de cálculo de notas de los grupos de los cursos.
o Brinda medición de desempeño de profesores mediante encuestas por clase.
o Brinda visualización de estadísticas de asistencias, notas y encuestas.
o Proporciona un medio interactivo mediante los anuncios, preguntas y respuestas.
o Permite visualizar las notificaciones en tiempo real.
o La información se muestra disponible, centralizada y en línea la cual es accesible
mediante el aplicativo.
o El tiempo de búsqueda de la información es menor a comparación de antes.
238