• No se han encontrado resultados

Implementación de una aplicación web para realizar la gestión de procesos administrativos, inventario y servicios de la empresa Intelserv

N/A
N/A
Protected

Academic year: 2020

Share "Implementación de una aplicación web para realizar la gestión de procesos administrativos, inventario y servicios de la empresa Intelserv"

Copied!
163
0
0

Texto completo

(1)ESCUELA POLITÉCNICA NACIONAL ESCUELA DE FORMACIÓN DE TECNÓLOGOS. IMPLEMENTACIÓN DE UNA APLICACIÓN WEB PARA REALIZAR LA GESTIÓN DE PROCESOS ADMINISTRATIVOS, INVENTARIO Y SERVICIOS DE LA EMPRESA INTELSERV. PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE TECNÓLOGO EN ANÁLISIS DE SISTEMAS INFORMÁTICOS. LENIN DAVID HERNANDEZ PAGUAY [email protected]. DIRECTOR: MSC. EDWIN GONZALO SALVADOR PESANTES [email protected]. Quito, Junio 2017.

(2) DECLARACIÓN. Yo Hernández Paguay Lenin David, declaro bajo juramento que el trabajo aquí descrito es de mi autoría; que no ha sido previamente presentada para ningún grado o calificación profesional; y, que he consultado las referencias bibliográficas que se incluyen en este documento.. A través de la presente declaración cedo mis derechos de propiedad intelectual correspondientes a este trabajo, a la Escuela Politécnica Nacional, según lo establecido por la Ley de Propiedad Intelectual, por su Reglamento y por la normatividad institucional vigente.. Hernández Paguay Lenin David. ii.

(3) CERTIFICACIÓN. Certificamos que el presente trabajo fue desarrollado por Lenin David Hernández Paguay, bajo nuestra supervisión.. Msc. Edwin Gonzalo Salvador Pesantes. Ing. Cesar Eduardo Gallardo Carrera. DIRECTOR DE PROYECTO. CODIRECTOR DE PROYECTO. iii.

(4) AGRADECIMIENTOS Agradezco a Dios por todo lo que me ha dado en esta vida, por darme la sabiduría, el entendimiento y las fuerzas para continuar día a día y cumplir con mis metas. A mi familia por todo el apoyo que me dieron durante toda mi vida, por los consejos, por la ayuda, en especial a mis padres que con tanto esfuerzo siempre me apoyaron en cada momento, y por la excelente educación que me han dado en el transcurso de mi vida. Además, agradezco a la empresa Intelserv la cual me brindó su confianza, paciencia y ciertas facilidades para culminar con el trabajo. Además, quiero agradecer especialmente al Sr. Manuel Ortega y al Sr. Santiago Gonzáles los cuales fueron de gran apoyo, y me ayudaron con el desarrollo, ideas, diseño, y funcionalidad del proyecto. Quiero agradecer especialmente al Ing. Edwin Salvador por su ayuda, la cual se visualiza en el desarrollo de este trabajo, por su paciencia, por su colaboración y por el tiempo que invirtió. Finalmente agradezco a la Escuela Politécnica Nacional y a todos los Docentes, ya que gracias a ellos logré formarme profesionalmente y culminar con esta etapa de mis estudios.. iv.

(5) ÍNDICE DE CONTENIDOS 1.. INTRODUCCIÓN 1 1.1. Definición del problema ................................................................................................. 1 1.2.. Objetivos ....................................................................................................................... 2. Objetivo General .................................................................................................................. 2 Objetivos Específicos ........................................................................................................... 2. 2.. 1.3.. Alcance ......................................................................................................................... 2. 1.4.. Justificación del Proyecto .............................................................................................. 3. 1.5.. Recursos estimados ...................................................................................................... 3. METODOLOGÍA................................................................................................................... 4 2.1.. Aplicación web .............................................................................................................. 4. 2.2.. Justificación herramientas de diseño............................................................................. 5. HTML5 ................................................................................................................................. 5 JavaScript ............................................................................................................................ 5 CSS3.................................................................................................................................... 5 2.3.. Justificación herramientas de desarrollo........................................................................ 6. MySql ................................................................................................................................... 6 Servidor Web ....................................................................................................................... 6 Symfony ............................................................................................................................... 7 Composer ............................................................................................................................ 9 Apache JMeter ..................................................................................................................... 9 2.4.. Ingeniería de software. ................................................................................................ 10. Metodologías Ágiles. .......................................................................................................... 10 2.5.. SCRUM ....................................................................................................................... 11. Equipo SCRUM .................................................................................................................. 11 Componentes SCRUM ....................................................................................................... 11 Reuniones SCRUM ............................................................................................................ 12 2.6.. Levantamiento de requerimientos. .............................................................................. 13. 2.7.. Generación de historias de usuario ............................................................................. 15. Generación del Product Backlog ........................................................................................ 15 2.8.. Desarrollo del sprint 0. Construcción de la arquitectura del proyecto. ......................... 16. Planificación del sprint 0 ..................................................................................................... 16 Tareas del sprint 0.............................................................................................................. 17. v.

(6) Ejecución del sprint 0 – Scrum Diario ................................................................................. 17 Pruebas y resultados.......................................................................................................... 18 Retroalimentación del sprint 0 ........................................................................................... 21 3.. RESULTADOS Y DISCUSIÓN ........................................................................................... 22 3.1.. Sprint 1 Configuraciones y Desarrollo del Módulo Administrativo ................................ 22. Planificación del sprint 1 ..................................................................................................... 22 Tareas del sprint 1.............................................................................................................. 22 Ejecución del sprint 1 Scrum Diario .................................................................................... 26 Pruebas.............................................................................................................................. 30 Retroalimentación. ............................................................................................................. 38 3.2.. Sprint 2 Desarrollo del Módulo de Bodega .................................................................. 39. Planificación del sprint 2 ..................................................................................................... 39 Tareas del sprint 2.............................................................................................................. 40 Ejecución sprint 2 ............................................................................................................... 41 Pruebas.............................................................................................................................. 43 Retroalimentación .............................................................................................................. 46 3.3.. Sprint 3 Desarrollo del Módulo Técnico ....................................................................... 46. Panificación del sprint 3...................................................................................................... 46 Tareas del sprint 3.............................................................................................................. 46 Ejecución sprint 3 ............................................................................................................... 48 Pruebas.............................................................................................................................. 52 Retroalimentación .............................................................................................................. 52 3.4.. Sprint 4 Gestión de Informes e Implementación .......................................................... 52. Planificación del sprint 4 ..................................................................................................... 52 Tareas del sprint 4.............................................................................................................. 53 Ejecución sprint 4 ............................................................................................................... 54 Pruebas.............................................................................................................................. 55 Retroalimentación .............................................................................................................. 60 4.. CONCLUSIONES............................................................................................................... 61. 5.. REFERENCIAS BIBLIOGRAFÍAS ...................................................................................... 63. ANEXOS ................................................................................................................................... 65. vi.

