UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO



Documentos relacionados
Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Elementos requeridos para crearlos (ejemplo: el compilador)

CAPÍTULO 3 VISUAL BASIC

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Capítulo 5. Cliente-Servidor.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Capitulo 5. Implementación del sistema MDM

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Visión General de GXportal. Última actualización: 2009

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Análisis y diseño del sistema CAPÍTULO 3

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

MODIFICACIÓN DE PANTALLAS. Reporte de Estadía para obtener el Título de Técnico Superior Universitario en Tecnologías de la Información y Comunicación

UNIVERSIDAD DE SALAMANCA

Planificación en Team Foundation Server 2010

CONCLUISIONES Y RECOMENDACIONES

I. OBJETIVOS INTRODUCCIÓN. Oscar Daniel Camuendo Vásquez

Aplicación para la gestión de prácticas en empresas. Memoria

Curso de PHP con MySQL Gratis

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Descripción. Este Software cumple los siguientes hitos:

Guía metodologíca para la gestión de proyectos de software basada en metodologías agiles, que integre las herramientas de seguimiento de actividades,

Ingeniería de Software

CMS JOOMLA. Características

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

Introducción a la Firma Electrónica en MIDAS

Documento Técnico Gerardo Barcia Jonathan Trujillo María Alejandra Uribe

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )


Presentación de servicios

1. Resumen Objetivos Introducción. 3

UNIVERSIDAD TECNOLOGICA DE HERMOSILLO SCRUM SPRINT #1. Ingenieria de Software I MAESTRO: BERNARDO PRADO DIAZ INTEGRANTES. Jorge Valdano.

asired middleware XML Así-Red Servicios Telemáticos, S.L.L. w w w. a s i r e d. e s

System Center. la plataforma para una gestión ágil de los entornos de TI IDG COMMUNICATIONS, S.A.

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

Empresa Financiera Herramientas de SW Servicios

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

UNIVERSIDAD TECNICA DEL NORTE

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

PROPUESTA DE DESARROLLO DE SITIO WEB AVANZADO

BearSoft. SitodeCloud. Rafael Rios Bascón Web: Móvil:

Capítulo I. Marco Teórico

DE VIDA PARA EL DESARROLLO DE SISTEMAS

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

WINDOWS : TERMINAL SERVER

Instituto Tecnológico de Costa Rica

Reporte inicial. Metodología

Sistema de Gestión de Proyectos Estratégicos.

Entre los más conocidos editores con interfaz de desarrollo tenemos:

CASOS DE ÉXITO DIST-PLEX MODUART. PARTNER Team Solutions SAS Es una compañía con más de 10 años de experiencia en la implementación de soluciones de

MATERIAL DE TRABAJO 1. Evaluación del software

(Integrated Development Environment) Herramienta de soporte para el desarrollo de sotfware: Editor (escribir y editar programas); un

Guía de uso del Cloud Datacenter de acens

Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar

Capítulo II. Arquitectura del Software

SISTEMA DE PAPELES DE TRABAJO PARA AUDITORÍA SPT AUDIT

CURSO COORDINADOR INNOVADOR

IES Abyla. Departamento de Informática. Sistemas Operativos

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

INTERFAZ GRAFICA DE LINUX Y ENTORNO GRAFICO DE WINDOWS.

Capitulo VI. Conclusiones.

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

E-learning: E-learning:

Informática I para Bachillerato

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

Introducción a la extensión de scripting en gvsig 2.0

Sistema de SaaS (Software as a Service) para centros educativos

SÍNTESIS Y PERSPECTIVAS

Desarrollo de Smarphones sobre plataformas libres para PC y PDA. David Cortés, José Luis González, Servando Saavedra y Juan Ramón Saavedra

En nuestro capitulo final, daremos las conclusiones y las aplicaciones a futuro

Capitulo III. Diseño del Sistema.

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

GIT Dinahosting 3. Hola!

Podemos descargar la distribucion de gnu/linux de los repositorios de Ubuntu

Sesión No. 7. Contextualización: Nombre de la sesión: Intelisis Business Intelligence PAQUETERÍA CONTABLE

