56
APP DE CONTROL DE PERSONAL DE J PRETELT INGENIERÍA HIDRÁULICA EU JESSICA ANDREA MENDOZA ROMERO MIGUEL ANTONIO CABEZAS GARCÍA UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA INGENIERÍA EN TELECOMUNICACIONES BOGOTÁ 2016

APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

APP DE CONTROL DE PERSONAL DE J PRETELT INGENIERÍA HIDRÁULICA EU

JESSICA ANDREA MENDOZA ROMERO MIGUEL ANTONIO CABEZAS GARCÍA

UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA

INGENIERÍA EN TELECOMUNICACIONES BOGOTÁ

2016

Page 2: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

APP DE CONTROL DE PERSONAL DE J PRETELT INGENIERÍA HIDRÁULICA EU

JESSICA ANDREA MENDOZA ROMERO MIGUEL ANTONIIO CABEZAS GARCÍA

Trabajo de tesis para optar por el título de Ingeniero en Telecomunicaciones

JOSÉ DAVID CELY CALLEJAS INGENIERO

DIRECTOR DE TESIS

UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA

INGENIERÍA EN TELECOMUNICACIONES BOGOTÁ

2016

Page 3: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

Nota de Aceptación

Director de Tesis: Ing. José David Cely Callejas Jurado

Bogotá DC, 12 de Octubre de 2016

Page 4: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

Dedicatoria Primero a Dios, a nuestras familias y a nuestro director de tesis.

AGRADECIMIENTOS

Agradecemos principalmente a Dios, que es ese ser maravilloso y todo poderoso que todos los días guía nuestros pasos, cuidándonos y orientándonos para ser unas personas que sean útiles para su gran propósito. A nuestra gran institución, Universidad Distrital Francisco José de Caldas, por brindarnos los parámetros de una educación integral, punto de partida de nuestra vida profesional, teniendo un gran nombre que honrar y enorgullecer. A nuestras familias por su compromiso y lecciones de vida, a nuestros esposos e hijos que siempre dispusieron sus esfuerzos para poder luchar por nuestros sueños como profesionales, y a nuestros padres que nos brindaron todas las herramientas y valores para abordar la vida.

Page 5: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

GLOSARIO

• HTML5: por las siglas en ingles Hyper Text Markup Lenguage, en español lenguaje de marcas de hipertexto, en su quinta versión, en donde hay desarrollo paralelo de HTML y XHML.

• HTML: (Hyper Text Markup Lenguage) Lenguaje de marcado para

elaboración de páginas web.

• XHTML: (eXtensible HyperText Markup Language) Versión más estricta y limpia de HTML con uso de las herramientas XML.

• XML: (eXtensible Markup Language o "lenguaje de marcas Extensible") meta-lenguaje que permite definir etiquetas personalizadas para descripción y organización de datos.

• CSS: (cascading style sheet o Hoja de estilo en cascada) Mecanismo simple que describe la forma de presentación de un documento en pantalla con todas sus características.

• JSP: (JavaServer Pages) Herramienta para la creación de páginas web dinámicas basadas en HTML, XHTML, XML, entre otras.

• Java PHP: Lenguaje de programación para la conexión a un servidor de datos MySql.

• Java Script: Lenguaje de programación de vista al usuario.

• Android: Sistema operativo para dispositivos móviles.

Page 6: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

Tabla de contenido

1 INTRODUCCIÓN ............................................................................................ 11

2 OBJETIVOS ......................................... ........................................................... 12

2.1 OBJETIVO GENERAL .............................................................................. 12 2.2 OBJETIVOS ESPECÍFICOS ..................................................................... 12

3 PLANTEAMIENTO DEL PROBLEMA ........................ .................................... 13

3.1 DEFINICIÓN DEL PROBLEMA ................................................................. 13 3.2 JUSTIFICACIÓN ....................................................................................... 13

4 MARCO TEÓRICO ......................................................................................... 14

4.1 DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES CON ANDROID ... 14 4.1.1 Sistema operativo Android..................................................................... 14 4.1.2 Ventajas:................................................................................................ 17 4.1.3 Desventajas: .......................................................................................... 17 4.1.4 Anatomía de las aplicaciones Android ................................................... 17

4.2 GPS .......................................................................................................... 19 4.3 GEOLOCALIZACIÓN CON API GOOGLE MAPS ................................................. 21 4.4 BASES DE DATOS MYSQL ........................................................................... 22 4.5 APACHE TOMCAT ........................................................................................ 23 4.6 ZPANEL ...................................................................................................... 23

5 DESARROLLO DEL PROYECTO ........................... ....................................... 24

5.1 INTERFAZ DE ADMINISTRACIÓN ...................................................................... 24 5.2 INTERFAZ DE OPERARIO ............................................................................... 27 5.3 GEOLOCALIZACIÓN ...................................................................................... 28 5.4 CHAT ......................................................................................................... 30 5.5 DIAGRAMAS ................................................................................................ 31

5.5.1 Diagrama de bloques ............................................................................ 31 5.5.2 Modelo físico ......................................................................................... 33 5.5.3 Diagrama de Estados ............................................................................ 33 5.5.4 Diagrama de Actividades ....................................................................... 34 5.5.5 Diagrama de Secuencia ........................................................................ 34 5.5.6 Casos de Uso ........................................................................................ 35

6 INTERFAZ DE ADMINISTRADOR ......................... ........................................ 41

7 INTERFAZ DE OPERARIO .............................. ............................................... 45

Page 7: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

8 PRUEBAS DE CARGA BÁSICA DE LA INTERFAZ WEB ........ .................... 48

9 RESULTADOS ........................................ ........................................................ 52

10 CONCLUSIONES ........................................................................................... 54

11 BIBLIOGRAFÍA ...................................... ........................................................ 55

Page 8: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

Tabla de ilustraciones Ilustración 1. Arquitectura Sistema Operativo Android [17] .............................................. 15

Ilustración 2. Segmento de control GPS [11] ................................................................... 20

Ilustración 3. Retorno del API de Google Maps [19] ......................................................... 22

Ilustración 4. Diagrama de solución inicial ....................................................................... 25

Ilustración 5. Interfaz administrador ................................................................................. 26

Ilustración 6. Tabla empresas - Base de datos MYSQL ................................................... 27

Ilustración 7. Interfaz de operario ..................................................................................... 27

Ilustración 8. Tabla registro - Base de datos MYSQL ....................................................... 30

Ilustración 9. Diagrama de bloques final .......................................................................... 32

Ilustración 10. Modelo Físico ........................................................................................... 33

Ilustración 11. Diagrama de estados ................................................................................ 33

Ilustración 12. Diagrama de actividades .......................................................................... 34

Ilustración 13. Diagrama de secuencias .......................................................................... 35

Ilustración 14. Casos de Uso - Inicio de la aplicación ...................................................... 36

Ilustración 15. Icono Gestor Operarios ............................................................................. 36

Ilustración 16. URL Gestor administrador ........................................................................ 36

Ilustración 17. URL Gestor Operarios Administrador con login ........................................ 37

Ilustración 18. Casos de uso – Principales....................................................................... 37