(7) ÍNDICE DE FIGURAS Figura 1 - Modelo Vista Controlador (MVC). [2] .................................................................................... 8 Figura 2 - Flujo de aplicación en Symfony. [2] ....................................................................................... 8 Figura 3 - Product backlog grooming. [10]............................................................................................ 12 Figura 4 - Diseño de navegación del Sistema ..................................................................................... 19 Figura 5 - Modelo entidad relación. ....................................................................................................... 20 Figura 6 - Estructura de la vista principal de la aplicación. ................................................................ 21 Figura 7 - Formulario para registrar empleado. ................................................................................... 31 Figura 8 - Formulario de autenticación. ................................................................................................ 33 Figura 9 - Formulario para realizar el registro de departamentos. ................................................... 33 Figura 10 - Formulario para realizar el registro de operadores. ........................................................ 34 Figura 11 - Formulario para realizar el registro de clientes. .............................................................. 35 Figura 12 - Formulario para registrar actividad. ................................................................................... 36 Figura 13 - Formulario para realizar el registro de localización de actividad. ................................. 37 Figura 14 - Formulario para realizar el registro asignación de actividad. ........................................ 37 Figura 15 - Formulario para registrar contacto sitio. ........................................................................... 38 Figura 16 - Formulario para el registro de productos. ........................................................................ 44 Figura 17 - Formulario para realizar el registro de entrada de productos ....................................... 45 Figura 18 - Mensaje de aviso de actividad pendiente. ....................................................................... 56 Figura 19 - Mensaje de aviso de actividad culminada. ....................................................................... 56 Figura 20 - Mensaje de aviso para corregir informe. .......................................................................... 57 Figura 21 - Mensaje de aviso de actividad terminada. ....................................................................... 57 Figura 22 - Pruebas de funcionamiento - usuario administrador. ..................................................... 59 Figura 23 - Pruebas de funcionamiento - usuario técnico. ................................................................ 59. vii.

(8) ÍNDICE DE TABLAS. Tabla 1 - Costo estimado para el desarrollo de la aplicación web. .................................................... 4 Tabla 2 - Equipo Scrum ........................................................................................................................... 13 Tabla 3 - Tipos de usuario. ..................................................................................................................... 14 Tabla 5 - Product Backlog ....................................................................................................................... 16 Tabla 6 - Tareas sprint 0. Construcción de la arquitectura del proyecto. ........................................ 17 Tabla 7 - Scrum diario sprint 0. Construcción de la arquitectura del proyecto. .............................. 17 Tabla 8 - Tareas sprint 1. Desarrollo del Módulo Administrativo ...................................................... 22 Tabla 9 - Scrum diario sprint 1. Desarrollo del Módulo Administrativo ............................................ 26 Tabla 10 - Validaciones de los campos del formulario para registrar empleados .......................... 32 Tabla 11 - Validaciones de los campos del formulario para el registro de departamentos. ......... 34 Tabla 12 - Validaciones de los campos del formulario para el registro de operadores. ............... 34 Tabla 13 - Validaciones de los campos del formulario para el registro de clientes ....................... 35 Tabla 14 - Validaciones de los campos del formulario para el registro de localización. ............... 37 Tabla 15 - Validaciones de los campos del formulario para el registro de asignación actividad. 38 Tabla 16 - Validaciones de los campos del formulario para el registro de contacto en sitio. ....... 38 Tabla 17 - Tareas sprint 2. Configuraciones y desarrollo del Módulo de Bodega. ........................ 40 Tabla 18 - Scrum diario sprint 2. Desarrollo del Módulo de Bodega ................................................ 41 Tabla 19 - Validaciones formulario para el registro de productos. ................................................... 44 Tabla 20 - Validaciones de los campos del formulario para el registro de entrada de productos. ..................................................................................................................................................................... 45 Tabla 21 - Tareas sprint 3. Desarrollo del Módulo Tecnico ............................................................... 46 Tabla 22 - Scrum Diario sprint 3. Desarrollo del Módulo de Técnico ............................................... 48 Tabla 23 - Tareas sprint 4. Gestión de Informes e Implementación ................................................ 53 Tabla 24 - Scrum Diario sprint 4. Gestión de Informes e Implementación ...................................... 54. viii.

(9) RESUMEN. El presente proyecto tiene como objetivo desarrollar e implementar una aplicación web que permita gestionar la información de clientes, empleados, actividades y productos que la empresa Intelserv administra, con la finalidad de automatizar y agilizar los procesos dentro del departamento administrativo. Para reducir el tiempo de desarrollo de la aplicación web, se utilizaron herramientas como el framework Symfony en la parte de desarrollo y Bootstrap para la parte de diseño. Se definieron 4 partes para el desarrollo de este proyecto, entre las cuales están la introducción, metodología, resultados obtenidos utilizando la metodología Scrum y conclusiones. En la introducción se detalla la definición del problema por el cual surgió la necesidad de realizar este proyecto, los objetivos principales, el alcance, recursos y la justificación del desarrollo del proyecto. En la metodología se especifica la forma en la cual se va a desarrollar este proyecto, se detalla la justificación de las herramientas de desarrollo, y se definen cada uno de los aspectos metodológicos de Scrum. Además, se realiza el levantamiento de requerimientos, la generación de las historias de usuario y la arquitectura del proyecto. En los resultados y discusión se detalla el desarrollo de la aplicación web utilizando la metodología Scrum como marco de trabajo, aquí se define la planificación del trabajo, la ejecución, pruebas y los resultados obtenidos en cada sprint. Finalmente en las conclusiones se detallan los resultados obtenidos al culminar el desarrollo de la aplicación web.. ix.

(10) ABSTRACT. This project aims to develop and implement a web application to manage the information of customers, employees, activities and products administered by Intelserv company, with the purpose of automating and speed up the processes in the administrative department. To reduce the development time of the web application, the project used Symfony framework for the backend and Bootstrap for the frontend. The project was divided in four sections, which are the introduction, methodology, results obtained using the Scrum methodology and conclusions. The introduction details the definition of the problem that led to the need of developing this project, the main objective, the scope, resources and justification. The methodology specifies the way in which this project was developed, details the justification of the development tools, and defines each of the methodological aspects of Scrum. Furthermore, the requirements of the system, the generation of user stories and the architecture of the project are detailed. The results and discussion section details the development of the web application using the Scrum methodology as a framework and defines the work planning, execution, tests and results obtained in each sprint. Finally, the conclusions detail the results obtained at the end of the web application development.. x.

(11) 1. INTRODUCCIÓN En la actualidad el desarrollo de nuevas Tecnologías de la Información y de la Comunicación (TIC) ha permitido que las empresas tengan un crecimiento exponencial y tener un mejor control de sus procesos. El Internet, así como el desarrollo de aplicaciones web han marcado enormemente en la sociedad, sobre todo en las gestiones administrativas y de control de las empresas. El desarrollo de aplicaciones web ha permitido llevar un mejor control en la gestión de clientes, inventario, empleados, costos y control de tiempos de trabajos, y gestionarlos en cualquier parte del mundo a través de una página web, la cual debe ser fácil de usar y práctica, sobretodo en el manejo de herramientas para facilitar la navegación y prácticos sistemas de búsqueda para ofrecer a los usuarios mayor simplicidad. La empresa Intelserv ofrece el servicio de Internet satelital en lugares de difícil acceso a empresas y corporaciones que requieren utilizar servicios como correo electrónico, navegación web o usar aplicaciones que requieren Internet para su funcionamiento.. 1.1. Definición del problema En la actualidad la empresa Intelserv realiza un control de personal, servicios e inventarios de tal forma que emplean varias horas de trabajo en realizar una gestión adecuada de las actividades realizadas. Además, lleva un control detallado de las actividades realizadas o servicios a través de informes, los cuales permiten registrar el lugar, la fecha, el material utilizado, los técnicos involucrados en dicha actividad y los clientes. Esto les permite llevar un control de inventario de bodega, y dar un buen servicio a los diferentes clientes. La cantidad de horas empleadas dentro del departamento administrativo al momento de llevar un seguimiento de las actividades realizadas por los técnicos es excesiva debido a que en ocasiones la información registrada en los informes no es consistente. De igual manera, la falta de información de los productos, y no llevar un buen manejo de la entrada y salida de productos de bodega puede generar pérdidas económicas. Por estos motivos, la empresa vio la necesidad de implementar una aplicación web, de tal forma que permita solucionar aquellos problemas y mejorar los procesos dentro del departamento administrativo de la empresa Intelserv.. 1.