Capitulo 3. Test Driven Development

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Herramientas de Apoyo al desarrollo de Software

Diseño, Desarrollo e Implementación de una Aplicación Web para el manejo Centralizado de la Información Corporativa en AGA Consultores

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Introducción CAPÍTULO 1

SMSPymeX: SISTEMA AUTOMATIZADO DE RECEPCIÓN DE PEDIDOS MEDIANTE MENSAJES DE TEXTO SMS

COLEGIO COMPUESTUDIO

QUÉ ACTIVIDADES PODEMOS HABILITAR EN EL CAMPUS VIRTUAL?

CAPÍTULO 1 Instrumentación Virtual

Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Algunos Administradores de Contenido se presentan a continuación:

CAPITULO I El Problema

Transcripción:

UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO Nombre del proyecto: SISTEMA DE ENTREGA A DOMICILIO PARA LA EMPRESA VAPAYA S.A. DE C.V. Empresa: UTEQ - CARRERA DE TECNOLOGÍAS DE LA INFORMACIÓN Memoria Que como parte de los requisitos para obtener el título de TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMATICOS Presenta: Valentín Arreguín González Asesor de la UTEQ Asesor de la Empresa Ing. Jorge Luis Morales Montes Ing. Adriana Y. Contreras A. Santiago de Querétaro, Qro. 01 de Febrero del 2013.

RESUMEN En este documento se hace mención a las actividades realizadas para la empresa CID-TAI que pertenece a la división de Tecnologías de la Información y Comunicación (TIC s), el cual es un centro de innovación que desarrolla aplicaciones de escritorio, aplicaciones móviles, páginas web y todo lo relacionado con las tecnologías de la información. A continuación se describirá el proyecto que se hace llamar Va paya el cual está conformado por una aplicación móvil que se desarrolló bajo el Sistema Operativo Android y un sitio web, ambos codificados bajo el lenguaje de programación Java. Este proyecto se realizó utilizando la metodología Scrum, la cual permite desarrollar un proyecto mucho más rápido y en menor tiempo en comparación con otras metodologías. 2

ABSTRACT This document mentions the activities for the firm CID-TAI belonging to the division of Information Technology and Communication (ITC), which is a software factory that develops desktop applications, mobile applications, websites and everything related to information technology. Then describe the project calling itself "Vapaya" which is made up of a mobile application developed on Android and a website that was developed in Java using JSP's. This project was developed with the Scrum methodology, which allows a project to be developed faster and in less time compared with other methods. 3

DECICATORIA Dedico este trabajo a mi familia entera y amigos, que siempre me han brindado su apoyo incondicional y en especial a aquellas personas que ya no están, pero siempre se encuentran en mi mente y en mi corazón. AGRADECIMIENTOS A todos y cada uno de los profesores que contribuyeron en mi formación académica, solo tengo una palabra para ellos y es gracias. Gracias por todo su apoyo durante mi estancia en la Universidad Tecnológica de Querétaro. 4

ÍNDICE RESUMEN... 2 ABSTRACT... 3 DECICATORIA... 4 AGRADECIMIENTOS... 4 ÍNDICE... 5 I. INTRODUCCIÓN... 6 II. ANTECEDENTES... 7 III. JUSTIFICACIÓN... 9 IV. OBJETIVOS... 10 V. ALCANCES... 10 VI. FUNDAMENTACIÓN TEÓRICA... 11 VII. PLAN DE ACTIVIDADES... 21 VIII. RECURSOS MATERIALES Y HUMANOS... 22 IX. DESARROLLO DEL PROYECTO... 23 X. RESULTADOS OBTENIDOS... 29 XI. ANÁLISIS DE RIESGO... 30 XII. CONCLUSIONES... 31 XIII. RECOMENDACIONES... 32 XIV.REFERENCIAS BIBLIOGRÁFICAS... 33 5

