PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ FACULTAD DE CIENCIAS E INGENIERÍA ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA PARA EL CONTROL DE LA EMISIÓN Y CONSUMO DE VALES BASADO EN UNA ARQUITECTURA DE SERVICIOS Tesis para optar el Título de Ingeniero Informático, que presenta el bachiller: Jean Franco Renato Flores Alvarez ASESOR: Abraham Eliseo Dávila Ramón Lima, abril de 2018 Agradezco a los profesores por las enseñanzas brindadas, y en particular a Silvia Vargas Cáceres por su esfuerzo, dedicación y tiempo. Agradezco a mis padres y familiares por el continuo apoyo en esta etapa de mi vida y a todos mis amigos que me alentaron y ayudaron de diversas maneras siempre cuando más los necesité. RESUMEN En las empresas, una forma de brindar reconocimiento al esfuerzo e incentivar al empleado es el modelo del vale. Este vale es un documento el cuál será canjeado por bienes de consumo. En base al marco de la Ley Nro. 28051 de prestaciones alimentarias en la cual promueve un beneficio hacia el ingreso de los trabajadores a modo de vales de consumo con la participación de terceros en condiciones adecuadas; las empresas privadas pueden brindar estos vales hacia sus usuarios. Al no contar con un mecanismo de control y de una integración de las partes en una misma herramienta se pueden presentar problemas que afectan el servicio o proceso y también a los proveedores o usuarios. La solución propone el desarrollo de una herramienta que brinde un proceso transparente, controlado y seguro al modelo de vales a manera de servicio. Se propone el desarrollo de una plataforma que abarque empresas, proveedores y usuarios para que este sistema de vale pueda ser soportado y administrado por cada uno de los actores, según sus privilegios funcionales. Además, de poder utilizar los datos almacenados para generar mayor información útil al proceso. i ii Tabla de Contenidos CAPÍTULO 1 – INTRODUCCIÓN ..................................................................................... 1 1.1 PROBLEMÁTICA ............................................................................................. 1 1.2 OBJETIVO GENERAL ..................................................................................... 3 1.3 OBJETIVOS ESPECÍFICOS Y RESULTADOS ESPERADOS ....................... 3 1.4 HERRAMIENTAS, MÉTODOS, METODOLOGÍAS Y PROCEDIMIENTOS ... 3 1.5 MÉTODOS Y PROCEDIMIENTOS .................................................................. 5 1.6 ALCANCE ......................................................................................................... 6 1.7 LIMITACIONES ................................................................................................ 8 1.8 RIESGOS .......................................................................................................... 8 1.9 JUSTIFICACIÓN............................................................................................... 9 1.10 VIABILIDAD ...................................................................................................... 9 1.11 ESTRUCTURA DEL DESARROLLO DEL PROYECTO ............................... 10 CAPÍTULO 2 - CONCEPTOS ......................................................................................... 12 2.1 MARCO CONCEPTUAL ................................................................................ 12 2.2 CONCEPTOS RELACIONADOS A LA PROBLEMÁTICA ........................... 12 2.3 MARCO LEGAL ............................................................................................. 13 2.4 SEGURIDAD O ENCRIPTACIÓN DEL VALE ............................................... 15 2.5 TRAZABILIDAD ............................................................................................. 15 CAPÍTULO 3 – ESTADO DEL ARTE ............................................................................. 17 3.1 MÉTODO USADO EN LA REVISIÓN DEL ESTADO DEL ARTE ................ 17 3.2 ELECTRONIC COUPON TRACKING ........................................................... 17 3.3 ELECTRONIC COUPON SYSTEM ................................................................ 18 3.4 SODEXO ......................................................................................................... 18 3.5 PROMOTICK .................................................................................................. 19 3.6 TEBCA Y PROVIS ALIMENTACIÓN ............................................................. 19 3.7 EDENRED ....................................................................................................... 20 3.8 CONCLUSIONES SOBRE EL ESTADO DEL ARTE .................................... 20 CAPÍTULO 4 – ANÁLISIS DEL PROYECTO ................................................................. 23 iii 4.1 ACTORES DEL SISTEMA ............................................................................. 23 4.2 REQUISITOS .................................................................................................. 24 4.3 PAQUETES DEL SISTEMA ........................................................................... 26 4.4 CASOS DE USO............................................................................................. 27 4.5 ARQUITECTURA DE LA SOLUCIÓN ........................................................... 31 CAPÍTULO 5 – DISEÑO Y DESARROLLO ................................................................... 33 5.1 HERRAMIENTAS PARA LA CONSTRUCCIÓN ........................................... 33 5.2 SERVIDOR DE LA PLATAFORMA ............................................................... 33 5.3 CAPA DE SERVICIOS ................................................................................... 33 5.4 MODELO DE BASE DE DATOS ................................................................... 35 5.5 PROTECCIÓN DE INFORMACIÓN ............................................................... 37 5.6 ENTORNOS DE DESARROLLO ................................................................... 37 5.7 DESARROLLO DE LA SOLUCIÓN ............................................................... 38 5.8 INTERFAZ GRÁFICA ..................................................................................... 39 5.9 PRUEBAS ....................................................................................................... 44 CAPÍTULO 6 – OBSERVACIONES, CONCLUSIONES Y RECOMENDACIONES ...... 45 6.1 OBSERVACIONES ........................................................................................ 45 6.2 CONCLUSIONES ........................................................................................... 45 6.3 RECOMENDACIONES ................................................................................... 47 REFERENCIAS BIBLIOGRÁFICAS ............................................................................... 48 iv CAPÍTULO 1 – Introducción En este capítulo se presenta la problemática a solucionar, el objetivo general y específicos del proyecto y una idea general de lo que conformará la solución propuesta. 1.1 Problemática Según la Real Academia Española, un vale es un documento asignado a un beneficiario el cual puede canjearlo en un establecimiento autorizado por bienes económicos o de consumo [RAE 2014]. Estos vales son utilizados actualmente dentro de empresas como parte de un mecanismo hacia los empleados para que hagan uso de estos, con la finalidad de que sirva como incentivo para fortalecer el compromiso con la empresa o servir de ayuda como un bono. [Ley28051 2003] En el Perú, en el año 2003, se promulga la Ley 28051 que regula (a través del ministerio de trabajo) el uso de vales de consumo alimenticios. Este marco legal ha permitido que diversas empresas hagan uso del vale de consumo alimenticio, el cual consiste en un documento con valor monetario significativo entregado a los trabajadores de la empresa a razón de aumentar sus ingresos. De esta manera el trabajador puede hacer uso de su vale en establecimientos que se encuentren afiliados dentro del convenio con la empresa expendedora de vales para obtener productos o bienes de consumo. Este servicio, al estar orientado a un sector público en específico, debe estar compuesto por procesos simples para que, los usuarios, no tengan mayores dificultades en poder ejercer su derecho. Asimismo, brindar el soporte necesario para asegurar que todo el sistema (servicio) opere de manera adecuada y segura. Lo descrito anteriormente, parece un proceso sencillo, pero podrían darse descuidos por parte de los reguladores del servicio. Desde el inicio del trámite, la empresa pierde la trazabilidad del vale debido a que estos son entregados de manera física al trabajador por parte del empleador [Ley28051 2003]. Estos, son emitidos con un código, pero no se sabe a quienes serán destinados hasta el momento de la entrega en donde se correlaciona un documento nacional de 1 identidad con algún vale. Es en este punto donde no pueden controlar la transparencia del proceso de trámite del vale ya que el empleador es el que los emite relacionándolos al nombre del trabajador [Ley28051 2003]. En conclusión, frente al escenario previamente expuesto, se observa un problema de ausencia de trazabilidad debida a la falta de información respecto al momento que se realizan los canjes y quien fue el autor del canje; y problemas de control en lo que respecta a la emisión de vales definido por la entidad que vaya a utilizarlo. Al no contar con un mecanismo de control y de una integración de las partes en una misma herramienta se pueden presentar problemas que afectan no solo al programa o proceso en general, sino también a los proveedores y a los usuarios. Con un sistema más transparente, controlado y ordenado la calidad del servicio brindado puede mejorar de una manera significativa. Además, se puede dar uso a los datos recibidos por el sistema para decisiones sobre el funcionamiento o mejora del proceso. Se plantea la siguiente pregunta: ¿Cómo podemos llevar un mejor control de los mecanismos de emisión de vales hacia los usuarios de manera que se pueda aprovechar y explotar los datos obtenidos? Por lo que en este proyecto se busca desarrollar un sistema que permita mantener el control sobre la emisión, canje de vales y uso de la información obtenida de la trazabilidad del sistema propuesto. 2 1.2 Objetivo general Implementar un sistema de información para la gestión de la emisión y canje de vales utilizados como incentivo en empresas en el marco de la Ley Nro. 28051 de prestaciones alimentarias basado en una arquitectura orientada a servicios web. 1.3 Objetivos Específicos y Resultados Esperados En la Tabla 1 se presenta los objetivos específicos y los resultados esperados por cada uno: Objetivos Específicos Resultados Esperados Diseñar la arquitectura de la Documento de Diseño de la arquitectura solución. para la solución planteada. Modelar la Base de datos que Modelo y Diccionario de datos a utilizar soporte la solución planteada. para la solución. Desarrollar el componente de Capa de servicios Web Rest que servicios que permitan interactuar permitan la comunicación con la base con los datos almacenados. de datos. Diseñar y aplicar mecanismos que Mecanismos de encriptación de la mantenga segura la data información de la base de datos y almacenada y restrinjan el acceso a mecanismos de seguridad para el ella. acceso a la información. Desarrollar una plataforma que Plataforma web que brinde de una permita la integración de servicios interfaz gráfica para la solución. con un componente visual. Tabla 1 - Relación de Objetivos Específicos y Resultados Esperados 1.4 Herramientas, métodos, metodologías y procedimientos El objetivo de la presente sección es identificar y describir las herramientas, métodos, metodologías y procedimientos que se emplearán para alcanzar los 3 objetivos específicos a través del desarrollo de cada uno de sus resultados esperados. En el anexo A se han incluido las herramientas utilizadas. La Tabla 2 muestra los resultados esperados con la correspondiente herramienta, método y/o procedimiento a ser usado. Resultado esperado Herramienta o Metodología a utilizarse Documento de Diseño de la Business Process Model and Notation (BPMN): arquitectura para la Notación aceptada como estándar para el modelado solución planteada. de procesos de negocio, permite visualizar el detalle de las actividades, actores y elementos que intervienen. StarUML 2: Plataforma para el desarrollo rápido y flexible para la construcción del modelamiento de un software. Modelo y Diccionario de MySQL Workbench: Sistema de administración de datos a utilizar para la base de datos que ofrece herramientas para el solución. modelado y trabajo con la base de datos. MySQL: Motor de manejo de base de datos del tipo modelo relacional. 4 Resultado esperado Herramienta o Metodología a utilizarse Capa de servicios Web OWASP: Herramienta que promueve el uso de Rest que permitan la buenas prácticas para la protección de la data. comunicación con la base de datos. JDeveloper: Entorno de desarrollo integrado para lenguaje java. Mecanismos de encriptación de la MySQL: Motor de manejo de base de datos del tipo información de la base de modelo relacional. datos y mecanismos de seguridad para el acceso a la información. Plataforma web que brinde NetBeans IDE: Entorno de desarrollo multilenguaje de una interfaz gráfica para para aplicaciones. la solución. Spring Framework: Marco de trabajo para aplicar temas de seguridad de información. Tabla 2 - Relación de Resultados Esperados y Herramientas a utilizar 1.5 Métodos y Procedimientos La metodología de desarrollo de producto a utilizar en la realización del proyecto serán técnicas de Extreme Programming (XP) debido a que provee prácticas eficientes para proyectos de corto plazo, con equipos de desarrollo pequeños y fomenta la continua realización de pruebas durante el desarrollo para cumplir con las necesidades establecidas[XP 2007], aplicadas a una adaptación de las fases de desarrollo de software de RUP (Rational Unified Process) en la cual se tendrán en cuenta solo algunos documentos [RUP 2003]. Las fases por desarrollar son iniciación, elaboración y construcción. Los documentos por desarrollar son: • Especificación de Casos de uso. • Modelo de Base de Datos. • Diccionario de Datos. • Interfaces de Usuario. 5 Mediante el uso de XP se espera presentar frecuentemente mejoras y avances dentro de la elaboración del software como parte del ciclo de vida del desarrollo del sistema. Se desarrollará en cada una de las fases: a) Iniciación: Modelar los procesos de negocio del ciclo de vida y uso de los vales. Definir los requisitos de data y lo flujos de información del sistema. b) Elaboración: Definición de la arquitectura a utilizar y generación de un proyecto base que sirva como punto de inicio. Análisis y diseño de los componentes de software a desarrollar. c) Construcción: Desarrollo de los componentes de software que forman parte del sistema. Realización de pruebas para validar el correcto funcionamiento del sistema. En lo que refiere a la gestión del proyecto, se está tomando las buenas prácticas fomentadas por la Guía de los Fundamentos Para la Dirección de Proyectos (PMBOK) [PMI 2000], el cuál proporciona conceptos relacionados a la dirección de proyectos. 1.6 Alcance Con la realización de este proyecto se propone obtener un sistema de información que sirva de ayuda a la gestión y al seguimiento (trazabilidad) de la emisión de vales en procesos de remuneración o bonificación a empleados en empresas peruanas de manera que no se generen pérdidas ni mal uso de recursos. De esta manera se contará con una mayor información sobre el ciclo de vida de los vales emitidos a los trabajadores y se podrá tener un mayor control sobre los vales. 6 Además, presenta un módulo con el cuál se generarán reportes para hacer uso de la data obtenida y poder generar información sobre el estado del proceso de emisión de vales. Las principales funcionalidades del sistema implementadas son: • Afiliación de clientes, proveedores y empresas. • Permitir que las empresas afiliadas a la plataforma establezcan convenios con distintos proveedores, de manera que puedan generar vales de consumo para los establecimientos de los proveedores y consumir sus productos. • Permitir que los proveedores asociados a la plataforma ofrezcan diversos productos, cada uno con un valor de adquisición, para que puedan ser consumido por los clientes de las empresas con las cuales hayan establecido convenios. • Permitir que las empresas afiliadas a la plataforma asocien clientes a su organización para poder emitirles vales de consumo, los cuales podrán ser utilizados en los proveedores designados al momento de generar el vale. • Permitir a los clientes afiliados a la plataforma que canjeen los vales que se les ha asignado por una o varias empresas en los establecimientos de los proveedores designados al momento de generar el vale. • Permitir a los clientes afiliados a la plataforma el poder visualizar valor en vales que posea, proveedores donde podrá hacer el canje y empresas que le han asignado dicho vale. • Generación de vales, los que contarán con identificadores únicos para evitar duplicados o no válidos. 7 • Registrar información detallada de la relación empleado-vale para el proceso de trazabilidad de los vales. • Obtener información del canje de los vales realizados en empresas del rubro de servicio alimenticio a través de una interfaz. • Análisis de la información obtenida y brindar apoyo a la toma de decisiones por parte de la alta gerencia en relación al proceso en conjunto. • Generación de reportes por empresas emisoras del vale, proveedores que brindan el servicio del canje y por usuario que hacen uso efectivo del vale; en base a información almacenada y obtención de indicadores que reforzarán la toma de decisiones y gestión de los procesos. 1.7 Limitaciones Se detectaron las siguientes limitaciones para el desarrollo del proyecto: ▪ Datos iniciales y de pruebas: los datos para poder realizar las pruebas y poder corroborar que el Proyecto funciona en su totalidad deberán ser generados con anticipación para que no existan problemas en la presentación final. ▪ Accesos al sistema y base de datos: el sistema estará alojado en un servidor en la nube y para poder acceder a él se tendrá que contar con los permisos o accesos a los puertos y dominios a utilizar desde los equipos con los que cuenta la universidad. 1.8 Riesgos En la Tabla 3 se listarán riesgos identificados asociados al desarrollo del proyecto, indicando que tanto impactarían en el proyecto y las medidas para poder mitigar estos riesgos en caso se vuelvan realidad. 8 1.9 Justificación El desarrollo del proyecto planteado se orienta a las empresas que emplean este tipo de beneficio bajo la Ley N° 28051 buscando mantener un personal más comprometido y motivado con su empleador. Además, se le otorga a la empresa la seguridad y el control necesario sobre el modelo de vales implantado en su empresa, de modo que, a diferencia de otros servicios existentes, permita personalizar el catálogo de productos ofrecidos a sus beneficiados, es decir no depender únicamente de un proveedor con un espectro de productos( por ejemplo alimentos), sino ofrecer varios proveedores con productos distintos y diversificados según las prioridades de los beneficiados(útiles escolares, prendas de vestir, etc.);por su parte, a los empleados se les brindará un servicio que aumentara su poder adquisitivo y mejorar su calidad de vida. Finalmente, se prevé que el proyecto se sostenga a largo plazo, represente un menor costo para la empresa y verifique el nivel de aceptación del catálogo ofrecido para aplicar mejoras. 1.10 Viabilidad Las herramientas elegidas para el desarrollo del proyecto están disponibles de manera gratuita en la Web o se cuenta con licencias brindadas por parte de la Universidad lo que significa que no habrá problemas con licenciamiento de software. Riesgo identificado Impacto en el Medidas correctivas para proyecto mitigar Las herramientas a integrar Medio Elegir herramientas ya antes resulten ser muy complejas utilizadas o que cuenten con en su uso. manuales de capacitación. Buscar personas expertas en el uso de estas herramientas para solucionar problemas que se presenten. Poca experiencia con las Medio Investigar sobre el uso de herramientas utilizadas en el herramientas o contactarse con proyecto. personas que tengan conocimientos previos en su uso. 9 Presentación de entregables Medio Tener por anticipado los fuera de fechas entregables antes de su fecha establecidas. límite para poder realizar las correcciones necesarias. Mala definición de los Alto Realizar constantes validaciones requerimientos. Error al con los usuarios finales y momento del análisis o expertos sobre el proyecto. desarrollo del sistema. Estimación de tiempos Medio Considerar el caso más crítico al erróneos para las momento de asignar duraciones actividades que conforman a las tareas o eventos que el proyecto. retrasen las entregas de las tareas. Persistencia de errores Alto Realizar exhaustivas pruebas de durante las iteraciones. control y seguimiento durante el desarrollo del proyecto. Actualización de versiones Medio Utilizar las versiones estables de las herramientas para evitar problemas al utilizadas momento de la integración. Tabla 3 - Riesgos identificados asociados al proyecto El tiempo estimado para el desarrollo del proyecto es de 10 meses, estimando en base a la duración del curso de Proyecto de Tesis 1 y 2. Además, existen documentos en la Web que apoyarán el aprendizaje sobre el uso de las herramientas a utilizarse, o son herramientas con las que ya se estaba familiarizado. 1.11 Estructura del Desarrollo del Proyecto En la Figura 1 se presenta el EDT del proyecto de curso. 10 Figura 1 - EDT del Proyecto 11 CAPÍTULO 2 - Conceptos En esta sección se presenta conceptos teóricos y legales con relación al Proyecto a desarrollar, así como ejemplos actuales de usos del modelo de vales en empresas actualmente en funcionamiento. 2.1 Marco conceptual Se abarcan conceptos utilizados en lo que refiere al entorno del proceso de emisión y canje de vales y de la forma en la que se afrontará la problemática definida. Esto permitirá un mayor entendimiento del documento, el contexto presentado y las terminologías utilizadas. 2.2 Conceptos Relacionados a la Problemática A continuación, se presentarán la definición de conceptos que se utilizarán en el documento, según la Real Academia Española [RAE 2014]: • Administrador: Entidad encargada del control del sistema para el registro de los usuarios. • Agente Autorizado: Agente de una cadena de comercialización con el cual existe un convenio para la venta del bien canjeable por el vale. • Beneficiario: Persona incluida en el padrón de Beneficiarios. • Distribuidora: Empresa concesionaria. • Entidad Financiera: Empresa integrante del sistema financiero nacional. • Código del Vale: Es un código aleatorio generado mensualmente por la empresa distribuidora impreso en cada vale emitido que se entrega al Beneficiario para que realice el canje. 12 • Padrón de Beneficiarios: Listado que incluye a las personas que serán beneficiadas con el uso de algún servicio en específico. • Terminal Electrónico: Dispositivo el cual permite efectuar transacciones de comercio electrónico a distancia entre el agente y la entidad financiera. Dentro de esta categoría pueden hallarse teléfonos inteligentes, terminales de punto de venta (P.O.S.), etc. entre otros. • Trazabilidad: Facultad de poder conocer el estado, ubicación o características de un elemento en tiempo real o al sufrir de cambios de estado. • Vale: Bono o tarjeta que sirve para adquirir comestibles u otros artículos. • Encriptación: Cifrar información con el fin de hacerla únicamente accesible a personas que cuente con una llave o código particular. 2.3 Marco legal Según la Ley 28051 [Ley28051 2003], se presenta a continuación las leyes y decretos de servicios actualmente en funcionamiento que hace uso del sistema de vales. Se describen de manera concisa las características • Sobre los vales Alimenticios: Régimen del decreto de ley N° 28051 el cual aprobó la Ley de Prestaciones Alimentarias en beneficio de trabajadores sujetos al régimen laboral de la actividad privada. Caracterizado por la aprobación de la ley mencionada con el fin de mejorar los ingresos de los trabajadores en la forma de adquisición de bienes alimenticios. Según el artículo 2, este servicio es brindado por el empleador de manera colectiva o puede darse en ocasiones individuales. Las maneras en que se brinda este servicio son 2: directa e indirecta. 13 ▪ Directa: Los beneficios de la adquisición alimenticia son brindados dentro de las instalaciones de la empresa, esto quiere decir que se brinda servicio de comedor por parte de la empresa o de un concesionario tercerizado. ▪ Indirecta: Los beneficios de la adquisición alimenticia son brindados mediante la entrega de cupones, vales o análogos para que se realice el canje respectivo por el valor del documento en establecimientos y tiendas afiliadas al convenio. Según el artículo 3, una particularidad de este tipo de prestación alimentaria se debe a que el valor asignado para consumo del empleador es del tipo de remuneración no computable, por lo tanto, no se tiene en consideración al momento de calcular los derechos o beneficios laborales o los aportes de Seguridad Social. Según el artículo 4, la empresa proveedora del servicio de alimentos requiere de la existencia de un convenio por escrito con el empleador para que se dé el servicio. Este artículo también menciona que, los documentos a utilizarse por los trabajadores para hacer uso del servicio alimenticio deberán estar expedidos a su nombre, no existirá transferencia de documento. En el artículo 5 se menciona la información que debe contener el vale expedido para ser considerado como válido: ▪ Valor del vale: monto por el cual será canjeado, el cual no excederá el 20% de la remuneración del trabajador según el criterio 9 de la ley. ▪ Razón social de la empresa que concede el beneficio. ▪ Información referente a la no transferencia del vale. ▪ Nombre del trabajador beneficiado. ▪ Fecha de vigencia del vale. Finalmente, en el artículo 12 se declara al Ministerio de Trabajo y Promoción del Empleo como entidad supervisora y fiscalizadora de las 14 empresas que otorgan estos servicios y será el Ministerio el que aplique las sanciones respectivas. Con el modelo de una empresa tercerizada para la emisión de vales, cabe la posibilidad de que el responsable de la empresa incurriera en la emisión de vales para su propio beneficio, pues al ser la contraparte externa a la empresa, no tiene manera de verificar la fiabilidad de la información recibida. Sin embargo, de ser la empresa quien emite sus propios vales, puede haber una mayor fiscalización en el control del presupuesto, lista de beneficiarios, mayor cercanía con estos en caso de dudas o quejas, etc.; haciendo el proceso mucho más transparente y menos costoso, dado que el proceso de emisión puede ser asumido por un trabajador ya existente, sin necesidad de ocupar el 100% de su tiempo. 2.4 Seguridad o encriptación del vale Los vales son documentos con un valor monetario, por eso es que deben contar con un mecanismo de seguridad el cual evite su falsificación. Debido a esto se propone que cuenten con identificadores que los hagan únicos y se tenga un registro de todos los vales que hayan sido emitidos. 2.5 Trazabilidad Para poder obtener conocimiento sobre el ciclo de vida de los vales se han implementado mecanismos que ayudan con la trazabilidad de los documentos. Se ha considerado mantener un registro de momentos claves a lo largo de todo el proceso. Un caso es al momento que una empresa genera vales, se registra la cantidad de vales que se están generando, la fecha de caducidad para hacer uso del vale y cuales son la empresa y proveedor involucrado de ese lote. También, al momento que los clientes van haciendo uso del valor del vale, se mantiene un registro del monto inicial del vale, el saldo restante y las fechas en que ha sido utilizado. 15 De esta manera se puede obtener información útil acerca del estado actual del vale, las empresas podrán medir que tan beneficioso es para sus empleados y los beneficios que estos prefieren obtener. Por el lado del proveedor, se registran en la plataforma web las ventas, productos vendidos y beneficiario quien realizó la compra, de esta manera todo queda registrado para poder acceder luego a esta información con fines de reporte y verificación de data. Por lado el cliente, la plataforma web también cuenta con una interfaz en donde se visualiza los saldos de sus vales asignados, y el detalle de las compras que ha realizado con dichos vales en cada establecimiento. Estas interfaces se encuentran detalladas en el Anexo E: Interfaces de Usuario. 16 CAPÍTULO 3 – Estado del Arte En la actualidad, se han presentado diversas formas de sistemas que soporten la utilización de vales y la administración de estos. Gran parte de estos son diversas patentes con diferentes peculiaridades que las diferencian de las demás. 3.1 Método usado en la revisión del estado del arte Para la revisión del estado del arte se ha consultado diversas fuentes de proyectos, plataformas o patentes tomando en cuenta como criterio de selección el que puedan abarcar o acercarse a lo deseado para la solución planteada. Se utilizaron documentos de fuentes secundarias las cuales consisten en libros, artículos web, patentes, entre otros, obtenidos a través de bibliotecas e Internet. Se encontraron diversas patentes con características similares a lo deseado por la solución, y también, empresas especializadas cuyo rubro es la emisión de vales con el fin de motivación de personal y de servicios alimenticios. 3.2 Electronic Coupon Tracking Patente en la que se maneja un sistema para poder controlar la vida de un cupón digital que ha sido entregado a algún usuario desde el momento de su emisión hasta el del canje final [Seth 2009]. El sistema mantendrá un historial de cada movimiento que haya realizado el cupón y en qué entidad ha sido canjeado su valor [Seth 2009]. Según lo leído, este sistema no soporta los temas relacionados a generación de cupones o temas de seguridad para evitar falsificación, solo el tema de mantener trazabilidad sobre el cupón. 17 3.3 Electronic Coupon System Patente de un sistema bastante completo el cual soporta desde la creación de cupones hasta el momento del canje, e incluye la facilidad de poder mantener un rastro del ciclo de vida del cupón [Antilla 2005]. Provee métodos para la generación de cupones, la verificación de que los códigos sean válidos y la distribución de ellos a los usuarios designados. Además, en la generación de cupones, permite elegir entre producción en grandes cantidades o cupones generados por demanda [Antilla 2005]. El mecanismo mediante el cual registra el ciclo de vida del cupón es mediante uso de bases de datos, utilizando parámetros del cupón y diferentes estados que se actualizan al momento que se haga uso del cupón donde sea que se encuentre [Antilla 2005]. Adicionalmente, durante el ciclo de vida soporta el cambio de dueño del cupón. 3.4 SODEXO La empresa SODEXO presenta, entre sus muchas alternativas de motivación de empleados, sistemas de manejo y emisión de vales de consumo alimenticio, tarjetas de regalo, útiles escolares y combustibles [Sodexo 2016]. Según la información que presentan en su web institucional, se enfocan en brindar servicios de beneficio, incentivo y reconocimiento de sus clientes como parte de una solución para mantener motivado al personal de su organización cliente. Su modo de operación es basado principalmente en los vales físicos de consumo, es decir papel con un valor monetario, por lo cual, por el lado del servicio al usuario, no manejan interfaces virtuales para la administración. Cada uno se hace cargo del vale. [Sodexo 2016]. Además, los vales son considerados como dinero real y mencionan que, en caso de pérdida del vale o robo, no existe manera de recuperar o emitir una copia del vale [Sodexo 2016]. 18 3.5 Promotick Promotick ofrece soluciones personalizadas para empresas, con el fin de motivar, recompensar y atraer a sus clientes. [Promotick 2018] Basándose en la información brindada en su portal institucional, el enfoque de Promotick es asesorar a empresas de servicio en el diseño de un programa de recompensas específicas para cada tipo de cliente de las diferentes compañías que soliciten de sus servicios. De esta manera busca premiar a los clientes de las compañías, agrupándolos por distintos tipos de necesidades y fidelizándolos como clientes a largo plazo de la compañía que contrató la consultoría. Opera con recompensas virtuales y físicas, variando desde programas de motivación y reconocimiento, productos consumibles, aparatos electrónicos o hasta descuentos en diversos productos. Actualmente su portal web exhibe la posibilidad de una futura funcionalidad web, pero por el momento algunas de sus funcionalidades se encuentran incompletas. [Promotick 2018] 3.6 Tebca y Provis Alimentación Transferencia Electrónica de Beneficios S.A.C. (Tebca) es una empresa especializada en lo que refiere administración comercial, operativa y financiera de sistemas de vales, cupones o documentos análogos para prestaciones alimentarias. Este servicio es orientado a trabajadores sujetos al régimen laboral de la actividad privada [Tebca 2016]. Se caracterizan por brindar el producto Provis Alimentación, el cual consiste en una tarjeta recargable utilizada para realizar el pago por prestaciones alimentarias. Cuenta con un portal en el cual los usuarios pueden verificar sus saldos de las tarjetas y los consumos a manera de salidas de dinero, como un estado bancario. [Tebca 2016] 19 Cada tarjeta está vinculada a un documento nacional de identidad (DNI) correspondiente al trabajador que recibe el beneficio. La tarjeta puede ser usada en cualquiera de los proveedores afiliados a Tebca, y el saldo de las tarjetas puede ser consultado en su web y además es impreso al final del documento de pago de cada compra [Tebca 2016]. 3.7 Edenred Edenred es una empresa francesa líder mundial en el mercado de tarjetas de servicios prepagos para empresas. Se encargan de concebir y gestionar soluciones que mejoren la eficacia de las organizaciones y el poder adquisitivo de las personas [Edenred 2016]. Su producto característico es el Ticket Alimentación, el cual es una tarjeta Visa o MasterCard con la cual se pueden adquirir alimentos crudos o preparados en los comercios afiliados a Edenred. Cuentan además con un portal virtual donde los usuarios pueden hacer consultas del saldo de sus tarjetas y los consumos a manera de salidas de dinero, como un estado bancario [Edenred 2016]. Está orientado en facilitar la vida de los empleados, mejorando el poder adquisitivo en lo que refiere a alimentos. Al momento de generar la tarjeta, esta se vincula con el documento nacional de identidad del empleado; pero, no requiere de ningún documento que valide la identidad del comprador al momento de realizar los pagos, solo basta con colocar la clave. En caso de pérdidas o robos puede llamarse a la central de Edenred y solicitar un bloqueo y copia de tarjeta nueva [Edenred 2016]. 3.8 Conclusiones sobre el estado del arte Considerando lo expuesto anteriormente, existen muchas soluciones relacionadas al hecho de manejo de un sistema para vales, la gran mayoría en idioma extranjero, pero solo están enfocadas a mantener un orden en lo que refiere la generación de los vales o poder mantener un rastreo de ellos. 20 Entre las distintas soluciones presentadas, se observa que comparten funciones básicas, siendo detalles específicos los que las diferencian una de otras. Por ejemplo: o Un factor común de los que no utilizan tarjetas tipo débito es el problema de pérdidas, vueltos y robos de los vales. o Además, todos están orientados a utilizar la gran bolsa de proveedores que cada organización posee, lo cual no permite el personalizar o diferenciar los tipos de bienes que podrán ser canjeados. La solución planteada permite a las empresas poder elegir que proveedores desea que brinden servicios a sus clientes, personalizando el valor adquisitivo de cada vale. o Al permitir que distintos proveedores se inscriban en la plataforma, no solo las cadenas de supermercados, se abren las puertas de un nuevo canal de venta que antes no era considerado por dichos proveedores, con lo cual se amplía su potencial de mercado. Por ley de oferta y demanda, al haber una mayor cantidad de proveedores, surgirán nuevas y mejores oportunidades en precios, calidad y variedad de productos ofrecidos. o Una de las empresas analizadas maneja sus vales de forma física, haciendo imposible la idea de dividir el vale o hacer gastos parciales. Al tratarse de vales digitales, podrán hacerse usos parciales de los saldos de los vales, no teniendo que desperdiciar nada de estos. Estas observaciones son la diferencia que ofrece la solución planteada respecto a las soluciones existentes en el mercado. Soluciones Existentes Enfoque Solución Planteada Electronic Coupon Enfocado a trazabilidad Afiliar clientes, Tracking (Patente) del cupón. No se proveedores y empresas. mencionan proveedores. Permitir la administración y selección de los proveedores de servicios para el canje del vale. 21 Electronic Coupon Permite generación de Mantener un registro System (Patente) cupones, rastreo y detallado del uso de los asignación a usuarios. vales. No se mencionan proveedores. SODEXO Distribución de vales Proveer vales digitales físicos de consumo, pero los cuales pueden ser no mantiene un rastreo consumidos parcial o de estos. Proveedores totalmente a manera de preestablecidos. un monedero virtual. Tebca y Provis Distribución de tarjeta de Analizar la información Alimentación consumo física obtenida y además recargable, cuentan con brindar apoyo a la toma un portal para consultas de decisiones de las del saldo a manera de empresas en relación con estado de cuentas. el proceso en conjunto. Proveedores Generar reportes por preestablecidos. empresa, proveedor y usuario. Promotick Ofrece la asesoría para Se ofrece una plataforma la implementación de ya existente, la cual no sistemas de requerirá desarrollo por recompensas y parte del cliente y podrá fidelización, los cuales ser personalizada por un serán desarrollados por empleado de la empresa la empresa que contrata que contrata el servicio. el servicio Edenred Distribución de tarjeta Permitir el pertenecer física recargable, cuentan amas de una empresa con un portal para para la adquisición del consultas del saldo. vale. Proveedores preestablecidos. Tabla 4 - Comparación del Estado del Arte 22 CAPÍTULO 4 – Análisis del Proyecto En este capítulo se presenta el análisis de los elementos que conforman el proyecto, de manera que se definan los participantes y lo que se requiere del producto cuando este conformada la solución. 4.1 Actores del Sistema A continuación, se procede a explicar y clasificar a los usuarios que harán uso de la solución. Cada uno poseerá privilegios distintivos a su función e interacción con los demás: Figura 2 - Diagrama de Actores del Sistema 1.1. Persona: Todo usuario que haga uso del sistema. Se almacenan sus credenciales para identificación. 1.2. Empresa: Tipo de usuario perteneciente a una empresa que de uso de los vales a sus usuarios (o clientes). Encargados de entablar las relaciones con los proveedores, y brindar de vales a las personas designadas. 1.3. Proveedor: Tipo de usuario perteneciente a una entidad proveedora de consumibles donde se realiza el canje del vale. Encargados de hacer el intercambio del monto de los vales por productos. 1.4. Usuario: Tipo de usuario acreedor al vale, el cual lo recibe por parte de la empresa y lo canjea con los proveedores. 23 1.5. Administrador: Tipo de usuario encargado de las configuraciones de la solución. No pertenece a ninguno de los otros grupos. 1.6. Tiempo: Factor no humano encargado de la actualización de estados de los elementos que participen en la solución. 4.2 Requisitos Luego de haber identificado a los actores, se procede a definir los requisitos funcionales y no funcionales de la solución. Se agruparon los requisitos en base a los actores del sistema, para luego estos conformen paquetes y mantener un mejor orden. Código Descripción Empresas FUNC-001 El sistema permitirá modificar y administrar la información de la empresa. FUNC-002 El sistema permitirá registrar, modificar y administrar la generación e información inicial de vales. FUNC-003 El sistema permitirá registrar, modificar y administrar a los usuarios que pertenecen a una empresa. FUNC-004 El sistema permitirá registrar, modificar y administrar convenios con los proveedores. FUNC-005 El sistema permitirá registrar, modificar y administrar la distribución los vales de consumo a los beneficiarios. FUNC-006 El sistema permitirá registrar fechas de caducidad a los vales. FUNC-007 El sistema permitirá asignar los vales a los usuarios. FUNC-008 El sistema permitirá visualizar los vales asignados a cada usuario por empresa. Código Descripción FUNC-009 El sistema permitirá visualizar los proveedores con los que la empresa ha tenido un vínculo. FUNC-010 El sistema permitirá la búsqueda de usuarios. FUNC-011 El sistema permitirá la búsqueda de proveedores. Proveedores FUNC-012 El sistema permitirá modificar y administrar la información del proveedor. 24 FUNC-013 El sistema permitirá registrar, modificar y administrar la información de los insumos que ofrece cada proveedor. FUNC-014 El sistema permitirá registrar, modificar y administrar convenios con las empresas. FUNC-015 El sistema permitirá visualizar los insumos que han sido intercambiados por vales. FUNC-016 El sistema permitirá visualizar las empresas con las que el proveedor ha mantenido tratados o acuerdos. Usuario FUNC-017 El sistema permitirá modificar y administrar la información del usuario. FUNC-018 El sistema permitirá registrar y administrar la información sobre el consumo de los vales. FUNC-019 El sistema permitirá realizar el canje de los vales por insumos de proveedores permitidos. FUNC-020 El sistema permitirá visualizar las empresas con las que el usuario ha tenido algún vínculo. FUNC-021 El sistema permitirá visualizar los montos utilizados de los vales que han sido asignados al usuario. Administrador FUNC-022 El sistema permitirá registrar, modificar y administrar empresas. FUNC-023 El sistema permitirá registrar, modificar y administrar proveedores. FUNC-024 El sistema permitirá registrar, modificar y administrar usuario. Código Descripción FUNC-025 El sistema permitirá asignar credenciales de acceso a los usuarios. FUNC-026 El sistema permitirá asignar el estado a los vales. Activos, Inactivos o Agotados. FUNC-027 El sistema permitirá asignar roles a los usuarios. FUNC-028 El sistema registrará la fecha y hora de las acciones realizadas por los usuarios. FUNC-029 El sistema permitirá que una empresa pueda entablar vínculo con más de un proveedor. FUNC-030 El sistema permitirá que cada vale este asignado a solo un proveedor. FUNC-031 El sistema permitirá que un usuario pueda pertenecer a más de una empresa. 25 FUNC-032 El sistema permitirá que se pueda utilizar vales en conjunto por el total de su valor al momento de intercambiarlo por insumos. FUNC-033 El sistema permitirá que los vales cuenten con fecha de expiración de su uso. FUNC-034 El sistema permitirá que solo se utilicen vales de empresas activas. FUNC-035 El sistema permitirá el canje de los vales en proveedores activos asociados con la empresa que expendió el vale. No Funcionales NFUNC-036 El sistema debe funcionar en navegadores Web. NFUNC-037 El sistema encriptará las contraseñas de los usuarios. NFUNC-038 El sistema se desarrollará utilizando patrones y estándares de programación los que permitirán escalabilidad y mantenimiento. NFUNC-039 El sistema debe mostrar mensajes informativos a manera de tooltips que ayuden en la experiencia de usuario. NFUNC-040 El sistema será desarrollado utilizando el lenguaje de programación Java. Tabla 5 - Requisitos Funcionales y No Funcionales 4.3 Paquetes del Sistema Una vez definidos los requisitos, se procede a definir los casos de uso del sistema. Estos han sido agrupados en paquetes que agruparan al caso de uso según las tareas relacionadas entre sí como se muestran en la Figura 3. Figura 3 - Paquetes del Sistema 26 4.3.1 Paquete administración: Engloba a los casos de uso que se enfoquen en la administración del sistema, en el registro de actores y en gestión de los vales. 4.3.2 Paquete Seguridad: Engloba a los casos de uso referentes al uso de credenciales y autenticación con el sistema y base de datos. 4.3.3 Paquete Empresas: Engloba a los casos de uso que se encarguen de la administración de la empresa por parte de los actores de la empresa. 4.3.4 Paquete Proveedores: Engloba a los casos de uso que se encarguen de la administración de los proveedores y los insumos que ofrecen. 4.3.5 Paquete Usuarios: Engloba a los casos de uso que se encarguen de la administración de los usuarios que harán uso de los vales, adquisición y canje de estos. 4.4 Casos de Uso Ya definidos los paquetes, se procede con los casos de uso que contendrán cada uno. Los casos de uso son una referencia de las acciones que podrá realizar cada uno de los actores del sistema basándose en el rol que se les ha sido asignado. Los siguientes casos de uso se encuentran explicados a mayor detalle en el Anexo B. 4.4.1 Paquete Administración: En la Figura 4 se muestra el paquete de casos de uso relacionados con el administrador del sistema. 4.4.1.1 Administrar Empresas: Comprende las funcionalidades de creación, modificación o deshabilitar empresas que van a participar de la solución. 27 4.4.1.2 Administrar Proveedores: Comprende las funcionalidades de creación, modificación o deshabilitar proveedores que van a participar de la solución. 4.4.1.3 Administrar Usuarios: Comprende las funcionalidades de creación, modificación o deshabilitar usuarios que van a participar de la solución. 4.4.1.4 Administrar Caducidad: Comprende las funcionalidades de modificación y deshabilitar vales que ya no se encuentren en su periodo de activo. 4.4.2 Paquete Empresas: En la Figura 5 se muestra el paquete de casos de uso relacionados con las empresas del sistema. Figura 4 - Paquete Administración 28 4.4.2.1 Administrar Usuarios: Comprende las funcionalidades de asignación o deshabilitar usuarios que van a participar con la empresa. 4.4.2.2 Administrar Vales: Comprende las funcionalidades de creación, modificación o deshabilitar de vales de la empresa. 4.4.2.3 Asignar Vales: Comprende las funcionalidades de asignación o deshabilitar vales de los usuarios que van a participar con la empresa. 4.4.2.4 Administrar Proveedores: Comprende las funcionalidades de asignación o deshabilitar proveedores que van a participar con la empresa. 4.4.2.5 Ver Reportes: Comprende las funcionalidades de visualizar reportes con respecto a los vales, proveedores y usuarios que participan con la empresa. Figura 5 - Paquete Empresas 4.4.3 Paquete Proveedores: En la Figura 6 se muestra el paquete de casos de uso relacionados con los proveedores del sistema. 29 Figura 6 - Paquete Proveedores 4.4.3.1 Administrar Insumos: Comprende las funcionalidades de creación, modificación o deshabilitar insumos que ofrecerá el proveedor para hacer canje de los vales. 4.4.3.2 Administrar Convenios: Comprende las funcionalidades de modificación o deshabilitar tratados acordados con la empresa que mantiene un vínculo. 4.4.3.3 Canjear Vales: Comprende las funcionalidades de creación, modificación o deshabilitar el registro del canje de los vales por parte de los usuarios. 4.4.3.4 Ver Reportes: Comprende las funcionalidades de visualizar reportes con respecto a los vales, empresas y usuarios que participan con el proveedor. 4.4.4 Paquete Usuarios: En la Figura 7 se muestra el paquete de casos de uso relacionados con los usuarios del sistema. 30 Figura 7 - Paquete Usuarios 4.4.4.1 Canjear Vales: Comprende las funcionalidades de registrar la acción del canje de los vales por parte del usuario. 4.4.4.2 Ver Reportes: Comprende las funcionalidades de visualizar reportes con respecto a los vales, empresas y proveedores que participan con el usuario. 4.5 Arquitectura de la solución La solución planteada se desarrolla en una plataforma web según lo acordado en la sección de requisitos. Se elige desarrollar la solución como una plataforma web debido a que se plantea un Software como Servicio (SaaS), de esta manera los actores participantes podrán interactuar con la plataforma manteniendo una transparencia en referencia a los servicios y consultas que cada actor podrá acceder. Los servicios expuestos solo podrán ser utilizados por la entidad correspondiente, de manera que no realicen cambios que no les correspondan. En la Figura 8 se muestra un diagrama de la arquitectura planteada: 31 Figura 8 - Diagrama de Arquitectura de la Solución Para la plataforma se utiliza el patrón de software Modelo-Vista-Controlador(MVC). El modelo refleja la información que la plataforma utilizará, permitiendo el interactuar con los elementos de la base de datos los cuáles se abarcarán en el capítulo siguiente. La vista es la encargada de toda la interfaz que se le presenta a los actores para que puedan interactuar con el sistema. Finalmente, el controlador maneja los eventos generados por los actores y responder de manera correcta a ellos dependiendo del acceso que cada actor posea afectando a su vez al modelo y a las vistas [Sommerville 2011]. 32 CAPÍTULO 5 – Diseño y Desarrollo En este capítulo se presentan detalles relacionados al desarrollo del proyecto de la plataforma web. Se menciona las herramientas utilizadas, consideraciones y puntos claves tomados en cuenta a lo largo del desarrollo y el proceso de la construcción de la solución. 5.1 Herramientas para la Construcción Para el modelo y controlador de la plataforma se utiliza el lenguaje de programación Java, esto se menciona en los requisitos no funcionales de la solución y además se tiene conocimiento y ha sido utilizado con anterioridad para otros proyectos. Para facilitar la conexión con la base de datos se utiliza el marco de trabajo(framework) Spring, el cual ayuda a esta tarea y brinda herramientas que facilitan la implementación y, además, se encarga de la persistencia de datos con la base de datos. Para las vistas, en conjunto con elementos en java se utiliza el lenguaje HTML ya que la plataforma será presentada en un ambiente Web, Javascript y la librería JQuery con los cuales se da forma a las interfaces de usuario y permite procesar la información ingresada por los actores. 5.2 Servidor de la plataforma Para alojar la plataforma web se utiliza un servidor Apache Tomcat. Es un servidor de código abierto el cual se adecua a implementaciones con lenguaje Java. (Apache Tomcat 2016). 5.3 Capa de Servicios Para el desarrollo de las funcionalidades y la comunicación con la base de datos se desarrolló una capa de servicios rest. Los servicios rest pueden ser del tipo GET o POST, cada uno definido mediante una dirección url dentro del sistema como se aprecia en la Figura 9. 33 Figura 9 - Servicios Rest Al estar encapsulados en pequeñas urls, permite el fácil mantenimiento de estas. A su vez dentro de cada servicio rest se encuentran las llamadas a las operaciones con el servidor de base de datos como se aprecia en la Figura 10. Al generar estos encapsulamientos, se aligera mucho la tarea de próximos mantenimientos o escalabilidad de productos, ya que permite que se modifiquen nodos internos sin alterar las comunicaciones o funcionalidades con los componentes externos a los servicios. 34 Figura 10 - Servicios de Base de Datos 5.4 Modelo de Base de Datos Se utiliza como motor de base de datos a MySQL dado que, al no tener costo de uso, no presenta obstáculo alguno para la implementación del proyecto. En el Anexo C y D se muestra información más detallada sobre la base de datos utilizada. A continuación, en la Figura 11, se presenta el modelo utilizado: 35 Figura 11 - Modelo de Base de Datos 36 5.5 Protección de Información Con la aparición de la ley N° 29733 – Ley de protección de datos personales y según como indica se debe de garantizar la protección a los datos personales de toda persona natural que lo identifiquen [Ley29733 2011]. Debido a esto, el proyecto considera este punto de manera que, al momento de hacer uso de servicios u operaciones, se evite el envío no cifrado de la información o identificadores de las personas, de manera que no se pueda acceder a este tipo de información de formas que no sean las estrictamente fijadas por los flujos de la plataforma. Además, se toma en cuenta las buenas prácticas que se utilizan en el Proyecto abierto de seguridad de aplicaciones web (OWASP), el cual consiste en un proyecto de código abierto que ayuda a determinar y combatir las causas de que un software sea inseguro (OWASP 2016). Estas prácticas protegen al proyecto de manera que no pueda accederse a la información almacenada en la base de datos mediante el uso de inyecciones de consultas(queries) en las áreas de cuadros de texto o búsquedas en la aplicación. Otro punto a proteger es la acción de realizar una compra o emplear los vales del usuario. Para esto se maneja una pequeña clave o token, la cual solo será útil por una sola compra o por tiempo limitado en caso de que no sea utilizada. Solo podrá ser generada por el usuario cliente mediante sus funcionalidades del sistema y será solicitada por el proveedor al momento de realizar la venta. De esta forma se protege la información que se contenga en la base de datos de accesos de personas externas e internas a los actores que harán uso de la plataforma. 5.6 Entornos de Desarrollo Se elige NetbeansIDE como entorno de desarrollo de la plataforma ya que permite un fácil desarrollo de aplicaciones web basadas en lenguaje JAVA, es gratuito, de código abierto y cuenta con una comunidad de usuarios de nivel mundial (Netbeans 2016). 37 Además, cuenta con integración con servidores de aplicaciones Apache Tomcat, lo que permite una fácil integración de estas herramientas. Para la administración de la base de datos, se elige MySQL Workbench la cual se caracteriza por ser una herramienta visual que unifica herramientas para arquitectura, desarrollo y administración de bases de datos MySQL (MySQL 2016). 5.7 Desarrollo de la Solución La solución se divide en 4 grandes módulos, de acuerdo a los actores mencionados en capítulos pasados, los cuales son conformados por: 5.7.1 Módulo de Empresas: Este módulo permite a las empresas inscritas en la plataforma poder crear convenios con uno o más proveedores, de esta manera podrán emitir vales para hacer uso en sus locales para obtener bienes de consumo. Además, como se mencionó, permite la generación de vales de consumo, y, el poder asociar o desasociar usuarios a los cuales se les hará entrega de estos vales. 5.7.2 Módulo Proveedores: Este módulo permite a los proveedores inscritos en la plataforma poder administrar las solicitudes de convenios que las empresas les envían, de esta manera les brindan a los usuarios de las empresas la posibilidad de hacer uso de sus vales y canjearlos por bienes de consumo. Además, permite el registro de los vales y poder almacenar como se está haciendo uso de estos. 5.7.3 Módulo Usuarios: Este módulo permite a los usuarios inscritos en la plataforma y que pertenezcan o estén asociados a una o más empresas el poder visualizar el valor actual en vales que poseen y los proveedores en los cuáles pueden hacer efectivo su canje. Además de poder ver su historial de vales, la vigencia de los que posee y qué empresas les ha asignado estos vales. 38 5.7.4 Módulo Administrador: Este módulo permite al administrador de la plataforma el poder registrar y administrar la información de los participantes de la plataforma. Además, controlar el correcto funcionamiento de la plataforma y protección de la información que se maneja. 5.8 Interfaz Gráfica En los anexos E y F se presenta más detalle sobre lo referente a interfaces del sistema. A continuación, se presentan las ventanas iniciales para los usuarios. La primera ventana que se observa en el sistema es un cuadro de inicio de sesión como en la Figura 12 y la Figura 13, donde se solicitan el usuario, contraseña y rubro al que pertenece el usuario. Además, se ha añadido un componente de código de verificación para evitar lo referido a ataques de fuerza bruta al formulario inicial del sistema. Este mecanismo es parte de los elementos de seguridad mencionados anteriormente. Figura 12 - Inicio de Sesión 39 Figura 13 - Inicio de Sesión Una vez ingresado al sistema, y dependiendo del tipo de usuario que ha ingresado, se mostrarán diferentes ventanas con las opciones disponibles para cada uno. A continuación, en la Figura 14, Figura 15 y Figura 16 se muestran los menús principales del sistema. Figura 14 - Menú Tipo Empresas 40 Figura 15 - Menú Tipo Proveedores Figura 16 - Menú Tipo Clientes Cada menú le permite al usuario realizar acciones acordes a sus privilegios dentro del sistema, funciones ya mencionadas en capítulos anteriores. Se sigue un diseño de una cabecera con información sobre el usuario autenticado y la organización que pertenece o código de usuario cliente; y un área de agrupaciones de botones que dirigen a las ventanas con los formularios para realizar las distintas acciones u operaciones. A manera de ejemplo, un flujo básico de toda la plataforma se explica de la siguiente forma. Las empresas definen convenios con diferentes proveedores para poder generar vales a su nombre, como se ve en la Figura 17. 41 Figura 17 - Convenio de Empresas con Proveedores Los proveedores Aceptan o rechazan las solicitudes de las empresas, mostrado en la Figura 18, de manera que ofrecerán sus servicios solo a los que ellos acepten. Una vez establecidos los convenios, según la Figura 19 las empresas generan los vales para sus clientes definiendo a que proveedor podrán acercarse a ejercer su beneficio. Los proveedores podrán generar ventas desde el sistema, como en la Figura 20, y hacer referencia al cliente mediante su DNI y token de compra. Figura 18 - Convenios de Proveedores con Empresas 42 Figura 19 - Generación Vales de Empresas Los clientes generan un token cada vez que deseen realizar una compra mediante la plataforma según la Figura 21. Al tratarse de una plataforma web, esta acción podrá realizarse desde cualquier dispositivo que cuente con una conexión a internet, y no estará limitada por una bolsa de mensajes de un proveedor de mensajería ni saldo del cliente, haciéndola una alternativa mucho más ágil y económica. Figura 20 - Generación de Venta por parte del Proveedor 43 Figura 21 - Generación Token de compra de Cliente 5.9 Pruebas Para comprobar el correcto funcionamiento del sistema, se ejecutaron dos tipos de prueba a los módulos definidos en capítulos anteriores. En el Anexo G se presentan las pruebas y los resultados obtenidos. 5.9.1 Pruebas Unitarias: Se evalúa el correcto funcionamiento de los módulos que presenten información de manera aislada e independiente de los demás módulos. Se considera los casos de visualización de información, ya que no hay una interacción en tiempo real con algún otro modulo en particular. 5.9.2 Pruebas integrales: Se evalúa el correcto funcionamiento de la comunicación entre módulos y los flujos de información que existen entre ellos. Esto permite que se verifique el correcto flujo de la información entre módulos basándose en las funcionalidades establecidas a lo que refiere en requerimientos y funcionalidades esperadas por el proyecto. 44 CAPÍTULO 6 – Observaciones, Conclusiones y Recomendaciones En este capítulo se abarcan las lecciones aprendidas luego de haber realizado el presente proyecto, observaciones que aparecieron a lo largo del desarrollo y recomendaciones para trabajos futuros que compartan una temática similar a la presentada. 6.1 Observaciones A lo largo del desarrollo del proyecto pudieron apreciarse las siguientes observaciones a modo de experiencias que es mejor evitar: • El planteamiento inicial de la plataforma debe ser evaluado y definido en la fase inicial del proyecto, de manera que se pueda evitar modificaciones a la mitad del desarrollo las cuáles retrasen la entrega o aumenten la complejidad de lo que se esperaba inicialmente. • El proyecto actual está alojado en un servidor gratuito para aplicaciones web, pero si desease escalarse para un mayor volumen, el servidor deberá ser mejorado a uno ya de pago y con monitoreo remoto. • La plataforma fue desarrollada para que funcione de manera correcta en navegadores web de equipos de escritorio, pero podrían aparecer algunos errores de diseño o tamaños al momento de utilizarse desde navegadores móviles como tabletas y teléfonos ya que no existe una herramienta dedicada únicamente para el desarrollo en ellos. Los navegadores ofrecen herramientas para escalar el tamaño de la ventana al similar de un teléfono, pero solo se trata de una simulación. 6.2 Conclusiones Luego de haber realizado el presente proyecto, se lograron cumplir con los objetivos fijados para el desarrollo de un sistema y se obtuvieron las siguientes conclusiones: • Para el objetivo específico 1, se logró diseñar la arquitectura definida para la realización del software, cumpliendo con los requisitos necesarios para su funcionamiento haciendo uso de herramientas sin costo. La buena definición de los componentes y de cómo estarían agrupados por cada componente y capa de servicios. Todo esto fue fundamental ya que proporciono una buena base inicial para el desarrollo de lo que conlleva el proyecto en sí. 45 • Para el objetivo específico 2, al momento de diseñar la base de datos, se tuvo en consideración que, al momento de hacer las consultas, estas no tengan un nivel muy alto de complejidad, para esto se agregaron tablas cruzadas las cuales simplifican la labor de recolectar información. Además de esto, al momento de realizar las consultas con información enviada desde la interfaz, se procede a realizar una verificación de que los parámetros recibidos sean los deseados y no, en el caso mencionado en la sección de seguridad, inyecciones de código las cuales puedan vulnerar la base de datos. • Para el objetivo específico 3, se logró diseñar una capa der servicios rest que permiten la comunicación de la plataforma web con la base de datos y además permite que los diferentes módulos compartan información e interactúen entre sí. Estos servicios son el puente de comunicaciones entre la información ingresada en la interfaz gráfica y la base de datos, además que soportan la lógica de la solución. • Para el objetivo específico 4, se logró implementar la plataforma web funcional, la cual brinda de manera gráfica las funciones definidas y esperadas por el sistema. • Para el objetivo específico 5, cada uno de estos logros resultó en la finalización del proyecto deseado, pasando por cada una de las etapas del desarrollo de un sistema y documentando hitos importantes en el desarrollo. • El proyecto desarrollado logra reducir los costos del sistema de recompensas usual, debido a que una vez implementado este, el proceso puede ser llevado a cabo periódicamente por un trabajador que ya se encuentre en la nómina de la empresa, dado que no requiere el 100% de su horario laboral. Asimismo, permite mayor control y fiscalización de los gastos incurridos por parte de la empresa. Al no ser tercerizado, el proceso es mucho más transparente y la información accesible tanto para el empleador como para los beneficiarios. 46 6.3 Recomendaciones Como recomendaciones para trabajos futuros o de temas similares al abarcado, se tiene lo siguiente: • Servicios web Rest no son la única solución existente, existen también servicios de Protocolo de Acceso a Objetos Simples (SOAP) que pueden ser utilizados de una manera similar. Esto debe definirse de acuerdo a la experiencia del desarrollador y el conocimiento o familiarización con las herramientas y tecnologías. Se escogió servicios REST debido a la rápida implementación de estos y que se puede enviar información en diferentes formatos, el caso usado JSON o cadenas de texto; en cambio, los servicios SOAP se comportan como una aplicación de escritorio, la cual debe compilarse nuevamente cada vez que se realice un cambio solo maneja XML para el envío de información [SOAP 2001]. • Las funcionalidades especificadas en este documento no son las únicas existentes, se abarcaron solo un grupo en base a las funcionalidades deseadas para la solución, pero, puede ampliarse como también reducirse el alcance para soluciones personalizadas. • Se sugiere como mejoras a trabajos futuros el poder contar con servidores dedicados para el almacenamiento de archivos, donde podrían registrarse de manera visual un vale físico o tarjetas como corresponda. 47 Referencias bibliográficas [RAE 2014] Real Academia Española. (2014). Diccionario de la lengua española (23.a ed.). Madrid, España: Autor. [RUP 2003] The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP: A Practitioner's Guide to the RUP 2003 Philippe Kruchten, Per Kroll – “Addison-Wesley Professional” [XP 2007] The Art of Agile Development 2007 James Shore, Chromatic – “O'Reilly Media” [UML 2014] Unified Modeling Language™ (UML®) - Resource Page http://www.uml.org/ [Consulta Mayo 2014] [SOAP 2001] Programming Web Services with SOAP 2001 James Snell, Doug Tidwell, Pavel Kulchenko - "O'Reilly Media, Inc." [Beck 2000] 48 Beck, K. 2000 Extreme programming eXplained : embrace change. [Jaspersoft Community 2016] JasperReports Library http://community.jaspersoft.com/ [Consulta Abril 2016] [OWASP 2016] OWASP https://www.owasp.org/index.php/Main_Page [Consulta Abril 2016] [Netbeans 2016] Netbeans IDE https://netbeans.org/ [Consulta Abril 2016] [Spring Framework 2016] Pivotal Software http://spring.io/ [Consulta Abril 2016] [Apache 2016] The Apache Software Foundation http://tomcat.apache.org/ [Consulta Abril 2016] 49 [BPMN 2016] BPMN Specification - Business Process Model and Notation http://www.bpmn.org/ [Consulta Mayo 2014] [MySQL 2016] MySQL Workbench https://www.mysql.com/products/workbench/ [Consulta Abril 2016] [Tebca 2016] Transferencia Electrónica de Beneficios S.A.C http://provis.com.pe/ [Consulta Abril 2016] [Edenred 2016] Edenred http://www.edenred.com.pe/index.html [Consulta Abril 2016] [Promotick 2018] Promotick https://www.promotick.com/ [Consulta Febrero 2018] [Cencosud 2018] Cencosud https://www.cencosud.com/ [Consulta Febrero 2018] 50 [Sodexo 2016] Sodexo Soluciones de Motivación http://www.sodexomotivacion.info/index.php [Consulta Abril 2016] [ORACLE 2014] Oracle SQL Developer http://www.oracle.com/technetwork/developer-tools/sql- developer/overview/index.html [Consulta Mayo 2014] [PMI 2000] PROJECT MANAGEMENT INSTITUTE. 2000 Edition, Pennsylvania-USA 2000 A Guide to the Project Management Body of Knowledge – PMBOK® Guide [Criptografia 1998] José Pastor Franco, Miguel Ángel Sarasa López, José Luis Salazar Riaño 1998. Criptografía digital: fundamentos y aplicaciones. [Ley28051 2003] CONGRESO DE LA REPÚBLICA DEL PERÚ 2003 Ley 28051. Prestaciones alimentarias en beneficio de los trabajadores sujetos al régimen laboral de la actividad privada. 51 [Ley29733 2011] CONGRESO DE LA REPÚBLICA DEL PERÚ 2011 Ley 29733. Ley de protección de datos personales. [Arabshahi 2010] ARABSHAHI, A. 2010 Undressing Groupon: An Analysis of the Groupon Business Model. [Obrien 2006] O'BRIEN, J. A., & MARAKAS, G. M. 2006 Sistemas de Información Gerencial. México: McGraw-Hill. [Antilla 2005] ANTTILA, A., et al. 2005 Electronic coupon system, Google Patents. [Seth 2009] SETH, D., et al. 2009 Electronic Coupon Tracking, Google Patents. [Simons 2001] SIMONS, P. J., et al. 2001 System and method for analyzing coupon redemption data, Google Patents. 52 [Sommerville 2011] SOMMERVILLE, Ian 2011 Software engineering. 9a edición. 53