tesis ingenieria en sistemas computacionales

115
UNIVERSIDAD TECNOLÓGICA CENTROAMERICANA FACULTAD DE INGENIERÍA PROYECTO DE GRADUACIÓN Aplicación Móvil de Plataforma Educativa Moodle PREVIO A LA OBTENCIÓN DEL TÍTULO INGENIERO EN SISTEMAS COMPUTACIONALES PRESENTADO POR: 20841008 Joshua Odayr Welchez 20911219 Leonel Sánchez Duarte ASESOR: Ing. Iván Deras CAMPUS SAN PEDRO SULA

Upload: leonel-sanchez

Post on 03-Feb-2016

27 views

Category:

Documents


0 download

DESCRIPTION

Tesis de graduación

TRANSCRIPT

Page 1: Tesis Ingenieria en Sistemas Computacionales

UNIVERSIDAD TECNOLÓGICA CENTROAMERICANA

FACULTAD DE INGENIERÍA

PROYECTO DE GRADUACIÓN

Aplicación Móvil de Plataforma Educativa Moodle

PREVIO A LA OBTENCIÓN DEL TÍTULO

INGENIERO EN SISTEMAS COMPUTACIONALES

PRESENTADO POR:

20841008 Joshua Odayr Welchez

20911219 Leonel Sánchez Duarte

ASESOR: Ing. Iván Deras

CAMPUS SAN PEDRO SULA

Julio, 2014

AUTORIZACIÓN

Page 2: Tesis Ingenieria en Sistemas Computacionales

AUTORIZACIÓN DEL AUTOR(ES) PARA LA CONSULTA, LA REPRODUCCIÓN

PARCIAL O TOTAL, Y PUBLICACIÓN ELECTRÓNICA DEL TEXTO COMPLETO DE

TESIS DE GRADO.

Señores

CENTRO DE RECURSOS PARA EL APRENDIZAJE Y LA INVESTIGACION (CRAI)

San Pedro Sula

Estimados Señores:

La presentación del documento de tesis forma parte de los requerimientos y

procesos establecidos de graduación para alumnos de pregrado de UNITEC.

Nosotros, Joshua Odayr Welchez y Leonel Sánchez Duarte, de San Pedro Sula

autores del trabajo de grado titulado: Aplicación Móvil de Plataforma

Educativa Moodle® presentado y aprobado en el año 2014, como requisito

para optar al título de Profesional de Ingeniero En Sistemas Computacionales,

autorizo a:

Las Bibliotecas de los Centros de Recursos para el Aprendizaje y la

Investigación (CRAI) de la Universidad Tecnológica Centroamericana

(UNITEC), para que con fines académicos, pueda libremente registrar, copiar

y usar la información contenida en él, con fines educativos, investigativos o

sociales de la siguiente manera:

Los usuarios puedan consultar el contenido de este trabajo de grado en

la salas de estudio de la biblioteca y la página Web de la universidad.

Permita la consulta y la reproducción, a los usuarios interesados en el

contenido de este trabajo, para todos los usos que tengan finalidad

académica, ya sea en formato CD o digital desde Internet, Intranet,

etc., y en general para cualquier formato conocido o por conocer.

Page 3: Tesis Ingenieria en Sistemas Computacionales

De conformidad con lo establecido en el artículo 19 de la Ley de Derechos de

Autor y de los Derechos Conexos; los cuales son irrenunciables,

imprescriptibles, inembargables e inalienables.

Es entendido que cualquier copia o reproducción del presente documento con

fines de lucro no está permitida sin previa autorización por escrito de parte

de los principales autores.

En fe de lo cual, se suscribe la presente acta en la ciudad de San Pedro Sula a

los 21 días del mes de Agosto de dos mil catorce

04 de Agosto del 2014

__________________________________

__________________________________

Joshua Odayr Welchez Leonel Sánchez

Duarte

20841008 20911176

I. HOJA DE FIRMAS

Page 4: Tesis Ingenieria en Sistemas Computacionales

Los abajo firmantes damos fe, en nuestra posición de miembro de Terna,

Asesor y/o Jefe Académico y en el marco de nuestras responsabilidades

adquiridas, que el presente documento cumple con los lineamientos exigidos

por la Facultad de Ingeniería y los requerimientos académicos que la

Universidad dispone dentro de los procesos de graduación.

__________________________________________________________

Ing. Ivan Deras Asesor UNITEC

_________________________ ____________________________

_____________________________

Ing. Carlos Castro Ing. Carlos Gochez Ing.

Carlos Mejia

Miembro de Terna Miembro de Terna Miembro

de Terna

_______________________________ _______________________________

Ing. X o Arq. X Ing. X o Arq. X

Jefe Académico de X | UNITEC Decano de Facultad de Ingeniería

UNITEC

II. DEDICATORIA Y AGRADECIMIENTO

Page 5: Tesis Ingenieria en Sistemas Computacionales

A Dios.

Por habernos permitido llegar hasta este punto y dado salud para lograr

nuestros objetivos, además de su infinita bondad y amor.

A nuestras familias.

Por habernos apoyado en todo momento, por sus consejos, sus valores, por la

motivación constante que nos han permitido ser unas personas de bien, pero

más que nada, por su amor.

A nuestros maestros.

Por permitirnos aprender, por su esmero en la enseñanza para con nosotros y

su guía en todo momento, al Ing. Iván Deras por brindarnos apoyo y palabras

de aliento cada vez que la necesitamos y a La Lic. Mirtha Coto por colaborar

con nosotros para terminar este trabajo.

III. RESUMEN

El presente documento se basa en la investigación realizada para llevar a

cabo una aplicación móvil nativa en la plataforma Android con el objetivo de

facilitar y hacer más eficiente la interacción entre maestro y alumno en la

vida universitaria diaria dentro de Unitec, utilizando el API que provee

nuestra plataforma Moodle personalizada.

Con la aplicación podemos realizar las tareas más frecuentes que alumno y

maestro utilizan en la plataforma Moodle, además de brindar nuevos

Page 6: Tesis Ingenieria en Sistemas Computacionales

atributos y mejoras para maximizar el funcionamiento de las funciones de

dichas tareas, estos atributos corresponden a notificaciones de eventos

respecto a la clase y la mejora de comunicación dentro de la plataforma

entre maestros y alumnos o entre los alumnos mismos.

Para lograr que la aplicación pudiera contar con notificaciones elaboramos un

servicio para que funcione en el teléfono, dicho servicio monitorea cada vez

que el maestro asigne una tarea o suba un recurso, ya sea en la plataforma

web o en la aplicación móvil, la aplicación consume ese servicio y así logra

avisar al usuario que hay un evento que está ocurriendo en ese instante.

Para obtener la información necesaria para que la aplicación funcionase,

personalizamos nosotros mismos una plataforma Moodle y activamos el

atributo de servicio que tiene las funciones necesarias para ser consumidas

por la aplicación, dichas funciones únicamente retornan cadenas XML, así

que desarrollamos un algoritmo para parsear dichas cadenas, para obtener

el contenido de la clase contamos con un archivo de configuración del cual

un administrador se deberá encargar.

Dicho archivo contiene las secciones que la aplicación deberá buscar en el

objeto que se obtuvo del parseo del XML que devuelven las funciones, una

vez listo el archivo la aplicación lo consume y obtiene las categorías para el

contenido de la clase.

TABLA DE CONTENIDO

I. PLANTEAMIENTO DEL PROBLEMA..............................................................................................1

1.1 INTRODUCCIÓN......................................................................................................................1

1.2 ANTECEDENTES DEL PROBLEMA........................................................................................3

1.3 DEFINICIÓN DEL PROBLEMA.....................................................................................................3

Page 7: Tesis Ingenieria en Sistemas Computacionales

1.3.1 ENUNCIADO DEL PROBLEMA...........................................................................................3

1.3.2 PLANTEAMIENTO DEL PROBLEMA..............................................................................3

1.3.3 PREGUNTAS DE INVESTIGACIÓN................................................................................4

1.4 OBJETIVOS DEL PROYECTO.......................................................................................................4

1.4.1. OBJETIVO GENERAL..........................................................................................................4

1.4.2. OBJETIVOS ESPECÍFICOS...................................................................................................4

1.4.3. HIPÓTESIS.........................................................................................................................5

1.4.4. JUSTIFICACIÓN..................................................................................................................5

II. MARCO TEÓRICO........................................................................................................................6

2.1 Plataforma Moodle..................................................................................................................6

2..2.1 Instalar Moodle.........................................................................................................6

2..3 ACERCA DEL MOODLE....................................................................................................7

2..4 NAVEGACION EN MOODLE.............................................................................................8

2..5 FILOSOFIA DE MOODLE.................................................................................................9

2..6 MOODLE COMO EJEMPLO DE SOFTWARE LIBRE..........................................................10

.................................................................................................................................................11

2..7 CARACTERÍSTICAS DEL MOODLE..................................................................................11

2..8 ACCESO PARA USUARIOS REGISTRADOS......................................................................14

2..9 BLOQUES......................................................................................................................15

2..10 PARTICIPANTES.........................................................................................................15

2..11 ACTIVIDADES............................................................................................................17

2..12 BUSCAR EN LOS FOROS.............................................................................................18

2..13 ADMINISTRACION.....................................................................................................19

2..14 USUARIOS EN LÍNEA.................................................................................................19

2..15 MIS RECURSOS O CATEGORÍAS.................................................................................20

2..16 NOVEDADES.............................................................................................................20

2..17 CALENDARIO.............................................................................................................22

2..18 GESTIONAR UN EVENTO...........................................................................................24

2..19 EVENTOS PRÓXIMOS................................................................................................24

2..20 MENSAJES.................................................................................................................25

2.3 SISTEMA OPERATIVO ANDROID.............................................................................................26

2.3.1 HISTORIA........................................................................................................................27

Page 8: Tesis Ingenieria en Sistemas Computacionales

2.3.2. CARACTERÍSTICAS...........................................................................................................27

2.3.3 ARQUITECTURA DE ANDROID...................................................................................29

2.4 ECLIPSE FOUNDATION..............................................................................................32

2.5 JAVA................................................................................................................................36

2.6 JSON................................................................................................................................39

2.7 ¿QUÉ ES Y PARA QUE SIRVE JSON?......................................................................40

2.9 RESTFUL SERVICE......................................................................................................42

2.10 UBUNTU SERVER........................................................................................................44

2.11 AMAZON WEBSERVICE EC2....................................................................................45

2.11.1 CARACTERÍSTICAS DE AMAZON EC2...........................................................45

III. METODOLOGIA.....................................................................................................................47

3.1 CRONOLOGÍA DE TRABAJO.....................................................................................................47

3.2 MATERIALES..............................................................................................................58

3.2.1 DISPOSITIVO MÓVIL.................................................................................................58

3.2.2 INTERNET..................................................................................................................58

IV. Análisis de Proceso del Proyecto..........................................................................................58

V. CONCLUSIONES........................................................................................................................59

VI. RECOMENDACIONES............................................................................................................60

6.1 Seguridad...............................................................................................................................60

VII. BIBLIOGRAFÍA.......................................................................................................................61

Bibliografía.......................................................................................................................................61

VIII. ANEXOS................................................................................................................................62

8.1 Manual de Usuario.................................................................................................................62

1-Acceso.......................................................................................................................................63

.-Maestro:.....................................................................................................................................67

4- Ver tareas y recursos......................................................................................................69

Otras opciones de la barra de usuario...............................................................................74

8.2 DIAGRAMA DE CLASES............................................................................................................80

8.3 Glosario..................................................................................................................................81

Page 9: Tesis Ingenieria en Sistemas Computacionales

Tabla De Imágenes

Ilustración 1 Estructura de Moodle......................................................................7

Ilustración 2 Descripción de los bloques de navegación y ajustes......................9

Ilustración 3 Conceptos Principales de Moodle.................................................10

Ilustración 4 Logo Open Source........................................................................11

Ilustración 5 Acceso General Moodle................................................................14

Ilustración 6 Imagen de Participantes Parte de inicio.......................................16

Ilustración 7 Imagen de Participantes parte Final.............................................16

Ilustración 8 Imagen Actividades......................................................................18

Ilustración 9 Búsqueda en Moodle....................................................................18

Ilustración 10 Usuario en Línea en Moodle........................................................19

Ilustración 11 Categorías de Moodle.................................................................20

Ilustración 12 Novedades y Actividades Recientes Moodle...............................21

Page 10: Tesis Ingenieria en Sistemas Computacionales

Ilustración 13 Calendario de Moodle.................................................................23

Ilustración 14 Imagen de Sistema Operativo Android......................................26

Ilustración 15 Diagrama de Componentes del Sistema Operativo Android......31

