Vous êtes sur la page 1sur 67

SISTEMA DE ALQUILER DE

VEHCULOS
PROYECTO
TECNLOGO INFORMTICO

AUTORES
Aquino, Nicols
Becco, Diego
Eguia, Leonardo
Laporta, Emanuel
Sabalsagaray, Matas

TUTOR
Lpez, Montserrat
CONTENIDO

AGRADECIMIENTOS....................................................................................................................... 4
RESUMEN ...................................................................................................................................... 5
PALABRAS CLAVES ..................................................................................................................... 5
1. INTRODUCCIN ..................................................................................................................... 6
2. OBJETIVOS PLANTEADOS Y RESULTADOS ESPERADOS ......................................................... 8
3. ESTADO DEL ARTE ................................................................................................................. 9
3.1. MARCO TERICO ........................................................................................................... 9
3.1.1. EL PRODUCTO O SERVICIO ........................................................................................ 9
3.1.2. EL MERCADO ............................................................................................................. 9
3.1.3. LOS CLIENTES ........................................................................................................... 10
3.1.4. LA COMPETENCIA .................................................................................................... 10
3.2. MARCO LEGAL ............................................................................................................. 11
3.3. TECNOLOGAS.............................................................................................................. 11
3.3.1. WEB ............................................................................................................................... 11
3.3.1.1. WEBSOCKETS ................................................................................................... 12
3.3.2. ARQUITECTURAS ..................................................................................................... 12
3.3.2.1. MODELO CLIENTE SERVIDOR ........................................................................ 13
3.3.2.2. ARQUITECTURA EN CAPAS .............................................................................. 13
3.3.3. JAVA EE .................................................................................................................... 14
3.3.4. RESTFUL ................................................................................................................... 14
3.3.5. MOBILE .................................................................................................................... 14
3.3.5.1. APLICACIONES NATIVAS .................................................................................. 15
3.3.5.2. APLICACIONES WEB ......................................................................................... 15
3.3.5.3. APLICACIONES WEB NATIVAS .......................................................................... 15
3.3.6. PLATAFORMAS MOBILE........................................................................................... 16
3.3.6.1. ANDROID ......................................................................................................... 16
3.3.6.2. IOS ................................................................................................................... 16
3.3.6.3. WINDOWS MOBILE.......................................................................................... 17
3.4. HERRAMIENTAS RELACIONADAS ................................................................................ 18
3.4.1. IZAMERICA (NACIONAL) .......................................................................................... 18
3.4.1.1. DISEO WEB .................................................................................................... 18
3.4.1.2. LA SOLUCIN PLANTEADA............................................................................... 19
3.4.1.3. APLICACIN MOBILE ....................................................................................... 20
3.4.2. MULTICAR (NACIONAL) ........................................................................................... 20
3.4.2.1. DISEO WEB .................................................................................................... 21
3.4.2.2. LA SOLUCION PLANTEADA............................................................................... 25
3.4.2.3. APLICACIN MOBILE ....................................................................................... 25
3.4.3. BOOKINGCAR (INTERNACIONAL) ............................................................................ 26
3.4.3.1. DISEO WEB .................................................................................................... 26
3.4.3.2. LA SOLUCIN PLANTEADA............................................................................... 27
3.4.3.3. APLICACIN MOBILE ....................................................................................... 28
3.4.4. IBEXRENTACAR (SOFTWARE)................................................................................... 28
3.4.4.1. IBEXRENTACAR BASE ....................................................................................... 29
3.4.4.2. EXTENSIN CONTABILIDAD ............................................................................. 30
3.4.4.3. EXTENSIN PAGINA WEB / WIDGET INTEGRABLE .......................................... 30
3.4.4.4. EXTENSIN CONTRATOS ................................................................................. 31
3.4.4.5. APLICACIN MOBILE ....................................................................................... 31
3.4.4.6. IMGENES DEL PANEL DE ADMINISTRACIN ................................................. 32
3.4.4.7. IMGENES PAGINA WEB ................................................................................. 34
3.4.4.8. IMGENES APLICACIN MOBILE ..................................................................... 35
3.5. CONCLUSIONES ........................................................................................................... 36
4. ANLISIS DEL PROBLEMA .................................................................................................... 38
4.1. REQUERIMIENTOS DEL SISTEMA ................................................................................. 38
4.2. VISTA DEL MODELO DE CASOS DE USO....................................................................... 39
4.2.1. CASOS DE USO RELEVANTES A LA ARQUITECTURA................................................. 40
4.2.1.1. BUSCAR VEHCULO .......................................................................................... 40
4.2.1.2. AGENDAR RESERVA ......................................................................................... 40
4.2.1.3. ALQUILER DE VEHCULO .................................................................................. 40
4.3. DOMINIO DEL PROBLEMA ........................................................................................... 41
4.4. ARQUITECTURA DEL SISTEMA ..................................................................................... 42
4.4.1. TRAZABILIDAD DESDE EL MODELO DE CASOS DE USO AL MODELO DE DISEO .... 42
4.5. VISTA DEL MODELO DE DISEO .................................................................................. 43
4.5.1. DESCOMPOSICIN EN SUBSISTEMAS...................................................................... 43
4.5.2. WEB ......................................................................................................................... 43
4.5.3. APLICACIN ANDROID (APP ANDROID) .................................................................. 44
4.5.4. SERVICIOS ................................................................................................................ 44
4.5.5. PERSISTENCIA .......................................................................................................... 44
4.6. TRAZABILIDAD DESDE EL MODELO DE DISEO AL MODELO DE IMPLEMENTACIN . 45
4.6.1. VISTA DEL MODELO DE DISTRIBUCIN ................................................................... 45
4.6.2. VISTA DEL MODELO DE IMPLEMENTACIN ............................................................ 45
5. IMPLEMENTACIN .............................................................................................................. 46
5.1. METODOLOGAS DE TRABAJO ..................................................................................... 46
5.2. ENTORNO DE DESARROLLO......................................................................................... 47
5.3. ENTORNO DE EJECUCIN ............................................................................................ 48
5.4. TECNOLOGAS APLICADAS........................................................................................... 48
5.4.1. CAPA DE PERSISTENCIA ........................................................................................... 50
5.4.2. CAPA DE NEGOCIO .................................................................................................. 50
5.4.3. CAPA DE PRESENTACIN ......................................................................................... 51
5.4.3.1. WEB ................................................................................................................. 52
5.4.3.2. ANDROID ......................................................................................................... 54
5.5. PROBLEMAS ENCONTRADOS ...................................................................................... 54
5.6. HORAS DEDICADAS...................................................................................................... 55
5.7. LA HERRAMIENTA DESARROLLADA ............................................................................. 56
6. CONCLUSIONES ................................................................................................................... 60
6.1. TRABAJOS A FUTURO .................................................................................................. 60
7. REFERENCIAS ....................................................................................................................... 62
AGRADECIMIENTOS

Queremos agradecer a nuestras familias y amigos, quienes estuvieron presente durante


el trayecto recorrido, quienes nos brindaron apoyo a travs de sus palabras, sus consejos
y una constante motivacin para que pudiramos llegar a nuestra meta.

Tambin queremos mostrar total gratitud a nuestra tutora, Montserrat Lpez, quien a
travs de su conocimiento y experiencia nos ha guiado desde el inicio, nos ha evacuado
nuestras dudas y nos ha brindado su apoyo, el cul ha sido clave para que pudisemos
culminar en tiempo y forma este proyecto.

4
RESUMEN

En el marco de la asignatura Proyecto se presentar a continuacin un resumen para


mayor entendimiento del mismo y a lo largo del documento se darn ms detalles al
respecto.

Uruguay se caracteriza por ser un pas con alto impacto en el sector turstico. Para
apoyar el desarrollo y crecimiento de dicho sector se busca ofrecer un servicio que
brinde a los turistas ciertas comodidades que an no estn lo suficientemente
explotadas a nivel local.

Se propone analizar la manera de realizar un sistema de gestin para una empresa de


alquiler de vehculos, con el fin de llevar a cabo una gestin eficiente y a su vez captar
clientes de forma rpida, es decir, antes que puedan ser captados por la competencia.

El objetivo planteado es estudiar y aplicar en la prctica las tecnologas Java Enterprise


Edition, Android SDK y AngularJS para el desarrollo de una plataforma web. Para resolver
esta problemtica, se plante un sistema informtico que permitir acceder desde una
plataforma web a los empleados y administradores que gestionen la empresa, y a su vez
con un fuerte enfoque hacia los clientes, quienes podrn realizar reservas y pagos a
travs de la misma.

Adems, se desarrollar una aplicacin mvil para dispositivos Android, que permitir a
los clientes el acceso a la bsqueda de vehculos segn los criterios de necesidad,
permitindoles realizar pagos en el momento.

PALABRAS CLAVES

Alquiler de vehculos, Java EE, Android, AngularJS, PostgreSQL, MongoDB.

5
1. INTRODUCCIN

Es de conocimiento generalizado que el Turismo es una de las actividades econmicas


ms importantes del Uruguay y de Latinoamrica en general, ya que no solo impacta al
sector econmico, sino que adems influye en los resultados de otros sectores, como lo
son la manutencin de reservas naturales y la conservacin del medio ambiente en ellas.
Cuando se habla de Turismo, no solamente se hace referencia a turistas extranjeros,
sino que tambin se incluye al turista local.

Una forma de atraer mayor cantidad de turistas es brindar servicios que generen confort
y satisfaccin para ellos, y sin duda los servicios ms codiciados son aquellos que brindan
movilidad e independencia para recorrer las reservas naturales y zonas de inters que
tiene el pas. Un servicio que provee de estas condiciones es aquel que brindan las
empresas de alquiler de vehculos.

Por otra parte, una forma de brindar un servicio redituable y que a su vez genere confort
y satisfaccin en un potencial consumidor, es permitirle hacer uso de dicho servicio en
el momento que lo desea y desde el lugar en donde se encuentre. Muchos actan de
forma impulsiva, y cuanto ms tiempo transcurra desde que surge la necesidad, mayor
es la posibilidad de que su inters decaiga. Es por este motivo que las empresas apoyan
sus estrategias de ventas en los avances tecnolgicos, como lo son las aplicaciones
mviles, las aplicaciones web y los sistemas de pago electrnico que permiten
aprovechar el impulso del cliente para satisfacer su necesidad de forma casi instantnea.

Es por lo expresado anteriormente que las empresas buscan obtener sistemas


informticos que permitan a los clientes acceder a sus servicios en el momento que ellos
lo desean. Pero tambin dichas empresas buscan que estos sistemas permiten mejorar
su gestin, obteniendo informacin al momento que se genera y brindando a sus
empleados herramientas que faciliten su labor, a travs de interfaces amigables e
intuitivas.

Por lo tanto, el problema planteado y los objetivos deseados, llevan a la necesidad de


entender en mayor profundidad la realidad de las empresas de alquiler de vehculos, de
sus gestiones, la administracin de sus vehculos y tarifas. A su vez, se plantea la
necesidad de realizar una solucin informtica a los problemas planteados.

6
El siguiente captulo, titulado Objetivos Planteados y Resultados Esperados, hace
referencia a las necesidades planteadas por el cliente y los resultados que se esperan al
final del proyecto. En el captulo Estado del Arte, se presenta un marco conceptual que
servir de base terica para comprender los captulos posteriores. En el siguiente
captulo, Anlisis del Problema, se detalla la solucin referente a las aplicaciones
planteadas. Luego en el captulo Implementacin, se detalla el proceso de desarrollo,
los problemas encontrados y la evolucin del proyecto. Por ltimo, en el captulo
Conclusiones, se analizan los resultados obtenidos, el trabajo realizado y se plantean
eventuales mejoras que se pueden implementar e incorporar al sistema como trabajos
a futuro.