I. INTRODUCCIÓN El proyecto está divido en dos partes, la primera es una aplicación móvil que se desarrolló para el sistema operativo Android y la segunda es un sitio web, ambos codificados con Java. Este trabajo se llevó a cabo por un grupo conformado por nueve desarrolladores encargados de la implementación del código para crear dichas aplicaciones. Para realizar las aplicaciones se trabajó con una metodología llamada Scrum, la cual permite desarrollar en un periodo de tiempo más corto que con las metodologías clásicas. Scrum es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto y como tal: Es un modo de desarrollo de carácter adaptable más que predictivo. Orientado a las personas más que a los procesos. Emplea la estructura de desarrollo ágil: incremental basada en iteraciones y revisiones. 6

II. ANTECEDENTES CID TAI es un centro que ofrece servicios y soluciones a través de la administración e implementación de proyectos de tecnologías de Automatización e Información buscando la innovación y la integración con el sector productivo para impulsar el desarrollo tecnológico de la región. Surge por la necesidad de proporcionar servicios tecnológicos en la forma de proyectos de desarrollo de software hecho a la medida a partir del diseño del mismo, proyectos de tecnologías de la información y automatización en el área de comunicaciones y electrónica apoyando al crecimiento y desarrollo de la industria que coadyuve al crecimiento económico de nuestro estado y país. Además de brindar un espacio en el cual estudiantes de estadía y egresados tanto de técnicos superiores universitarios como de ingeniería adquieran experiencia en proyectos profesionales reales que satisfagan necesidades del sector productivo y de servicios, así como proporcionar un espacio de desarrollo de las diferentes competencias y habilidades logradas en su desarrollo académico. 7

Va Paya es una empresa privada que surge tras detectar la necesidad de algunas consumidores por tener un servicio que les permitiera ahorrar tiempo en traslados de horario de comida o eventos. Esta necesidad se transforma en un grupo de personas que se dan a la tarea de reunir un equipo de trabajo para crear un sistema que brinde un servicio integral de entrega a domicilio, donde las principales cadenas restauranteras de la ciudad de México publiquen su oferta de marcado a sus clientes potenciales. 8

III. JUSTIFICACIÓN Por la necesidad del mercado de tener una empresa que permita publicar a los principales restaurantes de la ciudad de México, su servicios, menús, promociones etc. se decide crear afiliaciones con estas cadenas, además de desarrollar una aplicación web y móvil con un ambiente amigable capaz de permitir el control de: A) Reservaciones B) Selección de platillos C) Registro de taxistas D) Seguimiento a entregas 9

IV. OBJETIVOS Desarrollar 127 historias, las cuales incluyen código para generar un Controller, Service, Dao, DaoImplementation, Bean y un ModelAndView, para validación de estos códigos, en paralelo se deberá generar clases, también llamadas Test, para probar el código generado. V. ALCANCES Incluye: Generar 74 historias para la parte web y 53 para la parte móvil. Codificar las historias bajo el lenguaje de programación Java. Generar Scripts para validaciones en JavaScript. Instalar un servidor local Apache Tomcat para probar el código. Elaborar reportes semanales sobre el trabajo realizado durante la semana. No Incluye: Documentación del proyecto. Diseñar las interfaces para el Sistema de entrega a domicilio de la empresa VAPAYA S.A. de C.V. 10

VI. FUNDAMENTACIÓN TEÓRICA Metodologia Scrum Qué es Scrum? Scrum es una metodología ágil de gestión de proyectos de desarrollo de software, basada en un proceso de trabajo constante, iterativo e incremental. Creada por Jeff Sutherland en 1993, de las metodologías ágiles, es la más utilizada, según una encuesta publicada por VersionOne en 2010 realizada a 4770 entrevistados de 91 países. La misma, revela que el 58% de los encuestados, utiliza Scrum como metodología para la gestión de proyectos de desarrollo de Software. La propuesta de Scrum Como metodología para el desarrollo de Software, Scrum, propone una serie de características que deben guardarse a fin de lograr resultados óptimos en el desarrollo de sistemas de alta complejidad. La propuesta de Scrum, consiste en realizar entregas potencialmente utilizables de forma iterativa e incremental, en períodos de 2 a 4 semanas denominados "Sprint". Para lograrlo, establece ciertas pautas organizativas, a simple modo de guía y no de reglamento invasivo. 11