Ilustración 16 Imagen de Eclipse......................................................................32

Ilustración 17 Imagen Restful Service...............................................................42

Ilustración 18 Imagen Semana 3.......................................................................47

Ilustración 19 Imagen Semana 7.......................................................................48

Ilustración 20 Imagen Semana 8.......................................................................49

Ilustración 21 Imagen Semana 9.......................................................................50

Ilustración 22 Imagen Semana 10....................................................................50

Ilustración 23 Imagen Semana 12....................................................................51

Ilustración 24 Imagen Semana 13.....................................................................52

Ilustración 25 Imagen Semana 20....................................................................53

Ilustración 26 CUADRO CRONOLOGICO.............................................................58

Page 11: Tesis Ingenieria en Sistemas Computacionales

I. PLANTEAMIENTO DEL PROBLEMA

1.1 INTRODUCCIÓN

Siendo el objetivo general de nuestro proyecto, desarrollar una aplicación móvil

que pueda facilitar y hacer más eficiente la interacción entre maestro y alumno

en la vida universitaria diaria dentro de Unitec a través de la configuración de un

Moodle personalizado y la creación de un archivo de configuración por medio de

un administrador.

Se decidió investigar acerca de la plataforma Android y las librerías que esta

provee y el consumo del API del Moodle a través de servicios web, dentro del

contenido de este marco teórico se trataran estos temas, así como el

funcionamiento de los mismos y las diferentes opciones que se encontraron para

lograr el funcionamiento deseado de librerías y API’s.

Primero se investigó el uso del Moodle dentro de la plataforma web y su

configuración, una vez entendido este tópico se decidió tratar de entender como

consumir el API de la plataforma, y que tipo de atributos proveía para que esto

sucediera, una vez logrado esto se procedió a entender los valores que proveía

la plataforma y como interpretarlos ya que los valores que se obtienen del API

son cadenas XML, así que se tuvo que lograr entender la estructura de dichos

valores.

Una vez entendido lo anterior, se prosiguió a interactuar con la plataforma

Android, las librerías que se podrían utilizar, además de adquirir el conocimiento

necesario para utilizar el IDE con el que se decidió trabajar, se investigó como

poder crear una aplicación y así mismo como crear widgets.

Página|1

Page 12: Tesis Ingenieria en Sistemas Computacionales

Una vez ya entendido el funcionamiento de la plataforma Android y la

plataforma Moodle se investigó la manera adecuada en la que entre ellas

podrían interactuar.

Así como hacer o enviar peticiones dentro de una plataforma móvil a una web y

viceversa, listo esto se procedió a la investigación para la creación de un servicio

móvil para lograr que el atributo de notificaciones de nuestra aplicación

funcionase, se tomaron en cuenta varias posibles soluciones al problema y a

través de la recopilación de datos llevo a la conclusión de utilizar a la que más

se adaptaba a las necesidades y requerimientos del software.

Luego se procedió a investigar la utilización de algún modelo o servicio que

pudiera proveer facilidad para la implementación del chat en la plataforma dado

que Moodle no provee ese atributo, nosotros tuvimos que desarrollarlo, la

plataforma educativa solo provee el uso de mensajes generales, así que con la

respuesta a nuestro problema adaptamos ese atributo para que esta función

pudiera funcionar.

Página|2

Page 13: Tesis Ingenieria en Sistemas Computacionales

1.2 ANTECEDENTES DEL PROBLEMA

La comunicación entre el maestro y alumno en la vida universitaria diaria no es

efectiva dando a lugar a que se presenten situaciones no deseadas que afectan

el rendimiento del alumno.

1.3 DEFINICIÓN DEL PROBLEMA

1.3.1 ENUNCIADO DEL PROBLEMA

Inexistencia de medios o recursos para plataformas móviles

dentro de las comunidades universitarias que faciliten el acceso a

los alumnos y maestros a la plataforma estudiantil Moodle.

1.3.2 PLANTEAMIENTO DEL PROBLEMA

- Investigar la configuración de la plataforma web Moodle.

- Investigar la manera de consumir del API que provee la

plataforma Moodle.

- Investigar el funcionamiento y librerías de la plataforma Android.

- Investigar la manera de elaborar servicios móviles.

- Lograr adaptar la plataforma Moodle con una aplicación móvil en

Android.

1.3.3 PREGUNTAS DE INVESTIGACIÓN

- ¿Es posible desarrollar una aplicación móvil sencilla y eficaz

para la plataforma educativa Moodle?

Página|3

Page 14: Tesis Ingenieria en Sistemas Computacionales

- ¿Es posible que la aplicación logre una comunicación efectiva

entre maestros y alumnos para mejorar el funcionamiento

individual de cada uno?

- ¿Es posible que la aplicación pueda conectarse y servir para

cualquier plataforma Moodle?

1.4 OBJETIVOS DEL PROYECTO

1.4.1. OBJETIVO GENERAL

Permitir la gestión e intercambio de datos mediante el desarrollo

de una aplicación móvil nativa en Android bajo la plataforma

educativa Moodle personalizada para facilitar la interacción entre

los roles más comunes entre los catedráticos y alumnado.

1.4.2. OBJETIVOS ESPECÍFICOS

Posibilitar y crear una configuración dentro del marco tecnológico

en el cual se identifiquen varias funciones y facilite el intercambio

académico.

Aprovechar el auge de la creación y optimización de sistemas

operativos para celulares inteligentes para crear una aplicación

académica eficiente.

Crear algoritmos que emulen funciones eficientes que sirvan de

complemento para el servicio que Moodle presta a desarrolladores

para el diseño de nuevas aplicaciones.

1.4.3. HIPÓTESIS

Página|4

Page 15: Tesis Ingenieria en Sistemas Computacionales

Con el posicionamiento e incremento del uso de una aplicación

para la plataforma Moodle for Android dentro del campus

universitario, la plataforma Moodle tendra mayor rentabilidad por

ser una aplicación gratuita y de fácil acceso siendo la forma más

eficaz para ingresar a la plataforma Moodle de Unitec, tomando en

cuenta los servicios básicos de información, transmisión e

intercambio de datos.

1.4.4. JUSTIFICACIÓN

La implementación de una aplicación móvil como extensión de una

plataforma educativa es gratis y al alcance de cualquier persona

que tenga un celular móvil que cumpla los requisitos de sistema

operativo, teniendo al alcance la posibilidad de interactuar sin

necesidad de una computadora con la clase virtual hace más fácil

el uso de las plataformas educativas ya sea por maestros o

alumnos.

II. MARCO TEÓRICO

2.1 PLATAFORMA MOODLE

Es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión

de cursos, de distribución libre, que ayuda a los educadores a crear

comunidades de aprendizaje en línea. La palabra Moodle significa Modular

Object-Oriented Dynamic Learning Environment (Entorno de Aprendizaje

Dinámico Orientado a Objetos y Modular). La difusión de este plataforma entre

Página|5

Page 16: Tesis Ingenieria en Sistemas Computacionales

institutos y universidades de todo el mundo va en aumento, estimándose en

más de dos millones los usuarios a escala mundial.

2.2.1 Instalar Moodle

Instalar la plataforma virtual es preciso contar con un servidor de

alojamiento "web" (puede ser local o en "Internet") que cuente con

el servidor Apache y un sistema de bases de datos como MySQL.

Sobre el servidor se instala (puede hacerse a distancia) la

plataforma Moodle (se descarga del sitio moodle.org y su última

versión estable es la 1.5.4).

Finalmente, la gestión de la plataforma se hace desde un entorno

"web", con un sistema visual y de ayuda bastante completa y en

castellano. Los contenidos, los accesos de los alumnos, las tareas

de éstos, las calificaciones que editan los profesores y todo tipo de

recursos se almacenan en la base de datos.

Los profesores pueden editar los contenidos y estructura del curso

en todo momento, así como gestionar un sistema de avisos y

agenda con acontecimientos y convocatorias. Los ejercicios y

actividades pueden ser calificados, puesto que cada alumno, con

su nombre de usuario y su contraseña, puede subir su ejercicio en

el formato que se la haya indicado y en el plazo que haya

establecido el profesor.

Página|6

Page 17: Tesis Ingenieria en Sistemas Computacionales

2.3 ACERCA DEL MOODLE

Moodle fue diseñado por Martin Dougiamas de Perth, Australia

Occidental, quien basó su diseño en las ideas del constructivismo

en pedagogía, que afirman que el conocimiento se construye en la

mente del estudiante en lugar de ser transmitido sin cambios a

partir de libros o enseñanzas y en el aprendizaje colaborativo. Un

profesor que opera desde este punto de vista crea un ambiente

centrado en el estudiante que le ayuda a construir ese

conocimiento con base en sus habilidades y conocimientos propios

en lugar de simplemente publicar y transmitir la información que

se considera que los estudiantes deben conocer.

Palabra Moodle era al principio un acrónimo de Modular Object-

Oriented Dynamic Learning Environment (Entorno de Aprendizaje

Dinámico Orientado a Objetos y Modular), lo que resulta

fundamentalmente útil para programadores y teóricos de la

educación. También es un verbo que describe el proceso de

deambular perezosamente a través de algo, y hacer las cosas

Página|7

Ilustración 1 Estructura de Moodle.

Page 18: Tesis Ingenieria en Sistemas Computacionales

cuando se te ocurre hacerlas, una placentera chapuza que a

menudo te lleva a la visión y la creatividad.

Las dos acepciones se aplican a la manera en que se desarrolló

Moodle y a la manera en que un estudiante o profesor podría

aproximarse al estudio o enseñanza de un curso en línea. Todo el

que usa Moodle es un Moodle.

2.4 NAVEGACION EN MOODLE

La navegación entre los cursos y las secciones principales de

Moodle se realiza a Través del bloque “Navegación”, situado

normalmente en la primera o segunda Posición de la columna

izquierda. Por ejemplo, desde este bloque se puede pasar

Fácilmente de un curso a otro. Además, para el profesor el bloque

“Ajustes”, situado También en la columna izquierda, tiene una

función fundamental a la hora de Gestionar los Recursos y

Actividades de un curso, ya que al acceder a alguno de ellos

Recoge todas las opciones para configurarlo y administrarlo.

Además otro elemento Que facilita el movimiento dentro de

Moodle es la Barra de navegación.

Página|8

Page 19: Tesis Ingenieria en Sistemas Computacionales

Ilustración 2 Descripción de los bloques de navegación y ajustes

2.5 FILOSOFIA DE MOODLE

El diseño y el desarrollo de Moodle se basan en una filosofía del

aprendizaje, una forma de pensar que a menudo se denomina

"pedagogía constructivista social". “Vamos a intentar explicar con

palabras sencillas qué significa esa frase desarrollando los cuatro

conceptos principales subyacentes, que son: Constructivismo,

Construccionismo, Constructivismo social, Conectados y

Separados”. (Gallego, 2014)

Página|9

Page 20: Tesis Ingenieria en Sistemas Computacionales

Ilustración 3 Conceptos Principales de Moodle

2.6 MOODLE COMO EJEMPLO DE SOFTWARE LIBRE

Moodle se distribuye gratuitamente como Software Libre (Open

Source), bajo Licencia pública GNU.

Esto significa que Moodle tiene derechos de autor (copyright), pero

que tenemos algunas libertades: podemos copiar, usar y modificar

Moodle siempre que aceptemos proporcionar el código fuente a

otros, no modificar la licencia original y los derechos de autor, y

aplicar esta misma licencia a cualquier trabajo derivado de él.

Es fácil de instalar en casi cualquier plataforma con un servidor

Web que soporte PHP. Sólo requiere que exista una base de datos

(y se puede compartir). Con su completa abstracción de bases de

datos, soporta las principales marcas de bases de datos (en

especial MySQL).

Finalmente, es importante destacar que, al ser Moodle una

aplicación Web, el usuario sólo necesita para acceder al sistema un

ordenador con un navegador Web instalado (Mozilla Firefox,

Internet Explorer, Safari o cualquier otro) y una conexión a

Página|10

Page 21: Tesis Ingenieria en Sistemas Computacionales

Internet. Por supuesto, también se necesita conocer la dirección

Web (URL) del servidor donde Moodle se encuentre alojado y

disponer de una cuenta de usuario registrado en el sistema

Ilustración 4 Logo Open Source

2.7 CARACTERÍSTICAS DEL MOODLE

A continuación se detallaran de forma resumida las principales características

que presenta Moodle en los tres niveles de relevancia:

- A NIVEL GENERAL:

- Interoperabilidad: Debido a que el sistema Moodle se distribuye

bajo la licencia GNU, propicia el intercambio de información

gracias a la utilización de los “estándares abiertos de la