(12) 1.2. Objetivos Objetivo General Implementar una aplicación web que permita mejorar los procesos administrativos dentro de la empresa Intelserv como: control de empleados, bodega y servicios.. Objetivos Específicos -. Identificar los inconvenientes actuales que se presentan al realizar los procesos de gestión de empleados, inventario y de servicios en la empresa Intelserv.. -. Determinar la mejor manera de integrar la información existente en la aplicación a desarrollar.. -. Desarrollar la aplicación web con herramientas de desarrollo de software actuales que se adapten de mejor manera a la solución que se desea implementar.. -. Evaluar el sistema bajo un ambiente de pruebas que garantice su correcto funcionamiento en situaciones críticas.. 1.3. Alcance El proyecto tiene como fin desarrollar una aplicación web, para unificar los procesos dentro del departamento administrativo, llevar un mejor control de bodega y el departamento técnico de la empresa Intelserv. Para el desarrollo de la aplicación web se utilizará el framework Symfony desarrollado en PHP. La aplicación web realizará los siguientes procesos: -. Autenticación de usuarios. Este será controlado a través de perfiles de usuarios, de tal forma que se pueda controlar el acceso al sistema tomando en cuenta el usuario y una contraseña.. -. Gestión de empleados. Esto permitirá llevar el registro de la información básica de los empleados, así como el registro de nuevos empleados.. -. Inventario de productos de bodega. La aplicación permitirá llevar un control de inventario de los productos que se manejan dentro de la bodega como ingreso y registro de entrada y salida de productos.. -. Asignación de actividades. Los servicios que provee la empresa serán controlados por asignaciones, asignaciones que serán enviadas y realizadas. 2.

(13) por los diferentes técnicos, esta asignación será controlada con límites de tiempo calendarizado. -. Reportes a través de informes. El reporte del servicio realizado dará información del material, el lugar, la fecha, el técnico que realizo la actividad y el cliente al cual se le ofreció el servicio. El reporte será llenado por el técnico que realizo el servicio, el reporte será verificado por bodega y por el departamento administrativo.. 1.4. Justificación del Proyecto La aplicación web una vez implementada permitirá mejorar los procesos en del departamento administrativo, ya que se llevará un registro de todos los servicios que se realicen. El sistema también permitirá un mejor control en bodega, esto va a minimizar las largas horas de trabajo dentro del departamento administrativo. Por lo tanto, se obtendrá los siguientes beneficios: -. En primer lugar, los informes de las actividades serán llenados correctamente por los técnicos debido a que utilizarán formularios cuya información será validada, esto permitirá llevar un control detallado del material, productos, el tiempo que se demoró una actividad en realizar, y el personal involucrado. -. En segundo lugar, el tener un control detallado de los productos que se utilizaron en una actividad, permitirá controlar la cantidad de producto que se utilizó y llevar un inventario adecuado de los productos que se encuentran en bodega.. La aplicación web tiene el fin de brindar un único ambiente donde se puedan controlar los procesos críticos para la empresa de manera que se tenga un mejor control y se facilite la generación de reportes.. 1.5. Recursos estimados El desarrollo de la aplicación va a ser efectuada por una sola persona, el cual conjuntamente con el cliente plantearán la fecha de entrega adecuada para cada módulo basándose en las prioridades que el cliente determine. Las herramientas que se utilizarán en el desarrollo de la aplicación web trabajan bajo licenciamiento libre lo cual no generará ningún costo al trabajar con estas herramientas. Los gastos referentes al dominio, servidor web y la infraestructura serán cubiertos por el cliente. En la Tabla 1 se detalla el costo estimado del desarrollo de la aplicación web. Debido a la necesidad de capacitación del personal y la correcta gestión de los productos de bodega, fue necesario viajar a la ciudad de El Coca, en la provincia de Orellana. Allí se encuentra el departamento técnico principal de la empresa, los gastos de movilización fueron cubiertos por la empresa e incluyeron: transporte, alimentación, y gastos de hospedaje.. 3.

(14) Tabla 1 - Costo estimado para el desarrollo de la aplicación web.. Personal Capacitado 1 Analista en sistemas informáticos. $ 2.500,00. Software Framework Symfony Web Hosting ECUADORCloud / Año Dominio Gestor de base de Datos Mysql Administración DNS phpMyAdmin Características del Servidor Servidor Linux Virtual. Centos 7 Versión Apache 2.4 Versión PHP 5.5 Ancho de Banda 15 GB Arquitectura S.O. 86/64 Disco Duro 10 GB Máquina Virtual Memoria RAM 512 MB. Total Plan Gastos varios Movilización. Capacitación del Personal (horas/hombre ocupadas). TOTAL:. $ 0,00 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ $120,00 $ 300,00 $ 100,00 $ 3.020,00. 2. METODOLOGÍA. El tipo de investigación utilizado en el proyecto fue la investigación aplicada, que permite obtener resultados prácticos, es decir, el principal objetivo es adquirir conocimiento mediante la aplicación. La investigación aplicada se basa en la aplicación de los conocimientos teóricos y son utilizados para construir, desarrollar y modificar una aplicación inmediata la cual permite resolver un problema.. 2.1. Aplicación web El sistema desarrollado en este proyecto se le categoriza como una aplicación web debido a la necesidad de que los usuarios puedan acceder a los servicios del sistema a través de Internet, para lo cual el sistema ha sido implementado en un servidor web que realiza peticiones y envía una respuesta que es representada mediante una página web. Entre las principales características que debe tener una aplicación web se encuentran:. 4.

(15) Usabilidad. Debe presentar características especiales, que permiten que la aplicación web sea sencilla de utilizar. Confiabilidad. Permite el procesamiento correcto de enlaces, validación y recuperación sin perder la información. Eficiencia. Tiempo de respuesta óptimo en todas sus funciones. Mantenibilidad. Facilidad y menor tiempo al realizar alguna corrección o mantenimiento. Disponibilidad. Es la medida de tiempo en la cual una aplicación web está disponible para su uso y presenta un correcto funcionamiento. Escalabilidad. La aplicación web debe funcionar correctamente sin importar la cantidad de usuarios que maneje al mismo tiempo.. 2.2. Justificación herramientas de diseño HTML5 Debido a las características del proyecto se utilizó HTML5 para el diseño de las interfaces. HTML (HyperText Markup Laguage) es un lenguaje de marcado basado en etiquetas que es utilizado para el desarrollo de páginas web. La versión HTML5 permite dar un nuevo concepto en la construcción de aplicaciones, debido a que presenta nuevas características y elementos que se acoplan a las tecnologías actuales, simplificando y organizando el código de mejor manera.. JavaScript Debido a la necesidad de incorporar animaciones, acciones, validaciones del lado del cliente, mensajes, entre otras funcionalidades en el proyecto, se vio la necesidad de utilizar JavaScript. JavaScript es un lenguaje de programación interpretado que trabaja de lado del cliente y se ejecuta por completo dentro del navegador [1]. Es un lenguaje que se ha vuelto imprescindible en el desarrollo de aplicaciones web debido a que la experiencia que el usuario tiene es más amigable y dinámica al usar entornos web. JavaScript se ha convertido en uno de los lenguajes más utilizados dentro de la comunicad, lo que ha promovido el desarrollo de librerías como JQuery. JQuery permite simplificar la programación, ya que contiene funcionalidades que cambian por completo la forma en cómo se escribe el código JavaScript siendo este más fácil de interpretar y leer, además, se han creado complementos basados en JQuery que ofrecen una gran cantidad de opciones como tablas con paginación, select dinámicos, animaciones entre otras opciones que mejoran la experiencia que tiene el usuario.. CSS3 Para evitar el uso excesivo de código JavaScript en el proyecto y mejorar el diseño de las interfaces web se vio la necesidad de utilizar CSS3 en el proyecto. CSS (Cascading Style Sheets) es un lenguaje utilizado para dar estilo y diseño a las. 5.