Pautas organizativas de Scrum A modo de guía, Scrum propone organizar el trabajo como se describe a continuación. Definición de Roles Dueño de producto Scrum Master Scrum Team Herramientas de trabajo: Artefactos Backlog de producto Backlog de Sprint Incremento de funcionalidad potencialmente utilizable Organización del trabajo: Ceremonias Como se ha comentado anteriormente, en Scrum, se trabaja en períodos de tiempo iterativo, de duración fija, denominados Sprint. Para organizar cada Sprint, las ceremonias propuestas por Scrum son las siguientes: Planificación Reunión diaria Revisión Retrospectiva 12

Test-driven development (TDD) Es una práctica de programación que involucra otras dos prácticas: Escribir las pruebas primero (Test First Development) y Refactorización (Refactoring). Para escribir las pruebas generalmente se utilizan las pruebas unitarias (unit test en inglés). En primer lugar, se escribe una prueba y se verifica que las pruebas fallan. A continuación, se implementa el código que hace que la prueba pase satisfactoriamente y seguidamente se refactoriza el código escrito. El propósito del desarrollo guiado por pruebas es lograr un código limpio que funcione. La idea es que los requisitos sean traducidos a pruebas, de este modo, cuando las pruebas pasen se garantizará que el software cumple con los requisitos que se han establecido. Herramientas usadas para el desarrollo del sistema. GNU/Linux: LINUX (o GNU/LINUX, más correctamente) es un Sistema Operativo como MacOS, DOS o Windows. Es decir, Linux es el software necesario para que tu ordenador te permita utilizar programas como: editores de texto, juegos, navegadores de Internet, etc. Linux puede usarse mediante un interfaz gráfico al igual que Windows o MacOS, pero también puede usarse mediante línea de comandos como DOS.Linux tiene su origen en Unix. Éste apareció en los años sesenta, desarrollado por los investigadores Dennis 13