industria para implementaciones web” (SOAP, XML…) Al usar un

lenguaje web popular como PHP y MySQL como base de datos,

es posible ejecutarlo en los diversos entornos para los cuales

están disponibles estás herramientas tales como Windows,

Linux, Mac, etc.

- Escalable: Se adapta a las necesidades que aparecen en el

transcurso del tiempo. Tanto en organizaciones pequeñas como

grandes se pueden utilizar la arquitectura web que presenta

Moodle.

Página|11

Page 22: Tesis Ingenieria en Sistemas Computacionales

- Personalizable. Moodle se puede modificar de acuerdo a los

requerimientos específicos de una institución o empresa. Por

defecto incluye un panel de configuración desde el cual se

pueden activar o cambiar muchas de sus funcionalidades.

- Económico. En comparación a otros sistemas propietarios

Moodle es gratuito, su uso no implica el pago de licencias u otro

mecanismo de pago.

- Seguro. Implementa mecanismos de seguridad a lo largo de

toda su interfaz, tanto en los elementos de aprendizaje como

evaluación.

- A NIVEL PEDAGÓGICO:

- Pedagógicamente flexible: Aunque Moodle promueve una

pedagogía constructivista social (colaboración, actividades,

reflexión crítica, etc.), es factible usarlo con otros modelos

pedagógicos.

- Permite realizar un seguimiento y monitorización sobre el

usuario.

- A NIVEL FUNCIONAL:

- Facilidad de uso.

- Permite gestionar los perfiles de usuario. Se puede almacenar

una gran cantidad de información útil sobre el alumno o

profesor, no solo los que aparecen por defecto. Esta

característica es muy útil para realizar estadísticas a varios

niveles.

- Facilidad de administración. Cuenta con un panel de control

central desde el cual se puede monitorizar el correcto

funcionamiento y configuración del sistema.

Página|12

Page 23: Tesis Ingenieria en Sistemas Computacionales

- Permite examinar en línea, a través de sus múltiples

herramientas de evaluación: cuestionarios, actividades, etc...

- Permite la presentación de cualquier contenido digital. Se puede

publicar todo tipo de contenido multimedia como texto, imagen,

audio y video para su uso dentro de Moodle como material

didáctico.

- Permite la gestión de tareas. Los profesores pueden asignar

tareas o trabajos prácticos de todo tipo, gestionar el horario y

fecha su recepción, evaluarlo y transmitir al alumno la

retroalimentación respectiva. Los alumnos pueden verificar en

línea su calificación y las notas o comentarios sobre su trabajo.

- Permite la implementación de aulas virtuales. Mediante el uso

de herramientas de comunicación se pueden realizar sesiones o

clases virtuales, en las cuales el profesor podría plantear y

resolver interrogantes, mientras que los alumnos aprovechan la

dinámica para interactuar tanto con el profesor así como con

otros alumnos.

- Permite la implementación de foros de debate o consulta. Esta

característica se puede usar para promover la participación del

alumnado en colectivo hacia el debate y reflexión. Así como

colaboración alumno a alumno hacia la resolución de

interrogantes. El profesor podría evaluar la dinámica grupal y

calificar el desarrollo de cada alumno.

- Permite la importación de contenidos de diversos formatos. Se

puede insertar dentro de Moodle, contenido educativo

proveniente de otras plataformas bajo el uso del estándar

SCORM, IMS, etc.

- Permite la inclusión de nuevas funcionalidades. La arquitectura

del sistema permite incluir de forma posterior funcionalidades o

características nuevas, permitiendo su actualización a nuevas

necesidades o requerimientos.

Página|13

Page 24: Tesis Ingenieria en Sistemas Computacionales

2.8 ACCESO PARA USUARIOS REGISTRADOS

ACCESO GENERAL

Para comenzar a crear o editar un curso, o simplemente visualizar algún

recurso o actividad, los usuarios registrados necesitan acceder al sitio Moodle

con un nombre de usuario y contraseña con condición de administrador o

profesor con derecho de edición en su curso, o bien ya está inscrito; para ello

debemos seguir las siguientes operaciones:

1. Accedemos a Internet de la manera habitual, utilizando uno de los

navegadores habituales, Moodle admite la mayoría de los navegadores de

Internet.

2. Tecleamos la dirección de Internet del sitio Moodle. En este caso

portal.Unitec.edu

3. En la parte superior derecha de la ventana de Moodle tienes el botón

Entrar para acceder. Haz clic sobre él. Teclea la caja de texto del Nombre

de usuario, después rellena la caja de la Contraseña facilitada por el

administrador o servicio técnico de la plataforma. Para acceder necesitas

introducir el nombre de usuario y la contraseña. Estos datos se han

asignado al darte de alta y habitualmente se entregan a través de un

correo electrónico.

Ilustración 5 Acceso General Moodle

Página|14

Page 25: Tesis Ingenieria en Sistemas Computacionales

2.9 BLOQUES

El aspecto del entorno que envuelve un curso en Moodle, puede

variar en función de las necesidades. Esta personalización se

consigue mediante el uso de los bloques. Los bloques se ubican en

las columnas laterales y tienen funcionalidades muy diversas:

informar, controlar, gestionar, etc. Algunos trabajan de forma

independiente y otros colaboran entre sí. A continuación se

describen los bloques establecidos por defecto en Moodle.

2.10 PARTICIPANTES

El bloque Personas contiene el enlace a Participantes que es un

listado de la totalidad de participantes del curso. Por defecto

aparecen ordenados por el último acceso al curso pero se pueden

cambiar los criterios de ordenación haciendo clic en

Nombre/Apellidos, Ciudad, País o Última entrada. La clase de

ordenación, ascendente o descendente, la indica una pequeña

flecha; si repetimos la acción sobre el mismo elemento, cambia la

clase de ordenación También, podemos ordenarlos

alfabéticamente por la letra inicial del nombre o apellido.

Si el número de estudiantes es muy grande, Moodle nos los

presenta en varias páginas (típicamente de 20 estudiantes).

Podemos ver los siguientes pulsando sobre la página deseada o

sobre la siguiente. Existe la posibilidad de visionar todos los

estudiantes en la misma página haciendo clic en el enlace que

aparece al pie de la página con el nombre Mostrar La lista de

participantes se puede mostrar con mayor detalle seleccionado la

opción Más detalle de la lista desplegable Lista de usuarios.

Página|15

Page 26: Tesis Ingenieria en Sistemas Computacionales

Ilustración 6 Imagen de Participantes Parte de inicio

Ilustración 7 Imagen de Participantes parte Final.

2.11 ACTIVIDADES

El bloque de Actividades lista todas las categorías de actividades

disponibles en el curso (foros, consultas, tareas, etc.). La primera

vez que se entra en un curso nuevo sólo se muestra los Foros,

puesto que la plataforma automáticamente genera el foro de

Página|16

Page 27: Tesis Ingenieria en Sistemas Computacionales

novedades. Los otros tipos de actividades se irán mostrando tal y

como vaya añadiendo al curso.

También podemos navegar por los tipos actividades de desde este

bloque. Al hacer clic sobre alguna de ellas aparecerán todas las

actividades visibles del curso de ese tipo, independientemente del

tema en las que estén ubicadas.

En todas las actividades nos muestra en la primera columna el

tema o semana en la que se encuentra cada actividad; las otras

columnas del listado dependen de cada actividad. ACTIVIDADES El

bloque de Actividades lista todas las categorías de actividades

disponibles en el curso (foros, consultas, tareas, etc.).

La primera vez que se entra en un curso nuevo sólo se muestra los

Foros, puesto que la plataforma automáticamente genera el foro

de novedades. Los otros tipos de actividades se irán mostrando tal

y como vaya añadiendo al curso. También podemos navegar por

los tipos actividades de desde este bloque. Al hacer clic sobre

alguna de ellas aparecerán todas las actividades visibles del curso

de ese tipo, independientemente del tema en las que estén

ubicadas. En todas las actividades nos muestra en la primera

columna el tema o semana en la que se encuentra cada actividad;

las otras columnas del listado dependen de cada actividad.

Ilustración 8 Imagen Actividades

Página|17

Page 28: Tesis Ingenieria en Sistemas Computacionales

2.12 BUSCAR EN LOS FOROS

El bloque Buscar en los foros permite buscar entre los mensajes

publicados en todos los foros de un curso la información tecleada

en el cuadro de texto del bloque. Las búsquedas emplean la

sintaxis típica en buscadores:

- Búsqueda simple de una o más palabras: Se escriben separadas por

espacios.

- Búsqueda exacta: Se encierra la palabra o frase entre comillas

dobles.

- Forzar coincidencia exacta: Colocar el signo “+” delante de la

palabra.

- Excluir palabras de la búsqueda: Colocar el signo “-“delante de las

palabras

Ilustración 9 Búsqueda en Moodle

2.13 ADMINISTRACION

Mediante este bloque podemos acceder a diferentes herramientas

administrativas en función del perfil que tengamos asignado.

Desde estas opciones el alumno puede, por ejemplo, examinar sus

calificaciones o cambiar su contraseña. Por otra parte, el profesor

puede configurar el curso, consultar informes, etc… Cuanto mayor

sea el nivel de privilegios, más opciones estarán habilitadas. En

Página|18

Page 29: Tesis Ingenieria en Sistemas Computacionales

unidades posteriores trataremos con más detalle los diferentes

apartados de este bloque.

2.14 USUARIOS EN LÍNEA

El bloque de Usuarios en línea muestra los usuarios matriculados

(no muestra los invitados) del curso actual y presentes en un

período de tiempo fijado por el administrador del sitio (por defecto

son los últimos 5 minutos).

Si mantenemos el cursor sobre el nombre de alguien, nos indicara

cuánto tiempo hace esa persona ha realizado un clic en el curso. Si

hacemos clic sobre el icono del sobre al lado del nombre de

alguien, podremos enviar un mensaje privado a esa persona,

utilizando el sistema de mensajería interna.

Ilustración 10 Usuario en Línea en Moodle

2.15 MIS RECURSOS O CATEGORÍAS

El bloque Categorías muestra un listado de todos los cursos en los

que estamos matriculados o somos profesores, y puede utilizarse

para moverse rápidamente entre esos cursos. Debajo de esta lista,

aparece el vínculo Todos los cursos…, que lleva a una página

donde se muestran todos los cursos del sitio agrupados por

Página|19

Page 30: Tesis Ingenieria en Sistemas Computacionales

categorías (esto no quiere decir que se pueda entrar en ellos). Los

administradores ven en este bloque todas las categorías de cursos

disponibles y un enlace para buscar un curso concreto.

Ilustración 11 Categorías de Moodle

2.16 NOVEDADES

El bloque Novedades presenta las cabeceras de las últimas noticias

o mensajes publicados por el profesor en el Foro Novedades.

Siguiendo el hipervínculo más… se accede al foro donde está

publicada la noticia y se puede ver el mensaje completo.

En principio, todos los estudiantes de un curso están suscritos a

este foro, de forma que también recibirán estos mensajes en su

correo particular. La función de este bloque es mantener informado

al usuario de las noticias publicadas en el Foro de Novedades, ya

que es el sitio que suele utilizar el profesorado para dejar todas

aquellas noticias o instrucciones importantes para el desarrollo del

curso.

Por ejemplo, recordatorios sobre entrega de determinados

trabajos, la convocatoria de tutorías ,el comienzo de un foro o

Página|20

Page 31: Tesis Ingenieria en Sistemas Computacionales

debate especial, la convocatoria de exámenes o la publicación de

calificaciones, etc…

Ilustración 12 Novedades y Actividades Recientes Moodle

2.17 CALENDARIO

Sirve para mantener una visión organizada de las fechas y plazos

importantes para el seguimiento de los cursos en los que se

participa: exámenes, entrega de trabajos, tutorías, etc...

Existen cuatro categorías de eventos temporales que podemos

controlar con el calendario y cada uno de ellas está identificado

con un color de fondo en el bloque:

- Eventos globales. Para los usuarios de toda la plataforma tales

como fechas de inicio de curso, suspensión del servicio por

Página|21

Page 32: Tesis Ingenieria en Sistemas Computacionales

mantenimiento, etc. Sólo los administradores del sistema

pueden publicar este tipo de eventos.

- Eventos de curso. Para los estudiantes de un curso tales como

fechas de exámenes, entrega de tareas, tutoría,… Estos eventos

serán visibles por todos los participantes del curso y sólo

pueden ser publicados por el profesorado.

- Eventos de grupo. Similares a los eventos de curso, pero en este

caso afectan sólo a un determinado grupo creado dentro de un

curso. Sólo los profesores pueden publicar este tipo de eventos.

- Eventos de usuario. Son fechas importantes para cada usuario