7
2. OBJETIVOS PLANTEADOS Y RESULTADOS ESPERADOS

El objetivo del proyecto consiste en analizar y desarrollar un sistema que brinde soporte
y oficie de plataforma de gestin para empresas dedicadas al alquiler de vehculos sin
conductor. Como parte del anlisis se espera estudiar las tecnologas JavaEE1 y
AngularJS2 para el desarrollo de una plataforma web y Android SDK3 para el desarrollo
de una plataforma para dispositivos mviles.

Como caso de estudio, se pretende desarrollar un software que oficie de plataforma


para el alquiler de vehculos, en diferentes ciudades dentro de Uruguay. Especialmente
diseado para ser amigable, atractivo, confiable y seguro, para los clientes que desean
alquilar un vehculo.

Se espera la realizacin de una aplicacin mvil disponible en Android que brinde a los
clientes de la compaa la posibilidad de buscar y reservar vehculos, permitiendo el
pago en lnea de dicha reserva.

Como solucin final se espera una aplicacin funcionando como resultado al problema
planteado.

8
3. ESTADO DEL ARTE

Esta seccin formaliza e intenta expresar de forma clara la investigacin realizada sobre
las aplicaciones web y mviles, as como tecnologas aplicadas para cada desarrollo en
lo que refiere a sistemas para administracin y gestin de empresas de alquiler de
vehculos.

Su propsito es presentar un marco conceptual que servir de base terica para el


seguimiento y compresin del enfoque que se le dar al problema.

3.1. MARCO TERICO

La necesidad de entender el funcionamiento de las empresas de alquiler de vehculos4,


requiere conocer en primera instancia el producto o servicio que ofrecen, el mercado al
cual se enfrentan, el tipo de cliente al que va dirigido dicho servicio, la competencia y
las normativas legales a las cuales se tiene que ajustar.

3.1.1. EL PRODUCTO O SERVICIO

El servicio brindado por las empresas de alquiler de vehculos sin conductor es opcin
clara para aquellos que buscan comodidad, confort, independencia y facilidad en el
traslado, ya que brindan la posibilidad de adquirir un medio de transporte por un lapso
de tiempo que puede variar segn las necesidades del cliente.

3.1.2. EL MERCADO

El mercado en el que se sitan las empresas de alquiler de vehculos es ampliamente


regulado y cuenta con exigencias muy especficas a la hora de montar el negocio. Sin
embargo, muchas de las empresas que se encuentran en este mercado, no han tenido
cambios sustanciales a lo largo de los aos, por lo cual para poder explotar nuevas
posibilidades se debe salir del tradicionalismo que por lo general cuentan las compaas
ya existentes. Por lo que el negocio de alquiler de vehculos tiene an mucho margen de
crecimiento en Uruguay si se compara con el plano internacional.

9
3.1.3. LOS CLIENTES

Al momento de montar el negocio es importante definir a qu tipo de cliente va dirigido


el servicio. Dentro de los posibles tipos de cliente se pueden destacar los siguientes:

Turistas nacionales
Son aquellos que no cuentan con vehculo propio y desean recorrer el
territorio nacional sin necesidad de depender de horarios.

Turistas extranjeros
Son aquellos turistas que arriban al pas y requieren de un medio de
transporte para recorrer el territorio nacional. Este tipo de cliente es el ms
frecuente.

Empresas
Las empresas muchas veces cuentan con la necesidad de trasladar a sus
funcionarios a otro punto del pas, por lo que muchas veces se deciden por
contratar este tipo de servicios para no depender de los horarios definidos
por otro tipo de empresas de transporte.

Eventos
Este tipo de cliente hace referencia a aquellos que desean rentar un vehculo
para eventos especficos, como casamientos, fiestas de 15, graduaciones,
etc.

Clientes puntuales
Esta ltima categorizacin refiere a aquellos clientes no habituales, los cuales
no utilizan recurrentemente este tipo de servicios, un claro ejemplo es una
persona que cuenta con vehculo propio en donde el mismo podra estar en
mantenimiento y requiere hacer uso del servicio de alquiler.

3.1.4. LA COMPETENCIA

Es conveniente analizar y conocer algunas agencias que operan a nivel nacional e


internacional, de qu forma lo hacen, que precios manejan, que tipo de vehculos
utilizan. Es importante detectar debilidades y fortalezas para luego utilizar esta
informacin para marcar una diferencia. En la seccin 3.4 se detalla la investigacin
realizada sobre las aplicaciones web y mviles de empresas de alquiler de vehculos,
tanto nacionales como internacionales.

10
3.2. MARCO LEGAL

El decreto 226/015, artculo 5, inciso b, se establece que se debe exhibir el nmero de


inscripcin en el Registro de Prestadores de Servicios Tursticos, as como la
documentacin entregada por el Ministerio de Turismo y Deporte. Inciso d, llevar un
libro de quejas, certificado por el RPST (Registro de Prestadores de Servicios Tursticos),
donde los clientes pueden registrar quejas, denuncias y/o observaciones, indicando su
nombre, documento de identidad y domicilio. Inciso g, exhibir en forma clara y visible
los medios de pago disponibles.

En su artculo 13 establece que debe tener 5 vehculos registrados como mnimo al


momento de apertura.

El artculo 14 dictamina que las unidades afectadas a la empresa no pueden tener una
antigedad mayor a cuatro aos, salvo en caso de vehculos de coleccin, entindase
por los de coleccin, vehculos con ms de 35 aos de antigedad que posean
caractersticas singulares propias o derivadas de escasez manifiesta y que acrediten
estar habilitados para circular.

El artculo 17 establece que anualmente se debe enviar una declaracin jurada segn
formulario expedido por el RPST.

3.3. TECNOLOGAS

Para poder comprender el problema desde el punto de vista tcnico, es importante


introducir algunos conceptos clave. Estos se detallan a continuacin.

3.3.1. WEB

Web5, como su traduccin lo indica, significa red, y en lo que a tecnologas refiere, se


utiliza para denominar a una red informtica, y particularmente a Internet. A partir de
dicho concepto se pueden encontrar trminos como pgina web, servidor web,
navegador web, entre otros.

11
La Internet, tambin conocida como World Wide Web (WWW), se puede entender como
una red mundial de computadoras que permite el acceso a diferentes tipos de
informacin, as como tambin, el intercambio de diferentes tipos de archivos a travs
de sitios y pginas web, publicadas por servidores web, accedidas por navegadores web.

Todos los conceptos descritos anteriormente, son abarcados por lo que se denomina
Tecnologas Web, siendo estas las herramientas que faciliten el desarrollo de sitios web.
Estas permiten lograr mejores y ms rpidos resultados, principalmente tiles a la hora
de escalar las soluciones alcanzadas.

En la actualidad, el acceso a contenidos mediante sitios web se puede realizar desde


mltiples y variadas plataformas, dejando de lado la antigua necesidad de contar con un
ordenador personal para dichos fines. Los telfonos inteligentes o smartphones,
tabletas y otros dispositivos encontrados en el hogar y en la vida cotidiana son algunos
ejemplos al respecto. Esto se debe al crecimiento exponencial que ha tenido la Internet,
que es directamente proporcional al crecimiento de la necesidad de acceder a los
contenidos que sta brinda. Por esta razn ha dejado de ser una simple herramienta de
consulta para convertirse en parte de la vida cotidiana y conllevando a la necesidad de
acceder a informacin o aplicaciones desde cualquier lugar y en cualquier momento.

3.3.1.1. WEBSOCKETS

Websockets es una tecnologa que permite tener una comunicacin interactiva y


bidireccional entre el navegador (Cliente) y el servidor. Estos permiten compartir datos
rpidamente, ya que permiten establecer la conexin una vez, realizando una conexin
persistente, para enviar datos en ambas direcciones sin necesidad de establecer la
conexin cada vez que un dato necesita ser enviado.

3.3.2. ARQUITECTURAS

El concepto de arquitectura de software6 representa estructuralmente un diseo de alto


nivel del sistema y tiene como objetivo ayudar a satisfacer los atributos de calidad y a
su vez servir como gua para el desarrollo. Es por este motivo que idealmente se crea en
etapas tempranas del desarrollo. A continuacin, se presentan los modelos de
arquitectura ms conocidos.

12
3.3.2.1. MODELO CLIENTE SERVIDOR

En las aplicaciones web, generalmente el usuario final, o en este caso cliente, inicia una
comunicacin cuando desea acceder o interactuar con el servicio. El cliente en este caso
entra en contacto con el servidor, quien le brinda la informacin deseada, o
eventualmente reacciona ante la peticin del cliente. En este modelo el cliente no es
tanto el usuario, sino el programa o dispositivo que entra en contacto con el servidor
remoto a efectos de lograr la interaccin deseada.

3.3.2.2. ARQUITECTURA EN CAPAS

La arquitectura en capas propone separar la lgica del negocio del diseo de la interfaz
de usuario. De esta forma se facilita el mantenimiento del sistema, y el desarrollo inicial
del mismo, permitiendo abstraerse de la solucin y concentrarse en una capa puntual.

Generalmente se habla de tres capas, stas son:

Capa de presentacin
Es la cara visible de la aplicacin, la que permite al usuario hacerse de la
informacin solicitada, o interactuar con el servicio ofrecido. En ella el usuario
ingresa datos que posteriormente son enviados a la siguiente capa, a la vez que
recibe los resultados obtenidos de la misma, la capa de negocio.

Capa de negocio
Cada negocio o escenario plantea y define sus propias reglas, a las cuales se les
denomina reglas de negocio. Estas reglas son el ncleo de la aplicacin o sistema
y son las que definen las funcionalidades que se ofrecen en el mismo. De ah el
nombre de esta capa. Para sustentar estas reglas, es aqu donde el sistema
ejecuta, procesa y resuelve las peticiones de cada cliente, devolviendo datos en
caso de ser necesario. Para poder realizar estas acciones, es necesario
interactuar con la siguiente capa de la arquitectura, la capa de datos.

Capa de datos
La capa de acceso a datos, o simplemente capa de datos, es la encargada de
procesar las peticiones de datos, y devolverlas a la capa anterior, as como
actualizar o agregar informacin al juego de datos. Por este motivo es la
encargada de comunicarse con los datos mismos, los que se suelen persistir, ya
sea en sistemas de archivos, base de datos, o algn otro modo de
almacenamiento.

13
3.3.3. JAVA EE

Java7 es un lenguaje de programacin orientado a objetos multiplataforma, lo que


permite que las aplicaciones con l desarrolladas se ejecuten en diferentes dispositivos
sin necesidad de recompilar el programa. Esto se logra haciendo que las aplicaciones se
ejecuten en mquinas virtuales Java (JVM), sin importar la arquitectura del dispositivo
en el que ser ejecutado posteriormente. Por su parte, Java Empresarial o Java EE, es
una plataforma de programacin para desarrollo y ejecucin de aplicaciones Java, que
permite utilizar arquitecturas de N capas y se apoya en componentes modulares que se
ejecutan sobre un servidor de aplicaciones. De esta forma se logra, entre otras
funcionalidades, interactuar con varias fuentes de datos al tiempo de interactuar con
otros sistemas, sin descuidar los requerimientos de seguridad y permitiendo acceso
mediante web con alta concurrencia.