Ritchie y Ken Thompson, de los Laboratorios Telefónicos Bell. Andrew Tanenbaum desarrolló un sistema operativo parecido a Unix (llamado Minix) para enseñar a sus alumnos el diseño de un sistema operativo. Debido al enfoque docente de Minix, Tanenbaum nunca permitió que éste fuera modificado, ya que podrían introducirse complicaciones en el sistema para sus alumnos. Un estudiante finlandés llamado Linus Torvalds, constatando que no era posible extender Minix, decidió escribir su propio sistema operativo compatible con Unix. En aquellos momentos el proyecto GNU (GNU's Not Unix), que Richard Stallman había iniciado hacía ya casi diez años, comprendía un sistema básico casi completo. La excepción más importante era el kernel o núcleo, que controla el hardware. Torvalds decidió aprovechar el sistema GNU y completarlo con su propio núcleo, que bautizó como Linux (Linux Is Not UniX). El sistema conjunto (herramientas GNU y núcleo Linux) forma lo que llamamos GNU/Linux. Apache: Apache es el servidor web hecho por excelencia, su configurabilidad, robustez y estabilidad hacen que cada vez millones de servidores reiteren su confianza en este programa. Apache es un servidor altamente configurable de diseño modular. Es muy sencillo ampliar las capacidades del servidor Web Apache. Actualmente existen muchos módulos para Apache que son adaptables a este, y están ahí para que sean instalados cuando sean necesarios. Otra cosa importante es que cualquiera que posea una experiencia 14

decente en la programación de C o Perl puede escribir un módulo para realizar una función determinada. MySQL: MySQL es un sistema de administración de bases de datos. Una base de datos es una colección estructurada de datos. La información que puede almacenar una base de datos puede ser tan simple como la de una agenda, un contador, o un libro de visitas, o tan vasta como la de una tienda en línea, un sistema de noticias, un portal, o la información generada en una red corporativa. Para agregar, accesar, y procesar los datos almacenados en una base de datos, se necesita un sistema de administración de bases de datos, tal como MySQL. PHP (PHP Hypertext Pre-processor): Es un lenguaje de programación usado generalmente en la creación de contenidos para sitios web. Es un lenguaje interpretado especialmente usado para crear contenido dinámico web y aplicaciones para servidores, generalmente los scripts en PHP se embeben en otros códigos como HTML, ampliando las posibilidades del diseñador de páginas web enormemente. Eclipse: La plataforma Eclipse consiste en un Entorno de Desarrollo Integrado (IDE, Integrated Development Environment) abierto y extensible. Un IDE es un programa compuesto por un conjunto de herramientas útiles para un desarrollador de software. Como elementos básicos, un IDE cuenta con en un 15

editor de código, un compilador/intérprete y un depurador. Eclipse sirve como IDE Java y cuenta con numerosas herramientas de desarrollo de software. También da soporte a otros lenguajes de programación, como son C/C++, Cobol, Fortran, PHP o Python. A la plataforma base de Eclipse se le pueden añadir extensiones (plugins) para extender la funcionalidad. Skype: Skype es una aplicación que permite realizar llamadas gratuitas a través de Internet a cualquier otro usuario que utilice Skype en cualquier parte del mundo y dispone de las siguientes funciones: Realizar o recibir llamadas de usuarios de Skype (función gratuita). Realización de llamadas a teléfonos estándar (fijos o móviles) (SkypeOut, una función de pago). Recepción de llamadas desde teléfonos estándar (fijos o móviles) (SkypeIn, una función de pago). Enviar y recibir correos de voz (una función de pago en determinados casos). Git: Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. Sin 16

embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux. BitBucket: Bitbucket es un servicio de alojamiento basado en web, para los proyectos que utilizan el sistema de control de revisiones Mercurial y Git. Bitbucket ofrece planes comerciales y gratuitos. Se ofrece cuentas gratuitas con un número ilimitado de repositorios privados (que puede tener hasta cinco usuarios en el caso de cuentas gratuitas) desde septiembre de 2010, los repositorios privados no se muestran en las páginas de perfil - si un usuario sólo tiene depósitos privados, el sitio web dará el mensaje "Este usuario no tiene repositorios". Hibernate: Hibernate es una herramienta de Mapeo objeto-relacional (ORM) para la plataforma Java (y disponible también para.net con el nombre de NHibernate) que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) o anotaciones en los beans de las entidades que permiten establecer estas relaciones. JUnit: JUnit es un conjunto de bibliotecas creadas por Erich Gamma y Kent Beck que son utilizadas en programación para hacer pruebas unitarias de 17

aplicaciones Java. JUnit es un conjunto de clases (framework) que permite realizar la ejecución de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como se espera. Es decir, en función de algún valor de entrada se evalúa el valor de retorno esperado; si la clase cumple con la especificación, entonces JUnit devolverá que el método de la clase pasó exitosamente la prueba; en caso de que el valor esperado sea diferente al que regresó el método durante la ejecución, JUnit devolverá un fallo en el método correspondiente. JUnit es también un medio de controlar las pruebas de regresión, necesarias cuando una parte del código ha sido modificado y se desea ver que el nuevo código cumple con los requerimientos anteriores y que no se ha alterado su funcionalidad después de la nueva modificación. Mockito: Mockito es un Framework para pruebas de aplicaciones JAVA. Permite simular comportamientos complejos de objetos, además facilita el desarrollo de test unitarios y la detección de errores. La implementación de tests Mockito se hace en varias etapas: Creación del objeto mock. Descripción del comportamiento esperado Uso de los mocks Verificación que la interacción con los mocks sea correcta. 18

Maven: Maven es una herramienta de software para la gestión y construcción de proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar en funcionalidad a Apache Ant (y en menor medida a PEAR de PHP y CPAN de Perl), pero tiene un modelo de configuración de construcción más simple, basado en un formato XML. Estuvo integrado inicialmente dentro del proyecto Jakarta pero ahora ya es un proyecto de nivel superior de la Apache Software Foundation. Maven utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externos, y el orden de construcción de los elementos. Viene con objetivos predefinidos para realizar ciertas tareas claramente definidas, como la compilación del código y su empaquetado. Una característica clave de Maven es que está listo para usar en red. El motor incluido en su núcleo puede dinámicamente descargar plugins de un repositorio, el mismo repositorio que provee acceso a muchas versiones de diferentes proyectos Open Source en Java, de Apache y otras organizaciones y desarrolladores. Este repositorio y su sucesor reorganizado, el repositorio Maven 2, pugnan por ser el mecanismo de facto de distribución de aplicaciones en Java, pero su adopción ha sido muy lenta. Maven provee soporte no sólo para obtener archivos de su repositorio, sino también para subir artefactos al repositorio al final de la construcción de la aplicación, dejándola al acceso de todos los usuarios. Una caché local de artefactos actúa como la primera fuente para sincronizar la salida de los proyectos a un sistema local. 19

