Post on 16-Oct-2021
APLICACIÓN PARA DISPOSITIVOS MÓVILES CON SISTEMA OPERATIVO ANDROID PARA EL APRENDIZAJE DE CONCEPTOS BÁSICOS DE LÓGICA DE PROGRAMACIÓN
ESTUDIANTES: LOUIS STEVEN HERNÁNDEZ SÁNCHEZ - 20131078022 MARTÍN LEONARDO LOZADA CORTÉS - 20102078110
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA
TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS BOGOTÁ D.C
2017
APLICACIÓN PARA DISPOSITIVOS MÓVILES CON SISTEMA OPERATIVO ANDROID PARA EL APRENDIZAJE DE CONCEPTOS BÁSICOS DE LÓGICA DE PROGRAMACIÓN
ESTUDIANTES: LOUIS STEVEN HERNÁNDEZ SÁNCHEZ - 20131078022 MARTÍN LEONARDO LOZADA CORTÉS - 20102078110
TRABAJO DE GRADO PARA OPTAR POR EL TÍTULO DE TECNÓLOGO EN SISTEMATIZACIÓN DE DATOS
TUTOR(A): ING. ROCÍO RODRÍGUEZ GUERRERO
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA
TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS BOGOTÁ D.C
2017
Nota de Aceptación
______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________
_______________________ Ing. Rocío Rodríguez Guerrero
Firma de la Tutora
_______________________ Ing. Sonia Alexandra Pinzón Núñez
Firma de la Jurado
Bogotá D. C, 20 Septiembre de 2017
“Dedicado este logro a mi madre por su
comprensión y apoyo incondicional, ya que de
seguro nada de esto hubiera sido posible sin su
ayuda; A mi padre que siempre se preocupó por
yo fuera bien alimentado a la Universidad; A mis
profesores especialmente algunos del área de
programación aunque tuvimos nuestras
diferencias siempre estuvieron dispuestos a
aclarar mis dudas y confiaron en mí, aun cuando
yo ni siquiera daba nada por mí mismo; A mis
compañeros, en especial a Louis Steven que a
pesar de los altos y bajos nunca perdió la fe”.
Martín Leonardo Lozada Cortés.
“Dedicado este logro a mis padres por todo su
amor, sus regaños y por nunca darse por vencidos
conmigo; a mis hermanos, familiares, profesores y
amigos por su apoyo incondicional. Por último,
pero probablemente el más importante, a Dios
quien siempre me guió y me dio todas las
competencias necesarias para poder conseguir
todo aquello que alguna vez anhelado”.
Louis Steven Hernández Sánchez.
AGRADECIMIENTOS
Agradecemos a todas las personas quienes de una u otra forma contribuyeron en el desarrollo de este
proyecto, familiares, hermanos, amigos, compañeros y profesores.
Agradecemos a la Universidad Distrital Francisco José de Caldas por todo el conocimiento,
experiencias y buenos tratos que siempre nos han brindado.
Agradecemos también a todos los estudiantes de primeros semestres de la carrera de Tecnología en
sistematización de datos que participaron en las encuestas y en las pruebas de la aplicación ya que
nos fueron de mucha ayuda y contribuyeron en la elaboración y perfeccionamiento del presente
proyecto.
Agradecemos a la Ingeniera Rocío Rodríguez Guerrero por su acompañamiento y asesoría durante en
el desarrollo de este proyecto como nuestra tutora.
TABLA DE CONTENIDO
RESUMEN 12
ABSTRACT 13
INTRODUCCIÓN 14
1. PLANEACIÓN 15
1.1. TÍTULO 15
1.2. TEMA 15
1.3. PLANTEAMIENTO DEL PROBLEMA 15
1.3.1. Descripción 15
1.3.2. Formulación del problema 16
1.4. ALCANCES Y LIMITACIONES 16
1.4.1. Alcances 16
1.4.2. Limitaciones 17
1.4.2.1. Geográfica 17
1.4.2.2. Técnica 17
1.4.2.3. Temático 17
1.4.2.4. Temporal 17
1.5. OBJETIVOS 18
1.5.1. Objetivo general 18
1.5.2. Objetivo Específicos 18
1.6. JUSTIFICACIÓN 18
1.7. MARCO DE REFERENCIA 19
1.7.1. Marco Histórico 19
1.7.1.1. Codecademy 19
1.7.1.2. Programming Hub 19
1.7.1.3. Codecombat 20
1.7.1.4. Programación fácil 20
1.7.3.4. Comparación entre aplicaciones. 21
1.7.2. Marco teórico 22
1.7.2.1. Enseñanza 22
1.7.2.2. Pedagogía 22
1.7.2.3. Modelo pedagógico constructivista 22
1.7.2.4. Software. 23
1.7.2.5. Lógica De programación 23
1.7.2.6. Software educativo 23
1.7.2.7. La tecnología en la educación 24
1.7.3. Marco conceptual 25
1.7.3.1. Aplicación Móvil 25
1.7.3.2. Sistemas operativos móviles 25
1.7.3.2.1. iOS 25
1.7.3.2.2. WindowsPhone 25
1.7.3.2.3. UbuntuTouch 26
1.7.3.2.4. WebOS 26
1.7.3.2.5. BlackBerry OS 26
1.7.3.2.6. Android 27
1.7.3.3. Java 28
1.7.3.4. XML 29
1.7.3.5. JDK 29
1.7.3.6. Java SDK manager 29
1.7.3.7. Android Studio 30
1.7.3.8. SQLite 31
1.7.3.9. El patrón Modelo Vista Controlador (MVC) 31
1.7.4. Marco Metodológico 32
1.8. FACTIBILIDAD 35
1.8.1. Factibilidad técnica 35
1.8.2. Factibilidad legal 35
1.8.3. Factibilidad operativa 36
1.8.4. Factibilidad económica 37
1.9. CRONOGRAMA DE ACTIVIDADES 37
1.9.1 Fase de inicio 38
1.9.2 Fase de elaboración 41
1.9.3 Fase de Construcción 44
1.9.4 Fase de Transición 47
2. MODELADO DEL NEGOCIO 49
2.1. IDENTIFICACIÓN Y DEFINICIÓN DE LOS MÓDULOS DEL SISTEMA 49
2.2. DIAGRAMA DE PROCESOS 50
2.2.1. Subproceso de registro 50
2.2.2. Subproceso de Ingreso de sesión 51
2.2.3. Subproceso de módulo de Educación 52
2.2.4. Subproceso de Seguimiento de Avances 53
2.3. MODELO DEL DOMINIO 54
2.4. GLOSARIO DE TÉRMINOS 57
3. REQUERIMIENTOS 58
3.1. DEFINICIÓN DE REQUERIMIENTOS FUNCIONALES 58
3.2. DEFINICIÓN DE REQUERIMIENTOS NO FUNCIONALES 59
3.3. DEFINICIÓN DE ACTORES 59
3.4. LISTA PRELIMINAR DE CASOS DE USO POR ACTOR 60
3.5. MODELO DE CASOS DE CASOS DE USO 61
3.5.1. CASO DE USO ESTUDIANTE 61
3.6. DOCUMENTACIÓN DE CASOS DE USO 62
4. ANÁLISIS 67
4.1. DIAGRAMAS DE SECUENCIA 67
4.2. DIAGRAMA DE ACTIVIDAD 70
4.3. DIAGRAMA DE ESTADO 73
5. DISEÑO 76
5.1 LISTA PRELIMINAR DE CLASES 76
5.2. DIAGRAMA DE CLASES 77
5.3. MODELO DE INTERFAZ 77
6. IMPLEMENTACIÓN 78
6.1 SISTEMA DE PUNTUACIÓN 78
6.1.1 Sistema de puntuación de los ejercicios 78
6.1.2 Sistema de puntuación las evaluaciones 78
6.1.3 Puntaje General 78
6.2 MODELO PEDAGÓGICO 79
6.3. DIAGRAMA DE PAQUETES 80
6.4. DIAGRAMA DE DESPLIEGUE 81
6.5. DIAGRAMA DE COMPONENTES 82
7. PRUEBAS 84
7.1. PRUEBAS DE INTEGRACIÓN 84
7.2. PRUEBAS DE VALIDACIÓN DE APLICACIÓN 85
8. CONCLUSIONES 96
9. RECOMENDACIONES 97
LISTA DE TABLAS
Tabla 1: Comparación entre aplicaciones 20
Tabla 2: Fases de la metodología RUP. 33
Tabla 3: Costo Recursos Técnicos Requeridos. 34
Tabla 4: Costo Operativos 35
Tabla 5: Costo total del proyecto. 36
Tabla 6: Glosario de términos. 47
Tabla 7: Definición de requerimientos funcionales. 48
Tabla 8: Definición de requerimientos no funcionales. 49
Tabla 9: Definición de Actores. 49
Tabla 10: Descripción Caso de uso 1: Registro de Datos nuevo usuario. 52
Tabla 11: Descripción Caso de uso 2: Iniciar sesión 53
Tabla 12: Descripción Caso de uso 3: Consultar Datos Estudiante. 54
Tabla 13: Descripción Caso de uso 4: Modificar Datos Estudiante. 55
Tabla 14: Descripción Caso de uso 5: Cerrar sesión. 56
Tabla 15: Lista Preliminar de Clases 66
Tabla 16|: Pruebas de integración 73
LISTA DE FIGURAS Pág.
Ilustración 1: Cronograma De actividades general. 36
Ilustración 2: Fase de inicio 37
Ilustración 3: Cronograma fase de Elaboración. 38
Ilustración 4: Cronograma Fase de Construcción. 39
Ilustración 5: Cronograma Fase de Transición 40
Ilustración 6: Diagrama de Subproceso de Registro de datos 42
Ilustración 7: Diagrama de Subproceso de inicio de sesión. 43
Ilustración 8: Diagrama de subproceso de Módulo de Educación 44
Ilustración 9: Diagrama de Subproceso de Seguimiento de avances. 45
Ilustración 10: Modelado del Dominio. 46
Ilustración 11: Caso de uso Estudiante. 51
Ilustración 12: Modelado de Secuencia: Registrar Usuario. 57
Ilustración 13: Modelado de Secuencia: Iniciar sesión. 58
Ilustración 14: Modelado de Secuencia: Modificar Datos Estudiante. 58
Ilustración 15: Modelado de Secuencia: Realizar Evaluación. 59
Ilustración 16: Modelado de Secuencia: Seleccionar Tema Ejemplo. 59
Ilustración 17: Modelado de Actividad: Registrar Usuario. 60
Ilustración 18: Modelado de Actividad: Iniciar sesión 61
Ilustración 19: Modelado de Actividad: Modificar Datos Estudiante. 61
Ilustración 20: Modelado de Actividad: Realizar Evaluación. 62
Ilustración 21: Modelado de Actividad: Seleccionar Tema Ejemplo. 62
Ilustración 22: Modelado de Estado: Registrar Usuario. 63
Ilustración 23: Modelado de Estado: Iniciar sesión 64
Ilustración 24: Modelado de Estado: Modificar Datos Estudiante. 64
Ilustración 25: Modelado de Estado: Realizar Evaluación. 65
Ilustración 26: Modelado de Estado: Seleccionar Tema Ejemplo. 65
Ilustración 27: Modelo pedagógico Ejercicio 69
Ilustración 28: Modelo pedagógico Evaluación 69
Ilustración 29: Diagrama de paquetes 70
Ilustración 30: Diagrama de despliegue 71
Ilustración 31: Diagrama de componentes 72
RESUMEN
El proyecto “Aplicación para dispositivos móviles con sistema operativo Android para el
aprendizaje de conceptos básicos de lógica de programación”, es una aplicación enfocada a
dispositivos móviles con S.O. Android desarrollada con la principal motivación de ser una
herramienta de ayuda para el proceso de aprendizaje de los conceptos básicos de la lógica
de programación tales como: variables, constantes, tipos de datos, operadores de datos,
estructuras de control, estructuras repetitivas y funciones.
Tras el levantamiento de la información, se establecieron los mecanismos para permitir al
estudiante visualizar, afianzar y medir sus conocimientos en la lógica de programación de una
manera didáctica mediante el modelo educativo constructivista y por medio de cuatro módulos:
módulo de usuario, módulo de registro, módulo de enseñanza y módulo de evaluación.
Para la realización de este proyecto se utilizó el entorno de desarrollo Android Studio 2.3.3
empleando el lenguaje de programación Java y el metalenguaje de marcas extensibles XML;
así mismo, se empleó el motor de base de datos SQLite el cual cumple la función de alojar la
información básica del estudiante, los temas o conceptos que se abordan en la aplicación, su
progresión en estos temas, las notas de los ejercicios y las evaluaciones realizadas.
Palabras Claves: Lógica de programación, Conceptos básicos, Java, Sistema Operativo
Android, variables, constantes, tipos de datos, operadores de datos, estructuras de control,
estructuras repetitivas.
ABSTRACT
The project "Application for mobile devices with Android operating system for learning basic
concepts of programming logic" is an application focused on mobile devices with S.O. Android
developed with the main motivation to be a tool to help the learning process of the basic
concepts of programming logic such as variables, constants, data types, data operators,
control structures, repetitive structures and functions.
After the information was collected, mechanisms were established to allow students to
visualize, consolidate and measure their knowledge in the programming logic in a didactic way
through the constructive educational model and the means of four modules: user module,
registration module, teaching module and evaluation module.
For the realization of this project we used the development environment Android Studio 2.3.3
using the programming language Java and the meta-language of extensible marks XML. Also,
the SQLite database engine was used, which fulfills the function of camping in the basic
information of the student, the topics concepts that are approached in the device, its
progression in these subjects, the notes of the exercises and the Evaluations carried out
Keywords: Programming logic, Basic concepts, Java, Android operating system, variables,
constants, data types, data operators, control structures, repetitive structures.
INTRODUCCIÓN
La enseñanza de los conceptos o fundamentos básicos de la lógica de programación, son un
aspecto esencial en la formación de tecnólogos e ingenierías afines al desarrollo de software,
dado que estos saberes, representan en sí mismos una de las bases primordiales en las
cuales se cimientan las competencias que los estudiantes desarrollaran a lo largo de la
carrera.
Este proyecto tiene como finalidad el apoyar los procesos de aprendizaje de los conceptos
más elementales de la lógica de programación teniendo en cuenta las dificultades que los
estudiantes de primeros semestres poseen a la hora de intentar adquirir estos conocimientos,
aprovechando diferentes ventajas y facilidades que ofrecen las tecnologías móviles.
Las actividades y evaluaciones que se desarrollarán en la aplicación van orientadas a trabajar
a lógica y los conocimientos que los estudiantes poseen sobre los temas fundamentales de la
lógica de programación tales como: variables y constantes, tipos de datos, operaciones
aritméticas, estructuras de control, estructuras de control iterativas y funciones.
La aplicación, llamada Nozomu se desarrolló bajo los parámetros o lineamientos de la
arquitectura Modelo Vista Controlador (MVC), la metodología Proceso Unificado Racional
(RUP), así como la estructura de Bases Datos Relacionales (BDR).
La arquitectura Modelo Vista Controlador (MVC) permite identificar, organizar y diferenciar
cada una de las partes más importantes de los componentes de un software, como lo son la
parte gráfica o visual de esta, la parte de almacenamiento y tratamiento de los datos; y por
último la programación de esta.
Por otro lado, la metodología RUP también conocida como Proceso Unificado Racional
proporciona diferentes técnicas o maneras de analizar y describir cómo aplicar enfoques para
el desarrollo del software, esta es una metodología provee un enfoque disciplinado para la
asignación de tareas y responsabilidades. Su principal objetivo es asegurar la producción de
software de alta calidad que satisfaga las necesidades de sus usuarios finales dentro de un
presupuesto y tiempo predecibles.
Por último, estructura de Bases Datos Relacionales (BDR) facilita el almacenamiento de los
datos de los usuarios y su avance a través de las lecciones a través de tablas las cuales se
entrelazan entre sí mediante relaciones o llaves foráneas y principales.
1. PLANEACIÓN
1.1. TÍTULO
Aplicación para dispositivos móviles con sistema operativo Android para el aprendizaje de
conceptos básicos de lógica de programación.
1.2. TEMA
Proyecto tecnológico enfocado a la enseñanza virtual de los conceptos básicos de la lógica
de programación, con un desarrollo enfocado a dispositivos móviles y conectado a una base
de datos.
1.3. PLANTEAMIENTO DEL PROBLEMA
1.3.1. Descripción
La programación es el proceso a través del cual un programa o aplicación informática
es desarrollada. Se conoce como programación en ciencias de la computación, a los
pasos que se abordan para crear el código fuente de un programa informático. De
acuerdo con estos pasos, el código se escribe, se prueba y se perfecciona.
En el contexto actual existen infinidad de opciones en línea y aplicaciones móviles,
sitios web como CodeAcademy, ProgrammingHub y aprenderaprogramar.com entre
otros; Que dan a conocer la sintaxis de diferentes lenguajes de programación por medio
de videos y guías paso a paso, así mismo también hay canales en YouTube como
Codigofacilito, AulaClic que brindan video tutoriales para el conocimiento de uso
herramientas y entornos de desarrollo.
Más, aun así, la mayoría de aplicaciones o páginas flaquean al momento de enseñar
uno de los aspectos más importantes de la programación como lo es la lógica de
programación, debido a que la programación es más que solo sintaxis de un lenguaje
en específico, o entornos de desarrollo, consiste en generar una gran cantidad de
habilidades en los estudiantes entre ellas: el entender un problema (analizar, abstraer,
modelar), plantear soluciones efectivas (reflexionar sobre una abstracción, definir
estrategias, seguir un proceso, aplicar una metodología, descomponer en
subproblemas)1.
Por esto mismo existe evidencia que sugiere que aprender a programar no es una tarea
fácil, por ejemplo, con base en los datos suministrados por la coordinación del proyecto
1 Villalobos Salcedo J. A. (2015). Una Solución Integral Al Problema De Enseñar Y Aprender A Programar. Recuperado el 28
de noviembre de 2016, de Colombia Aprende. http://www.colombiaaprende.edu.co/html/mediateca/1607/articles-205832_recurso_1.pdf
curricular de Sistematización de Datos de la Universidad Distrital Francisco José de
Caldas se evidencia que en los últimos tres años entre un 44% y un 65% de los
estudiantes de primeros semestres reprobaron la materia introducción a algoritmos, la
cual representa el primer contacto que estos poseen con la programación.
De lo anterior se puede inferir que existe la necesidad de crear aplicativos basados en
tipo de algún enfoque pedagógico que utilicen las ventajas de los dispositivos móviles,
para así desarrollar la lógica necesaria en los estudiantes que los llevará a resolver
problemas y avanzar en el aprendizaje de la programación.
1.3.2. Formulación del problema
¿Puede una aplicación móvil sobre plataforma Android afianzar, adiestrar y evaluar los
conocimientos básicos de la lógica de programación con el fin de familiarizar a las
personas interesadas en programar, en los conceptos básicos de la lógica de
programación?
1.4. ALCANCES Y LIMITACIONES
1.4.1. Alcances
Se desarrollará una aplicación de tipo educativo, que apoye a los estudiantes en sus
respectivos procesos de aprendizaje, en el área de la lógica de programación. La
aplicación Nozomu estará compuesta de cinco módulos definidos de la siguiente
manera:
Módulo de registro
● Registro de información del usuario como nombres, apellidos, teléfono, correo
electrónico y nickname.
● Creación de la instancia del usuario.
● Guardado de los datos del usuario en una base de datos.
Módulo de usuario
● Ingreso del usuario
● Guardar, editar y consultar información del usuario.
● Consultar el progreso del usuario.
● Acceder al resto de módulos
Módulo de Educación
● Presentación de los conceptos y lineamientos básicos de la lógica de
programación.
● Seguimiento de los temas que el usuario está aprendiendo.
● Desbloquear evaluaciones en el módulo de puntaje.
Módulo de Puntaje
Este módulo permite:
● Realizar pruebas a los usuarios mediante ejercicios prácticos de diagramación
cuya dificultad irá en aumento a medida que vaya avanzando en las diferentes
temáticas.
● Se asigna un puntaje valorativo al usuario según sus aciertos en las pruebas.
1.4.2. Limitaciones
Para el desarrollo del proyecto se tendrán en cuenta limitaciones de varias índoles o
características tales como: las temáticas, las técnicas, las geográficas y, por último, la
temporal.
1.4.2.1. Geográfica
● Las pruebas de la aplicación se realizarán en los estudiantes que se
encuentren cursando la carrera de Tecnología en Sistematización de datos en
la facultad tecnológica.
● El desarrollo del proyecto se realizará en la Universidad Distrital Francisco
José de Caldas, con apoyo del semillero de desarrollo de software libre
GEHRIN.
1.4.2.2. Técnica
● Los dispositivos móviles sobre los cuales se ejecute la aplicación deben
soportar la tecnología Android en las versiones mayores o iguales a la 4.1
correspondiente a “Jellybean” hasta la versión 7.1 correspondiente a “Nougat”.
● Los dispositivos móviles que soportan la aplicación no podrán tener una
pantalla inferior a 3.7”, aunque la aplicación podrá ser visualizada en
dispositivos con una pantalla de mayor o igual dimensión a las 3,7” 5.1” y
10.1”.
1.4.2.3. Temático
Para el desarrollo de este proyecto fue necesario determinar qué temas son
requeridos para comprender la lógica de programación, especialmente en la
Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas. Los
temas que se van a presentar son: variables y constantes, tipos de datos,
operadores de datos, estructuras de control (estructura if-else, switch),
estructuras repetitivas (while, for, do while).
1.4.2.4. Temporal
El proyecto tiene una estimación de tiempo de desarrollo de siete meses a partir
del 12 de diciembre del 2016 hasta el 13 de junio 2017.
1.5. OBJETIVOS
1.5.1. Objetivo general
Desarrollar una aplicación enfocada a dispositivos móviles con S.O. Android, que
permita presentar y ejercitar los conceptos básicos de la lógica de programación.
1.5.2. Objetivo Específicos
● Desarrollar un módulo que enseñe al usuario los conceptos y lineamientos básicos
de la lógica de programación.
●Diseñar un sistema de calificación en la aplicación de tal manera que ubique al usuario
en un respectivo nivel según su aprendizaje.
●Implementar un sistema que asigne ejercicios prácticos dependiendo del nivel de cada
usuario.
●Desarrollar un módulo que permita la recolección de información del progreso del
usuario a medida que avanza en las temáticas de la aplicación.
●Implementar un modelo pedagógico en la aplicación.
1.6. JUSTIFICACIÓN
En el contexto actual, donde el uso y la masificación de las nuevas tecnologías, como lo son
el internet o los dispositivos móviles inteligentes, se han vuelto tan importante, no es de
extrañar que la tecnología se encuentre en prácticamente todos los ámbitos de nuestra vida,
ya sean estos sociales, culturales, económicos e incluso educativos. Debido a las facilidades
y flexibilidades que estas nuevas tecnologías nos ofrecen, poco a poco, se van convirtiendo
en una de las opciones más factibles o viables a la hora de embarcarse en el aprendizaje de
cualquier tema en el que estemos interesados.
Teniendo en cuenta lo anteriormente mencionado y a su vez conociendo que una de las
principales dificultades que enfrentan los estudiantes que empiezan a adentrarse en el
desarrollo del software radica en el hecho de que gran parte del material que se encuentra en
las aplicaciones o páginas web se especializan únicamente en enseñar la sintaxis de un
lenguaje en específico, pero no en la enseñanza de la lógica, nace la idea de desarrollar la
aplicación Nozomu, la cual, se desarrolla específicamente para dispositivos móviles con
sistema operativo Android, permitiendo que los estudiantes por medio de teoría, ejemplos,
ejercicios y evaluaciones conozcan, fortalezcan y refuercen sus conocimientos en los
fundamentos de la lógica de programación, fundamental para el aprendizaje de cualquier
lenguaje de programación o el desarrollo de cualquier aplicación.
A su vez esta aplicación al ser desarrollada bajo el formato de software libre presenta grandes
ventajas, tales como: Ventajas económicas ya que al ser libre no se requiere pagar por
licencias, código abierto el cual puede ser modificado o mejorado según las necesidades de
los usuarios, libre albedrío para su distribución y divulgación, entre otras.
1.7. MARCO DE REFERENCIA
1.7.1. Marco Histórico
En la actualidad las aplicaciones relacionadas a la enseñanza de programación en
dispositivos móviles se encuentran mal direccionadas o dirigidas debido a que
simplemente se limitan a mostrar texto plano en el que se “enseña” a los usuarios
sintaxis de un lenguaje en específico.
La mayoría de estas aplicaciones se especializan en un lenguaje de programación y
aparte de ello no se molestan verdaderamente por que los usuarios aprendan algo en
verdad, ya que no utilizan ningún modelo pedagógico de enseñanza, o utilizan alguno
que no funciona en el aprendizaje de la lógica de programación.
1.7.1.1. Codecademy Codecademy es una plataforma de educación gratuita en línea que ofrece cursos
de programación en lenguajes como JavaScript, PHP, Python y Ruby; y de
lenguajes de marcado como HTML y CSS. Su popularidad se ha multiplicado a
partir de su fundación en 2011 y se ha mantenido. Más de 24 millones de personas
han tomado sus cursos y hoy en día sigue siendo de las mejores opciones para
aquellos que quieren aprender a programar por su cuenta.
Para motivar a los usuarios a participar, el sitio cuenta con un sistema de
gamificación por el que ofrece insignias o medallas al completar ejercicios, cuenta
con foros de discusión y un glosario por curso; así mismo, mantiene un registro de
la puntuación total del usuario y la muestra a los demás usuarios. El sitio también
permite que cualquier persona pueda crear y publicar un nuevo curso usando la
herramienta de creación de cursos.2
1.7.1.2. Programming Hub Programming Hub es una aplicación que nos permite disponer rápidamente de
manuales de programación para más de una docena de lenguajes: Python,
Assembly, HTML, VB.NET, C, C++, C# (C Sharp), JavaScript, PHP, Ruby, CSS,
Java, entre otros.
Aquellos usuarios que cuenten con unos conocimientos mínimos de programación
sí que encontrarán en Programming Hub un gran aliado. La interfaz de la app es
muy intuitiva, y nos permitirá descargar nuevos temas fácilmente, así como filtrar
las lecciones que más nos interesen dentro de cada lenguaje de programación.
2 ¿Qué es Codecademy? (2014) Recuperado el 16 de febrero de 2017 de Universidad tecnologica de bolivar:
http://www.unitecnologica.edu.co/educacionadistancia/newletter/2014/boletin005/noti_apliaciones/004-codecademy/index.html
También podremos copiar texto fácilmente, así como compartir temas enteros con
otros usuarios.
Programming Hub es una muy buena aplicación para estudiantes de programación.
Su escaso peso (ocupa menos de 10 Mb) y su interfaz elegante la convierten en
una de las mejores apps de su tipo para Android. Forma más rápida para aprender
cualquier lenguaje de programación consultando programas Ready-Made y la
teoría creada por expertos de la programación.
Practique sus habilidades de codificación ejecutando el código en la función de
patio.3
1.7.1.3. Codecombat CodeCombat es un juego para aprender a programar que cumple y muy bien con
las expectativas. Nos pondremos a los mandos de un personaje medieval que
debería ir avanzando por los diferentes niveles del juego, solucionando los
problemas planteados. Es multijugador, completamente gratuito y, de nuevo,
también está adaptado a su uso en el aula (permite crear clases). Aunque puede
utilizarse para novatos en la programación está más orientado a secundaria y
bachillerato, pues con él aprenderemos lenguajes avanzados como Python, Lua,
JavaScript u otros que pueden resultar interesantes en edades avanzadas o incluso
universidad. 4
1.7.1.4. Programación fácil Esta aplicación contiene cuatro cursos C++, Java, Python, Ruby actualmente solo
se encuentra disponible el curso de C++, pero en la próxima actualización incluirá
el curso de Java en la siguiente el de Python y en la última el de Ruby.5
3Programming Hub (2014) Recuperado el 25 de febrero de 2017 de UpToDown:
https://programming-hub.uptodown.com/android 4Apps y juegos para aprender a programar (2016) Recuperado el 17 de febrero de 2017 de educación 3.0:
http://www.educaciontrespuntocero.com/recursos/apps-de-juegos-para-aprender-a-programar/30909.html 5 Programación Fácil (s.f.) Recuperado el 18 de febrero de 2017 de Google Play:
https://play.google.com/store/apps/details?id=com.belzasar.programacionfacil&hl=es
1.7.3.4. Comparación entre aplicaciones.
Tabla 1: Comparación entre aplicaciones
Codecadem
y Programming
Hub Programación
fácil Codecom
bat Nozomu
Presentación de Conceptos
básicos de la lógica de
programación.
✔ ✔ ✔ ✔ ✔
Mostrar ejemplos de los
temas presentados.
x ✔ ✔ ✔ ✔
Asignar ejercicios prácticos
dependiendo del tema visto por el
usuario.
✔ x X ✔ ✔
Evaluar al usuario los
conocimientos presentados.
x x X x ✔
Clasificar al usuario según
su nivel. x ✔ X x ✔
Aumentar la dificultad de los
ejercicios y evaluaciones a medida que se
progresado.
✔ x X x ✔
Almacenar y mostrar el historial o
progreso que el estudiante ha
tenido.
✔ ✔ ✔ x ✔
Fuente: Autores.
1.7.2. Marco teórico
1.7.2.1. Enseñanza La enseñanza es la actividad humana intencional que aplica el currículo y tiene por
objeto el acto didáctico. Consta de la ejecución de estrategias preparadas para la
consecución de las metas planificadas, pero se cuenta con un grado de
indeterminación muy importante puesto que intervienen intenciones, aspiraciones,
creencias… elementos culturales y contextuales, en definitiva. Esta actividad se basa
en la influencia de unas personas sobre otras. Enseñar es hacer que el alumno
aprenda, es dirigir el proceso de aprendizaje.6
1.7.2.2. Pedagogía Con referencia a la educación: la analiza y valora, estudia su función, importancia y
necesidad; en fin, se ocupa de la cuestión educativa. Durkheim señala que la
educación es la materia objeto de la pedagogía. Es constante, mientras que la
pedagogía no ha existido en todos los pueblos ni en todos los tiempos; el carácter
intermitente de la pedagogía depende de la necesidad y posibilidades de reflexionar
sobre la educación, referida a las prácticas y problemas que conforman el fenómeno
educativo; además, es una disciplina con autonomía, identidad e intereses propios,
que la impulsan en la dirección señalada por los elementos y formas de operar que
la constituyen como un campo del saber y la practica especifica. 7
1.7.2.3. Modelo pedagógico constructivista El aprendizaje se logra, con la presencia de un estímulo ambiental específico. Los
elementos claves son, el estímulo, la respuesta, y la asociación entre ambos. Así
mismo, la memoria, no es tomada en cuenta, aunque se discute la adquisición de
"hábitos", se le da muy poca atención a cómo esos hábitos se almacenan o se
recuperan para uso futuro. El olvido se atribuye a la "falta de uso" de una respuesta
al pasar el tiempo. El uso de la práctica periódica o la revisión sirve para mantener
al estudiante listo para responder. Sin embargo, generalmente se acepta que los
principios conductuales no pueden explicar adecuadamente la adquisición de
habilidades de alto nivel o de aquellas que requieren mayor profundidad de
procesamiento (por ejemplo: desarrollo del lenguaje, solución de problemas,
generación de inferencias, pensamiento crítico).8
6 Márquez. Y. (2010) Objetivos, elementos. dimensiones y niveles de la Didáctica. Recuperado el 22 de junio de 2017
dedidacticaunefa: http://didacticaunefa.blogspot.com.co/2010/05/objetivos-elementos-dimensiones-y.html 7Prendes M. Amorós L. (2015) Accesibilidad en aplicaciones informáticas. congreso en Santiago de Compostela. Recuperado
el 23 de junio de 2017 de Universidad Americana de Morelos: https://prezi.com/c9n37vedgleo/educacion/ 8 Peggy A. Ertmer Y Timothy J. Newby. (2013). Conductismo, cognitivismo y constructivismo: una comparación de los
aspectos críticos desde la perspectiva del diseño de instrucción. Recuperado el 23 de junio de 2017, Universidad Galileo: http://www.galileo.edu/faced/files/2011/05/1.-ConductismoCognositivismo-y-Constructivismo.pdf
1.7.2.4. Software. Según Oxford University Press, el término software o programa se aplica a aquellos
componentes de un sistema informático que no son tangibles, es decir, que
físicamente no se pueden tocar. Para Freedman (1984) el programa es sencillamente
el conjunto de instrucciones que contiene la computadora, ya sean instrucciones para
poner en funcionamiento el propio sistema informático (software de sistema) o
instrucciones concretas dirigidas a programas particulares del usuario (software
específico). En otras palabras, según Sánchez Montoya (1995: 54) el programa
supone un “conjunto de [...] pasos que indican a la máquina (hardware) aquello que
debe hacer9.
1.7.2.5. Lógica De programación La programación lógica es un tipo de paradigmas de programación dentro del
paradigma de programación declarativa. El resto de los subparadigmas de
programación dentro de la programación declarativa son: programación funcional,
programación con restricciones, programas DSL (de dominio específico) e híbridos.
La programación funcional se basa en el concepto de función (que no es más que
una evolución de los predicados), de corte más matemático. La programación lógica
gira en torno al concepto de predicado, o relación entre elementos.
Lógica es la técnica utilizada para desarrollar instrucciones en una secuencia para
lograr determinado objetivo. Es la organización y planificación de instrucciones en un
algoritmo, con el objetivo de tornar viable la implementación de un programa o
software. La lógica de la programación es la organización coherente de las
instrucciones del programa para que su objetivo sea alcanzado.10
1.7.2.6. Software educativo El término de software educativo (SE) se define de forma genérica como aplicaciones
o programas computacionales que faciliten el proceso de enseñanza aprendizaje.
Las expresiones software educativo, programas educativos y programas didácticos
como sinónimos para designar genéricamente los programas para ordenador
creados con la finalidad específica de ser utilizados como medio didáctico, es decir,
para facilitar los procesos de enseñanza y de aprendizaje.
Esta definición engloba todos los programas que han estado elaborados con fin
didáctico, desde los tradicionales programas basados en los modelos conductistas
de la enseñanza, los programas de Enseñanza Asistida por Ordenador (EAO), hasta
los aun programas experimentales de Enseñanza Inteligente Asistida por Ordenador
(EIAO), los cuales usan técnicas propias del campo de los Sistemas Expertos y de
9Prendes Espinosa M. P. Amorós Poveda L. (2013). Accesibilidad en aplicaciones informáticas. Recuperado el 23 de Junio
de 2017, de Grupo de Tecnología Educativa: http://tecnologiaedu.us.es/cuestionario/bibliovir/paz10.pdf 10Lógica de programación: el primer paso para aprender a programar. (2017). Recuperado el 24 de Junio de 2017, de
Hostgator: https://blog.hostgator.mx/logica-de-programacion-primer-paso/
la Inteligencia Artificial en general, pretenden imitar la labora tutorial personalizada
que realizan los profesores y presentan modelos de representación del conocimiento
en consonancia con los procesos cognitivos que desarrollan los alumnos.11
1.7.2.7. La tecnología en la educación Martínez (1996), identifica por nuevas tecnologías “a todos aquellos medios de
comunicación y tratamiento de la información que van surgiendo de la unión de los
avances propiciados por el desarrollo de la tecnología electrónica y las herramientas
conceptuales, tanto conocidas, como aquellas otras que vayan siendo desarrolladas
como consecuencia de la utilización de estas mismas nuevas tecnologías y de
avance del conocimiento humano”.
El ordenador puede iniciar un cambio profundo en los procesos de aprendizaje si se
superan las resistencias iniciales (Papert, 1995). Para avanzar en esta dirección,
Escudero (1992) destaca los siguientes aspectos relativos al uso de las nuevas
tecnologías en entornos educativos: el uso pedagógico, los profesores como sujetos
activos para entender su práctica, el fácil acceso al uso de nuevos medios.
Collins (1998), establece cinco usos diferentes de la tecnología informática dentro de
las aulas:
• Herramientas para llevar a cabo diversas tareas.
• Sistemas integrados de aprendizaje.
• Simuladores y juegos.
• Redes de comunicación entre alumnos y profesores.
• Entornos de aprendizaje interactivos.
Entre las tecnologías que tenemos en la educación están el E-LEARNING, que
consiste en un curso o plan formativo en un entorno virtual en el cual tiene lugar la
interacción profesor-alumnos, también está el M-LEARNING que es e-Learning a
través de dispositivos computacionales móviles, (PDA, Máquinas y teléfonos). El m-
learning es la intersección de la computación móvil y e-Learning, se puede acceder
a recursos de aprendizaje desde cualquier lugar, en cualquier momento, con
capacidad de búsqueda, interacción, alto soporte y valoración de desempeño.12
11Vidal Ledo M. Gómez Martínez F. (2010) Software educativos Recuperado el 30 de Junio de 2017, de Scielo:
http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S0864-21412010000100012 12Mayo Cantón I.Baelo Álvarez R. Las tecnologías de la información y la comunicación
en la educación superior. Recuperado el 30 de Junio de 2017, de Repositorio Revista Iberoamérica: http://rieoei.org/deloslectores/3034Baelo.pdf
1.7.3. Marco conceptual
1.7.3.1. Aplicación Móvil Una aplicación móvil (también llamada APP) es simplemente un programa
informático creado para llevar a cabo o facilitar una tarea en un dispositivo
informático. Cabe destacar que, aunque todas las aplicaciones son programas, no
todos los programas son aplicaciones. Existe multitud de software en el mercado,
pero sólo se denomina así a aquel que ha sido creado con un fin determinado, para
realizar tareas concretas. No se consideraría una aplicación, por ejemplo, un sistema
operativo, ni una suite, pues su propósito es general.
Las aplicaciones nacen de alguna necesidad concreta de los usuarios, y se usan
para facilitar o permitir la ejecución de ciertas tareas en las que un analista o un
programador han detectado una cierta necesidad. Pero las aplicaciones también
pueden responder a necesidades lúdicas, además de laborales (todos los juegos,
por ejemplo, son considerados aplicaciones). Se suele decir que para cada problema
hay una solución, y en informática, para cada problema hay una aplicación.13
1.7.3.2. Sistemas operativos móviles
1.7.3.2.1. iOS
Es el sistema operativo diseñado por Apple para sus productos, iPhone, iPad,
iPod Touch, y Apple TV, otros dispositivos como el iPod Nano y el iWatch utilizan
otro sistema más básico y dirigido a una función más específica basado en iOS
porque incorpora algunos de sus gestos e iconos y además se pueden
sincronizar con teléfonos o Tablet. Presentado en 2007 junto con el primer
teléfono de la compañía dedicada en sus inicios a revolucionar el mundo de los
ordenadores de mesa y portátiles, el iOS marcó una pauta sin precedentes al
llegar al mercado con un sistema que no necesitaba más teclas físicas que las
del volumen, encendido, bloqueo y un solitario botón llamado “Home” que
permitiera al usuario a volver al inicio en su pantalla, casi todo el sistema fue y
sigue siendo usado con la pantalla táctil que incorporan sus dispositivos.14
1.7.3.2.2. WindowsPhone
Windows Phone es un sistema operativo móvil desarrollado por la empresa
Microsoft para teléfonos inteligentes y otros dispositivos móviles. Fue lanzado al
mercado el 21 de octubre de 2010 en Europa y el 8 de noviembre en Estados
Unidos, con la finalidad de suplantar el conocido Windows Mobile.
13Definición de Aplicación (s.f.). Recuperado el 7 de Junio de 2017 de mastermagazine:
https://www.mastermagazine.info/termino/3874.php 14Definición de iOS (2014). Recuperado el 5 de Junio de 2017 de concepto definición:
http://conceptodefinicion.de/ios/
Microsoft decidió realizar un cambio completo en este nuevo sistema operativo
con respecto al otro, no solo se cambió el nombre, sino que se desarrolló desde
cero, presentando una interfaz completamente nueva, mejor comportamiento y
un mayor control sobre las plataformas de hardware que lo ejecutan, todo con el
propósito de volver a ser competitivo en el mundo de los móviles.
La primera generación de Windows Phone es Windows Phone 7 Series conocido
también como Windows Phone 7, dicho número fue tomado debido a que su
antecesor en el mercado era Windows Mobile 6.5. Cabe señalar que el Windows
Phone presenta incompatibilidad con los Windows Mobile anteriores, los
usuarios no serán capaces de actualizar el Windows en su teléfono y por ende
deberán comprar uno nuevo con el reciente sistema operativo.15
1.7.3.2.3. UbuntuTouch
SO basado en Linux bajo la famosa firma Ubuntu. Presentado en el 2013 y con
su última versión Ubuntu Touch, utiliza la misma base de código para todos los
dispositivos, desde equipos de escritorio, servidores y nubes, a los teléfonos y
factores de forma más pequeños con la llegada de Snappy, un sabor de Ubuntu
dedicada a "cosas de Internet", como su refrigerador conectado o drone
autónoma. 16
1.7.3.2.4. WebOS
WebOS es el sistema operativo presente en los últimos televisores de la coreana
LG. Su particularidad es que ofrece una experiencia de usuario similar a la de
un dispositivo móvil. La interfaz se ha cuidado al máximo para que resulte
agradable, con transparencias, colores brillantes, transiciones e íconos. Se trata
de un estilo artístico que rememora a los cómics.
Este se encuentra basado en Linux y propiedad de LG que lo utiliza como
sistema operativo para sus televisores inteligentes. Una nueva forma de
controlar tu televisor LG con Smart TV.17
1.7.3.2.5. BlackBerry OS
Es un sistema operativo incluido en la gama de teléfonos móviles de la compañía
canadiense Research In Motion (RIM) y que viene incorporado en los móviles
fabricados por la empresa, que también llevan el apelativo BlackBerry, seguido
15Definition de Windows Phone (2015). Recuperado el 7 de Junio de 2017 de concepto definición:
http://conceptodefinicion.de/windows-phone/ 16 Amate C. (2014) Conoce (bien) los principales sistemas operativos móviles. Recuperado el 2 Junio de 2017
de el blogthinkbig:http://blogthinkbig.com/sistemas-operativos-moviles/ 17Una mirada a WebOS, el nuevo sistema operativo de los TV LG (2014). Recuperado el 1 Junio de 2017 de el
Tiempo:http://www.eltiempo.com/archivo/documento/CMS-14319418
por el modelo correspondiente.
Esta familia de teléfonos móviles, pertenecientes a la gama de los Smartphones,
son los preferidos por los profesionales que quieren, ante todo, la seguridad de
sus correos electrónicos, así como la privacidad y salvaguarda de sus datos
privados, aunque en los últimos años han ganado lugar entre el público masivo,
dada la incorporación de herramientas de entretenimiento exclusivas.18
1.7.3.2.6. Android
El sistema operativo de Google y el número uno en cuanto a popularidad. En el
año 2003, Andy Rubin, Rich Miner, Nick Sears and Chris White daban forma a
Android Inc. En sus inicios, se centraba en “el desarrollo de software para
teléfonos móviles “. En agosto de 2007 Android Inc. fue por contactada por
Google, dando éxito a Android es el 5 de noviembre de 2007. Ese día se fundaba
la OHA (Open Handset Alliance), una alianza comercial de 35 componentes
iniciales liderada por Google, que contaba con fabricantes de terminales móviles,
operadores de telecomunicaciones, fabricantes de chips y desarrolladores de
software
Con una cuota de mercado cercana al 85% el sistema operativo de Google se
caracteriza por ser abierto y disponible para cualquier fabricante interesado en
utilizarlo para sus innumerables dispositivos de miles de formas y
funcionalidades con todas las versiones de Android existentes. Además, la
posibilidad de que cada fabricante incluya su propia capa sobre el original
propicia que la experiencia de usuario no sea siempre la deseada por Google.
Cada vez más, los desarrolladores dedican grandes esfuerzos a diseñar sus
apps para los usuarios de Android. Android es el sistema operativo de más de
mil millones de teléfonos inteligentes y tabletas.19
Entre las versiones que podemos encontrar en la página web oficial
www.android.com están desde las más antiguas a las más actuales, entre las
menos utilizadas están las siguientes:
● Android 1.0. Donut: Con innovación en la navegación y la multimedia.
● Android 2.0. Eclair: Permitía organizar aplicaciones y widgets a través de
múltiples pantallas y en las carpetas además de fondos de pantalla en vivo.
● Android 2.2.Froyo: Typing, Voz que le permite introducir texto, y acciones de
voz le permite controlar el teléfono, todo esto únicamente con el reconocimiento
18Blackberry OS; sistema operativo móvil de RIM (2013). Recuperado el 7 Junio de 2017 de el
culturacion:http://culturacion.com/blackberry-sistema-operativo-movil-de-rim/ 19Contreras L. (2012) introducción – ¿qué es Android?Recuperado el 8 de Junio de 2017 de blog historia de la
informática:http://histinf.blogs.upv.es/2012/12/14/android/
de la voz.
● Android 3.0, Honeycomb: Optimizado para las tablets, esta versión abre
nuevos horizontes donde quiera que estés.
● Android 4.0, Ice Cream Sandwich: Android vienen de edad con un nuevo
diseño, refinado. Simple, hermoso y más allá inteligente.
● Android 5.0 Lollipop: Los cambios más prominentes en Lollipop incluye una
interfaz de usuario rediseñada construida sobre un diseño de lenguaje
responsivo denominado como "Material design", así como mejoras en el sistema
de notificaciones que permiten que este sea accedido desde la pantalla de
bloqueo, entre otros.
● Android 6.0 Marshmallow: Android Marshmallow ofrece soporte nativo para
el reconocimiento de huellas digitales, lo que permite el uso de las mismas para
desbloquear los dispositivos, y para la autenticación de Play Store o Android
Pay.
● Android 7.0 Nougat: Presentado durante el evento Google I/O en mayo del
2016, Nougat se resume como una actualización de las novedades antes
mencionadas en Marshmallow, la anterior versión de Android, siendo que sus
principales características podemos resumirlas en los puntos siguientes:
Multiventana, realidad virtual, Doze, Google Play.
● Android 8.0 O: El nombre en código de la siguiente versión de Android es
Android “O” (O de Oreo, no Cero “0”) y fue anunciado por Google el pasado 21
de marzo del 2017 siendo que su primera versión “Alfa” fue publicada para
dispositivos Google Pixel y Nexus el 22 de marzo del 2017. 20
1.7.3.3. Java Java es un lenguaje de programación que lleva entre nosotros más de 18 años, pero
sigue siendo, en cierto modo, desconocido.
Hace unos años, mencionar el nombre Java te recordaba a applets y aplicaciones
Java multiplataforma. Hoy en día el nombre es quizá más reconocido gracias a las
aplicaciones y juegos Java para teléfonos o los continuos problemas de seguridad
que afectaron a la plataforma.
Java es un lenguaje de programación creado en 1995 para el entorno de
computación de mismo nombre por Sun Microsystems. Su nombre, se comenta,
vendría de Java Coffee, una cafetería que regentaban con frecuencia los
programadores y que, además, explicaría el logotipo de la humeante taza de café.
20Castillo A. (2015) la historia de Android: todas sus versiones.Recuperado el 6 de Junio de 2017 de artículos
poderpda:http://www.poderpda.com/editorial/la-historia-de-android-todas-sus-versiones/
Su filosofía WORA (Write Once, Run Anywhere) permite a los desarrolladores portar
sus aplicaciones a distintos sistemas sin apenas -o ningún- esfuerzo, aunque la gran
variedad de dispositivos en los que se puede ejecutar Java lleva la segmentación
entre applets Java, aplicaciones de escritorio, aplicaciones empresariales y
aplicaciones para teléfonos móviles.
En 2010, Oracle compró Sun Microsystems, convirtiéndose en el nuevo “dueño” de
Java.21
1.7.3.4. XML XML es un metalenguaje de definición de documentos, estructurado mediante
etiquetas o marcas. Su nombre viene de las palabras inglesas eXtensible Markup
Language (Lenguaje de marcado ampliable o extensible). Fue desarrollado por la
World Wide Web Consortium (W3C), con el objetivo de lograr páginas web mucho
más semánticas, separando la estructura del contenido web y ofreciéndole al
desarrollador la capacidad de crear vocabularios modulares personalizados.
Se diferencia del tradicional HTML, en la capacidad que tiene de definir las etiquetas
en función del tipo de dato con el que se está trabajando. Otra de las características
de XML es que, al igual que HTML, trabaja con texto plano y se deriva de SGML.
XML cuenta con una sintaxis y una estructura mucho más rígida que el HTML, lo cual
lo hace mucho más complejo, pero a su vez, permite crear documentos mucho más
estables, que cumplen a cabalidad con la normativa internacional.22
1.7.3.5. JDK Se trata de un conjunto de herramientas (programas y librerías) que permiten
desarrollar (compilar, ejecutar, generar documentación, etc.) programas en lenguaje
Java. Existen versiones del JDK para prácticamente todos los Sistemas Operativos
y existen también distintos programas comerciales. Sun distribuye gratuitamente el
JDK “oficial” para los siguientes sistemas operativos: Windows 95/98/NT, Solaris y
Linux.
Los JDK incorporan una herramienta de Debugger (detener la ejecución de un
programa en la línea que se desee y poder conocer el valor de las variables en ese
momento).23
1.7.3.6. Java SDK manager Se trata de un conjunto de herramientas dispuestas para crear programas y
21 Ramírez P. (2013) ¿Qué es Java? Recuperado el 5 de Junio de 2017 de artículos softonic:
https://articulos.softonic.com/que-es-java 22Guerra L. R. (2016). Qué es XML.Recuperado el 28 de Mayo de 2017 de culturación:
http://culturacion.com/que-es-xml/ 23López C. M. (s.f.). Qué es el JDK (Java Development Kit).Recuperado el 24 de Mayo de 2017 de la Universidad
de Navarra: http://www.esi.unav.es/Asignaturas/Informat2/Clases/Clases9899/Clase01/JavaEntorno/tsld003.htm
aplicaciones. Una instancia en la cual los desarrolladores se convierten en
colaboradores de las versiones beta.
Primera aproximación: SDK responde a la denominación “Software Development
Kit”, o “Paquete de Desarrollo de Software”. ¿De qué se trata? Pues SDK es un
maletín virtual integrado con todo lo necesario para que los entendidos (y no tanto)
se dispongan a trabajar y a crear. ¿El objetivo? Dar a conocer la marca y dar rienda
suelta a la imaginación de los desarrolladores.
Estos conjuntos llamados SDK se han convertido una modalidad muy utilizada por
las empresas dado que de esa forma pueden exponer sus productos de forma
transparente e integralmente. Los kits suelen incorporar además de herramientas de
producción, soporte para que sea más fácil encontrar errores y depurarlos, además
de un contacto directo con la compañía para consultas.
Generalmente son gratuitos y se distribuyen vía Web, por eso se convierten en una
tentación más dentro de la red para los ávidos buscadores de aventuras en bytes.
Los desarrolladores se convierten en colaboradores y hasta en consumidores de los
equipos de prueba. Es válido mencionar que no siempre es necesario contar con
profundos conocimientos en programación informática, pues en ocasiones los
aficionados pueden encontrarse con kits totalmente intuitivos, por tanto, muy fáciles
de comprender.24
1.7.3.7. Android Studio Android Studio es un entorno de desarrollo integrado (IDE), basado en IntelliJ IDEA
de la compañía JetBrains, que proporciona varias mejoras con respecto al plugin
ADT (Android Developer Tools) para Eclipse. Android Studio utiliza una licencia de
software libre Apache 2.0, está programado en Java y es multiplataforma.
Fue presentado por Google el 16 de mayo del 2013 en el congreso de
desarrolladores Google I/O, con el objetivo de crear un entorno dedicado en
exclusiva a la programación de aplicaciones para dispositivos Android,
proporcionando a Google un mayor control sobre el proceso de producción. Se trata
pues de una alternativa real a Eclipse, el IDE recomendado por Google hasta la
fecha, pero que presentaba problemas debido a su lentitud en el desarrollo de
versiones que solucionaran las carencias actuales (es indispensable recordar que
Eclipse es una plataforma de desarrollo, diseñada para ser extendida a través de
plugin).
Android Studio se ha mantenido durante todo este tiempo en versión beta, pero
desde el 8 de diciembre de 2014, en que se liberó la versión estable de Android
24Jiménez. A. (2016). SDK: ¿Qué es y para qué sirve?Recuperado el 3 de Junio 2017 de Tendenciasmag:
http://www.tendenciasmag.com/sdk-que-es-y-para-que-sirve/
Studio 1.0, Google ha pasado a recomendarlo como el IDE para desarrollar
aplicaciones para su sistema operativo, dejando el plugin ADT para Eclipse de estar
en desarrollo activo. Esta versión la puedes descargar desde la web de Android
Developer.25
1.7.3.8. SQLite SQLite es una librería escrita en C que implementa un motor de base de datos para
SQL empotrable. Por lo tanto, SQLite es una librería escrita en lenguaje C que
implementa un manejador de base de datos SQL embebido. Los programas que se
enlacen con la librería SQLite pueden tener acceso a una base de datos SQL, sin
tener que ejecutar un programa de RDBMS separado.
SQLite es Software Libre por lo tanto el código fuente es del dominio público licencia
GPL. Además, se puede entender como bases de datos empotradas aquellas que
no inician un servicio en nuestra máquina independiente de la aplicación, pudiéndose
enlazar directamente a nuestro código fuente o bien utilizarse en forma de librería
(include)". Sus desarrolladores destacan, que su principal característica, es su
completo soporte para tablas e índices en un único archivo por base de datos,
soporte transaccional, rapidez.26
1.7.3.9. El patrón Modelo Vista Controlador (MVC)
Es el patrón de diseño más adecuado y recomendado para aplicaciones interactivas
que distribuyen las funcionalidades de dicha aplicación entre los distintos objetos que
la componen, de manera que el grado de acoplamiento entre los objetos de la
aplicación sea mínimo. MVC divide una aplicación interactiva en tres áreas:
procesamiento, salida y entrada. Para esto utiliza las siguientes abstracciones: -
Modelo: Encapsula la información que maneja el sistema, incluyendo la información
de negocio y las lógicas de acceso a los mismos. El modelo avisa a 43 la vista cuando
se produce alguna modificación en los datos del modelo y le permite consultar el
estado de los mismos. También permite al controlador acceder a las funcionalidades
de la aplicación encapsuladas por el modelo. El modelo es independiente de
cualquier representación de salido y/o comportamiento de entrada. -Vista: Es la
interfaz de usuario, es decir, decide cómo se presenta la información del modelo al
usuario, actualizando la interfaz cuando se produce alguna modificación de los
mismos. La vista también reenvía la entrada del usuario al controlador. Pueden existir
múltiples vistas del modelo. Cada vista tiene asociado un componente controlador. -
Controlador: recibe las entradas, usualmente, como eventos que codifican los
25Hernández F. M. (2014). Android Studio: características y comparativa con Eclipse.Recuperado el 23 de Mayo
de 2017 de academia android: https://academiaandroid.com/android-studio-v1-caracteristicas-comparativa-eclipse/ 26Gutiérrez J. (2017). ¿Qué es SQLite? Recuperado el 26 de Mayo de 2017 de somoslibres.org:
http://www.somoslibres.org/modules.php?name=News&file=article&sid=183
movimientos o pulsación de botones del ratón, pulsaciones de teclas, etc. Responde
a dichos eventos modificando el modelo y pudiendo producir, por tanto, cambios en
la vista. Así pues, el controlador interpreta la entrada del usuario y la correspondencia
en acciones que serán llevadas a cabo por el modelo. Un controlador escoge la
siguiente vista a mostrar basándose en las interacciones del usuario y los resultados
de las operaciones de modelo.27
1.7.4. Marco Metodológico
Para la elaboración de este proyecto se implementará la metodología RUP la cual no
es más que un conjunto de metodologías adaptables al contexto y necesidades de cada
organización. Describe cómo aplicar enfoques para el desarrollo del software, llevando
a cabo unos pasos para su realización RUP (Rational Unified Process), es una
metodología sólida, con documentación que apoya el ciclo de vida evolutivo incremental
además de orientarse al desarrollo de componentes secundado el desarrollo orientado
a objetos; RUP es un proceso de ingeniería de software que provee un enfoque
disciplinado para la asignación de tareas y responsabilidades dentro de una
organización. Su principal objetivo es asegurar la producción de software de alta calidad
que satisfaga las necesidades de sus usuarios finales dentro de un presupuesto y
tiempo predecibles.
● Fase de Inicio: en esta fase se definen y acuerdan con los alcances del
proyecto, además de identificar los riesgos asociados al proyecto, proponer una visión
muy general de la arquitectura y producir el plan de las fases y el de iteraciones
posteriores.
● Fase de elaboración: el propósito de esta fase es seleccionar y desarrollar los
casos de uso que permiten definir la arquitectura base del sistema, posteriormente
realizar la especificación de los casos seleccionados y el primer análisis del dominio del
problema, para diseñar la solución preliminar.
● Fase de Construcción o Desarrollo: esta fase tiene como propósito completar
la funcionalidad del sistema, para ello se deben clarificar los requerimientos pendientes,
administrar los cambios de acuerdo con las evaluaciones realizados por los usuarios y
se realizar las mejoras para el proyecto.
● Fase de transición (Cierre): el propósito de esta fase es asegurar que el
software esté disponible para los usuarios finales, ajustar los errores y defectos
encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte
27 Martínez D. R. Valderas Aranda P. J. Pastor López O.(2010) “Aplicaciones web,
un enfoque práctico”. Modelo- Vista- Controlador. 137-138 p
técnico necesario. Se debe verificar que el producto cumpla con las especificaciones28.
28 BELLOSO, C. Monografía sobre la metodología de desarrollo de software, Rational Unified Process (RUP).
Universidad Don Bosco. El Salvador. 2009. p. 69 http://rd.udb.edu.sv:8080/jspui/bitstream/123456789/257/1/47400_tesis.pdf [Consulta: 31 octubre de 2016].
Tabla 2: Fases de la metodología RUP.
FLUJO DE TRABAJO ACTIVIDADES
INICIO
MODELAMIENTO DEL NEGOCIO
Diagrama de procesos.
Modelo de dominio.
Glosario de términos
Consulta e identificación de problemas
Análisis de las causas y soluciones.
Planeación del desarrollo del proyecto
REQUERIMIENTOS
Definición de requerimientos funcionales
Definición de requerimientos no funcionales
Definición de actores
Diagrama de casos de uso
Documentación de los casos de uso.
ELABORACIÓN
DISEÑO
Diagrama de secuencia
Diagrama de colaboración
Diagrama de actividad
Diagrama de estado
Modelo de análisis
ANÁLISIS
Lista de clases.
Modelo de interfaz
Modelo físico.
Modelo lógico
CONSTRUCCIÓN IMPLEMENTACIÓN
Entorno de diseño del usuario
Diseño educativo
Diseño de comunicación
Diseño conceptual
Diagrama de paquetes
Diagrama de componentes
Diagrama de despliegue
TRANSICIÓN
PRUEBAS
Pruebas de integración.
Prueba piloto.
Análisis de resultados
Pruebas del sistema
Instalación del software
DESPLIEGUE
Pruebas de campo
Utilización por los estudiantes
Análisis de resultados
Fuente: Autores.
1.8. FACTIBILIDAD
En este apartado, se hará mayor hincapié en diferentes aspectos o factores que influirán en
el desarrollo del proyecto, estos son: factores técnicos, operativos, legales y económicos.
1.8.1. Factibilidad técnica
Tabla 3: Costo Recursos Técnicos Requeridos.
FACTIBILIDAD TÉCNICA
Equipo Cantidad Descripción Costo
unitario Total
Computador Portátil
2
Procesador AMD APU A8 2.5Ghz, Disco duro de 1024 Gb
de capacidad, memoria RAM DDR3 de 8Gb, mouse.
$1.100.000 $2.200.000
Sistema operativo 2 Licencia Windows 10 $130.000 $260.000
Internet 2 Servicio a internet de 5Mb
$90.000 un mes $720.000 7 meses
$1.440.000 7 meses
SQLite 2 Sistema de gestión de bases de
datos. Software
Libre $0
Android Studio 2.3.3
2 Entorno de desarrollo para
desarrollo de aplicativos en el sistema operativo Android.
Software Libre
$0
SDK manager Software
Development Kit. 2 Kit de Desarrollo de software.
Software Libre
$0
JDK 7.3.1 2
Software que provee herramientas de desarrollo para
la creación de programas en Java.
Software Libre
$0
Total: $3.900.000
Fuente: Autores.
1.8.2. Factibilidad legal
Con respecto a los requerimientos legales que esta aplicación requiere, las normativas
o leyes que pudieran generar algún tipo de problema frente al desarrollo del proyecto
fueron:
● En cuanto al sistema operativo Windows perteneciente a Microsoft, se cuenta con
una licencia vigente.
●En cuanto a licencias de las herramientas que se utilizaran como Android Studio,
SQLite, SDK manager no tienen licencia por lo que no implica algún requerimiento legal.
●Para cada una de las pruebas del software que se realizarán en dispositivos móviles,
se cuenta con cada una de sus respectivas facturas y registros.
● En cuanto al sistema operativo Android perteneciente a Google, que se encuentra en
los Smartphone donde se realizaron la pruebas este es de código abierto.
● La institución académica donde se realizaron las pruebas, no tienen ningún tipo de
normativa que impida la ejecución e implantación de este proyecto en las
organizaciones de este tipo.
Con base en lo anteriores apartados se puede concluir que el presente proyecto es
viable cuanto al aspecto legal.
1.8.3. Factibilidad operativa
Tabla 4: Costo Operativos
FACTIBILIDAD OPERATIVA
Tipo Cantidad
de personas
Descripción Valor hora
Cantidad de horas
Total
Desarrollador 2
Programador para el diseño e
implementación de la aplicación
$14.000 56 horas
mensuales $10’976.000
7 meses.
Director 1 Asesorías para la
realización del proyecto
$30.000 8 horas
mensuales $1’680.000 7 meses.
Total $12’656.000
Fuente: Autores.
1.8.4. Factibilidad económica
Tabla 5: Costo total del proyecto.
Factibilidad Económica
Recursos Costos
Recursos técnicos $3’900.000
Recursos Humanos $12’656.000
Recursos imprevistos 10% $1’655.600
Total $18’211.600
Fuente: Autores.
1.9. CRONOGRAMA DE ACTIVIDADES
Ilustración 1: Cronograma De actividades general.
1.9.1 Fase de inicio
Ilustración 2: Fase de inicio
1.9.2 Fase de elaboración
Ilustración 3: Cronograma fase de Elaboración.
1.9.3 Fase de Construcción
Ilustración 4: Cronograma Fase de Construcción.
1.9.4 Fase de Transición
Ilustración 5: Cronograma Fase de Transición
2. MODELADO DEL NEGOCIO
En esta etapa del desarrollo del proyecto se identificaron los procesos más relevantes, los
cuales se explican detalladamente el funcionamiento de la aplicación, el manejo de la
información del sistema y la interacción entre los actores que participan en aplicación.
2.1. IDENTIFICACIÓN Y DEFINICIÓN DE LOS MÓDULOS DEL SISTEMA
La aplicación Nozomu contará con cuatro módulos principales, los cuales permitirán presentar,
explicar y reforzar los conocimientos básicos que el usuario requiere para el desarrollo de la
lógica de programación. Estos módulos son:
•Módulo de Registro:
Este módulo permite el registro de información del usuario como nombres, apellidos, teléfono,
correo electrónico, entre otros. Al mismo tiempo, permite la creación de la instancia del usuario
y por último facilita el guardado de los datos del usuario en una base de datos.
•Módulo de Usuario:
Este módulo permite el ingreso del usuario, así como guardar, editar y consultar información
del usuario. También permitirá al usuario desplazarse por los demás módulos y opciones que
la aplicación posea.
•Módulo de Educación:
Este módulo permite la presentación de los conceptos y lineamientos básicos de la lógica de
programación, así como, el posterior seguimiento de los temas que el usuario está
aprendiendo. Y también permite desbloquear evaluaciones en el módulo de Evaluación.
•Módulo de Puntaje:
Este módulo permite realizar evaluaciones a los usuarios mediante ejercicios prácticos de
diagramación cuya dificultad irá en aumento a medida que vaya avanzando. A su vez genera
notas dependiendo del desempeño académico que el usuario demuestre en las evaluaciones.
2.2. DIAGRAMA DE PROCESOS
2.2.1. Subproceso de registro
Ilustración 6: Diagrama de Subproceso de Registro de datos
2.2.2. Subproceso de Ingreso de sesión
Ilustración 7: Diagrama de Subproceso de inicio de sesión.
2.2.3. Subproceso de módulo de Educación
Ilustración 8: Diagrama de subproceso de Módulo de Educación
2.2.4. Subproceso de Seguimiento de Avances
Ilustración 9: Diagrama de Subproceso de Seguimiento de avances.
2.3. MODELO DEL DOMINIO
Ilustración 10: Modelado del Dominio.
2.4. GLOSARIO DE TÉRMINOS
Tabla 6: Glosario de términos.
Término Descripción
Usuario Persona encargada de interactuar con la aplicación, cuyos datos principales y progreso en las actividades se guarda en la base de
datos.
Registro
Un registro es un conjunto de datos personales que es llenado por el usuario e incluido en una base de datos, entre estos datos se hallan un nombre y una contraseña que van a hacer posible que
ingrese al sistema.
Inicio de sesión Ingreso a la aplicación mediante un usuario y una clave las cuales
previamente fueron guardados en la base de datos.
Temas de estudio Son los contenidos que se presentan al usuario con el fin de que
éste los conozca, aprenda y posteriormente sea capaz de resolver problemas o ejercicios de estos temas.
Base de datos. Almacén digital donde se almacenan tanto los datos ingresados por
el usuario, como los datos generados por la misma aplicación.
Módulo Es una parte en la que se encuentra dividido el sistema.
Ejercicio Práctica y prueba de los conocimientos que se presentan en la
conceptualización de un tema.
Evaluación Práctica y prueba de los conocimientos que se presentan en la
conceptualización de un tema.
Nota Es la valoración que se entregará al finalizar una actividad de
acuerdo con la cantidad de aciertos obtenidos y estará asociada a los datos del Usuario.
Fuente: Autores.
3. REQUERIMIENTOS
Teniendo en cuenta la población a la que se dirige la aplicación se establecieron los siguientes
requerimientos funcionales y no funcionales gracias a los cuales se definieron los siguientes
casos de uso. Gracias a esta fase se facilita el entendimiento de los diferentes requisitos que
puede llegar a tener el sistema.
3.1. DEFINICIÓN DE REQUERIMIENTOS FUNCIONALES
Tabla 7: Definición de requerimientos funcionales.
Código. Descripción
ReqFun.1 La aplicación permite el inicio de sesión de acuerdo con los datos de los
estudiantes almacenados en la base de datos.
ReqFun.2 La aplicación permite que los usuarios se registren y verifica si el correo y/o
el documento de identidad ya se encuentran registrado.
ReqFun.3 La aplicación valida cualquier campo que es requerido y muestra los
respectivos mensajes de error.
ReqFun.4 La aplicación muestra ejemplos y conceptos de cada tema.
ReqFun.5 La aplicación permite al usuario elegir el tema de interés.
ReqFun.6 La aplicación permite un seguimiento, es decir un registro del tema,
ejercicios realizados, fecha y calificación.
ReqFun.7 El sistema mostrará las soluciones de los ejercicios si el estudiante lo
desea.
Fuente: Autores.
3.2. DEFINICIÓN DE REQUERIMIENTOS NO FUNCIONALES
Tabla 8: Definición de requerimientos no funcionales.
Código. Descripción
ReqNo.1
La aplicación solo podrá ser usada en dispositivos con el sistema operativo de Android
ReqNo.2
El desarrollo de la aplicación se llevará a cabo bajo el modelo aprendizaje constructivista.
ReqNo.3
Los temas, ejemplos, ejercicios y evoluciones propuestas en esta aplicación no podrán ser modificados por ningún actor.
ReqNo.4
El sistema consta de una base de datos la cual hace que los datos sean persistentes.
ReqNo.5
La aplicación contará con campos obligatorios que deberán ser validados, así como campos opcionales que no serán necesarios de llenar.
ReqNo.6
Dentro de las ejercicios y evaluaciones, si se oprime el botón siguiente o finalizar, y estas no se encuentran desarrolladas al 100%, se imprimirá en un mensaje anunciando que si desea continuar sin completar el ejercicio o
evaluación actual.
Fuente: Autores.
3.3. DEFINICIÓN DE ACTORES
Tabla 9: Definición de Actores.
Actor Estudiante (A1)
Estudiante
• El estudiante es la persona que interactúa con la aplicación
Nozomu.
• El estudiante podrá registrarse e identificarse para iniciar las
actividades.
• El estudiante podrá seleccionar y realizar las actividades de
acuerdo con el nivel de puntos que este posea.
• El estudiante podrá consultar de puntajes de los ejercicios y
evaluaciones realizadas.
Fuente: Autores.
3.4. LISTA PRELIMINAR DE CASOS DE USO POR ACTOR
3.4.1. Estudiante
Gestión de usuario:
1. Registro de datos de usuario.
2. Iniciar sesión.
3. Consultar datos de usuario.
4. Darse de baja.
5. Modificar datos de usuario.
6. Cerrar sesión.
7. Salir de la aplicación.
Gestión de material didáctico:
8. Seleccionar tema.
9. Mostrar tema.
10. Seleccionar tema de ejemplo.
11. Mostrar ejemplo.
Gestión de evaluación:
12. Seleccionar tema de evaluación.
13. Realizar evaluaciones.
14. Guardar nota evaluación.
15. Consultar nota de evaluación.
Gestión de ejercicio:
16. Seleccionar tema de ejercicio.
17. Seleccionar enunciado de ejercicio.
18. Realizar ejercicio.
19. Guardar nota ejercicio.
20. Consultar nota de ejercicio.
Gestión de instrucción:
21. Seleccionar tema de instrucción.
22. Mostrar instrucción.
3.5. MODELO DE CASOS DE CASOS DE USO
A continuación, describe los procesos que realizan el estudiante dentro del dentro de la
aplicación. Para más adelante entender que actividades específicas realizará este.
3.5.1. CASO DE USO ESTUDIANTE
Ilustración 11: Caso de uso Estudiante.
3.6. DOCUMENTACIÓN DE CASOS DE USO
Se presenta a continuación la documentación de los casos de uso relacionados en la tabla 6
“lista preliminar de casos de uso”, en ellos se describe el flujo de las actividades y actores que
intervienen. La documentación del resto de casos de uso se encuentra en el Anexo XX.
Tabla 10: Descripción Caso de uso 1: Registro de Datos nuevo usuario.
No. Caso de Uso: 1
Nombre: Registrar Nuevo Usuario.
Actor: Estudiante.
Descripción: El estudiante debe registrar sus datos personales en el formulario de Registro para poder iniciar sesión.
Flujo Principal:
Acción del actor Respuesta de la aplicación.
1. Seleccionar el botón “Registrar”. 4. Ingresar los datos en el “Formulario de registro”. 5. Dar clic en el botón “Guardar”.
2. Cargar “módulo de registro”. 3. Generar “formulario de registro”. 6. Validar existencia del Estudiante. 7. Almacenar datos del Estudiante si no se encuentra registrado en la base de datos. 8. Mostrar en pantalla: “Registro Exitoso.”
Flujo Alterno: 1. Seleccionar el botón “Registrar”. 3. Seleccionar el botón “Atrás” para volver a la pantalla principal.
2. Cargar “módulo de registro”. 4. Cargar “formulario de principal”.
Precondición: El estudiante debe haber llenado todos los datos del formulario correctamente.
Postcondición: Guardar los datos ingresados por el estudiante en la base de datos.
Excepción: En caso de que el estudiante se encuentre registrado el aplicativo imprimirá en pantalla: “Error, usuario ya se encuentra registrado”.
Fuente: Autores.
.
Tabla 11: Descripción Caso de uso 2: Iniciar sesión
No. Caso de Uso: 2
Nombre: Iniciar sesión.
Actor: Estudiante.
Descripción: En este módulo el estudiante podrá ingresar con su correo y con su clave para interactuar con el resto de los módulos de la aplicación.
Flujo Principal:
Acción del actor Respuesta de la aplicación.
1. Seleccionar el botón “iniciar Sesión”. 4. Ingresar correo y clave en el formulario de iniciar sesión. 5. Seleccionar botón “Ingresar”.
2. Cargar el “módulo Usuario”. 3. Generar el “módulo Usuario”. 6. Validar con la base de datos si el correo y clave ingresados corresponden a alguno de los usuarios presentes en la esta. 7. Generar “módulo de Aprendizaje”
Flujo Alterno:
1. Seleccionar el botón “iniciar Sesión”. 4. Seleccionar el botón “Atrás” para volver a la pantalla principal.
2. Cargar el “módulo Usuario”. 3. Generar el “módulo Usuario”.
Precondición: El Estudiante debe estar registrado en el sistema y debe ingresar los datos correctamente.
Postcondición: El estudiante podrá ingresar al módulo de aprendizaje para poder interactuar con ellas.
Excepción:
En caso de que el estudiante no esté registrado o escriba mal su correo o clave, la aplicación imprimirá en pantalla: “Datos ingresados no se encuentran en la base de datos, verifique si los ingreso correctamente o si no posee cuenta por favor regístrese”.
Fuente: Autores.
Tabla 12: Descripción Caso de uso 3: Consultar Datos Estudiante.
No. Caso de Uso: 3
Nombre: Consultar Datos Estudiante.
Actor: Estudiante.
Descripción: En este caso de uso el estudiante podrá consultar sus datos personales los cuales se encuentran en la en la base de datos.
Flujo Principal:
Acción del actor Respuesta de la aplicación.
1. Seleccionar opción “Ver Datos Personales”.
2. Realizar consulta en la base de datos en la tabla de usuario. 3. Formulario consulta datos usuarios. 4. Mostrar datos.
Flujo Alterno: No aplica.
Precondición: El estudiante debió haberse registrado, iniciado sesión y debió seleccionar “Opciones”.
Postcondición: El estudiante podrá salir de la opción ver datos personales, seleccionando la opción Atrás.
Excepción: No aplica.
Fuente: Autores.
Tabla 13: Descripción Caso de uso 4: Modificar Datos Estudiante.
No. Caso de Uso: 4
Nombre: Modificar datos estudiante.
Actor: Estudiante.
Descripción: En este caso de uso el estudiante podrá cambiar los datos correspondientes al nombre, Apellido y Correo que haya anotado previamente a la hora de registrarse.
Flujo Principal:
Acción del Actor. Respuesta de la aplicación.
1. Seleccionar opción modificar datos personales. 5. Modificar los datos en los campos correspondientes. 6. Seleccionar opción modificar datos. 8. Seleccionar opción SI.
2. Consultar datos del usuario. 3. Generar formulario de cambio de datos personales. 4. Poner datos consultados en la base de datos en los campos correspondientes. 7. Notificar sí está seguro de realizar cambios. 9. Guardar datos en la base de datos.
Flujo Alterno:
1. Seleccionar opción modificar datos personales. 5. Seleccionar opción Atrás. 8. Seleccionar opción SI.
2. Consultar datos del usuario. 3. Generar formulario de cambio de datos personales. 4. Poner datos consultados en la base de datos en los campos correspondientes. 6. Notificar sí está seguro de salir sin guardar. 9. Retornar al formulario principal.
Precondición: El estudiante debió haberse registrado, iniciado sesión y debió seleccionar “Opciones” previamente.
Postcondición: La aplicación devolverá al estudiante al formulario principal de la aplicación.
Excepción: Si el estudiante cambia el correo por otro que ya esté en la base de datos, la aplicación le impedirá guardar dicho dato.
Fuente: Autores.
Tabla 14: Descripción Caso de uso 5: Cerrar sesión.
No. Caso de Uso: 5
Nombre: Cerrar sesión.
Actor: Estudiante.
Descripción: Este Caso de uso permite al estudiante cerrar su instancia como usuario de la aplicación para que otros estudiantes puedan utilizar la aplicación.
Flujo Principal:
Acción del Actor. Respuesta de la aplicación.
1. Seleccionar opción cerrar sesión. 3. Seleccionar opción SI.
2. Notificar sí está seguro de cerrar sesión. 4. Borrar Datos de Sesión. 5. Generar formulario de inicio.
Flujo Alterno:
1. Seleccionar opción cerrar sesión. 3. Seleccionar opción NO.
2. Notificar sí está seguro de cerrar sesión. 4. Cerrar notificación.
Precondición: El estudiante debió haberse registrado y haber iniciado sesión previamente.
Postcondición: Al cerrar sesión cualquier otro estudiante que se encuentre previamente registrado podrá iniciar sesión.
Excepción: No aplica.
Fuente: Autores.
4. ANÁLISIS
En este capítulo se especifican a detalle cada uno de los casos de uso mediante diferentes
diagramas, tales como diagramas de secuencia, de actividad, de colaboración y de estado.
Por a los cuales se llega a comprender todos los actores y subsistemas que operan en cada
uno de los casos de uso.
4.1. DIAGRAMAS DE SECUENCIA
Para cada caso de uso se ha realizado un diagrama de secuencia, en el cual se busca mostrar
la interacción los actores y cómo interactúan con el sistema.
Ilustración 12: Modelado de Secuencia: Registrar Usuario.
Ilustración 13: Modelado de Secuencia: Iniciar sesión.
Ilustración 14: Modelado de Secuencia: Modificar Datos Estudiante.
Ilustración 15: Modelado de Secuencia: Realizar Evaluación.
Ilustración 16: Modelado de Secuencia: Seleccionar Tema Ejemplo.
Los demás casos de uso se encuentran en Anexos digitales al final del documento (Anexo B).
4.2. DIAGRAMA DE ACTIVIDAD
Con los diagramas de actividad se representa el comportamiento que cada uno de los casos
de uso, lo cual servirá para entender el funcionamiento del sistema y su comportamiento en
ciertos casos.
Ilustración 17: Modelado de Actividad: Registrar Usuario.
Ilustración 18: Modelado de Actividad: Iniciar sesión
Ilustración 19: Modelado de Actividad: Modificar Datos Estudiante.
Ilustración 20: Modelado de Actividad: Realizar Evaluación.
Ilustración 21: Modelado de Actividad: Seleccionar Tema Ejemplo.
Los demás casos de uso se encuentran en Anexos digitales al final del documento (Anexo C).
4.3. DIAGRAMA DE ESTADO
Es un diagrama que se utiliza para identificar los caminos que puede tomar la información
luego de ejecutar un proceso.
Ilustración 22: Modelado de Estado: Registrar Usuario.
Ilustración 23: Modelado de Estado: Iniciar sesión
Ilustración 24: Modelado de Estado: Modificar Datos Estudiante.
Ilustración 25: Modelado de Estado: Realizar Evaluación.
Ilustración 26: Modelado de Estado: Seleccionar Tema Ejemplo.
Los demás casos de uso se encuentran en Anexos digitales al final del documento (Anexo E).
5. DISEÑO
En la fase de diseño se establecen las clases que intervienen en la aplicación y se diseñan
las diferentes interfaces que se utilizan para la ejecución de esta. Mediante la adaptación del
diseño se hace consistente el entorno de implementación.
5.1 LISTA PRELIMINAR DE CLASES
A continuación, se muestra la lista preliminar de clases, las cuales no son más que una
abstracción de los elementos que se usarán en el correcto funcionamiento de la aplicación.
Tabla 33: Lista Preliminar de Clases
LISTA PRELIMINAR DE CLASES
Inicio De Sesión Enunciado
Estudiante Nota
Lecciones Puntaje
Ejercicios Datos De Sesión
Evaluaciones
Fuente: Autores.
5.2. DIAGRAMA DE CLASES
Se presenta a continuación el diagrama de clases representando las diferentes, clases,
propiedades y operaciones que integran el sistema.
En este modelo se especifica los aspectos relacionados con la interfaz de usuario empleando
un conjunto de modelos abstractos. Los diagramas faltantes se encuentran en el anexo K
Diagrama de clases.
5.3. MODELO DE INTERFAZ
En este modelo se especifica los aspectos relacionados con la interfaz de usuario empleando
un conjunto de modelos abstractos. Los diagramas faltantes se encuentran en el anexo D
Modelo Interfaz.
6. IMPLEMENTACIÓN
En la fase de implementación se describe las clases y objetos en ficheros fuente y ejecutables
de la aplicación. El resultado final es un sistema ejecutable. Al mismo tiempo se planifican qué
subsistemas deben ser implementados y en qué orden deben ser integrados, formando el Plan
de Integración.
6.1 SISTEMA DE PUNTUACIÓN
La calificación en la aplicación Nozomu se obtiene únicamente al realizar ejercicios o
evaluaciones.
6.1.1 Sistema de puntuación de los ejercicios
Inicialmente al resolver un ejercicio, el valor de este corresponderá a 100 puntos, si el
usuario lo resuelve en el primer intento, de lo contrario por cada intento fallido se restará
20 puntos al valor del ejercicio.
Después de 3 intentos fallidos y no haber solucionado el ejercicio correctamente se
bloquea el ejercicio hasta que el estudiante repase el material de enseñanza que
corresponde al ejercicio.
El estudiante tendrá la oportunidad de repetir el ejercicio para mejorar su puntaje.
6.1.2 Sistema de puntuación las evaluaciones
Cada evaluación tendrán un puntaje y una nota cualitativa. El puntaje de las
evaluaciones dependerá de la suma del puntaje de cada ejercicio que compongan la
evaluación. La nota de la evaluación se hallará sumando los puntos de cada ejercicio y
dividiéndolos por el número total de ejercicios. Para que el estudiante apruebe una
evaluación deberá obtener una nota superior al 70 % de la nota de la evaluación.
6.1.3 Puntaje General
El usuario contará con un puntaje general que lo ubicara en los cuatro niveles
establecidos:
● Principiante = 0 - 1299 puntos
● Intermedio = 1300 - 3399 puntos
● Avanzado = 3400 - 5099 puntos
● Experto = 5100 - 6600 puntos
6.2 MODELO PEDAGÓGICO
En esta aplicación se escogió el modelo pedagógico constructivista el cual permite que los
estudiantes puedan interactuar con la aplicación.
A través de mover o arrastrar elementos para completar los diagramas de flujo se busca que
el estudiante se familiarice con los conceptos básicos de programación y al mismo tiempo
ejercite su lógica para la resolución de ejercicios.
Ilustración 27: Modelo pedagógico Ejercicio
Ilustración 28: Modelo pedagógico Evaluación
6.3. DIAGRAMA DE PAQUETES
El diagrama de paquetes como su nombre lo indica permite representar de manera gráfica la
repartición o distribución de los diferentes elementos de la aplicación en los diferentes
paquetes de esta, se maneja una arquitectura MVC (modelo vista controlador). En este
diagrama podemos ver el funcionamiento del controlador con la base de datos de SqLite y con
las diferentes vistas las cuales se encuentran en el paquete Layout y Styles.
.
Ilustración 29: Diagrama de paquetes
6.4. DIAGRAMA DE DESPLIEGUE
Los diagramas de despliegue permiten modelar la arquitectura en tiempo de ejecución del
aplicativo Nozomu. Para esta aplicación se utilizó la arquitectura por capas MVC que permite
separar los datos y la lógica de negocio de la interfaz de usuario.
Ilustración 30: Diagrama de despliegue
6.5. DIAGRAMA DE COMPONENTES
Los diagramas de componentes facilitan la visualización de la estructura general del aplicativo
y el comportamiento de los casos de uso que estos componentes proporcionan y utilizan a
través de las interfaces.
Ilustración 31: Diagrama de componentes
7. PRUEBAS
En este capítulo se evidencian las diferentes pruebas correspondientes a la integración y
validación de los diferentes módulos presentes en el aplicativo con el fin de depurar los errores
y mejorar los aspectos estéticos y manejo de la aplicación.
7.1. PRUEBAS DE INTEGRACIÓN
Mediante las pruebas de integración se pudo constatar el correcto funcionamiento de los
diferentes casos de uso.
En base a los resultados obtenidos, podemos observar que más del 90% de los estudiantes
que presentaron la prueba han utilizado aplicaciones móviles con un fin educativo.
Tabla 34: Pruebas de integración
# Usuario Prueba Descripción Si No
1
Estudiante Registro de Datos. Permite al estudiante registrar sus datos personales, tales como nombres, apellidos y correos.
X
2
Estudiante Inicio de Sesión Permite al estudiante iniciar sesión mediante el ingreso de la clave y del correo.
X
3
Estudiante Realizar Ejercicios Permite al estudiante realizar los diferentes ejercicios dependiendo del nivel que posea.
X
4
Estudiante Realizar Evaluación Permite al estudiante evaluar los conocimientos en la lógica de programación dependiendo del nivel que posea.
X
5
Estudiante Visualizar Material de Enseñanza
Permite al estudiante visualizar los diferentes materiales de enseñanza que posee la aplicación.
X
6
Estudiante Visualizar ejemplo Permite al estudiante visualizar diferentes ejemplos de cada tema que posee la aplicación.
X
7
Estudiante Opciones de usuario.
Permite al estudiante cambiar diferentes aspectos y atributos dentro de la aplicación.
X
7.2. PRUEBAS DE VALIDACIÓN DE APLICACIÓN
Las pruebas de validación se realizaron con la herramienta de google formas de la suite de
google documentos, dentro de una sala de informática de la Universidad Distrital Francisco
José de Caldas en un curso de programación orientada a objetos (POO) del proyecto curricular
sistematización de datos. Donde participaron 18 estudiantes de segundo y tercer semestre.
.
8. CONCLUSIONES
• Según las pruebas de integración, y del sistema junto con la aceptación de la aplicación
evidenciada en las pruebas de validación de juego, se logra que la aplicación sea una
herramienta de apoyo en el aprendizaje de conceptos básico de la lógica de programación
para los estudiantes de primeros semestres que cursan carreras afines al desarrollo de
software.
• Se debe aprovechar el incremento en las nuevas tecnologías para adaptar la
enseñanza de la lógica de programación hacia los dispositivos móviles, dado que esto facilita
a las personas interesadas a aprender los fundamentos del desarrollo de software.
• Aunque no fue fácil, dado al gran trabajo que supone y a la gran complejidad que
supone la metodología RUP, la sensación final fue satisfactoria, en el momento en que se
eligió y aplicó al desarrollo del proyecto.
• La aplicación cuenta con un módulo de puntos, el cual puede ser utilizado como recurso
de evaluación por los maestros o por los mismos estudiantes para revisar los avances
constantes de estos últimos.
• Para el modelamiento de la base de datos fue fundamental realizar el proceso de
normalización de ésta, ya que éste permite eliminar la redundancia de datos y las relaciones
varios a varios entre las tablas. Como resultado se logró garantizar la integridad de los datos.
9. RECOMENDACIONES
Tras los resultados que arrojados de realización del proyecto se hace menester establecer las
siguientes recomendaciones:
• Para el uso de la aplicación Nozomu se recomienda usar terminales móviles con pantallas
grandes y claras con el fin de que sea más fácil observar y realizar las actividades.
• Utilizar esta aplicación siempre en posición vertical dado que todas sus interfaces fueron
desarrolladas para funcionar en dicha posición.
• Instalar la aplicación únicamente en dispositivos con Sistema Operativo Android con una
versión superior o igual a la 4.1.
En caso de continuar con el desarrollo del aplicativo, se recomienda:
• Desarrollar un módulo que permita conectar a distintos usuarios de distintos dispositivos
móviles por medio de internet para poder comparar y compartir resultados.
• Desarrollar un módulo que permita al estudiante realizar sus propias evaluaciones y
ejercicios para poderlos compartir con otros usuarios.
• Implementar nuevos mecanismos didácticos de carácter constructivista para así poder
mejorar la experiencia de los estudiantes.
REFERENCIAS
BIBLIOGRAFÍA
● Insudaste, J. (2016) Problemas de enseñanza y aprendizaje de los fundamentos de
programación. Revista educación y desarrollo social, 10 (2), 234-246. DOI:
erg/10/18359/reds.1701
● Fernández Corcho J.L, Cubo Delgado S. (2011). Modelos de comportamiento de los
estudiantes universitarios en las plataformas virtuales: un estudio de percepción de rol y
satisfacción. Campo Abierto Revista de educación Facultad de educación Universidad de
Extremadura. 30(1). 36.
● Sedeño A.M. (2012) La componente visual del videojuego como herramienta educativa.
Publicación extraída de la revista iberoamericana de educación.
● Lagos Salcedo P. (2012), Ingeniería de software educativo, teorías y metodologías que la
sustentan.
INFOGRAFÍA
1. Arenas París, R. (2014). Modelo para la Motivación del Aprendizaje de la Programación
utilizando Gamification. Recuperado el Junio de 28 de 2017, de Repositorio Universidad
Javeriana: http://pegasus.javeriana.edu.co/~CIS1410IS11/
2. Borges, P. (2012). Proyectos de sistemas informáticos. Recuperado el 7 de Febrero de
2017, de Universidad Hispanoamericana Justo Sierra:
http://es.slideshare.net/PaolaBorges/definiciones-de-sistemas-informaticos-11740753
3. Fernández, J. (2012). Metodología RUP y Ciclo de Vida. Recuperado el 28 de Junio de
2017, de GrupNADD: http://rupmetodologia.blogspot.com.co/2012/07/metodologia-rup-
y-ciclo-de-vida.html
4. García, M. (2016). Uso del Software Didáctico. Recuperado el 3 de Junio de 2017, de
Tec Digital. Revista Matemáticas, Educación e Internet:
http://tecdigital.tec.ac.cr/revistamatematica/ContribucionesN22001/MariaAdlia/pag4.ht
m,
5. Guerrero, L. A. (s.f.). Metodologia RUP. Recuperado el 19 de Junio de 2017, de
Universidad de Chile.: https://www.slideshare.net/AlexHernandez99/rup-1471691
6. Jiménez, C. (2016). “Dispositivos móviles Android”. Recuperado el 27 de Enero de
2017, de Internet Latinoamerica:
http://internetlatinoamerica.blogspot.com/2016/11/Android_en_el_mundo.html
7. Pickin, S., & Valls, M. (2010). Introducción a la Ingeniería de Software. Recuperado el
2 de Diciembre de 2016, de Universidad Carlos III: http://ocw.uc3m.es/ingenieria-
telematica/software-de-comunicaciones/transparencias/introduccion-a-la-ingenieria-
del-software
8. Ramírez, A. (2011). Paideia modelo pedagógico para la enseñanza de principios de
programación considerando la utilización Ambientes Virtuales de Aprendizaje (AVA).
Recuperado el 30 de Junio de 2017, de Repositorio Universidad Javeriana:
https://repository.javeriana.edu.co/bitstream/handle/10554/12665/RamirezAyalaAndre
sFelipe2012.pdf?sequence=1&isAllowed=y
9. Sánchez González, C. (s.f.). ONess: un proyecto open source para el negocio textil
mayorista desarrollado con tecnologías open source innovadoras. Recuperado el Mayo
de 25 de 2017, de Universidade da Coruña:
http://oness.sourceforge.net/proyecto/html/index.html
10. Tillmann, N., Halleux, J., & Xie, T. (2015). La enseñanza y el aprendizaje de
programación e ingeniería de software a través de juegos interactivos. Recuperado el
23 de Octubre de 2016, de http://taoxie.cs.illinois.edu/publications/hotsos15-
codehunt.pdf
11. Zaragoza, S. (s.f.). Desarrollando aplicaciones informáticas con el Proceso de
Desarrollo Unificado (RUP).Recuperado el 28 de Noviembre de 2016, de Universidad
Tecnológica del Valle del Mezquital:
http://www.utvm.edu.mx/OrganoInformativo/orgJul07/RUP.htm
ANEXOS
Anexo A. Diagramas de Secuencia
Anexo B. Diagramas de Actividad
Anexo C. Diagrama de Colaboración
Anexo D. Diagrama de Estado
Anexo E. Investigación Reprobación estudiantes.
Anexo F. Formato encuesta realizada.
Anexo G. Resultados de la encuesta.
Anexo H. Manual del usuario.
Anexo K. Diagrama de clases.