(16) páginas web realizadas en HTML, la última versión CSS3 presenta nuevas características que permiten dar animación, forma y movimiento a los elementos HTML, funcionalidades que antes eran manejadas mediante JavaScript.. BOOTSTRAP Para no invertir demasiado tiempo en el diseño de las interfaces del proyecto y mejorar la navegabilidad del usuario se vio la necesidad de utilizar un framework que mejore, facilite y reduzca el tiempo invertido en el diseño visual de la aplicación. Bootstrap es un framework que permite personalizar todos los elementos HTML, crear sitios web responsive que se adapten a cualquier dispositivo y organizar los elementos HTML de mejor forma.. 2.3. Justificación herramientas de desarrollo. MySql Para el desarrollo de la aplicación es necesario llevar un control de toda la información que es almacenada, para ello se vio la necesidad de utilizar una base de datos relacional que gestione toda la información. Una base de datos relacional permite almacenar y gestionar la información de mejor forma, ya que esta se compone de tablas las cuales tiene sus propios atributos, además, estas tablas se encuentran relacionadas entre sí, lo cual permite llevar una gestión adecuada de la información. Para llevar la gestión de la base de datos se utilizó MySql, MySql es un gestor de datos relacional que trabaja conjuntamente con PHP. Entre los factores por el cual se eligió MySql son su velocidad, robustez, portabilidad y seguridad, además es escalable lo que le permite crecer si es necesario, acoplándose a las necesidades de la aplicación. Para controlar y administrar la base de datos del proyecto gestionada por MySql se utilizó PhpMyadmin, el cual es una herramienta web para gestionar bases de datos, ejecutar sentencias, crear, añadir y eliminar tablas de manera más dinámica.. Servidor Web Debido a las características del proyecto, y a las necesidades del cliente de utilizar un sistema que funcione desde cualquier parte a través del Internet, se vio la necesidad de utilizar un servidor web. Un servidor web es un programa ejecutado en un ordenador el cual almacena, procesa y entrega páginas web a los clientes (navegador web), la función principal del servidor es aceptar las peticiones del navegador y entregar una respuesta a través de una página web. Para la comunicación entre cliente y servidor utiliza el protocolo HTTP (Hiper Text Tranfer Protocol). La forma en que trabaja el servidor web es la siguiente: -. El servidor web se ejecuta en el ordenador a la espera de peticiones del cliente.. -. El cliente realiza una petición al servidor utilizando el protocolo HTTP a través de la URL. 6.

(17) -. El servidor web proporciona la información que el cliente solicitó.. -. El cliente interpreta la información y los muestra en pantalla a través de una página web.. Debido a las características como la buena reputación, seguridad, rendimiento, el ser multiplataforma se utilizó Apache como servidor web. Apache es un servidor web de código abierto utilizado por la mayoría de sitios y aplicaciones web debido a sus características.. Symfony Debido a que la aplicación va a trabajar con diferentes módulos que se encuentran asociados entre sí, pero trabajan de manera independiente y además, por el tamaño de la aplicación se vio la necesidad de trabajar con un framework, el cual permite tener todo de forma más organizada, además, el desarrollo y el mantenimiento de una aplicación o sitio web se efectúa en menor tiempo. Uno de los framework que nos ofrece estos beneficios es Symfony. Symfony nos permite exprimir las características de PHP, organizar el código, y ofrecer un mejor rendimiento en el desarrollo debido a la reutilización del código. Esta es la principal herramienta y es usada como base para el desarrollo de proyecto. Según el sitio oficial Symfony es un framework bajo licencia Open Source MIT orientado en PHP utilizado para crear sitios y aplicaciones web a la medida que respondan perfectamente a las necesidades que exprese el cliente [2]. Debido a que la arquitectura de Symfony se encuentra desacoplada es posible reemplazar, eliminar o modificar partes del código sin que afecte a otras partes del sistema, esto permite que el mantenimiento se lo realice de forma sencilla y que tome menos tiempo. Symfony se basa en una arquitectura Modelo Vista Controlador (MVC), la cual separa la lógica del negocio y la presentación. -. Modelo. Es el que manipula y gestiona los datos, es decir la parte lógica de negocio.. -. Vista. Es la forma en la que se presenta la información en la aplicación, es la parte que interactúa con el usuario.. -. Controlador. Actúa ante las peticiones del usuario, es el que interactúa entre el modelo y la vista.. 7.

(18) La Figura 1 representa la arquitectura MVC.. Figura 1 - Modelo Vista Controlador (MVC). [2]. La manera en que trabaja Symfony es la siguiente primero se realiza una petición la cual se efectúa a través de las rutas (Request), esta solicitud es manejado por el controlador frontal (Front Controller), posteriormente el núcleo de Symfony inspecciona la solicitud desde la ruta y devuelve la información, ejecuta el controlador y devuelve un objeto response dependiendo de las acciones que ejecuta el controlador. La Figura 2 representa el flujo de una petición y respuesta en Symfony.. Figura 2 - Flujo de aplicación en Symfony. [2]. Dentro del proyecto también se utilizaron una serie de componentes que en conjunto con Symfony permiten mejorar el desarrollo de la aplicación, estos componentes son los siguientes: -. Twig. Es un motor de plantillas que trabaja en conjunto con PHP, trabaja en la parte de presentación, presenta una serie de etiquetas, filtros y funciones, que no afectan a la parte lógica de la aplicación [3].. -. Doctrine ORM. Permite realizar una interacción con la base de datos y proporciona una persistencia transparente de los objetos PHP [4]. Se centra principalmente en el almacenamiento, persistencia y el mapeo de objetos,. 8.

(19) esto lo efectúa a través de entidades y objetos construidos a partir de las tablas de nuestra base de datos. PHP es un potente lenguaje de programación web que trabaja del lado del servidor, diseñado especialmente para el desarrollo de aplicaciones o páginas web dinámicas esa es una de las causas por las que se acopla perfectamente para el desarrollo del proyecto. PHP permite establecer una conexión con una base de datos de manera eficiente y simple, esto es importante ya que la mayoría de sitios web contienen múltiples archivos de programa que requieren acceso a una base de datos [1], y el desarrollo de este proyecto no es la excepción.. Composer Para que no se produzcan inconvenientes durante el desarrollo de la aplicación, sobre todo al utilizar componentes externos, e instalar ciertas librerías, es necesario utilizar un gestor que permita descargar todos los componentes necesarios para que el funcionamiento de la aplicación se efectué correctamente. Composer es un gestor de dependencias en PHP que permite gestionar los diferentes paquetes que presenta el proyecto. Es decir declara diferentes bibliotecas de las que el proyecto depende y permite realizar instalaciones y actualizaciones necesarias para que el funcionamiento del proyecto se efectué de manera correcta. Las herramientas mencionadas como Bootstrap y Symfony sirven para optimizar los recursos de desarrollo, hacen que el trabajo de los desarrolladores sea más productivo debido a que se enfocan más en la funcionalidad del sistema y no en detalles, reducen el tiempo de mantenimiento, y permiten tener todo más organizado. Además, las nuevas implementaciones de HTML, CSS y JavaScript permiten mejorar el diseño de aplicaciones y sitios web, ofreciendo en el caso de HTML - elementos necesarios para estructurar las páginas web, CSS - diseño de páginas web más atractivas y JS - aplicaciones web dinámicas, convirtiéndose estas herramientas en una combinación perfecta al momento de diseñar aplicaciones y sitios web.. Apache JMeter Es importante garantizar el rendimiento de una aplicación web en situaciones críticas, y analizar las posibles situaciones que se puedan presentar como por ejemplo la cantidad excesiva de peticiones, o el tráfico y la congestión de red, esto con la finalidad de probar la resistencia y el rendimiento que puede soportar el servidor bajo diferentes niveles de carga. Según [5] JMeter es un software utilizado para probar el rendimiento de aplicaciones web, simular diferentes niveles de carga y visualizar el comportamiento del servidor. Para el proyecto se realizaron una serie de pruebas para comprobar el correcto funcionamiento de la aplicación web bajo diferentes niveles de carga. Los resultados obtenidos se analizaron para determinar si la infraestructura actual sería suficiente para soportar la cantidad de usuarios y peticiones que se realizarían diariamente sin que se presenten inconvenientes en el funcionamiento de la aplicación web.. 9.