3.3.4. RESTFUL

Un servicio RESTful8 hace referencia a un servicio web que implementa la arquitectura


REST (REpresentational State Transfer), la cual podramos decir que es un conjunto de
principios, o maneras de hacer las cosas, que define la interaccin entre distintos
componentes, es decir, las reglas que dichos componentes tienen que seguir. En dicha
arquitectura, un servidor provee acceso a recursos y los clientes REST acceden y
presentan los recursos.

Estos servicios son livianos, escalables y fciles de mantener, por ello son considerados
el estilo de arquitectura ms adecuado para el desarrollo de aplicaciones web. Tambin
existen otros servicios, tales como SOAP9 (Simple Object Access Protocol) que estn
basados en lenguaje XML, permiten la interaccin entre varios dispositivos y tienen la
capacidad de transmitir informacin compleja.

3.3.5. MOBILE

Aunque el telfono mvil una vez fue considerado como un lujo para ejecutivos de
negocios y los ricos, se ha convertido en una necesidad para la mayora de la gente en
el mundo de hoy. Los telfonos celulares han tenido un impacto en casi todas las reas
de la cultura, y van a seguir cambiando la forma de interactuar con otras personas.
(Arthur, s.f.)

14
El trmino Mobile10 hoy en da no solo aplica a telfonos mviles en s mismos, sino que
tambin abarca otros dispositivos, como Tablets, Smartphones, Smart TV entre otros,
que permiten acceder a aplicaciones en cualquier momento y desde casi cualquier
ubicacin. Este avance tecnolgico ha conllevado a un incremento exponencial de las
aplicaciones que soportan estos dispositivos, por lo que el mercado de dichas
aplicaciones mviles o Apps no ha parado de crecer.
Se pueden encontrar 3 tipos de aplicaciones mviles11, las cuales se pueden adaptar
mejor unas que otras segn las circunstancias. Estas se describen a continuacin.

3.3.5.1. APLICACIONES NATIVAS

Este tipo de aplicacin se desarrolla sobre Software Development Kit o SDK, que es un
conjunto de herramientas que ayudan a programar la aplicacin para un entorno
tecnolgico especfico. Al existir distintas plataformas, como Android, iOS o Windows
Mobile, y cada una de ellas contar con un sistema totalmente diferente, si se desea tener
un sistema en todas las plataformas, es necesario crear varias Apps con el lenguaje del
sistema operativo correspondiente.

Cuando se habla de desarrollo Mobile, habitualmente se hace referencia a aplicaciones


nativas, ya que tienen como ventaja, respecto a otro tipo de aplicaciones mviles, la
posibilidad de utilizar funciones del hardware del dispositivo como, por ejemplo, GPS,
cmara, almacenamiento, etc.

3.3.5.2. APLICACIONES WEB

Una aplicacin web o web App es aquella que se ejecuta dentro del propio navegador
web del dispositivo a travs de una URL. Tiene la ventaja de no requerir instalacin en
el dispositivo, lo que, a su vez, facilita a nivel de desarrollo, ya que permite programar
una nica App independientemente del sistema operativo en el que se vaya a ejecutar.

3.3.5.3. APLICACIONES WEB NATIVAS

Las aplicaciones web nativas, tambin conocidas como aplicaciones hbridas, son
aquellas que comparten caractersticas de las aplicaciones web y las aplicaciones
nativas. Se podra decir que es un tipo de App que recoge lo mejor de los dos tipos de
aplicaciones mencionados anteriormente, ya que se desarrollan para ser ejecutadas a

15
travs de un navegador al igual que la web App, pero a su vez permiten cierta integracin
con el dispositivo, permitiendo acceder a algunas de sus caractersticas de hardware.

3.3.6. PLATAFORMAS MOBILE

3.3.6.1. ANDROID

Android12 es un sistema operativo desarrollado, desde la ideologa OpenSource, por la


compaa Google. Est basado en GNU Linux y enfocado a dispositivos mviles de todo
tipo, ya sean telfonos mviles, tabletas e incluso mini ordenadores porttiles.

Ventajas

Android es un sistema operativo de cdigo abierto y es apto para cualquier


dispositivo. Esto permite que distintas compaas lo utilicen como base,
aplicndole sus propias capas de personalizacin.
Es fcil encontrar firmwares no oficiales con actualizaciones ms recientes, las
cuales son bastante simples de aplicar a los dispositivos.
Es bastante ms sencillo, respecto a otras plataformas, el acceso a instalar
aplicaciones de terceros no homologadas por Google. Esto permite probar
aplicaciones de todo tipo, lo que para un desarrollador es una ventaja.

Desventajas

Una de las principales desventajas es que, al poder aplicar capas de


personalizaciones variadas por las distintas compaas, muchas veces las
actualizaciones no solo no llegan en tiempo y forma, si no que algunas veces son
discontinuadas para dar soporte a terminales ms nuevos.
Otra desventaja es que al tener fcil acceso para instalar aplicaciones no
homologadas se abre una puerta de acceso a la informacin del dispositivo para
desarrolladores mal intencionados.

3.3.6.2. IOS

iOS13 es un sistema operativo propiedad de Apple14 y est orientado especficamente


para su uso mediante dispositivos mviles de dicha compaa, y es una variante del Mac
OS X, que es el sistema operativo para computadoras de Apple. iOS, al igual que OS X,
est basado en Unix, por lo tanto, guarda muchas similitudes con Linux (sistema

16
operativo basado en el mismo sistema), pero a diferencia de este ltimo, iOS y OS X son
sistemas operativos propietarios de Apple y estn cerrados para el uso especfico de sus
dispositivos, mientras que Linux es de cdigo abierto y puede ser utilizado en una
infinidad de dispositivos.

Ventajas

Un buen punto a favor de iOS es que aun siendo un sistema operativo pura y
exclusivamente para dispositivos de la marca Apple, sta libera su kit de
desarrollo para que pueda ser mejorado por otros desarrolladores, haciendo
que, de esta forma, la App Store sea considerada la tienda con mayor cantidad
de aplicaciones disponibles.
Tiempo de respuesta de aplicaciones es muy bueno.
Interfaz intuitiva.

Desventajas

La principal desventaja es que, al ser propiedad exclusiva de Apple, solo se puede


disponer adquiriendo un dispositivo de la mencionada compaa.
Otra desventaja es a nivel del uso de su multi-tarea, ya que reserva la misma para
algunos procesos fundamentales y no para cualquier tipo de aplicacin.
Requiere de iTunes para poder suministrarle contenido al dispositivo.

3.3.6.3. WINDOWS MOBILE

Windows Mobile15 es la adaptacin para dispositivos mviles del clsico sistema


operativo de Microsoft. Este sistema operativo porttil ofrece funcionalidades de la
versin de escritorio de Windows y por tanto permite mejor integracin entre el
dispositivo mvil que cuente con esta plataforma y un PC de escritorio que cuente con
alguna de las versiones de Microsoft Windows 8 o superior. Para ello, se basa en
Windows CE y utiliza las API de este sistema operativo.

Ventajas

Interfaz muy intuitiva para el usuario, permite acceder fcil y rpidamente a


todas las aplicaciones, configuracin, ajustes, etc.
Fcil integracin con el sistema operativo Windows para mquinas de escritorio
y porttiles.

17
Desventajas

Personalizacin muy limitada, la cual se atribuye normalmente al cambio de


colores
No es multi-tarea con aplicaciones de terceros, esto hace que al cerrar una app
haya que recargar todo de nuevo al querer abrirla nuevamente.
El cerrar aplicaciones en segundo plano puede ser complicado.

3.4. HERRAMIENTAS RELACIONADAS

Adems de realizar un anlisis de la realidad del objeto de estudio, y de entender


conceptos tiles para llevar a cabo una solucin al problema planteado, es necesario
conocer y analizar otras soluciones pertenecientes al mismo rubro, tanto a nivel nacional
como internacional, con el objetivo de detectar fortalezas y debilidades en cada una.

3.4.1. IZAMERICA (NACIONAL)

IZAmerica Rent a Car16 es una empresa nacional creada en abril de 2010 en base a un
proyecto familiar. Tiene como objetivo principal satisfacer la demanda de vehculos para
pblico general, ofreciendo atencin personalizada las 24 horas.

3.4.1.1. DISEO WEB

La Imagen I muestra la pgina principal de IZAmerica donde se puede ver informacin


de contacto un resumen de la flota que posee la compaa e informacin de inters. En
la imagen II se muestra el contenido de la flota dividido por categoras como, por
ejemplo, Econmicos, Intermedios, Superior, Minivan, etc.

18
Imagen I Pgina principal de izamerica.com.uy.

Imagen II Apartado de vehculos (Flota) de izamerica.com.uy.

3.4.1.2. LA SOLUCIN PLANTEADA

A nivel empresarial IZAmerica ofrece los servicios requeridos en el rubro de alquiler de


vehculos, complementado de servicios extras como lo son, el auto lavado y gomera.
Sin embargo, destacamos que carece de servicios en lnea para que sus clientes puedan
realizar los trmites en forma remota. Si bien su sitio web est planteado a nivel
informativo, carece de informacin bsica como, por ejemplo, cantidad de vehculos por
modelo, disponibilidad, calculador de tarifas, fotos reales de su flota, consultas en lnea.

19
Adems de IZAmerica se evaluaron otras compaas nacionales como, por ejemplo, Plus
Rent a Car, obteniendo del anlisis resultados similares.

Fortalezas:

Listado de la flota de vehculos que poseen y su respectiva informacin.


Informacin sobre servicios extras dentro de la misma empresa, tales como auto
lavado y gomera.
Informacin de contacto. Localizacin de lugar fsico. Servicio telefnico 24
horas, los 365 das del ao.
Diseo simple.
Variedad y categorizacin de vehculos: Econmicos, Intermedios, Superior,
Minivan, Van.
Atencin telefnica.
Informacin de otros servicios.
Pgina web responsive.

Debilidades:

No cuenta con funcionalidad de reserva online (crtico).


No cuenta con informacin de tarifas y costos (alto).
Poca informacin de los vehculos y falta de imgenes reales (alto).
Carece de aplicacin Mobile.

3.4.1.3. APLICACIN MOBILE

No posee aplicacin Mobile.

3.4.2. MULTICAR (NACIONAL)

Constituida hace ya ms de 20 aos, Multicar Rent-A-Car17 es una empresa pionera en


el alquiler de autos sin chofer, que opera con autorizacin del Ministerio de Turismo de
Uruguay.

20
3.4.2.1. DISEO WEB

En las imgenes III y IV se puede visualizar la pgina de inicio de Multicar en donde se


encuentra informacin de contacto, acceso a las distintas secciones de la web, acceso
destacado a la flota de vehculos, la seccin de reserva y la informacin de las agencias.
Tambin se puede apreciar un mapa del Uruguay con la ubicacin de sus agencias y los
puntos de auxilio mecnico.
En la imagen V se muestra el apartado que detalla la flota, donde incluye caractersticas
de los vehculos, as como tambin las tarifas base de los mismos.

Las imgenes VI, VII, VIII y IX muestran el proceso de reserva de un vehculo.

Imagen III Parte superior de la pgina de inicio de Multicar.

21
Imagen IV Parte inferior de la pgina de inicio de Multicar.

Imagen V Apartado de la flota vehicular en la pgina de Multicar.

22
Imagen VI Primer paso para la reserva de vehculo (Seleccin de fechas y lugares de
recogida y devolucin, as como tambin estimacin de kilometraje a recorrer).