Ilustración 19. Casos de uso – Agendamiento ................................................................. 38

Ilustración 20. Casos de uso – Empresas ........................................................................ 39

Ilustración 21. Casos de uso – Operarios ........................................................................ 40

Ilustración 22. Casos de uso - Chat ................................................................................. 40

Ilustración 23. Interfaz de administrador .......................................................................... 41

Ilustración 24. Interfaz de administrador - Agendamiento ................................................ 42

Ilustración 25. Interfaz de administrador - Empresas ....................................................... 43

Ilustración 26. Interfaz de administrador - Operarios ........................................................ 44

Ilustración 27. Interfaz de operario ................................................................................... 45

Ilustración 28. Interfaz de Operario – Cronograma de Trabajo......................................... 46

Ilustración 29. Interfaz de operario - Chat ........................................................................ 47

Ilustración 30. Configuración de Pruebas - Carga ............................................................ 48

Ilustración 31. Configuración de pruebas - Host .............................................................. 49

Ilustración 32. Árbol de Resultados ................................................................................. 49

Ilustración 33. Resultado en Tablas ................................................................................. 50

Ilustración 34. Informe resumido ...................................................................................... 50

Page 9: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

Tabla de Anexos

Manual de Uso de APP Gestor

Manual de Uso de APP gestor agenda operarios

CD con el código de diseño de Interfaz de usuario y APK de la aplicación de Android.

Page 10: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

RESUMEN J Pretelt Ingeniería Hidráulica EU es un empresa especializada en el diseño y construcción de redes hidrosanitarias, redes contra incendio, redes de gas, acueductos, y alcantarillado cuyo lugar de trabajo es diverso, cambiante constantemente y puede estar distanciado entre sí. Es allí donde se requiere una planeación estratégica asertiva, en donde la logística de manejo de personal operativo y comunicación eficiente genera una ventaja considerable. En este proyecto se pretende desarrollar una aplicación móvil en Android que permita tener el control y manejo del personal, mediante la ubicación por GPS que permita la comunicación entre la empresa y los operarios para de esta manera tener un registro de tiempos de llegada y salida en el lugar donde ellos estén trabajando almacenando esta información en una base de datos en MYSQL. Todo esto permitirá tener un manejo eficiente del personal permitiendo a la compañía ser más competitiva, reduciendo costos en nómina y mejorando los tiempos de entrega de los proyectos a sus clientes. Ya con la aplicación implementada la empresa podrá reducir costo en personal de control y movilización entre las obras, teniendo la comunicación rápida y eficiente desde la oficina de las tareas necesarias para cada uno de los operarios, y por medio del chat se puede resolver las dudas que se tengan en tiempo real, además de poder verificar que efectivamente se cumplan los tiempos y funciones de trabajo. En general se convierte en parte fundamental del sistema operativo. Palabras Claves: Lenguajes de Programación, Base de datos, Servidor, APP, Android, GPS.

Page 11: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

11

1 INTRODUCCIÓN

El trabajo descentralizado de las empresas contratistas generan un alto costo de personal al recurrir como entes de control y mejora en la eficiencia a más personal del realmente requerido para un trabajo en específico, es de allí que se observa una solución tecnológica en donde con pocos recursos se puede tener el manejo integral del personal operativo. Como primera instancia se requiere un control en el horario de los operarios, con ello unas horas laborales completas y un mejor desempeño del personal. En este punto se propone un marcado de llegada y salida por medio de los dispositivos móviles, en donde se puede verificar su posición geográfica por medio de la tecnología GPS. Además de tener claridad en las horas trabajadas por el personal, también se requiere de una planeación clara según cada tarea, en donde se muestra al operario unas metas a corto plazo y un estimado de su realización. De allí la importancia de tener informado a cada uno de los empleados constantemente de sus funciones, tareas y metas. Se propone tener en la misma aplicación de dispositivo móvil un medio informativo que puede ser administrado por el personal en la oficina central sin tener que hacer desplazamientos. Y por último si se requiere de algún tipo de concepto, material o consulta por parte del empleado para el cumplimiento de sus tareas, o en su defecto, el empleador requiere de algún tipo de confirmación en el avance o información de la obra, se propone una comunicación continua por medio de chat.

Page 12: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

12

2 OBJETIVOS

2.1 OBJETIVO GENERAL Desarrollar una aplicación para dispositivos móviles con base en las necesidades de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación en Android Studio con plataforma en Eclipse, basándonos en algoritmos de triangulación de GPS y almacenando la información constantemente en una base de datos MySQL.

2.2 OBJETIVOS ESPECÍFICOS

• Programar un algoritmo de triangulación basado en el sistema GPS dentro del lenguaje de programación de Android Studio con el fin de controlar los horarios de los operarios en las diferentes obras.

• Implementar un chat que permita a los operarios comunicarse con su jefe

directo o jefe de obra. • Desarrollar una interfaz que permita a la empresa hacer el Agendamiento

de sus operarios en las distintas obras en las que opera. • Generar una base de datos donde se guarden la información de la

ubicación de los empleados en los horarios para una verificación eficaz.

Page 13: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

13

3 PLANTEAMIENTO DEL PROBLEMA

3.1 DEFINICIÓN DEL PROBLEMA J Pretelt Ingeniería Hidráulica EU es una empresa descentralizada en la parte operativa, y este es un factor que requiere mucha organización y planeación pues cada lugar donde se realizan labores tiene diferentes necesidades y atenderlas a tiempo es muy importante. Por ser una empresa pequeña las funciones se dividen en pocas personas, y en ocasiones una sola persona puede estar a cargo de diferentes áreas; esto sumado a que se manejan varias obras a la vez, crece el riesgo de un manejo de personal desorganizado, no controlado e ineficiente.

3.2 JUSTIFICACIÓN En estas mismas condiciones se encuentran muchas empresas del sector de la construcción y en un mundo competitivo en donde hay un gran mercado de empresas para el mismo servicio es de vital importancia generar un plan estratégico con pilares que puedan ser diferenciadores y dar una ventaja considerable. De allí nace la necesidad de un control de personal que genere eficiencia y a bajo costo. Si se da un enfoque tradicional a este problema este generaría muchos recursos y tiempo para poder solucionarlo, por ello es importante considerar que la tecnología nos da los recursos necesarios para solucionarlos en conjunto con poco presupuesto. Tomando recursos como Internet, GPS y mensajería instantánea y compilándolos en una aplicación para dispositivos móviles se puede diseñar e implementar una herramienta eficiente y económica que permita controlar la logística de los operarios de la empresa sin tener una persona en cada sitio verificando que ellos estén en la obra, ahorrando a la empresa en contratar más personal y mejorando considerablemente la logística que se requiere para el manejo de los trabajadores.

Page 14: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

14

4 MARCO TEÓRICO En el desarrollo del proyecto es necesaria la revisión de muchos conceptos que si bien no son nuevos, se requiere de profundización y su total entendimiento, los cuales se encuentran especificados a continuación:

4.1 Desarrollo de aplicaciones para dispositivos móviles con Android Para el desarrollo de las aplicaciones en Android es importante saber muy bien el funcionamiento del sistema operativo y en dónde se aloja cada uno de sus componentes, para así saber cómo diseñar e implementar cada uno de estos. 4.1.1 Sistema operativo Android

Android más que un sistema operativo es una plataforma de software para dispositivos móviles, la cual contiene un sistema operativo basado en el núcleo Linux pero también aplicaciones base.

La plataforma de Android es de código abierto y desarrollada por la Open Handset Alliance, liderada por Google. La estructura del sistema se construye de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos, la cual se encuentra sobre el núcleo de las bibliotecas igualmente de Java en una máquina virtual Dalvik. La compilación en tiempo de ejecución hasta la versión 5.0 ya que después de allí cambió al entorno Android Runtime (ART).

Android está construido sobre el kernel de Linux. Además, se utiliza una máquina personalizada virtual que fue diseñada para optimizarlos recursos de memoria y de hardware en un entorno móvil.

Arquitectura

La arquitectura del sistema operativo Android, está formada por 5 componentes como se muestra en la Ilustración 1.

Page 15: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

15

Ilustración 1. Arquitectura Sistema Operativo Android [17]

• Kernel de Linux

El Kernel 2.6 de Linux es la base de Android por su robustez demostrada y por la implementación de funciones básicas para cualquier sistema operativo.

Android utiliza como base el kernel de Linux pero los dos sistemas no son lo mismo, Android no cuenta con un sistema nativo de ventanas de Linux ni tiene soporte para Glibc (librería estándar de C) y no es posible utilizar la mayoría de aplicaciones de GNU de Linux.

El kernel de Linux, Android agrega algunos atributos específicos para plataformas móviles como: la comunicación entre procesos (lograda a través del Binder), la forma de manejar la memoria compartida (ashmem) y la administración de energía (con wakelocks). [17]

• Runtime de Android

Android incluye un conjunto de librerías base que proveen la mayor parte de las funcionalidades disponibles en el lenguaje de programación Java.

Page 16: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

16

Cada aplicación Android corre su propio proceso, con su propia instancia en la máquina virtual Dalvik.

Ejecutable (.dex), el cual está optimizado para memoria mínima, en donde la máquina virtual corre compilaciones de java transformadas en formato .dex incluida en la herramienta. [17]

• Librerías

Android incluye un conjunto de librerías C/C++ usadas por varios componentes del sistema Android las cuales se exponen a través del framework. Algunos ejemplos son: Maps (usada para el GPS), Bundle (usar funcionalidades de terceros), etc. [17]

• Framework de aplicaciones

La arquitectura está diseñada para simplificar la reutilización de componentes con la facultad que cualquier aplicación puede publicar sus capacidades para que se puedan utilizar en cualquier otra aplicación todo sujeto a reglas de seguridad del framework. Dado de esta forma Android expone todos sus APIs para ser utilizados por los programadores y poder reemplazar cualquier componente. [17]

• Máquina virtual Dalvik

Máquina virtual es un software que emula a un ordenador y puede ejecutar programas de la misma forma. Android contiene la máquina virtual Dalvik, la cual es un entorno de programación completo que ha sido escrita de forma que un dispositivo puede correr en múltiples máquinas virtuales de forma eficiente, es decir con poca memoria, y además ejecuta archivos en el formato Dalvik

Las principales características del sistema operativo de Android además de las ya descritas son:

• Adaptable a muchas pantallas y resoluciones • SQLite para el almacenamiento de datos • Diferentes formas de mensajería • Navegador web basado en WebKit incluido • Soporte de Java y muchos formatos multimedia • Soporte de HTML, HTML5, Adobe Flash Player, entre otros • Herramientas para depuración de memoria • Análisis del rendimiento del software • Google Talk desde su versión HoneyComb

Page 17: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

17

• Multitarea real de aplicaciones [17] El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++. [19]

4.1.2 Ventajas:

La principal ventaja de Android es su código abierto que permite programar el SDK en todos los sistemas operativos, esto gracias a que Google liberó la licencia bajo Apache. Este plus permite que aproximadamente dos tercios de las aplicaciones que estén en la red sean gratuitas y que los equipos con este sistema operativo sean de menor costo. Es un sistema multitarea, es decir, permite realizar varias tareas al mismo tiempo, dejando algunas inactivas o cerrando otras en el momento que la memoria o batería así lo requieran. [19]

4.1.3 Desventajas: El código abierto al mismo tiempo de llamar a programadores para una retroalimentación benéfica, es muy interesante para los cibercriminales que hacen que tenga mayor vulnerabilidad a software malicioso. Lo que es una ventaja al imponerse como un sistema multitarea también puede generarse como desventaja en el momento de mirar la batería en donde dura mucho menos, en algunas referencias de teléfonos la duración puede ser de 6 horas. También tiene como desventaja la dependencia de la cuenta Google para su configuración. [19]

4.1.4 Anatomía de las aplicaciones Android Una aplicación Android está compuesta por sus actividades, las cuales, por lo general, son pantallas que permiten la implementación de las clases, los Intent e Intenfilters, el Broadcast Intent Receiver, los servicios y el Content Provider.

A continuación se detalla cada una de estos componentes:

• Activity: habitualmente es una pantalla de la aplicación. Cada actividad es implementada como una clase que extiende a la clase base. La clase mostrará una interfaz de usuario compuesta por Views que responderá a

Page 18: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

18

los distintos eventos que se produzcan. La mayoría de las aplicaciones están compuestas por varias pantallas, por lo que éstas, a su vez estarán compuestas por varias actividades. Las Activities deben estar declaradas en el archivo Android Manifiest de la siguiente manera:

<manifest ... > <application ... > <activity android:name=".ExampleActivity" /> ... </application ... > ... </manifest > [8]

• Intent e IntentFilters: son clases especiales para moverse de una pantalla a otra. Describe lo que una aplicación quiere hacer. Lo más importante de esta estructura es la acción y los datos para llevarla a cabo. La navegación entre pantallas se logra mediante la resolución de Intents. Este tipo de aplicaciones usan un mecanismo asíncrono de mensajería mediante el cual, se logra relacionar cada solicitud del sistema a una actividad adecuada.

Cuando la aplicación genera esa Intención (muchas están pre-definidas), Android busca la más adecuada para manejar la misma. Si no está registrada, el usuario debe definirla en el fichero AndroidManifest.xml para que se lance la actividad correspondiente. Este fichero es requerido por todas las aplicaciones. Contiene los valores globales del paquete que se está usando, incluyendo los componentes de aplicación, la implementación de las clases para cada componente, qué tipo de datos puede manejar y cuándo pueden ser lanzados.

• Broadcast Intent Receiver: se puede usar cuando se requiere que se ejecute algo como reacción a un evento externo. No usan la interfaz de usuario. Usan Notification Manager para alertar de que algo ha pasado.

• Service: es un código que se ejecuta sin ninguna interfaz de usuario, en segundo plano, para permitir así la ejecución de otras actividades. Es importante notar que es posible conectarse a un servicio mediante la interfaz que la actividad pone a disposición del usuario.