(20) 2.4. Ingeniería de software. El no tener un enfoque disciplinado al desarrollar este sistema podría ocasionar problemas en el proceso de desarrollo y posteriormente en el mantenimiento. Según [6], ingeniería software es la aplicación de un sistema disciplinado, cuantificable enfocado al desarrollo, la operación y mantenimiento del software, el cual incluye entorno, compiladores, ensambladores, sistemas operativos, emuladores, herramientas de prueba, documentación y bases de datos que permiten realizar un mantenimiento del sistema. Por lo tanto tomando en cuenta la anterior definición se utilizó la ingeniería software para realizar un enfoque genérico basado en estrategias, métodos y técnicas con la finalidad de entregar una aplicación web de calidad y controlar aspectos como la especificación de los requerimientos, la evolución del software y el mantenimiento. Dentro de la Ingeniería de software existen un grupo de metodologías no tradicionales conocidas como metodologías ágiles.. Metodologías Ágiles. El objetivo principal de este tipo de metodologías en el desarrollo del proyecto es reducir el tiempo de entrega del producto final. Según [7], el objetivo de las metodologías ágiles es reducir los procesos evitando trabajos que tengan un valor perjudicial a largo plazo y eliminar la documentación la cual es innecesaria. El utilizar este tipo de metodologías trae los siguientes beneficios en el desarrollo del proyecto: -. Hay una comunicación continua con el dueño del producto, cuya función principal es especificar los requisitos y evaluar cada iteración.. -. La entrega del producto final se lo realiza de manera incremental, permitiendo inspeccionar los errores con cada iteración, evitando las complicaciones a largo plazo.. -. No se producen complicaciones requerimientos del cliente.. -. Hay una mejor gestión en los avances del desarrollo del proyecto.. al. presentarse. cambios. en. los. Hoy en día existen numerosas metodologías ágiles entre las cuales se encuentran, según [8]: -. Crystal Adaptive Software Develoment DSDM Scrum Programación extrema (XP). El objetivo de estos métodos ágiles es el desarrollo y la entrega incremental de un producto final, entre las metodologías ágiles más utilizadas se encuentran Scrum y Programación Extrema (XP).. 10.

(21) 2.5. SCRUM La metodología de desarrollo utilizada en este proyecto es SCRUM, el motivo por el cual se eligió esta metodología fue la necesidad de mantener una comunicación constante con el cliente y la necesidad de realizar entregas parciales del sistema de forma regular. SCRUM es una metodología ligera y fácil de entender, basado en roles, eventos y reglas que se encuentran asociadas, en si es un marco de trabajo de procesos que es usado para el desarrollo de productos complejos [9]. Permite realizar entregas parciales de un producto final, lo cual es práctico para la entrega de proyectos complejos en el que se desea entregar resultados parciales de forma breve. Antes de empezar con la estructura de desarrollo del proyecto con esta metodología, se deben aclarar los siguientes temas:. Equipo SCRUM El equipo Scrum es auto organizado y multifuncional, está diseñado para optimizar la flexibilidad, la creatividad y la productividad, entregando productos de manera incremental, presentando una parte del producto siempre funcional [9]. Los tres roles principales dentro del equipo SCRUM son: -. Product Owner. Es el dueño del producto, es el único responsable de gestionar la lista de requisitos del producto.. -. Development Team. Profesionales encargados del desarrollo del producto.. -. Scrum Master. Es el líder del equipo Scrum y se encuentra al servicio del equipo Scrum, este se asegura que el Equipo Scrum trabaje ajustándose a la teoría y reglas de la metodología, encuentra técnicas para gestionar la lista de producto de forma óptima, facilita los eventos según sea necesario y guía al equipo de desarrollo a trabajar de manera efectiva.. Componentes SCRUM -. Sprint. Es un intervalo de tiempo de un mes o menos que se demora en crear un incremento del producto completamente terminado y utilizable, son planificados tomando en cuenta la reunión de planificación del sprint, el Scrum diario y el equipo de desarrollo.. -. Product Backlog. Lista ordenada de requisitos, características y funcionalidades que son necesarios para entregar el producto final. [9]. Es una lista de tareas o requisitos que se van a efectuar en transcurso del desarrollo de todo el proyecto, esta lista va incrementándose conforme va progresando el desarrollo del producto, por lo que al iniciar no es necesario que la lista de requerimientos sea completa, pero si se debe tomar en cuenta los requisitos más importantes o los que tienen mayor prioridad.. 11.

(22) El propietario del producto trabaja en conjunto con el resto del equipo Scrum, y es el responsable de generar esta lista de requerimientos, así como la secuencia correcta de cada uno de ellos dependiendo el grado de importancia. El Product Backlog está en constante evolución y pueden ser agregados nuevos elementos, borrados, priorizarlos y revisados por el propietario del producto a medida que cambian las condiciones o cuando la comprensión del producto por parte del equipo Scrum es más amplia [10] a esta actividad se le conoce como Grooming (Refinamiento). En la Figura 3 se aprecia el cómo trabaja el refinamiento del Product Backlog.. Figura 3 - Product backlog grooming. [10]. -. Sprint Backlog. Es un grupo de elementos de la lista del producto que se van a realizar o son necesarios para cumplir el objetivo del sprint. A medida que el trabajo se va realizando se puede ver una aproximación del trabajo restante.. -. Incremento. Son todos los elementos de la lista de producto que se completaron en un sprint, los cuales son agregados a todos los sprints anteriores, al finalizar el sprint, el incremento debe haber sido terminado y estar en condiciones para ser utilizado.. Reuniones SCRUM -. Planificación del sprint. Máximo dura 8 horas. Responde a las siguientes preguntas según [9]: ¿Qué puede entregarse en el incremento resultante del sprint que comienza? ¿Cómo se conseguirá hacer el trabajo necesario para entregar el Incremento?. -. SCRUM diario. Dura 15 min. En esta reunión cada equipo de trabajo menciona que trabajo se realizó el día anterior, el plan de trabajo para el día 12.

(23) actual y algunos inconvenientes que se presentaron que evita continuar con el trabajo. -. Revisión del sprint. Dura un tiempo de 4 horas o menos. Se realiza la revisión de lo que se realizó en el sprint, efectuado por el equipo Scrum y el dueño del producto. Explica que problemas se presentaron en el desarrollo y como se solucionaron.. -. Retrospectiva de sprint. Dura 3 horas o menos. Sirve para inspeccionar el último sprint, y según eso establecer ciertas mejoras que permitan optimizar el trabajo.. 2.6. Levantamiento de requerimientos. Antes de empezar el levantamiento de los requerimientos, se han especificado cada uno de los roles del equipo Scrum, en la Tabla 2 define cada uno de los miembros del equipo Scrum. Tabla 2 - Equipo Scrum. Roles Product Owner Scrum Master. Descripción Gerente general Intelserv Director del proyecto. Development Team. Desarrollador. Persona Santiago Gonzales Ing. Edwin Salvador, Lenin Hernández Lenin Hernández. Para el levantamiento de requerimientos se efectuaron una serie de entrevistas, las cuales son necesarias para realizar un análisis del trabajo que la empresa hace, establecer los requerimientos del cliente y visualizar los procesos que se efectúan dentro de la empresa como la gestión de empleados, la gestión de productos y la interacción que se hace con cada uno de los clientes. La entrevista con el dueño del producto permitió obtener una mejor perspectiva del sistema de trabajo que se realiza en la empresa y sus diferentes procesos. Se aclararon temas como el manejo de clientes y operadores, productos y la gestión de las actividades que se efectúan en la empresa. Además, se visualizaron los diferentes procesos que tendría la aplicación los cuales son: Gestión de Clientes. Se debe llevar un registro de todos los operadores y clientes a los cuales la empresa ofrece sus servicios, además cada cliente presentará una serie de contactos tanto para contactar en el lugar y otros para entregar los respectivos informes que detallan la actividad realizada. Gestión de empleados. Para la aplicación se llevará un registro de todos los empleados, la clasificación se la realizará a través de roles los cuales son el de administrador, bodega, técnico y usuario. Cada empleado tendrá un usuario y contraseña el cual le permitirá ingresar a la aplicación, a excepción del role usuario.. 13.