Imagen VII Segundo paso para la reserva de vehculo (Seleccin de coche segn
necesidades ya sea por rango de precio o categoras).

23
Imagen VIII Tercer paso en la reserva de vehculo (Seleccin de adicionales).

Imagen IX Cuarto paso en la reserva de vehculo (Completar el formulario con los


datos del cliente para enviar la solicitud de reserva).

24
3.4.2.2. LA SOLUCION PLANTEADA

La solucin planteada por Multicar es de las ms completas a nivel nacional, siendo en


su mayora a nivel informativa, tambin permite al cliente comenzar la gestin de
reserva, seleccionando las fechas de entrega y devolucin, as como tambin el local
donde recoger el vehculo y el local donde lo devolver. La reserva permite seleccionar
un vehculo de entre la flota total, agregar extras y conocer el valor a abonar. Al finalizar
la reserva se enva un formulario web para que la compaa se ponga en contacto con
el cliente a fin de efectivizar la reserva ya que no permite el pago en lnea.

A nivel informativo destaca datos de la flota disponible por la compaa, una vista de
mapa con los locales y los puntos de auxilio mecnico de la compaa, una seccin de
preguntas frecuentes y un chat para atencin personalizada.

Fortalezas:

Cuenta con informacin de tarifas y costos de alquiler.


Sitio multilenguaje.
Gran listado de flota vehicular.
Generar solicitud de reserva.
Posibilidad de seleccionar extras adicionales en el vehculo.
Informacin de sucursales con ubicacin en el mapa.

Debilidades:

Carece de posibilidades de pago online.


No tiene sistema de registro por lo cual hay que rellenar el formulario de datos
de cliente en cada solicitud.

3.4.2.3. APLICACIN MOBILE

No posee aplicacin Mobile.

25
3.4.3. BOOKINGCAR (INTERNACIONAL)

BookingCar18 es una empresa internacional que centraliza los servicios de varias


compaas de renta de vehculos alrededor de todo el mundo a travs de su sistema
online.

3.4.3.1. DISEO WEB

En la imagen X se puede ver la pgina de inicio de BookingCar en donde se ingresan los


parmetros de bsqueda, mientras que en la imagen XI se puede ver el resultado de la
bsqueda segn los filtros aplicados, en donde muestra la flota disponible segn los
requerimientos del cliente.

En la imagen XII se muestra el comienzo del inicio de gestin de la reserva, en la cual


indica que se tardar menos de 2 minutos, pero debido a la cantidad de pasos requeridos
puede llevar ms tiempo del esperado.

Imagen X Pgina de inicio de BookingCar.com.

26
Imagen XI Seleccin de vehculo.

Imagen XII Comienzo del proceso de reserva.

3.4.3.2. LA SOLUCIN PLANTEADA

BookingCar ofrece un servicio totalmente orientado al usuario, ya que agrupa distintas


compaas teniendo mayor posibilidad de brindar resultados en base a los
requerimientos de cada cliente. Ofrece tanto un sistema de reserva vehicular mediante

27
pagos en lnea, como un sistema de cancelacin de las mismas, adems permite realizar
bsquedas en distintos pases seleccionando a su vez punto de recogida como punto de
devolucin en diferentes localidades.
Si bien es un sistema orientado a el usuario, este en algunos casos es poco amigable
debido a la cantidad de pasos a seguir en el proceso de reserva, donde algunos de ellos
son bastantes complejos y poco intuitivos.

Fortalezas:

Cobertura de alquileres vehicular en todo el mundo.


Bsqueda avanzada de vehculos disponibles segn los requerimientos del
usuario.
Asociacin con diferentes proveedores de alquiler, que habilita la posibilidad de
devolver el vehculo en una localizacin distinta a la de origen.
Sistema de pago y reservas de alquiler online
Pgina web responsive.
Cuenta con informacin de tarifas y costos de alquiler.
Sistema de bsqueda y gran disposicin de alquiler a travs de todo el mundo.
Sitio multilenguaje.
Gran listado de flota vehicular en todo el mundo.
Sistema de cancelacin de reservas.
Posibilidad de seleccionar extras adicionales en el vehculo.

Debilidades:

Diseo y sistema de muchos pasos, no tan simple para el usuario (medio).


Informacin de los vehculos poca robusta y falta de imgenes reales (medio).
Carece de aplicacin Mobile

3.4.3.3. APLICACIN MOBILE

No posee aplicacin Mobile.

3.4.4. IBEXRENTACAR (SOFTWARE)

Ibexrentacar19 es un CRS (Computer Reservations System) desarrollado por


Ibexestudio20, que est especializado en gestin de alquiler de vehculos. Esta
herramienta est diseada para gestionar flotas y reservas mediante la modalidad de

28
software como servicio (Software as a Service o SaaS). Es una solucin 100% en la nube,
por esto cuenta con acceso online desde cualquier dispositivo y plataforma que cuente
con conexin a internet.

Esta solucin est dividida en un software base y luego extensiones las cuales incluyen
mdulos adicionales para mejorar las prestaciones que brinda el software. Ibexestudio
tambin provee una aplicacin nativa para Android con las mismas prestaciones que
brinda la pgina web para el cliente.

3.4.4.1. IBEXRENTACAR BASE

El software base de Ibexrentacar permite gestionar a nivel interno una empresa de


alquiler de vehculos. Los mdulos que incluye permiten tener coordinada toda la flota
a travs del sistema, conociendo la ubicacin de cada vehculo, el stock disponible y el
estado de cada uno de ellos. Tambin cuenta con una poderosa herramienta a nivel de
reservas, la cual gestiona simultneamente todos los tipos de reservas, ya sea con
control de stock de un vehculo seleccionado, a travs de un calendario de disponibilidad
o simplemente agendando una entrada y una salida del vehculo la cual registra fecha,
hora y lugar de origen y destino de la entrega y devolucin del vehculo.

A su vez cuenta con un gestor de tarifas que permite programar descuentos al realizar
reservas por lapso de varios das, calculando automticamente el costo total del alquiler,
aun cuando se incluyen extras.

Mdulos de ibexrentacar base

Gestin de flota y stock


Reservas manuales
MultiTarifas y Grupos
Agenda: Entrada/Salida
Planning de reservas
Calendario de disponibilidad
Clientes
Lugares de recogida y devolucin
Extras
Stop Sales

29
3.4.4.2. EXTENSIN CONTABILIDAD

La extensin de contabilidad permite controlar la facturacin del negocio, gestionando


las facturas tanto de clientes como proveedores y permitiendo generar informes de
resultados, tanto por fecha como por sucursal. Tiene como objetivo conocer de forma
rpida el funcionamiento del negocio para planear estrategias de mejoras.

Mdulos de la extensin contabilidad

Facturacin y proveedores
Informe facturacin

3.4.4.3. EXTENSIN PAGINA WEB / WIDGET INTEGRABLE

Esta extensin cuenta con una pgina web bajo plantilla con configuracin de logotipo
y color corporativo, la cual cuenta con un motor de reserva, stock de vehculos
sincronizado con el panel de gestin y con sistema de pago a travs de PayPal, TPV
(Terminal Punto de Venta) online, TPV manual o por transferencia bancaria. Adems,
cuenta con un widget integrable para permitir contar de forma sencilla con todas las
funcionalidades del sistema de reservas online en un sitio web ya existente.

Sin dudas este es un mdulo indispensable, no solo a la hora de quitar los limitantes
geogrficos, sino tambin para brindar disponibilidad las 24 horas del da y poder agilizar
las operaciones.

Mdulos de la extensin pgina web / widget integrable

Pgina web responsive


Pago por transferencia bancaria
Pago por PayPal
Pago por TPV online
Pago por TPV Manual
Widget integrable

30
3.4.4.4. EXTENSIN CONTRATOS

El mdulo contratos tiene como objetivo optimizar las gestiones administrativas, ya que
permite tener organizada la informacin relacionada a los alquileres. Genera, guarda e
imprime los contratos de las reservas generadas y registra los movimientos financieros
en cada una de ellas, para tener controlados los ingresos y devoluciones.

Mdulos de la extensin contratos

Finanzas
Contratos

3.4.4.5. APLICACIN MOBILE

Ibexrentacar cuenta con una aplicacin Mobile nativa para Android en la que permite a
los usuarios ver el booking de vehculos para alquilar, realizar reservas, ver ubicaciones
de las oficinas y contactar con personal de la empresa de alquiler. A su vez cuenta con
una seccin exclusiva, asistencia en carretera, que permite a los usuarios que han
alquilado vehculos obtener ayuda inmediata y personalizada en casos de experimentar
problemas con el vehculo alquilado.

Ventajas:

Herramientas poderosas que abarcan toda la gestin de una empresa de alquiler


de vehculos.
Secciones bien definidas y de fcil utilizacin
Interfaz amigable que permite el uso intuitivo de las herramientas.
Atencin personalizada por parte del departamento comercial de Ibexestudio al
momento de contratar el servicio.
No se requiere de la compra de equipos informticos pues el software se ejecuta
en los servidores del proveedor.
Sistema dividido en mdulos lo cual permite ajustar la compra a las necesidades
del cliente. El proveedor ofrece presupuestos para implementaciones de
mdulos para necesidades especficas.
Aplicacin Mobile nativa para Android con las mismas prestaciones que brinda
la pgina web para clientes, a su vez brinda asistencia de en carretera tomando
la ubicacin actual del usuario.

31
Desventajas:

La informacin se encuentra alojada en los servidores de Ibexestudio, si bien


estos especifican que cuentan con servicios de seguridad mediante firewalls,
enrutadores inteligentes, y la conexin entre cliente-servidor se realiza mediante
protocolos seguros, no se puede garantizar la integridad de los datos ante una
falla del sistema por parte del proveedor.
Se deben adquirir licencias del software en base al volumen del negocio y de los
mdulos deseados. Al tener formato de software como servicio, estas licencias
tienen costes mensuales/anuales lo cual genera una dependencia hacia el
proveedor del servicio.

3.4.4.6. IMGENES DEL PANEL DE ADMINISTRACIN

Dashboard

En la imagen XIII se puede ver el dashboard del panel de administracin del sistema,
desde donde se puede acceder a todas las secciones del backoffice, y a su vez se muestra
informacin de utilidad como, por ejemplo, las reservas e ingresos de un rango de
fechas, las ultimas reservas creadas y la agenda de entrada/salida de vehculos para el
da.

Imagen XIII Dashboard del panel de administracin.

32
Gestor de reservas

En la imagen XIV se muestra informacin sobre las reservas, ranking de reservas por
grupo de vehculos, cantidad de das promedio por reserva, cantidad de reservas por
modelo, importe promedio por reservas, etc. Tambin permite generar una reserva
manual por personal de la compaa.

Imagen XIV Seccin de reservas en el panel de administracin.

Gestin de flota

Las imgenes XV y XVI muestran la seccin de gestin de vehculos. En la primera de


estas se puede ver el listado de vehculos con un resumen de informacin de estos y las
opciones para editar o borrarlos, tambin en este sector de la seccin se pueden
ingresar nuevos vehculos. En la segunda de estas imgenes se puede visualizar el panel
de inspeccin de vehculos, donde se informan las fechas en las que los vehculos deben
ser inspeccionados y se generan alertas informando las inspecciones que han expirado.

33
Imagen XV Gestin de flota.

Imagen XVI Inspeccin vehicular.

3.4.4.7. IMGENES PAGINA WEB