• Content Provider: son aplicaciones que establecen sus datos en fichero, bases de datos, etc. Tienen sentido si se quiere compartir datos con otras aplicaciones. Es un servicio que da a las aplicaciones, capacidad de comunicación bilateral con otras aplicaciones de forma interna. [9]

Page 19: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

19

4.2 GPS El GPS o Sistema de Posicionamiento Global, cuyo nombre correcto es NAVSTAR-GPS1 ya que técnicamente es el sistema que hoy está en funcionamiento, es un sistema global de navegación por satélite que permite determinar en todo el mundo la posición de un dispositivo ubicado en un objeto, persona, vehículo, nave, o cualquier cosa que sea dispuesto por los medios tecnológicos. Se puede alcanzar una precisión hasta de centímetros usando el GPS diferencial, aunque esta precisión es usada en medios específicos, lo habitual es unos pocos metros. Aunque su invención se atribuye a los gobiernos de Francia y Bélgica, el sistema fue desarrollado e instalado por el Departamento de Defensa de los Estados Unidos, del que actualmente se encarga. El GPS consta de una red de 27 satélites, de los cuales 24 son operativos y 3 se encuentran como respaldo, los cuales orbitan a 20.200 km de la superficie terrestre, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Para determinar una posición, el receptor utiliza automáticamente como mínimo tres satélites de la red, lo que realiza una triangulación con respecto a la señal y al reloj de cada uno de ellos. La triangulación en el caso del sistema de posicionamiento global se basa en determinar la distancia de cada satélite respecto al punto de medición y el reloj es importante para determinar el retraso de la señal para determinar la distancia al satélite, además de poder sincronizar el sistema de posicionamiento. Con respecto a la posición en la que se encuentre los tres satélites de referencia y las distancias tomadas de las señales se genera la posición real del objeto. Para mayor exactitud en la medición se requiere de un reloj con bastante precisión similar a los relojes atómicos de los cuales están provistos los satélites. El sistema GPS está constituido por tres segmentos fundamentales:

� Espacial:

El segmento espacial consiste en una constelación nominal formada por 24 satélites operativos que transmiten señales unidireccionales en las cuales se proporcionan la posición y la hora de cada satélite del GPS.

Los satélites se encuentran situados a 20.180 Km de altura de la superficie terrestre y se desplazan a una velocidad de 14.500 Km/h.

Page 20: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

20

Las órbitas son casi circulares y de forma tal que el satélite pasa por el mismo punto de la tierra en el mismo momento todos los días, quedan situados sobre 6 planos orbitales, en donde cada uno de los planos contiene 4 satélites, espaciados equidistantes a 60 grados e inclinados unos 15 grados respecto al plano ecuatorial. La disposición en la que se plantean actualmente permite que desde cualquier punto de la superficie terrestre sean visibles entre cinco y ocho satélites.

� Segmento de control:

El segmento de control está formado por estaciones de seguimiento y control, las cuales se encuentran distribuidas por todo el mundo a fin de mantener los satélites en la órbita apropiada, esto lo logra mediante maniobras de mando y ajustes de los relojes satelitales. Dichas estaciones también realizan el seguimiento de los satélites, cargan información de navegación actualizada y garantizan el funcionamiento adecuado del sistema tal como se muestra en la Ilustración 3.

Ilustración 2. Segmento de control GPS [11]

� Segmento de usuario:

El segmento de usuario lo forman los receptores y la comunidad de usuarios. Los receptores que analizan las señales recibidas de los satélites y los convierten en datos de posición, velocidad y tiempo estimados. Se requieren cuatro satélites para el cálculo de la posición en cuatro dimensiones X, Y, Z y tiempo. Los receptores son utilizados para navegación, posicionamiento, estimaciones temporales y otras investigaciones.

Page 21: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

21

La navegación en tres dimensiones es la función principal del GPS. Se construyen receptores GPS para aeroplanos, embarcaciones, vehículos terrestres y equipos portátiles de pequeño tamaño. El posicionamiento preciso es posible usando receptores en posiciones de referencia en donde se proporciona datos de corrección y posicionamiento relativo a receptores remotos. Este tipo de posicionamiento se utiliza en aplicaciones de vigilancia, control geodésico y estudios de las placas tectónicas. Las aplicaciones de tiempo y estabilización de frecuencia se basan en la precisión de los relojes que incorporan los satélites y que son monitorizados continuamente por las estaciones de control. Para ello los satélites actuales incorporan cuatro relojes atómicos (2 de Rubidio y 2 de Cesio) que ofrecen una estabilidad de frecuencia muy baja la cual equivale a un error de un segundo cada 30.000 años. Los observatorios astronómicos, sistemas de telecomunicaciones, sincronización de centrales eléctricas y laboratorios de certificación pueden obtener señales de tiempo y frecuencia de alta precisión mediante receptores especiales de GPS y sincronización adecuada de sus relojes en tierra.

4.3 Geolocalización con API Google Maps El API de Google Maps ofrece una interfaz de programación de aplicaciones gratuita que permite incorporar en los desarrollos los mapas que Google contiene con diversidad de facultades según lo que se requiera.

Page 22: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

22

Ilustración 3. Retorno del API de Google Maps [19]

Dentro de las propiedades que se pueden encontrar en el API de Google Maps se encuentra la posibilidad de retornar la ubicación y radios de precisión del desarrollo que se realice, la cual se encuentra como Google Maps Geolocation API. En esta interfaz se toma la información de torres celulares y nodos Wi-Fi que el cliente móvil pueda identificar para así mismo retornar la información de geolocalización. Ya para la implementación se debe tener en cuenta que la conexión se realiza mediante lenguaje HTTPS usando POST y el formato de los archivos que se reciben o envían para realizar la consulta se encuentran en JSON, además que se requiere una clave solicitada directamente a Google, y esta Key identifica la aplicación desarrollada a los fines de la administración de la cuota. [18]

4.4 Bases de Datos MySQL MySQL es un sistema de gestión de base de datos relativamente simple pero con un rendimiento considerable. Aunque no tiene algunas de las características de otros SGBD es muy usado gracias a libre distribución por internet bajo licencia GPL. Se cuenta con múltiples plataformas según sistema operativo.

Page 23: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

23

De las principales características de las bases de datos MySQL se encuentran:

� Desarrollado en C/C++. � Disponibilidad en ejecutables para diferentes plataformas, y la API está

disponible en C, C++, Eiffel, Java, Perl, PHP, Python, Ruby y TCL. � Óptimo para equipos de múltiples procesadores. � Veloz en respuesta. � Versátil ya que se puede utilizar como cliente-servidor o incrustado en

aplicaciones. � Contiene múltiples tipos de datos y soporta múltiples métodos de

almacenamiento de las tablas, con prestaciones y rendimiento diferentes. � La administración se basa en usuarios y privilegios. � Manejo de gran cantidad de datos sin errores. � Conectividad que abarcan TCP/IP, sockets UNIX y sockets NT, además de

soportar completamente ODBC. � Confiable en cuanto a estabilidad se refiere/C++.[14]