(24) Gestión de actividades. La empresa lleva un control de las actividades a través de informes los cuales contienen el servicio realizado, la dirección, cliente, material utilizado, técnico que efectuó la actividad, entre otras cosas que permiten llevar un control detallado de la actividad realizada, para la aplicación se solicitó realizar 4 tipos de informes los cuales son: Informe de finalización, informe de relevamiento, informe de instalación de fibra óptica en campo, informe de instalación backbone fibra óptica en campo. Además, las actividades tendrán un tiempo límite de entrega las cuales serán controladas con una fecha de creación y fecha de culminación. Las personas encargadas de llenar estos informes serán los técnicos. El administrador es el encargado de crear la actividad. La actividad será finalizada una vez que el técnico envié el informe al departamento administrativo. Una vez enviado el respectivo informe el administrador revisará el informe, el cual si está correctamente llenado será enviado al cliente, caso contrario el informe se lo enviará al técnico nuevamente con las correcciones correspondientes, este deberá ser editado y enviado nuevamente. Gestión de Productos. Se debe llevar el control de los productos que salen y entran en bodega, así como el registro de nuevos productos. Las personas encargadas de llevar el registro de todos los movimientos, así como la creación de productos nuevos son los roles de Bodega y el Administrativo. Se llevará un registro que permitirá observar quien realizó el movimiento. Además, dentro de las entrevistas se aclararon los diferentes tipos de usuario que harán uso de la aplicación, los cuales se especifican en la Tabla 3. Tabla 3 - Tipos de usuario.. Tipo de usuario Administrador. Descripción Es el personal capacitado para ejecutar, analizar, comunicar, planificar y está capacitado para la toma decisión referente al manejo del personal, manejo de actividades, así como establecer una comunicación con los diferentes clientes a los cuales la empresa ofrece sus servicios. Técnico. Es el personal capacitado en realizar las diferentes actividades en sitio, en si es el que efectúa la mano de obra dentro de la empresa.. Bodega. Es el personal capacitado en realizar las gestiones tanto de entrada y salida de productos que se realizan dentro de la empresa, llevando un correcto registro en el inventario de bodega.. Usuario. Persona auxiliar que trabaja como agregado extra dentro del departamento de bodega y en el departamento administrativo, auxiliar de bodega, mensajeros, auxiliar de contabilidad.. 14.

(25) 2.7. Generación de historias de usuario Las historias de usuario definen las funcionalidades del sistema y son elaboradas de manera colaborativa entre el dueño del producto y el equipo de desarrollo. Las historias de usuario deben redactarse de manera clara para todo el equipo incluyendo el dueño del producto [10]. Al conjunto de todas las historias de usuario se lo conoce como el product backlog. Para la definición de las historias de usuario se tomó un modelo elaborado por [11]. Dentro de este modelo se presentan los siguientes campos: ID: Identificador de la historia de usuario. Rol: Tipo de usuario o función que tiene la persona. Característica /Funcionalidad: Descripción de la historia de usuario, acción que el usuario va a realizar. Razón/Resultado: Describe el resultado obtenido al realizar una acción. N. de Escenario: Identifica el número de escenarios asociado con la historia de usuario. Criterio de aceptación: Condiciones que se presentan frente a un escenario. Contexto: Describe el criterio de aceptación. Evento: Acción que el usuario realiza. Resultado/Comportamiento esperado: Resultado obtenido al efectuar la acción. Las historias de usuario referentes al desarrollo del módulo administrativo, módulo de bodega, módulo técnico y gestión de informes se presentan en el ANEXO 1.. Generación del Product Backlog Para describir cada uno de los requerimientos tomaremos en cuenta los siguientes campos: -. Descripción. Complejidad o estimación del esfuerzo requerido Prioridad Número de sprint Duración. El tiempo estimado por cada sprint varía dependiendo del grado de complejidad y la cantidad de procesos que se empleen. Como ya se mencionó, el product backlog se crea a partir de las historias de usuario, las cuales fueron agrupadas en diferentes categorías para poder mostrar el product backlog de manera más simple.. 15.

(26) Tabla 4 - Product Backlog. Descripción. Prioridad. Construcción de la arquitectura del proyecto. Desarrollo del Módulo Administrativo. Desarrollo del Módulo de Bodega. Desarrollo del Módulo Técnico. Gestión de Informes e Implementación.. 5. Complejida d 4. N. sprint. 0. Duració n (días) 9. 4. 4. 1. 18. 4 4 4. 5 5 5. 2 3 4. 7 20 5 59. Total. La prioridad y la complejidad fueron valoradas de mayor a menor, donde en prioridad es menos urgente y 5 es de más urgente. La complejidad está valorada dependiendo el grado de complejidad donde 5 representa mayor complejidad y 1 representa menor complejidad.. 2.8. Desarrollo del sprint 0. Construcción de la arquitectura del proyecto. Planificación del sprint 0 En el desarrollo de este sprint se realizó la construcción de la arquitectura del proyecto definido en la Historia de Usuario 0. Este sprint tuvo una duración de 9 días, trabajando 6 horas diarias aproximadamente. El objetivo de este sprint fue definir la arquitectura de la aplicación, el modelo de navegación, el modelo entidad relación, definir el diseño de la vista principal de la aplicación y configurar el marco de trabajo. En la Tabla 5 se aprecian las diferentes tareas a realizarse y el tiempo aproximado en efectuar cada tarea. Durante el transcurso de este sprint se efectuó el diseño del modelo entidad relación basándonos en toda la información otorgada por el dueño del producto. El modelo entidad relación es un modelo que expresa las entidades (objetos), las propiedades o atributos de cada entidad y las relaciones entre las entidades [12]. El diseño de la base se lo realizó en 5 partes, en la primera parte se definió las entidades para la gestión de empleados, clientes y productos, la segunda parte para las entidades que controlan la gestión de actividades y las tres últimas partes las entidades para la gestión de los 4 informes. Una vez terminado el diseño de la base de datos, se realizó una revisión con la colaboración del Scrum Master. La revisión fue necesaria para ver las posibles incoherencias y errores del diseño de la base, posterior a la revisión se realizaron las correcciones necesarias en el diseño de la base. Una vez aprobado el diseño de la base, se generó el Script SQL y se realizaron pruebas para comprobar el funcionamiento de la base de datos, para ello se utilizó phpMyadmin el cual contiene una interface que nos permite interactuar con la base de datos permitiendo hacer consultas, generar disparadores, ingresar, editar y eliminar datos de las diferentes tablas que contiene la base de datos. 16.