En la imagen XVII se puede ver la pgina web a la cual acceden los clientes, en este caso
se presenta la opcin de reserva para un modelo de coche en particular. En el momento
de gestionar la reserva se puede ver la informacin relacionada al vehculo y sus
prestaciones.

34
Imagen XVII Pgina web para clientes al momento de reservar un vehculo en
particular.

3.4.4.8. IMGENES APLICACIN MOBILE

En las imgenes XVIII, XIX e XX se muestra la aplicacin Mobile de Ibexrentacar. En la


imagen XVIII se presenta la vista inicial de la aplicacin la cual cuenta con accesos rpidos
a las distintas secciones de la aplicacin. En la imagen XIX se muestra la vista de
bsqueda de vehculos segn los parmetros deseados para la reserva. Y en la ltima
imagen se muestra la seccin de asistencia en carretera, un mdulo creado
especficamente para la aplicacin Mobile.

35
Imagen XVIII. Imagen XIX. Imagen XX.

3.5. CONCLUSIONES

Como se ha establecido en las secciones anteriores, existen distintos tipos de enfoques


para una compaa de alquiler de vehculos, por lo cual existe un abanico de
posibilidades importantes a la hora de plantear una solucin.

Al realizar la bsqueda de compaas nacionales, se encontr que en su mayora cuentan


con pginas webs a nivel informativo, por lo que los trmites del alquiler se deben
realizar exclusivamente en las oficinas, mientras que a nivel internacional el porcentaje
que utiliza medios electrnicos para agilizar la dinmica del trmite es mayor. Si bien se
encontraron sitios orientados a las necesidades del usuario, en su mayora tienen
formatos poco amigables, con pasos complejos y poco intuitivos.

Por otra parte, en la bsqueda de software para gestin de una compaa de alquiler de
coches, se detect que en su mayora se brindan de forma de software como servicio,
es decir, que estn alojados en la nube sin brindar la posibilidad al cliente de instalar el
sistema en sus propios servidores.

Dada la investigacin realizada, el enfoque que se tomar para esta propuesta se


centrar en la particular experiencia de usuario y la interfaz brindada al mismo, sin dejar
de lado los protocolos de seguridad y la robustez del sistema. Tambin se quiere brindar

36
la posibilidad de que el cliente escoja entre un software como servicio, es decir a travs
de la nube, o un sistema instalado en sus instalaciones bajo sus propios protocolos y
medidas de seguridad. Como complemento a la experiencia del usuario se brindar un
mdulo extra que ser una aplicacin Mobile nativa para dispositivos Android.

37
4. ANLISIS DEL PROBLEMA

Se presenta la necesidad de tener una plataforma para gestionar una empresa de


alquiler de vehculos con sucursales en distintos puntos del Uruguay. Por lo cual se crea
una aplicacin, dotada de un eficaz motor de bsquedas, con consulta de disponibilidad
vehicular en tiempo real en base a los criterios de necesidad aplicados, facilitando todo
el seguimiento durante el proceso de reserva, alquiler y devolucin de vehculos. Esta
aplicacin cuenta con un mdulo web para empleados y clientes de la compaa, que
permite visualizar la flota de vehculos con la que cuenta la empresa, la ubicacin de las
sucursales, reservas de vehculos con pago electrnico en lnea y atencin personalizada
a travs de un sistema de chat. Tambin se cuenta con una aplicacin Android que
permite a los clientes realizar los procesos de bsqueda, reserva y pago desde un
dispositivo inteligente.

4.1. REQUERIMIENTOS DEL SISTEMA

Esta seccin tiene el propsito de oficiar como medio de comunicacin entre el cliente
y los desarrolladores, sirviendo como base contractual en la que se especificarn los
requerimientos funcionales y no funcionales a implementar.

El objetivo es disponer de un sistema que permita gestionar y administrar los diferentes


aspectos que componen la operacin de una empresa de alquiler de vehculos. Dentro
de la aplicacin se cuenta con un mdulo web que permite a los usuarios con los
privilegios necesarios administrar y gestionar los elementos de la aplicacin (vehculos,
accesorios extra, tarifas o cdigos promocionales). Por otra parte, a los usuarios de tipo
Cliente se les permite realizar bsquedas en base a fechas, sucursales de recogida y
retirada, iniciar el proceso de alquiler mediante la reserva de un vehculo, agregar extras
a dicha reserva y realizar el pago de la misma a travs de PayPal21.

Tambin se implementar una aplicacin para dispositivos mviles que permitir a los
clientes realizar el proceso de bsqueda y reserva desde dispositivos con sistema
operativo Android.

Por ms detalles revisar el Anexo I (Especificacin de Requerimientos de Software).

38
4.2. VISTA DEL MODELO DE CASOS DE USO

A continuacin, se muestra el diagrama de todos los casos de uso, que representa la


relacin entre los actores y las funcionalidades del sistema. Luego se brindan detalles
sobre los casos de uso relevantes a la arquitectura.

Imagen XXI Diagrama de Casos de Uso.

39
4.2.1. CASOS DE USO RELEVANTES A LA ARQUITECTURA

Los casos de uso que se expondrn en esta seccin se consideran relevantes dado que
afectan a la mayor cantidad de capas de la aplicacin. Estos casos fueron los primeros
en ser modelados e implementados.

4.2.1.1. BUSCAR VEHCULO

Permite tanto desde la web como desde la aplicacin mvil realizar la bsqueda de un
vehculo segn ciertos parmetros, como ser fecha y sucursal de recogida y devolucin,
rango de precios, tipo de transmisin, tipo de combustible y cantidad de pasajeros.

4.2.1.2. AGENDAR RESERVA

Esta funcionalidad se utiliza posterior a la bsqueda del vehculo y permite al usuario,


tanto desde la web (Cliente, Empleado, Administrador), como desde la aplicacin
Android (Cliente), reservar un vehculo (con la posibilidad de agregar extras, como ser,
GPS, silla para beb) durante un rango de fechas, y abonar la reserva mediante PayPal.

4.2.1.3. ALQUILER DE VEHCULO

Esta funcionalidad es utilizada por usuarios con privilegios (Empleado, Administrador) y


a travs de ella se registra la entrega (alquiler) de un vehculo reservado. Permite a su
vez registrar el vehculo entregado y su condicin actual con el fin de tener un punto de
comparacin cuando el coche sea devuelto.

Para visualizar la descripcin de todos los casos de uso, ver el Anexo II (Modelo de Casos
de Uso).

40
4.3. DOMINIO DEL PROBLEMA

En esta seccin se presenta el modelo de domino, en el que se representan las distintas


entidades con sus atributos y relaciones.

Imagen XXII Modelo de Dominio.

Para ms informacin ver el Anexo III (Modelo de Dominio) y el Anexo IV (Modelo de


Datos).

41
4.4. ARQUITECTURA DEL SISTEMA

En esta seccin se informa acerca de la arquitectura del sistema, donde se describe la


misma utilizando el Modelo de vistas de arquitectura 4+1 diseado por Phillippe
Kruchten22. Este modelo describe cuatro vistas: vista lgica, vista de desarrollo, vista de
proceso y vista fsica. Para poder hacer una trazabilidad a todos los componentes, se
unifican las cuatro vistas mencionadas anteriormente a travs de la vista de escenarios,
la cual se corresponde con instancias de casos de uso.

Para ms informacin ver el Anexo VIII (Descripcin de la Arquitectura).

4.4.1. TRAZABILIDAD DESDE EL MODELO DE CASOS DE USO AL MODELO


DE DISEO

La Vista Lgica se utiliza para marcar la trazabilidad entre el Modelo de Casos de Uso y
el Modelo de Diseo, identificando los objetos y subsistemas de diseo que intervienen
en el caso de uso y sus relaciones.

Para este fin se utiliza el Diagrama de Paquetes:

Imagen XXIII Diagrama de Paquetes.

42
4.5. VISTA DEL MODELO DE DISEO

El modelo de diseo de software es realmente un proceso de muchos pasos pero que se


clasifican dentro de uno mismo. En general, la actividad del diseo se refiere al
establecimiento de las estructuras de datos, la arquitectura general del software,
representaciones de interfaz y algoritmos.

Para ms informacin sobre consultar el Anexo V (Modelo de Diseo).

4.5.1. DESCOMPOSICIN EN SUBSISTEMAS

Imagen XXIV Diagrama de Subsistemas.

4.5.2. WEB

Este subsistema de presentacin permite a los diferentes tipos de usuarios del sistema
(roles), el acceso a los distintos mdulos del sistema.

Dependiendo del rol del usuario que accede al sistema sern las herramientas ofrecidas.
Entre los roles disponibles se encuentran los empleados (cuyo rol es EMPLEADO)
quienes podrn gestionar y validar los datos de los clientes, realizar la entrega (alquiler)
de vehculos, registrar la devolucin de los mismos, modificar las tarifas, gestionar los
cdigos promocionales, enviar los coches a mantenimiento y dar de alta nuevos
accesorios extra. Tambin se encuentran los clientes (cuyo rol es CLIENTE) quienes
pueden realizar bsquedas de vehculos, reservarlos, abonar reservas y comunicarse con
los empleados mediante el sistema de chat.

43
4.5.3. APLICACIN ANDROID (APP ANDROID)

Este subsistema corresponde a la App de los clientes, permite que los usuarios con rol
CLIENTE inicien sesin en el sistema, realicen bsquedas de vehculos, generen y abonen
la reserva y puedan ver un historial de los alquileres realizados.

4.5.4. SERVICIOS

Este subsistema provee las funcionalidades del sistema como servicios, tanto remotos
como locales, para que los subsistemas de presentacin puedan operar con estas
funcionalidades.

4.5.5. PERSISTENCIA

Este subsistema se encarga del acceso a datos persistentes necesarios para que la
aplicacin mantenga su informacin en el tiempo. Ofrece interfaces al subsistema de
Servicios (los datos son consumidos por la Lgica de Negocio).

44
4.6. TRAZABILIDAD DESDE EL MODELO DE DISEO AL MODELO
DE IMPLEMENTACIN

4.6.1. VISTA DEL MODELO DE DISTRIBUCIN

Imagen XXV Modelo de Distribucin.

4.6.2. VISTA DEL MODELO DE IMPLEMENTACIN

Imagen XXVI Modelo de Implementacin.

45
5. IMPLEMENTACIN

En esta seccin se brindan detalles sobre la metodologa de trabajo utilizada, los


entornos utilizados (desarrollo y ejecucin), tecnologas aplicadas y problemas
encontrados durante el transcurso del proyecto. Tambin se detalla el proceso de
implementacin de las distintas funcionalidades de la aplicacin, aplicando lo estipulado
en las etapas de anlisis y diseo.

5.1. METODOLOGAS DE TRABAJO

Para el desarrollo del proyecto se definieron roles desde el inicio del mismo en base a
los conocimientos terico-prcticos previos de los integrantes del equipo. Una vez
definidos los roles, se estableci una planificacin de trabajo, mediante la herramienta
Microsoft Project23, donde se definieron y asignaron las tareas divididas en cuatro fases
o sprints24 (Estado del arte y pruebas de concepto, Anlisis, diseo e implementacin
de casos de uso crticos, Implementacin, Testing y documentacin final) y se
realiz una estimacin de esfuerzo por tarea. Luego se pautaron reuniones semanales
con los miembros del equipo para evaluar los avances obtenidos, comparar los tiempos
reales con los estimados y de ser necesario modificar el cronograma inicial. Tambin se
definieron reuniones quincenales con la tutora del equipo para realizar relevamientos
de los avances obtenidos.