particular. Estos eventos son visibles en el calendario del

usuario que los genera, pero no en el de los demás usuarios. Los

crea el propio usuario a modo de agenda.

- Todas las actividades con fecha límite serán eventos del

calendario automáticamente. Cuando se desplaza el cursor

sobre el calendario en un día marcado por un evento, se

despliegan pequeñas ventanas informativas. Haciendo clic sobre

los nombres de los eventos en el pie del bloque de calendario se

puede activar o desactivar la información de cada evento.

- En la parte superior de este módulo encontramos una pequeña

barra de navegación que permite mostrar el mes anterior o el

siguiente. Se pueden ocultar o mostrar varias categorías de

eventos haciendo clic sobre el enlace del evento

correspondiente situado debajo del calendario. De esta forma,

se puede facilitar la lectura del calendario, especialmente si éste

contiene muchos eventos.

- El nombre del mes actual es un hipervínculo que nos conduce a

la agenda de dicho mes. Esta agenda muestra una vista del mes

seleccionado con información detallada sobre los diferentes

eventos. A la derecha, muestra una vista trimestral, con los

meses anterior y posterior al seleccionado, lo que permite

controlar mejor las fechas de inicio y fin de mes.

Página|22

Page 33: Tesis Ingenieria en Sistemas Computacionales

Ilustración 13 Calendario de Moodle

2.18 GESTIONAR UN EVENTO

Se puede agregar un nuevo evento desde cualquiera de las

opciones anteriormente mencionadas. Tras elegir el tipo de

evento, se abrirá el Editor de eventos, que es un formulario con

los siguientes campos:

- Nombre: el contenido de este campo será el que aparezca

sobre el calendario cuando pasemos el puntero del ratón

por encima de una fecha marcada y en la vista mensual.

- Descripción: es el texto que aparecerá en la vista diaria

del calendario y puede incluir además de texto, imágenes,

tablas, etc.

- Fecha y hora: necesarias para fijar el evento en el

calendario.

Página|23

Page 34: Tesis Ingenieria en Sistemas Computacionales

- Duración: es posible indicar la duración del evento.

Incluso se puede especificar otra fecha posterior, y el

calendario marcará todo el intervalo (incluso varios días).

- Repetición: se puede especificar si un evento se debe

repetir semanalmente. Para ello, sólo hay que indicar

durante cuantas semanas ha de marcarse el evento.

2.19 EVENTOS PRÓXIMOS

El bloque Eventos próximos muestra una lista de los

acontecimientos próximos, ya sea un evento global, de curso o

de usuario, en el calendario, con enlaces al contenido del

acontecimiento señalado. El rango de días a incluir en la lista lo

determina el administrador del sitio.

Ya hemos visto que los eventos se pueden programar en el

calendario y que todas las actividades con fecha límite generan

un evento automáticamente en el calendario. Así pues, este

bloque está directamente relacionado con el calendario y

subordinado a él.

Este bloque puede contener varios enlaces que llevan a la

propia actividad que genera el evento, a la Vista de Día del

calendario, a la Vista de Eventos próximos y para introducir un

nuevo evento. La configuración de lo que Moodle debe

considerar un evento próximo se realiza en la página de

Preferencias del módulo de Calendario. Al hacer clic en una

fecha, se va a la vista para ese día del calendario. Si el título del

evento es un enlace, al hacer clic sobre él, nos llevará a ese

evento.

2.20 MENSAJES

El bloque Mensajes constituye un sistema de mensajería interna

de sistema que permite la comunicación directa entre todos los

usuarios del sitio sin necesidad de usar el correo electrónico.

Página|24

Page 35: Tesis Ingenieria en Sistemas Computacionales

Profundizaremos cuando tratemos los elementos de

comunicación.

2.3 SISTEMA OPERATIVO ANDROID

Ilustración 14 Imagen de Sistema Operativo Android

Esta plataforma permite el desarrollo de aplicaciones por terceros

(personas ajenas a Google), para lo cual, los desarrolladores deben de

escribir código gestionado en el lenguaje de programación Java y

controlar los dispositivos por medio de bibliotecas desarrolladas o

adaptadas por Google, es decir, escribir programas en C u otros

lenguajes, “utilizando o no las bibliotecas de Google (compilándolas a

código nativo de ARM). La mayoría del código fuente de Android ha

Página|25

Page 36: Tesis Ingenieria en Sistemas Computacionales

sido publicado bajo la licencia de software Apache, una licencia de

software libre y código fuente abierto”.  (Hernandez, 2011)

2.3.1 HISTORIA.

Fue desarrollado por Android inc., empresa comprada por

Google en 2005. Inicialmente el sistema se desarrolló

exclusivamente por Google pero más tarde pasó a formar parte

de la Open Handset Alliance, la cual está liderada por Google.

Una de las ventajas que contiene el SO es que permite que

personas ajenas a Google desarrollen aplicaciones, como es mi

propio caso, así consiguen que las aplicaciones basadas en el

sistema sean mucho mayores que las de los sistemas cerrados,

y esto repercute en la venta de terminales con Android SO.

El primer teléfono que salió al mercado con este dispositivo fue

el HTC G1 o Dream lanzado originalmente en EEUU a finales de

2008, venía con la versión Android 1.0 instalada y rápidamente

se convirtió en un éxito de ventas, actualmente la versión 2.3

poco tiene que ver ya con el anticuado sistema 1.0

2.3.2. CARACTERÍSTICAS.

Las características más relevantes son:

- Diseño de dispositivo, Android permite la utilización de

casi cualquier resolución móvil disponible hasta día de

hoy lo que hace el sistema adaptable desde pantallas

de 2,5” hasta tabletas de 10” Además permite el uso

de librerías de gráficos en 2D y 3D.

- Almacenamiento, se realiza mediante SQLite como ya

he mencionado anteriormente.

- Conectividad Soporte para estas redes de conectividad

inalámbrica: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS,

Bluetooth, Wi-Fi, LTE, y WiMAX.

Página|26

Page 37: Tesis Ingenieria en Sistemas Computacionales

- Mensajería, tanto las formas tradicionales de

mensajería en España como son SMS y MMS como los

correos electrónicos con sistema push son bien

recibidos en Android.

- Navegador web, basado en el motor WebKit, usado por

ejemplo en Chrome o Safari y mediante el motor de

JavaScript V8 el navegador nativo de Android es uno

de los mejores a nivel de SO móviles.

- Soporte de Java, realmente Android no dispone de una

máquina virtual de java como tal, debido a que los

dispositivos móviles son de escasos recursos así que

se apoya en la máquina virtual de Dalvik para ejecutar

el código java.

- Soporte multimedia, Android soporta la mayoría de los

formatos multimedia más relevantes de hoy en día, en

concreto: WebM, H.263, H.264 (en 3GP o MP4), MPEG-

4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HE-

AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg

Vorbis, WAV, JPEG, PNG, GIF, BMP.61

- Soporte para streaming, El soporte para streaming de

descarga en HTML se hace de forma nativa, pero el

soporte para adobe flash se hace mediante una

aplicación que proporciona Adobe, aunque lo cierto es

que son los dispositivos actuales los que está

empezando a ejecutar aplicaciones o visualizaciones

en Adobe Flash, los terminales con una año de

antigüedad no lo soportan.

- Market, Dispone de un mercado de aplicaciones

(Android Market) permitiendo de este modo descargar

e instalar aplicaciones sin necesidad de un PC.

Actualmente este mercado sobrepasa las 100.000

aplicaciones y sigue aumentando rápidamente.

Página|27

Page 38: Tesis Ingenieria en Sistemas Computacionales

- Multi-táctil, se incluyen las funciones multitáctiles de

forma nativa para todos los dispositivos Android que

dispongan de una pantalla con esta capacidad.

Multitarea, para todas las aplicaciones y desde su

primera versión.

2.3.3 ARQUITECTURA DE ANDROID

Los componentes del sistema operativo de Android, cada

sección se describe en detalle a continuación:

Aplicaciones: Las aplicaciones base incluyen un cliente de email,

programa de SMS, calendario, mapas, navegador, contactos, y otros.

Todas las aplicaciones son escritas en el lenguaje de programación

Java.

Framework de aplicaciones: Los desarrolladores tienen acceso

completo a los mismos APIs del framework usados por las aplicaciones

base. La arquitectura está diseñada para simplificar la reutilización de

componentes; cualquier aplicación puede publicar sus capacidades y

cualquier otra aplicación puede hacer luego uso de esas capacidades

(sujeto a reglas de seguridad del framework). Éste mismo mecanismo

permite que los componentes sean reemplazados por el usuario. Una

capa de servicios disponibles para las aplicaciones incluye:

- Un completo y extensible conjunto de vistas que pueden ser

utilizadas para desarrollar una aplicación: listas, grillas, cajas

de texto, botones e incluso un web browser.

- Proveedores de contenidos que permiten el acceso a datos

provenientes de otras aplicaciones (cómo Contactos), o a

compartir sus propios datos.

Página|28

Page 39: Tesis Ingenieria en Sistemas Computacionales

- Un administrador de recursos, que provee acceso a recursos

como cadenas, gráficos, y archivos.

- Un administrador de notificaciones que permite a todas las

aplicaciones mostrar alertas personalizables en la barra de

estatus.

- Un administrador de actividades que maneja el ciclo de vida

de las aplicaciones y provee un comportamiento común en la

navegación.

Librerías: Android incluye un conjunto de librerías C/C++ usadas

por varios componentes del sistema Android. Estas capacidades se

exponen a los desarrolladores a través del framework de

aplicaciones de Android. Algunas son: System C library

(implementación librería C standard), librerías de medios, librerías

de gráficos, 3d, SQLite, entre otras.

Runtime de Android: Android incluye un conjunto de librerías base

que proveen la mayor parte de las funcionalidades disponibles en

las librerías base del lenguaje de programación Java. Cada

aplicación Android corre su propio proceso, con su propia instancia

de la máquina virtual Dalvik. Dalkiv ha sido escrito de forma que un

dispositivo puede correr en múltiples máquinas virtuales de forma

eficiente. Dalkiv ejecuta archivos en el formato Dalvik Executable

(.dex), el cual está optimizado para memoria mínima. La Máquina

Virtual está basada en registros, y corre clases compiladas por el

compilador de Java que han sido transformadas al formato.dex por

la herramienta incluida "dx".

Núcleo - Linux: Android depende de un Linux versión 2.6 para los

servicios base del sistema como seguridad, gestión de memoria,

gestión de procesos, stack de red, y modelo de drivers. El núcleo

también actúa como una capa de abstracción entre el hardware y el

Página|29

Page 40: Tesis Ingenieria en Sistemas Computacionales

resto del stack de software.

Ilustración 15 Diagrama de Componentes del Sistema Operativo

Android}

Página|30

Page 41: Tesis Ingenieria en Sistemas Computacionales

2.4 ECLIPSE FOUNDATION

Ilustración 16 Imagen de Eclipse

Eclipse es una plataforma de desarrollo open source basada en

Java. Se comporta como una aplicación nativa. Está programada

en SWT y Jface (juego de herramientas construida sobre SWT),

que emula los gráficos nativos de cada sistema operativo. En los

proyectos de Java puede usarse AWT y Swing salvo cuando se

desarrolle un plugin para Eclipse.

Esto lo transforma en una plataforma ligera para componentes

de software. La interfaz de usuario de Eclipse también tiene una

capa GUI intermedia llamada JFace, la cual simplifica la

construcción de aplicaciones basada en SWT. En cuanto a las

aplicaciones clientes, eclipse provee frameworks muy extensos

para el desarrollo de aplicaciones gráficas, definición y

manipulación de modelos de software, aplicaciones web, etc.

Página|31

Page 42: Tesis Ingenieria en Sistemas Computacionales

Por ejemplo: GEF es un plugin de eclipse para el desarrollo de

editores visuales que pueden ir desde procesadores de texto,

hasta editores de diagramas UML, etc. Núcleo: se encarga de

determinar cuáles son los plugins disponibles en el directorio de

plugins . Cada plugin tiene un fichero XML que lista los

elementos y la extensión que necesita de otros plugins . Como

puede haber muchos plugins, solo se cargan los necesarios en el

momento de ser utilizados con el objeto de minimizar los

recursos y el tiempo de arranque de Eclipse.

Entorno de trabajo: se encarga de los recursos del usuario,

organizados en uno o más proyectos. Cada proyecto

corresponde a un directorio en el directorio de trabajo de

Eclipse, y contienen archivos y carpetas.

Utilizamos como IDE Eclipse por legibilidad y previo

conocimiento además de compatibilidad con el SDK de Android,

aunque también se pudieron haber usado NetBeans ó InteliJidea.