(27) Tareas del sprint 0 Tabla 5 - Tareas sprint 0. Construcción de la arquitectura del proyecto.. ID. ROL. Descripción de la historia de usuario.. HU0. Desarrollador.. Necesito gestionar todos los procesos.. Realizar la arquitectura de la aplicación.. 12. HU1. Desarrollador.. Necesito gestionar los datos de la empresa. Diseñar el modelo entidad relación.. 18. Revisión del modelo entidad relación. 6. Crear el script de la base de datos. 6. Pruebas de funcionamiento de la base de datos.. 6. Diseño estructural de la vista principal de la aplicación.. 1. Configurar el framework Symfony.. 1. Generar entidades.. 1. Generar controladores.. 1. Generar formularios.. 2. Total. 54. HU2. Desarrollador.. Necesito preparar el marco de trabajo.. Tareas. Esfuerzo empleado en horas.. Ejecución del sprint 0 – Scrum Diario Tabla 6 - Scrum diario sprint 0. Construcción de la arquitectura del proyecto.. Trabajo realizado el día anterior Día 1. Trabajo a realizar el día de hoy. Impedimentos. requiere Realizar una entrevista con Se el dueño del producto para mayor la toma de requerimientos información. y establecer el diseño. 17.

(28) estructural de la aplicación. Día 2. La entrevista con el dueño del producto permitió establecer las bases del proyecto.. Realizar el diseño de Ninguno. navegación de la aplicación tomando en cuenta los requerimientos del cliente.. Día 3. Se realizó el diseño del modelo de navegación.. Crear modelo entidad Ninguno relación – gestión de empleados, clientes y productos, actividades.. Día 4. Se creó la primera parte del modelo entidad relación para la gestión de empleados, clientes, productos y actividades.. Crear modelo entidad relación - informe de finalización y relevamiento.. Ninguno. Día 5. Se creó la segunda parte del modelo entidad relación para la gestión de los informes de relevamiento y de finalización.. Crear modelo entidad relación - informe de backbone y fibra óptica.. Ninguno. Día 6. Se creó la tercera parte del modelo entidad relación para el informe de fibra óptica backbone y fibra óptica.. Realizar la revisión de la base de datos en colaboración con el Ing. Edwin Salvador y efectuar las correcciones. En la Figura 5. Se aprecia el modelo entidad relación.. Ninguno. Día 7. Revisión del modelo entidad relación y corrección de errores.. Corrección de errores restantes. Generar el script de la base de datos.. Ninguno. Día 8. A partir del modelo entidad relación se generó el script de la base de datos.. Llenar la base de datos y realizar pruebas de funcionamiento, utilizando phpMyadmin.. Ninguno. Día 9. Se realizaron las pruebas de funcionamiento del diseño de la base de datos.. Preparar el marco de trabajo para empezar el desarrollo de la aplicación.. El trabajo continua con normalidad.. Pruebas y resultados. La construcción del modelo arquitectónico incluye: -. Diseño de navegación Modelo Entidad relación Diseño estructural de la aplicación.. 18.

(29) En el ANEXO 2 se encuentra el modelo entidad relación completo, así como las diferentes pruebas realizadas a la base de datos utilizando la herramienta phpMyadmin.. Diseño de navegación: Bodega. Productos de bodega Registrar Productos. Detalle Movimientos Entrada de productos Salida de productos Registrar Actividad Actividades. Asignar Actividad Actividades Pendientes. Administrador. Actividades realizadas. Empleados. Registrar Empleados. Empleados registrados Empleados Inactivos. Operadores registrados Clientes. Registrar Operadores Registrar Clientes Clientes Registrados. Departamentos. Historial. Historial. Página Actividades. Actividades Pendientes. Técnico Login. Actividades realizadas Realizar Informes. Informe Relevamiento Informe Finalización Informe Fibra Óptica Informe Fibra Óptica BackBone. Bodega. Productos de bodega Registrar Productos Detalle Movimientos Entrada de productos. Bodega. Salida de productos Operadores registrados Clientes. Registrar Operadores Registrar Clientes Clientes Registrados. Figura 4 - Diseño de navegación del Sistema. 19.

(30) Modelo Entidad Relación: En la Figura 5 se visualiza el modelo entidad relación de forma simplificada, en el cual solo se muestran las entidades y las diferentes relaciones.. provincias tiene R7. pertenece. cantones pertenece R8. contiene. locacion pertenece. contacto_sitio. detalle_fotografico actividad. pertenece. pertenece. R14. R11. R9. pertenece R24. tiene. contiene. informe_finalizacion. R27. contiene. contiene. posee. pertenece. tiene contiene. informe_relevamiento. pertenece. contiene. informe_instalacion_backbone. contiene. R29. asignacion_actividad R12. cliente. R20. pertenece. pertenece R17. tiene. pertenece. pertenece. tiene. R6. contiene. tiene. posee. R21. contacto_cliente. R10. pertenece. detalle_hilos_fusionados. R13. asignado. empleado operador. contiene. informe_instalacion_fibra_optica. pertenece. pertenece tiene. R5 R2. contiene. tiene. departamento. R18. pertenece. equipo_informe_fibra. pertenece R1. producto. tiene pertenece pertenece. R3. contiene R19. actividad_producto. pertenece. pertenece. equipo_informe_backbone. asigna R4. pertenece. historial_bodega R23. R22. R26. equipo_informe_finalizacion. R25. Figura 5 - Modelo entidad relación.. 20.

(31) Diseño estructural de la aplicación: El diseño describe una cabecera el cual contiene la información del usuario, las notificaciones, el logo de la empresa, y un enlace para cerrar sesión. La barra de navegación contiene un menú que le permite al usuario navegar a través de la aplicación web y visualizar la información en el contenedor principal.. Figura 6 - Estructura de la vista principal de la aplicación.. Retroalimentación del sprint 0 Durante el desarrollo del sprint 0, se efectuó el diseño estructural de la aplicación, el diseño de la base de datos tomando en cuenta los requerimientos del dueño del producto, la revisión y la depuración de errores del modelo entidad relación en colaboración del Scrum Master, pruebas para ver el funcionamiento de la base de datos utilizando la herramienta phpMyadmin, las cuales se encuentran en el ANEXO 2. Además, se realizaron una serie de configuraciones para preparar el marco de trabajo. El trabajo continuó de manera normal sin presentarse inconvenientes. A continuación se detalla del desarrollo del sprint 1 dentro del cual se efectuó el desarrollo del módulo administrativo.. 21.

(32) 3. RESULTADOS Y DISCUSIÓN 3.1. Sprint 1 Configuraciones y Desarrollo del Módulo Administrativo Planificación del sprint 1 Este sprint tuvo una duración de 18 días, trabajando 6 horas al día, teniendo un total de 108 horas aproximadamente. El objetivo de este sprint fue iniciar el desarrollo de la aplicación, se empezó con el módulo administrativo el cual efectúa las siguientes funciones: -. Gestión de actividades Gestión de empleados Gestión de clientes y operadores Gestión de departamentos.. Además, en este sprint se configuró el sistema de seguridad de Symfony para gestionar la autenticación de usuarios y el control acceso a la aplicación a través de las rutas. Finalmente se desarrolló la página principal a la cual acceden los usuarios al ingresar al sitio web de la empresa. La gestión de informes y notificaciones es bastante amplia y se lo llevó a cabo en los posteriores sprints.. Tareas del sprint 1 Tabla 7 - Tareas sprint 1. Desarrollo del Módulo Administrativo. ID. ROL. Descripción Historia de usuario.. Tareas. HU3. Administrador. Necesito Ingresar y/o modificar la información de los empleados que se encuentran en la empresa.. Crear un controlador para registrar empleado.. 1. Crear vista para ver formulario de registro de empleados.. 4. Validar campos formulario.. del. 3. Crear un controlador para editar la información de registro de empleado.. 1. Crear vista para ver el formulario para editar el registro de empleado.. 1. Crear controladores para listar el registro de empleados activos, empleados inactivos y ver. 2. HU4. Administrador. Necesito ver el listado de empleados registrados.. 22. Esfuerzo estimado en horas..