4.5 Apache Tomcat Tomcat es un contenedor Web con soporte de Serviets (Programas ejecutados en el contexto de navegador web), e incluye el compilador Jasper que compila JSP convirtiéndolas en Serviets. [23] Su desarrollo se realizó por parte de miembros de Apache Software Fundations y voluntarios independientes. Tomcat puede ser usado como servidor web tanto en nivel de desarrollo como para manejo de alto tráfico y disponibilidad desde sus últimas versiones.

4.6 Zpanel Zpanel es un panel de control gratuito para la gestión de hosting Web, que se recomienda para ambientes de desarrollo. Se caracteriza por la facilidad de uso de automatización de alojamientos web y gestión de servidores web de dominio, cuentas de correo, base de datos, etc. Zpanel se encuentra escrito en PHP e implementa código abierto para su compatibilidad. Contiene paquetes como Apache Web Server, hMailServer, FileZilla Server, MySQL, PHP, Webalizer, RoundCube… [21]

Page 24: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

24

5 DESARROLLO DEL PROYECTO Para el proyecto de diseño de la aplicación de control del personal para J Pretelt Ingeniería Hidráulica EU se necesitaba implementar una interfaz sencilla y amigable que les permitiera a los usuarios interactuar de manera eficiente en el programa. Para ello se dividió en dos partes el desarrollo de la aplicación:

• La interfaz de administración: La cual se realiza en ambiente web por cuestiones de implementación-

• La interfaz del operario: Desarrollado en un API de Android 6.0 (Marshmallow) con compatibilidad a versiones anteriores.

Se modificó el diseño inicial de la solución planteada en algunos puntos no esenciales para el funcionamiento ni para el cumplimiento tanto de los objetivos del proyecto como los objetivos que se tenían para la empresa.

5.1 Interfaz de administración Uno de los cambios más evidentes se encuentra en el interfaz de administración es por ello que se muestra en la Ilustración 7, el diagrama de bloques que se plantea inicialmente para la solución:

Page 25: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

25

Ilustración 4. Diagrama de solución inicial

Uno de los problemas que encuentran en el desarrollo es que el uso en estas plataformas no sería tan eficiente en la visualización de reportes y navegación en la aplicación, por tratarse de una plataforma laboral de uso diario destinada a estar en una instalación fija, se hace necesario tener una pantalla mucho mayor que la de un móvil pues es un punto crítico para quien opere esta interfaz, por ello se decidió desarrollar un servicio web al que se accede desde un computador con conexión a internet, el cual permite un mayor rendimiento y comodidad para quien haga uso de la aplicación. Otra de las razones es la capacidad del dispositivo móvil y uso de la batería pueden limitar el correcto desempeño de la aplicación en esta interfaz.

Page 26: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

26

Ilustración 5. Interfaz administrador

Esta interfaz se desarrolló un entorno web basado en el lenguaje HTML5 y los estilos CSS, el cual es compatible y contiene servicios en lenguaje Java orientado a web, Java Server Pages que funcionan en un servidor Apache Tomcat 7, por otro lado la gestión central del sitio se hace con ZPanel, un panel de control de sitios web gratuito, que permite configurar los DNS para la IP publica donde se encuentra el servidor asociando esta IP a un dominio que para este caso es opmanager.tk saliendo por el puerto 8083 (opmanager.tk:8083), las bases de datos en MYSQL y la gestión de ficheros por FTP y Filezilla. Para este entorno web se definió el rol de administrador. El administrador es la persona encargada de registrar a los empleados, crear la agenda y registrar las empresas a las que se prestarán los servicios, ver el estado de cada obra programada y ver el número de horas trabajadas por cada operario, al hacer uso de un servidor de base de datos MYSQL toda esta información queda almacenada. Cuando se registra una empresa en esta interfaz los datos de la dirección permiten obtener las coordenadas de latitud y longitud a través del Api de Google Maps y estos a su vez quedan almacenados en la base de datos.

Page 27: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

27

Ilustración 6. Tabla empresas - Base de datos MYSQL

También se desarrolló sobre este entorno web un chat que permite a los usuarios que usen esta interfaz la comunicación con cada uno de los operarios.

5.2 Interfaz de operario Esta interfaz se mantuvo como lo que se planteó inicialmente, la aplicación se desarrolla directamente en Android Studio con un nivel 23 de API compatible con Android 6 y todas sus subversiones, se constituye de piezas visuales en XML que manejan textos, botones, vistas, entre otros. Además de una capa lógica en lenguaje java que administra la conexión al servidor, enviando y recibiendo datos del mismo.

Ilustración 7. Interfaz de operario

Para esta interfaz se definió el rol de operario. El operario es el empleado que realiza los trabajos en las empresas para las que trabaja J Pretelt Ingeniería Hidráulica, esta interfaz permite a los operarios revisar la agenda programada por

Page 28: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

28

el administrador en la interfaz de administración, allí encontrarán información de las tareas que deben realizar, la hora, fecha, dirección y nombre de la empresa donde deben presentarse para realizar sus labores, a través de esta aplicación el operario debe registrar su llegada a la obra como si se tratara de un sistema para marcar tarjeta, la aplicación está en capacidad de validar que el operario se encuentre en el lugar programado y solo podrá registrar su ingreso si se encuentra en el lugar correcto. Haciendo uso del API de Google Maps y del GPS del teléfono móvil es posible obtener las coordenadas de latitud y longitud, estas son comparadas con las que se almacenaron en base de datos al realizar el registro de la empresa en la interfaz de administración.

Se incorporó en la interfaz un chat que le permite al operario comunicarse con el administrador por texto.

Para esta interfaz se planteó la necesidad de adicionar una opción de seguridad que impidiera que este registro se realizara desde cualquier móvil para ello se implementó la validación por MAC. Cuando el operario se registra por primera vez en esta interfaz se hace uso de una herramienta del Api de Google que permite obtener la dirección MAC del dispositivo móvil, esta queda registrada en base de datos, cada vez que el operario inicia sesión en la aplicación se valida este parámetro si no coincide con el registrado en base de datos el operario no podrá iniciar la sesión. Esto obliga al operario a iniciar sesión solo desde su móvil y no desde el móvil de otro operario.

5.3 Geolocalización La configuración de un algoritmo de triangulación basado en el sistema GPS, el cual se apoya en el API de Google Maps con sus diferentes funcionalidades. Google Maps Geolocation API es la aplicación que permite al dispositivo móvil Android generar su ubicación y radios de precisión basándose en torres celulares y nodos Wi-Fi que pueda detectar. Al realizarse una solicitud de geoposicionamiento se obtiene una latitud, una longitud, en este proyecto el proceso de ubicación se genera en dos partes:

• Registro de empresa • Validación de ingreso y salida de obra del empleado

Registro de empresa:

Page 29: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

29