Los roles definidos fueron los siguientes:

Project Manager: quien sera el encargado de gestionar la planificacin y el


desarrollo del proyecto y velar por el cumplimiento de las tareas definidas.
Tambin sera quien se encargue de documentar los avances y generar la
documentacin correspondiente recopilando la informacin brindada por el
resto de los miembros del equipo.

Web Developer: quien sera el encargado de estudiar y evaluar las tecnologas


web vigentes para su posterior aplicacin. Tambin sera quien proponga los
distintos diseos de las vistas utilizadas en la aplicacin web.

Backend Developer: quien tuviese este rol, sera el encargado de estudiar las
posibles tecnologas aplicables en la capa de persistencia y negocio de la
aplicacin, definir los protocolos adecuados para la seguridad, y generar los

46
servicios que luego seran consumidos por la capa de presentacin. Debido a la
complejidad de las responsabilidades, se decidi que este rol sea asumido por
dos integrantes del equipo.

Mobile Developer: quien sera el encargado de estudiar y aplicar las tecnologas


vigentes para el desarrollo de aplicaciones mviles y tambin proponer el diseo
de la misma.

Cliente: Si bien ste no sera un rol definido en la planificacin, fue asumido por
la tutora del equipo, quien realiz devoluciones en base a los avances que se
presentaban en cada reunin de monitoreo.

Si bien los roles estaban definidos desde el inicio, en algunas ocasiones algn miembro
del equipo podra brindar apoyo a otro que se encontrase bloqueado con sus tareas.

5.2. ENTORNO DE DESARROLLO

Se cre en primera instancia una mquina virtual (VM), utilizando la herramienta Virtual
Box25 de la empresa Oracle26, para configurar el entorno de desarrollo y luego replicarlo
a todos los miembros del equipo. Se utiliz como sistema operativo base para el
desarrollo de la aplicacin Debian GNU/Linux27.

El IDE empleado para desarrollar el backend y el frontend web fue Eclipse Neon. A este
IDE se le agreg el pluggin para trabajar con el framework Spring. A su vez para el
desarrollo del frontend web se le agreg al IDE el pluggin de AngularJS para facilitar el
desarrollo del mismo.

Para el desarrollo de la aplicacin nativa Android, se utiliz el IDE Android Studio.

Para el versionado se utiliz GIT, siendo GitHub28 el repositorio de cdigo utilizado.

Para la base SQL29 se utiliz PostgreSQL 9.230 y como gestor de base de datos se emple
pgAdmin III31. Para la base NoSQL32 se utiliz MongoDB 3.033 y como gestor de base de
datos se utiliz Robomongo34.

47
Como servidor de aplicaciones se utiliz Wildfly 1035.

5.3. ENTORNO DE EJECUCIN

Para la ejecucin de la aplicacin se requiere un servidor de aplicaciones Wildfly 10.


Tambin se requiere tener instalado el entorno de ejecucin de aplicaciones java (Java
Runtime Environment o JRE36) en su versin 1.8.0_101, debido a que este contiene los
elementos necesarios para ejecutar las aplicaciones desarrolladas con el lenguaje Java.

Tambin se requiere tener instalado el servidor de base de datos relacional PostgreSQL


en su versin 9.2 y el servidor de base de datos no relacional MongoDB en la versin 3.0.

Para ejecutar la aplicacin para dispositivos mviles se requiere contar con un equipo
cuyo sistema operativo sea Android en su versin 5.0 o superior.

5.4. TECNOLOGAS APLICADAS

Esta seccin brinda detalles de las tecnologas aplicadas para resolver las distintas
funcionalidades de la aplicacin. Se utiliz una implementacin por capas, con una
arquitectura cliente servidor.

El objetivo primordial de este estilo es la separacin de la lgica de negocios de la lgica


de diseo y su ventaja principal es que el desarrollo se puede llevar a cabo en varios
niveles y, en caso de requerir algn cambio, solo se ataca el nivel requerido sin necesidad
de afectar otras capas.

La plataforma de programacin utilizada en este proyecto fue Java EE y como servidor


de aplicaciones se busc uno de tipo open source que tuviese la categora de Java EE
certificado. Para obtener el rtulo de Java EE certificado, el servidor de aplicaciones
debe cumplir con todas las especificaciones de Java, conocidas como JSR por su nombre
en ingls Java Specification Request37. Estas especificaciones son desarrolladas por la
comunidad que estandariza a Java EE, esta comunidad es conocida como la Java
Community Process, o por sus siglas JCP38. Se realiz una investigacin al momento de
realizar la eleccin del servidor de aplicaciones a utilizar, donde surgieron dos posibles
opciones, una fue la opcin de OpenEJB Apache TomEE39, pero al momento de comenzar

48
el proyecto an no contaba con la certificacin para Java EE 7. La segunda opcin, la
elegida para este proyecto, fue Wildfly 10 (anteriormente conocido como JBoss), debido
a que contaba con la certificacin mencionada anteriormente.
Para este proyecto se utiliz Spring40, que es un framework de aplicaciones Java/J2EE
desarrollado usando licencia de OpenSource. Spring se basa en una configuracin de
base de JavaBeans41 bastante simple. Tiene plantillas que permiten un uso ms sencillo
de Hibernate42, JDBC43 (Java Database Connectivity) entre otros. Ofrece un ligero
contenedor de bean para los objetos de la capa de negocio, DAOs, repositorio de
Datasources JDBC y sesiones Hibernate.

La meta de Spring es separar los accesos a datos y los aspectos relacionados con las
transacciones, para permitir objetos de la capa de negocio reutilizables que no
dependan de ninguna estrategia de acceso a datos o transacciones.

Spring proporciona:

Una potente gestin de configuracin basada en JavaBeans, aplicando los


principios de Inversin de Control (IoC)44.

Una capa genrica de abstraccin para la gestin de transacciones, permitiendo


gestores de transaccin aadibles y haciendo sencilla la demarcacin de
transacciones sin tratarlas a bajo nivel.

Una capa de abstraccin JDBC que ofrece una significativa jerarqua de


excepciones, simplifica el manejo de errores, y reduce considerablemente la
cantidad de cdigo necesario.

Integracin con Hibernate, JDO45 (Java Data Object) e iBatis SQL Maps46 en
trminos de soporte a implementaciones DAO y estrategias con transacciones.
Especial soporte a Hibernate y solucionando muchos de los problemas comunes
de integracin.

Funcionalidad AOP47 (Aspect Oriented Programming o Programacin Orientada


a Aspectos), totalmente integrada en la gestin de configuracin de Spring. Se
puede aplicar AOP a cualquier objeto gestionado por Spring, aadiendo aspectos
como gestin de transacciones declarativas sin EJB.

Spring provee de un framework MVC (Model-View-Controller)48, construido


sobre el ncleo de Spring. Este framework es altamente configurable va
interfaces y permite el uso de mltiples tecnologas para la capa de vista como
pueden ser JSP49 (JavaServer Page), Velocity50, iText51 o POI52. Adems, permite

49
que una capa modelo realizada con Spring pueda ser fcilmente utilizada con una
capa web basada en cualquier otro framework MVC.

En el presente proyecto se utilizaron las funcionalidades de Spring MVC y la integracin


que brinda el framework con Hibernate. Tambin se utiliz Spring Security53, que es un
sub proyecto del framework Spring y su funcionamiento se detalla en el apartado 5.4.2.

5.4.1. CAPA DE PERSISTENCIA

Para persistir los datos de opt por utilizar dos bases de datos, una SQL para la cual se
eligi PostgreSQL, y una NoSQL, en este caso se utiliz MongoDB.

PostgreSQL es un sistema de base de datos relacional orientado a objetos. Es un


proyecto de cdigo abierto dirigido por la comunidad denominada PGDG como
abreviacin de PostgreSQL Global Development Group.

MongoDB, a diferencia de PostgreSQL, es un sistema de bases de datos orientado a


documentos, es decir que, en lugar de almacenar la informacin en tablas con filas y
columnas, se almacenan en documentos de formato JSON54.

En la base de datos SQL se persisten los datos cuyo volumen de crecimiento es ms


acotado, concretamente se persisten datos de los vehculos, modelos, marcas, artculos
extras, estado de los vehculos, ubicacin de las imgenes, sucursales, datos de los
usuarios y datos de las reservas. Mientras que en la base de datos NoSQL se persisten
aquellos datos cuyo volumen tiende a crecer exponencialmente. Los datos persistidos
en mongo son los referentes a los alquileres, facturacin, lneas de factura y las
promociones.

5.4.2. CAPA DE NEGOCIO

Para disear la capa de negocio se utiliz el JDK 1.8 con el framework de Spring MVC en
su versin 4.2.1, con Maven55 como repositorio y manejador de dependencias.

Esta capa cuenta con el acceso a la capa de persistencia utilizando las libreras de
Hibernate para el mapeo de las bases relacionales y Spring Data MongoDB56 para la no

50
relacional. Asimismo, cuenta con procesos programados diariamente para el envo de
correos a los clientes y empleados, utilizando el gestor de tareas de Spring y la librera
de correos tambin brindad por Spring.

A su vez esta capa expone servicios REST para la aplicacin Mobile y controladores para
la parte web todos provistos y manejados por el framework de Spring, utilizando las
libreras de Jackson57 para el mapeo de los objetos que interactan entre esta capa y la
de presentacin, convirtindolos de objetos JSON a objetos declarados en Java.

Cabe destacar que para la comunicacin con los clientes de la aplicacin se utiliza
conexin cifrada mediante el protocolo de seguridad SSL58.

Para gestionar completamente la seguridad de la aplicacin se utiliz Spring Security.


Entre sus principales ventajas se destacan:

Gestionar varios niveles de seguridad: solicitud de URLs al servidor, acceso a


datos y mtodos de Java, y acceso a instancias concretas de las clases.

Permite separar la lgica de la aplicacin del control de la seguridad, utilizando


filtros para las peticiones al servidor de aplicaciones o aspectos para la seguridad
en clases y mtodos.

La configuracin de la seguridad es portable de un servidor a otro, ya que se


encuentra dentro del WAR o el EAR de la aplicacin.

Soporta muchos modelos de identificacin de usuarios (HTTP BASIC59, HTTP


Digest60, LDAP61, OpenID62 y JAAS63 entre otros). Adems, permite aplicar estos
mecanismos implementando clases propias que extiendan el modelo Spring
Security.

5.4.3. CAPA DE PRESENTACIN

Esta capa cuenta con dos aplicaciones, una web realizada utilizando AngularJS y una para
dispositivos mviles desarrollada para Android.

51
5.4.3.1. WEB

La capa de presentacin web fue abordada con el framework JavaScript64, AngularJS en


su versin 1.5 para poder desarrollar una SPA (Single Page Aplicaction)65. Se utiliz un
diseo responsive para que permita el uso de la aplicacin en dispositivos que trabajan
con distintas resoluciones.

La comunicacin de la capa web con la lgica se realiza mediante los servicios REST
utilizando el mdulo ngResource66 brindado por Angular que provee el soporte de
interaccin con los servicios RESTful y se presenta como alternativa al servicio $http67.

El sistema de pagos en lnea se realiza a travs de la API de PayPal la cual permite realizar
una transaccin segura mediante tokens, protegiendo los datos del cliente dado que
stos son operados exclusivamente por PayPal, a continuacin, en la imagen XXVII se
muestra el flujo de la API.

52
Imagen XXVII Flujo del proceso de pago mediante la API de PayPal68.