2.4.1 CREACIÓN DE UN PROYECTO

Eclipse permite organizar los ficheros en forma de proyecto.

Para crear un proyecto Java procederemos del siguiente modo:

Seleccionando en el menú File − New −Project o pulsando con el

botón derecho del ratón sobre la vista Navigator en la

perspectiva Resource y seleccionando New − Project.

1. Aparece una ventana en la que se puede seleccionar el tipo de

proyecto. En este caso se pulsa sobre Java en la parte izquierda y

Java Project en la derecha. Pulsar sobre el botón Next.

2. A continuación se piden los datos sobre el proyecto (nombre y ruta

donde se almacenarán los ficheros asociados al proyecto). Una vez

introducidos se pulsa sobre Finish.

Página|32

Page 43: Tesis Ingenieria en Sistemas Computacionales

3. Eclipse abre automáticamente la perspectiva Java cuando se crea

un proyecto Java. Se crea el directorio especificado con dos ficheros

.Project y .classpath que contienen información sobre el proyecto.

La vista Navigator de la perspectiva Resource y la vista Package

Explorer de la perspectiva “Java contienen un directorio con el

nombre del proyecto. Como se comentó anteriormente se puede

pasar de una perspectiva a otra pulsando sobre los botones de la

barra vertical izquierda”. (Gutierrez, 2004)

4. Hay una perspectiva más asociada con Java, se puede abrir del

siguiente modo: Window −Open perspective − Java browsing . En

esta perspectiva aparecen views correspondientes al proyecto, a

paquetes, a clases e interfaces y a los miembros de estas.

2.4.2 PROGRAMAR CON ECLIPSE

Cuando se crea una nueva clase se puede ver, en la ventana Editor,

que algunas palabras están coloreadas de forma diferente. Este

marcado de palabras es debido a que los Editores Java que

implementa el plugin JDT, incluyen capacidad para realizar syntax

highlighting (o reconocimiento sintáctico de palabras reservadas del

lenguaje). De esta forma, las palabras reservadas del lenguaje

aparecerán escritas en negrita y en color Burdeos, los comentarios en

verde y los comentarios de documentación en azul.

Aparte de identificar las palabras reservadas del lenguaje, JDT puede

detectar, y marcar sobre el código de un programa, los lugares donde

se pueden producir errores de compilación. Esta característica

funciona de forma muy parecida a los correctores ortográficos que

tienen los procesadores de textos Cuando Eclipse detecta un error de

compilación, se marcará la sentencia errónea, subrayándola con una

línea ondulada roja (o amarilla, si en lugar de un error se trata de un

warning). Si el programador posiciona el puntero del ratón sobre la

Página|33

Page 44: Tesis Ingenieria en Sistemas Computacionales

instrucción que produjo el fallo, se mostrará una breve explicación de

por qué dicha instrucción se ha marcado como errónea.

Cada línea de código que contenga un error (o un warning), será también marcada

con un icono de error (o warning) que aparecerá en la barra de desplazamiento