(33) el detalle del empleado. Crear vistas para visualizar el registro de empleados activos e inactivos.. 2. Crear vista para ver la información detallada del empleado.. 2. HU5. Administrador. Necesito eliminar el registro de un empleado.. Crear controlador para eliminar el registro de empleados.. 2. HU6. Usuarios registrados.. Necesito acceder a la aplicación utilizando un formulario de autenticación.. Crear la página principal de la empresa.. 10. Configurar el sistema de seguridad de Symfony.. 3. Crear formulario para realizar la autenticación de usuarios.. 3. Gestionar el control de acceso a través de las rutas. 2. HU7. Usuarios registrados.. Necesito reestablecer la contraseña de los usuarios.. Crear un controlador para restablecer la contraseña del usuario.. 3. HU8. Administrador. Necesito Ingresar y/o modificar la información de los departamentos que gestiona la empresa.. Crear controlador para realizar el registro de departamentos y validar capos.. 2. Crear vista que contiene un formulario para registrar departamentos. 2. Crear controlador para editar la información del departamento registrado.. 1. Crear vista que contiene el formulario para editar el registro de departamento.. 1. HU9. Administrador. Necesito ver el listado de los departamentos registrados.. Generar una consulta para listar los departamentos registrados.. 1. HU10. Administrador. Necesito registro. Crear controlador para eliminar el registro de. 1. eliminar el de un. 23.

(34) HU11. Administrador, Bodega.. departamento.. departamentos.. Necesito Ingresar y/o modificar la información de los operadores que gestiona la empresa.. Crear controlador para registrar operador y realizar validaciones.. 2. Crear vista para ver formulario de registro de operadores.. 1. Crear controlador para editar el registro de operadores y crear vista para ver el formulario.. 2. HU12. Administrador, Bodega.. Necesito ver el listado de los operadores registrados.. Crear una consulta para visualizar el registro de operadores.. 2. HU13. Administrador, Bodega.. Necesito eliminar el registro de un operador.. Crear controlador para eliminar el registro de operadores.. 2. HU14. Administrador, Bodega.. Necesito Ingresar y/o modificar la información de los clientes que gestiona la empresa.. Crear controlador para registrar cliente y realizar validaciones.. 2. Crear vista para ver formulario de registro de clientes.. 2. Crear controlador para editar el registro de clientes y crear vista para ver el formulario.. 2. HU15. Administrador, Bodega.. Necesito ver el listado de los clientes registrados. Crear una consulta para visualizar el registro de clientes.. 2. HU16. Administrador, Bodega.. Necesito eliminar el registro de un cliente.. Crear controlador para eliminar el registro de clientes.. 2. HU17. Administrador. Necesito Ingresar y/o modificar la información de las actividades que realiza la empresa.. Crear controlador para registrar actividad y realizar validaciones.. 1. Crear vista para ver formulario de registro de actividades.. 1. Crear controlador para editar el registro de actividades y crear vista. 2. 24.

(35) para ver el formulario. HU18. Administrador.. Necesito ver el listado de las actividades registradas.. Crear una consulta para visualizar el registro de actividades.. 1. HU19. Administrador.. Necesito eliminar el registro de una actividad.. Crear controlador para eliminar el registro de actividades.. 1. HU20. Administrador.. Necesito gestionar las actividades que se realizan.. Crear controlador para registrar la localización de la actividad.. 2. Crear una vista que contiene el formulario para registrar la localización de la actividad y validar datos.. 2. Crear vista para seleccionar entre registrar una nueva dirección o asignar una.. 1. Crear controlador para registrar la asignación de la actividad.. 2. Crear vista que contiene formulario para registrar la asignación de la actividad y validar datos.. 3. Crear controlador para registrar contacto sitio.. 2. Crear vista que contiene un formulario para registrar contacto sitio y validar datos.. 3. Crear una consulta para visualizar las actividades pendientes.. 3. Crear vista para visualizar las actividades pendientes.. 1. Crear una controlador para ver el detalle de la actividad.. 1. Crear una vista para visualizar el detalle de la actividad.. 2. HU21. Administrador, Técnico.. Necesito ver el listado de las actividades pendientes.. 25.

(36) HU22. Administrador.. Necesito modificar la localización, la asignación del técnico y el contacto en sitio.. Crear controlador para editar el registro de la localización de la actividad.. 2. Crear vista que contiene un formulario que permite editar el registro de la localización.. 2. Crear controlador para editar la asignación de la actividad.. 2. Crear vista que contiene un formulario que permite editar el registro de la asignación de la actividad.. 2. Crear controlador que permite editar el registro del contacto sito asignado a la actividad.. 2. Crear vista que contiene un formulario que permite editar el registro del contacto sitio.. 2. Total:. 108. Ejecución del sprint 1 Scrum Diario Tabla 8 - Scrum diario sprint 1. Desarrollo del Módulo Administrativo. Trabajo anterior Día 1. Día 2. realizado. el. día. Trabajo a realizar el día de hoy. Se realizaron algunas configuraciones para preparar el marco de trabajo como: la conexión de la base de datos, generar entidades, generar controladores y generar formularios.. Realizar un controlador para registrar empleados y validar los campos del formulario.. Se realizó un controlador para registrar empleados.. Listar empleados registrados, empleados inactivos y ver la información detallada de cada empleado.. Se generó una vista que contiene un formulario para registrar empleados. Además, se realizaron las respectivas. Generar una vista que contiene un formulario para registrar un empleado.. 26. Impedimentos.

(37) validaciones de cada campo. Día 3. Se generó el listado de todos los empleados registrados, además se agregaron botones para: Editar y eliminar empleados, ver información detallada de cada empleado y restablecer contraseña.. Crear controladores para editar y eliminar el registro de empleados. Crear una vista la cual contenga un formulario para editar el registro de un empleado.. Día 4. Se creó un controlador para modificar la información del empleado y se generó una que contiene el vista formulario para editar la información del empleado. Además, se creó un controlador para eliminar el registro de empleados.. Realizar entrevista al dueño del producto para recoger la información necesaria que se va a mostrar en la página principal.. Día 5. Se recolecto la información, y se definió que contenido iría en la página principal.. Desarrollar la página principal al cual van acceder los usuarios al ingresar al sitio web de la empresa.. Día 6. Desarrollo y distribución del contenido de la página principal. Configurar el sistema de seguridad de Symfony, y crear el formulario de autentificación de usuarios (formulario login). Gestionar las rutas de acceso. Crear un controlador para restablecer la contraseña del empleado.. Día 7. Se realizó la configuración del sistema de seguridad de Symfony para la autenticación y control de usuarios. Además, se creó el formulario login, a través del cual, el usuario debe autenticarse para acceder a la aplicación. Se realizó un controlador para reestablecer la contraseña del empleado.. Día 8. Se creó un controlador para realizar el registro de departamentos y se validaron todos los campos del formulario.. Crear un controlador para registrar departamentos en el controlador DepartamentoController. Crear una vista que contenga el formulario para registrar departamentos y la lista de los departamentos registrados. Validar los formulario.. campos. del. Crear unos controladores para editar y eliminar el registro de departamentos. Generar una vista que contiene el formulario para editar el. 27.

Figure

Figura 2 - Flujo de aplicación en Symfony. [2]
Tabla 6 - Scrum diario sprint 0. Construcción de la arquitectura del proyecto.
Figura 4 - Diseño de navegación del Sistema
Figura 5 - Modelo entidad relación.
+7

Referencias

Documento similar

Desde 1990 es profesora de Historia del Arte en la Facultad de Bellas Artes de la Universidad Complutense de Madrid; y desde 2004 colabora con el Departamento de Educación del

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)