Apache Tomcat: Tomcat es el servidor Web más utilizado a la hora de trabajar con Java en entornos web; Tomcat es una implementación completamente funcional de los estándares de JSP y Servlets. Tomcat también puede especificarse como el manejador de las peticiones de JSP y servlets recibidas por servidores Web populares, como el servidor Apache HTTP de la Fundación de software de Apache o el servidor Microsoft Internet Information Server (IIS). La Programación en Pareja (Pair-programming) La Programación en Pareja (o Pair Programming en inglés) requiere que dos Ingenieros en Software participen en un esfuerzo combinado de desarrollo en un sitio de trabajo. Cada miembro realiza una acción que el otro no está haciendo actualmente: Mientras que uno codifica las pruebas de unidades el otro piensa en la clase necesaria para la prueba. Deploy Deploy en el contexto de la informática si es la manera en que implanta, implementa o se pone en funcionamiento la aplicación desarrollada como tal, donde básicamente nos permite crear una estructura base, incluyendo archivos y carpetas donde se almacenarán las imágenes, plugin jquery, archivos incluidos, y demás opciones, para poder visualizarlos en algún navegador. 20

VII. PLAN DE ACTIVIDADES Figura 1. Diagrama de Gantt 21

VIII. RECURSOS MATERIALES Y HUMANOS 1. Un programador para el desarrollo de diversos módulos del sistema. 2. Tablet con Sistema Operativo Android. 3. Un equipo de cómputo marca. 4. Conexión a Internet. 5. Servidor para pruebas y desarrollo. 22

IX. DESARROLLO DEL PROYECTO Desarrollo Móvil Para el desarrollo de la parte móvil se utilizó como herramienta principal el software Eclipse, en su versión Juno. También se contó con una máquina virtual del Sistema Operativo Android, todo esto utilizado en el Sistema Operativo Linux, en la versión Ubuntu 12.04.1 Lts, donde también se instaló un servidor Apache, junto con un servidor Mysql que se utilizó como gestor de base de datos. Utilizando la librería JSon de Java se realizó la conexión al servidor para poder hacer él envió y las peticiones de datos. Para el módulo de alertas que se realizó y que consiste en que un repartidor que no recoge sus imanes con su administrador de repartidores, en un plazo de 2 días a partir de que recibió la alerta de imanes, se le debe incrementar su productividad negativa de Material en más 1. A su vez, cuando un repartidor tenga menos de 20 imanes se deberá visualizar una alerta de imanes en el dispositivo del repartidor. En el mismo módulo se realizó otra alerta que consiste en que se vean reflejadas las alertas de Facturas y Voucher firmados cada viernes a las 8:00 am en los dispositivos de los repartidores. Otro de los módulos a realizados es el de Mi información el cual muestra el histórico de productividad del taxista de los últimos 3 meses, además por cada registro de productividad se muestran los siguientes datos: Nombre del mes: Se muestra primero el mes que pasó y así sucesivamente. 23

Cliente: Total de retrasos acumulados en el mes por entrega de órdenes a clientes con retraso. Pagos: Total de retrasos acumulados en el mes por retraso en la entrega de pagos al administrador. Facturas/Voucher: Total de retrasos acumulados en el mes por retraso en la entrega de Facturas/Voucher al administrador. Materiales: Total de retrasos acumulados en el mes por retraso al recibir material del administrador. Dispositivo Apagado: Retrasos del mes por órdenes no aceptadas. 24