Este es un proceso que se lleva a cabo en la interfaz de administración por el administrador. El registro de la empresa se implementó para tener los datos de ubicación de la misma usando el API de Google Maps, al momento de ingresar la dirección de ubicación de la empresa el API de Google Maps entrega las coordenadas de latitud y longitud las cuales son almacenadas en base de datos, estas servirán para realizar la validación de ingreso y salida de obra del empleado. function codeAddress() { geocoder = new google.maps.Geocoder(); var address = document.getElementById("my-address").value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var lati = (document.getElementById('lat')); var longi= (document.getElementById('long')); // saca los valores de latitud y longitud lati.value="Latitude: "+results[0].geometry.location.lat(); longi.value="Longitude: "+results[0].geometry.location.lng(); alert("Latitude: "+results[0].geometry.location.lat()); alert("Longitude: "+results[0].geometry.location.lng()); } else { alert("Geocode was not successful for the following reason: " + status); } }); Validación de ingreso y salida de obra del empleado: Este proceso se desarrolla en la interfaz de operario. El operario es quien tiene que registrar el ingreso al lugar donde tiene que laborar y la salida al momento de terminar labores desde su teléfono móvil. El proceso de validación funciona de la siguiente manera: Cuando el operario decide registrar el ingreso o salida de la obra en la interfaz de operario esta toma los datos de geoposicionamiento (Latitud y Longitud) del GPS de su terminal móvil y los compara con los datos de Latitud y Longitud de la empresa que previamente se registraron en base de datos en la interfaz administrativa, debido a que hay empresas que son muy grandes se determinó un radio de precisión de alrededor de 200mt si el operario no se encuentra en este radio la aplicación no le permitirá registrar el ingreso o salida indicándole que se encuentra lejos del lugar de trabajo, si el operario se encuentra dentro de ese radio se generará el registro y se guardará en el servidor de base de

Page 30: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

30

datos MSQL guardando los datos de longitud y latitud del operario y la hora en que se generó el registro.

Ilustración 8. Tabla registro - Base de datos MYSQL

5.4 Chat Se implementar un chat para permitir una comunicación entre los integrantes de la empresa. Inicialmente se consideraba una comunicación entre operarios y administrador, pero en el proceso de desarrollo se considera dos salas en las cuales se van

Page 31: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

31

conectando los usuarios según sea necesario, una de ellas para ‘soporte técnico’ considerada más para la comunicación y verificación de requerimientos propias del trabajo y otra de ‘soporte ubicación’ para temas considerados con los horarios o incapacidad de realizar registros por no estar en sitio.

5.5 Diagramas Se consideran los siguientes diagramas para plasmar y contextualizar el diseño e implementación realizado en el proyecto en un ambiente de pruebas.

5.5.1 Diagrama de bloques El diagrama de bloques que se implementa parra la APP de J Pretelt ingeniería Hidráulica EU es:

Page 32: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

32

LOGUEOREGISTRO HORARIO

VERIFICACIÓN DE INFORMACION

LABORAL

CHAT

REGISTRO ENTRADA

REGISTRO SALIDA

DISPOSITIVO MOVIL

WEB ADMINISTRADOR

LOGUEO

EMPRESA

OBRA

OPERARIO

CHAT

SERVIDOR

ALMACENAMIENTO DE INFORMACION

PROCESAMIENTO DE DATOS

TRANSMISION DE DATOS

TRANSMISION DE DATOS

REGISTRO

LISTADO

REGISTRO

ESTADO

REGISTRO

CONSULTA

REG TAREAS

Ilustración 9. Diagrama de bloques final

Page 33: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

33

5.5.2 Modelo físico El modelo físico necesario para su funcionamiento de la solución propuesta es:

Web Service MySQLServidor de Aplicación

Administrador

App

Ilustración 10. Modelo Físico

5.5.3 Diagrama de Estados Según el estado de la aplicación y de los datos ingresados a ella para su funcionamiento se pueden encontrar los siguientes estados:

INACTIVO

EMPRESA CREADA

OPERARIO CREADO

OBRA CREADA

LABOR REGISTRADA

CONSULTA

Evento / Acción

Evento / Acción

Ev

en

to /

Acci

ón

Evento / Acción

Ev

en

to /

Acci

ón

REGISTRO OPERARIO

Evento / Acción

Ilustración 11. Diagrama de estados

Page 34: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

34

5.5.4 Diagrama de Actividades Con base al planteamiento de la solución para J Pretelt Ingeniería Hidráulica EU se contemplan el siguiente diagrama de actividades:

Ilustración 12. Diagrama de actividades

5.5.5 Diagrama de Secuencia Con base al planteamiento de la solución para J Pretelt Ingeniería Hidráulica EU se contemplan el siguiente diagrama de secuencias:

Page 35: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

35

AdminAdministrador Portal

Web

Base de

Datos

Creación empresa

Visualización

Creación ObraVisualización

Creación Operario

Visualización

Creación Tarea

Visualización

Login Autenticación

Datos Correctos

Datos Incorrectos

APP

Operario

Validacion tarea

Registro Entrada

Registro Salida

Chat Chat

Chat Chat

Visualización

Logout

Validacion Login

API Google

Maps

Peticion de Ubicación

Geolocalización

Geolocalización

Ilustración 13. Diagrama de secuencias

5.5.6 Casos de Uso Para la aplicación de J Pretelt Ingeniería Hidráulica EU de control de personal por medio de geolocalización se contemplan los siguientes casos de uso:

• El actor iniciará la aplicación ingresando a opmanager.tk:8383

Page 36: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

36

• El actor ingresará su usuario (N° documento)

• El actor ingresará contraseña

• El actor tiene acceso al menú principal

Ilustración 14. Casos de Uso - Inicio de la aplicación

El actor inicia la aplicación desde el acceso en el escritorio del computador

Ilustración 15. Icono Gestor Operarios

El cual abre la aplicación la siguiente ruta

Ilustración 16. URL Gestor administrador

Page 37: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

37

Ingresa los datos de usuario (documento de identidad) y contraseña y se habilitan las opciones del menú principal

Ilustración 17. URL Gestor Operarios Administrador con login

En interfaz administrativa se definieron los casos de uso principales así:

• El actor accede para crear agenda

• El actor accede para crear empresa

• El actor accede para crear operario

• El actor accede al chat

Ilustración 18. Casos de uso – Principales

A continuación se presenta cada uno de los casos de uso principales:

Caso de uso Agendamiento:

Page 38: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

38

• El Actor accede al menú Agendamiento

• El actor debe seleccionar la empresa a la que se prestarán los servicios

• El actor programa la fecha y hora en que se realizará la prestación de los servicios

• El actor selecciona los operarios que intervendrán en la obra

• El actor asigna las tareas que desempeñarán los operarios seleccionados

• El actor guardará los datos del Agendamiento y estos se guardarán en base de datos

Ilustración 19. Casos de uso – Agendamiento

Caso de uso Empresas permite registrar las empresas a las que se prestarán los servicios.

• El Actor accede al menú Empresas

• El actor ingresa los datos de la nueva empresa

• El actor ingresa la dirección de la empresa donde se prestarán los servicios

• El actor puede ubicar el mapa la empresa y marcar la ubicación exacta donde se prestarán los servicios

• A través de la dirección o la ubicación en el mapa se generan las coordenadas Latitud y longitud

Page 39: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

39

• El actor guardará los datos de la empresa y estos se guardarán en base de datos

Ilustración 20. Casos de uso – Empresas

Caso de uso Operario permite registrar a los operarios que realizarán las labores en las obras.

• El Actor accede al menú Operario

• El actor ingresa los datos del operario

• El actor guardará los datos del operario y estos se guardarán en base de datos

Page 40: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

40

Ilustración 21. Casos de uso – Operarios

Caso de uso Chat permite al administrador Chatear con los operarios

• El actor accede al menú CHAT

• El actor inicia sesión

• El actor se comunica con los operarios por texto

• El actor cierra sesión

Ilustración 22. Casos de uso - Chat

Page 41: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

41

6 INTERFAZ DE ADMINISTRADOR Para la interfaz de administrador de la solución planteada a J Pretelt Ingeniería hidráulica EU. Se desarrolla un servicio web que funciona de la siguiente forma:

Ilustración 23. Interfaz de administrador

Para el detalle de cada uno de los procesos se representa tiene unos procesos que a continuación se especifican. En el caso de Agendamiento se encuentran los siguientes procesos:

Page 42: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

42

Ilustración 24. Interfaz de administrador - Agendamiento

En el caso de empresas se encuentran los siguientes procesos:

Page 43: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

43

Ilustración 25. Interfaz de administrador - Empresas

Y en el caso de operarios se encuentran los siguientes procesos:

Page 44: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

44

Ilustración 26. Interfaz de administrador - Operarios

Page 45: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

45

7 INTERFAZ DE OPERARIO Esta es la interfaz utilizada por el operario en su teléfono móvil Smartphone. Esta interfaz fue desarrollada para dispositivos que funcionan en la plataforma Android y se conecta al servicio web que a su vez almacena los datos en la base de datos MYSQL. Los siguientes diagramas de flujo muestran su funcionamiento.

Ilustración 27. Interfaz de operario

Y desglosando las actividades que se encuentran en la interfaz de operario se obtiene:

Page 46: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

46

Ilustración 28. Interfaz de Operario – Cronograma de Trabajo

Page 47: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

47

Ilustración 29. Interfaz de operario - Chat

Page 48: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

48

8 PRUEBAS DE CARGA BÁSICA DE LA INTERFAZ WEB

Para el desarrollo de estas pruebas se implementó un software llamado Apache JMeter, el cual se considera adecuado según las características del servidor implementado en el ambiente de pruebas.

El Apache JMeter es un software de código abierto, una aplicación diseñada totalmente en JAVA para medir el rendimiento y comportamiento de servidores mediante pruebas. Originalmente se diseñó para probar aplicaciones Web, pero se ha ampliado desde entonces a otras funciones. Se utilizar para probar el rendimiento tanto de los recursos estáticos y dinámicos (archivos, Servlets, scripts de Perl, objetos Java, bases de datos - consultas, servidores FTP y mucho más). Se puede utilizar para simular una carga pesada en un servidor, la red o un objeto para poner a prueba su resistencia o para analizar el rendimiento global en diferentes tipos de carga. Puede usarlo para hacer un análisis gráfico de rendimiento o para probar el comportamiento de diferentes elementos con un gran volumen de carga y concurrencia. [24]

En esta prueba se simula una conexión de 50 usuarios con un periodo de 5 segundos lo que significa que se conectarán 10 usuarios por segundo. Dichos parámetros se consideran ya que la empresa es pequeña y tiene un estimado de crecimiento inferior al propuesto en la prueba.

Ilustración 30. Configuración de Pruebas - Carga

Se configura la petición http en donde se coloca la dirección del servidor en el cual se encuentra en ejecución el servicio web, para el caso de la app de control de personal de J Pretelt ingeniería hidráulica EU en ambiente de pruebas es opmanager.tk:8083.

Page 49: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

49

Ilustración 31. Configuración de pruebas - Host

Al iniciar correctamente la simulación los resultados obtenidos son los siguientes:

• Árbol de resultados:

Ilustración 32. Árbol de Resultados

Allí se puede observar que para la primera muestra el tiempo de carga de 3608 ms el tiempo de latencia fue de 3336 ms y el código de respuesta del servidor fue el 200 indicando una respuesta de OK, es decir, satisfactoria en respuesta de velocidad y respuesta de petición.

Page 50: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

50

• Resultados en tablas:

Ilustración 33. Resultado en Tablas

Se pueden observar los resultados en forma de tabla donde se listan cada una de las muestras y cada columna indica el tiempo de carga, el estado, el tamaño en bytes la latencia y el tiempo de la conexión.

• Informe resumido:

Ilustración 34. Informe resumido

Este informe genera un resumen del total de las muestras, la media, el tiempo de carga mínimo y máximo, la desviación estándar, el porcentaje de error, el rendimiento, la tasa en Kb/seg y la media de bytes recibidos.

Page 51: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

51

Se puede observar que para esta prueba el tiempo de carga promedio para una cantidad de 10 usuarios por segundo es de 6991 ms con una latencia promedio 4752 ms. Estos resultados son los esperados debido a que el servicio se encuentra corriendo desde un servidor pequeño usando un canal de internet comercial lo que hace que se tenga un valor de latencia promedio de 4752 y valores de carga de 6991 ms, estas condiciones podrían mejorar si se monta en un servidor en la nube como pueden ser los ofrecidos por Amazon AWS o los Azure de Microsoft donde se pueden encontrar servidores físicos o servicios de virtualización, en todo caso estos servicios son costosos y la demanda de usuarios de la plataforma determinaría la implementación de estos o no, por lo pronto la demanda de usuario no es alta lo que permitiría usar esta plataforma de manera óptima con los recursos actuales.

Page 52: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

52

9 RESULTADOS En la implementación del ambiente de pruebas de la aplicación se obtuvo como interfaz de administrador un acceso por web en donde se puede realizar los procesos:

• Con lo que respecta a las empresas en donde se realizan los contratos para iniciar labores se cuenta con un formulario de registro de empresa y visualización del listado de estas.

• Un Agendamiento que valida tanto la creación de obra como el estado de ellas con respecto a cada uno de los operarios. En el momento de la creación de una obra se requiere el ingreso de la geolocalización en donde se encuentra esta, para realizar el punto en el cual el operario puede registrar su ingreso o salida.

• Una administración de operario en donde se realiza el registro del personal, registro de tareas y consulta de los registros de entrada y salida de cada uno. El operario solo se podrá registrar si se encuentra en su lugar de trabajo, que en este caso es la obra, para lo cual se tiene un rango establecido para considerar el error de la triangulación GPS recibida del API de Google, pero sin ser tan extenso para poder están en lugares cercanos. Es por ello que se debe considerar que si la obra se encuentra en un lugar muy extenso es necesario especificar en el registro de la obra y a los operarios que el registro se debe efectuar en un lugar en específico, que suele ser la entrada.

• Un chat en donde se valida los mensajes que los operarios registran desde

sus dispositivos móviles. La transmisión de datos es correcta.

Todos los datos que se registran en las bases de datos son validados, dando como parte una validación de la base de datos confiable. La aplicación para dispositivos móviles implementados en los móviles de pruebas para el control de los operarios de J Pretelt Ingeniería Hidráulica EU contiene: • Una validación inicial de logueo con datos correcto, los cuales se encuentran

almacenados en la base de datos.

Page 53: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

53

• Una visualización de tareas registradas en la interfaz de administrador rápida y veraz.

• Un registro de horario tanto de entrada como de salida con su

geoposicionamiento correcto con un rango de error aceptable para su funcionamiento.

• Con el fin de evitar el registro de compañeros en el lugar de trabajo, se dispuso

una regla de verificación en el momento de registrarse e ingresar a la APP en donde debe ser con la MAC o mismo dispositivo que el usuario uso en su primer ingreso.

La aplicación para dispositivos es desarrollada en Android Studio con un API 23 que representa a Android 6.0 (Marshmallow) pero con el fin de que la aplicación funcionase en la mayoría de los equipos se realiza con compatibilidad con los sistemas operativos anteriores a él. Pero hay que tener en cuenta que con la evolución de los dispositivos móviles van mejorando sus especificaciones técnica y los datos que se obtiene de ellos, para lo cual se recomienda el uso de un Smartphone lo más actualizado posible según sea el caso.

Page 54: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

54

10 CONCLUSIONES Se desarrolló una aplicación para dispositivos móviles en la plataforma Android con base en las necesidades de control de personal de J Pretelt Ingeniería Hidráulica EU, haciendo uso de los API de Google Maps y GPS del móvil, almacenando la información en un servidor de base de datos MySQL con Apache Tomcat 7. El uso del GPS del equipo móvil junto con el API de Google Maps son una herramienta poderosa para poder determinar la ubicación de un individuo, gracias a estas herramientas fue posible desarrollar esta aplicación permitiendo validar la ubicación de los operarios en su lugar de labores de una manera precisa. Se implementa un chat en la aplicación que da una ventaja estratégica para la empresa J Pretelt Ingeniería Hidráulica EU, pues permite a los operarios y al administrador comunicar de manera oportuna problemas o situaciones que se presenten en cada una de las obras en las que opera la empresa. Se desarrolla una interfaz web de administrador que posee las funcionalidades de creación de operario, empresa, Agendamiento de obra, verificación de la información ingresada, comunicación con los empleados a través de chat y la interfaz de operario que permite verificar la agenda que tiene programada, la validación de registro de entrada y salida de los operarios y chat. Toda la información que es registrada en los formularios de la interfaz de administración queda almacenada en un servidor de base de datos MYSQL con Apache Tomcat 7, junto con la información de registro de entrada y salida de obra generada en la interfaz de operario. La implementación de la validación de la dirección MAC del dispositivo móvil asegura que otro operario no registre las entradas y salidas de obra desde su propio terminal ayudando a evitar el fraude durante el proceso de registro.

Page 55: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

55

11 BIBLIOGRAFÍA

[1] Tomado del sitio web SESAME "Sistema de gestión de horarios laborales", www.sesametime.com

[2] C. Grange García, " desarrollo de una aplicación Android para el control automático de la asistencia a clase" p. 76. 2014.

[3] Tomado del sitio web SEAT " Sistema de Control de Asistencia y tiempo para Personal", http://seguridadseat.com/Control-de-asistencia-y-tiempo-para-personal.html

[4] Tomado del sitio web Universidad Carlos III de Madrid. "Programación en dispositivos móviles portables". http://sites.google.com/site/swcuc3m/home/android/portada.

[5] Tomado del sitio web Open Handset Alliance. http://www.openhandsetalliance.com/android_overview.html

[6] Tomado del sitio web "Desarrollo de Aplicaciones Móviles", http://comunidad.udistrital.edu.co/sintel/files/2014/05/Guia-android.pdf

[7] C. A. Rafael, G. M. Lilibeth, L. L. Iván, " Investigación sobre ANDROID”, Universidad Tecnológica De La Mixteca, May 2008. Disponible en: http://www.utm.mx/~caff/poo/AndroidIntro.pdf

[8] J. D. Benedik, "Descubriendo la anatomía de una aplicación sobre Android”, Nexo, Vol. 25, No. 02, pp. 47-53/Diciembre 2012

[9] P. O. Jaume, " Introducción a Android y sus aplicaciones", Universidad de Sevilla, 2009

[10] J. R. Tamara, R. B. María, "Sistema de posicionamiento global (GPS)", Disponible en: http://webs.um.es/bussons/GPSresumen_TamaraElena.pdf

[11] "El Sistema de Posicionamiento Global". <http://www.gps.gov/systems/gps/spanish.php> [citado el 10 de Febrero de 2016]

[12] " Descripción del Sistema GPS" <http://www.alsitel.com/tecnico/gps/sistema.htm> [consultado el 16 de Marzo de 2016]

[13] C. S. Luis, G. G. Marc, "Bases de datos en MySQL", UOC, www.UOC.com, Disponible en: http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-de-datos/P06_M2109_02151.pdf

[14] " MySQL 5.0 Reference Manual", <http://downloads.mysql.com/docs/refman-5.0-es.pdf> [consultado 8 de Febrero de 2016]

[15] T. Converse, J. Park, C. Morgan, PHP5 and MySQL® Bible, Indianapolis: Wiley Publishing, Inc., 2004, p.3.

[16] J. Pavón, " PHP y MySQL", Universidad Complutense Madrid, Disponible en: https://www.fdi.ucm.es/profesor/jpavon/web/35-PHP-MySQL.pdf

Page 56: APP DE CONTROL DE PERSONAL V11repository.udistrital.edu.co/bitstream/11349/7341/1/Cabe...de control de personal de J Pretelt Ingeniería Hidráulica EU, a partir de la programación

56

[17] Ángel J. Vico, “Arquitectura de Android”, La columna 80, disponible en: https: //columna80.wordpress.com/2011/02/17/arquitectura-de-android/, 17 de Febrero de 2011.

[18] Rubén Montero Vásquez, “Localización y seguimiento por GPS con Android”, Universidad Rey Juan Carlos, España, 2010.

[19] Google Maps. <https://www.google.es/maps/place/Bogotá,+Colombia/@4.6880626,-74.0791528,13z> {Citado el 13 de Septiembre de 2016].

[20] Luis Alberto Casillas Santillán, Marc Gibert Ginestà, Óscar Pérez Mora. “Bases de datos en MySQL”. P06/M2109/02151. <http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-de-datos/P06_M2109_02151.pdf>

[21] Manual de Zpanel en español <http://www.blogin.com.es/zpanel-tutorial> [consultado el 14 de Septiembre de 2016]

[22] Zpanlecp.<http://www.zpanelcp.com>[citado el 14 de septiembre de 2016] [23] Developer Labs. Configuración de Apache Tomcat

<http://palmor.softmedia.com.mx/tutoriales/configuracion-de-apache-tomcat/> [citado el 15 de Septiembre de 2016]

[24] JMeter. < https://senaintro.blackboard.com/bbcswebdav/pid-52987640-dt-content-rid-20214699_4/institution/217213_tvirtual/OAAPs/OAAP4/aa6/lab1aa6/Manuales/manual-jmeter.pdf>