Desarrollo de una solución de Teletrabajo para la...

146
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

Transcript of Desarrollo de una solución de Teletrabajo para la...

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.

125

Apéndice A

registro.html

126

registro.php

iniciodesesion.html

127

iniciodesesion.html (continuación)

iniciodesesion.php

128

Apéndice B

principal.html

129

Apéndice C

administrar.html (usuarios)

aceptar.php (usuarios)

130

eliminar.php (usuarios)

administrar.html (roles)

131

administrar.php (roles)

administrar.js

132

Apéndice D

crearformularioinfgen.html

crearformularioinfgen.php

133

crearformulariocategoriasymediciones.html

crearformulariocategoriasymediciones.js

134

crearformulariocategoriasymediciones.php

mostrarformulario.html

135

Apéndice E

administar.html (formularios)

136

asignarpermiso.php

inhabilitarformulario.php

137

habilitar_eliminar_formulario.html

habilitarformulario.php

eliminarformulario.php

138

modificar_eliminar_permiso.html

139

modificarpermiso.php

eliminarpermiso.php

140

Apéndice F

loginscreen.java

httpconexion.java

141

formulario.java

142

Apéndice G

calidadprincipal.html

calidadgraficos.js

143

calidadreporte.php

calidadcorregir.php

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.