Figura 2. Imágenes de algunos de los módulos del sistema móvil. 25

Módulo Administrador, Taxista y Contador Los diferentes módulos para la parte web, se codificaron utilizando como principal herramienta a Maven, el cual se apoyara en Hibernate, Mockito, y JUnit en los cuales se realizaron test para probar la codificación de Java. EL módulo principal para el que se codificó, fue el del Administrador, el cual requirió de la creación de un nuevo operador, también se debió verificar en los formularios los campos de contrato, para que al subir un archivo, este no se encontrara corrupto, porque esto es fundamental para el registro de cualquier negocio. A su vez se tuvo que validar los campos de los formularios de Administrador, Taxista y Contador mediante javascript, esto es por si el Administrador llega a equivocarse en algún campo no ocacione que se ingresarse en la base de datos algún dato erróneo. 26

Figura 3. Imágenes de algunos módulos del sistema web. Capacitación Originalmente para poder tomar una capacitación al 100% de la metodología Scrum se requiere de aproximadamente un mes, siempre y cuando la persona que toma el curso ya tenga cierto nivel de programación. Al equipo de trabajo que desarrolló este proyecto se le brindó una capacitación express de una semana, la cual tenía un horario de 14:00 a 21:00 hrs. El encargado de impartir la capacitación fue el Scrum-Master José Luis de la Cruz. 27

En esta capacitación primero que nada se informó las características del proyecto y la forma en cómo se trabaja con Scrum. De las primeras cosas que se comenzaron a hacer después de la introducción a la metodología fue configurar lo equipos, ya que una de las especificaciones que se pedían era que se trabajara con Linux, particularmente con Ubuntu. Una vez comprendido y configurado esto, poco a poco se fue pensando en cómo se tenía y debía de implementarse, ya que como toda metodología se debía seguir un patrón. Tal patrón estaba conformado con una peculiar manera de hacer la implementación del código, y es que cada implementación debe llevar un test, el cual garantiza que la implementación es correcta. Los últimos dos días de la capacitación prácticamente se estuvieron haciendo ejercicios de cómo se debía programar (ya que parte de la metodología exige que se tenga un código limpio y entendible). Otra parte de los ejercicios consistía en subir el código a repositorios, los cuales se ocuparían en todo el proyecto, ya que ahí se subió toda la implementación desarrollada. 28

X. RESULTADOS OBTENIDOS Se logró una adaptación rápida a la metodología de trabajo Scrum, siendo esta una nueva forma de trabajo en la institución, así como también se logró tener una gran comunicación y apoyo entre integrantes del equipo lo que llevó a obtener los resultados planteados al inicio del proyecto. 29

XI. ANÁLISIS DE RIESGO Uno de los factores que más afectó durante el desarrollo del proyecto fueron los constantes fallos de la red, esto provocó que se llevara más tiempo del que se tenía planeado, además otro de los factores importantes fue la planeación del proyecto, como no se tenía bien claro lo que se quería el trabajo de desarrollo fue aumentando y así la carga de trabajo. 30

XII. CONCLUSIONES El proyecto se concluyó satisfactoriamente en una primera etapa para los módulos web y Mobile, saliendo a producción el día tres del mes de Diciembre del 2012. 31

XIII. RECOMENDACIONES La principal recomendación para el proyecto Va paya, es que se defina bien la estructura del proyecto, hablando específicamente de la planeación de las actividades a realizar en un futuro. 32

XIV.REFERENCIAS BIBLIOGRÁFICAS Jorge Serrano. Flexibilidad con Scrum. 1ª. ed. Safe Creative. 2008. 192 p. Juan Palacio, Claudia Ruata. Scrum Manager Gestión de Proyectos. 7ª. ed. Safe Creative. 2011. 131 p. Carlos Blé Jurado, Juan Gutiérrez Plaza, Fran Reyes Perdomo, Gregorio Mena. Diseño Ágil con TDD (Test-Driven Developmen). 1ª. ed. Enero 2010. 309 p. Adrián Catalán. Desarrollo de aplicaciones móviles. 1ª ed. Junio 2011.137 p. 33