UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN CENTRO DE INFORMACIÓN DE SISTEMAS DE INFORMACIÓN
Desarrollo de una solución de Teletrabajo para la
captación, validación y calidad de datos asociados al
Inventario de productos, apoyada en la
Computación Móvil.
Trabajo Especial de Grado presentado ante la ilustre Universidad Central de Venezuela
por el bachiller:
Jesús Gonzalo Sánchez Esaá – C.I: 18.617.174
Para optar por el título de Licenciado en Computación
Tutor Académico: Prof. Franky Uzcátegui
Caracas, Octubre 2011
2
ACTA
Quienes suscriben, miembros del jurado designado por el Consejo de la Escuela
de Computación de la Facultad de Ciencias de la Universidad Central de Venezuela,
para examinar el Trabajo Especial de Grado titulado: Desarrollo de una solución de
Teletrabajo para la captación, validación y calidad de datos asociados al
Inventario de productos, apoyada en la Computación Móvil, presentado por el
bachiller Jesús G. Sánchez E., C.I: 18.617.174, a los fines de optar por el título de
Licenciado en Computación, dejan constancia de lo siguiente:
Dicho trabajo, leído por cada uno de los miembros del jurado, se fijó el día 24 de
octubre de 2011, a la 1:30 pm, para que su autor lo defendiera en forma pública en la
Escuela de Computación, mediante una presentación oral de su contenido, luego de lo
cual se respondieron las preguntas formuladas. Finalizada la defensa pública del
Trabajo Especial de Grado, el jurado decidió aprobarlo con la nota de __________
puntos.
En fe de lo cual se levanta la presente Acta, en Caracas a los veinticuatro (24) días
del mes de octubre del año dos mil once (2011), dejando constancia de que actuó
como coordinador del jurado el Profesor Franky Uzcátegui.
________________________
Prof. Franky Uzcátegui
(Tutor)
_____________________ ____________________
Prof. Antonio Silva Prof. Carlos Acosta
(Jurado) (Jurado)
3
AGRADECIMIENTOS
En primer lugar, quiero agradecer a mis padres, Lisbeth Esaá y Jesús Sánchez,
quienes han sido mi base y mi soporte a lo largo de todo este tiempo, quienes
me han enseñado el valor de la perseverancia y me han dado fortaleza, es
gracias a ellos que he llegado a cumplir todas mis metas, incluyendo esta.
Agradezco también a mi tutor, Franky Uzcátegui, quien más allá de haber sido
mi guía en este trabajo, me ha nutrido de conocimientos en muchos aspectos
de mi vida, sin él este trabajo no sería posible.
Agradezco a la Universidad Central de Venezuela, y a todos los profesores que
se vieron involucrados en mi crecimiento académico, son ellos quienes han
llenado mi vida de conocimientos invalorables.
Agradezco a mis abuelos, Edy Ruíz y Luis Felipe Esaá, ellos me han
acompañado en todo momento con todo su cariño y amor, y me han enseñado
que todo en esta vida es posible con trabajo y esfuerzo.
Agradezco a mi tío, Luis Esaá, quien ha sido mi modelo a seguir y ha estado a
mi lado desde el primer día en que decidí estudiar esta hermosa carrera, ahora
seremos colegas y espero seguir sus pasos profesionales.
Agradezco a mi novia, Beatriz Pompa, quien además de ser mi novia, ha sido
mi amiga y compañera durante todos estos años, me ha apoyado, ayudado,
soportado y valorado en todo momento, es imposible describir lo agradecido
que estoy por tenerla a mi lado.
Agradezco a mis hermanos, Guillermo Sánchez, Emely Sánchez y Carlos
Sánchez, quienes me han enseñado el valor de la unidad y la hermandad, y
cada cual a su estilo único, me ha hecho creer en mí así como yo creo en ellos,
son lo máximo.
4
Agradezco a mi prima, Ariana Esaá, y a mi ahijada Luisa Fernanda Esaá, ellas
llenan de alegría mi vida, y me motivan a crear un futuro mejor, donde ellas
sean felices también y consigan todo lo que se proponen.
Agradezco a mis amigos, Pablo Mirabella, Julio Yepez, Julio Montaño, Daniel
Mariñan y Loy Ramírez, todos me han acompañado, apoyado y tolerado
durante toda mi carrera, compartiendo momentos académicos, momentos
difíciles, momentos de diversión, en fin, todos los momentos, son gigantes.
Agradezco al Profesor Antonio Silva, por toda su colaboración y apoyo en la
culminación de este Trabajo Especial de Grado.
Agradezco al resto de mi familia y amigos, a quienes no he mencionado, a mi
colegio el CEAPUCV y sus profesores, y a todos los que han formado parte de
mi vida y por quienes he llegado hasta acá.
A todos. Muchísimas gracias.
5
RESUMEN
El presente Trabajo Especial de Grado, tiene como finalidad el desarrollo de una
solución de Teletrabajo que permita la recolección de datos del Inventario de productos
de una organización o empresa, con el apoyo de la Computación Móvil. Este sistema
de Teletrabajo está constituido por tres módulos: un módulo de administración y diseño
en tecnología Web, el cual permite construir los formatos para la carga de datos y
administrar la seguridad del sistema, un módulo de carga que permite la captación de
datos de inventario a través de dispositivos móviles y un módulo de calidad de datos,
para detectar posibles desviaciones en los datos captados. Para el desarrollo de esta
solución, se aplicó el enfoque de desarrollo “Desarrollo Rápido de Aplicaciones”,
ajustándolo a un modelo académico y no comercial. Las tecnologías principales
utilizadas son: PHP (desarrollo Web), Java (desarrollo móvil) y MySQL (base de datos).
PALABRAS CLAVE: Inventario, Teletrabajo, Computación Móvil, Calidad de Datos.
6
ÍNDICE
ÍNDICE DE FIGURAS ......................................................................................... 9
ÍNDICE DE TABLAS ......................................................................................... 11 INTRODUCCIÓN .............................................................................................. 12
CAPÍTULO 1 PROBLEMA DE INVESTIGACIÓN ............................................. 14 1.1 Título .................................................................................................................. 14 1.2 Situación actual .................................................................................................. 14 1.3 Planteamiento del problema ............................................................................... 15 1.4 Alcance .............................................................................................................. 16 1.5 Solución ............................................................................................................. 16 1.6 Justificación ....................................................................................................... 17 1.7 Objetivo general ................................................................................................. 18 1.8 Objetivos específicos ......................................................................................... 18
CAPÍTULO 2 MARCO CONCEPTUAL ............................................................. 19 2.1 Sistema de información ...................................................................................... 19
2.1.1 Definición de sistemas de información ....................................................... 19 2.1.2 Tipos de sistemas de información (punto de vista organizacional) ............. 20
2.1.2.1 Sistemas de información operacionales o transaccionales .................. 21 2.1.2.2 Sistemas de información para la toma de decisiones .......................... 21 2.1.2.3 Sistemas de información estratégicos ................................................. 21
2.2 Base de datos .................................................................................................... 22 2.2.1 Definición de base de datos ....................................................................... 22 2.2.2 El modelo relacional ................................................................................... 23 2.2.3 Sistemas Manejadores de bases de datos ................................................. 24
2.2.3.1 MySQL ................................................................................................ 25 2.2.4 Bases de datos y tecnologías móviles ........................................................ 25
2.3 Desarrollo de aplicaciones Web ......................................................................... 26 2.3.1 Herramientas para el desarrollo (lado del cliente)....................................... 27
2.3.1.1 HTML .................................................................................................. 27 2.3.1.2 CSS ..................................................................................................... 28 2.3.1.3 Javascript ............................................................................................ 28
2.3.2 Herramienta para el desarrollo (lado del servidor) ...................................... 29 2.3.2.1 PHP ..................................................................................................... 29
2.3.3 Servidores Web .......................................................................................... 30 2.3.3.1 Apache ................................................................................................ 30
2.4 Computación Móvil............................................................................................. 31 2.4.1 Definición de Computación Móvil ............................................................... 31 2.4.2 “Dimensiones agregadas” de la Computación Móvil ................................... 32
2.4.2.1 Cocimiento de la ubicación .................................................................. 32 2.4.2.2 Calidad de servicio .............................................................................. 33 2.4.2.3 Limitaciones de procesamiento y almacenamiento .............................. 33 2.4.2.4 Limitaciones de provisión de energía................................................... 34 2.4.2.5 La variedad de interfaces .................................................................... 35 2.4.2.6 Las múltiples plataformas .................................................................... 35
2.4.3 Las condiciones del usuario móvil .............................................................. 36 2.4.3.1 Cambio de localización ........................................................................ 36 2.4.3.2 Falta de concentración ........................................................................ 37 2.4.3.3 Respuesta inmediata ........................................................................... 37
7
2.4.3.4 Cambio abrupto durante la actividad móvil .......................................... 37 2.4.3.5 Donde sea y cuando sea ..................................................................... 38
2.4.4 Arquitectura de las aplicaciones móviles .................................................... 38 2.4.5 Computación Móvil en línea y fuera de línea .............................................. 40 2.4.6 Blackberry OS ............................................................................................ 41 2.4.7 Lenguajes de desarrollo de aplicaciones móviles ....................................... 42
2.4.7.1 Java .................................................................................................... 42 2.5 Inteligencia de negocios ..................................................................................... 43
2.5.1 Definición ................................................................................................... 43 2.5.2 Arquitectura de la inteligencia de negocios ................................................ 44
2.5.2.1 Fuentes de datos ................................................................................ 45 2.5.2.2 Extracción, Transformación y Carga ................................................... 45 2.5.2.3 Almacén de datos (modelo dimensional) ............................................ 46 2.5.2.4 Capa de presentación ........................................................................ 49
2.5.3 Calidad de datos ........................................................................................ 50 2.5.4 Inteligencia de negocios estática ................................................................ 52
2.6 Teletrabajo ......................................................................................................... 53 2.6.1 Definición ................................................................................................... 53 2.6.2 Teletrabajo y la tecnología ......................................................................... 53
2.7 Inventario ........................................................................................................... 55 2.7.1 Definición ................................................................................................... 55 2.7.2 Tipos de Inventario ..................................................................................... 55
2.7.2.1 Inventarios de materia prima ............................................................... 55 2.7.2.2 Inventarios de producción en proceso ................................................. 56 2.7.2.3 Inventarios de productos finales .......................................................... 56 2.7.2.4 Inventarios de tránsito ......................................................................... 56 2.7.2.5 Inventarios de amortiguación ............................................................... 57 2.7.2.6 Inventarios de mantenimiento, reparación y suplementos ................... 57
2.7.3 Manejo de Inventario .................................................................................. 57 2.7.3.1 Conceptos de costos ........................................................................... 57 2.7.3.2 Pronóstico ........................................................................................... 58 2.7.3.3 Manejo de la cadena de suministro ..................................................... 58 2.7.3.4 Manejo de adquisición de materiales ................................................... 59 2.7.3.5 Manejo de manufacturación ................................................................ 60 2.7.3.6 Manejo de distribución ......................................................................... 60
CAPÍTULO 3 MARCO APLICATIVO ................................................................. 61 3.1 Modelo de desarrollo de software ...................................................................... 61
3.1.1 Análisis y diseño general ............................................................................ 62 3.1.1.1 Requerimientos funcionales (casos de uso) ........................................ 62 3.1.1.2 Requerimientos no funcionales............................................................ 79 3.1.1.3 Diseño General de la solución ............................................................. 79 3.1.1.4 Diagrama conceptual de base de datos ............................................... 80
3.1.2 Construcción de la solución ........................................................................ 81 3.1.3 Pruebas .................................................................................................... 112
3.1.3.1 Integración incremental ..................................................................... 113
CONCLUSIONES ........................................................................................... 123 RECOMENDACIONES ................................................................................... 124
Apéndice A...................................................................................................... 125 registro.html ........................................................................................................... 125 registro.php ............................................................................................................ 126 iniciodesesion.html ................................................................................................. 126
8
iniciodesesion.html (continuación) ......................................................................... 127 iniciodesesion.php ................................................................................................. 127
Apéndice B...................................................................................................... 128 principal.html .......................................................................................................... 128
Apéndice C ..................................................................................................... 129 administrar.html (usuarios) ..................................................................................... 129 aceptar.php (usuarios) ........................................................................................... 129 eliminar.php (usuarios)........................................................................................... 130 administrar.html (roles) .......................................................................................... 130 administrar.php (roles) ........................................................................................... 131 administrar.js ......................................................................................................... 131
Apéndice D ..................................................................................................... 132 crearformularioinfgen.html ..................................................................................... 132 crearformularioinfgen.php ...................................................................................... 132 crearformulariocategoriasymediciones.html ........................................................... 133 crearformulariocategoriasymediciones.js ............................................................... 133 crearformulariocategoriasymediciones.php ............................................................ 134 mostrarformulario.html ........................................................................................... 134
Apéndice E...................................................................................................... 135 administar.html (formularios) .................................................................................. 135 asignarpermiso.php ............................................................................................... 136 inhabilitarformulario.php ......................................................................................... 136 habilitar_eliminar_formulario.html .......................................................................... 137 habilitarformulario.php............................................................................................ 137 eliminarformulario.php............................................................................................ 137 modificar_eliminar_permiso.html ............................................................................ 138 modificarpermiso.php ............................................................................................. 139 eliminarpermiso.php ............................................................................................... 139
Apéndice F ...................................................................................................... 140 loginscreen.java ..................................................................................................... 140 httpconexion.java ................................................................................................... 140 formulario.java ....................................................................................................... 141
Apéndice G ..................................................................................................... 142 calidadprincipal.html .............................................................................................. 142 calidadgraficos.js ................................................................................................... 142 calidadreporte.php ................................................................................................. 143 calidadcorregir.php ................................................................................................ 143
REFERENCIAS BIBLIOGRÁFICAS Y DIGITALES ......................................... 144
9
ÍNDICE DE FIGURAS
Figura Nro. 1- Solución planteada. Fuente: El Autor .................................................... 17 Figura Nro. 2 – Tipos de sistemas de información. Fuente: Chávez, s.f. ....................... 20
Figura Nro. 3 – Modelo Relacional. Fuente: El Autor. ................................................. 24 Figura Nro. 4 - Arquitectura de aplicaciones móviles. Fuente: Designing Mobile
Applications, s.f ........................................................................................................... 39 Figura Nro. 5 - Arquitectura de la inteligencia de negocios. Fuente: Business
Intelligence, 2010 ........................................................................................................ 44 Figura Nro. 6 - Esquema estrella. Fuente: Dimensional model schemas- star, snow-flake
and constellation, s.f. ................................................................................................... 47 Figura Nro. 7 - Esquema copo de nieve. Fuente: Dimensional model schemas- star,
snow-flake and constellation, s.f. ................................................................................. 48 Figura Nro. 8 - Esquema constelación de hechos. Fuente: Fuente: Dimensional model
schemas- star, snow-flake and constellation, s.f. .......................................................... 49 Figura Nro. 9 - Herramientas de la capa de presentación. Fuente: El Autor. ................. 50
Figura Nro. 10 – Teletrabajo. Fuente: El Autor. ........................................................... 54 Figura Nro. 11 - Cadena de Suministro (elementos involucrados). Fuente: El Autor. .... 59
Figura Nro. 12 - Cadena de Suministro (actividades involucradas). Fuente: Sypply chain,
s.f ................................................................................................................................ 59
Figura Nro. 13 - Casos de uso Nivel 0. Fuente: El Autor. ............................................. 62 Figura Nro. 14 - Casos de Uso Nivel 1. Fuente: El Autor. ............................................ 63
Figura Nro. 15 - Caso de uso Administrar Usuarios. Fuente: El Autor. ......................... 64 Figura Nro. 16 - Caso de uso Diseñar Formulario. Fuente: El Autor. ............................ 67
Figura Nro. 17 - Caso de uso Administrar Formulario. Fuente: El Autor. ..................... 69 Figura Nro. 18 - Verificar Calidad de datos. Fuente: El Autor. ..................................... 77
Figura Nro. 19 - Diseño general de la solución. Fuente: El Autor. ................................ 80 Figura Nro. 20 - Modelo de base de datos. Fuente: El Autor......................................... 81
Figura Nro. 21 – Phpmyadmin. Fuente: El Autor. ........................................................ 83 Figura Nro. 22 - Registro de usuario. Fuente: El Autor. ................................................ 84 Figura Nro. 23 - Inicio de sesión. Fuente: El Autor. ..................................................... 85
Figura Nro. 24 - Módulo principal. Fuente: El Autor. ................................................... 87 Figura Nro. 25 - Módulo principal de diseñador. Fuente: El Autor. .............................. 87
Figura Nro. 26 - Administración de usuarios (pantalla). Fuente: El Autor. .................... 89 Figura Nro. 27 - Aceptar/rechazar usuario. Fuente: El Autor. ....................................... 90
Figura Nro. 28 - Administración de roles. Fuente: El Autor. ......................................... 91 Figura Nro. 29 - Información General del formulario. Fuente: El Autor. ...................... 93
Figura Nro. 30 - Diseño de formulario. Fuente: El Autor. ............................................. 95 Figura Nro. 31 - Visualización de formulario. Fuente: El Autor. .................................. 96
Figura Nro. 32 - Administración de formularios. Fuente: El Autor. .............................. 98 Figura Nro. 33 - Habilitar/eliminar formulario. Fuente: El Autor................................ 100
Figura Nro. 34 - Modificación de permisos. Fuente: El Autor. ................................... 101 Figura Nro. 35 - Inicio de sesión (aplicación móvil). Fuente: El Autor. ...................... 102
Figura Nro. 36 - Formularios asociados (aplicación móvil). Fuente: El Autor. ............ 103 Figura Nro. 37 - Selección de almacén (aplicación móvil). Fuente: El Autor. ............. 104
10
Figura Nro. 38 - Carga de datos (aplicación móvil). Fuente: El Autor. ....................... 105
Figura Nro. 39 - Módulo de calidad de datos. Fuente: El Autor. ................................. 107 Figura Nro. 40 - Selección de parámetros (gráficos). Fuente: El Autor. ...................... 108
Figura Nro. 41 - Gráficos 1 (calidad de datos). Fuente: El Autor. ............................... 109 Figura Nro. 42 - Gráficos 2 (calidad de datos). Fuente: El Autor. ............................... 110
Figura Nro. 43 - Reporte (calidad de datos). Fuente: El Autor. ................................... 111 Figura Nro. 44 - Corrección de datos. Fuente: El Autor. ............................................. 112
Figura Nro. 45 - Prueba módulo de registro. Fuente: El Autor. ................................... 113 Figura Nro. 46 - Prueba módulo de registro (base de datos). Fuente: El Autor. ........... 114
Figura Nro. 47 - Prueba aprobación de usuarios. Fuente: El Autor. ............................ 114 Figura Nro. 48 - Pruebas administración de roles. Fuente: El Autor. .......................... 115
Figura Nro. 49 - Prueba diseño de formulario (información general). Fuente: El Autor.
.................................................................................................................................. 116
Figura Nro. 50 - Prueba diseño de formulario (categorías y mediciones). Fuente: El
Autor. ........................................................................................................................ 117
Figura Nro. 51 - Prueba diseño de formulario (mostrar formulario). Fuente: El Autor. 117 Figura Nro. 52 - Prueba administración de formularios. Fuente: El Autor. .................. 118
Figura Nro. 53 - Prueba administración de formularios (ver permisos). Fuente: El Autor.
.................................................................................................................................. 118
Figura Nro. 54 - Prueba aplicación móvil (pantalla inicial). Fuente: El Autor. ............ 119 Figura Nro. 55 - Prueba apliación móvil (llenado de resultados). Fuente: El Autor. .... 120
Figura Nro. 56 - Prueba calidad de datos (gráficos). Fuente: El Autor. ....................... 121 Figura Nro. 57 - Prueba calidad de datos (reporte). Fuente: El Autor. ......................... 122
Figura Nro. 58 - Prueba calidad de datos (corrección de datos). Fuente: El Autor. ...... 122
11
ÍNDICE DE TABLAS
Tabla 1 - Caso de uso Administrar Usuarios (1) ........................................................... 64 Tabla 2 - Caso de uso Aceptar Usuarios (1.1) ............................................................... 65
Tabla 3 - Caso de uso Eliminar Usuarios (1.2) ............................................................. 65 Tabla 4 - Caso de uso Asignar roles a Usuarios (1.3).................................................... 66
Tabla 5 - Caso de uso Diseñar Formulario (2) .............................................................. 67 Tabla 6 - Caso de uso Crear Formulario (2.1) ............................................................... 68
Tabla 7 - Caso de uso Ver Formulario (2.2) ................................................................. 68 Tabla 8 - Caso de uso Administrar Formulario (3)........................................................ 70
Tabla 9 - Caso de uso Asignar período a Formulario (3.1) ............................................ 70 Tabla 10 - Caso de uso Asignar usuario a Formulario (3.2) .......................................... 71
Tabla 11 – Caso de uso Inhabilitar Formulario (3.3) ..................................................... 71 Tabla 12 - Caso de uso Habilitar Formulario (3.4) ........................................................ 72
Tabla 13 - Caso de uso Eliminar Formulario (3.5) ........................................................ 72 Tabla 14 - Caso de uso Modificar Permiso (3.7) ........................................................... 73
Tabla 15 - Caso de uso Eliminar permiso (3.8) ............................................................. 73 Tabla 16 - Caso de uso Recibir Datos (4) ..................................................................... 74
Tabla 17 - Caso de uso Cargar Datos (5) ...................................................................... 75 Tabla 18 - Caso de uso Enviar datos (6) ....................................................................... 76
Tabla 19 - Caso de uso Verificar Calidad de datos (7) .................................................. 77 Tabla 20 - Observar gráficos y reportes (7.1) ............................................................... 78
Tabla 21 - Corregir Datos (7.2) .................................................................................... 78
12
INTRODUCCIÓN
El manejo de Inventario es un proceso crítico en cualquier organización o empresa que
se dedique a la fabricación, distribución o venta de productos. La importancia de este
proceso, nace de la necesidad de planificar económicamente la adquisición y
almacenamiento de la materia prima, así como la necesidad de ubicación y espacio
físico donde se ubican los productos.
La tecnología de la información puede beneficiar al control de inventarios,
automatizando el proceso de captación de datos para el control, y además permitiendo
la colección de estos datos de almacenes externos, es decir, de almacenes que no se
encuentren en el lugar central de trabajo, o incluso, si el repositorio de datos o las
oficinas centrales se encuentran fuera del sitio de venta. El Teletrabajo esquematiza y
normaliza los criterios de administración y uso de los recursos tecnológicos que
intervienen en una solución de este tipo.
En principio en el Capítulo 1 se aborda el problema planteado en la investigación,
haciendo un recorrido por la situación actual del proceso de control de Inventario,
seguido del planteamiento del problema asociado a esta situación actual. También se
expone el alcance de la solución planteada, la justificación de la solución y un esquema
general de esta. Además, se detallan el objetivo general y los objetivos específicos
planteados en el Trabajo Especial de Grado.
Seguidamente en el Capítulo 2 se presenta el marco conceptual, en el cual se
muestran las bases teóricas del Trabajo Especial de Grado. Comenzando por los
sistemas de información, el cual es la definición de la solución planteada y las bases de
datos que apoyan a estos sistemas de información. Luego, se estudia el desarrollo de
aplicaciones Web, divididas en herramientas del lado del cliente, herramientas del lado
del servidor y servidores Web.
En el marco conceptual, también se abordan las bases de la Computación móvil, así
como definiciones básicas de inteligencia de negocios, y como se asocia esta a la
13
calidad de datos. Por último se presentan los fundamentos del Teletrabajo y el proceso
de Inventario.
El Capítulo 3 muestra cómo se construyó la solución, explica el enfoque de desarrollo
aplicado, el cual se divide en tres fases: análisis, construcción y pruebas. En cada una
de estas fases es descrita detalladamente.
Finalmente, se muestran las conclusiones del Trabajo Especial de Grado.
14
CAPÍTULO 1 PROBLEMA DE INVESTIGACIÓN
Este capítulo tiene como objetivo presentar el contexto del problema que involucra la
solución planteada, la cual incluye conocer los procesos de carga de datos asociados
al Inventario de productos. Se presenta también el alcance y la justificación de la
solución planteada, demostrando cómo el Teletrabajo a través de la tecnología móvil
puede ayudar a facilitar y agilizar los procesos de carga de datos, apoyado además
con un proceso de corrección de errores como es la calidad de datos. Otra de las
metas de este capítulo, es mostrar el objetivo general y los objetivos específicos que se
plantean en la solución. Al final se expondrá un gráfico en la que se muestran los
distintos elementos que componen esta.
1.1 Título
Desarrollo de una solución de Teletrabajo para la captación, validación y calidad de
datos asociados al Inventario de productos, apoyada en la Computación Móvil.
1.2 Situación actual
El proceso de Inventario, es el almacenamiento y ordenación de los bienes que
pertenecen a una empresa y puede involucrar un volumen de datos tal, que requiera de
procedimientos exhaustivos de control de los datos, en las distintas fases del proceso.
Cada empresa define estos procedimientos de control de los datos, según incorpore en
las distintas fases del proceso de Inventario, la tecnología adecuada para agilizarla.
La empresa Tian Consultores C.A en su estudio (2011) donde se clasifican las
empresas de acuerdo con el grado de automatización de su proceso de Inventario
desde el punto de vista de movilidad, es decir, desde la posibilidad que tienen o no
estas empresas de realizar el control de Inventario automáticamente desde diferentes
sitios.
15
El primer tipo de empresa hace su carga de datos de la siguiente manera: primero
envía a los empleados pertinentes a los almacenes con un formulario en papel, para
que estos se completen manualmente, luego, estas planillas son entregadas a un área
de trascripción para alimentar una base de datos (relacional). Los datos
fundamentales que se capturan y transcriben son: la cantidad presente del producto al
momento de la toma de inventario y su fecha de caducidad.
El segundo tipo de empresa tiene un proceso parecido de carga, también envía a un
equipo de empleados para la carga manual de datos, y luego también otro equipo se
encarga de transcribir estos datos, la diferencia de esta empresa con la anterior es que
esta no utiliza una base de datos con un modelo de almacenamiento reconocido, sino
que almacena los datos en archivos planos.
El tercer tipo de empresa son casos excepcionales que han incorporado el Teletrabajo
en su proceso de Inventario, de manera de complementar las reglas y necesidades de
la empresa, con un alto contenido tecnológico que permite movilidad en este proceso.
1.3 Planteamiento del problema
Los dos primeros grupos de empresas descritos en el punto anterior, tiene en común
que sus procesos de Inventario son lentos, ya que no cuentan con la automatización de
todo lo que el proceso involucra.
El hecho de que la captura se realice manualmente y luego se deba realizar un
proceso de trascripción de datos implica que ambos procesos están sometidos al error
humano, lo cual entonces, además de hacer lento el proceso de Inventario involucra
problemas con la calidad de los datos que se obtienen de este.
En el proceso de Inventario se maneja una cantidad de datos considerable, por lo que
no es fácil detectar los errores que ocurran durante su ejecución.
16
1.4 Alcance
La solución de Teletrabajo debe permitir que en el proceso de Inventario se unifiquen
las tareas de captación y trascripción de datos, a través de una aplicación Web que
permita desarrollar los formatos en los cuales serán capturados los datos y se
incorporarán las reglas de validación de estos datos captados. Incluye además el uso
de dispositivos móviles, que permitan enviar los datos capturados a una base de datos
central.
Además, a estos datos se les aplicará una serie de análisis que permitan detectar
desviaciones, que afecten la calidad de los datos.
1.5 Solución
Se propone el desarrollo de un sistema que contenga los siguientes módulos:
Centro de diseño de formularios: Es el módulo encargado de la creación y
mantenimiento de los distintos formularios que son utilizados para la carga de
datos.
Repositorio de datos: Es una base de datos intermedia, que mantiene algunos
datos de la base de datos transaccional y los datos asociados a la carga de
datos.
Aplicación Móvil: Es la aplicación que funciona en los dispositivos móviles, en
los cuales se realiza el proceso de carga de datos.
Calidad de datos: En este módulo se muestran los gráficos que permiten
mantener la calidad de los datos, también es posible modificar estos datos si es
necesario.
17
En la Figura No 1 se muestra un esquema general de la solución planteada.
Figura Nro. 1- Solución planteada. Fuente: El Autor
1.6 Justificación
Como se observa en el estudio realizado por Tian Consultores C.A, el manejo de datos
asociado al Inventario de productos que algunas empresas realizan, arrastra muchos
errores que además son difíciles de detectar por la gran cantidad de datos. Esta tarea
de garantizar la calidad de los datos involucra una inversión importante de tiempo.
Por esto se plantea desarrollar una aplicación móvil, que sea capaz de recibir y enviar
datos a través de un dispositivo móvil, sustituyendo así las fases de captura y
transcripción de datos de manera manual. Esta aplicación debe ser capaz de
conectarse con una base de datos central, que contenga y mantenga todos los datos
asociados a los productos involucrados en el Inventario.
Como siempre es posible que surjan desviaciones en el comportamiento de los datos,
se plantea además la creación de gráficos con una herramienta de Inteligencia de
Negocios, que tenga como fuente de datos, los provenientes del dispositivo móvil.
18
1.7 Objetivo general
Desarrollar una solución de Teletrabajo que permita captar datos asociados al
Inventario de productos a través de un dispositivo móvil, y además, analizar la de
calidad de los datos captados.
1.8 Objetivos específicos
Definir los requerimientos del sistema de Teletrabajo para captación de datos
del Inventario planteado.
Diseñar el modelo conceptual de la base de datos.
Diseñar y desarrollar la base de datos de control de la solución en el sistema
manejador de bases de datos MySQL.
Desarrollar la aplicación central de control (aplicación Web) de la solución
asociada al proceso de Inventario usando HTML, CSS, Javascript y PHP.
Desarrollar la aplicación móvil de captura de datos del Inventario en sitio y que
sea capaz de cargar datos sin necesitar Internet en el lenguaje de
programación Java, para la plataforma Blackberry OS.
Diseñar los gráficos para medir la calidad de los datos captados de la aplicación
móvil utilizando Javascript.
Realizar pruebas a los distintos módulos del Software que se planteen en los
requerimientos.
19
CAPÍTULO 2 MARCO CONCEPTUAL
Una vez completado el capítulo anterior que describe el problema y la solución
propuesta, en este capítulo se estudian conceptos elementales, como sistemas de
información, bases de datos, inteligencia de negocios, desarrollo Web y un punto
crítico, la Computación Móvil.
También, se describen las herramientas a utilizar para llevar a cabo el desarrollo
propuesto en el Trabajo Especial de Grado. Herramientas Web y móviles, tales como
PHP, HTML, Java, Blackberry OS y algunas más.
Por último, se muestran los conceptos esenciales de Teletrabajo e Inventario, los
cuales son la base del objetivo general del presente trabajo.
2.1 Sistema de información
2.1.1 Definición de sistemas de información
Para entender que es un sistema de información, primero podemos separar sus
puntos. Se define sistema, “Conjunto de cosas que relacionadas entre sí
ordenadamente contribuyen a determinado objeto.” (RAE, 2010), es decir, ajustando
el concepto de sistema a la computación, un sistema son un conjunto de
componentes o elementos que se relacionan entre sí para llegar a un fin común.
Davenport y Prusak (2000) definen información como: “un conjunto de datos que
hacen diferencia”. Existe una diferencia importante entre datos e información,
principalmente dada porque la información depende de los datos ya que la
información es la relevancia de los datos. La información también es capaz de
generar o reforzar el conocimiento.
De estos conceptos anteriores, entonces, se pueden definir los sistemas de
información como, un conjunto de elementos o componentes que se relacionan entre
20
sí cuyo fin es la adquisición u obtención de información a través de un conjunto de
datos.
2.1.2 Tipos de sistemas de información (punto de vista organizacional)
Retallick (2006) define que existen tres tipos de sistemas de información, sistemas
que están diferenciados a través de distintas características tales como su función y
a que tipo de roles empresariales van dirigidos o quienes manejan y utilizan el
sistema.
En la Figura No 2 se muestra la pirámide de los tipos de sistemas de información
(Chávez, s.f), donde se observan los sistemas operacionales como la base de los
siguientes sistemas de información.
Figura Nro. 2 – Tipos de sistemas de información. Fuente: Chávez, s.f.
21
2.1.2.1 Sistemas de información operacionales o transaccionales
Estos sistemas de información son los encargados de automatizar las operaciones
y/o transacciones de la organización, con la idea de que estás transacciones queden
almacenadas de modo permanente.
Es el nivel más bajo de la pirámide, no por tener menos importancia, sino porque
significa la base de los niveles siguientes, sin un sistema operacional los otros
niveles pierden su sentido.
Estos sistemas son utilizados regularmente por personas de bajo rango en la
organización. Un ejemplo de estos sistemas podría ser un sistema de registro de
ventas, o un sistema de impresiones de recibo.
2.1.2.2 Sistemas de información para la toma de decisiones
Los sistemas de apoyo para la toma de decisiones son sistemas utilizados
regularmente por usuarios de rango más alto, por ejemplo, gerentes o jefes de
departamentos. Estos sistemas están encargados de proveer información correcta y
precisa para la ayuda en la toma de decisiones, información que es obtenida
transformando los datos que se han recibido de los sistemas transaccionales.
Un ejemplo podría ser un sistema que permita observar la cantidad de productos que
existen en el Inventario de una sede determinada de la organización en un momento
determinado, lo cual permitiría decidir si es recomendable producir o enviar más
productos a esta sede.
2.1.2.3 Sistemas de información estratégicos
Estos sistemas constituyen el nivel más alto de la pirámide, regularmente utilizados
solo por la alta ejecutiva de la organización. Son sistemas orientados a la innovación
y el crecimiento de la organización, además de conseguir ventajas para esta.
22
Regularmente estos sistemas son creados dentro de la propia organización, y es
complicado adaptarlos a otras ya que solo se ajusta a las características de una
organización específica.
Un ejemplo de los sistemas de información de nivel estratégico, son los sistemas
MRP1, los cuales son sistemas orientados a la planificación de la manufacturación
creando estrategias de ahorro de material y poca pérdida en el proceso de
manufacturación.
2.2 Base de datos
Como se observa en su definición, los sistemas de información se encargan de
transformar datos en información. En muchos casos, estos sistemas manejan grandes
volúmenes de datos que son difíciles de manejar y que deben estar almacenados en
algún sitio con una estructura bien definida para que estos sean legibles. Las bases de
datos se ajustan muy bien a estas necesidades.
2.2.1 Definición de base de datos
Para entender cualquier estructura que cuente con almacenamiento, capturas y
búsquedas de datos primero se debe entender el concepto de bases de datos,
además tomando en cuenta que la mayoría de los sistemas de computación cuentan
con una base de datos.
“Una base de datos es una colección de datos interrelacionados que son manejados
como una sola unidad” (Oppel, 2009). Esto quiere decir, que la base de datos es un
sitio físico y lógico donde se almacenan datos, pero estos datos están relacionados
entre si para darle un sentido al almacenamiento que estamos haciendo.
Una base de datos implica estructuras y modelos, además de un software que
soporte estos, esto quiere decir que existen distintas maneras de modelar y de crear
1 Manufacturing resource planning (Planificación de la manufacturación de los recursos)
23
una base de datos y que en estas bases de datos intervienen distintos elementos
como los datos en si, objetos de bases de datos, archivos, entre otros. Pero las
bases de datos dependen de un software, el cual es el que soportará lógicamente
esta estructura, a este software se le conoce como Sistema Manejador de Bases de
Datos.
Es importante resaltar que las bases de datos cuentan con una capa física, que son
los componentes en los cuales se almacenan físicamente los datos y cuentan con
una capa lógica, que es el modelo en el cual se basa para almacenar y relacionar
lógicamente los datos.
2.2.2 El modelo relacional
Es probablemente el modelo más utilizado en la actualidad, Harrington (2002) en su
estudio de las ventajas de este modelo y explica por qué el modelo relacional se
impuso otros modelos por ser un sistema mucho más flexible y generalizado.
El modelo relacional es el más adaptable, porque en él se crearán todas las
relaciones necesarias entre los nodos que representan los datos en la base de datos.
Este modelo a su vez, permite relaciones de uno a uno, uno a muchos y muchos a
muchos, y el elemento a relacionar ya deja de llamarse nodo para llamarse entidad,
por esto es común escuchar que se nombra a los modelos que representan base de
datos relacionales como modelos entidad-relación.
El modelo relacional se apoya en claves e índices para relacionar y poder viajar de
una tabla a otra y conocer sus relaciones, en este caso se utiliza una clave primaria
para reconocer al registro una clave foránea que deberá ser una clave primaria de
otro registro. Si la relación es de muchos a muchos, se creará una estructura llamada
relación, la cual servirá como una especia de puente o conexión entre ambas
entidades. En caso de ser relaciones de uno a muchos la clave primaria del uno
estará contenida en la entidad muchos, y en el caso uno a uno entonces la clave
puede estar en cualquiera de las dos entidades.
24
Se observa en la Figura No 3 un ejemplo de una modelo de base de datos relacional,
que almacena datos relacionados con un sistema de ventas. En este ejemplo se
almacena una orden, a la cual se le relaciona con el cliente que ha realizado la
compra, el empleado que ha facturado y los productos asociados a la adquisición.
Figura Nro. 3 – Modelo Relacional. Fuente: El Autor.
2.2.3 Sistemas Manejadores de bases de datos
Un sistema manejador de bases de datos es un conjunto de programas y que tienen
la capacidad de acceder a datos que están relacionados entre sí. Entre sus funciones
principales se encuentra el acceso, manipulación (inserción, eliminación y
actualización) y manejo de los datos que se encuentran en una base de datos, y que
el usuario final pueda llevar a cabo estás funciones de la manera más natural y
coherente posible. (Sumathi y Esakkirajan, 2007).
25
2.2.3.1 MySQL
MySQL es un sistema manejador de bases de datos ajustado al modelo relacional.
MySQL fue desarrollado inicialmente por la compañía Sun Microsystems, pero hace
poco tiempo esta fue adquirida por Oracle, y junto a esta también fue adquirido
MySQL.
A pesar de ser más sencillo MySQL también es un sistema manejador muy robusto
que además se hace popular justamente por su sencillez. Este sistema manejador es
capaz de correr sobre más de veinte plataformas, dándole el control al desarrollador
sobre su aplicación. (Why MySQL, s.f)
También lo hace muy popular la facilidad de enlace que tiene con la herramienta
PHP, la cual es muy utilizada actualmente en programación Web. MySQL está
desarrollado en su mayoría sobre el estándar ANSI C.
2.2.4 Bases de datos y tecnologías móviles
Las tecnologías móviles, son un estilo de computación que está orientado a
dispositivos móviles de poca capacidad, lo cual quiere decir que un dispositivo móvil
no soporta grandes cantidades de datos.
Como se ve en conceptos anteriores, las bases de datos no son más que
colecciones de datos o conjuntos de datos. El tamaño de una base de datos puede
variar, pero solo una base de datos de pequeño tamaño es soportada en un
dispositivo móvil, ya que una base de datos que pueda ser soportada por un
dispositivo móvil es una base de datos que cuenta con poca presencia de datos. Lo
ideal es centrar solo los datos que se desea que sean accedidos por los dispositivos
en un lugar determinado en un momento determinado, de esta manera se reduce el
rango posible de datos que se encontrarán en el dispositivo móvil.
26
Pero para que estos datos puedan llegar al dispositivo móvil debe comunicarse de
alguna manera con el servidor en el cual se encuentra la base de datos, lo cual
quiere decir que a través de una conexión inalámbrica el dispositivo móvil realiza una
petición la cual debe llegar al servidor y a su vez este devolver los datos requeridos.
De esta manera una base de datos puede interactuar con una aplicación que esté
basada en tecnologías móviles, a lo largo de este trabajo de investigación se
desarrollan distintos puntos que se han mencionado, puntos tales como Computación
Móvil, conexiones inalámbricas y ciertas bases de la tecnología móvil.
Sin embargo, si se desea tener un modelo muy pequeño con pocos datos en los
dispositivos existen tecnologías que son capaces de soportar bases de datos en
dispositivos móviles, estas son llamadas “bases de datos móviles”.
2.3 Desarrollo de aplicaciones Web
Es muy común observar que se desarrollan aplicaciones Web para distintas tareas,
este mundo de aplicaciones Web tiene amplias posibilidades y permite desarrollar
sistemas de información con distintas características que pueden cumplir muchísimas
funciones: informativas, de recreación, de cálculo, de manejo de un negocio,
incluyendo la interacción directa con bases de datos permitiendo el manejo de grandes
cantidades de datos e información.
Para el desarrollo de aplicaciones Web, existen distintas herramientas y lenguajes que
permiten optimizar este desarrollo. Asumiendo una aplicación Web con una
arquitectura cliente-servidor se observa que para desarrollar una aplicación de este tipo
es necesario contar con herramientas para desarrollo del lado del cliente, herramientas
para el desarrollo del lado del servidor, y algún software que permita en entendimiento
entre estos (en este caso servidores Web).
27
2.3.1 Herramientas para el desarrollo (lado del cliente)
Estas herramientas tienen como finalidad la interacción del cliente (o usuario final)
con el sistema o el negocio desarrollado.
Estas herramientas están cargadas de mucha estética, ya que deben proveer
interfaces que permitan al usuario entender y realizar actividades en las distintas
aplicaciones.
2.3.1.1 HTML
“Es un lenguaje de marcado especializado en la realización de páginas Web”
(Mercer, 2003).
HTML es un lenguaje que cuenta con una estructura de etiquetas identificadas,
porque abren con el símbolo menor que “<” y cierran con el símbolo mayor que “>”.
Estas etiquetas, a su vez, indican el comienzo de una nueva estructura, para
finalizarla debemos cerrar esta etiqueta dándole el mismo nombre pero cerrando la
etiqueta con el slash “/” antes del nombre de la etiqueta.
Un archivo HTML generalmente tiene una estructura general que va de la siguiente
manera: <HTML> como etiqueta de apertura indicando el tipo de archivo, que es
seguido por la etiqueta <HEAD> el cual es el encabezado del documento en el cual
se encuentra el título así como funciones a utilizar; al cerrar esta etiqueta se abre la
etiqueta <BODY> en la cual va el cuerpo del documento, que es el contenido que
será observado por el usuario en la página Web.
HTML es una tecnología muy útil, pero debe ser complementada con otras
tecnologías para que funcione mucho mejor.
Actualmente existe una última versión de esta tecnología, es llamada HTML5, la cual
facilita y simplifica el uso de las etiquetas, tiene nuevas etiquetas (audio, video,
footer, header, entre muchas otras).
28
2.3.1.2 CSS
Sus siglas se traducen al español “hojas de estilo en cascada”, y es un lenguaje que
ayuda y provee control sobre la presentación y el diseño de una página Web.
McFarland (2009) explica que antes del nacimiento de CSS, los programadores y
desarrolladores estaban limitados al estilo que proveía HTML. Pero en 1995 aparece
CSS una tecnología que es capaz de dar muchas más libertades a los
desarrolladores, permitiéndoles así tomar control del estilo de su página Web, estilos
manejados principalmente a través de las etiquetas HTML. Con CSS además se
puede agregar dinamismo con funciones como hover o visited (en el caso de los
enlaces).
CSS no solo permite el manejo del estilo a través de las etiquetas y sus id, también
permite el manejo del estilo por clases. De esta manera si tenemos un grupo de
inputs del mismo tipo que queremos que tengan el mismo estilo, lo único que se debe
hacer es nombrarles como una misma clase y hacerles referencia en el código CSS.
2.3.1.3 Javascript
Es un lenguaje de programación orientado al desarrollo de aplicaciones cliente –
servidor para la creación de sitios Web dinámicos, a pesar de que su nombre parece
indicar que éste es una extensión de Java no es así, JavaScript no guarda relación
con Java. (Javascript, 2001)
JavaScript es utilizado principalmente en el lado del cliente, su código puede estar
embebido en el propio código HTML.
JavaScript, tiene como una de sus características principales y función esencial el
reconocimiento de eventos sobre elementos del código HTML. Estos eventos son
aquellas acciones que el usuario realiza en cualquier portal Web; como Onclick (el
usuario hace click al elemento), Onfocus (el usuario centra su atención con el ratón
en el elemento) y Onblur (el usuario quita su atención con el ratón del elemento),
29
entre otros eventos que son manejados por JavaScript. Al capturar estos eventos se
pueden realizar acciones y validaciones creadas con código de JavaScript. (Pérez,
s.f)
Se dice que JavaScript es dinámico, porque estas validaciones y acciones
mencionadas se muestran al instante al usuario, es decir, este lenguaje cambia el
código HTML instantáneamente.
2.3.2 Herramienta para el desarrollo (lado del servidor)
Las herramientas del lado del servidor, son aquellas que se utilizan para manejar la
lógica de negocios. Estas herramientas, regularmente, relacionan las actividades que
realiza el cliente con el modelo de negocios, de tal manera que toda la información
que viaje de un lado a otro sea coherente.
2.3.2.1 PHP
“PHP es un lenguaje simple pero poderoso diseñado para crear contenido HTML”
(Ledfor, Tatroe y MacIntyre, 2006). PHP en una arquitectura cliente – servidor es
utilizado en el lado del servidor, regularmente como intermediario para conexiones
con la base de datos.
PHP originalmente era acrónimo para “Personal Home Page”, pero actualmente es
acrónimo para “Hypertext Preprocessor”.
El objetivo principal de este lenguaje, es la escritura en el lado del servidor para
construir sitios Web dinámicos, para esto PHP genera código HTML desde el lado del
servidor (para lo cual se necesita un traductor PHP y un servidor Web para enviar
documentos). También, PHP se ha convertido en una herramienta muy útil para
generar XML, archivos PDF, animaciones Flash, como muchas otras opciones muy
utilizadas.
30
PHP, regularmente se utiliza como código embebido en el propio código HTML, es
decir, no es necesario crear un archivo aparte para correr una aplicación PHP.
PHP actualmente se encuentra en la versión 5.3.6.
2.3.3 Servidores Web
La idea principal de un servidor Web, es que realice conexiones con el cliente,
generando respuestas en cualquier lenguaje que pueda ser procesado o entendido
por un compilador desde el lado del cliente.
Un servidor Web, es un traductor de URLs2 transformando estas direcciones en
archivos, permitiendo así enviar información a los clientes en archivos que puedan
ser observados y entendidos por estos.
Los servidores Web, basan su conexión en tipos de peticiones, entre las cuales se
encuentran GET3 y POST4. A través de estos métodos conocerá que acción o que
objetos requiere la aplicación del lado del cliente y que acción debe realizarse del
lado del servidor.
2.3.3.1 Apache
“Es un servidor Web dominante, llenando un lugar clave en la infraestructura de
Internet” (Laurie y Laurie, 2003).
Apache es software libre, y además, de código abierto (es decir, cualquiera que lo
desee puede ver y modificar su código), su código está escrito en el lenguaje de
programación C.
2 Uniform Resource Locator (localizador uniforme de recursos) 3 Obtener en inglés 4 Poner o enviar en inglés
31
Además, Apache se ajusta a la aplicación, este funciona para aplicaciones de uso
personal hasta para aplicaciones de uso comercial que reciban millones de visitas al
día, y sirve también para probar las aplicaciones de manera local.
Apache es un software multiplataforma, es decir, es capaz de correr sobre distintos
sistemas operativos (Windows, Linux, macOS, entre otros).
Apache se encuentra actualmente en la versión 2.2.19.
2.4 Computación Móvil
Un punto crítico de la solución planteada, es el apoyo que brindaría la Computación
Móvil a la solución. Este punto es parte del sistema de información, siendo el apoyo
automatizado en la trascripción de datos.
Es importante conocer la Computación Móvil, y que aspectos son importantes
considerar cuando se desarrolla sobre esta tecnología.
2.4.1 Definición de Computación Móvil
“Un sistema de Computación Móvil es un sistema de computación que puede ser
fácilmente transportado físicamente y cuyas capacidades pueden ser utilizadas
mientras está en movimiento” (B’Far, 2005), un sistema de Computación Móvil tienen
los dos componentes básicos de un sistema, hardware y software, pero
adicionalmente se incluye un tercer aspecto el cual es el aspecto de la comunicación.
Cuando se menciona el hardware se refiere a los componentes físicos, que son
requeridos para el funcionamiento del sistema, por su parte cuando se menciona el
software se denotan aquellos requisitos y requerimientos que no son tangibles que
logran que el sistema funcione, mientras que cuando se menciona la comunicación
se abarcan los protocolos y redes que permiten que el sistema se mantenerse
comunicado y funcionando mientras está en distintos lugares.
32
Una de las principales características de los dispositivos que utilizan sistemas de
Computación Móvil, es la de su pequeño tamaño, esto por una razón muy simple, los
dispositivos requieren movilidad y en su mayoría son transportados por las propias
personas, por lo que un dispositivo de gran tamaño representa un inconveniente al
momento de transportarlo de un sitio a otro.
A pesar de tener unas diferencias notables y bien marcadas, los sistemas de
Computación Móvil también tienen aspectos en común con los sistemas de
computación “estática” o “estacionaria”, muchas de las tecnologías y técnicas
utilizadas para el desarrollo de sistemas de computación “estáticos” también son
utilizadas para el desarrollo de sistemas de Computación Móvil. Sin embargo, la
diferencia más importante entre estos sistemas de computación es el usuario y sus
requerimientos así como también existe una gran diferencia entre los dispositivos
“estáticos” y los dispositivos móviles.
Para diferenciar los sistemas de computación estáticos y los sistemas de
Computación Móvil, se estudian a través de dos enfoques, el hardware y software
que implica una aplicación móvil (en los cuales surgen “dimensiones” o
consideraciones agregadas) y las condiciones o requerimientos de los usuarios que
utilizan los sistemas de Computación Móvil.
2.4.2 “Dimensiones agregadas” de la Computación Móvil
Las dimensiones agregadas a la Computación Móvil, no son más que aquellos
factores que influyen sobre esta y que además la diferencia de cualquier sistema de
computación “estático”; estas dimensiones ayudan a entender mejor el problema que
sugiere la computación móvil, además como se pueden solucionar y enfrentar estos
problemas.
2.4.2.1 Cocimiento de la ubicación
Conocer la ubicación es uno de los elementos vitales de la realización de distintos
sistemas de Computación Móvil, se ha convertido en uno de los principales
33
elementos que se integran a cualquier aplicación de este tipo de sistemas. Se puede
observar en muchas aplicaciones como se apoyan en herramientas como google
maps para obtener la ubicación.
La ubicación del usuario puede ser información muy útil, tanto si es una aplicación de
uso comercial y se quiere saber en que sitios están siendo utilizadas más nuestras
aplicaciones, como para saber la opinión de personas de distintas ubicaciones, y si
por ejemplo, se trata de una aplicación laboral, para saber de que ubicación están
transmitiendo los distintos dispositivos.
2.4.2.2 Calidad de servicio
Se sabe que los sistemas de Computación Móvil esperan movimiento, constante o
no, pero eventualmente, existirá algún movimiento físico de un sitio a otro. Distintos
factores influyen en que la calidad de la conexión se vea afectada o disminuida como
por ejemplo factores del tiempo, lluvias, reflejos solares, el viento, así como muchos
otros, también influye el sitio en el que esté ubicado el usuario, por ejemplo cuando
pasamos por un túnel o cuando nos encontramos en algún sitio en el cual la calidad
de conexión no es buena.
Para una aplicación móvil es importante controlar y tener conocimiento de todos
estos altos y bajos que existen en la conectividad, para que cuando se vea
interrumpida la conexión, la aplicación no deje de operar y que sea capaz capturar
este error y continuar operando, bien sea a la espera de que vuelva la conexión o
realizando alguna otra tarea que no requiera de esta conexión, o informando al
usuario que la conexión ha fallado y que intente nuevamente realizarla.
2.4.2.3 Limitaciones de procesamiento y almacenamiento
Anteriormente, se menciona que los dispositivos móviles en su mayoría cuentan con
la característica de ser pequeños en cuanto a su tamaño, esto para que pueda ser
transportado con facilidad por el usuario, pero esta característica trae con ella ciertas
limitaciones para el dispositivo.
34
A lo largo de los años se ha procurado conseguir más poder de almacenamiento y
procesamiento en menores volúmenes físicos, pero no existe ningún elemento que
sea tan pequeño como para funcionar en un dispositivo móvil y pueda tener la
potencia y espacio requeridos para un funcionamiento de un dispositivo móvil como
si fuese una máquina de escritorio, por esto, al momento de desarrollar una
aplicación móvil se toman en cuenta estas limitaciones, un exceso en el
procesamiento o una gran necesidad en cuanto a almacenamiento de datos lleva
como consecuencia una aplicación muy lenta y limitada en estos aspectos.
2.4.2.4 Limitaciones de provisión de energía
Otra característica mencionada anteriormente y que es la más importante es la
capacidad de transportar el dispositivo físicamente de un sitio a otro, del hogar al
trabajo, a cualquier lugar.
Para el dispositivo mantenerse en funcionamiento debe tener un mecanismo de
provisión de energía que esté en movimiento con el dispositivo, por esto, no
podemos contar con una provisión de energía a través de cables (al menos no
siempre a través de cables); el sistema utilizado es la batería, que proporciona
energía por una cierta cantidad de tiempo hasta que esta requiere ser recargada.
Este punto es importante de resaltar porque las exigencias de las aplicaciones deben
estar acordes a esta dimensión, si una aplicación requiere el uso constante de
muchos recursos del dispositivo consume una cantidad considerable de energía, lo
que lleva a que esta se agote más rápido y tenga que recargarse; el problema es que
al recargarse la energía el dispositivo deja de ser móvil, ya que debe estar
conectado a algún sitio y permanecer allí, por esto se debe considerar no explotar
todos los recursos del dispositivo ni requerir demasiado tiempo de estos para que la
aplicación no consuma toda la energía.
Regularmente, las provisiones de energía (las baterías) duran entre 6 y 12 horas, lo
cual, para un día regular podría ser más que útil porque se recargaría ya en
35
momentos en que hay tomacorrientes a disponibilidad, pero no se puede asumir que
el usuario recargará la batería en momentos precisos y necesarios, existen
momentos en que los usuarios tienen fallas o falta de provisión de energía y no tiene
donde recargar esta. Por esto, las aplicaciones y el dispositivo deben regular estas
situaciones, minimizando la exigencia haciendo así que la batería o la provisión de
energía sea menos exigida que en situaciones regulares
2.4.2.5 La variedad de interfaces
En la computación “estática” existen distintas metodologías de desarrollo, incluyendo
entre ellas la forma de diseñar las interfaces, pero esto no representa una barrera
para estos sistemas de computación. Si es cierto que existe una gran variedad en
cuanto a dispositivos de computación pero todos tienen básicamente los mismos
elementos (el ratón, el teclado, entre otros).
A diferencia de los sistemas de computación “estáticos”, los dispositivos móviles
encuentran una gran variedad en cuando al uso de estos elementos del dispositivo,
por ejemplo, algunos tienen un botón de menú en el teclado mientras otros no, e
incluso llegando a la gran diferencia de que algunos son dispositivos táctiles. El
diseño de la interfaz de una aplicación móvil tiene como base el dispositivo para el
cual se está desarrollando y sus características, así se diseña una interfaz más
cómoda y entendible para el usuario.
2.4.2.6 Las múltiples plataformas
Así como existen distintas variedades de diseño para interfaces, también existen
muchísimas plataformas que trabajan sobre distintos dispositivos, la principal razón
es que al tratarse de dispositivos pequeños cuyos requerimientos de hardware son
menores los costos disminuyen, por lo cual la competencia es mayor al verse
involucradas más organizaciones.
Al desarrollar una aplicación, se toma en cuenta sobre cual plataforma se está
desarrollando, sabiendo que a pesar de ciertas similitudes que puedan existir entre
36
algunas, en la mayoría existen diferencias por lo cual no se desarrolla de igual
manera para todas.
2.4.3 Las condiciones del usuario móvil
Al desarrollar cualquier aplicación, siempre se tienen en cuenta los requerimientos y
las exigencias de los usuarios que utilizarán dicha aplicación. En el ambiente de
desarrollo móvil existen una diferencia marcada respecto a las necesidades del
usuario; fundamentalmente el usuario requerirá que la aplicación funcione aun
cuando el dispositivo esté en movimiento, a pesar de la limitada capacidad del
dispositivo este debe ser veloz (incluso más veloz que un sistema de computación
estática), también el usuario cambiará de una tarea a otra repentinamente y con
frecuencia y por último el usuario requiere que la aplicación funcione en todo
momento en cualquier parte.
Tomar en cuenta los requerimientos básicos es elemental para el desarrollo de
aplicaciones móviles, a continuación se explican cada uno de ellos.
2.4.3.1 Cambio de localización
A pesar de parecer trivial, esta condición es una de las más relevantes. El cambio de
localización lleva consigo muchos cambios, cambios de señal, cambio de batería e
incluso de tamaño. Un dispositivo del cual se espera mucho movimiento debe ser en
consecuencia un dispositivo pequeño y ligero lo que a su vez implica menos
capacidad para el dispositivo.
Como un aspecto extra, se puede tomar en cuenta que el tener la capacidad de
conocer y mostrar al usuario su localización como parte comercial del producto.
37
2.4.3.2 Falta de concentración
Para el usuario móvil, la actividad realizada en el dispositivo móvil no es la actividad
principal, si el usuario va a comer, manejar o cualquier otro tipo de actividad estas
desviaran su atención del uso de la aplicación.
Esta capacidad “multi-tarea” que provee el dispositivo móvil, conlleva a que el usuario
se distraiga de las tareas que realiza en este. Por esta razón, las interfaces de las
aplicaciones deben tolerar estas situaciones, proveyendo un control para estas
situaciones para que el dispositivo “entienda” la falta de concentración del usuario.
2.4.3.3 Respuesta inmediata
Las actividades que los usuarios móviles realizan normalmente requieren un alto
rendimiento por parte del dispositivo móvil, actividades tales como enviar mensajes
de texto, enviar correos, realizar llamadas, entre otras, no son actividades para las
que el usuario espere que el dispositivo tarde mucho tiempo.
Por los requerimientos de rendimiento, el usuario móvil espera que todas las
actividades en el dispositivo móvil sean realizadas con mucha rapidez. Un retraso o
la lentitud que pueda surgir al realizar alguna tarea pueden hacer la aplicación inútil.
Sin embargo, la rapidez de la tarea depende de ella misma, los usuarios móviles
están concientes de lo fácil o complicada q pueda ser la tarea a realizar.
2.4.3.4 Cambio abrupto durante la actividad móvil
Como se comenta en la característica de falta de concentración, para el usuario móvil
la tarea que realiza no tiene porque ser una tarea principal, el usuario podría estar
realizando cualquier otra relacionada o no con el dispositivo móvil.
El usuario móvil debe tener la posibilidad de cambiar repentinamente de una tarea a
otra, y no debe tener la responsabilidad de dedicarse exclusivamente a la tarea
38
móvil, además al volver a la tarea que estaba realizando debe poder continuar sin
ningún inconveniente. Los usuarios móviles esperan que las aplicaciones móviles
sean sencillas de utilizar y de desplazarse en ellas.
2.4.3.5 Donde sea y cuando sea
Esta es, tal vez, la condición más relevante para el usuario móvil. La idea de tener la
disponibilidad de la aplicación móvil donde sea implica que sin importar el lugar se
encuentre el usuario móvil, su disponibilidad debe ser inmediata.
Cuando sea, nos indica que no importa en que momento del día, de la semana, del
mes o del año esté, la aplicación debe funcionar perfectamente. A resaltar en este
caso es que la aplicación móvil no debe necesitar condiciones específicas de lugar o
de tiempo para funcionar, debe estar disponible para cuando el usuario móvil la
requiera, dentro de las limitaciones de la calidad de servicio.
2.4.4 Arquitectura de las aplicaciones móviles
La arquitectura de una aplicación móvil no es única, dependiendo de su función y
necesidades tendrá distintos componentes, sin embargo todas las aplicaciones
móviles tienen componentes en común. En primera instancia, existe un usuario que
no pertenece a la arquitectura pero que es el eje principal pues es quien utiliza la
aplicación.
La arquitectura se divide en varias “capas”. La primera de ellas, es la capa de
presentación, la cual está compuesta por la interfaz y los componentes lógicos de la
presentación. Esta capa es la que el usuario móvil podrá visualizar y con la cual el se
podrá guiar para interactuar con la aplicación. Esta capa está presente en todas las
aplicaciones, ya que sin visualización la aplicación no es posible. (Designing Mobile
Applications, s.f)
La segunda capa es la capa lógica, en esta capa se encuentra la lógica del uso de
los datos y la lógica del funcionamiento de la aplicación y como estos se reflejarán en
39
la interfaz. Se encuentra el flujo de trabajo, las entidades y los componentes del
negocio, componentes principales de la lógica de negocio.
Una tercera capa es la capa de datos, esta capa no se encuentra en todas las
aplicaciones, solo en aquellas que necesiten datos externos al dispositivo móvil o
internos en el dispositivo móvil.
En la arquitectura también tenemos los datos locales, así como componentes de
seguridad y conectividad o comunicación. Estos componentes serán utilizadas según
sea necesario para el funcionamiento de la aplicación móvil.
Como un componente externo a la arquitectura, se ubican los datos ubicados en
bases de datos o archivos externos, con los cuales se establecerá comunicación
para extraer sus datos.
Figura Nro. 4 - Arquitectura de aplicaciones móviles. Fuente: Designing Mobile Applications, s.f
En la Figura No 4 se observan las tres capas de la arquitectura de aplicaciones
móviles, comenzando por las interfaces de usuario, seguidas por la capa lógica
(donde se realizan los procesos) y culminando con la capa de datos que son
manipulados en la aplicación. (Designing Mobile Applications, s.f)
40
En esta Figura también se observa como intervienen elementos como la seguridad
del dispositivo, las redes y conexiones inalámbricas y la configuración del dispositivo
(memoria, procesamiento, entre otros). Además puede existir una capa externa de
datos que se sincronice con la aplicación.
2.4.5 Computación Móvil en línea y fuera de línea
El mundo de las aplicaciones móviles se ha abierto de unos años hacía acá al
concepto del Internet, aprovechando y explotando toda sus ventajas.
Al poder utilizar en Internet en los dispositivos móviles surgen dos tipos de
aplicaciones, las aplicaciones en línea y las aplicaciones fuera de línea.
Las aplicaciones en línea, son aquellas aplicaciones que requieren conexión con
Internet constantemente para poder funcionar. Al tratarse de aplicaciones en línea,
son aplicaciones Web, B'Far (2005) estudia que estas aplicaciones funcionan en
algún navegador que se encuentre en el dispositivo móvil. Cuando se refiere a
aplicaciones móviles en líneas se habla de aplicaciones programadas en lenguaje
HTML5 y que utiliza componentes como javascript y CSS6 pero especializados en
aplicaciones móviles.
Por otra parte las aplicaciones fuera de línea (o aplicaciones nativas), son aquellas
que no requieren el uso de Internet para poder utilizar sus funcionalidades, estas
aplicaciones regularmente están programadas en lenguajes como C++ o Java y no
están basadas en programación con estilo Web. Estas aplicaciones son
desarrolladas con una herramienta llamada SDK7, las cuales están especializadas en
plataformas o sistemas operativos específicos, por lo cual el desarrollo de estas
aplicaciones solo funcionarán sobre la plataforma para la cual esta es desarrollada.
(Gleave, 2010)
5 Hypertext Markup Language 6 Cascade Style Sheets 7 Software Development Kit (Paquete de desarrollo de software)
41
Una aplicación no tiene por que ser completamente fuera de línea, es decir, se puede
requerir conectarse a una base de datos a través del Internet y sin embargo la
aplicación funcionar como una aplicación fuera de línea. En este caso el lenguaje
requerirá un manejador de conexiones a Internet, sin embargo no es una aplicación
en línea, ya que su funcionamiento no depende totalmente de Internet, pero no es
una aplicación fuera de línea, ya que sin Internet podría eventualmente quedar sin
funcionamiento o producirse algún error.
Desarrollar una aplicación en línea o fuera de línea dependerá de las necesidades
del cliente y del servidor, por ejemplo, un juego no tiene por que ser necesariamente
una aplicación en línea, pero si quisiera mantener un ranking pudiera establecer una
conexión breve a Internet. En otro caso una aplicación que el consumidor no desea
instalarla por que hará uso una vez o raras veces a ella podría ser una aplicación en
línea, por ejemplo, una aplicación para registrarse a algún servicio.
2.4.6 Blackberry OS
Blackberry OS, es un sistema operativo diseñado para teléfonos de la marca
Blackberry, este sistema operativo fue creado por la compañía RIM8 la cual es la
desarrolladora de los dispositivos Blackberry. (Blackberro OS, s.f)
Este sistema nació en 1999, donde nacen los Blackberry, teniendo como
características especiales la capacidad de manejar correo electrónico y navegar en
Internet.
Este sistema operativo en la actualidad, permite una gran variedad de opciones a sus
usuarios. Navegación a Internet a través de Browser, un gran servicio de correo
electrónico (gracias a su tecnología push-email), GPS, manejo de archivos
multimedia tales como fotos, videos y audio, conexión a redes sociales, agenda,
calendario y muchas opciones más.
8 Research in Motion
42
2.4.7 Lenguajes de desarrollo de aplicaciones móviles
Cada plataforma soporta aplicaciones desarrolladas en distintos lenguajes, este es
un aspecto muy importante a tomar en cuenta ya que cada lenguaje tiene sus propias
características. Para Blackberry OS la programación de sus aplicaciones debe
realizarse en el lenguaje Java.
Existen muchas herramientas que permiten desarrollar aplicaciones móviles,
especialmente para dispositivos Blackberry en el lenguaje Java, de hecho Blackberry
provee una, aunque también se pueden utilizar algunas otras.
2.4.7.1 Java
Java es un lenguaje de programación orientado a objetos que es desarrollado por
Sun Microsystems, y que además, tiene como característica ser un lenguaje
multiplataforma. (Java, lenguaje de programación, s.f)
Java cuenta con J2ME9, que no es más que una adaptación de Java para
dispositivos de poca capacidad. No tiene mucha diferencia con java, de hecho, utiliza
mucho de su estructura, solo cuenta con una serie de librerías que se adaptan a las
distintas plataformas de los dispositivos móviles. (Que es J2ME?, s.f)
Estas librerías soportan SMS, conexiones para dispositivos móviles, teclados y
botones, tecnología táctil y sus eventos, así como cualquier función asociada a las
distintas plataformas móviles. (Rischpater, 2008)
Java es uno de los lenguajes más famosos, y por esto muchas plataformas móviles
soportan aplicaciones programadas en este lenguaje.
9 Java 2 Micro Edition
43
2.5 Inteligencia de negocios
El manejo de ciertos volúmenes de datos captados masivamente, detectar su grado de
calidad y su interpretación confiable, son decisiones que a menudo se basan en
tecnologías de inteligencia de negocios debido a que hacen un manejo dinámico de los
datos para conseguir estos fines, a través de herramientas de fácil uso como consultas
directas y cuadros de mando.
2.5.1 Definición
“Es un proveedor de toma de decisiones con información valiosa y conocimientos
aprovechándose de una variedad de datos fuente que pueden ser bien estructurados
o no estructurados” (Sabherwal y Becerra-Fernandez, 2011). Se puede decir que la
inteligencia de negocios comprende un conjunto de procesos que son capaces de
generar reporte y análisis para la ayuda para toma de decisiones.
La clave de la inteligencia de negocio es la toma de decisiones, todos los procesos,
datos y análisis involucrados en esta apuntan este fin.
La inteligencia de negocios se hizo popular ya que para los análisis de una gran
cantidad de datos se requiere mucho tiempo y además, está expuesto al error
humano, mientras que al optimizar y automatizar estos procesos los datos que son
expuestos en estos análisis son más confiables. La inteligencia de negocios,
además, contribuye a la ayuda de tomas decisiones que son realmente complicadas
y que requieren de un análisis profundo, además de producir reportes y gráficos que
hacen mucho más fácil la visualización las situaciones que se presentan.
Este proceso de inteligencia de negocios no es un proceso sencillo, es un proceso
estructurado y que requiere de distintos elementos para poder ser procesados, a raíz
de esto nace una arquitectura estándar de la inteligencia de negocios.
44
2.5.2 Arquitectura de la inteligencia de negocios
Si se desglosa la definición anterior en distintas partes se tiene que, en principio
existen una fuente de datos o un conjunto de datos, estos datos pueden ser externos
o internos, datos que provienen de bases de datos del sistema o de cualquier otro
tipo de archivos que contenga datos de interés para el análisis. Estos datos son
procesados y filtrados para pasar a una nueva base de datos llamada almacén de
datos, la cual es una base de datos que está diseñada especialmente para el
procesamiento del análisis requerido para la inteligencia de negocios. Por último, se
encuentran las herramientas que utilizan este almacén de datos para generar
reportes gráficos e indicadores, esta es llamada capa de presentación. (Business
Intelligence, 2010)
Figura Nro. 5 - Arquitectura de la inteligencia de negocios. Fuente: Business Intelligence, 2010
Se observa en la Figura No 5 como en la arquitectura de la inteligencia de negocios
comprende cuatro elementos importantes, entre los cuales existe un proceso para
transformar los datos y convertirlos en información importante que puede ser
analizada y útil. (Business Intelligence, 2010).
45
2.5.2.1 Fuentes de datos
Para poder realizar un análisis del negocio, primero es necesario saber que datos
son necesarios para este análisis. Estos datos provienen de distintas fuentes de
datos del negocio, a su vez, estas fuentes de datos regularmente provienen de bases
de datos transaccionales, sin embargo, también pueden ser extraídos de sistemas
CRM o ERP, así como de archivos planos, es decir, archivos Excel o de texto que
puedan contengan datos importantes.
2.5.2.2 Extracción, Transformación y Carga
Extracción, transformación y carga, es el proceso a través del cual el sistema de
inteligencia de negocios recuperará los datos, obteniéndolo desde las distintas
fuentes de datos y almacenándolos en el almacén de datos. En el proceso de
extracción, simplemente se obtienen los datos desde las fuentes de datos, pero en lo
ideal es extraer solo los datos que son necesarios para cubrir los requerimientos del
sistema, es decir, realizar un filtro de los datos.
Luego en el proceso de transformación se estandarizan los datos, es decir, se hace
una especie de limpieza en la cual se estandarizan los datos que llegan nulos,
mayúsculas, abreviaturas, cantidad de decimales, entre cualquier tipo de
estandarizaciones que se quieran realizar a los datos; esta estandarización sirve para
que los datos sean más correctos y más confiables, tomando en cuenta que los datos
pueden provenir de distintas fuentes y estar almacenados de distintas maneras al
estandarizar se sabe que los análisis están basados en datos de calidad.
En cuanto a la carga, es el proceso a través del cual se almacenan estos datos
estandarizados en un modelo dimensional, en el almacén de datos; lo importante de
este proceso es almacenar los datos en las dimensiones que correspondan parar que
el modelo dimensional quede acorde a como fue diseñado.
46
2.5.2.3 Almacén de datos (modelo dimensional)
Un almacén de datos es un tipo de base de datos, y su función general desde el
punto de vista de almacenamiento es coleccionar datos históricos, temáticos,
volátiles e íntegros. Un almacén de datos, requiere más que almacenar los datos
estandarizados para servir a un sistema de inteligencia de negocios, es esencial
tener un almacén de datos bien diseñado para que el almacén de datos sea eficiente.
(Kimball y Ross, 2002)
Un almacén de datos es diseñado como un modelo dimensional llamado
convencionalmente cubo, a pesar de que puede tener más de tres dimensiones. Para
definir las dimensiones primero se debe declarar un grano, el grano no es más que la
descripción de en lo que el modelo dimensional debe concentrarse. Al tener definido
el grano entonces se procede a definir dos tablas vitales para el modelo dimensional,
la tabla de hechos y las dimensiones.
Las tablas de hecho se almacenan los datos “medibles” o que nos arrojan algún tipo
de estadística, está basada justamente en hechos o situaciones como una venta o
algún tipo de pago, o cualquiera que sea el hecho que se quiera medir (definido en el
grano). En la tabla de hechos además se almacenan las claves foráneas que serán
útiles para identificar las dimensiones asociadas al hecho que se está midiendo.
Las dimensiones, a su vez, contienen atributos que describen entidades involucradas
en el hecho que se mide, por ejemplo, si se habla de una venta se pueden asociar
dimensiones como tiempo, producto, almacén, y cualquier otra que sea necesario
para modelar correctamente el negocio. Las dimensiones también cuentan con una
jerarquía que se define a través de sus atributos, por ejemplo, en la dimensión de
tiempo se puede definir una jerarquía de año-mes-semana-día o en el caso de una
dimensión producto podría definirse una jerarquía como categoría-marca-producto.
Para el modelo dimensional existen tres esquemas que posibles: el primero es el
esquema estrella, en el cual la tabla de hechos es el centro del modelo y en la cual
esta referencia a una cantidad de dimensiones.
47
A continuación, se muestran una serie de figuras que muestran cada uno de estos
esquemas.
Figura Nro. 6 - Esquema estrella. Fuente: Dimensional model schemas- star, snow-flake and
constellation, s.f.
Se ve en la Figura No 6 (Dimensional model schemas- star, snow-flake and
constellation, s.f.) un modelo estrella en el cual existe una tabla de hechos, y tiene
cuatro dimensiones las cuales se relacionan con la tabla de hechos a través de su
clave primaria.
El modelo estrella es el más utilizado, pero el modelo estrella se puede ver como la
derivación de un modelo más general y más amplio llamada esquema copo de
nieve, el que se diferencia del modelo estrella por tener las dimensiones
normalizadas en relaciones entre distintas tablas.
48
Figura Nro. 7 - Esquema copo de nieve. Fuente: Dimensional model schemas- star, snow-flake and
constellation, s.f.
En la Figura No 7 se puede observar como la dimensión2 tiene relación con una tabla
más (la dimensión 2a) al igual que la dimensión3, mientras que en la Ilustración 12
las dimensiones no se relacionaban con ninguna otra tabla, sino solo con la tabla de
hechos.
También se encuentra el esquema constelación de hechos, en este además de
tener más de una tabla para definir las dimensiones se tiene más de una tabla de
hechos, y cada una de estas tablas de hecho se relaciona con las dimensiones que
sean convenientes.
49
Figura Nro. 8 - Esquema constelación de hechos. Fuente: Fuente: Dimensional model schemas- star,
snow-flake and constellation, s.f.
Como se observa en la Figura No 8 se tienen dos tablas de hechos, hechos_A y
hechos_B, esta es la diferencia esencial respecto a los esquemas anteriores, en este
esquema las dimensiones también podrían tener relaciones con otras tablas (es
decir, estar normalizadas) aunque en este ejemplo no se muestre ninguna dimensión
de este tipo.
2.5.2.4 Capa de presentación
En esta capa, de la arquitectura los usuarios finales utilizan las aplicaciones de
inteligencia de negocios. Al ser una capa de presentación provee información que
puede ser visualizada de distintas maneras.
Regularmente, se provee de más de una aplicación para esta capa, dado que la
información puede requerir ser vista de distintas maneras, o hay información que se
puede ver de una manera e información que se puede ver de otra. Por ejemplo, hay
información que es fácilmente observada en gráficos, mientras que para otra es inútil
un gráfico y es necesario verla en tablas u otro tipo de orden visual.
50
Las aplicaciones finales de inteligencia de negocios, deben ser capaces de proveer
una navegación entre las jerarquías de las distintas dimensiones, así como permitir
ver la información desde la óptica de las distintas dimensiones. Por ejemplo, ver que
producto se ha vendido más, ver que vendedor ha vendido más, ver en que almacén
se ha vendido más, e incluso verlo desde más de una dimensión, que producto se ha
vendido más en algún almacén.
Figura Nro. 9 - Herramientas de la capa de presentación. Fuente: El Autor.
La Figura No 9 muestra distintas herramientas y reportes que pueden ser extraídos a
través de los procesos de inteligencia de negocios, entre ellos reportes gráficos y/o
en archivos planos como PDF o Excel, también reportes que se muestren
exclusivamente en la herramienta y gráficos de barras, líneas y de torta. También la
capa de presentación cuenta con los cuadros de mando, que son la herramienta que
le permitirá al usuario manipular o determinar que información desea ver y como
desea verla.
2.5.3 Calidad de datos
Como se ve en los puntos anteriores, los datos de una organización regularmente no
provienen de una fuente única sino que vienen de distintas fuentes, de esto resulta
un problema, debido a que es casi imposible que en todas estas fuentes se
51
almacenen los datos de la misma manera y con los mismos estándares (tomando en
cuenta que cada fuente de dato tiene su propio esquema). También es difícil que no
existan errores en los datos, o que todos los datos sean confiables, ya que
regularmente estos datos son cargados por seres humanos, y por supuesto existe la
tendencia al error.
La calidad de datos, es la manera de mantener lograr obtener la consistencia y la
confiabilidad de los datos que se reciben de las distintas fuentes. No existe una forma
específica de conseguir la calidad de datos, se podrían almacenar todos los datos en
una sola fuente de datos para mantener estándares en esta, o se podrían corregir los
errores encontrados en las distintas fuentes. Sin embargo, si existen criterios
esenciales o primordiales para conseguir la calidad de datos. (Benítez, 2005)
En principio, es importante identificar qué información es más propensa a tener fallas
y a que información es más importante corregirle fallas. Luego, es importante definir
los estándares y las medidas de confiabilidad que se tendrán para cada uno de los
datos a monitorear. Como punto final, es importante apoyarse en un sistema
automatizado para obtener los indicadores necesarios para la calidad de datos, y
nada mejor que un sistema de inteligencia de negocios para el apoyo a esta calidad
de datos, tomando a su vez decisiones dependiendo de los resultados obtenidos de
estos indicadores.
Existen algunos conceptos principales asociados a la calidad de datos, estos son:
Exactitud: Indica lo preciso que son los datos para reflejar lo que sucede en
los procesos.
Totalidad: Mide en que grado cuentan los datos fuentes con la información
necesaria para medir los procesos.
Oportunidad: Indica la disponibilidad de la información necesaria en el
momento necesario.
Relevancia: Es el grado de importancia de la información.
Nivel de detalle: La información debe estar dada sobre un nivel de detalle
requerido, ni más ni menos detallada.
52
Consistencia: Que existan estándares en los datos para que no existan
diferencias entre ellos y la información sea más correcta.
2.5.4 Inteligencia de negocios estática
Ya estudiada la inteligencia de negocios y conociendo sus objetivos y arquitectura, se
observa que es un proceso complejo que arroja resultados que permiten estudiar la
información desde distintos puntos de vista y observarla de muchas formas.
Cuando comienzan a implementarse soluciones de Teletrabajo, puede no ser
necesario implementar una plataforma formal de inteligencia de negocios, sino más
bien construir una estructura que obvie algunos componentes. En su enfoque de
desarrollo Tian Consultores C.A (2011) suele llamarla estructura de inteligencia de
negocios estática.
De esta necesidad surge la inteligencia de negocios estática, esta se vale de una
arquitectura muy parecida a la de la inteligencia de negocios, pero simplifica ciertas
partes.
En principio, también existe una fuente de datos, estos que pueden provenir de
bases de datos o archivos planos, a estos datos también se pasan por un proceso
ETL, para estandarizarlos y realizar abstracción de los datos.
La diferencia se hace en los siguientes elementos de la arquitectura, como se ve en
el punto de la arquitectura de inteligencia de negocios los almacenes de datos son
bases de datos que están especialmente diseñadas para los procesos de inteligencia
de negocios, en el caso de la inteligencia de negocios estática no es necesaria esta
estructura de base de datos la cual es muy costosa y difícil de realizar, en este tipo
de inteligencia de negocios un modelo relacional que se ajuste a las necesidades y
que tenga la capacidad de manejar el modelo de negocios es suficiente.
Por último, en la capa de presentación también existen cambios, ya que no existe la
necesidad de utilizar un software especial para generar los reportes y gráficos, al
53
tratarse de un procesamiento de datos más sencillo se podría realizar la
programación de esta capa de presentación.
2.6 Teletrabajo
Este Trabajo Especial de Grado propone una solución de Teletrabajo, debido a que el
sistema resultante tiene dos componentes principales: la Computación Móvil y un
proceso de trabajo organizado para el uso eficiente de estas tecnologías.
Es importante definir formalmente el Teletrabajo y lo que este implica, además de
conocer en que aspectos puede ayudarle la tecnología a convertirse en un sistema de
trabajo eficaz.
2.6.1 Definición
“Es un acuerdo de trabajo en el cual el empleado trabaja en un sitio remoto que se
encuentra en un lugar que lleva el trabajo a distancia regular del empleado al lugar
principal de trabajo” (Martin, 1992).
El concepto Teletrabajo puede dividirse en dos palabras que le definen claramente:
Tele y trabajo. Es “Tele” lo que le diferencia del trabajo común, ya que “Tele” significa
distancia, y la distancia implica la transmisión de datos a través de algún medio.
En los últimos años el Teletrabajo se ha apoyado en los avances de la tecnología, la
cual ha facilitado esta modalidad de trabajo. El Teletrabajo se realiza fuera de las
oficinas centrales o fuera de los sitios de producción de las organizaciones.
2.6.2 Teletrabajo y la tecnología
Como se menciona anteriormente, la modalidad de Teletrabajo se ha apoyado en los
avances de tecnología. El Teletrabajo requiere la comunicación entre el empleado y
el empleador, esencialmente para que el empleado envíe o muestre su trabajo y el
54
para que el empleador de instrucciones acerca del trabajo a realizar u observaciones
del trabajo realizado. Es en este aspecto de comunicación en el cual el Teletrabajo
se apoya en la tecnología, específicamente en la tecnología de telecomunicaciones,
ya que esta le brinda eficacia en la comunicación. Utilizar las telecomunicaciones
facilita la interacción entre el empleado y el empleador, si en el caso del empleado
debe enviar reportes o informes o cualquier tipo de datos e información, con las
telecomunicaciones los puede enviar con mucha rapidez al lugar central de trabajo
de la organización, si se trata de comunicarse entre sí, se puede utilizar cualquier
herramienta de comunicación, el “chat” común o las conocidas “videollamadas”.
Las comunicaciones vía satélite y las comunicaciones electrónicas son las principales
herramientas actualmente del Teletrabajo, también existen los llamados “centros de
Teletrabajo” que no son más que lugares que albergan y conectan distintos sitios de
Teletrabajo.
Figura Nro. 10 – Teletrabajo. Fuente: El Autor.
La Figura No 10 muestra en un esquema sencillo con que dispositivos podría apoyarse
el Teletrabajo para facilitar su implementación. Además, muestra como el empleado
está en un lugar externo a la central de la empresa.
55
2.7 Inventario
Todo lo comprendido por la solución de Teletrabajo planteada, tiene una como finalidad
medir y manipular datos orientados al Inventario de productos.
Un Inventario es una herramienta importante para el control de los bienes, productos y
herramientas de una organización o empresa, en este punto, se detallarán los tipos de
Inventario y la finalidad del manejo de este.
2.7.1 Definición
“Asiento de los bienes y demás cosas pertenecientes a una persona o comunidad,
hecho con orden y precisión” (RAE, 2010). Un Inventario está conformado por las
pertenencias de una persona, empresa, organización o comunidad, como se
menciona en su definición lo relevante es que el Inventario está en un orden definido
para un entendimiento más claro y preciso de la información que es almacenada en
este. En los Inventarios se almacenan todo tipo de información del producto
(distribuidores, cantidad, precio, y cualquiera que se necesite).
2.7.2 Tipos de Inventario
Inman (s.f) clasifica los Inventarios por los bienes que estos contienen, regularmente
el tipo Inventario está íntimamente asociado con el negocio que este representando,
es decir, si es un negocio exclusivamente de venta pues será un Inventario de
productos finales, mientras si se trata de un negocio de manufacturación puede tener
materia prima y productos en proceso.
2.7.2.1 Inventarios de materia prima
En este tipo de Inventario se almacenan materiales que aun no han sido procesados,
materiales obtenidos de la naturaleza o que han sido adquiridos de algún proveedor y
56
que serán utilizados para la creación de productos. Estos materiales regularmente
son madera, oro, papel, pintura, químicos, entre algunos.
2.7.2.2 Inventarios de producción en proceso
Así como existe la materia prima, también hay Inventarios para aquellos productos
que ya están siendo procesados, es decir, aquella materia prima que ya está siendo
utilizada pero que no se ha convertido en un producto final. Es importante conocer
cuando los productos se encuentran en este estado, ya que no pueden ser contados
como materia prima pero tampoco como productos disponibles.
2.7.2.3 Inventarios de productos finales
Este es uno de los Inventarios más comunes, de la información proveniente de este
Inventario es que los empleados son capaces de conocer si un producto está
disponible para la venta o ya son inexistentes en el Inventario.
2.7.2.4 Inventarios de tránsito
Algunas empresas u organizaciones tienen la necesidad de transportar los productos
de un sitio a otro, la finalidad de este tipo de Inventarios es mantener un historial de
los productos que están siendo transportados, o lo que significa que no se
encuentran en ninguna sede física si no en algún medio de transporte. En estos
Inventarios también puede existir un historial del tiempo que toma llevar un producto
de algún sitio a otro, por lo que un producto podría ya estar en alguna sede y sin
embargo permanecer en este Inventario por alguna cantidad de tiempo.
57
2.7.2.5 Inventarios de amortiguación
Estos Inventarios regularmente almacenan productos que sirven de amortiguación
para situaciones especiales. Un ejemplo de ello, es que en alguna parte del lote de
producción haya existido un error de manufacturación y hayan salido una cantidad
incógnita de productos defectuosos y para ello se utilicen productos que se
encuentren en el Inventario de amortiguación. En este Inventario se almacenan
productos extra o fuera de lo regularmente necesitado.
2.7.2.6 Inventarios de mantenimiento, reparación y suplementos
Se mantiene un control de los productos y suplementos necesarios para el
mantenimiento y reparación de los procesos de producción y la infraestructura. En
esta rama de los Inventarios se encuentran productos como guantes, uniformes,
aceite, gasolina, herramientas especiales, y todo aquello que pertenece a
infraestructura y materiales de producción.
2.7.3 Manejo de Inventario
En manejo de Inventario es un proceso complejo, en el cual se ven involucrados
distintos departamentos de la organización, así como distintos conceptos a manejar y
cálculos que tendrán como consecuencia un mejor manejo de los recursos de la
organización. Un Inventario no son más que los bienes de una empresa, pero de este
se derivan muchos tipos de información de gran utilidad. (Tommey, 2000)
Los principales conceptos y cálculos realizados son los siguientes.
2.7.3.1 Conceptos de costos
Como bien se sabe cada producto tiene un proceso de elaboración, y esta
elaboración tiene un proceso, en el cual se ven involucrados empleados, materiales y
herramientas. A través de este análisis, se puede conocer el costo aproximado por
58
cada producto para la organización, pudiendo así hacer un ajuste más exacto al
precio del producto de tal manera que no existan pérdidas en la organización.
2.7.3.2 Pronóstico
A través del manejo de Inventario también se puede predecir que productos serán
más o menos solicitados, para así también prever y planificar cuantos productos
deben ser manufacturados aproximadamente.
Este tipo de análisis son muy complejos, y se ven afectados por el tipo de
organización que está involucrada. Si por ejemplo, es una organización de venta de
ropa en países que cuenten con las cuatro estaciones, entonces se sabrá que
dependiendo de cada estación se requerirán algunos tipos de vestimentas más que
otros. Pero como se ve en el ejemplo estos pronósticos pueden depender de la
localización, el tiempo y además las necesidades de la organización.
2.7.3.3 Manejo de la cadena de suministro
La cadena de suministro es un conjunto de procesos que embarca desde la
adquisición de materiales hasta la venta del producto.
El manejo de esta cadena no es más que la planificación de cada una de las etapas
que involucran la cadena de suministro, estas etapas son: adquisición de materiales,
manufacturación y distribución. Donde además se ven incluidos el proveedor (de
materiales) y el consumidor o usuario final.
59
Figura Nro. 11 - Cadena de Suministro (elementos involucrados). Fuente: El Autor.
En la Figura No 11 muestra los elementos o factores involucrados en la gestión de la
cadena de suministro, la cual comienza con el proveedor de la materia prima, luego
el fabricante que se encarga de transformar la materia prima para conformar el
producto, seguidamente se encuentra el distribuidor quien se encarga de llevar los
productos a los distintos sitios de venta para que este llegue el comprador.
Mientras la Figura No 12 muestra los procesos involucrados en la cadena de
suministro, que comienza con la adquisición de la materia prima, para luego pasar al
proceso de producción y culminar con la distribución del producto. (Supply chain,
s.f.).
Figura Nro. 12 - Cadena de Suministro (actividades involucradas). Fuente: Sypply chain, s.f
2.7.3.4 Manejo de adquisición de materiales
Se debe realizar un análisis de la cantidad de materiales que son necesarios para
manufacturar la cantidad de productos que se ha solicitado para un cierto lapso de
tiempo.
60
Esta planificación es vital, ya que si no se cuenta con los materiales necesarios será
imposible realizar la producción, lo cual produciría un desabastecimiento y acarrearía
pérdidas a la organización.
2.7.3.5 Manejo de manufacturación
Conociendo la cantidad de productos que se necesitarán para poder suplir y
satisfacer las necesidades de los usuarios finales, es importante que exista una
planificación en el proceso de manufacturación, en el cual se tome en cuenta, la
cantidad de tiempo que se lleva realizar cada producto, y la prioridad que pueda
tener cada uno de estos, además de la cantidad de herramientas y empleados que
estarán involucrados en el proceso de manufacturación.
2.7.3.6 Manejo de distribución
Dependiendo de donde se encuentra ubicada la sede de manufacturación o si se
cuenta con más de una sede, y además de donde se encuentran las sedes de venta,
se debe realizar un plan de distribución donde se ven involucrados la cantidad de
productos que serán distribuidos a cada sede, y también se toma en cuenta los
recursos de transporte con los que se cuenta para esta distribución y la distancia a
recorrer.
61
CAPÍTULO 3 MARCO APLICATIVO
En este capítulo se describen los pasos y métodos seguidos para el desarrollo de la
solución propuesta, que como se ha descrito anteriormente, es una solución de
Teletrabajo que permite la carga de datos asociados al proceso de Inventario de
productos a través de un dispositivo móvil, y además tener control y obtener
información sobre estos datos.
Se explica en este capítulo el método de desarrollo de software, y las fases que fueron
necesarias para la realización de este.
3.1 Modelo de desarrollo de software
Para la realización de la solución de Teletrabajo, se utiliza el método de desarrollo
RAD10, el cual tiene como finalidad minimizar el proceso de planificación del proyecto
para favorecer y agilizar el desarrollo de los módulos necesarios para la culminación de
la solución, ajustándose RAD a los cambios del negocio.
RAD consta de tres fases: Una fase de análisis, una fase de diseño de usuario en
conjunto con la construcción y una fase de implementación y pruebas. (Kendall y
Kendall, 2005).
En la fase de análisis, se describen los requerimientos funcionales y no funcionales de
la solución (los funcionales desarrollados en diagramas de Casos de Uso UML), y
además un diseño general de la aplicación además del modelo entidad/relación de la
base de datos.
Las fases de diseño de usuario y de construcción se engloban en una misma fase,
dado que con el usuario se deben realizar prototipos que son construidos
paralelamente, como esta solución es netamente académica estas fases están más
cohesionadas aun ya que el usuario como tal no existe, por lo cual es realmente una
10
Rapid Application Development (Desarrollo rápido de aplicaciones)
62
etapa de construcción. En esta fase se muestran algunas impresiones de pantalla del
sistema Web y del sistema Móvil.
En la última fase, se describen las pruebas realizadas al sistema, las cuales fueron las:
pruebas unitarias y pruebas de integración.
3.1.1 Análisis y diseño general
Para la realización de un software, es necesario conocer las necesidades que surgen
y lo que se espera de este. En este punto se muestra, a través de casos de uso, los
requerimientos funcionales de la solución de Teletrabajo, y un análisis de los
requerimientos no funcionales que surgen para la solución.
También se expone gráficamente un diseño general del sistema junto con el modelo
conceptual de base de datos.
3.1.1.1 Requerimientos funcionales (casos de uso)
Casos de uso Nivel 0:
Figura Nro. 13 - Casos de uso Nivel 0. Fuente: El Autor.
En la Figura No 13 se muestra el Nivel 0 de los casos de uso, donde se observan los
tres actores asociados al sistema, donde se encuentran los tres actores que
intervienen en el sistema: Administrador, diseñador y usuario móvil.
63
Casos de uso Nivel 1:
Figura Nro. 14 - Casos de Uso Nivel 1. Fuente: El Autor.
La Figura No 14 expone las diferentes actividades que puede realizar cada usuario
según su rol en el sistema, las cuales son: administrar usuarios, formularios y
verificación de calidad de datos para el administrador, diseñar formularios como el
diseñador y recibir, cargar y enviar datos para el usuario móvil.
Casos de uso Nivel 2:
1) Administrar Usuarios:
La administración de los usuarios, es una de las bases de seguridad más importantes
de cualquier sistema. Esta funcionalidad permite mantener la confidencialidad del
sistema, asegurándose que los usuarios que utilicen el sistema sea confiable, pero
además, dejándole ver a cada uno de estos usuarios solo lo que sea necesario que
vea, restringiendo a los usuario módulos del sistema que no utilizan.
64
Se puede observar en la Figura No 15 de este caso de uso se derivan tres casos más,
aceptar o rechazar un usuario, y asignar roles a un usuario.
Figura Nro. 15 - Caso de uso Administrar Usuarios. Fuente: El Autor.
Especificaciones del caso de uso Administrar Usuarios:
Caso de Uso Administrar Usuarios (1).
Actores Administrador.
Descripción Permite al administrador establecer las permisologías y rechazar o eliminar un usuario si es necesario.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Administrar usuarios.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
2. Indicar al usuario que no tiene permisología para editar algún usuario.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones Podrá eliminar, aceptar y asignar permisos de usuarios.
Puntos de Inclusión
----------
Puntos de Extensión
1. Aceptar Usuarios. 2. Rechazar Usuarios. 3. Asignar rol a Usuarios.
Requerimientos Estar registrado como administrador. Tabla 1 - Caso de uso Administrar Usuarios (1)
65
Caso de Uso Aceptar Usuarios (1.1).
Actores Administrador.
Descripción Permite al administrador aceptar a usuarios en el sistema, de tal modo que estos puedan utilizar el sistema.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Aceptar Usuarios.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 2 - Caso de uso Aceptar Usuarios (1.1)
Caso de Uso Eliminar Usuarios (1.2).
Actores Administrador.
Descripción Permite al administrador rechazar o eliminar usuarios en el sistema, de tal modo que estos no puedan acceder al sistema.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Rechazar o Eliminar Usuarios.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 3 - Caso de uso Eliminar Usuarios (1.2)
66
Caso de Uso Asignar roles a Usuarios (1.3).
Actores Administrador.
Descripción Permite al administrador asignarle o modificar roles a los usuarios, de tal modo que estos puedan utilizar los módulos acordes a su rol.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Asignar roles a Usuarios.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
2. Indicar al usuario que no puede asignar o modificar roles de algún usuario.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 4 - Caso de uso Asignar roles a Usuarios (1.3)
2) Diseñar Formularios:
Uno de los elementos más importantes para la recuperación de datos asociados al
Inventario, es el formulario asociado a esta carga de datos. En este formulario se
encuentran todos los datos básicos que permiten el envío correcto de la información
a través del dispositivo móvil.
Entre estos datos que se encuentran en el formulario están: el almacén que es
visitado por el usuario móvil, las categorías, marca y descripción de los productos
que este se dispone a cargar, y las variables que medirán los productos (cantidad,
vigencia, entre otros).
En el módulo de diseño de formularios existen distintas posibilidades, está la
posibilidad de crear un formulario desde el principio, y también es posible ver
formularios que hayan sido creados por otros diseñadores o por el mismo diseñador
(a modo de guía).
67
En la Figura No 16 se observan los casos de uso asociados a diseñar formulario.
Figura Nro. 16 - Caso de uso Diseñar Formulario. Fuente: El Autor.
Especificaciones del caso de uso Diseñar Formulario:
Caso de Uso Diseñar Formulario (2).
Actores Diseñador.
Descripción Permite al diseñador crear, modificar o ver formularios según sea el caso.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de diseño. 4. Diseñar formularios.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
2. Indicar al usuario que no tiene permisología para editar formulario.
Pre Condiciones Estar registrado como diseñador en el sistema y autenticarse en el sistema.
Post Condiciones Crear, editar o ver formulario.
Puntos de Inclusión
----------
Puntos de Extensión
1. Crear Formularios. 2. Editar Formularios. 3. Ver Formularios.
Requerimientos Estar registrado como diseñador. Tabla 5 - Caso de uso Diseñar Formulario (2)
68
Caso de Uso Crear Formulario (2.1).
Actores Diseñador.
Descripción Permite al diseñador crear un nuevo formulario.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de diseño. 4. Crear formulario.
Flujos Alternos ----------
Pre Condiciones Estar registrado como diseñador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como diseñador. Tabla 6 - Caso de uso Crear Formulario (2.1)
Caso de Uso Ver Formulario (2.2).
Actores Diseñador.
Descripción Permite al diseñador ver un formulario creado por el mismo o algún otro diseñador.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de diseño. 4. Ingresar al historial de formularios. 5. Ver formulario
Flujos Alternos ----------
Pre Condiciones Estar registrado como diseñador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como diseñador. Tabla 7 - Caso de uso Ver Formulario (2.2)
3) Administrar Formulario:
El sistema, debe ser capaz de permitir a los administradores controlar el uso de los
formularios que son creados. Este módulo concede al administrador la posibilidad de
asignar períodos de duración o vigencia del formulario, de este modo, si hay
69
mediciones que realizar en días específicos o durante un tiempo específico es
posible asignarle un período.
En esta actividad también es posible inhabilitar algún formulario, bien porque será
reemplazado por otro formulario o por cualquier otra razón y también se pueden
habilitar formularios que hayan sido inhabilitados pero que requieran ser habilitados
nuevamente
Además, es posible asignar que usuarios serán capaces de ver que formularios,
obteniendo un mayor nivel de seguridad en los datos. Estos permisos pueden ser
modificados o revocados eventualmente.
Por último, se posibilita eliminar un formulario, debido a que su información ya no es
útil (tanto datos como mediciones).
En la Figura No 17 es posible observar todas las funciones referentes a la
administración de formularios.
Figura Nro. 17 - Caso de uso Administrar Formulario. Fuente: El Autor.
70
Especificaciones del caso de uso Administrar Formulario:
Caso de Uso Administrar Formulario (3).
Actores Administrador.
Descripción Permite al administrador establecer las permisologías sobre formularios, inhabilitar un formulario si es necesario y establecer períodos de vigencia a los formularios.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Administrar formularios.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones Podrá eliminar, asignar usuarios a formularios y asignar período de vigencia de formularios.
Puntos de Inclusión
----------
Puntos de Extensión
1. Asignar período a Formulario. 2. Asginar usuario a Formulario 3. Eliminar Formulario.
Requerimientos Estar registrado como administrador. Tabla 8 - Caso de uso Administrar Formulario (3)
Caso de Uso Asignar período a Formulario (3.1).
Actores Administrador.
Descripción Permite al administrador asignar un período de tiempo (fechas) a los formularios.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Ingresar al módulo de administración de formularios. 5. Asignar período a formulario.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
2. Indicar que alguna fecha no es válida (si ya está fuera de vigencia).
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 9 - Caso de uso Asignar período a Formulario (3.1)
71
Caso de Uso Asignar usuario a Formulario (3.2).
Actores Administrador.
Descripción Permite al administrador asignar qué usuario será el encargado de llenar qué formulario.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Ingresar al módulo de administración de formularios. 5. Asignar usuario a formulario.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
2. Indicar que el permiso ya existe.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 10 - Caso de uso Asignar usuario a Formulario (3.2)
Caso de Uso Inhabilitar Formulario (3.3).
Actores Administrador.
Descripción Permite al administrador inhabilitar algún formulario.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Ingresar al módulo de administración de formularios. 5. Inhabilitar formulario.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 11 – Caso de uso Inhabilitar Formulario (3.3)
72
Caso de Uso Habilitar Formulario (3.4).
Actores Administrador.
Descripción Permite al administrador habilitar algún formulario que haya sido inhabilitado.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Ingresar al módulo de administración de formularios. 5. ingresar al módulo de habilitación de formularios.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 12 - Caso de uso Habilitar Formulario (3.4)
Caso de Uso Eliminar Formulario (3.5).
Actores Administrador.
Descripción Permite al administrador eliminar algún formulario.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Ingresar al módulo de administración de formularios. 5. Eliminar formulario.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 13 - Caso de uso Eliminar Formulario (3.5)
73
Caso de Uso Modificar Permiso (3.7).
Actores Administrador.
Descripción Permite al administrador modificar el permiso asignado de un usuario a un formulario.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Ingresar al módulo de administración de formularios. 5. Ingresar al modulo de modificación de permisos. 6. Modificar permiso.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 14 - Caso de uso Modificar Permiso (3.7)
Caso de Uso Eliminar Permiso (3.8).
Actores Administrador.
Descripción Permite al administrador eliminar un permiso asignado de un usuario a un formulario.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de administración. 4. Ingresar al módulo de administración de formularios. 5. Ingresar al modulo de modificación de permisos. 6. Eliminar permiso.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 15 - Caso de uso Eliminar permiso (3.8)
74
4) Recibir Datos:
A lo largo del documento, se ha resaltado la importancia e implicación del Teletrabajo
para la solución planteada. Para la existencia de este marco de trabajo se puntualiza
que se utilizan dispositivos móviles que permitan el envío de datos a distancia por
parte del trabajador.
Para poder enviar los datos asociados a su trabajo, es necesario que el trabajador
primero reciba los datos de control y los parámetros de llenado de formularios
asociados a su cuenta.
Para este proceso es necesario que el trabajador se autentique al sistema a través
del dispositivo, para así validar su identidad y evitar fraudes o datos inválidos
enviados por agentes externos no deseados. Una vez realizada la autenticación el
servidor responde al dispositivo enviándole los datos asociados a los formularios que
hayan sido asignados a este usuario móvil
Especificación para el caso de uso Recibir Datos:
Caso de Uso Recibir Datos (4).
Actores Usuario Móvil.
Descripción Permite al usuario móvil recibir toda la información que debe utilizar para la carga de datos.
Flujo Básico 1. Ingresar al módulo principal. 2. Autenticarse en el sistema. 3. Recibir Datos.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
2. Indicar que ha existido algún error con la recepción de datos.
Pre Condiciones Estar registrado como usuario móvil en el sistema y autenticarse en el sistema.
Post Condiciones Podrá utilizar los datos para la carga y su posterior envío.
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como usuario móvil. Tabla 16 - Caso de uso Recibir Datos (4)
75
5) Cargar Datos:
Una vez que el usuario móvil haya recibido los datos asociados a su cuenta, este
debe proceder a la carga de datos.
Para realizar esta carga, primero debe escoger que formulario utilizará para la carga
de datos, una vez realizado este paso, el usuario pasará a llenar las mediciones
asociadas a cada uno de los productos que figuren en el formulario.
Especificación para el caso de uso Cargar Datos:
Caso de Uso Cargar Datos (5).
Actores Usuario Móvil.
Descripción Permite al usuario móvil cargar los datos asociados a un formulario.
Flujo Básico 1. Ingresar al módulo principal. 2. Autenticarse en el sistema. 3. Recibir datos. 4. Seleccionar formulario. 5. Cargar datos
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como usuario móvil en el sistema y autenticarse en el sistema.
Post Condiciones Utilizará los datos cargados para el envío del formulario.
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como usuario móvil. Tabla 17 - Caso de uso Cargar Datos (5)
6) Enviar Datos:
El sistema de Teletrabajo, permite al usuario móvil transmitir o sincronizar los datos
que ha cargado de un formulario determinado a la base de datos del sistema.
Para esto, transmite los datos requeridos en un formato especial, el cual es
procesado en el servidor y cargado en el repositorio.
76
El usuario móvil debe seleccionar un formulario determinado y cargar sus datos para
poder sincronizarlos.
Especificación para el caso de uso Enviar Datos:
Caso de Uso Enviar Datos (6).
Actores Usuario Móvil.
Descripción Permite al usuario móvil enviar los datos asociados a un formulario específico.
Flujo Básico 1. Ingresar al módulo principal. 2. Autenticarse en el sistema. 3. Recibir datos. 4. Seleccionar formulario. 5. Cargar datos. 6. Sincronizar o transmitir datos.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
2. Indicar que ha existido algún problema con la transmisión de los datos.
Pre Condiciones Estar registrado como usuario móvil en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como usuario móvil. Tabla 18 - Caso de uso Enviar datos (6)
7) Verificar Calidad de datos:
La solución planteada, involucra la posibilidad de verificar la calidad de los datos que
han sido enviados a través de los dispositivos. La importancia de esta acción resalta
en que es complicado encontrar errores en una base de datos que maneje una
cantidad importante de datos.
Para poder verificar la calidad de los datos, el administrador tiene la posibilidad de
observar gráficos y reportes donde observa los datos con mayor facilidad y puede
encontrar irregularidades en estos. Es importante destacar que los gráficos solo
podrán ser considerados para mediciones numéricas.
77
Una vez encontrada la irregularidad, el administrador tiene la posibilidad de corregir
este o estos datos, así mantener datos de mejor calidad.
En la figura No 18 se observa que verificar la calidad de datos provee dos opciones,
la observación de gráficos de calidad de datos, y la posibilidad de corregir los datos.
Figura Nro. 18 - Verificar Calidad de datos. Fuente: El Autor.
Especificaciones del caso de uso Verificar Calidad de datos:
Caso de Uso Verificar Calidad de datos (7).
Actores Administrador.
Descripción Permite al administrador conocer y mejorar la calidad de datos enviados al repositorio de datos.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Verificar calidad de datos.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como usuario móvil. Tabla 19 - Caso de uso Verificar Calidad de datos (7)
78
Caso de Uso Observar gráficos y reportes (7.1).
Actores Administrador.
Descripción Permite al administrador observar gráficos asociados a la calidad de datos.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de verificación de calidad de datos. 4. Selección de gráfico.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 20 - Observar gráficos y reportes (7.1)
Caso de Uso Corregir Datos (7.2).
Actores Administrador.
Descripción Permite al administrador corregir datos a los cuales se les haya detectado errores en los gráficos de calidad de datos.
Flujo Básico 1. Ingresar a la página principal. 2. Autenticarse en el sistema. 3. Ingresar al módulo de verificación de calidad de datos. 4. Seleccionar el formulario asociado al dato. 5. Corregir datos.
Flujos Alternos 1. Indicar al usuario que ha ocurrido un error con los datos de autenticación y solicitar de nuevo los datos.
Pre Condiciones Estar registrado como administrador en el sistema y autenticarse en el sistema.
Post Condiciones ----------
Puntos de Inclusión
----------
Puntos de Extensión
----------
Requerimientos Estar registrado como administrador. Tabla 21 - Corregir Datos (7.2)
79
3.1.1.2 Requerimientos no funcionales
Capacidad de uso de la aplicación móvil “Off-line” (Sin conexión a Internet
necesaria).
La aplicación móvil, por su naturaleza, tiene la necesidad de utilizar Internet para
comunicarse con la base de datos (para la recepción y la transmisión de datos), pero
al ser una aplicación nativa provee la posibilidad de que el flujo para la carga de
datos de formularios no requiera el uso de Internet.
Capacidad de ingreso a módulo de creación de formularios y administración
desde cualquier parte.
Los módulos de creación de formularios y administración son módulos Web, por lo
cual estos módulos pueden estar disponibles desde cualquier parte del mundo
siempre que el servidor esté publicado.
3.1.1.3 Diseño General de la solución
Esta solución cuenta con tres módulos esenciales, y además, con dos estructuras
adicionales que permiten satisfacer los requerimientos planteados.
Los tres módulos principales que componen la solución de Teletrabajo son: El
módulo de diseño de formularios, el módulo móvil (la aplicación móvil) y el módulo de
calidad de datos.
Las estructuras adicionales que permiten el correcto funcionamiento de la aplicación
son la base de datos intermedia, y la estructura de seguridad.
80
Figura Nro. 19 - Diseño general de la solución. Fuente: El Autor.
En la figura No 19 se observa como los tres módulos interactúan directamente con la
base de datos intermedia, y como la seguridad está involucrada en cada una de
estas interacciones y conexiones.
3.1.1.4 Diagrama conceptual de base de datos
Para el diseño de la base de datos, se toman en cuenta las entidades necesarias
para el funcionamiento del sistema y como se relacionan entre ellas. Es importante
señalar que esta base de datos a pesar de seguir un modelo relacional, tiene una
estructura especial para mantener historial y para la realización del análisis estático,
por lo que no es una base de datos normalizada.
81
Figura Nro. 20 - Modelo de base de datos. Fuente: El Autor.
En la Figura No 20 se observa el diseño general de la base de datos, la cual consta
del formulario como punto central, al cual se le asocian almacenes y usuarios.
Almacenes para saber a que almacenes aplica el formulario y usuarios para saber
que usuarios pueden utilizar el formulario. Además, al formulario se asocian
preguntas que tiene resultados (o respuestas) y productos asociados (para conocer a
cual producto aplica la respuesta. La tabla llenado contiene una fecha, la cual indica
en que momento del tiempo ha sido llenado el formulario por cual usuario, de este
modo se mantiene un control del llenado de los formularios.
3.1.2 Construcción de la solución
En este punto, se expone como se construye la solución de tal manera que satisfaga
los requerimientos planteados. La construcción está dividida en cada uno de los
requerimientos, y algunas funcionalidades esenciales para el funcionamiento de la
solución.
82
1) Configuración:
Para construir una aplicación Web, es necesario contar con un servidor que procese
la interacción entre las aplicaciones del lado del cliente y las aplicaciones del lado del
servidor. En este caso se configuró en servidor WAMP, cuyas siglas consisten en W
de “Windows”, A de “Apache”, M de “MySQL” y P de “PHP”.
WAMP es un servidor que permite procesar funciones PHP utilizando el servidor
Apache y haciendo conexiones con una base de datos MySQL, que se especializa en
el sistema operativo Windows.
Configurar WAMP es muy sencillo, simplemente se debe realizar la descarga desde
el sitio www.wampserver.com y seguir los pasos. Este software se encuentra
actualmente en la versión 2.1.
Para la aplicación Web se utilizan las tecnologías de J2ME, es necesario contar con
un ambiente de desarrollo Java. Primero se debe descargar el jdk11 para desarrollo
en Java, y luego algún IDE12 que permita desarrollar con facilidad, en este caso se
usa Netbeans en su versión 7.0.
2) Construcción de la base de datos:
En principio, se diseña la base de datos con el manejador de base de datos MySQL,
con la ayuda de phpmyadmin, un administrador que provee WAMP.
11 Java Development Kit (Paquete de Desarrollo en Java) 12
Integrated Development Enviroment (Entorno de desarrollo integrado).
83
Figura Nro. 21 – Phpmyadmin. Fuente: El Autor.
En la Figura No 21 es posible observar la herramienta phpmyadmin con la que se
construye la base de datos. En esta se observan todas las tablas pertinentes.
Este manejador provee la facilidad de construir la base de datos de forma muy
natural, y a su vez, aloja esta directamente en el servidor apache para que pueda ser
accedida en desde la dirección del servidor.
3) Registro de usuarios e inicio de sesión:
Una vez construida la base de datos, se construyen dos funcionalidades esenciales
para el funcionamiento de seguridad y del sistema como tal, los cuales son el módulo
de registro de usuario, y el módulo de ingreso al sistema Web.
84
En la Figura No 22 observamos el sistema de registro de usuarios, un formulario
sencillo, el cual utiliza una función PHP que es el encargado de insertar en la base de
datos los datos proveídos por el usuario.
Figura Nro. 22 - Registro de usuario. Fuente: El Autor.
Para el código HTML de esta vista es utilizada la etiqueta <form>, la cual permite dar
a conocer que lo que está presente es un formulario y en el atributo “action” se indica
el archivo PHP donde se encuentra la función a llamar, además en el atributo
“method” el método de envío de los datos, en este caso POST. Dentro de esta
etiqueta se encuentra una serie de etiquetas <input type=” text”> las cuales
conforman cada uno de los campos de texto del llenado del formulario, a excepción
del campo de dirección, el cual es una etiqueta de <textarea>, por último para el
botón al ser una imagen se utiliza la etiqueta <input type=”image”>.
En el archivo PHP, se reciben los datos del formulario utilizando la variable $_POST
dado que este es el método a través del cual se envían los datos, estos datos son
asignados a variables que permiten manipularlos y verificarlos. Una vez leídos los
datos del formulario, se construye en una variable de texto el código SQL con el cual
se insertan los datos, en este caso se utilizar el comando “INSERT INTO”, al crear
85
esta variable de texto la función “mysql_query” se encarga de realizar la inserción de
los datos en la tabla usuarios.
Una vez insertados los datos, se redirige a la página de inicio de sesión enviándole
un “status” el cual indica que el usuario ha sido insertado.
En la Figura No 23 se observa la página de inicio de sesión al sistema. Este
formulario llama a un archivo en PHP, que realiza la validación contra la base de
datos para encontrar si la información proporcionada por el usuario es correcta, de
ser así, redirige al usuario a la página principal del sistema y además le crea un
manejo de sesión en PHP, en caso contrario, le muestra un mensaje de información
inválida.
Figura Nro. 23 - Inicio de sesión. Fuente: El Autor.
Para la creación de esta pantalla se coloca una etiqueta <image>, la cual permite
colocar el logo en la pantalla, luego una etiqueta de párrafo <p> en la cual se
encuentra el texto de introducción, y luego una etiqueta <form> que envuelve dos
<input type=”text”> y que tiene como “action” el archivo PHP que valida los datos que
introduce el usuario y se determina como método POST. Además, al igual que en el
caso anterior, se utiliza un <input type=”image”> para el botón de envío.
86
El archivo PHP que recibe estos datos, al igual que en el caso anterior, recibe con la
variable $_POST los datos, asignándolos a una variable. Luego, procede a componer
la variable de texto que contiene el comando SQL para la validación con la base de
datos, en este caso el se utiliza el comando “SELECT” el cual consultará si existe
algún usuario con el nombre de usuario y claves que fueron proveídas.
Para conocer si existe algún usuario se utiliza la función mysql_num_rows, la cual
devuelve el número de filas existentes luego de la ejecución de la consulta, en caso
de existir, se redirige a la página principal del sistema y se construye la variable de
sesión $_SESSION la cual es utilizada para manejar variables de sesión (tales como
el id del usuario y el o los roles del usuario), en caso de ser cero el número de filas se
redirige a la página de inicio de sesión con una variable “status” como parámetro, que
indica que los datos son incorrectos.
En el Apéndice A es posible observar el código construido para la validación de
inicio de sesión y el registro de usuarios.
4) Módulo principal del sistema:
Una vez autenticado, el sistema redirige al módulo principal del sistema, este módulo
muestra al usuario las opciones que tiene disponibles según el o los tipos de usuario
que sea. Para ello, al iniciar sesión se maneja variables de sesión, en la cual se
almacena este tipo de información necesaria.
Las opciones que el usuario no tenga permitidas no se muestran, pero es necesario
destacar que este módulo principal funciona para los administradores y para los
diseñadores de formularios.
87
Figura Nro. 24 - Módulo principal. Fuente: El Autor.
La Figura No 24 muestra el módulo principal de un usuario al cual se le permiten
todas las opciones del sistema Web, tanto diseñar formularios, como administrar el
sistema. También se observa en la parte superior un menú, con el logo de inicio,
ayuda y cierre de sesión.
Para la construcción del módulo principal, se divide el cuerpo del HTML en dos
etiquetas <div>. La primera es el panel superior, donde se encuentra el menú para
opciones principales (inicio, soporte, cerrar sesión), la segunda es el panel de cuerpo
el cual contiene el cuerpo que esta compuesto por tres etiquetas <a> <image> las
cuales indican que estas imágenes son enlaces a otras páginas.
En la Figura No 25 se observa un módulo principal de un usuario que solo tiene
permisología de diseñador.
Figura Nro. 25 - Módulo principal de diseñador. Fuente: El Autor.
88
En caso de que el usuario tuviese únicamente permisos de administrador, entonces
las opciones de diseño e historial no resaltarían en este módulo, solo la opción de
administración.
Para la validación del rol del usuario se utiliza código PHP, integrado o embebido en
el propio código HTML de la página. Este utiliza las variable de $_SESSION de los
roles del usuario para las comparaciones, luego, internamente valida si el usuario
puede o no utilizar alguna funcionalidad con el condicional “if”, en caso de no poder
utilizarla, simplemente no se crea la imagen.
El Apéndice B contiene el código utilizado para la construcción del módulo principal.
5) Administración de usuarios:
Como se comenta en el punto de los requerimientos funcionales del sistema, es un
requisito que se pueda administrar a los usuarios del sistema. Existen tres
posibilidades de administración de los usuarios, una de ellas es aceptarles o
permitirles ingresar al sistema, ya que podría registrarse alguna persona o algún
ente no deseado que intente dañar el sistema.
La segunda funcionalidad construida permite al administrador eliminar un usuario a
través de dos opciones: eliminar un usuario que no se desee en el sistema (que no
sea aprobado) o eliminar un usuario que ya exista en el sistema.
La otra opción que ofrece el sistema es la de la asignación los roles a los usuarios.
Esta funcionalidad permite limitar el acceso a cada usuario, de esta manera solo se
permite que estos vean las funcionalidades que están asociadas a su rol.
Es importante destacar que un usuario no tiene permitido administrarse a sí mismo.
Para ingresar al módulo de administración, se debe seleccionar esta opción en el
módulo principal del sistema (visto en el punto anterior).
89
Figura Nro. 26 - Administración de usuarios (pantalla). Fuente: El Autor.
En la Figura No 26 se puede observar el módulo de administración.
En principio, se observan tres opciones de administración. En un recuadro rojo se
resaltan las dos funcionalidades que son explicadas en este punto, ya que la
construcción administración de formularios es desarrollada en un punto posterior,
mientras en el recuadro amarillo se resalta que este sistema propone al usuario la
capacidad de volver en algunos puntos, este ícono se encuentra en la mayoría de las
páginas del sistema Web.
Este menú es construido con la etiqueta <table>, con el atributo “border” en 0, de
este modo los íconos salen uno al lado del otro, pero no se muestra separación entre
ellos.
Este módulo es muy dinámico, ya que se desarrolla en Javascript, lo cual permite
que con tan solo hacer un clic en la opción deseada aparezca en pantalla, sin
descartar las anteriores, de este modo no es necesario navegar entre distintas
páginas para utilizar cada una de las funciones, sino en la misma página se pueden
utilizar todas estas. Para esto se hace el llamado a la función javascript a través de la
etiqueta de enlace <a href>, esta función a su vez llama a dos funciones internas,
una, para mostrar los componentes del enlace al cual se le ha hecho clic y otra para
ocultar el enlace que se este mostrando previamente.
90
También, se observa debajo del logo de usuarios que se muestra un aviso, de las
aprobaciones pendientes que existen.
Figura Nro. 27 - Aceptar/rechazar usuario. Fuente: El Autor.
La Figura No 27 ilustra la opción de aprobar o negar al usuario la posibilidad de
ingresar al sistema. Como se observa, se muestra la cédula y los nombres y
apellidos de los usuarios, y a la derecha, las opciones de aprobar o negar el permiso,
todo esto diseñado con la etiqueta <table> y asignándoles fondos de distintos colores
en el CSS a través del atributo “background”.
Si el permiso es aprobado, una función PHP se encarga de actualizar el campo
sistema de este usuario en la base de datos, recibiendo con un formulario creado en
cada fila de la tabla que envía los datos con el método POST. En este caso el
comando SQL utilizado es un “UPDATE” ya que el usuario ya existe en la base de
datos desde que se registra, solo que su columna “sistema” debe ser colocada en 1
para saber que ya puede ingresar al sistema asignándole como parámetro de la
cláusula WHERE el identificador del usuario.
En caso de ser negado, el permiso también una función PHP se encarga de eliminar
ese usuario de la base de datos a través del comando SQL “DELETE”, pasándole
como parámetro de la cláusula WHERE también el identificador del usuario. Esta
función PHP tiene la particularidad de que recibe el parámetro de identificado de
usuario a través del método GET y no el método POST.
91
Figura Nro. 28 - Administración de roles. Fuente: El Autor.
Se ve en la Figura No 28 la cuadrícula de asignación de roles a usuarios. Se puede
observar que en la primera columna se muestran los alias de los usuarios, es
importante que se conozca que solo aparecen usuarios que ya han sido aceptados
previamente. En este caso, también se utiliza la etiqueta <table> creando un
formulario en cada fila también que utiliza el método POST.
En las siguientes columnas están representados los tres roles del sistema
(diseñador, usuario móvil y administrador), los usuarios que tengan “chequeado” el
cuadro del rol tienen los permisos de este, estos campos de chequeo son creados
con la etiqueta <input type=”checkbox”>.
Esta actualización se debe realizar por usuario, ya que como se comenta se crea un
formulario por cada fila y en la última columna por cada fila existe un símbolo para
guardar los cambios realizados, y solo se guardarán los cambios asociados a esa
fila. Una vez pulsada la opción de guardar, un archivo PHP se encarga de actualizar
los datos del usuario en la base de datos, recibiendo los datos enviados por el
formulario en la variable $_POST y utilizando el comando SQL UPDATE, recibiendo
como datos el identificador del usuario, el cual es el parámetro de la cláusula
WHERE y los campos de chequeo los cuales están vacíos si el campo no ha sido
chequeado o contienen algún valor si efectivamente ha sido chequeado.
Al validar si el campo de chequeo está vacío, se actualiza este campo en la base de
datos, colocándolo en “1” si está chequeado o “0” si está vacío.
92
También en esta cuadrícula existe la posibilidad de eliminar al usuario del sistema,
utilizando la misma función que se encuentra en la tabla anterior, una vez eliminado,
el usuario no aparecerá en ninguna cuadrícula ya que no existirá más en la base de
datos.
En el Apéndice C se muestra el código que compone la construcción de la
administración de usuarios.
6) Creación y edición de formularios:
Creación de formularios
Para esta solución la creación de formularios es un requerimiento que se deriva de la
necesidad de estandarizar los formatos de carga de datos.
Esencialmente, un formulario está compuesto por dos bloques: el primero es la
información general del formulario, en la cual se encuentra el nombre, el usuario que
utiliza el formulario y el lugar donde lo llena, toda esta información se encuentra en la
base de datos y no es necesario que sea llenada, por lo cual este encabezado no es
una estructura de carga sino informativa. El segundo bloque del formulario lo
componen los productos y sus mediciones, es creado por el diseñador, quien escoge
las categorías que mide el formulario y describe las variables que componen el
formulario.
La creación de formulario, comprende una serie de pasos a realizar para construir
estos dos bloques. En primera instancia el diseñador debe seleccionar la opción de
“diseño” en el módulo principal de la aplicación Web.
Para la creación del encabezado, se construye una pantalla que contiene dos datos
principales: el primero es el nombre del formulario, y el segundo son los almacenes
para los cuales está destinada la medición; estos almacenes son obtenidos
previamente con una consulta ejecutada en PHP a la base de datos.
93
Figura Nro. 29 - Información General del formulario. Fuente: El Autor.
Como se muestra en la Figura No 29 en esta pantalla se llena la información general
del formulario, unna vez escrito el nombre del formulario y seleccionado en los
chequeos los almacenes deseados, se hace clic en la imagen de nuevo formulario, la
cual llama a un proceso PHP que se encarga de crear el formulario y asociarle los
almacenes que han sido seleccionados por el diseñador.
Esta pantalla también está conformada por la etiqueta <form>, en la cual se
encuentra el <input type=”text”> que contiene el nombre del formulario.
Para la creación de los “checkbox” de los almacenes, se realiza primero una consulta
SELECT a la base de datos con PHP que contiene todos los almacenes que existen
en la base de datos la cual se ejecuta con la función mysql_query, luego se realiza
un recorrido a la consulta con el comando de bucle “while” y se crean tantos
“checkbox” como iteraciones existan.
Al presionar la imagen para la creación del archivo de nuevo formulario, la variable
$_POST se encarga de recibir en otro archivo PHP el campo de texto que contiene
el nombre del formulario y los campos de chequeo que tienen como valor el
identificador del almacén que es referenciado en estos. Una vez recibidos estos
datos, con el comando SQL “INSERT INTO” se almacenan en la tabla formularios e l
nombre y en la tabla “almacen_formulario” la relación de este nuevo formulario que
94
ha sido creado con los almacenes que fueron chequeados (con el identificador del
formulario y los identificadores de los almacenes).
El siguiente bloque es la asignación de categorías y mediciones al formulario, para
este se construye un formulario con la etiqueta <form> que se divide en dos partes
con la etiqueta <fieldset>, en la primera existe una serie de cajas de chequeo
(parecidas a las de los almacenes de la pantalla anterior) en las cuales aparecen
todas las categorías existentes en la base de datos, para la obtención de estas
categorías se realiza el mismo proceso que con los almacenes, un comando
“SELECT” de las categorías y luego un ciclo que crea tantos “checkbox” como sea
necesario.
En la segunda parte del formulario, aparecen campos de texto (<input type=”text”)
que permiten determinar la medición y un campo de selección que permite
determinar el tipo de medición que es.
Para no limitar ni forzar a una cantidad determinada de mediciones, se desarrolla una
serie de funciones en Javascript que permite generar dinámicamente la cantidad de
mediciones que sean requeridas.
Con la ayuda de enlaces <a>, con nombres referentes a la función que representan,
se hace la llamada a dos funciones javascript: una es para añadir un nuevo campo
de texto en el javascript se utiliza la función “appendChild” el cual adjunta un nuevo
campo de texto. La segunda es para eliminar algún campo que se haya añadido por
error o que no es deseado, en este caso se utiliza la función “removeChild” para
remover el campo de texto.
95
Figura Nro. 30 - Diseño de formulario. Fuente: El Autor.
En la Figura No 30 se puede observar lo mencionado en párrafos anteriores. Las
cajas de chequeo de las categorías, el campo de texto y selección para la definición
de las mediciones, además, se resaltan dos detalles. En el recuadro rojo se resalta
un enlace que es el encargado de hacer la llamada a la función de Javascript para
generar dinámicamente un nuevo campo, también se puede observar que debajo de
cada medición existe un enlace para eliminar dicha medición para hacer más flexible
esta creación.
En el recuadro verde se encierra el botón para guardar este formulario. Al presionar
el botón, se dirige a un archivo PHP encargado que recibe con el método POST la
información utilizada en el formulario. Este archivo PHP es un poco más complejo
que los anteriores ya que debe leer variables o campos de texto dinámicos, tomando
en cuenta que estos campos de texto están organizados en un arreglo de campos de
texto, lo cual facilita el recorrido.
Para el recorrido se utiliza el ciclo “for” el tiene como parámetro de control el tamaño
del arreglo, en cada iteración que va recorriendo verifica que categorías han sido
chequeadas, a través de un comando de SQL avanzado “SELECT” viaja a través de
96
las tablas para conocer los productos de estas categorías, y luego se realiza un
“INSERT INTO” en la tabla preguntas, relacionando el identificador de cada producto
con la pregunta de la iteración.
Una vez almacenado el formulario, se muestra al usuario el producto de su diseño,
de este modo, le es más fácil visualizar el contenido y la estructura del formulario que
ha creado.
Para esta función, se realizan una serie de consultas en PHP con el comando
“SELECT” a la base de datos, obteniendo los datos de las mediciones, el título del
formulario, productos asociados y almacenes asociados.
En la Figura No 31 se muestra la visualización del formulario, se puede observar que
se divide en los dos bloques comentados anteriormente, la información general (con
el nombre y los almacenes) y el detalle que muestra los productos y sus mediciones
Figura Nro. 31 - Visualización de formulario. Fuente: El Autor.
97
Esta visualización también es utilizada para el requerimiento de ver formularios
desde el historial, el usuario al seleccionar el formulario a observar es redirigido a
esta página.
En el primer <fieldset>, se muestra el nombre del formulario obtenido con PHP y un
tipo de campo <select> donde se encuentran al desplegarse todos los almacenes
asociados.
En el segundo bloque <fieldset>, se estructura una tabla <table> dinámica donde el
número de columnas se define por el número de mediciones que existen para este
formulario, y el número de filas está dado por el número de productos asociados a
estas mediciones. Para ambos casos, se hace un recorrido a las distintas consultas
con el iterador “while”, primero creando las columnas iniciales y luego las filas con los
productos.
El Apéndice D muestra fragmentos del código utilizado para la construcción de la
creación de formularios.
7) Administración de formularios:
En los casos de usos se destaca que la administración de formularios es importante,
porque así se controlan períodos de formularios y que formularios ve que usuario.
Para el desarrollo de esta aplicación se construye un sitio principal, donde se
muestran todos los formularios existentes, los usuarios móviles en el sistema y las
características necesarias para asignar períodos al formulario.
98
Figura Nro. 32 - Administración de formularios. Fuente: El Autor.
En la Figura No 32 se observan ya dos funcionalidades que han sido explicadas y la
administración de formularios la cual es desarrollada en este punto.
En la tabla central se pueden observar cinco columnas, en la primera el formulario,
en la segunda los usuarios móviles, en la tercera la frecuencia o el período de
repetición del permiso, en la cuarta los días de la semana y en la quinta las acciones
existentes.
Por último, en la parte inferior existen dos acciones más, en la opción es posible
observar los permisos a formularios que han sido asignados, y en la opción de la
derecha se permite observar los formularios que han sido inhabilitados.
Para la creación de la tabla de administración de formularios se utiliza la etiqueta
<table>, y se realiza un recorrido a través de una consulta realizada en PHP con el
comando “SELECT” a los formularios que estén habilitados en la base de datos.
Dentro de este recorrido, también se realiza un segundo recorrido también propiciado
por una consulta con el comando SQL “SELECT” pero el cual esta vez, muestra los
usuarios que han sido aceptados en el sistema y que además tengan rol de usuario
móvil para la creación del <select>, que muestra todos los usuarios móviles del
sistema en la segunda columna.
99
La tercera y la cuarta columna también son construidas con <select>, pero en este
caso la cuarta columna no tiene ninguna importancia si la frecuencia es diaria, si la
frecuencia es semanal entonces si tiene relevancia.
Por último, en la quinta columna se colocan tres imágenes utilizando la etiquieta
<image>, en la cual la primera de ellas (de izquierda a derecha) es un <input image>
ya que es el botón que llama a guardar el permiso, este formulario que es creado por
cada fila tiene como atributo “action” la llamada a una función PHP que se encarga
de almacenar en la base de datos a través del comando “INSERT INTO” en la
relación entre usuarios y formularios lo valores que hayan sido seleccionados por el
administrador, valores que son recibidos con el método POST.
Las otras dos imágenes están contenidas dentro de la etiqueta <a>, lo cual indica
que son enlaces. La imagen de gráfico de torta es un enlace a la calidad de datos del
formulario de esa fila el cual es un punto que es desarrollado más adelante. La
imagen del centro es un enlace que lleva a un archivo PHP, el cual recibe el
identificador del formulario que se desea inhabilitar, luego con una sentencia
“UPDATE” se actualiza en la base de datos el campo habilitado, de tal modo que el
formulario quede inhabilitado.
Las imágenes inferiores son ambas enlaces también, que redirigen a otras interfaces
donde se encuentran las opciones de para modificar y eliminar las permisologías de
usuarios a formularios y habilitar o eliminar formularios.
100
Figura Nro. 33 - Habilitar/eliminar formulario. Fuente: El Autor.
La Figura No 33 muestra la pantalla para habilitar de nuevo formularios que han sido
inhabilitados o eliminar un formulario del cual ya sus datos no sean útiles.
La etiqueta <table> es la encargada de generar la tabla, la cual consta de dos
columnas y contiene los datos de una consulta realizada en PHP que se encarga de
contener los formularios que están inhabilitados en la primera columna utilizando el
comando “SELECT” donde la cláusula “WHERE” tiene como condición que el
formulario esté inhabilitado.
En la segunda columna se encuentra las dos opciones posibles, ambas son enlaces
realizados con la etiqueta <a> que contiene dos imágenes. La imagen de color verde
con el símbolo “check” lleva a una función PHP que recibe a través del método GET
el identificador del formulario de la fila seleccionada y con la sentencia “UPDATE” se
encarga de habilitar el formulario nuevamente.
La imagen derecha lleva a otra función PHP, la cual también recibe el identificador
del formulario a través del método GET, y se encarga de eliminar con la sentencia
SQL “DELETE” dicho formulario.
101
Figura Nro. 34 - Modificación de permisos. Fuente: El Autor.
En la Figura No 34 se observa el módulo de modificación de permisos, este módulo
cuenta con dos acciones: modificar el permiso y eliminar el permiso.
En este caso también se crea una tabla con la etiqueta <table>, la cual contiene los
datos que son obtenidos de una consulta a la base de datos de la relación de los
usuarios con los formularios, esta consulta retorna todas las filas existentes en la
base de datos y cada relación es representada en una fila de la tabla. En el caso de
los <select> se realizan una validación en PHP respecto a los datos recibidos de la
consultado, y a aquel dato que coincida con el <option> del <select> se le coloca el
atributo “selected” y de este modo aparece de primero en las opciones.
Así como en casos anteriores, cada fila es un formulario creado con la etiqueta
<form> el cual es enviado al presionar la primera imagen (de izquierda a derecha)
para guardar los cambios realizados en esa fila, estos datos son enviados a través de
POST y recibidos por una función PHP la cual utiliza el arreglo $_POST para recibir
estos datos y así realizar una actualización con la sentencia SQL “UPDATE”.
La segunda imagen representada por una “x” es un enlace <a>, que lleva a una
función PHP encargada de eliminar la relación que existe entre el usuario y el
formulario de esa fila. Esta función PHP utiliza la sentencia SQL “DELETE” utilizando
el identificador de la relación.
El Apéndice E contiene secciones esenciales del código para la realización de las
funcionalidades de administración de formularios.
102
8) Aplicación Móvil:
Como se comenta a lo largo del documento, la aplicación móvil es construida en el
lenguaje Java, para dispositivos Blackberry. Para esta aplicación móvil, en principio,
se construye una pantalla de inicio de sesión que permite al usuario móvil
identificarse al sistema.
Para la creación de esta pantalla, se utiliza una estructura especial de Java ME
llamada LoginScreen, la cual automáticamente crea dos cuadros de texto y un
comando para iniciar sesión. Una vez que el usuario utilice este comando, se realiza
una conexión a través del protocolo HTTP a través de una función, la cual envía a un
archivo PHP con el método GET los parámetros para la validación de inicio de
sesión, esta función PHP responde “1” si los datos son válidos y devuelve además,
todos los datos de formularios asociados al usuario. En caso contrario devuelve “0” y
el sistema genera una alerta de conexión fallida.
Figura Nro. 35 - Inicio de sesión (aplicación móvil). Fuente: El Autor.
En la Figura No 35 se observa la pantalla de inicio de sesión del sistema, junto con el
comando de inicio “Login”, el cual permite enviar los datos.
103
Una vez verificados que los datos son correctos, y recibidos los datos asociados al
usuario, se le muestra a este los formularios que tenga asociados. Esto se realiza
recorriendo la estructura en la que han sido enviados los datos y creando una
estructura de Java ME llamada “ChoiceGroup”, con el parámetro “exclusive” el cual
indica que para este conjunto de opciones solo hay una respuesta posible. Además,
a través de un “StringItem” creado con estilo de botón se permite llamar a un
comando que dirige a la siguiente pantalla que utiliza el formulario que sea escogido.
Figura Nro. 36 - Formularios asociados (aplicación móvil). Fuente: El Autor.
La Figura No 36 muestra la pantalla principal del sistema, en la cual se observa que el
usuario tiene dos formularios asociados.
Al seleccionar el formulario deseado, se almacena en una variable global el
identificador de este obteniéndolo de un comando especial llamado
“choiceGroupSelectedIndex”, el cual permite conocer el formulario que ha sido
seleccionado.
104
La siguiente pantalla del flujo, corresponde a la selección del almacén que se asocia
a los datos, esto también es realizado con la estructura “ChoiceGroup”, con la única
diferencia de que como parámetro tiene la opción “Popup” la cual permite crear un
selector en vez de botones circulares.
A este “ChoiceGroup” se le adjuntan los almacenes que han sido relacionados
previamente en la creación de formularios.
Figura Nro. 37 - Selección de almacén (aplicación móvil). Fuente: El Autor.
En la Figura No 37 se observa la pantalla de selección del almacén, se puede
observar también que se utiliza un botón seleccionar al igual que en la pantalla
anterior, al utilizarlo un comando redirigirá a la sección de preguntas o mediciones
para completar el llenado del formulario.
Una vez seleccionado el almacén, se procede a mostrar las mediciones y productos
asociados al formulario escogido en el primer paso. Estas preguntas tienen cuatro
clasificaciones y dependiendo de estas se utilizan distintas estructuras Java ME para
su correcta captura
105
Si la medición es numérica, entonces se utiliza la estructura “TextField” con una
validación especial de tipo de campo “numeric”, de tal modo que en este campo de
texto solo se puedan utilizar números. Si la medición es de tipo verdadero y falso, se
utiliza un “ChoiceGroup” exclusivo con solo dos opciones “sí” y “no”. En otro caso, si
la medición es de tipo fecha se utiliza la estructura “DateField”, la cual solo captura
fechas con el formato especial de los dispositivos BlackBerry. Por último, si la
medición es de texto libre se utiliza un “TextField” sin restricciones de caracteres.
A esta pantalla también se le adjunta un comando que puede ser utilizado en
cualquier parte de la pantalla de “Finalizar Formulario”, el cual al presionarlo llama a
una función que envía los datos que han sido cargados al formulario a una función
PHP a través del protocolo HTTP, esta función PHP se encarga de insertar los datos
del usuario en la tabla “resultados”.
Figura Nro. 38 - Carga de datos (aplicación móvil). Fuente: El Autor.
En el caso que se muestra en la Figura No 38 se observa un formulario con solo dos
mediciones, una numérica (la cual es inicializada en “0”) y otra de tipo fecha (la cual
es inicializada con la fecha del sistema). También es posible observar el comando
“Finalizar Formulario” así como otros que provee por defecto el sistema.
106
Una vez finalizado este proceso se puede realizar tantas veces como sea necesario,
o simplemente salir del sistema.
En el Apéndice F se encuentra parte del código utilizado para la creación de la
aplicación móvil.
9) Calidad de datos:
El último de los requerimientos contemplados para la solución de Teletrabajo es la
calidad de datos. Como se comenta anteriormente, para proveerla se utilizan gráficos
y reportes con los cuales se facilita la tarea de verificar la calidad de los datos.
En el punto de administración de formularios se detalla que entre las opciones de
administración se encuentra una imagen, la cual es un enlace que permite acceder al
módulo de calidad de datos, es decir, un módulo que permite observar gráficos o
reportes orientados a un formulario en específico (el que haya sido escogido en estas
opciones de administración).
El primer paso para la construcción del módulo de calidad de datos consta en crear
un menú que permita seleccionar las tres acciones posibles: ver gráficos, ver
reportes o editar datos (corrección de datos). Para esto se utilizan tres enlaces con la
etiqueta <a>, que tiene como referencia las páginas donde se encuentran cada una
de estas acciones. Además, a este enlace se le agrega una imagen <img> para
hacer más ilustrativo el paso a seguir.
107
Figura Nro. 39 - Módulo de calidad de datos. Fuente: El Autor.
En la Figura No 39 es posible observar el módulo principal de calidad de datos, donde
se encuentran las tres figuras que representan las acciones posibles de este módulo.
La acción de gráficos se constituye por dos páginas. En la primera de ellas, se
seleccionan los parámetros que rigen el gráfico a mostrar, parámetros como la fecha
del formulario, el almacén y la medición a observar. También, existe un segundo
caso en el cual se muestra un gráfico por producto en un rango de fechas.
Para esta selección de datos se utiliza una etiqueta <form>, especificando el método
“POST”, entre los campos se encuentran tres etiquetas <select>, una de ellas para
seleccionar un almacén entre el grupo de almacenes que están asociados al
formulario que fue seleccionado en el paso anterior. Para la obtención de estos
almacenes se realiza una consulta en MySQL a través de PHP, donde se consulta a
las tablas “almacenes” y “almacen_formulario”.
La segunda etiqueta <select>, permite seleccionar la medición a mostrar en el
gráfico, en este caso las mediciones que son tomadas en cuenta son únicamente las
numéricas, así que en la consulta se adiciona esta condición.
108
La tercera etiqueta <select>, permite seleccionar que deseamos en el gráfico, si el
llenado del formulario en una fecha específica o ver los datos asociados a un
producto en un rango de fechas. Dependiendo de esta selección aparecen distintas
opciones, para esto se utiliza una función en Javascript que oculta y muestra los
campos dependiendo de la opción que sea. Para mostrar y ocultar los campos se
cambia el CSS de los campos a través de un comando Javascript donde el atributo
“display” es modificado a “none” (no visible) o “block” (visible) dependiendo de la
opción elegida.
Para el caso de ser un formulario en una fecha específica se utiliza un campo de
texto <input type=”text”>, pero para asegurar que las características que envía son de
un campo de fecha se utiliza la librería de Javascript jquery la cual permite desplegar
un calendario y que el usuario escoja la fecha con tan solo un clic, de este modo no
tiene que escribir la fecha y se estandariza este campo.
En caso de ser la opción de un producto en un rango de fechas, se habilita un nuevo
campo <select>, que permite seleccionar entre los productos que están asociados al
formulario a través de las preguntas, para esta consulta se consultan las tablas
“preguntas” y “productos” donde el identificador de formulario que se asocia a la
pregunta debe ser el elegido en la opción anterior. También, se asocian dos campos
de texto que seleccionan dos fechas y que al igual que en el caso anterior despliegan
calendarios con la ayuda de la librería jquery.
Figura Nro. 40 - Selección de parámetros (gráficos). Fuente: El Autor.
En la Figura No 40 es posible observar una impresión de pantalla de la selección de
parámetros para los gráficos.
109
Al pulsar el botón para ver el gráfico, la información recaudada es enviada a otra
página, en la cual se realiza una serie de consultas esenciales para la obtención de
los valores necesarios para los gráficos. Esta consulta es más compleja de lo
habitual ya que debe recorrer muchas tablas, en principio debe conseguir el llenado
que coincida con el formulario y almacén provisto por el usuario, para esto debe
consultar las tablas “llenado” y “almacen_llenado” y encontrar el llenado de la fecha
especificada, luego debe encontrar los resultados asociados a este llenado, pero
además con las especificaciones de los productos y la pregunta seleccionada por lo
que se deben recorrer las tablas “”preguntas”, “productos” y “resultados”.
Una vez obtenidos los datos correspondientes, se grafican estos datos con una
herramienta llamada “highcharts” (la cual se encuentra en su versión 2.1.6) que
utiliza jquery como base para realizar los gráficos. En este caso, los datos obtenidos
son almacenados en un arreglo que es utilizado como parámetro. También se utiliza
el formulario o producto como título y el nombre de la pregunta como leyenda.
Se construyen gráficos de barra y de línea, los cuales también son un parámetro para
la construcción del gráfico, en estos casos: “line” (línea) o “column” (barra).
Figura Nro. 41 - Gráficos 1 (calidad de datos). Fuente: El Autor.
La Figura No 41 muestra ambos gráficos de un formulario que ha sido llenado en la
fecha del 19/09/2011.
110
Entre las opciones que provee “highcharts” se encuentra guardar los gráficos como
imágenes y/o imprimirlos.
Figura Nro. 42 - Gráficos 2 (calidad de datos). Fuente: El Autor.
En la Figura No 42 se muestran dos gráficos en el caso de seleccionar un producto
específico en un rango de fechas de cinco días (18/09/2011 – 22/09/2011).
La segunda opción de calidad de datos son los reportes, para ello se utiliza en formato
pdf para mostrarlos. Para la realización de estos reportes se utiliza una librería que
permite crear un archivo pdf utilizando únicamente PHP.
Estos reportes también requieren recibir parámetros, por lo cual, se construye una
primera página muy parecida a la comentada en el punto de los gráficos. Para este
caso también se recibe un almacén asociado al formulario y una fecha y al igual que
con los gráficos se consultan los resultados que relacionan a este formulario con el
almacén y la fecha. La única diferencia que existe es que en este caso se muestran
todos los resultados de todas las mediciones asociadas al formulario.
Se representa el reporte en una tabla en la cual las columnas son las mediciones, y las
filas los productos y el punto del encuentro el resultado definitivo
111
En la Figura No 43 es posible observar un archivo pdf que es generado con un
formulario, un almacén y una fecha dada (19/09/2011).
Figura Nro. 43 - Reporte (calidad de datos). Fuente: El Autor.
Una vez encontrados los errores con las distintas herramientas, es necesario realizar
las correcciones pertinentes para que los datos sean correctos, para esto se utiliza una
página que permite editar los resultados asociados a un formulario.
Al seleccionar la opción de edición de resultados, también se debe seleccionar la fecha
y el almacén para encontrar los resultados de un llenado de formulario específico, una
vez recibidos estos datos se redirige a una página que contiene una tabla creada con
la etiqueta <table> la cual es llenada dinámicamente. Al igual que en el caso del
reporte, las filas son los productos, las columnas las mediciones y el punto de
encuentro es el resultado, el cual en este caso estará incluido en un campo de texto
<input type=”text”> para que sea posible editarlo, al lado de este campo de texto se
encuentra un símbolo de edición.
Al presionar el símbolo de edición, una función PHP se encarga de recibir a través del
método POST el valor modificado y realiza una sentencia “UPDATE” en la base de
datos, donde actualiza el resultado especificado. Al realizar esta operación, refresca la
página de actualización de resultados.
112
Figura Nro. 44 - Corrección de datos. Fuente: El Autor.
En la Figura No 44 es posible observar la edición de resultados, en este caso de un
formulario que cuenta con dos mediciones “cantidad” y “vencimiento”. En caso de ser
una medición de tipo fecha, se utiliza el formato de jquery para mantener el estándar
utilizado. Una vez actualizados estos datos mejora la calidad de los mismos.
En el apéndice G es posible observar el código construido para los módulos de
calidad de datos.
3.1.3 Pruebas
Una vez construida la solución, se procede a la etapa de pruebas. En el módulo
anterior se observa que a medida que si construye cada módulo se le realizan
pruebas unitarias a estos, al concluir la implementación se realizan una serie de
pruebas en conjunto para verificar el funcionamiento correcto de todos los módulos
que se relacionan entre sí.
113
Al estar probados unitariamente (demostrado en el punto anterior), se procede a
realizar la prueba a los módulos en conjunto, pero esto no debe realizarse al azar. En
este caso se realiza dos pruebas con integración incremental, integrando los módulos
en concordancia con el flujo que debe seguir la aplicación.
En la primera prueba, se integran el módulo de registro con el módulo de
administración de usuarios, mientras que en la segunda prueba, se integran los
módulos de creación y administración de formularios, junto con la aplicación móvil y
la calidad de datos al formulario.
3.1.3.1 Integración incremental
1) Registro – Administración de usuarios:
Registro de usuarios:
El primer módulo utilizado para realizar esta prueba es el módulo de registro. Para
eso se utilizan los datos de prueba que se observan en la Figura No 45.
Figura Nro. 45 - Prueba módulo de registro. Fuente: El Autor.
114
Al insertar, estos datos son almacenados en la tabla “usuarios” de la base de datos.
En la Figura No 46 se observa en el manejador de base de datos phpmyadmin los
datos insertados.
Figura Nro. 46 - Prueba módulo de registro (base de datos). Fuente: El Autor.
Registro de usuarios – Administración de usuarios:
Ahora al ingresar al módulo de administración de usuarios, se puede observar que le
usuario que se ha registrado está pendiente por aprobación. En este caso se
aprueba el usuario.
Figura Nro. 47 - Prueba aprobación de usuarios. Fuente: El Autor.
En la Figura No 47 se observa el usuario pendiente en las aprobaciones.
Al ser aprobado el usuario, aparece en las opciones de administración de roles, en
principio aparece sin ningún rol asignado, en este módulo de administración de roles
115
se debe asignar al menos uno al nuevo usuario para que este pueda utilizar el
sistema.
Figura Nro. 48 - Pruebas administración de roles. Fuente: El Autor.
En la Figura No 48 se observa como el rol de usuario móvil es asignado al usuario
que ha sido utilizado para prueba.
116
Estos pasos se repiten continuamente para asignar distintos roles y realizar pruebas
a eliminar usuarios.
2) Creación de Formularios – Administración de Formularios - Aplicación Móvil –
Calidad de Datos:
Para esta segunda prueba se toman en cuenta cuatro módulos, el primero y principal,
es el módulo de creación de formularios, este módulo es la base de los siguientes,
por lo que es el primero de la integración incremental, a este le sigue la
administración de formularios, la cual es la que habilita y aprueba que datos se
observan en la aplicación móvil. Por último, son los datos que han sido insertados en
la aplicación móvil a los que se les realiza calidad de datos, por lo que sin esto el
módulo de calidad de datos no es aplicable.
Creación de Formularios:
Al ingresar al módulo de creación de formularios, en el primer paso se llena la
información general como se observa en la Figura No 49.
Figura Nro. 49 - Prueba diseño de formulario (información general). Fuente: El Autor.
Una vez presionado el botón, se seleccionan las categorías y las mediciones
asociadas al formulario, en esta prueba se asocian una medición de cantidad y una
de fecha (las más complejas de manejar), tomando en cuenta que es a las variables
de cantidad a las que es posible realizarle gráficos.
117
Figura Nro. 50 - Prueba diseño de formulario (categorías y mediciones). Fuente: El Autor.
La Figura No 50 muestra lo detallado anteriormente, al formulario se le asocia una
categoría y dos mediciones, una numérica y una de fecha. En este punto se realizan
distintas pruebas aparte de esta, asociando variables de tipo verdadero y falso y de
texto, y agregando múltiples categorías.
Una vez concluido el paso anterior se muestra el formulario en forma de tabla, como
es posible observar en la Figura No 51.
Figura Nro. 51 - Prueba diseño de formulario (mostrar formulario). Fuente: El Autor.
118
Creación de formularios – Administración de formularios:
Para realizar pruebas a la administración de formularios, se ingresa al módulo de
administración y se selecciona la opción de administración de formulario, y entonces
se puede observar el formulario que se ha creado.
En este caso de prueba se guarda un permiso de formulario para el usuario
“usuarioprueba”, como se ve en la Figura No 52.
Figura Nro. 52 - Prueba administración de formularios. Fuente: El Autor.
En el módulo de visualización de permiso de formulario, se puede visualizar el nuevo
permiso creado como se muestra en la Figura No 53.
Figura Nro. 53 - Prueba administración de formularios (ver permisos). Fuente: El Autor.
119
En este módulo también se realizan pruebas para inhabilitar formularios, eliminar
permisos y habilitar formularios que han sido inhabilitados, además se prueba la
modificación permisos en cuanto a frecuencia y día.
Administración de formularios – Aplicación móvil:
Una vez asignado el formulario, se prueba la apliacación móvil con el usuario al que
este hag sido asignado, para esto se utiliza el emulador de BlackBerry integrado con
Netbeans.
El primer paso es iniciar sesión, para esto se proveen los datos del usuario
“usuarioprueba” y como se puede observar en la Figura No 54 la pantalla principal del
sistema le muestra al usuario los formularios asociados (el formulario asociado en
este caso) a el.
Figura Nro. 54 - Prueba aplicación móvil (pantalla inicial). Fuente: El Autor.
Al seleccionar el formulario, debe seleccionar el almacén en el que se encuentra para
llenarlo, y al realizar esta acción deben introducir los datos acordes para entonces
enviarlos a la base de datos.
120
En la Figura No 55 se muestran los pasos comentados anteriormente.
Figura Nro. 55 - Prueba apliación móvil (llenado de resultados). Fuente: El Autor.
En este módulo también se realizan pruebas que incluyen variables de texto y de
verdadero y falso, además probando que no se puede exceder en tamaño los textos
introducidos así como no se puede introducir letras o caracteres especiales en
variables numéricas.
Aplicación Móvil – Calidad de datos:
Por último, se prueba que los datos que se han enviado se muestran en el módulo de
calidad de datos en gráficos, reportes y para su posible edición.
121
Figura Nro. 56 - Prueba calidad de datos (gráficos). Fuente: El Autor.
En la Figura No 56 se observan los dos gráficos que arroja la variable numérica del
formulario, como se puede observar, en concordancia con los datos introducidos.
Ambos gráficos son capaces de mostrar los datos que han sido introducidos para la
variable numérica “cantidad”. En este módulo con más datos de distintos formularios
se prueba el gráfico que muestra el comportamiento de un producto en distintas
fechas.
122
Figura Nro. 57 - Prueba calidad de datos (reporte). Fuente: El Autor.
En la Figura No 57 se observa el reporte en formato pdf que arroja el formulario
utilizado en esta prueba.
Y por último, existe la posibilidad de editar los datos del formulario como se muestra
en la figura No 58.
Figura Nro. 58 - Prueba calidad de datos (corrección de datos). Fuente: El Autor.
Con esta integración incremental se comprueba el correcto funcionamiento del
sistema desde la creación de formularios hasta la calidad de datos, incluyendo todas
las funciones necesarias durante este flujo.
123
CONCLUSIONES
El objetivo general planteado como solución para el proceso de Inventario de
productos, fue logrado satisfactoriamente.
Se consiguió desarrollar una base de datos en MySQL que fuese capaz de soportar la
estructura de la solución de Teletrabajo.
PHP es una herramienta que permite fácil interacción con la base de datos MySQL,
apoyados por WAMP Server, por lo cual la aplicación Web para el diseño de la
aplicación fue desarrollada con éxito y consiguiendo todas las funcionalidades
planteadas.
Netbeans permite construir aplicaciones nativas en Java para dispositivos Blackberry
proveyendo un ambiente de trabajo simple que, además, es capaz de crear el flujo de
la aplicación con una herramienta gráfica. Sin embargo, J2ME como lenguaje no
provee muchas facilidades para las interfaces de usuario, por lo cual estas deben ser
muy simples, o se deben realizar funciones muy complejas para agregar estilo.
Una solución de Teletrabajo requiere de reglas de validación de los datos captados,
para corregir desviaciones en los mismos.
Por último, la construcción de los gráficos y reportes para detectar estas desviaciones
pueden utilizar como esquema la inteligencia de negocios estática, pero en otro caso,
si se requieren gráficos o reportes más complejos, se debe incorporar un esquema de
inteligencia de negocios dinámico.
124
RECOMENDACIONES
Cuando se implementan soluciones de Teletrabajo que integran las
tecnologías de Computación Móvil con procesos del negocio, es fundamental
asegurar su uso adecuado a través de indicadores diseñados para tal fin.
Para mantener un ambiente ágil de intercambio de información entre los
dispositivos móviles y la base de datos corporativa transaccional que aloja
estos datos, es frecuente hacer uso de una base de datos intermedia, con el
fin de no afectar el resto de los procesos que interactúan con la base de
datos corporativa.
La calidad de los datos debe ser una meta constante en una solución de
Teletrabajo, con el fin de asegurar que los resultados tomados de la base de
datos corporativa sean consistentes.
La revisión y seguimiento de las reglas para la captación de datos y su
validación, a través de los dispositivos móviles, debe incorporarse al proceso
del negocio beneficiado con esta tecnología.
144
REFERENCIAS BIBLIOGRÁFICAS Y DIGITALES
Estudio de la problemática que presenta el proceso de Inventario realizado sobre la
base de Clientes de Tian Consultores. (2011). Caracas: Tian Consultores C.A.
Chávez, E. (s.f.). Construyendo e Implementando Sistemas de Información. Obtenido
el 16 de mayo de 2011, desde http://pechll.blogspot.es/
Retallick, B. (2006). CSE1IS Systems Week 2 Lecture 2 Types of Information Systems.
Obtenido el 16 de mayo de 2011, desde
http://149.144.20.200/subjects/IS/sem22010/lectures/l022istypes.shtml
Davenport, T. y Prusak, L. (2000). Workink knowledge: how organizations manage
what they know. Estados Unidos de Norteamérica: President and Fellows of Harvard
College.
Oppel, A. (2009). Databases. Estados Unidos de Norteamérica: The McGraw-Hill
Companies.
Sumathi, S. y Esakkirajan, S (2007). Fundamentals of Relational Database
Management Systems. India: Springer-Verlag Berlin Heidelberg.
Why MySQL? (s.f.). Obtenido el 12 de mayo de 2011, desde
http://www.mysql.com/why-mysql/
Harrington, J. (2002). Relational database design clearly explained (2º ed.). Estados
Unidos de Norteamérica: Elsevier.
Ledorf, R., Tatroe, K. y MacIntyre, P. (2006). Programming PHP (2º ed.). Estados
Unidos de Norteamérica : O’Reilly.
JavaScript. (2001). Málaga, España: INNOVACIÓN Y CUALIFICACIÓN, S. L..
145
Pérez, I (s.f.). Capítulo 5: Eventos en JavaScript. Obtenido el 14 junio de 2011 desde
http://www.elcodigo.net/tutoriales/ javascript/javascript5.html
Mercer, D. (2003). HTML. Estados Unidos de Norteamérica: McGraw-Hill Companies..
McFarland, D. S. (2009). CSS: The missing manual (2º ed.). Estados Unidos de
Norteamérica: O’Reilly.
Laurie, B. y Laurie, P. (2002). Apache: The definitive guide (3º ed.). Estados Unidos de
Norteamérica: O’Reilly.
Kimball, R. y Ross, M. (2002). The Data Warehouse Toolkit: The Complete Guide to
Dimensional Modeling (2º ed.). Estados Unidos de Norteamérica: Kimball Group.
BI: Datawarehouse (s.f.). Obtenido el 10 de mayo de 2011, desde
http://blog.pucp.edu.pe/item/14451/bi-datawarehouse
Sabherwal, R. y Becerra, I. (2011). Business Intelligence. New York: John Wiley &
Sons, Inc.
Business Intelligence (24 de Octubre, 2010). Obtenido el 14 de mayo de 2011, desde
http://carlosandres868.blogspot.com/2010/10/business-intelligence.html
Dimensional model schemas- star, snow-flake and constellation (s.f.). Obtenido el 14
de mayo de 2011, desde http://www.executionmih.com/data-warehouse/star-snowflake-
schema.php
Manual de Métodos de Desarrollo. (2011). Caracas: Tian Consultores C.A.
Benítez, G (Septiembre, 2005). Calidad e datos: factor crítico. Obtenido el 18 de junio
de 2011, desde http://www.gestiopolis.com/canales5/emp/pymecommx/27.htm
Inman, R. (s.f.). Inventory types. Obtenido el 18 de mayo de 2011, desde
http://www.enotes.com/management-encyclopedia/inventory-types
146
Sypply chain (s.f.). Obtenido el 18 de junio de 2011, desde
http://en.wikipedia.org/wiki/Supply_chain
Tommey, J. W. (2000). Inventory Management: principles, concepts and techniques.
Estados Unidos de Norteamérica: Kluwer Academic Publushers.
Martin, P. (1992). Telecommuting: the ride of the future. Hawaii: Legislative Reference
Bureau.
B’Far, R. (2005). Mobile computing principles. Estados Unidos de Norteamérica:
Universidad de Cambrige.
Designing Mobile Applications (s.f.). Obtenido el 02 de abril de 2011, desde
http://msdn.microsoft.com/en-us/library/ee658108.aspx
Gleave, A (2010). Web or Native: Mobile Application Decisions. Obtenido el 17 de
junio de 2011, desde http://www.redrobotstudios.com/blog/2010/02/20/web-or-native-
mobile-application-decisions/
BlackBerry OS (s.f.). Obtenido el 06 de junio de 2011, desde
http://en.wikipedia.org/wiki/BlackBerry_OS
¿Qué es J2ME? (s.f.). Obtenido el 20 de junio de 2011, desde
http://www.java.com/es/download/faq/whatis_j2me.xml
Java (lenguaje de programación (s.f). Obtenido el 19 de junio de 2011, desde
http://es.wikipedia.org/wiki/Java_%28lenguaje_de_programaci%C3%B3n%29
Rischpater, R. (2008). Beginning Javatm ME platform (3º ed.). Estados Unidos de
Norteamérica: Apress.
Kendall, K. y Kendall, J. (2005). Systems analysis and design (6º ed.). Estados Unidos
de Norteamérica: Pearson Education, Inc.