izquierda del editor. Si el programador pulsa una vez sobre dicha marca (se

desplegará un menú pop-up mediante el cual, Eclipse mostrará posibles soluciones

para los errores detectados. Si se acepta alguna de las sugerencias del menú pop-

up, Eclipse se encargará de llevar a cabo dicha solución, de forma completamente

automática.

Un entorno de desarrollo no puede considerarse como útil, en la práctica, si no

dispone de la capacidad de completar automáticamente las sentencias que está

escribiendo el programador. El mecanismo de “code completion” en Eclipse es muy

similar al que implementan otros IDEs: cuando se deja de escribir durante un

determinado intervalo de tiempo se muestran, si los hay, todos los términos

(palabras reservadas, nombres de funciones, de variables, de campos, etc.) que

empiecen por los caracteres escritos. Si se escriben determinados caracteres (como

el punto, por ejemplo) se puede provocar la ejecución del mecanismo de “code

completion” sin necesidad de esperar a que pase el tiempo establecido.

Otra característica relacionada con el code completion es la asistencia a la escritura

en llamadas a funciones. Automáticamente, cuando se van a escribir los

parámetros que se pasan a un método, se muestra una caja de texto indicando los

tipos que éstos pueden tener.

De forma similar a muchos otros entornos de desarrollo, Eclipse permite definir y

utilizar templates. Los templates son plantillas de código (generalmente porciones

de código de uso habitual y muy repetitivo) que se escriben automáticamente.

Página|34

Page 45: Tesis Ingenieria en Sistemas Computacionales

Los templates están compuestos de dos partes: un bloque de código (o de

comentario), de uso frecuente, que se escribe automáticamente y una cadena que

provoca la escritura del template. Las cadenas que disparan templates serán

reconocidas por el sistema de code completion, con la diferencia de que, en lugar

de terminar la escritura de la cadena, ésta será sustituida por el template que tiene

asociado.

En el punto anterior, se comentaban algunas de las facilidades que ofrece Eclipse

para crear y manipular bloques de código de una forma fácil y cómoda, evitando el

tedio de tener que realizar todo el trabajo a mano. Todas las operaciones de

manejo de código explicadas trabajan, únicamente, con código escrito sobre un

mismo fichero (o perteneciente a una misma clase). Si las modificaciones que se

quieren realizar deben involucrar a varias clases, escritas en varios ficheros

diferentes, todos ellos pertenecientes al mismo proyecto, entonces se pueden

utilizar las herramientas de Refactorización.

2.5 JAVA

Lenguaje de programación orientado a objetos, independiente del sistema

operativo, que se utiliza, especialmente, en las aplicaciones interactivas

relacionadas con Internet.

“Es el lenguaje que por defecto utiliza Google en sus aplicaciones Android

por eso se eligió como lenguaje para para hacer la app nativa sin embargo

también se puede programar en C o en otros lenguajes ya conocidos”.

(Jorge Garcia , Jose Ignacion Rodriguez, 2000)

Características de Java:

Lenguaje totalmente orientado a Objetos. Todos los conceptos en

los que se apoya esta técnica, encapsulación, herencia,

polimorfismo, etc., están presentes en Java.

Disponibilidad de un amplio conjunto de bibliotecas. Como ya se

mencionó anteriormente, Java es algo más que un lenguaje. La

Página|35

Page 46: Tesis Ingenieria en Sistemas Computacionales

programación de aplicaciones con Java se basa no solo en el

empleo del juego de instrucciones que componen el lenguaje, sino,

fundamentalmente, en la posibilidad de utilizar el amplísimo

conjunto de clases que Sun pone a disposición del programador y

con las cuales es posible realizar prácticamente cualquier tipo de

aplicación.

Lenguaje simple. Java posee una curva de aprendizaje muy rápida.

Resulta relativamente sencillo escribir applets interesantes desde el

principio. Todos aquellos familiarizados con C++ encontrarán que

Java es más sencillo, ya que se han eliminado ciertas

características, como los punteros. Debido a su semejanza con C y

C++, y dado que la mayoría de la gente los conoce aunque sea de

forma elemental, resulta muy fácil aprender Java. Los

programadores experimentados en C++ pueden migrar muy

rápidamente a Java y ser productivos en poco tiempo.

Distribuido. Java proporciona una colección de clases para su uso en

aplicaciones de red, que permiten abrir sockets y establecer y

aceptar conexiones con servidores o clientes remotos, facilitando

así la creación de aplicaciones distribuidas.

Interpretado y compilado a la vez. Java es compilado, en la medida

en que su código fuente se transforma en una especie de código

máquina, los bytecodes, semejantes a las instrucciones de

ensamblador. Por otra parte, es interpretado, ya que los bytecodes

se pueden ejecutar directamente sobre cualquier máquina a la cual

se hayan portado el intérprete y el sistema de ejecución en tiempo

real (run-time).

Robusto. Java fue diseñado para crear software altamente fiable.

Para ello proporciona numerosas comprobaciones en compilación y

en tiempo de ejecución. Sus características de memoria liberan a

los programadores de una familia entera de errores (la aritmética

de punteros), ya que se ha prescindido por completo de los

punteros, y la recolección de basura elimina la necesidad de

liberación explícita de memoria.

Página|36

Page 47: Tesis Ingenieria en Sistemas Computacionales

Dada la naturaleza distribuida de Java, donde las applets se bajan

desde cualquier punto de la Red, la seguridad se impuso como una

necesidad de vital importancia. A nadie le gustaría ejecutar en su

ordenador programas con acceso total a su sistema, procedentes

de fuentes desconocidas. Así que se implementaron barreras de

seguridad en el lenguaje y en el sistema de ejecución en tiempo

real.

Indiferente a la arquitectura. Java está diseñado para soportar

aplicaciones que serán ejecutadas en los más variados entornos de

red, desde Unix a Windows Nt, pasando por Mac y estaciones de

trabajo, sobre arquitecturas distintas y con sistemas operativos

diversos. Para acomodar requisitos de ejecución tan diversos

o variopintos, el compilador de Java genera bytecodes: un formato

intermedio indiferente a la arquitectura diseñado para transportar

el código eficientemente a múltiples plataformas hardware y

software. El resto de problemas los soluciona el intérprete de Java.

Portable. La indiferencia a la arquitectura representa sólo una parte

de su portabilidad. Además, Java especifica los tamaños de sus

tipos de datos básicos y el comportamiento de sus operadores

aritméticos, de manera que los programas son iguales en todas las

plataformas. Estas dos últimas características se conocen como la

Máquina Virtual Java (JVM).

Alto rendimiento.

Multi hilos. Hoy en día ya se ven como terriblemente limitadas las

aplicaciones que sólo pueden ejecutar una acción a la vez. Java

soporta sincronización de múltiples hilos de ejecución

(multithreading) a nivel de lenguaje, especialmente útiles en la

creación de aplicaciones de red distribuidas. Así, mientras un hilo se

encarga de la comunicación, otro puede interactuar con el usuario

mientras otro presenta una animación en pantalla y otro realiza

cálculos.

Dinámico. El lenguaje Java y su sistema de ejecución en tiempo real

son dinámicos en la fase de enlazado. Las clases sólo se enlazan a

medida que son necesitadas. Se pueden enlazar nuevos módulos de

Página|37

Page 48: Tesis Ingenieria en Sistemas Computacionales

código bajo demanda, procedente de fuentes muy variadas, incluso

desde la Red.

Produce applets. Java puede ser usado para crear dos tipos de

programas: aplicaciones independientes y applets. Las aplicaciones

independientes se comportan como cualquier otro programa escrito

en cualquier lenguaje, como por ejemplo el navegador de Web

HotJava, escrito íntegramente en Java. Por su parte, las applets son

pequeños programas que aparecen embebidos en las páginas Web,

como aparecen los gráficos o el texto, pero con la capacidad de

ejecutar acciones muy complejas, como animar imágenes,

establecer conexiones de red, presentar menús y cuadros de

diálogo para luego emprender acciones, etc.

2.6 JSON

Es un formato de datos muy ligero basado en un subconjunto de la

sintaxis de JavaScript: literales de matrices y objetos. Como usa la sintaxis

JavaScript, las definiciones JSON pueden incluirse dentro de archivos

JavaScript y acceder a ellas sin ningún análisis adicional como los

necesarios con lenguajes basados en XML.

Debido a que no todas las funciones son proveídas por el web service del

Moodle debimos programar nuestra propia interfaz y para devolver datos

de ella para mayor facilidad se utilizó Json, que es muy fácil de parsear

debido a las librerías de Java que ya tienen estas funciones

implementadas.

2.7 ¿QUÉ ES Y PARA QUE SIRVE JSON?

JSON (JavaScript Object Notation) es un formato para el intercambios

de datos, básicamente JSON describe los datos con una sintaxis dedicada

que se usa para identificar y gestionar los datos. JSON nació como

una alternativa a XML, el fácil uso en javascript ha generado un gran

número de seguidores de esta alternativa. Una de las mayores ventajas

que tiene el uso de JSON es que puede ser leído por cualquier lenguaje

Página|38

Page 49: Tesis Ingenieria en Sistemas Computacionales

de programación. Por lo tanto, puede ser usado para el intercambio de

información entre distintas tecnologías.

Los tipos de valores que podemos encontrar en Json son los siguientes:

Un número (entero o float)

Un string (entre comillas simples)

Un booleano (true o false)

Un array (entre corchetes [] )

Un objeto (entre llaves {})

Null

2.8 PHP

es un lenguaje de programación de uso general de código del lado del

servidor originalmente diseñado para el desarrollo web de contenido

dinámico. Fue uno de los primeros lenguajes de programación del lado del

servidor que se podían incorporar directamente en el documento HTML en

lugar de llamar a un archivo externo que procese los datos. 

Se utilizó Para trabajar directamente con la base de datos y es

fuertemente recomendado por la documentación de Moodle para que

interactúe con la plataforma.

EllisLab es una empresa localizada en Bend (Oregón, EE. UU.) Que

desarrolla aplicaciones software en lenguaje PHP.1 La empresa es de

propiedad privada y no tiene socios financieros de ningún tipo. EllisLab ha

desarrollado las siguientes aplicaciones:

ExpressionEngine (anteriormente pMachine Pro).

CodeIgniter.

Con el nombre de EngineHosting.

Página|39

Page 50: Tesis Ingenieria en Sistemas Computacionales

ExpressionEngine es un manejador de contenidos web CMS, escrito

en PHP usando orientación a objetos y MySQL. Se ofrecen tres versiones:

una gratuita para uso personal llamada "ExpressionEngine Core", una

versión "Personal" y otra "Commercial". El núcleo usado en todas ellas es

el mismo, aunque existen módulos distintos.

CodeIgniter es un entorno de desarrollo rápido, con un grupo específico de

herramientas para programadores que generan aplicaciones en lenguaje

PHP. Es distribuido bajo licencia de código abierto.

CodeIgniter es un framework para aplicaciones web de código abierto para

crear sitios web dinámicoscon PHP. «Su objetivo es permitir que los

desarrolladores puedan realizar proyectos mucho más rápido que creando

toda la estructura desde cero, brindando un conjunto de bibliotecas para

tareas comunes, así como una interfaz simple y una estructura lógica para

acceder esas bibliotecas.2

También hay que destacar que CodeIgniter es más rápido que muchos

otros entornos.3 4 5 Incluso en una discusión sobre entornos de desarrollo

con PHP, Rasmus Lerdorf, el creador de PHP, expresó que le gustaba

CodeIgniter «porque es rápido, ligero y parece poco un entorno».6

Kohana ha creado una rama a partir de CodeIgniter 1.5.4 en 2007, como

resultado del disgusto de la comunidad por la falta de corrección de

errores y el deseo de incorporar otras características demandadas por los

usuarios.

2.9 RESTFUL SERVICE

Es un estilo arquitectónico que especifica las restricciones, como la

interfaz uniforme, que si se aplica a un servicio web inducen propiedades

deseables, como el rendimiento, la escala y la modificación , que hacen

posibles servicios que funcionan mejor en la Web.

Página|40

Page 51: Tesis Ingenieria en Sistemas Computacionales

Ilustración 17 Imagen Restful Service

La Transferencia de Estado Representacional (REST - Representational

State Transfer) fue ganando amplia adopción en toda la web como una

alternativa más simple a SOAP y a los servicios web basados en el

Lenguage de Descripción de Servicios Web (Web Services Descripcion

Language - WSDL). Ya varios grandes proveedores de Web 2.0 están

migrando a esta técnología, incluyendo a Yahoo, Google y Facebook,

quienes marcaron como obsoletos a sus servicios SOAP y WSDL y pasaron

a usar un modelo más facil de usar, orientado a los recursos.

REST define un set de principios arquitectónicos por los cuales se diseñan

servicios web haciendo foco en los recursos del sistema, incluyendo cómo

se accede al estado de dichos recursos y cómo se transfieren por HTTP

hacia clientes escritos en diversos lenguajes. REST emergió en los últimos

años como el modelo predominante para el diseño de servicios. De hecho,

REST logró un impacto tan grande en la web que prácticamente logró

desplazar a SOAP y las interfaces basadas en WSDL por tener un estilo

bastante más simple de usar. Rest transfiere JSON, Xml ó ambos, la

Página|41

Page 52: Tesis Ingenieria en Sistemas Computacionales

representación de un recurso en general refleja el estado actual del

mismo y sus atributos al momento en que el cliente de la aplicación

realiza la petición. La representación del recurso son simples "fotos" en el

tiempo. Esto podría ser una representación de un registro de la base de

datos que consiste en la asociación entre columnas y tags XML, donde los

valores de los elementos en el XML contienen los valores de las filas. O, si

el sistema tiene un modelo de datos, la representación de un recurso es

una fotografía de los atributos de una de las cosas en el modelo de datos

del sistema. Estas son las cosas que serviciamos con servicios web REST.

La última restricción al momento de diseñar un servicio web REST tiene

que ver con el formato de los datos que la aplicación y el servicio

intercambian en las peticiones/respuestas. Acá es donde realmente vale

la pena mantener las cosas simples, legibles por humanos, y conectadas.

Los objetos del modelo de datos generalmente se relacionan de alguna

manera, y las relaciones entre los objetos del modelo de datos (los

recursos) deben reflejarse en la forma en la que se representan al

momento de transferir los datos al cliente. En el servicio de hilos de

discusión anterior, un ejemplo de una representación de un recurso

conectado podría ser un tema de discusión raíz con todos sus atributos, y

links embebidos a las respuestas al tema. Resulta muy flexible el poder

exponer los recursos del sistema con un API REST, de manera de brindar

datos a distintas aplicaciones, formateados en distintas maneras. REST

ayuda a cumplir con los requerimientos de integración que son críticos

para construir sistemas en donde los datos tienen que poder combinarse

fácilmente (mashups) y extenderse. Desde este punto de vista, los

servicios REST se convierten en algo mucho más grande.

2.10 UBUNTU SERVER

Ubuntu es un sistema operativo desarrollado por la comunidad que es

perfecto para servidores. Ubuntu contiene todas las aplicaciones que

puedas necesitar.

Página|42

Page 53: Tesis Ingenieria en Sistemas Computacionales

Desarrollada y patrocinada por Canonical LTD, una empresa privada y

financiada por el empresario Marl Shuttleworth, tiene como estandarte la

facilidad de uso, facilidad en la instalación y la libertad de uso. De forma

periódica y cada 6 meses sale una nueva versión de Ubuntu. Estas nuevas

versiones pueden ser descargadas desde la web oficial del proyecto o

pedirlas directamente a través del servicio ShipIt, desde el que se nos

enviaran los CD’s, ambas formas no tienen ningún tipo de coste para el

usuario.

Características:

Basada en la distribución Debian

Disponible para plataformas Intel x86 y AMD64

La interfaz gráfica por defecto es Gnome

El navegador web predeterminado es Firefox

El sistema gráfico de administración de paquetes se llama Synaptic y

nos permite de una forma fácil las tareas de instalar o desinstalar

software, así como la descarga de actualizaciones

Otras variantes de Ubuntu son: Kubuntu (Con la interfaz KDE),

Edubuntu (Diseñado para entornos escolares), y Xubuntu (Interfaz

gráfica Xfce).

Actualmente es una de las comunidades más activas.

2.11 AMAZON WEBSERVICE EC2

El uso de Amazon EC2 elimina su necesidad de invertir en hardware por

adelantado, por lo que usted puede desarrollar y desplegar aplicaciones

rápidas. También puede utilizar Amazon EC2 para lanzar tantos o tan

pocos servidores virtuales como sea necesario, configurar la seguridad y

la creación de redes, y gestión de almacenamiento. Amazon EC2 permite

escalar hacia arriba o hacia abajo para manejar los cambios en los

Página|43

Page 54: Tesis Ingenieria en Sistemas Computacionales

requisitos o picos de popularidad, lo que reduce su necesidad para

pronosticar el tráfico.

2.11.1 CARACTERÍSTICAS DE AMAZON EC2

Amazon EC2 proporciona las siguientes características:

- Entornos informáticos virtuales, conocidos como casos

- Plantillas preconfiguradas para las instancias, conocidos

como Amazon Machine Images ( AMI ) , ese paquete las

partes que usted necesita para su servidor ( incluyendo

el sistema operativo y el software adicional)

- Varias configuraciones de CPU , memoria,

almacenamiento y capacidad de redes para las instancias

, conocida como tipos de instancia

- Información de inicio de sesión seguro para sus

instancias utilizando pares de claves (AWS almacena la

clave pública , y se almacenan la clave privada en un

lugar seguro )

- Los volúmenes de almacenamiento de datos temporal

que se elimina cuando se suspende o cancela su

instancia , conocida como volúmenes ejemplo tiendas

- los volúmenes de almacenamiento persistente para los

datos usando Amazon Elastic Block Store ( Amazon EBS ),

conocido como Los volúmenes de Amazon EBS

Página|44

Page 55: Tesis Ingenieria en Sistemas Computacionales

- Varias ubicaciones físicas de sus recursos, como las

instancias y los volúmenes de Amazon EBS , conocidos

como las regiones y las zonas de disponibilidad

- Un servidor de seguridad que le permite especificar los

protocolos , puertos y rangos de IP de origen que pueden

alcanzar su instancias mediante grupos de seguridad

- Direcciones IP estáticas para la dinámica de computación

en nube, conocida como las direcciones de Elastic

IPMetadatos, conocidas como etiquetas, que puede crear

y asignar a los recursos de Amazon EC2.

- Las redes virtuales que se pueden crear de manera lógica

aislada del resto de la nube de AWS, y que le se puede

conectar opcionalmente a su propia red, conocida como

nubes privadas virtuales ( VPC ).

III. METODOLOGIA

3.1 CRONOLOGÍA DE TRABAJO

Semana 1

Comenzamos a laborar con la definición del proyecto, en la definición de la descripción del

proyecto. Definimos una descripción general del problema de investigación, el objetivo

general del proyecto de graduación, el alcance del proyecto y por último se estableció las

actividades a desarrollar para lograr llevar a cabo el objetivo establecido.

Semana 2

Página|45

Page 56: Tesis Ingenieria en Sistemas Computacionales

Tuvimos la aprobación por parte de la universidad a través del

consentimiento de tres docentes del campus universitario del área de la

carrera.

Semana 3

Preparamos un servidor en la nube para poder instalar y desarrollar el

Moodle y nuestro Restful service, Se configuro una lamp en el servidor.

Ilustración 18 Imagen Semana

Semana 4

Comenzamos a investigar el proyecto web Moodle sus diferentes

versiones su historia y funcionamiento general. Luego instalamos la

versión 2.5.1 en el Ubuntu server dentro del apache previamente

instalado.

Semana 5

Sacamos un listado de todos los funcionamientos de Moodle y luego

decidimos que funcionamientos eran los que íbamos a replicar en la

aplicación móvil.

Semana 6

Página|46

Page 57: Tesis Ingenieria en Sistemas Computacionales

Se investigó el cómo crear una aplicación en Android, El Api y las librerías

adecuadas a utilizar, se realizaron aplicaciones de prueba para probar

librerías externas que ayudarían al proyecto.

Semana 7

Se comenzó el desarrollo del Restful service el cual decidimos llamarlo

Proxy que usaríamos para comunicarnos con la base de datos del Moodle.

Ilustración 19 Imagen Semana 7

Semana 8

Se inicio la Investigamos del Api de moodle cuales eran las funciones que

íbamos a utilizar como se configuraba en el sitio y que tipo de parámetros

necesitábamos enviarle. Hicimos pruebas desde una aplicación de consola hecha

en java para simular el consumo desde Android.

Página|47

Page 58: Tesis Ingenieria en Sistemas Computacionales

Ilustración 20 Imagen Semana 8

Semana 9

Se comenzaron a diseñar algunas pantallas del proyecto como ser la del Login,

Mostrar clases y la de configuración.

Página|48

Page 59: Tesis Ingenieria en Sistemas Computacionales

Ilustración 21 Imagen Semana 9

Semana 10

Realizamos pruebas consumiendo el Api de moodle para revisar la información

que nos enviaba de respuesta y cómo podríamos parsearlo .

Ilustración 22 Imagen Semana 10

Semana 11

Página|49

Page 60: Tesis Ingenieria en Sistemas Computacionales

Investigamos que herramienta de java podríamos utilizar para parsear XML.

Semana 12

Definimos y desarrollamos la Jerarquia de clases y herencias que aplicaríamos

para el manejo de los objetos del Moodle.

Ilustración 23 Imagen Semana 12

Semana 13

Se siguió trabajando en la navegación de la aplicación en Android, la pantalla de

contenido de clase y pantalla de semanas, participantes y mensajes.

Página|50

Page 61: Tesis Ingenieria en Sistemas Computacionales

Ilustración 24 Imagen Semana 13

Semana 14

Obtener el contenido de una clase a través del api de moodle cosas de Android

Semana 15

Se realizaron la navegación de las pantallas de mostrar tareas y demás

contenido de la semana así como lo último que faltaba de navegación.

Semana 16

Pruebas de obtener el contenido de una clase

Semana 17

Surgieron problemas con la visualización de la tabla que representa la

ponderación de la clase

Página|51

Page 62: Tesis Ingenieria en Sistemas Computacionales

Semana 18

Más pruebas para la visualización de la ponderación

Semana 19

Desarrollo del chat

Semana 20

Pruebas con el chat y Subir archivos

Ilustración 25 Imagen Semana 20

Semana 21

Revisión y pruebas generales a la aplicación

Semana 22

Documento y revisión de prototipo, comienzo de elaboración de widgets

Página|52

Page 63: Tesis Ingenieria en Sistemas Computacionales

Semana 23

Documento, finalización de widgets

Semana 24

Se hace el análisis de las fallas de la aplicación, se identifican los errores que

ocurren en el servicio elaborado para conseguir la información de Moodle y la

aplicación móvil, se elabora un plan y división de trabajo a seguir para solventar

esos problemas, se analiza la petición de la terna de graduación para saber que

nuevas características son realizables y cuáles no. Se

Semana 25

Se trabaja en las fallas encontradas en la semana 24, se trata de hacer más

estable las pantallas de contenido de la clase, se agregar a la aplicación nuevos

diálogos de espera para hacerle saber al usuario que la información está

cargando, se hacen pruebas de estrés para ver si la solución implementada es

la ideal la cual consiste en hacer las llamadas de las funciones del servicio del

Moodle de manera asíncrona para que la aplicación funcione de manera

correcta. Se elaboran unit test para probar las funciones de manera asíncrona,

se prueba rendimiento de las funciones con llamadas de maneras asíncronas y

llamadas de manera síncrona.

Semana 26

Se modifican las pantallas de crear tarea para que sea más amigable al usuario,

modificando la acción del botón de modificar tarea, en vez de permanecer en la

misma pantalla cuando el usuario cree la tarea, ahora regresa a la pantalla de

mostrar tareas, se modifican las llamadas a mostrar tareas y mostrar recursos

de tareas a llamadas asíncronas para mejorar el rendimiento de la aplicación y

hacerla más estable, se comienza a trabajar en nuevas funciones del servicio

Página|53

Page 64: Tesis Ingenieria en Sistemas Computacionales

para que se pueda editar el contenido del curso, se empieza a cambiar código

interno de la aplicación para permitir que se pueda obtener información de

cualquier Moodle, se agrega la opción de poder ingresar la url en la pantalla de

autenticación y se cambia la pantalla de información de la aplicación en las

opciones de la pantalla de autenticación.

Semana 27

Se empiezan a implementar las funciones para editar las pantallas de las

secciones del curso, se dividen en tres tipos, editar labels, editar urls y editar

tareas, se termina la función de editar labels y se empiezan a probar, se

empieza a trabajar en la parte de editar las secciones en la parte de la aplicación

móvil.

Semana 28

Se termina la parte de edición de labels de la parte de sección de cursos, se

elaborar unit tests para las funciones, se hacen prueba de estrés a la aplicación

para determinar que tan bien está funcionando la aplicación, en esta parte se

termina las pantallas de edición de la sección de curso, aunque no se elabora

ningún tipo de característica para evitar que el usuario evite tocar html.

Semana 29

Se termina las funciones de editar urls y editar tareas, se elaboran unit tests y se

hacen pruebas de estrés a las funciones, se implementan en la aplicación móvil,

se hacen pruebas para ver si funcionan de manera adecuada las tres funciones

de editar en la sección de los maestros.

Página|54

Page 65: Tesis Ingenieria en Sistemas Computacionales

Semana 30

Se comienza a trabajar en la estabilidad del chat y en la investigación de realizar

nuevos atributos a la aplicación para poder sincronizar el calendario del móvil y

las tareas y poder descargar los participantes de una clase a la agenda del

celular del usuario.

Semana 31

Se empieza a trabajar en un IDE que permita la edición de texto html para editar

las secciones del curso, se continua con la investigación comenzada en la

semana 30, se empieza a trabajar en la configuración de un nuevo server con un

nuevo Moodle para poder probar que la aplicación puede trabajar con cualquier

plataforma Moodle.

Semana 32

Se finaliza el IDE para la edición de secciones del curso, el nuevo IDE permite

cambiar tipo de letra, tamaño de letra, estilo de letra y color de letra sin que el

usuario tenga la necesidad de tener conocimientos de html, el nuevo IDE toma el

texto y a partir de las opciones predefinidas por el usuario traduce los comandos

para parsear un html que es enviado a las funciones creadas en semanas

anteriores para que se pueda renderear en la secciones del curso, tanto en la

aplicación móvil como en la plataforma web.

Página|55

Page 66: Tesis Ingenieria en Sistemas Computacionales

Semana 33

Se elaboran nuevos atributos para la aplicación móvil, se prueban los nuevos

atributos, se permite que el usuario pueda bajar la información de los

participantes a la agenda del usuario y se puede sincronizar las tareas con el

calendario del celular.

Semana 34

Se elaboran nuevos mockups para modificar algunas pantallas para hacerlas

más amigable a vista del usuario, se finaliza la configuración del nuevo

plataforma Moodle para poder probar que el usuario puede conectarse con la

aplicación en cualquier plataforma cumpliendo los requisitos previamente

explicados.

3.2 MATERIALES

3.2.1 DISPOSITIVO MÓVIL

Se requiere un sistema operativo Android, en el cual sea compatible con

el aparato telefónico, necesariamente versión 4.0 en adelante.

3.2.2 INTERNET

Vamos a necesitar una velocidad de internet aproximada de 128k en

adelante.

3.2.3 SERVIDOR

Página|56

Page 67: Tesis Ingenieria en Sistemas Computacionales

Se necesita un servidor para poder tener alojado la plataforma Moodle

y el servicio complementario para que la aplicación móvil se puede

conectar a el.

IV. ANÁLISIS DE PROCESO DEL PROYECTO

Tabla de Tiempo en Meses

Procesos 1 2 3 4 5 6

Investigación

Configuración e Instalación

Desarrollo

Pruebas

Prototipo

Documentación

Ilustración 26 CUADRO CRONOLOGICO

V. CONCLUSIONES

Identificar las funciones oportunas y necesarias para facilitar el

intercambio tecnológico no es una tarea fácil ni sencilla, puesto que se

puede mal interpretar la necesidad de atributos llevando a su inclusión

menguando así la eficiencia de la creación de una aplicación sencilla.

Página|57

Page 68: Tesis Ingenieria en Sistemas Computacionales

La demanda de aplicaciones para celulares inteligentes exige tener

alternativas ya sea comerciales o académicas que complementen de

manera efectiva plataformas y sistemas orientados al uso diario.

La elaboración de una aplicación en Android rompe con las malas

costumbres que pueda tener un desarrollador, el poder crear una

aplicación eficiente y sencilla es un reto que se debe asumir si se quiere

presentar una aplicación altamente funcional en este tipo de plataformas

móviles

La creación de un servicio web aparte que pueda solucionar los problemas

que no se pudieron solucionar con las funciones que ya proveía la

plataforma Moodle requiere el conocimiento previo de ciertos paradigmas

de programación que puedan ayudar a solventar problemas que no fueron

tomados en cuenta cuando se propuso el problema.

VI. RECOMENDACIONES

6.1 SEGURIDAD

Llave de seguridad

Una llave de seguridad o token es una herramienta que ayuda a que otros sistemas accesen el moodle de modo seguro. Esta puede ser usada por un webservice.

El usuario puede obtener el key desde el sitio de moodle via Settings > My profile settings > Security keys

Ese mismo modo de autenticación utilizamos en el proxy para que comparta el mismo esquema de seguridad del service de moodle.

El esqueme utilizado se le llama handshake

Página|58

Page 69: Tesis Ingenieria en Sistemas Computacionales

1. Usuario obtiene userid y el API key para comunicarse con el servicio.2. Usuario quiere realizar una petición al servicio para obtener el contenido

de una clase asi que manda una petición algo como /user/getclase?idClase=3

3. Para que esta petición pueda ser lograda exitosamente el sistema cliente necesita agregar el id del usuario y el API key de modo que la petición quedaría de la forma /user/getclase?idClase=3&apiKey=llave_generada.

4. El servidor recibe la llamada y mira que es del usuario userid=123 y revisa si el API key mandada en la petición corresponde a ese usuario, luego replica los pasos necesario para crear la firma y si la comparación es correcta la petición es valida.

Con esta metodología nos aseguramos que la firma nunca es usada como parte de la comunicación.

VII. BIBLIOGRAFÍA

developer.android.com. (09 de Diciembre de 2013). Obtenido de http://developer.android.com/training/basics/firstapp/starting-activity.html

developer.android.com. (2014). Obtenido de http://developer.android.com/training/basics/activity-lifecycle/starting.html

Gallego, J. C. (2014). Guia de Moodle 1.9.14t , Plataforma Adistancia .

github.com. (2014). Obtenido de https://github.com/ParanoidAndroid/android_frameworks_base/commit/518c329e8c67fa96b8a8fc22e1962ddb8497c333

Gutierrez, J. (S.F de S. F de 2004). Eclipse (2.1) y JAVA. Obtenido de Universidad de Valencia .

Página|59

Page 70: Tesis Ingenieria en Sistemas Computacionales

Hernandez, E. R. (21 de Enero de 2011). Desarrollo de aplicaciones para diapositivas con Sistemas Operativos Adroid .

Jorge Garcia , Jose Ignacion Rodriguez. (2000). Aprenda Java. San Sebastian.

Gargenta, M. (2011). Learning Android. O'Reilly Media.

Nguyen, Vincent. Android Community. obtenido de http://androidcommunity.com/.

Hobbs, Zach. Hello Android. obtenido de http://helloandroid.com/.

Srinivas, Davanum. Show me the code! obtenido de http://davanum.wordpress.com/.

VIII. ANEXOS

8.1 MANUAL DE USUARIO

Introducción:

Este manual será una guía sobre el uso de la aplicación desarrollada en el proyecto de graduación Moodle para Android.

El propósito principal de la aplicación es brindar al usuario, una manera más sencilla para poder cumplir con sus actividades académicas de una manera más

Página|60

Page 71: Tesis Ingenieria en Sistemas Computacionales

sencilla. Para ello se explicara las opciones disponibles en la aplicación, que no necesariamente son diferentes presentadas a las de la plataforma web de Moodle sin embargo hay que manifestar que es imperativo que se tome en cuenta que el usuario no tiene conocimientos del Moodle y por eso es necesario brindar explicación sencilla de las funcionalidad de las opciones. A lo largo de este manual de usuario se brindaran los pasos necesarios para poder interactuar con las funcionalidades que ofrece la aplicación desarrollada durante nuestro proyecto.

1-Acceso

-. Buscar el icono de Moodle como se muestra en la imagen

-. Presionar el icono y esperar que la aplicación cargue

Página|61

Page 72: Tesis Ingenieria en Sistemas Computacionales

Anexo1. Como entrar

Actualmente para la instalación se deberá contar con el instalador .apk ya que no se cuenta con una versión en el app store.

1- Iniciar Sesión-. Para iniciar sesión deberá ingresar una cuenta y una contraseña que exista en el sitio Moodle en el cual usted quiera iniciar sesión, deberá revisar que tenga conexión a internet de lo contrario la aplicación le enseñara un mensaje de error-. Cuando Ingrese su cuenta y contraseña presione el botón de Iniciar Sesión

Página|62

Page 73: Tesis Ingenieria en Sistemas Computacionales

Anexo 2. Pantalla de autenticacion

2- Clases

La sección de clases muestras las clases en las que el alumno ha sido matriculado.Para ver el contenido de las clases únicamente presione encima de la clase que está interesado ver su contenido,

Página|63

Page 74: Tesis Ingenieria en Sistemas Computacionales

Anexo 3. Ver clases

3- Contenido de una Clase

.-Alumno:

El Alumno podrá ver el contenido de la clase, como se muestra en la imagen dependiendo de qué secciones el maestro haya publicado en el sitio web del Moodle, en todo caso hay tres tipos de objetos:

Página|64

Page 75: Tesis Ingenieria en Sistemas Computacionales

- Urls

- Tareas

- Archivos

El Alumno podrá ver cada uno de ellos, ver una tarea, seguir el url o bajar el archivo, aunque para descargar el archivo debido a que moodle no cuenta con un sistema de token para manejar que archivos se pueden ver afuera de la plataforma web, la aplicación lo re-direccionara al link de descarga del archivo, si el usuario no está autenticado en la plataforma web este no podrá descargarlo.

Anexo 4. Descripción del contenido

.-Maestro:El maestro podrá ver el contenido de la clase pero también podrá editar las secciones, agregar recursos, y urls a las secciones, presionando el botón de “+” como se muestra en la imagen.

Página|65

Page 76: Tesis Ingenieria en Sistemas Computacionales

- Editar Secciones:

- ) Agregar Objetos:

Al presionar la sección el botón con el “+” se mostrara la siguiente pantalla:

Al seleccionar cada opción, se abrirá una ventana para que el usuario ingrese el contenido de cada objeto.

- ) Editar Secciones:

Para editar secciones únicamente el maestro tiene que mantener presionado sus dedos encima de la sección que quiere editar, al hacerlo saldrá la siguiente pantalla:

Página|66

Page 77: Tesis Ingenieria en Sistemas Computacionales

Luego el usuario podrá seleccionar el texto que quiere editar y al hacerlo aparecerán las opciones de edición:

El usuario puede elegir la opción de copiar, editar y editar el texto, al editar el texto las opciones de la barra de edición cambiaran:

El usuario asi mismo podrá elegir la fuente del texto de su sección, al termina la edición de cada sección el usuario podrá salvar su edición y esta se reflejara tanto en la plataforma web como en la aplicación móvil.

4- Ver tareas y recursos

El usuario puede buscar en las secciones del curso donde hay tareas y recursos disponibles y seleccionarlas:

Página|67

Page 78: Tesis Ingenieria en Sistemas Computacionales

Anexo 5. Ver tareas y recursos por clases

Cabe destacar que al seleccionar las tareas o recursos de las secciones de curso únicamente se verán las tareas o recursos de esa sección.