La aplicacin web est provista con un sistema de chat, para facilitar la comunicacin
entre clientes y empleados, as como tambin entre los propios empleados. Para brindar
este servicio se utilizaron las libreras de CometD69, utilizando la funcionalidad de envo
de mensajes de tipo peer-to-peer o P2P70, en donde los mensajes son enviados por un
emisor a un receptor especfico.

CometD es un manejador de mensajes y eventos basados en websockets y tecnologas


push conocidas como Comet, trmino denominado por Alex Russell en su artculo
Comet: Low Latency Data for the Browser71.

53
Algunos de los sitios que utilizan comet son:

Gmail72
Facebook73

5.4.3.2. ANDROID

La capa de presentacin de la aplicacin Android fue realizada de forma nativa utilizando


Android Studio. Para el diseo de la aplicacin se utilizaron las pautas enfocadas al
diseo utilizado en Android conocidas como Material Design74 . Para la comunicacin
con el servidor se consumen servicios REST utilizando la librera Volley75 desarrollada
por Google para optimizar el envo de peticiones HTTP desde las aplicaciones Android
hacia servidores externos.

La librera Volley tambin cuenta con un soporte incorporado para la carga de imgenes.
Este se empaqueta con un cargador de una vista personalizada llamada
NetworkImageView76 que est especialmente diseada para descargar y mostrar
imgenes guardndolas en la memoria cach.

Para realizar pagos desde la aplicacin mvil se utiliz la SDK de PayPal77 que permite
realizar compras in-app brindando la posibilidad de pagar a travs de la cuenta de
PayPal o tomando una fotografa de la tarjeta de crdito.

5.5. PROBLEMAS ENCONTRADOS

En este apartado se detallan algunos problemas presentados durante el desarrollo del


proyecto y cules fueron las medidas para enfrentarlos.

Uno de los problemas que ms afect al equipo tuvo que ver con el entorno de
desarrollo. Al estar trabajando en un equipo virtual con un sistema operativo de 64-bits,
con el pasar del tiempo y al utilizar cada vez ms herramientas y alguna de ellas con gran
consumo de memoria, se generaron problemas en los equipos (sobre todo los portables)
que contaban con menos de 8GB de memoria RAM.

54
Ante esta problemtica se procedi a quitar pluggins innecesarios de Eclipse, maximizar
la capacidad de memoria RAM de la virtual, dejando el mnimo necesario para que el
sistema operativo nativo opere. Y en algn equipo se procedi a clonar el equipo
virtual a una particin fsica.

Un gran problema encontrado en la etapa de implementacin fue el intento de integrar


OAuth278 con Spring Security como mdulo de autenticacin y autorizacin. Esto se
debi a que la integracin de OAuth2 ya de por s tiene una complejidad elevada y esto
se sum a que la mayora de la documentacin encontrada haca referencia a la
integracin con el framework de Spring Boot79 y no con Spring MVC, el framework
utilizado en este proyecto. En este caso no se lleg a una solucin, ya que luego de estar
este mdulo bloqueado por dos semanas, se decidi no utilizar OAuth2 para la
aplicacin.

Otro gran problema encontrado, fue en la fase de desarrollo del mdulo de reserva, al
momento de implementar el pago va PayPal. Este ao PayPal realiz cambios
importantes y desarroll nuevas APIs ms potentes, usando tecnologas REST y nuevos
SDK para las aplicaciones mviles. Esto gener que los tutoriales de SandBox80 que se
utilizaban anteriormente ya no fueran vlidos y que se tuviese que invertir ms tiempo
en una investigacin ms a fondo sobre estas nuevas APIs.

Tambin se generaron problemas por la falta de experiencia en el manejo de Maven, lo


que gener errores en las instancias de deploy. Para esto se tuvo que dedicar tiempo en
profundizar los conocimientos sobre Maven.

Durante el proceso de desarrollo de la aplicacin Android se encontraron problemas


para realizar la conexin con el servidor debido a la utilizacin de certificados SSL no
validados ya que stos tienen costo. Para poder enfrentar esta problemtica se recurri
a permitir el uso de certificados SSL sin validacin.

5.6. HORAS DEDICADAS

Segn la planificacin inicial se estimaron 16 semanas de trabajo destinando 4 horas


diarias de lunes a viernes (20 horas semanales), dando como resultado 320 horas por
recurso, es decir 1600 horas destinadas al proyecto.

55
El tiempo real de trabajo en el proyecto tuvo una desviacin del 20% en base a lo
estimado. En total se trabajaron 1920 horas, dando como promedio 384 horas por
recuso, es decir, una carga de 24 horas semanales. A continuacin, en la Tabla I se
presentan las horas previstas y reales dividas segn las etapas del proyecto.

Etapa Horas Previstas Horas Reales


Investigacin 200 320
Documentacin 300 200
Anlisis y Diseo 300 400
Implementacin 700 930
Testing 100 70
Tabla I. Comparacin por etapa de horas previstas con horas reales.

5.7. LA HERRAMIENTA DESARROLLADA

La aplicacin lograda, bajo el nombre de Rent-UY, est compuesta por una plataforma
web, la cual gestiona y almacena la informacin referente a la empresa. En dicha
aplicacin se puede encontrar un backoffice orientado a administradores y empleados
de la empresa y un frontoffice destinado a los clientes.

En el backoffice se centraliza la administracin de usuarios, sucursales, vehculos, tarifas,


promociones y alquileres. A su vez permite a los empleados obtener reportes en tiempo
real sobre los movimientos de la empresa. Mientras que el frontoffice ofrece a los
clientes la posibilidad de realizar bsquedas segn sus parmetros de necesidad,
obtener resultados de forma eficiente y poder concretar su reserva realizando el pago
en el momento mediante los servicios de PayPal. A su vez la plataforma web est dotada
con un sistema de chat que permite atencin personalizada para cada cliente y agiliza la
comunicacin entre los empleados de la empresa.

La aplicacin nativa para dispositivos Android permite a los clientes tener una
experiencia de obtener el servicio en el momento de ser requerido, ya que se les permite
realizar las bsquedas y las reservas desde sus dispositivos en el momento que lo desean
y en el lugar en donde se encuentren.
A continuacin, se presentan algunas capturas de pantalla de la solucin final. En las
imgenes XXVIII, XXIX, XXX, XXXI y XXXII se muestra la plataforma web.

56
Imagen XXVIII. Pgina de inicio de la plataforma web Rent-UY.

Imagen XXIX. Bsqueda segn parmetros de fecha y sucursal de retiro y entrega.

Imagen XXX. Preparacin de la reserva del vehculo.

57
Imagen XXXI. Opcin para cancelar la reserva o confirmarla para proceder con el
pago.

Imagen XXXII. Confirmacin de la reserva.

58
En las imgenes XXXIII y XXXIV se visualiza la plataforma para dispositivos Android.

Imagen XXXIII. Bsqueda de vehculo seleccionando fecha y sucursal.

Imagen XXXIV. Confirmacin de reserva con seleccin de extras, login para proceder al
pago y opciones de pago mediante PayPal.

59
6. CONCLUSIONES

Para poder llevar a cabo este proyecto se tuvo que estudiar la esencia de las empresas
de alquiler de vehculos, el mercado en el que operan, y los posibles clientes a captar. Al
realizar dicha investigacin se analiz el enfoque y las prestaciones de empresas
nacionales e internacionales y se detect que en Uruguay la gran mayora de las
empresas de este rubro tienen un debe en cuanto a los medios por los cuales ofrecen
sus servicios.

En Uruguay, al da de hoy no existe una empresa nacional del rubro alquiler de vehculos
que permita a sus clientes realizar el pago de una reserva desde su plataforma web, y
menos an desde una aplicacin para dispositivos mviles.

Para poder llevar a cabo un desarrollo que cumpliese con las necesidades requeridas, se
plantearon 25 casos de uso para la plataforma web y de los cuales 5 tambin estaran
disponibles en la aplicacin para dispositivos mviles. El 100% de los casos fueron
abordados y completados con xito.

En base a las opciones brindadas a nivel local, se considera que se ha obtenido una
plataforma eficaz, amigable y competente dentro del plano mencionado. Asimismo,
debido a los tiempos acotados, se decidi por cubrir solamente los requerimientos
solicitados por el cliente dejando de lado algunas ideas que surgan durante el desarrollo
del proyecto, es por ello que se considera que la aplicacin an tiene mucho margen de
crecimiento si se la compara con alguna otra existente dentro del plano internacional. A
continuacin, se presenta el apartado trabajos a futuro donde se plantean posibles
mejoras que ayudaran a esta aplicacin a competir y ser una excelente opcin en el
plano internacional.

6.1. TRABAJOS A FUTURO

Escalabilidad y deploy en la nube. Un posible punto de mejora sera permitir que la


aplicacin sea utilizada por ms de una empresa, sin que estas tengan ningn tipo de
contacto entre sus servicios ni sus clientes, es decir que cada empresa tenga su
aplicacin independiente. Para resolver esto sera conveniente utilizar una arquitectura
multi-tenant81.

60
Realizando un deploy en la nube de la aplicacin multi-tenant sta se podra
comercializar como servicio (SaaS, Software as a Service). Pensando en la escalabilidad
que se le podra dar a la aplicacin fue que se decidi por incluir una base de datos no
relacional.

Permitir otros medios de pago. Al da de hoy existen mltiples plataformas para realizar
pagos en lnea, algunas nacionales como por ejemplo Paganza82 y otras internacionales
como es el caso de Google Wallet83.

Otra alternativa sera permitir el pago directo con tarjeta de crdito, tanto a travs de la
web como presencial en la sucursal mediante un sistema de mquinas POS84
(denominacin que proviene de la abreviatura que se le atribuye en ingls: point of sale,
que traducido al espaol significa punto de venta). Esta ltima opcin se manej durante
el proyecto, incluso el equipo lleg a comunicarse con una empresa proveedora de
mquinas POS para investigar el funcionamiento e intentar adquirir algn dispositivo
para realizar pruebas. Esto no se pudo realizar debido a que dichos dispositivos eran
alquilados por un lapso de tiempo corto a un costo elevado.

Mejorar la aplicacin para dispositivos mviles. Al momento se cuenta con una


aplicacin exclusiva para dispositivos Android. Se podra explotar ms si se abarcaran
ms dispositivos, como son los de Apple y Microsoft. Queda pendiente el desarrollo de
una aplicacin nativa para cada uno de los dispositivos anteriores. Tambin se podra
utilizar el framework PhoneGap85 o Cordova86 para desarrollar una aplicacin hibrida,
de esta forma se evitara la reescritura de cdigo para cada plataforma.
Otra propuesta que surge en base a las tecnologas mviles, era aprovechar las
funcionalidades de los smartphones, como ser el sistema de posicionamiento global
(GPS87) para implementar un mdulo de asistencia en ruta. De esta forma si un cliente
tiene algn tipo de emergencia mientras se encuentra en la unidad rentada puede pedir
auxilio inmediato utilizando la ubicacin brindada por su dispositivo.

Autenticacin y autorizacin. Se podra mejorar la autenticacin y autorizacin de la


aplicacin con la ayuda de oauth2 y permitiendo el registro e inicio de sesin desde las
redes sociales.

61
7. REFERENCIAS

1
JavaEE. Oracle Corporation. Recuperado el 06 de diciembre de 2016, de
http://www.oracle.com/technetwork/java/javaee/overview/index.html

2
AngularJS. Google, Inc. Recuperado el 06 de diciembre de 2016, de https://angularjs.org/