5- Barra de MenúPara ver perfil, participantes, mensajes, todas las tareas y recursos hay que hacerlo a través de la barra de menú que provee la aplicación, la cual para poder usarla únicamente se tiene que hacer es deslizar la mano de derecha hacia la izquierda y esta aparecerá.

Página|68

Page 79: Tesis Ingenieria en Sistemas Computacionales

Anexo 6. Tareas y recursos con contenido

Al aparecer la barra de usuario el usuario tiene varias opciones aparecerán, en este punto las opciones tanto maestro y alumno son las mismas, sin embargo en las secciones de tareas y mensajes difieren de entre los dos tipos de usuarios.

.-Pantalla de Recursos:Una vez ya accediste de cualquiera de las dos maneras que ya se explicaron aparecerá la siguiente pantalla de recursos;

Página|69

Page 80: Tesis Ingenieria en Sistemas Computacionales

Anexo 7. Lo que el usuario podrá observar

En el caso de los recursos aparecerá el nombre, el número del recurso y la opción para ir a la página del moodle y descargar el recurso, como se explicó antes Moodle no tiene un sistema de tokens para permitir que un archivo se descargue desde afuera de la plataforma web, por lo que al momento de descargarla se tiene que re-direccionar al link web de descarga, sin embargo si el usuario no está autenticado en la plataforma web, la plataforma enviara al usuario a la pantalla de autenticación, una vez que el usuario demuestre su identidad, el archivo comenzara a descargarse.

.-Pantalla de Tareas

El usuario podrá observar todas las tareas o las tareas de una sección dependiendo de dónde ingrese, si es mediante la barra menú o mediante el botón tareas de las secciones.

Página|70

Page 81: Tesis Ingenieria en Sistemas Computacionales

1- Alumno:El alumno deberá vera las tareas cuales tiene asignadas como se puede ver en la siguiente imagen:

Anexo 8. Descripción de la información}

El alumno para poder ver el contenido de cada tarea deberá presionar encima de cada tarea y se mostrara el contenido de la tarea, como se muestra en la siguiente imagen:

Página|71

Page 82: Tesis Ingenieria en Sistemas Computacionales

Anexo 9. Plantilla de envió

El usuario podrá subir un archivo si así lo requiere la tarea, primero lo elegirá utilizando la opción seleccionar archivo y posteriormente lo subirá a la aplicación usando la opción subir archivo.

2 - Maestro:

El Maestro vera la misma pantalla del conjunto de tareas sumado a una nueva barra de opciones para edición.

Otras opciones de la barra de usuario

1- Perfil:El usuario podrá ver su perfil, sin embargo no podrá editarlo

2- Participantes:

Página|72

Page 83: Tesis Ingenieria en Sistemas Computacionales

El usuario podrá ver los participantes de una clase y chatear con ellos

3- Mensajes:El usuario podrá ver los últimos mensajes recibidos

Cambio de plataforma:

El usuario podrá configurar la plataforma en la cual la aplicación se debe conectar, es decir si el usuario se quiere conectar a la plataforma 1 debera seguir los siguientes pasos:

1- En la pantalla de inicio de sesión en el sub menú presionar configuración:

2- Al momento de escoger la opción de configuración aparecerá otra pantalla la cual tendra el botón de cambiar url de acceso a lo cual aparecerá la siguiente pantalla:

Página|73

Page 84: Tesis Ingenieria en Sistemas Computacionales

3- como se puede observar se mostrara una ventana de dialogo que indicara que url es la que se está utilizando por defecto nuestra aplicación se conecta a una plataforma base, ahí el usuario podrá escoger que tipo de plataforma quiere para poder utilizar la aplicación.

Nota:

El cambio de url es limitado ya que depende o no que tipo de configuración tenga la plataforma para poder acceder a todas las funciones de Moodle.

Configuracion de Plataforma Moodle

Página|74

Page 85: Tesis Ingenieria en Sistemas Computacionales

Instalación de un complemento

Para instalar un complemento (add-on), su código fuente debe ponerse

(desplegarse) dentro de la localización apropiada adentro del directorio con la

instalación de Moodle y debe visitrase la página de administración

principal Administración > Administración del sitio > Notificaciones. Existen tres

maneras en las que se puede desplegar en Moodle el código de un

complemento:

En Moodle 2.5 en adelante, el código de un complemento puede desplegarse

desde adentro de Moodle, sea directamente desde el directorio de plugins de

Moodle, o al subir un archivo ZIP. El proceso del servidor web debe de tener

acceso de escritura a la carpeta del tipo de plugin en donde se instalará el nuevo

complemento, para poder usar cualquiera de éstos métodos.

De forma alterna, el código de un complemento puede desplegarse

manualmente en el servidor.

Página|75

Page 86: Tesis Ingenieria en Sistemas Computacionales

Instalación directamente desde el directorio de plugins de Moodle

1. Ingrese a su sitio como administrador y vaya a Administración >

Administración del sitio > Plugins > Instalar complementos

2. Elija el botón 'Instalar complementos desde el directorio de plugins de

Moodle'.

3. Busque un plugin que tenga un botón para instalar (Install') que asegura

que es compatible con su versión de Moodle), elija el botón para Instalar

(Install) y luego elija Continuar (Continue).

4. Revise que aparezca el mensaje de que pasó la validación (Validation

passed!) y después elija el botón para Instalar el complemento (Install

add-on).

Nota: En nuestro caso es necesario activar el plugin de servicios para que la plataforma Moodle a la que se va conectar pueda permitir el acceso de nuestra aplicación.

Página|76

Page 87: Tesis Ingenieria en Sistemas Computacionales

Desinstalación de un complemento

Para desinstalar un complemento Ir a Opciones > Administración del sitio >

Plugins > Plugins overview y clic al botón de Uninstall en frente del plugin que se

quiera quitar.

Utilice el administrador de archivos para quitar/eliminar el directorio de plugins

según las instrucciones, de lo contrario, Moodle, voverá a instalarlo la próxima

vez que acceda administración del sitio

Nota: Algunos tipos de plugin ofrecen la remoción del disco también, aunque

todavía no lo hacen todos

Vista general de plugins

La página de vista general de plugins en Administración > Administración del sitio > Plugins > Vista general de plugins enlista todos los plugins instalados, junto con sus números de versiones, disponibilidad (habilitado o deshabilitado) y enlace a configuraciones (si hubiera).

Un botón para 'Revisar actualizaciones disponibles' le permite a los

administradores revisar rápidamente si hay actualizaciones disponibles para

plugins estándar de Moodle o complementos instalados en el sitio (desde

el directorio de plugins). Las actualizaciones disponibles están resaltadas, con

mayor información y un enlace para descargar en la columna de notas opuesta

al plugin.

Página|77

Page 88: Tesis Ingenieria en Sistemas Computacionales

Página|78

Page 89: Tesis Ingenieria en Sistemas Computacionales

8.2 REQUERIMIENTOS

1- LA APLICACIÓN ES COMPATIBLE CON:

Mínima versión sdk: 8

Máxima versión sdk: 19

Compatible con sistema operativo Android 4.1 hasta la última versión.

2-REQUISITOS:

La aplicación pide permiso a:

-Agenda

-Conexión a internet

-Acceso a cuentas

-Almacenamiento

-Control de archivos

3-REQUISITOS INSTALACIÓN DE SERVIDOR:

-Apache server

-PHP

-Mysql

-Configuración plataforma moodle

Página|79

Page 90: Tesis Ingenieria en Sistemas Computacionales

8.2 DIAGRAMA DE CLASES

Página|80

Page 91: Tesis Ingenieria en Sistemas Computacionales

8.3 Glosario

Activity:

Es la base de cualquier aplicación Android con interfaz de usuario, es decir, si

tiene interfaz de usuario tendrá al menos una clase Activity, o más bien una

clase que hereda de "Activity".

Por lo tanto, podemos resumirlo en que cada Activity está relacionada con un

pantalla visible. Una aplicación puede tener más de una pantalla visible, cada

una muesta una IU y responde a eventos iniciados por el sistema o por el

usuario. Además, las Activity-s utilizan una o varias Views para presentar al

usuario los elementos de la IU.

Dalvik:

 Máquina virtual basada en la máquina virtual de Java que se encarga de la

ejecución de las aplicaciones en Android. 

Dalvik Cache:

 Resultado de Dalvik hacer una optimización del programa en ejecución. Es

similar a los archivos de prefetch de Windows. 

Intent:

Es un mecanismo para invocar componentes, los intents son bastante fáciles de

comprender. Básicamente nos permiten llamar a aplicaciones externas a la

nuestra, lanzar eventos a los que otras aplicaciones puedan responder.

Launcher:

Página|81

Page 92: Tesis Ingenieria en Sistemas Computacionales

 La parte de la interfaz de usuario de Android en pantallas de inicio que le

permite lanzar aplicaciones, hacer llamadas telefónicas, etc. Está integrado

en Android, o se pueden descargar del Play Store (Android Market). 

Layout:

Un Layout es un contenedor de una o más vistas y controla su comportamiento y

posición. Hay que destacar que un Layoutpuede contener a otro Layout y que es

un descendiente de la clase View.

Parsear: 

Proceso de analizar una secuencia de símbolos a fin de determinar su estructura

gramatical con respecto a una gramática formal dada. Formalmente es llamado

análisis de sintaxis. Un parseador (parser) es un programa de computación que

lleva a cabo esta tarea.

SDK:

 Abreviación de Software Development Kit o Kit de Desarrollo de Software. Es un

conjunto de herramientas de desarrollo que permite al programador crear

aplicaciones para un sistema, en este caso Android. En él se hallan la mayoría de

herramientas como ADB, Fastboot y entre otras 

SystemUI.apk:

 Es la barra de estado de la ROM o firmware de tu Android, ubicada en la raíz del

sistema. 

Página|82

Page 93: Tesis Ingenieria en Sistemas Computacionales

Script: 

Es un programa capaz de realizar diversas tareas como combinar componentes,

modificarlos o interactuar con el sistema operativo o con el usuario. 

Stable:

 En español estable, sirve para denominar a las ROMs en la versión como dice

más estable, la que ya es apta para uso diario, en esta versión se corrigen la

mayoría de errores que provocaban que no sea para uso diario. 

Stock:

 Es un término utilizado para referirnos a la versión predeterminada u original de

algún firmware, ROM, app, launcher, etc. 

Swap: 

Partición especial que se realiza en una unidad de almacenamiento para servir

de soporte a la memoria principal del sistema, de tal forma que se amplía

virtualmente la capacidad de la RAM. 

Widget: 

Es una pequeña aplicación o programa, usualmente presentado en archivos o

ficheros pequeños que son ejecutados por un motor de widgets o Widget Engine.

Entre sus objetivos está dar fácil acceso a funciones frecuentemente usadas y

proveer de información visual. 

Wipe: 

Página|83

Page 94: Tesis Ingenieria en Sistemas Computacionales

Proceso por el cual se elimina toda la configuración de usuario y datos de las

aplicaciones del dispositivo, dejando la ROM actual “limpia”. Existen

varios Wipes como Wipe All Data, que borra absolutamente todos los datos y

apps que se encuentran almacenados en el dispositivo, Wipe Data que borra

todos los datos del terminal, Wipe Cache que borra el cache del terminal, etc. Es

lo que se recomienda realizar antes de flashear otra ROM. 

Página|84