3
Android SDK. Google, Inc. Recuperado el 06 de diciembre de 2016, de
https://developer.android.com/studio/index.html

4
Empresa e Iniciativa Emprendedora. (24 de febrero de 2012). Recuperado el 25 de agosto de
2016, de http://www.empresaeiniciativaemprendedora.com/?Montar-una-Empresa-de-
Alquiler-de

5
Merino, M., & Prez Porto, J. (2013). Definicion.de, 2. Recuperado el 17 de agosto de 2016,
de Definicin de Web: http://definicion.de/web/

6
Cervantes, H. (abril de 2010). SG Buzz. (SG) Recuperado el 25 de 08 de 2016, de
http://sg.com.mx/revista/27/arquitectura-software#.V8HSOph96Uk

7
Alicante, U. d. Especialista Universitario en Java Enterprise. Recuperado el 17 de agosto de
2016, de Entra en el mundo de Java Enterprise: http://www.jtech.ua.es/j2ee/2006-
2007/jee.html

8
RESTful. Oracle Corporation. Recuperado el 26 de setiembre de 2016, de
http://docs.oracle.com/javaee/6/tutorial/doc/gijqy.html

9
W3C. Recuperado el 26 de Setiembre de 2016, de
http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb

10
Arthur, L. eHow en espaol. (L. G. Cejas, Editor) Recuperado el 29 de agosto de 2016, de
http://www.ehowenespanol.com/impactos-culturales-del-telefono-celular-info_293242/

11
LanceTalent. (20 de febrero de 2014). LanceTalent. Recuperado el 29 de agosto de 2016, de
https://www.lancetalent.com/blog/tipos-de-aplicaciones-moviles-ventajas-inconvenientes/

12
Android. Google, Inc. Recuperado el 02 de Setiembre de 2016, de
https://www.android.com/

13
iOS. Apple, Inc. Recuperado el 02 de Setiembre de 2016, de
http://www.apple.com/ios/ios-10/

14
Apple. Apple, Inc. Recuperado el 02 de Setiembre de 2016, de http://www.apple.com/

15
Window. Microsoft Corporation. Recuperado el 02 de Setiembre de 2016, de
https://www.microsoft.com/es-xl/windows

62
16
IZAmerica. (2011). IZAmerica Rent a Car. Recuperado el 10 de Setiembre de 2016, de
http://izamerica.com.uy/

17
Multicar. (2016). Multicar Rent a Car. Recuperado el 17 de Setiembre de 2016, de
http://www.multicar.com.uy/

18
CarTrawler. BookingCar. Recuperado el 11 de Setiembre de 2016, de
https://www.bookingcar.com

19
Ibexstudio. (2016). Ibexrentacar. Recuperado el 14 de Setiembre de 2016, de
http://www.ibexrentacar.com/es

20
Ibexestudio. Recuperado el 14 de setiembre de2016, de http://www.ibexestudio.com/es

21
PayPal. Paypal, Inc. Recuperado el 06 de diciembre de 2016, de
https://www.paypal.com/us/webapps/mpp/about

22
Phillippe Kruchten. Recuperado el 06 de diciembre de 2016, de
https://philippe.kruchten.com/about/

23
Microsoft Project. Microsoft Corporation. Recuperado el 06 de diciembre de 2016, de
https://products.office.com/es/project/project-and-portfolio-management-software

24
SCRUM. (2012). VASS Digital. Recuperado el 08 de diciembre de 2016, de SCRUM, desarrollo
gil por excelencia: http://www.vassdigital.com/scrum-la-metodologia-de-desarrollo-agil-por-
excelencia/

25
Virtual Box. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
https://www.virtualbox.org

26
Oracle. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
https://www.oracle.com/es/corporate/index.html

27
Debian GNU/Linux. Recuperado el 08 de diciembre de 2016, de
https://www.debian.org/intro/about

28
GitHub. GitHub, Inc. Recuperado el 08 de diciembre de 2016, de https://github.com/about

29
SQL. Recuperado el 08 de diciembre de 2016, de
http://searchsqlserver.techtarget.com/definition/SQL

30
PostgreSQL. PostgreSQL, Inc. Recuperado el 08 de diciembre de 2016, de
http://www.postgresql.org.es/sobre_postgresql

31
pgAdmin. pgAdmin PostgreSQL Tools. Recuperado el 08 de diciembre de 2016, de
https://www.pgadmin.org/

32
NoSQL. Recuperado el 08 de diciembre de 2016, de
http://searchdatamanagement.techtarget.com/definition/NoSQL-Not-Only-SQL

63
33
MongoDB. MongoDB, Inc. Recuperado el 08 de diciembre de 2016, de
https://www.mongodb.com/es

34
Robomongo. Recuperado el 08 de diciembre de 2016, de https://robomongo.org/

35
WildFly. Red Hat, Inc. Recuperado el 08 de Diciembre de 2016, de http://wildfly.org/about/

36
JRE. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
http://www.oracle.com/technetwork/java/javase/overview/index.html

37
JSR. Recuperado el 08 de diciembre de 2016, de https://www.jcp.org/en/jsr/overview

38
JCP. Recuperado el 08 de diciembre de 2016, de https://www.jcp.org/en/home/index

39
OpenEJB. OpenEJB Apache TomEE. Recuperado el 08 de diciembre de 2016, de
http://openejb.apache.org/

40
Spring. Recuperado el 08 de diciembre de 2016, de https://spring.io/

41
JavaBeans. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
https://docs.oracle.com/javase/tutorial/javabeans/

42
Hibernate. Red Hat, Inc. Recuperado el 08 de diciembre de 2016, de http://hibernate.org/

43
JDBC. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
http://www.oracle.com/technetwork/java/javase/jdbc/index.html

44
Inversion of Control (IoC). Recuperado el 08 de diciembre de 2016, de
https://geekytheory.com/introduccion-al-inversion-of-control-container-ioc

45
JDO. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
http://www.oracle.com/technetwork/java/index-jsp-135919.html

46
iBatis SQL Maps. Apache Software Foundation. Recuperado el 08 de diciembre de 2016, de
https://ibatis.apache.org/docs/java/pdf/iBATIS-SqlMaps-2_en.pdf

47
AOP. Recuperado el 08 de diciembre de 2016, de
http://docs.jboss.org/aop/1.0/aspect-framework/userguide/en/html/what.html

48
MVC. Recuperado el 08 de diciembre de 2016, de
http://whatis.techtarget.com/definition/model-view-controller-MVC

49
JSP. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
http://www.oracle.com/technetwork/java/javaee/jsp/index.html

50
Velocity. Apache Software Foundation. Recuperado el 08 de diciembre de 2016, de
http://velocity.apache.org/

51
iText. Recuperado el 08 de diciembre de 2016, de http://itextpdf.com/

64
52
POI. Apache Software Foundation. Recuperado el 08 de diciembre de 2016, de
https://poi.apache.org/

53
Spring Security. Recuperado el 08 de diciembre de 2016, de
https://projects.spring.io/spring-security/

54
JSON. Recuperado el 08 de diciembre de 2016, de http://www.json.org/

55
Maven. Apache Software Foundation. Recuperado el 08 de diciembre de 2016, de
https://maven.apache.org/

56
Spring Data MongoDB. Recuperado el 08 de diciembre de 2016, de
http://projects.spring.io/spring-data-mongodb/

57
Jackson. Recuperado el 08 de diciembre de 2016, de
http://wiki.fasterxml.com/JacksonHome

58
SSL. DigiCert, Inc. Recuperado el 08 de diciembre de 2016, de
https://www.digicert.com/es/ssl.htm

59
HTTP BASIC. Recuperado el 08 de diciembre de 2016, de https://tools.ietf.org/html/rfc2617

60
HTTP Digest. Recuperado el 08 de diciembre de 2016, de https://tools.ietf.org/html/rfc2617

61
LDAP. Recuperado el 08 de diciembre de 2016, de
http://es.ccm.net/contents/269-protocolo-ldap

62
OpenID. OpenID Foundation. Recuperado el 08 de diciembre de 2016, de http://openid.net/

63
JAAS. Oracle Corporation. Recuperado el 08 de diciembre de 2016, de
https://docs.oracle.com/javase/8/docs/technotes/guides/security/jaas/tutorials/GeneralAcnO
nly.html

64
Javascript. Recuperado el 08 de diciembre de 2016, de https://www.javascript.com/

65
SPA. Recuperado el 08 de diciembre de 2016, de http://singlepageappbook.com/goal.html

66
ngResource. Angular JS. Google, Inc. Recuperado el 08 de diciembre de 2016, de
https://docs.angularjs.org/api/ngResource

67
$http. Angular JS. Google, Inc. Recuperado el 08 de Diciembre de 2016, de
https://docs.angularjs.org/api/ng/service/$http
68
PayPal Checkout API. PayPal, Inc. Recuperado el 08 de diciembre de 2016, de
https://developer.paypal.com/docs/classic/express-checkout/ht_ec-singleItemPayment-curl-
etc/

69
CometD. Recuperado el 08 de diciembre de 2016, de CometD Highly Scalable Clustered Web
Messaging: https://cometd.org/

70
P2P. Recuperado el 08 de diciembre de 2016, de http://quees.la/p2p/

65
71
Russell, A (3 de marzo de 206). Infrequently Noted. Recuperado el 11 de diciembre de 2016,
de https://infrequently.org/2006/03/comet-low-latency-data-for-the-browser/

72
Gmail. Google, Inc. Recuperado el 11 de diciembre de 2016, de
https://www.google.com/intl/es-419/mail/help/about.html

73
Facebook. Facebook, Inc. Recuperado el 11 de diciembre de 2016, de
https://www.facebook.com/pg/facebook/about/

74
Material Design. Google, Inc. Recuperado el 11 de diciembre de 2016, de
https://material.google.com/

75
Volley. Android Developers. Recuperado el 11 de diciembre de 2016 de
https://developer.android.com/training/volley/index.html

76
NetworkImageView. Android Developers. Recuperado el 11 de diciembre de 2016, de
https://developer.android.com/training/volley/request.html l

77
PayPal Mobile SDK. PayPal, Inc. Recuperado el 11 de Diciembre de 2016, de
https://developer.paypal.com/docs/integration/mobile/mobile-sdk-overview/

78
OAuth2. Recuperado el 10 de diciembre de 2016, de https://oauth.net/about/

79
Spring Boot. Recuperado el 10 de diciembre de 2016, de
https://projects.spring.io/spring-boot/

80
SandBox. Recuperado el 10 de diciembre de 2016, de
http://searchsecurity.techtarget.com/definition/sandbox

81
Multi-tenant. IBM Corp. Recuperado el 10 de diciembre de 2016, de
http://www.ibm.com/developerworks/library/j-multitenant-java/

82
Paganza. Recuperado el 10 de diciembre de 2016, de https://www.paganza.com/QueEs/

83
Google Wallet. Google, Inc. Recuperado el 10 de diciembre de 2016, de
https://www.google.com/wallet/

84
POS. Recuperado el 10 de diciembre de 2016, de
http://www.definicionabc.com/negocios/maquina-pos.php

85
PhoneGap. Adobe, Inc. Recuperado el 11 de diciembre de 2016, de http://phonegap.com/

86
Cordova. Apache Software Foundation. Recuperado el 11 de diciembre de 2016, de
https://cordova.apache.org/

87
GPS. Recuperado el 11 de diciembre de 2016, de
http://www.radiofrecuencia.com/tema.php?ID=QUE_SIGNIFICA_GPS

66

Vous aimerez peut-être aussi