gomez matesanz alfonso tfg

Upload: thina

Post on 06-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    1/135

    UNIVERSIDAD AUTÓNOMA DEMADRID

    ESCUELA POLITÉCNICA

    SUPERIOR

    TRABAJO FIN DEGRADO

    A p li c ac ión A n d rid p ara la !"pr!#aTra$!ll in % & S ! r$ic!

    Al'n# Gó"!(Ma)!#an(

    http://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdf

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    2/135

    SEPTIEMBRE*+,-

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    3/135

    Escuela Politécnica Superior. Universidad Autónoma de ii

    A p li c ac ión A n d rid p ara la !"pr!#aTra$!ll in % & S ! r$ic!

    AUTOR . Al'n# Gó"!(Ma)!#an(

    TUTOR. Gn(alMar)/n!( M01(

    Dp)2 d! In%!ni!r/a

    In'r"3)ica E#c0!la

    Pli)4cnica S0p!rir

    Uni$!r#idad A0)ón"a

    d! Madrid S!p)i!"5r!

    *+,-

    http://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdfhttp://ir.ii.uam.es/~fdiez/TFGs/propuestas/2013/201314_TFG_II_GonzaloMartinez_3.pdf

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    4/135

    Escuela Politécnica Superior. Universidad Autónoma de 3

    R!#0"!n

    Actualmente, resulta inconcebible un da a da sin telé!ono móvil, "m#s en concreto, sin Smartp$one. %ebido al au&e de estosdispositivos, cada ve' m#s personas utili'an los m(ltiples servicios)ue o!recen. Android es el sistema operativo para dispositivos móviles)ue $a e*perimentado ma"or crecimiento en los (ltimos a+os. Porotro lado, la adaptación de los ne&ocios al entorno eb, es otro delos aspectos m#s presentes en la actualidad.

    Por ello aunar estas !uer'as - internet " smartp$ones- en los ne&ocioscobra cada ve' m#s sentido. En esta dirección, este pro"ecto puede

    reali'ar una pe)ue+a aportación. Travellin&-Service es una a&enciade contratación de viaes en lnea, !undada en /ctubre de 0120.Su p#&ina eb permite reservar servicios tursticos como tours,$oteles, coc$es, restaurantes o vuelos.

    El presente pro"ecto viene a cubrir un $ueco vaco )ue se $aobservado entre Travellin&-Service " empresas similares en elmercado actual. 3a ma"ora de estas empresas cuenta con unaaplicación móvil aparte de un sitio eb. 3o )ue di!erencia a Travellin&-Service de todas ellas es )ue un &ran porcentae de

    ventas lle&a directamente por llamada tele!ónica, como si de unaa&encia de viaes presencial se tratase. Por lo )ue una aplicaciónmóvil se $ace esencial con el obetivo de otor&ar comodidad alusuario, " por consi&uiente in&resos, a la empresa.

    Este pro"ecto intenta o!recer una aplicación potente " estable )uepermitir# tanto el contacto directo con la empresa de viaes, como lab(s)ueda " &estión de servicios relacionados con un posible viae.

    A lo lar&o del documento se presenta la aplicación reali'ada,

    e*poniendo un estudio comparativo de aplicaciones similarese*istentes en el mercado, una descripción de caractersticas "re)uisitos principales, todas las tecnolo&as utili'adas en el desarrollode la $erramienta, tanto del lado cliente como del lado delservidor, as como un an#lisis )ue recorrer# todas las !ases delpro"ecto desde el dise+o $asta las pruebas. Por (ltimo, puedeencontrarse un manual de uso para una meor comprensión " m#s!#cil utili'ación de la aplicación.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    5/135

    A5#)rac)

    At present times, it4s unbelievable da"-to-da" it$out mobile p$one,and more to t$e point it$out a Smartp$one. %ue to t$e boom o! t$ese devices, more and more people use man" !acilities t$e" o!!er.Android is t$e operatin& s"stem !or devices p$ones t$at $ase*perienced a &reater &rot$ in recent "ears.

    Furt$ermore, t$e adaptation o! t$e eb business environment isanot$er o! t$e most present aspects noada"s. For t$is reason oinin&t$ese !orces -internet and Smartp$one- can &ain more sense onbusiness. Accordin&l", t$is proect can provide it$ a small

    contribution. Travellin&-Service is a recruitment a&enc" onlinetravel, !ounded in /ctober 0120. T$eir ebsite allos peopleorldide to boo5 travel services li5e tours, $otels, cars, restaurantsor !li&$ts.

     T$is proect !ills a vacuum &ap t$at $as been observed beteen Travellin&-Service and similar companies in t$e mar5et toda". Mosto! t$ese companies $as a separate mobile application beside t$eirebsites. T$e di!!erence beteen Travellin&-Service and t$e rest o! similar applications is a lar&e percenta&e o! sales are mainl" made

    t$rou&$ p$one call, as a travel a&enc" on site. So t$at amobile application $as become essential in order to provide com!ortto t$e user, and t$ere!ore revenue !or t$e compan".

     T$is actual proect see5s to provide a poer!ul and stable mobileapplication $ic$ allos not onl" direct contact it$ t$e travela&enc", but also searc$in& and mana&ement services related to apotential trip.

     T$e $ole application is e*plained t$rou&$out t$e !olloin&document, providin& a comparative stud" o! similar applications !oundon t$e mar5et, a description o! 5e" !eatures and re)uirements, all t$etec$nolo&ies t$at $ave been used in t$e development o! t$e tool, bot$on client-side and server-side, and an anal"sis t$at ill cover all t$esteps o! t$e proect, !rom desi&n t$rou&$ tests. Finall" a $and-boo5 !orbetter understandin& and more !riendl" use o! t$e application can be!ound.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    6/135

    Pala5ra# cla$!3a si&uiente lista contiene palabras descriptivas )ue podr#n utili'arsepara catalo&ar el pro"ecto.

    •  Android

    •  Aplicación

    •  Móvil

    •  6liente

    •  Servidor

    •  7iaes

    •  8oteles

    •  6oc$es

    •  7uelos

    •   Turismo

    •   Travellin&-Service

    6!78rd#

     T$e !olloin& list contains descriptive ords $ic$ ma" be used tocatalo& t$e proect.

    •  Android

    •  Application

    •  Mobile

    • 

    6lient•  Server

    •   Trip

    •  8otels

    •  6ars

    •  Fli&$ts

    •   Tourism

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    7/135

    •   Travellin&-Service

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    8/135

    Gl#ari• S"ar)p9n!. An&licismo. Telé!ono móvil construido sobre

    una plata!orma in!orm#tica móvil, con capacidad paraalmacenar datos " reali'ar actividades aseme#ndose a unaminicomputadora.

    •  Andrid. Sistema operativo basado en linu* para dispositivosmóviles.

    •  Lin0:. 6ombinación de 5ernel libe con sistema G9U.

    • GNU. Sistema operativo desarrollado por G9U, !ormado en sutotalidad por so!tare libre.

    • 6!rn!l. 9(cleo, so!tare )ue constitu"e una parte

    !undamental un sistema operativo.•  Ac)i$idad. 6ada una de las pantallas de la aplicación móvil.

    • Pr!'!r!ncia. Mecanismo de almacenamiento m#s sencillo deAndroid en !orma de partes clave-valor.

    • API. Si&las de :nter!a' de Pro&ramación de Aplicaciones. Esun conunto de !unciones, métodos o procedimientos )ueo!rece una biblioteca para ser utili'ado por otro so!tare comouna capa de abstracción.

    • S!r$ici ;!5.  Tecnolo&a )ue utili'a un conunto deprotocolos " est#ndares )ue sirven para intercambiar datosentre aplicaciones.

    • R!c0r#. %atos ;arra"s, im#&enes, cadenas, n(meros, estilos<)ue se almacenan independientemente del códi&o de aplicaciónpara meorar la or&ani'ación del pro"ecto " permitir suadaptación a cambios.

    • Cli!n)!. Aplicación in!orm#tica )ue consume un servicio

    remoto de otro ordenador conocido como servidor.• S!r$idr. 9odo )ue !orma parte de una red " provee de

    servicios a nodos denominados clientes.

    • Scrip). Arc$ivo de órdenes, arc$ivo de procesamiento porlotes o &uión es un pro&rama usualmente simple, )ue por lore&ular se almacena en arc$ivos de te*to plano.

    •  M0l)ipla)a'r"a. 7#lido para varios sistemas.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    9/135

    Ta5la d! cn)!nid

    ,< INTRODUCCIÓN222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222,

    ,2,O5=!)i$#222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222,

    ,2* O5=!)i$# d!l pr7!c)222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222>

    ,2> Fa#!# d!r!ali(ación 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222>

    ,2- E#)r0c)0ra d!l dc0"!n)2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-

    *< ESTADO DEL ARTE222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222?

    *2, Andrid22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

    222222222222222222222222222?0.2.2 Estructura de android..................................................................................................................... =0.2.0 7ersiones del sistema operativo..................................................................................................... >

    *2* En'@0!# !:i#)!n)!#2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

    >< ANLISIS

    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ,*

    >2, Ca)3l% d!r!@0i#i)#22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ,*

    ?.2.2 @e)uisitos !uncionales.................................................................................................................. 20

    ?.2.2.2 Gestión de usuarios............................................................................................................... 2??.2.2.0Aplicación.................................................................................................................

    .............. 2?.2.0 @e)uisitos 9o !uncionales............................................................................................................ 2B

    >2* M!)dl%/a d! d!#arrll2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  ,?

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    10/135

    ?.0.2 6ontenido de cada prototipo........................................................................................................ 2>

    >2> Ba#! d! da)#222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ,

    >2- S!%0ridad222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  ,

    >2 E#)0di d!API#222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  ,

    -< DISEO2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

    222222222222222222222222222222222 *+-2, Ar@0i)!c)0ra d! la aplicación222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  *+

    -2* T!cnl%/a# 0)ili(ada#22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 *,

    .0.2 9ina Moc5ups.............................................................................................................................. 00.0.0 7isualParadi&m............................................................................................................................. 00.0.? Eclipse........................................................................................................................................... 00

    -2*2- Andrid SD6 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 **

    .0.B P8P................................................................................................................................................ 0?.0.= Post&reS)l.....................................................................................................................................0?

    Escuela Politécnica Superior. Universidad Autónoma de Madrid | TFGvii

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    11/135

    Escuela Politécnica Superior. Universidad Autónoma de 8

    .0.> Tora............................................................................................................................................... 0?.0.C Gen"Motion.................................................................................................................................. 0?

    -2> Di#!1 d! pan)alla#222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 *-

    .?.2 Primer prototipo de pantallas....................................................................................................... 0.?.0 Se&undo prototipo de pantallas.................................................................................................... 0=

    -2- Di#!1 d! la in)!r'a(2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 *

    -2 Di#!1 d! la 5a#! d! da)#2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  >.B.2 Modelo entidad-relación.............................................................................................................. ?B.B.0 %ise+o Dnal base de datos............................................................................................................ ?=

    -2? Di#!1 d! #crip)# 7 prc!di"i!n)# al"ac!nad#22222222222222222222222222222222222222222222222222222222222222222222222222  >

    -2 Di#!1 d! la #!%0ridad2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  

    >

    -2 Cncl0#in!#2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 >

    < IMPLEMENTACIÓN22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 -+

    2, Par)! cli!n)!

    22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 -+B.2.2 Elementos b#sicos......................................................................................................................... 1

    B.2.2.2 Módulos................................................................................................................................. 2

    B.2.03ibreras......................................................................................................................................... B2B.2.? :nter!a'.......................................................................................................................................

    ... B0

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    12/135

    Escuela Politécnica Superior. Universidad Autónoma de 9

    2* Par)! S!r$idr22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 

    B.0.2 ase de datos................................................................................................................................ BCB.0.0 Scripts

    P$p..................................................................................................................................... BC

    2> Cncl0#in!#2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?,

    ?< PRUEBAS2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?>

    ?2, Pr0!5a# !n !l cli!n)!2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?>

    ?2* Pr0!5a# !n !l#!r$idr22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?

    < CONCLUSIONES2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?

    < TRABAJO FUTURO2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ?

    R!'!r!ncia# 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  +

    ANEHO A2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 *

    Man0al d! 0#0ari2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 *

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    13/135

    ndic! d! il0#)racin!#

    :lustración 2 Mercado de Sistemas /perativos en Smartp$ones ?2H.......................... 0:lustración 0 Aplicaciones descar&adas por Sistema /perativo 0H

    ............................... 0:lustración ? - Ar)uitectura de Android BH...................................................................... =:lustración - Gr#!ico de reparto de versiones =H........................................................... I:lustración B - TouristE"e................................................................................................ 21:lustración = - TripAdvisor CH......................................................................................... 21:lustración > - Ja"a5 IH

    .................................................................................................. 22:lustración C - @epresentación &r#!ica de modelo deprototipos................................... 2>:lustración I - Ar)uitectura del sistema......................................................................... 02:lustración 21- %ia&rama de pantallas versión 2............................................................ 0B:lustración 22 - %ise+o de pantallas!inal ....................................................................... 0>:lustración 20 - :nicio de sesión " @e&istro ?0H.............................................................. 0C:lustración 2? - Men( principal ?0H............................................................................... 0I:lustración 2 - Pantallas de b(s)ueda ?0H................................................................... ?1:lustración 2B - 3ista de resultados?0H ......................................................................... ?1:lustración 2= - Men( lateral ?0H................................................................................... ?2:lustración 2> - Mi cuenta ?0H....................................................................................... ?0:lustración 2C - Mis viaes " detalle ?0H......................................................................... ??:lustración 2I - %atos de la empresa ?0H...................................................................... ?:lustración 01 - Formulario de contacto?0H.................................................................. ?:lustración 02 - Modelo entidad relación primera versión ??H..................................... ?B

    :lustración 00 - Modelo entidad relación !inal??H........................................................ ?=

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    14/135

    :lustración 0? - %ise+o !inal de las tablas de la base de datos??H ............................... ?>:lustración 0 - 6mprobación de Email en el re&istor de usuario.................................. 2:lustración 0B - orrado de pre!erencias de usuario

    ...................................................... 0:lustración 0= - Es)uema " KM3 de pre!erencias........................................................... ?:lustración 0> - Par#metros de comunicación con la AP: de E*pedia............................ ?:lustración 0C - Función para !iar una pre!erencia........................................................ :lustración 0I - Almacenamiento de pre!erencias al iniciarsesión................................ :lustración ?1 - 6onstrucción de vector de pares de valores

    ......................................... B:lustración ?2 - 6onstrucción del enlace para la llamada al servicio eb...................... B:lustración ?0 - 3lamada a un servicioeb .................................................................... B:lustración ?? - GeoSearc$ de E*pedia........................................................................... =:lustración ? - Muestra del listado de $oteles.............................................................. >:lustración ?B - %etalle del $otel.................................................................................... >:lustración ?= - :niciali'ar Lson........................................................................................ C:lustración ?> - FunciónGetLson/bect.......................................................................... C:lustración ?C - 6ódi&o de la !unción GetLsonArra"....................................................... I:lustración ?I - Funciones

     Lson....................................................................................... I

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    15/135

    :lustración 1 -KmlPullParser.........................................................................................B1:lustración 2 - Función )ue procesa un KM3................................................................ B1

    :lustración 0 - Eemplo de Pro&ress%ialo&.................................................................... B2:lustración ? - @ecursos para el men( lateral............................................................... B0:lustración - Men(3ateral ......................................................................................... B?:lustración B - Eemplo de /nPro&ressUpdate de una tarea asncrona....................... B:lustración = - Función on:tem6lic5 de3ist7ie........................................................... B

    :lustración > - 3istado 8oteles...................................................................................... BB:lustración C - Eemplo de uso de itmapFactor" para conse&uir unaima&en ............ B=:lustración I - %etalle de un $otel................................................................................ B=:lustración B1 - E*pandablelist....................................................................................... B>:lustración B2 - 6omprobación par#metros P8P............................................................ BC:lustración B0 - @e)uests P8P de par#metros................................................................ BI:lustración B? - 6one*ión P8P a base de datos.............................................................. BI:lustración B - Eemplo de Script interactuando con base dedatos............................. BI:lustración BB - Eemplo de procedimiento almacenado de la base dedatos ............... =1:lustración B= - Fic$ero p$p )ue constru"e unKM3....................................................... =2:lustración B> - Eemplo de KM3 devuelto por el servidor............................................. =2:lustración BC - Prueba de re&istro de usuario en el servidor........................................ ==:lustración BI - Procedimiento de prueba para comprobar usuarios delservidor ........ ==:lustración =1 - Prueba Script de inicio desesión........................................................... ==:lustración =2 - Eemplo script

    $oteles% ...................................................................... =>

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    16/135

    :lustración =0 - Pantalla de inicio................................................................................... >0:lustración =? - @e&istro e inicio de sesión..................................................................... >0:lustración = - Men(

    principal....................................................................................... >?:lustración =B - Pantalla de b(s)ueda de $oteles.......................................................... >?:lustración == - Elección de !ec$as " $uéspedes............................................................ >:lustración => - 3istado de$oteles.................................................................................. >:lustración =C - %etalle del $otel.................................................................................... >B:lustración =I - Men( lateral

    desple&ado....................................................................... >B:lustración >1 - Pantalla Micuenta................................................................................. >=:lustración >2 - :n!ormación sobre la empresa " !a)s.................................................... >>:lustración >0 - Pro&ramas de a!iliación......................................................................... >>:lustración >? -6ontacta.................................................................................................>C

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    17/135

    Escuela Politécnica Superior. Universidad Autónoma de *i

    ndic! d! )a5la#

     Tabla 2 - Tabla de versiones............................................................................................. C

     Tabla 0- Tabla de pruebas en la

    aplicación..................................................................... =B

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    18/135

    Escuela Politécnica Superior. Universidad Autónoma de 1

    ,

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    19/135

    Escuela Politécnica Superior. Universidad Autónoma de 2

    Para ello se $a reali'ado un estudio de las tecnolo&as móvilesdisponibles en la actualidad, donde se $a encontrado entre ellas una)ue encaa con el obetivo del pro"ecto debido principalmente a suuniversalidad. Se&(n un estudio 2H el C1 de los telé!onos móviles

    son smartphones. %e ese alto porcentae, m#s de otro C1 llevaAndroid como sistema operativo, se&uido por :/S con un 2?, " entercer lu&ar, con un? se encuentra Nindos P$one, como puede verse en la!i&ura 2. Adem#s, enEspa+a, donde reside Travellin&-Service, la implantación de Androidsupera "a el I1.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    20/135

    I L U S T R A C I Ó N , . M E R C A D O D E S I S T E M A S O P E R A T I V O S E N SM A R T P  O N E S ?2H

    /tro estudio 0H indica )ue Android también es lder en el n(mero deaplicaciones descar&adas por sistema operativo, donde se encuentrapor encima del CB, !rente a un ? de :/S, un de NindosP$one, " un ? de @:M, como puede observarse en la si&uiente !i&ura.

    IL U S T R A C I Ó N * . AP L I C A C I O N E S D E S C A R G A D A S P O R SI S T E M A OP E R A T I V O K*

    %ebido al &ran apo"o )ue recibe por parte del mercado internacional,as como por ser de desarrollo libre, unido a todo lo reco&ido

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    21/135

    anteriormente en este apartado, Android parece el candidato per!ectopara este pro"ecto.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    22/135

    2 . 0 /   L E  T : 7 / S % E 3 P@ /  O E 6  T /

    El obetivo principal de este Trabao de Fin de Grado es desarrollar unaaplicación para dispositivo móvil en Android para la &estión " reservade servicios relacionados con viaes, donde los usuarios podr#nre&istrarse, consultar " reservar aspectos relacionados con la&estión de uno o varios viaes, as como consultar datos relevantessobre la empresa, con el !in de aumentar las ventas de la misma.

    /tro de los principales obetivos de un producto de estas

    caractersticas es la !orma de lle&ar al usuario, por lo )ue unainter!a' ami&able " la !acilidad de uso se $acen indispensables eneste pro"ecto.

    3a robuste' es otro de los obetivos de cual)uier sistema so!tare, através de la cual se mide, en su ma"ora, la calidad del producto.

    El (ltimo de los obetivos a destacar es el reto )ue supone llevar acabo un pro"ecto so!tare desde cero, plani!icando todas sus etapas,desde el estudio " an#lisis, $asta la codi!icación " las pruebasnecesarias. Siendo necesaria asimismo una plani!icación detallada

    del tiempo " los recursos, as como la puesta en pr#ctica de lascapacidades " conocimientos ad)uiridos a lo lar&o de toda la carrera.

    2 . ? F A S E S % E @ E A 3:  A 6 : Q 9

    En este apartado se da una visión &eneral de las !ases se&uidas a lo

    lar&o de la reali'ación del pro"ecto, )ue son las correspondientes a lama"ora de un desarrollo so!tare.

    • E#)0di. :nvesti&ación sobre las posibles tecnolo&as a utili'ar,posible estudio de mercado " de viabilidad. :nda&ación "pruebas sobre aplicaciones relacionadas, con el obetivo dee*traer lo )ue se suele utili'ar en pro"ectos similares.

    • An3li#i#. %e!inición de re)uisitos con el obetivo de dilucidare*actamente )ué es lo )ue se desea construir.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    23/135

    • Di#!1.  Tras !inali'ar las !ases de estudio " an#lisis, "con el listado de re)uisitos bien de!inido, se procede adise+ar la ar)uitectura de la aplicación.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    24/135

    Esto inclu"e diversos dia&ramas )ue de!inir#n el dise+o depantallas, inter!a', base de datos " se&uridad.

    •  I"pl!"!n)ación. Pro&ramación de la aplicación móvil en Lava.

    • Pr0!5a#. Una ve' !inali'adas todas las !ases anteriores, se$ace necesario la reali'ación de una !ase de pruebas &eneralespara comprobar la calidad " e!ectividad del so!taredesarrollado.

    • Dc0"!n)ación. Se&(n una &ua sobre desarrolloso!tare ?H, la documentación es al&o indispensable parael correcto mantenimiento de cual)uier producto so!tare.

     Tanto a nivel de códi&o como de documento, con el !in de dearconstancia por escrito de las !ases llevadas a cabo en el ciclo devida del producto so!tare.

    •  Man)!ni"i!n). 3a &ua de principios de desarrolloso!tare de Microso!t

    :bérica H a!irma )ue el mantenimiento de un productoso!tare supone elC1 del ciclo de vida. En este pro"ecto puede no tener muc$acabida, pero se orienta a un trabao !uturo con bastante

    pro"ección con el !in de meorar " ampliar la aplicación.

    2 .  E S  T @ U 6  T U @ A % E 3 %/ 6 U M E 9  T /

    El presente documento reco&e todas las !ases mencionadas en elapartado anterior. As como posibles ane*os con in!ormaciónrelevante sobre el pro"ecto. @ecorrer# todas las !ases del pro"ectodesde el dise+o $asta las pruebas, " por (ltimo un manual de uso.

    Adem#s, todas las tecnolo&as, $erramientas " len&uaes utili'adosen el desarrollo de la aplicación, tanto del lado del cliente como dellado del servidor, se e*plican para una meor comprensión delpro"ecto.

    En el si&uiente captulo se reali'a un estudio del estado del arte,)ue contiene una breve descripción del sistema operativo Android

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    25/135

     unto a sus aspectos m#s relevantes, " una comparación deaplicaciones similares e*istentes en el mercado.

    En el captulo ? - An#lisis se documenta la !ase de an#lisis, de!inicióndel pro"ecto, metodolo&as de desarrollo, descripción de

    caractersticas " listado de re)uisitos.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    26/135

    A continuación, en el captulo - %ise+o, se ilustra el dise+ode la aplicación, inclu"endo ar)uitectura del sistema, dise+o deinter!aces, dise+o de base de datos, de servidor " de se&uridad.

    El captulo B - :mplementación e*plica la !ase de implementación de

    aplicación, tanto el lado de cliente como el lado de servidor, en loslen&uaes ele&idos. As como las libreras utili'adas " técnicas dedesarrollo.

    El captulo = - Pruebas enumera las pruebas )ue se $an reali'ado traslas !ases anteriores.

    Un pen(ltimo captulo )ue mani!iesta unas conclusiones sobre eltrabao reali'ado.

    Finalmente, un captulo )ue propone un posible trabao !uturo con el

    obetivo de plantear meoras una ve' !inali'ado este Trabao de Fin deGrado.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    27/135

    *< ESTADO DEL ARTE0 . 2 A 9 % @ / : %

    Android es un sistema operativo basado en el kernel

    de 3inu* " dise+ado principalmente paradispositivos móviles con pantalla t#ctil, tales comosmartphones o tabletas. :nicialmente desarrollado porAndroid :nc, " respaldado económicamente porGoo&le, )ue m#s tarde, en el a+o 011B ad)uirió laempresa.

    Uno de los aspectos !undamentales del sistemaoperativo de Android !ue su orientación a lamultiplata!orma, al&o realmente novedoso, debido a

    )ue $ace unos a+os, un sistema operativo seasociaba a un (nico dispositivo. @#pidamente esta caracterstica$i'o )ue Androidalcan'ara sus obetivos, convirtiéndose en el sistema operativo m#sutili'ado.

    0 . 2 . 2 E S T @ U 6 T U @ A % E A 9 % @ / : %

    6omo puede apreciarse en la !i&ura ?, Android se encuentraestructurado en varias capas.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    28/135

    IL U S T R A C I Ó N > & AR  U I T E C T U RA D E AN D R O I D K

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    29/135

    Si se parte de una vista ascendente, lo primero )ue se encuentra es elncl! d! Andrid. asado en el kernel del sistema operativo 3inu*versión 0.=. Esta capa proporciona servicios de se&uridad, maneo dememoria, multiproceso " soporte para controladores de dispositivo.

    A continuación se locali'a el !n)rn d! !=!c0ción ; AndroidRuntime), basado en la m#)uina virtual de Lava. %adas laslimitaciones de los dispositivos Goo&le decidió crear la m#)uinavirtual Dalvik , la cual respondió muc$o meor a dic$as limitaciones.Entre sus caractersticas destacan, la optimi'ación de recursosdebido a la eecución de !ic$eros Dalvik eecutables ;.de*< " ladele&ación al kernel de 3inu* procesos como el threading " el maneode memoria a bao nivel.

    Al mismo nivel se ubican las li5r!r/a# na)i$a#, escritas en 6R6 "

    compiladas en códi&o nativo del procesador. Muc$as libreras utili'ancódi&o abierto. Entre ellas se destacan

    - S7#)!" C Li5rar7. adaptada para dispositivos embebidos en3inu*.- ;!56i). Soporta el nave&ador eb de Android " su vista

    ebvie. Misma librera )ue Goo&le 6$rome " Sa!ari deApple.

    - SLi)!. 3i&ero pero potente motor de bases de datosrelacionales.

    - SSL. Proporciona servicios de encriptación ;Secure Socket Layer <El !n)rn d! aplicación ; Application Framework < o!rece unaplata!orma de desarrollo libre para aplicaciones, donde su principalri)ue'a reside en la reutili'ación de componentes. 6omponentesdesarrollados por Goo&le, o por usuarios. 3os servicios m#simportantes son

    - Views: conunto de vistas.- Location Manager: proporciona servicios de locali'ación aaplicaciones.-  Activity Manager . maneador del ciclo de vida de lasactividades.- Notification Manager: permite mostrar noti!icaciones a lasactividades.- Content Provider: concede accesos a datos de otrasaplicaciones

    Por (ltimo se encuentra la capa d! aplicacin!# ; Applications<!ormada por el conunto de aplicaciones del dispositivo, "a seannativas o instaladas por el usuario. Todas ellas deben correr en la

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    30/135

    m#)uina virtual Dalvik para &aranti'ar la se&uridad del sistema. 3ama"ora de ellas escritas en Lava.

    0 . 2 . 0 7E @ S : / 9 E S % E 3 S : S T E M

    A / P E @ A T : 7 /

    Android no $a parado de evolucionar desde el lan'amiento de suprimera versión. En Febrero de 011I Goo&le lan'a su primeraactuali'ación 2.2 )ue se di!erenciaba de la primera en poder aduntararc$ivos en los mensaes. Si ec$#ramos la vista atr#s " lo

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    31/135

    compar#semos con una versión actual, comprenderamos la inmensaevolución del sistema operativo. Todas las actuali'aciones si&uientesincorporan !uncionalidades nuevas o meoran las "a e*istentes.

     Todas las versiones de Android reciben del in&lés el nombre dedi!erentes postres, si&uiendo, adem#s, orden al!abético.

    - A. Appl! Pi! ;v2.1

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    32/135

    IL U S T R A C I Ó N -& GR  F I C O D E R E P A R T O D E V E R S I O N E S K?

    0 . 0 E 9 F / V U E S E K :S  T E 9  T E S

    En el #mbito de las aplicaciones dedicadas a &estión " b(s)ueda deviaes, pueden encontrarse dos vertientes di!erenciadas, una deellas dedicada a la b(s)ueda de in!ormación, opiniones de otrosusuarios, con un detalle m#s amplio de los lu&ares buscados, " otroen!o)ue m#s orientado a la reserva directa de los serviciosrelacionados con viaes.

    A continuación se muestran varias capturas de pantalla por cadaaplicación, en concreto tres de ellas. Siendo la primera una capturade la pantalla principal o men( lateral principal, la se&unda, un listado

    de servicios !iltrados, " por (ltimo, un detalle de uno concreto.Sobre el primer en!o)ue, el m#*imo e*ponente esTouristEye >H.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    33/135

    IL U S T R A C I Ó N  & TO U R I S T E  QE 

    !ourist"ye es una aplicación multiplata!orma cu"o obetivo principales o!recer in!ormación relevante al usuario acerca de todo lorelacionado sobre un destino turstico concreto. :deal para coleccionarideas " plani!icar posibles viaes.

    En la otra vertiente podemos encontrar dos

    aplicaciones. 3a primera de ellas es

    TripAdvisor CH.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    34/135

    IL U S T R A C I Ó N ? & TR I PAD V I S O R K

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    35/135

    Por (ltimo, cabe destacarKayak IH.

    IL U S T R A C I Ó N &6 A  Q  A 6 K

    Estas dos (ltimas aplicaciones permiten, adem#s de la b(s)uedade in!ormación acerca de servicios tursticos, la reserva de losmismos, permitiendo al usuario introducir sus datos de !acturación, otenerlos re&istrados, para )ue el reservar un $otel, vuelo, u otroservicio, se convierta en un mero de tr#mite de suma !acilidad.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    36/135

    ><ANLISIS

    En este captulo se presenta la !ase de an#lisis, parte inicial de todopro"ecto so!tare, se de!inen los re)uisitos " se muestra una vista&lobal de la ar)uitectura pensada para el sistema. En el si&uientecaptulo se tendr# en cuenta este cat#lo&o de re)uisitos como basepara el dise+o de todos los aspectos de la aplicación. Es por ello porlo )ue la !ase de an#lisis es de suma importancia para el devenir detodo producto so!tare. Es en este captulo donde se debenasentar las bases, a modo de cimientos, del pro"ecto, ", a partirde las cuales se construir# todo lo dem#s.

    El proceso a se&uir se basa en primer lu&ar en una buena de!iniciónde re)uisitos " en ele&ir una metodolo&a de desarrollo acorde con elpro"ecto.

    3a ar)uitectura de la aplicación tendr# el !ormato de cliente-servidor,constitu"endo el servidor la base de datos, " AP:Ws de acceso, "cliente, la aplicación móvil.

    Xste captulo es !undamental para entender el pro"ecto. Acontinuación se des&losan la !uncionalidad " las caractersticas amodo de cat#lo&o de re)uisitos, teniendo en cuenta tanto re)uisitos

    !uncionales como no !uncionales.

    ? . 2 6 A  T Y 3 / G / % E @ EV U : S :  T / S

    El cat#lo&o de re)uisitos es la especi!icación del comportamiento )uese espera de cual)uier pro"ecto so!tare. Estudiando otrasaplicaciones similares, se $a prede!inido una serie de re)uisitos )ue

    se consideran indispensables para el pro"ecto. A continuación, se

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    37/135

    muestra una enumeración " breve descripción de los re)uisitosestablecidos para el dise+o " desarrollo de la aplicación.

    ? . 2 . 2 @ E V U : S : T / S F U9 6 : / 9 A 3 E S3os re)uisitos !uncionales describen todas las interacciones )uetendr#n los usuarios con el so!tare.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    38/135

    Escuela Politécnica Superior. Universidad Autónoma de 13

    ? . 2 . 2 . 2 G E S  T : Q 9 % E U S U A @ : / SRF,. R!%i#)r

    ,2 3a aplicación debe permitir al usuario introducir sus datos en el!ormulario de re&istro.

    *2 El sistema se encar&ar# de validar los datos.>2 El sistema mostrar# un mensae de error si al&uno de los

    datos es incorrecto o no cumple las condiciones especi!icadasdel !ormulario de re&istro.

    -2 En el caso de )ue la validación sea correcta, el sistema seencar&ar# de &uardar los datos del usuario en base de datos.

    2 El sistema enviar# un correo electrónico de con!irmación alusuario en el caso

    de )ue el re&istro se $a"a e!ectuado correctamente.?2 3a aplicación mostrar# un mensae de bienvenida al usuario "

    le rediri&ir# a la pantalla principal con su sesión "a iniciada.

    RF*. Id!n)i'icación

    ,2 Para iniciar sesión el usuario deber# identi!icarse con sunombre de usuario " contrase+a correspondiente. En el caso de"a $aber iniciado sesión anteriormente el inicio de sesión ser#autom#tico al iniciar la aplicación.

    *2 El sistema se encar&ar# de validar " permitir o dene&ar el accesoa la aplicación.>2 El sistema mostrar# un mensae de error en el caso de )ue la

    validación no sea correcta.-2 En el caso de )ue la validación sea correcta, se mostrar# un

    mensae de bienvenida al usuario " le rediri&ir# a la pantallaprincipal

    RF>. Ci!rr! d! #!#ión

    ,2 6ual)uier usuario de la aplicación debe poder !inali'ar sesiónen la aplicación mediante un botón de )ue indi)ue Z6ierre desesiónZ.

    *2 En el caso de )ue el usuario pulse el botón de cierre de sesión,el sistema mostrar# un mensae, para ase&urarse de )ue elusuario )uiere cerrar sesión, permitiendo aceptar o cancelar.

    >2 El usuario ser# rediri&ido a la pantalla principal pero en estecaso sin estar

    lo&ado.

    RF-. Slici)0d d! 5a=a

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    39/135

    Escuela Politécnica Superior. Universidad Autónoma de 14

    ,2 El usuario puede solicitar darse de baa en el sistema.*2 El sistema pre&untar# si $a" al&una ra'ón por la )ue el usuario

    desea darse de baa.>2 El sistema mostrar# un cuadro de te*to )ue el usuario

    puede rellenar con su&erencias.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    40/135

    -2 3a aplicación mostrar# un mensae, para ase&urarse de )ueel usuario )uiere darse de baa, permitiendo aceptar o cancelar.

    2 En el caso de )ue el usuario pulse aceptar " !inalmente )uieradarse de baa, se

    borrar#n todos sus datos de la basede datos.

    ?2 Se le noti!icar# por correo electrónico )ue se $a dado de baa enla aplicación.

    RF. C0!n)a d! 0#0ari

    ,2 %ebe e*istir una pantalla en el sistema )ue permita alusuario consultar o modi!icar los datos de su cuenta.

    *2 Si modi!ica al&(n dato el sistema lo validar#.>2 En caso de )ue la validación sea correcta, se actuali'ar#n sus

    datos en la base de datos.RF?. Mi# $ia=!#

    ,2 %ebe e*istir una pantalla en la )ue el usuario puedaconsultar los servicios contratados.

    Adem#s, el usuario podr# acceder al detalle de cada reserva "consultar datos de interés.

    ? . 2 . 2 . 0 A P 3 : 6 A 6 : Q 9RF. Pan)alla principal

    ,2 3a pantalla principal de la aplicación constar# de tres botonesa2 B#@0!da d! $0!l 3a aplicación mostrar# un buscadorde vuelos.52 B#@0!da d! 9)!l 3a aplicación mostrar# un buscadorde $oteles.c2 B#@0!da d! $!9/c0l d! al@0il!r. Mostrar# un

    buscador de ve$culos de al)uiler.

    RF. M!n la)!ral

    ,2 El men( lateral mostrar# la opción de acceder aa2 R!%i#)rar#! Formulario para re&istrar un nuevo usuarioen la aplicación.52 Iniciar #!#ión Pantalla para iniciar sesión en la aplicación.c2 Mi c0!n)a %atos de cuenta de usuario.d2 Mi# $ia=!# 7iaes contratados por el usuario.!2 A'iliación Pantalla de in!ormación acerca de planes dea!iliación.'2 FA# Pre&untas !recuentes

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    41/135

    %2 0i4n!# #"# :n!ormación relevante sobre la empresa.92 Cn)ac) Formulario para contactar con la empresa.

    RF. B#@0!da $0!l# 9)!l!# 7 cc9!#

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    42/135

    Escuela Politécnica Superior. Universidad Autónoma de 15

    ,2 En todas las pantallas de b(s)ueda se re)uerir# )ue el usuariorellene los !iltros correctamente.

    RF,+. N)icacin!#

    ,2 El sistema debe lan'ar alarmas o noti!icaciones en los si&uientescasos

    a2 Avisos importantes sobre viaes contratados.52 Avisos sobre descuentos o viaes nuevos.c2 @etrasos o in!ormación relevante en vuelos.

    ? . 2 . 0 @ E V U : S : T / S 9 / F U 9 6 : / 9 A 3 E S@e)uisitos complementarios o atributos de calidad. Especi!icancriterios )ue u'&an operaciones del sistema en lu&ar de sucomportamiento ;re)uisitos !uncionales2 3a codi!icación del sistema deber# ser clara " estar

    documentada de manera )ue al&(n pro&ramador puedaa&re&ar !uncionalidad posteriormente, procurando se&uir losest#ndares de pro&ramación Android.

    RNF*. S!%0ridad

    ,2 Para poder utili'ar la aplicación $a" )ue autenti!icarse.*2 Solo ser# necesario autenti!icarse una ve' en el dispositivo.>2 Si el usuario no cierra su sesión, se mantendr# abierta para

    !uturos usos de la aplicación.-2 3os datos personales ser#n ci!rados.

    RNF>. Man)!ni5ilidad 7 pr)a5ilidad

    ,2 %isponibilidad para todo tipo de dispositivo Android.Smartphones o ta#lets.

    *2 3a aplicación Android estar# soportada para la ma"ora deversiones posibles.>2 Ser# necesario disponer de una cone*ión a internet, "a sea por

    Ni!i o por tari!a de datos.

    RNF-. In)!r'a( 7 0#a5ilidad

    ,2 3a aplicación debe constar de una inter!a' sencilla, atractiva eintuitiva. %e tal !orma )ue su uso no supon&a un impedimento oes!uer'o al usuario a la $ora $acer uso de la aplicación.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    43/135

    Escuela Politécnica Superior. Universidad Autónoma de 16

    *2 3a introducción de datos debe estar estructurada procurandoevitar errores.

    RNF. R!ndi"i!n)

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    44/135

    ,2 Se esperan tiempos de respuesta no superiores a un se&undoen las peticiones al servidor " menores en las consultas a labase de datos.

    *2  Tanto los accesos a base de datos como al&(n c#lculo )ue serealice en la

    aplicación no supone demasiada car&a para el dispositivo,por lo )ue el rendimiento ser# óptimo.

    ? . 0 M E  T / % / 3 / G [ A % E % ES A @ @ / 3 3 /

    Se trata de un marco de trabao usado para estructurar,plani!icar " controlar el proceso de desarrollo del so!tare. E*iste

    una &ran cantidad de métodos di!erenciados por sus !ortale'as "debilidades. Una metodolo&a de desarrollo so!tare se basa en

    - 8erramientas, modelos " métodos para eecutar dic$o procesode desarrollo.

    6ada metodolo&a de desarrollo tiene su propio en!o)ue. Entre ellos,para el pro"ecto Travellin&-Service el en!o)ue de prototipado CHparece ser el m#s apropiado, debido a )ue se centra en la e*perienciacon usuario " a )ue su construcción debe ser en poco tiempo.

    El modelo de prototipos pertenece a los modelos de desarrolloevolutivo, el prototipo debe ser construido en poco tiempo " sinutili'ar muc$os recursos. El dise+o r#pido se centra en representaciónde aspectos so!tare visibles para el usuario. Este r#pido dise+oconduce a la creación de un primer prototipo )ue ser# evaluado "retroalimentado por el cliente, &racias al cual el e)uipo de desarrollopodr# entender meor lo )ue se debe $acer " permitiendo ver alcliente resultados pro&resivos a corto pla'o.

    3as di!erentes etapas por la )ue pasa un so!tare construido con este

    tipo de metodolo&a son- Plan r#pido- Modelado, dise+o r#pido- %esarrollo- Entre&a- @etroalimentación- 6omunicación- Entre&a !inal

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    45/135

    Este modelo es mu" (til cuando el cliente conoce per!ectamentelos obetivos &enerales del so!tare, pero no detalla los re)uisitos.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    46/135

    A continuación se ilustra la metodolo&a de desarrollo utili'ada eneste pro"ecto mediante un &r#!ico sencillo.

    IL U S T R A C I Ó N & R E P R E S E N T A C I Ó N G R  F I C AD E M O D E L O D E P R O T O T I P O S

    ? . 0 . 2 6 / 9 T E 9 : % / % E 6 A % AP @ / T / T : P /

    En el primer prototipo se crea la base de datos del servidor " lainter!a' de usuario de todas las pantallas de la aplicación. Adem#s, la!uncionalidad de re&istrar usuario e iniciar sesión en la aplicaciónestar#n disponibles.

    En el se&undo prototipo se intentan re!inar las inter!aces por si no)uedaron lo su!icientemente intuitivas. 3as b(s)uedas ser#n!uncionales " se mostrar#n los resultados al usuario. Se implementa la!uncionalidad del resto de pantallas )ue no necesitan ni servidor, niAP:, ni base de datos, tales como, pantallas de in!ormación de laempresa, pantalla de $erramientas, etcétera.

    En el (ltimo prototipo se meora lo anterior " se implementan lascompras del usuario, pasando a ser viaes contratados en la pantallade mis viaes.

    Antes de cada entre&a de prototipo se reali'an una serie de pruebas

    como se indica en:lustración C - @epresentación &r#!ica de modelode prototipos.

    ?  . ?  A S  E %  E% A  T / S

    Es obvio )ue la base de datos no puede ser local en el propiodispositivo, por lo )ue se implementa una base de datos e*terna

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    47/135

    situada en el servidor " a la )ue se accede a través del AP: delservidor.

    3a base de datos almacenar# toda la in!ormación de usuarios, como lade viaes reservados por ellos, se e*plicar# m#s adelante en el

    6aptulo - %ise+o.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    48/135

    ? .  S E G U @: % A %

    E*istir# una li&era capa de se&uridad para evitar cierto tipo deata)ues. 3a aplicación se comunicar# con el servidor por medio dellamadas 8TTP para enviar " recibir in!ormación. Esta in!ormaciónpuede verse en peli&ro ante ata)ues $an in the $iddle IH, poreemplo. Si el atacante consi&ue interceptar las cabeceras enviadas alservidor podra obtener datos mu" valiosos como contrase+as "nombres de usuario.

    3a !orma m#s r#pida de evitar estos ata)ues es ci!rar los datos )ue seintercambian entre servidor " cliente, as como ci!rar las contrase+as,para )ue en el caso de )ue un atacante consi&uiera los datos, no lesean de utilidad. En el caso de la aplicación los datos estar#n ci!radosen mdB con el !in de evitar semeantes ata)ues.

    ? . B E S  T U %  : / %E A P : W S

    6omo se indica en el cat#lo&o de re)uisitos, e*isten tres tipos deb(s)uedas di!erenciadas en el pro"ecto. (s)ueda de $oteles,b(s)ueda de vuelos " b(s)ueda de ve$culos de al)uiler. Se $anestudiado diversos servicios eb para conse&uir esta !uncionalidad,)uedando !inalmente ele&idas tres.

     Todas proporcionan acceso a datos " servicios )ue se pueden utili'arcomo blo)ues de construcción para desarrollar aplicaciones. En elcaso de esta aplicación se utili'ar#n concretamente

    - "% p edia &'( (s)ueda de $oteles. El servicio eb de$oteles de E*pedia brinda todo tipo de datos sobre $oteles alusuario. Se trata de un servicio eb inmenso, con posibilidad deinte&rarlo no solo en dispositivos móviles.

    - *o t w ir e &'+ (s)ueda de ve$culos de al)uiler. Este servicioeb proporciona datos comerciales sobre al)uiler de coc$es.6ada resultado devuelto inclu"e una dirección U@3 )ue sepuede utili'ar para ver los detalles adicionales " completar una

    compra.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    49/135

    3a AP: permite reali'ar b(s)uedas utili'ando par#metrosrelacionados con elal)uiler de coc$e, por eemplo, lu&ar, !ec$a " $ora de reco&ida" devolución del ve$culo.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    50/135

    - Fli gh t St a t s & ' (s)ueda de vuelos. El servicio deFlightStats o!rece una amplia variedad de in!ormaciónrelacionada con transporte aéreo, incluida plani!icación de vuelo" retrasos.

     Todas ellas tienen condiciones de uso bastante similares. 3a cuenta dedesarrollador es &ratuita, obteniendo servicios limitados, comon(mero de llamadas a los servicios eb " n(mero de resultadoso!recidos por las b(s)uedas. El se&undo plan, de pa&o, o!recellamadas ilimitadas a los servicios, pudiendo adem#s utili'ar n(merosde cuenta " porcentaes de comisiones para dividir los bene!icios )ueo!recera nuestra aplicación.

    Una ve' re&istrado nuestro pro"ecto en !ase de desarrollo, todasnos proporcionan una clave secreta " ci!rada ; A-/ey < )ue se deber#

    incluir en todas las llamadas a los servicios de b(s)ueda desdenuestra aplicación, unto a otros par#metros )ue se especi!icar#n enel captulo B.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    51/135

    -<DISEO

    En el presente captulo se describe todo el proceso de dise+ode la aplicación Travellin&-Service. Se $a reali'ado un dise+o )ueabarca todos los re)uisitos descritos en el apartado ?.2 6at#lo&o dere)uisitos. El dise+o proporciona una idea completa del so!taredesarrollado en el pro"ecto. Adem#s, se usti!ican las decisionestomadas para el posterior desarrollo. Para ello, el captulo se divide en.2 Ar)uitectura de la aplicación, .0 Tecnolo&as utili'adas, .?%ise+o de pantallas, . %ise+o de la inter!a',.B %ise+o de la base de datos, .= %ise+o de scripts "procedimientos almacenados ".> %ise+o de lase&uridad.

    El dise+o de la aplicación $a ido su!riendo al&(n cambio a lo lar&o deldesarrollo. En consecuencia, se muestran en este documento variasversiones de al&unos dia&ramas de dise+o del mismo. A continuaciónse enumeran los di!erentes motivos )ue $an implicado dic$asmodi!icaciones

    - Pruebas no satis!actorias, errores, di!icultades o no

    satis!acción de todos los re)uisitos.- Ampliación o adición de al&(n re)uisito.- Ad)uisición de nuevos conocimientos.

     . 2 A @ V U :  T E 6  T U @ A % E 3 A AP 3 : 6 A 6 : Q 9

    6omo se menciona en el 6aptulo ? - An#lisis, la ar)uitectura de laaplicación se basa en el modelo cliente servidor. En el caso de este

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    52/135

    pro"ecto, " como puede verse en la si&uiente !i&ura, la aplicaciónmóvil constituir# la parte cliente, " la base de datos estar# aloadaen un servidor al )ue se acceder# mediante llamadas $ttp.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    53/135

    IL U S T R A C I Ó N & AR  U I T E C T U R A D E L S I S T E M A

    Para el pro"ecto Travellin&-Service era necesario una base de datoscentrali'ada, " no local en el terminal, por lo )ue la separación entrecliente " servidor se convierte en m#s )ue ló&ica en este caso.

    El cliente es )uien inicia las solicitudes, teniendo un papel activo en lacomunicación, " espera la respuesta del servidor. En el caso de estepro"ecto, " como es com(n en modelos de este tipo, el clienteinteract(a con el usuario a través de una inter!a' &r#!ica.

    Por otro lado, el receptor de la solicitud, el servidor, espera a )uelle&uen solicitudes de los clientes, desempe+ando un papel pasivo enla comunicación. Tras la recepción, procesa " enva los datos alcliente.

    3as ventaas 22H )ue supone dic$a separación son notables, ventaasde tipo or&ani'ativo debidas a la centrali'ación de la &estión de lain!ormación " separación de responsabilidades, lo )ue clari!ica "!acilita el sistema. 3a escalabilidad " encapsulación son otras de lasventaas m#s destacables de este modelo, permitiendo aumentar!uncionalidades o recursos de ambos por separado.

    En el apartado de %ise+o de pantallas de este captulo se ilustranaccesos al servidor mediante un dia&rama de pantallas.

     . 0  T E 6 9 / 3 / G [ A S U  T: 3 :  A % A S

    En este pe)ue+o apartado se enumeran las di!erentes$erramientas " tecnolo&as utili'adas durante el desarrollo delpro"ecto.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    54/135

    . 0 . 2 9 : 9 L A M/ 6 J U P S

    9inaMoc5s ?0H es un constructor &r#!ico de ma)uetas. Permite al

    dise+ador or&ani'ar " dise+ar las ma)uetas utili'ando su potente$erramienta drag0drop, con la )ue puede arrastrar elementos "moverlos a su antoo dentro de la ma)ueta. %entro de los numerososeditores de ma)uetas e*istentes, 1in2a$ocks permita la creación deun pro"ecto para Android, pudiendo $acer uso de la ma"ora dewidgets )ue posee este sistema operativo.

    . 0 . 0 7 : S U A 3 P A@ A % : G M

    7isual Paradi&m ??H es una $erramienta de dise+o para pro"ectosso!tare. Soporta multitud de est#ndares de modelado como UM,S"sM3, E@%, %F%, PM9. Es una $erramienta )ue !acilita "a&ili'a el desarrollo de los pro"ectos basados en e*perienciasde usuario apo"#ndose en la identi!icación de los casos, re)uisitos o!luos de acontecimientos.

    . 0 . ? E 63 : P S E

    Eclipse 20H es un entorno de desarrollo compuesto por $erramientasde pro&ramación de códi&o abierto multiplata!orma. Se le a+aden

     plugins para pro&ramar en Lava por eemplo ; 3ava Development !ools, 3D! 

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    55/135

    en Eclipse. 6ombinado con el 4undle AD! antes mencionado !ormanla combinación per!ecta para este tipo de desarrollo.

    El SD/ contiene emuladores " un depurador bastante potente.Adem#s incorpora la $erramienta $anager, )ue permite descar&ar e

    incorporar libreras de la versión deseada al pro"ecto, as como todotipo de documentación deseada.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    56/135

    . 0 . B P8 P

    El len&uae P8P 2BH ;*yper!e%t -reprocessor < es un len&uae de

    códi&o abierto normalmente dedicado al desarrollo eb " )uepuede ser incrustado en len&uae 8TM3. Utili'ado también enservidores para &estionar llamadas $ttp, lo )ue es per!ecto paraalcan'ar los obetivos de este pro"ecto.

    . 0 . = P / S T G@ E S V3

    Se trata de un sistema de &estión de bases de datos relacionalesde códi&o abierto 2=H, mu" com(n en entornos 3inu*. Un sistemamu" potente )ue )ue dispone de &ran parte de la !uncionalidadb#sica de &estores comerciales de bases de datos. Todos los datos dela aplicación estar#n almacenados en ella.

    . 0 . > T/@A

     Tora 2>H es un conunto de $erramientas mutiplata!orma de so!tarelibre )ue asiste a desarrolladores de bases de datos /racle, M"SV3 "Post&reSV3 en su trabao. Mu" valorada, debido a la !acilidad )ueo!rece respecto a la &estión de base de datos.

    . 0 . C G E 9 O M/ T : / 9

    Gen"motion2CH es un emulador de Android )ue aprovec$a laar)uitectura *C= para dar una !orma !luida " r#pida a los distintosdispositivos Android )ue es capa' de emular. astante m#s r#pido)ue el emulador nativo de Android, adem#s es compatible conNindos " 3inu*, lo )ue ser# necesario para el pro"ecto, pues $abr#!ase de codi!icación " pruebas en 3inu*, con el !in de probar losscripts php del servidor en local$ost, como se e*plicar# m#s adelante.

    Posee una inter!a' simple, capa' de soportar distintas

    !uncionalidades, sin olvidar su principal obetivo, los desarrolladores.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    57/135

     . ? % : S E \ / % E P A 9 T A 3 3 A S

    6on un primer dia&rama de pantallas se pretende dar una visión&eneral de la aplicación, donde las transiciones estén de!inidas, as como los recursos utili'ados por cada una de ellas. En este apartadotodas los dia&ramas se $an reali'ado con 7isual Paradi&m ??H.

    . ? . 2 P @ : M E @ P @ / T / T : P / % EP A 9 T A 3 3 A S

    En este dise+o puede observarse cómo la aplicación est# en suma"ora de!inida. :ncluso $aciendo re!erencia a las pantallas )ue vana utili'ar AP:s, !ic$eros p$p del servidor "Ro base de datos.

    6omo puede verse en la Errr N #! !nc0!n)ra !l ri%!n d! lar!'!r!ncia2, las pantallas 3o&in " Account, para inciar sesión "re&istrar un nuevo usuario respectivamente, utili'ar#n un !ic$ero p$pdel servidor llamado account.p$p. Adem#s, interactuar#n con la base

    de datos, en concreto con la tabla de usuarios. %el mismo modo )uelas pantallas Mis 7iaes, Mi 6uenta " %arse de baa.

    3as tres pantallas de b(s)ueda de la aplicación, $otel, vuelo " coc$eutili'an una AP:para mostrar los datos al usuario se&(n el criterio deb(s)ueda introducido.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    58/135

    IL U S T R A C I Ó N ,+& D I A G R A M A D E P AN T A L L A S V E R S I Ó N ,

    Escuela Politécnica Superior. Universidad Autónoma de Madrid | TFG 0B

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    59/135

    . ? . 0 S E G U 9 % / P @ / T / T : P / %E P A 9 T A 3 3 A S

    En un se&undo estudio se a+aden tres pantallas nuevas alprimer prototipo

    - D!)all! !l!"!n). Muestra el detalle del elemento de lalista !iltrada )ue seleccione el usuario.- D!)all! r!#!r$a. Similara a la anterior, pero en este casodesde la pantalla Mis

    7iaes, son elementos "a reservados por el usuario.- Pa% d! r!#!r$a. Pantalla para e!ectuar la reserva del

    elemento seleccionado por el usuario.

    3as pantallas de detalle $acen peticiones a las di!erentes AP:s pararecuperar los datos de detalle " mostrarlos al usuario.

    Una ve' se reali'a una compra, la aplicación &uarda en base de datoslos di!erentes identi!icadores de usuario " de elemento reservadomediante peticiones al sevidor utili'ando los !ic$eros p$p )ue sedescriben m#s adelante en .= %ise+o de scripts " procedimientosalmacenados, para, en cual)uier otro momento, poder recuperar denuevo el detalle de la reserva mediante una petición a lacorrespondiente AP: con los identi!icadores correspondientes.

    Puede verse cómo la aplicación )ueda!inalmente de!inida.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    60/135

    Escuela Politécnica Superior. Universidad Autónoma de Madrid | TFG0=

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    61/135

    IL U S T R A C I Ó N ,, & DI S E  O D EP A N T A L L A S F I N A L

    Escuela Politécnica Superior. Universidad Autónoma de Madrid | TFG 0>

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    62/135

    Escuela Politécnica Superior. Universidad Autónoma de 28

     .  % : S E \ / % E 3 A : 9 T E @ F A 

    3a inter!a' se $a dise+ado con el propósito de )ue sea intuitiva "simple, pero a la ve' potente " capa' de cubrir todos los re)uisitosenumerados en el apartado ?.2 6at#lo&o de re)uisitos.

    En este apartado todas las ma)uetas $an sido dise+adas con9inaMoc5s ?0H. En ellas se puede observar un dise+o de ma)uetasde la aplicación. En primer lu&ar, " si el usuario no se encuentra conuna sesión activa, la aplicación pide un inicio de sesión, dando opcióndel mismo modo a re&istrarse en el sistema, en el caso de )ue notuviera

    un usuariocreado.

    IL U S T R A C I Ó N ,* & I N I C I O D E S E S I Ó N Q R E G I S T R O K> *

    3a actividad principal consta de tres botones )ue diri&en a cada unade las pantallas de b(s)ueda, vuelos, $oteles " al)uiler de coc$es.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    63/135

    IL U S T R A C I Ó N ,> & M E N  PR I N C I P A L K>*

    %ependiendo de la pantalla de b(s)ueda )ue el usuario desee, deber#rellenar unos !iltros de b(s)ueda di!erentes, acordes con el tipo deelementos )ue desea buscar. 6omo puede verse en la ilustración de(s)ueda de $oteles puede verse cómo la aplicación re)uiere )ue elusuario introdu'ca la ciudad del $otel )ue desea, as como n(mero depersonas " !ec$a de entrada " salida del $otel. En la ilustraciónde b(s)ueda de vuelos, en cambio, se indica cómo el usuario debeespeci!icar el aeropuerto de ori&en " el de destino, del mismo modo)ue el da de salida del vuelo. Finalmente en la ilustración deb(s)ueda de coc$e es necesario )ue el usuario !ie la ciudad, la !ec$ade reco&ida " entre&a del ve$culo, " el n(mero de pla'as )ue desea.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    64/135

    IL U S T R A C I Ó N ,- & P A N T A L L A SD E B  S  U E D A K >*

    Una ve' reali'ada una b(s)ueda, los resultados se muestran amodo de lista como puede verse en la si&uiente ilustración.

    IL U S T R A C I Ó N , & L I S T A D E RE S U L T A D O S K>*

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    65/135

    En la si&uiente !i&ura se muestra el men( lateral )ue podr#desple&arse en la pantalla principal, tanto arrastrando el desde elborde i')uierdo de la pantalla $acia la derec$a, como pulsando elicono de ra"as )ue $a" en la barra superior.

    IL U S T R A C I Ó N ,? & M E N L A T E R A L K>*

    En el men( lateral se puede seleccionar Z@e&istrarseZ e Z:niciarsesiónZ, cu"as ma)uetas se pueden ver en las :lustración 20 - :niciode sesión " @e&istro.

     También puede accederse a los datos de Z6uentaZ del usuario activo,como puede observarse en la si&uiente !i&ura.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    66/135

    IL U S T R A C I Ó N , & M I CU E N T A K>*

    3a si&uiente opción del men( lateral es ZMis viaesZ, en la )ue se

    mostrar# a modo de lista las reservas )ue $a e!ectuado un usuario.Adem#s, puede accederse al detalle de cada reserva pulsando elbotón de Z%etalle de la reservaZ.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    67/135

    IL U S T R A C I Ó N , & M I S V I A  J E S Q D E T A L L E K>*

    3as si&uientes tres opciones del men( lateral mostrar#n in!ormación "datos relevantes sobre la empresa, por eemplo, in!ormación sobreplanes de a!iliación, Z)uiénes somosZ o pre&untas !recuentes. 6omose muestran en las si&uientes !i&uras respectivamente.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    68/135

    IL U S T R A C I Ó N , & DA T O S D E LA E M P R E S A K>*

    Por (ltimo, la !i&ura representa la pantalla del !ormulario de contacto,desde la cual se podr# contactar con la empresa va correoelectrónico.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    69/135

    IL U S T R A C I Ó N *+ & FO R M U L A R I OD E C O N T A C T O K>*

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    70/135

     . B % : S E \ / % E 3 A  A S E% E % A  T / S

    En este apartado se tratan los aspectos de dise+o relacionados conla base de datos del servidor. 6omo se menciona en el apartadoanterior, los dia&ramas est#n reali'ados con 7isual Paradi&m ??H.En un principio se muestra un dise+o modelo entidad-relación, al !inaldel apartado se muestra el detalle de tablas.

    . B . 2 M / % E 3 / E 9 T : % A %

    - @ E 3 A 6 : Q 9

    IL U S T R A C I Ó N *, & M O D E L O E N T I D A D R E L A C I Ó N P R I M E R A V E R SI Ó N K> >

    3a ilustración muestra un primer esbo'o del es)uema entidad relaciónde la base de datos. 6omo puede verse, un usuario podr# contratar unn(mero indeterminado de $oteles, vuelos o coc$es. Este primerdise+o se reali'ó en la !ase de an#lisis del pro"ecto, m#s adelante seenumeran cada uno de los atributos de las tablas de la base de datos.

    Adem#s se decidió )ue las tablas 8oteles, 7uelos " 6oc$es, noiban a estar almacenadas en la base de datos de Travellin&-Service,debido a su &ran tama+o, alto coste de mantenimiento " sobre todo,por)ue toda esta in!ormación es accesible a través de los servicios

    eb utili'ados. Por ello, la base de datos se reduce a la tabla usuarios

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    71/135

    " las tablas-relación 8otel, 7uelo, 6oc$e. Estando las otras tres tablasanteriormente mencionadas aloadas, por as decirlo, en la nube,como ilustra la si&uiente !i&ura.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    72/135

    Para relacionar las tablas de los servicios eb con las de la aplicación,se utili'ar#n los identi!icadores devueltos por ellas. Por eemplo, si unusuario reserva el $otel con identi!icador 2B1?, ese es elidenti!icador de $otel )ue se almacenar# unto a su identi!icador deusuario.

    IL U S T R A C I Ó N ** & M O D E L O E N T I D A D R E L A C I Ó N F I N A L K>>

    . B . 0 % : S E \ / F : 9 A 3 A SE % E % A T / S

    3as cuatro tablas )ue constituir#n la base de datos del servidor de Travellin& Service se muestran en la si&uiente !i&ura.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    73/135

    IL U S T R A C I Ó N *> & DI S E  O F I N A L D E L A S T A B L A S D E L A B A S E D E DA T O S K>>

     . = % : S E \ / % E S 6 @ : P  T S O P @ / 6 E % : M : E 9  T/ S A 3 M A 6 E 9 A % / S

    6omo se menciona en el 6aptulo ? - An#lisis, la ar)uitectura delpro"ecto se basa en cliente servidor. Este apartado da una primeraperspectiva sobre la comunicación de la aplicación con el servidormediante !ic$eros p$p.

    E*iste un script P8P por cada acción importante )ue re)uiera laaplicación. @especto a la &estión de usuarios se codi!icar#n los!ic$eros Acc0n)2p9p " M7Acc0n)2p9p. El primero de ellosacceder# a los datos de la tabla usuarios, con el !in de llevar a cabo laconsulta de usuario " contrase+a, " poder as dar acceso al usuario ala aplicación. El se&undo !ic$ero p$p, en cambio, tendr# la capacidadde modi!icar los datos del usuario en el caso de )ue )uisiera modi!icaral&uno de ellos.

    /tros !ic$eros a mencionar son los encar&ados de insertar en la

    base de datos los datos relacionados con las reservas )ue e!ect(e el

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    74/135

    usuario, )ue ser#n tres, R!%i#)!r)!l2p9p R!%i#)!rCar2p9p "R!%i#)!rFli%9)2p9p2

    Estos !ic$eros p$p devolver#n un códi&o de retorno di!erente en!unción de si la operación se $a llevado con é*ito, o por el contrario,

    a sur&ido al&(n error.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    75/135

    Por otro lado, se necesitar#n !ic$eros )ue devuelvan datos )ue seten&an almacenados en la base de datos, tales como reservas de unusuario. Para ello se implementar#n una serie de procedimientosalmacenados, con el !in de )ue el servidor devuelva al&unaestructura seriali'able de la )ue poder leer dic$os datos " mostrarlosen la aplicación, por eemplo, un estructura de KM3. 3osprocedimientos almacenados estar#n codi!icados en s)l, " seincluir#n, una ve' !inali'ados, en la base de datos. 3os !ic$eros s)lser#n G!)Fli%9)#2#@l G!)Car#2#@l G!))!l#2#@l2

    Por (ltimo, se necesitar#n unos !ic$eros p$p encar&ados de $acer lasllamadas a los procedimientos almacenados de la base de datos.Ser#n, respectivamente, Fli%9)#BD2p9p Car#BD2p9p ")!l#BD2p9p2

     Tanto la base de datos como los !ic$eros p$p, estar#n locali'adosen un servidor, al cual se acceder# mediante peticiones $ttp. Setrabaar# de la misma !orma con todos ellos, recibir#n una serie depar#metros " devolver#n un códi&o de retorno o una serie de datosseriali'ados para su posterior tratamiento en la aplicación.

     Todos ellos se e*plican m#s adelante en el 6aptulo B -:mplementación de la Solución.

     . > % : S E \ / % E 3 A S EG U @ : % A %

    6on el !in de evitar ata)ues " brec$as en la se&uridad, sedecide ci!rar datos de usuarios como las contrase+as con mdB 21H.

    6on esto se consi&ue )ue, aun)ue al&uien consi&uiera acceso a labase de datos " e*traera datos de los usuarios, dic$os datosestaran ci!rados, teniendo as )ue recurrir al uso de una !uer'abruta mu" costosa.

    Por a$ora, la se&uridad )ue inclu"e la aplicación es mu" b#sica, sedeber# ampliar para el producto !inal, siendo recomendable ci!rar poreemplo los par#metros de las peticiones $ttp.

     . C 6 / 9 6 3 U S: / 9 E S

    Se presenta este apartado al !inal del e*tenso captulo de dise+o, a

    modo de resumen, " con el obetivo de $acer una sntesis de las

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    76/135

    decisiones tomadas, )ue a!ectar#n en &ran medida en el si&uientecaptulo, implementación de la aplicación. Se destaca por tanto, delcaptulo de dise+o, los si&uientes puntos

    - 3a ar)uitectura del pro"ecto se basa en el modelo cliente-

    servidor, donde el cliente ser# la aplicación móvil, " elservidor una base de datos basada en -ostgreS7L.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    77/135

    - Se $a elaborado un dia&rama de pantallas espec!ico contransiciones entre ellas " recursos )ue utili'ar#n.

    - Se crean unas ma)uetas )ue intentar#n acercarse lom#*imo posible al producto !inal.

    - Asimismo, se dise+a la base de datos SV3 con un dia&ramaentidad relación, especi!icando del mismo modo los camposde las tablas.

    - Se $ace una primera enumeración de los !ic$eros P8P " SV3 )uecompondr#n

    la parte de servidor del producto.- 3os !ic$eros P8P " los procedimientos almacenados se

    utili'ar#n para accesos " modi!icaciones de la base de datosdel pro"ecto, aloada en un servidor.

    - 3os datos )ue devuelva el servidor deben estar seriali'ados en

    KM3, con el !in de )ue su tratamiento por la aplicación seam#s sencillo.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    78/135

    <IMPLEMENTACIÓN

    En este )uinto captulo se aborda la !ase de implementación delpro"ecto. Se e*plicar#n al&unos detalles relevantes as como lasdi!erentes di!icultades )ue se encontraron en el proceso.

    En esta !ase se implementa el dise+o reali'ado en el captuloanterior de dise+o, basado en el cat#lo&o de re)uisitos del 6aptulo? - An#lisis. 6omo se $a especi!icado en el captulo anterior, seutili'ar# el 4undle AD! de Eclipse, unto al emulador 8enymotionpara la codi!icación de la parte cliente. Por otro lado, se

    utili'ar# el sistema operativo 3inu*, para trabaar con los scripts p$p" -ostgreS7L.

    A lo lar&o del captulo se tratar#n lossi&uientes aspectos

    - Elementos b#sicos de la parte cliente, módulos, librerasutili'adas e inter!a'.- Aspectos relevantes de la parte servidor, as como parte de suimplementación.

    B . 2 P A @  T E 6 3: E 9  T E

    6omo se $a especi!icado en captulos anteriores, la parte de cliente laconstitu"e la aplicación Android. En los si&uientes apartados seintenta dar una visión de los elementos b#sicos )ue la componen.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    79/135

    B . 2 . 2 E 3 E M E 9 T / S Y S : 6 / S

    3os primeros elementos a tratar, " con el !in de dar una perspectiva&eneral de la parte cliente, ser#n los di!erentes módulosimplementados. 6on módulos se intenta representar !uncionalidadesrelacionadas " a&rupadas dentro de un mismo pa)uete Lava.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    80/135

    B . 2 . 2 . 2 M Q% U 3 / S

    3a ma"ora de los módulos reali'an llamadas al servidor, todas ellas

    se reali'an mediante tareas asncronas, utili'ando  Async!ask &59,con el obetivo de )ue la aplicación no se )uede blo)ueada. En lossi&uientes sub-apartados se e*plicar# con m#s detalle el uso detareas asncronas, para, m#s adelante, en el apartado B.0 ParteServidor, e*plicar la actuación " devolución de datos por parte delservidor a dic$a llamada del cliente.

    A lo lar&o de este apartado se e*plica la implementación de lasdi!erentes clases, a modo de camino, )ue un usuario recorrera por laaplicación la primera ve'. Por eemplo, re&istro, inicio de sesión,

    b(s)ueda de datos, reserva de servicios, incluso una posible baa denuestro sistema.

     2 , 2 , 2 , 2 , G E S T I Ó N DE U S U A R I O S

    %e la &estión de usuarios se encar&an las clases L%in2=a$aL%0)2=a$a, R!%i#)!r2=a$a " Ba=a2=a$a. Todas ellas e*tienden laclase Activity &':, con el !in de interactuar con el usuario.

    3a actividad R!%i#)!r2=a$a es la encar&ada de dar de alta a unusuario en el sistema. Por eso necesitar# una !ormulario de re&istro,reco&er los datos del usuario, comprobarlos, " reali'ar una llamada dere&istro al servidor mediante una tarea asncrona.

    6abe destacar de esta actividad la comprobación de datosintroducidos por el usuario, antes de reali'ar la llamada al servidor,tales como el correo electrónico, dado )ue el usuario recibir# correosde la empresa con!irmando su re&istro, o sus distintas reservas m#s

    adelante.

    IL U S T R A C I Ó N *- & C M P R O B A C I Ó N D E E M A I L E N E L R E G I S T O R D EU S U A R I O

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    81/135

    3a actividad L%in2=a$a es la encar&ada de reali'ar la llamada deinicio de sesión en el servidor para un usuario "a re&istrado en laaplicación. Para ello reco&e los datos Znombre de usuarioZ "Zcontrase+aZ del !ormulario de inicio de sesión. Una ve' comprobado)ue ambos campos poseen caracteres, reali'a una llamada al

    servidor para comprobar dic$os datos.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    82/135

    Escuela Politécnica Superior. Universidad Autónoma de 42

    3as actividades L%0)2=a$a 7 Ba=a2=a$a son las encar&adas deborrar las pre!erencias de usuario en la aplicación. Una ve' cerrada lasesión, si se vuelve a abrir la aplicación, pedir# un nuevo usuario.

    IL U S T R A C I Ó N * & B O R R A D O D E P R E F E R E N C I A S D E U S U A R I O

    3a principal di!erencia entre las dos reside en )ue la claseBa=a2=a$a, adem#s, reali'a una llamada asncrona al servidor paraborrar de la base de datos los datos del usuario )ue en ese momentoesta lo&ado en la aplicación.

     2 , 2 , 2 , 2* I N F O R M A C I Ó N DE L A E M P R E S A

    3as clases About2=a$a FAS2=a$a A'illia)in2=a$a 7Allia)inMr!In'2=a$a, se encar&an de mostrar al usuario

    in!ormación relevante sobre la empresa.3a clase A50)2=a$a presenta al usuario a )ué se dedica la empresa,desde cu#ndo, " )ué personas la !orman, indicando cu#l es el car&o)ue desempe+a cada una de ellas.

    3a clase FAS2=a$a enumera una serie de pre&untas !recuentessobre la empresa " los servicios )ue o!rece.

    %e este &rupo de actividades cabe destacar las dos (ltimasmencionadas, ambas e*ponen la in!ormación a modo de lista

    desple&able, debido a la cantidad de in!ormación )ue se deseamostrar al usuario, de este modo )ueda m#s reco&ida e inteli&ible.Para ello se $a implementado una "%panda#leList;iew &'5 ,$aciendo uso de padres, $ios, listas de tems " a&rupaciones.

     2 , 2 , 2 , 2> P R E FE R E N C I A S

    3as pre!erencias ;Shared -references< 00H son un mecanismo sencillo)ue permite la &estión de di!erentes opciones de usuario de una

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    83/135

    Escuela Politécnica Superior. Universidad Autónoma de 43

    aplicación móvil. Almacen#ndolas en KM3 resulta bastante cómodopara el pro&ramador por su !acilidad a la $ora de inte&rarlas en elsistema. Adem#s, pueden ser usadas como mecanismo para )ue elusuario pueda modi!icar al&uno de los par#metros de con!i&uraciónde la aplicación. Por otro lado, pueden ser utili'adas paraalmacenar ciertos datos )ue necesite la

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    84/135

    aplicación de !orma permanente, pues se necesitan almacenar datosdel usuario " del servidor, a los )ue se pueda acceder r#pidamente.

    En este pro"ecto las clases Pre!erences.ava "Pre!erenceFra&ment.ava ser#n las encar&adas de &estionar el listado

    de pre!erencias, el cual se almacenar# en el !ic$ero settin&s.*ml. Este(ltimo !ic$ero es de !#cil maneo, debido a estar seriali'ado en KM3,donde pueden a+adirse " modi!icarse r#pidamente las di!erentespre!erencias )ue se desean utili'ar. En la si&uiente !i&ura puede verseel !ic$ero settin&s.*ml de la aplicación.

    IL U S T R A C I Ó N *? & E S  U E M A Q HML D E P R E F E R E N C I A S

    6omo puede verse, se desea almacenar datos relacionados con elusuario, tales como el correo electrónico o la contrase+a, con el !in de)ue pueda modi!icarlos desde la aplicación.

    Adem#s, se almacenan otros datos de interés en las pre!erencias,datos necesarios para la comunicación con los servicios eb, o con elservidor. En la si&uiente !i&ura se muestran al&unas de ellas.

    IL U S T R A C I Ó N * & P A R  M E T R O S D E C O M U N I C A CI Ó N C O N L A API D E E H P E D I A

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    85/135

    Escuela Politécnica Superior. Universidad Autónoma de

    /tro de los aspectos a destacar sobre las pre!erencias son las!unciones codi!icadas para !iar dic$os valores relacionados con elusuario. Una ve' iniciada la sesión, por eemplo, la aplicación

    &uarda los datos del usuario en pre!erencias, como se $aindicado anteriormente, por medio de !unciones codi!icadas en laclase Pr!'!r!nc!#2=a$a2

    IL U S T R A C I Ó N * & FU N C I Ó N P A R A F I  JA R U N A P R E F E R E N C I A

    IL U S T R A C I Ó N * & AL M A C E N A M I E N T O D E P R E FE R E N C I A S A L I N I C I A R S E S I Ó N

     2 , 2 , 2 , 2-  L L A M A D A A S ER V I C I O S ; EB

    En concreto, las clases de b(s)ueda de servicios ;todas lascomen'adas con la palabra Searc$< " la clase de detalleServicio.ava,utili'an llamadas a los servicios eb. 6omo se detalla en el punto .?%ise+o de pantallas, donde puede observarse )ue la aplicación $ar#uso de tres de ellas. El servicio eb de E*pedia 0H, para lab(s)ueda de $oteles, el servicio eb de 8otNire 0BH, para lab(s)ueda de ve$culos de al)uiler " el servicio eb de Fli&$tStats0?H, para la b(s)ueda de vuelos. 6on el !in de simpli!icar esteapartado, se e*plica el proceso de llamadas para el servicio eb deE*pedia sobre b(s)ueda de aspectos relacionados con $oteles. 3asllamadas a los servicios eb de 8otNire " Fli&$tStats son similares alas llamadas de E*pedia mostradas en este apartado. Para reali'aruna llamada a un servicio eb, en primer lu&ar se necesita unaconstruir el enlace con los par#metros necesarios, tales como, id deusuario o clave secreta de la AP: proporcionada al desarrollador. Para

    construir la parte de los par#metros del enlace, se de!ine un vector de

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    86/135

    Escuela Politécnica Superior. Universidad Autónoma de

    pares de valores, con los valores &uardados en pre!erencias, comopuede verse en la si&uiente !i&ura.

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    87/135

    Escuela Politécnica Superior. Universidad Autónoma de 45

    IL U S T R A C I Ó N >+ & C O N S T R U C C I Ó N D E V E CT O R D E P A R E S D E V A L O R E S

    Una ve' construida la parte de par#metros del enlace, se concatenapara construir !inalmente lo )ue ser# la cadena completa con la )uese reali'ar# la llamada al servicio eb.

    IL U S T R A C I Ó N >, & C O N S T R U C C I Ó N D E L E N L A C E P A RA L A L L A M A D A A L S E R V I C I O ; E B

    Finalmente, con el enlace "a completo, se reali'a la llamadaal servicio eb.

    IL U S T R A C I Ó N >* & L L A M A D A A U N S E R V I C I O ; E B

    El procedimiento a se&uir para conse&uir los datos de un $otel, poreemplo, es el )ue si&ue. En primer lu&ar se debe obtener elidenti!icador del lu&ar donde el usuario )uiere buscar $oteles, paraello se utili'a un servicio llamado geoSearch, )ue al ser llamado unto

    con una serie de par#metros concretos, devuelve el identi!icador del

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    88/135

    Escuela Politécnica Superior. Universidad Autónoma de 46

    lu&ar deseado, para utili'arlo en llamadas posteriores. %ic$ospar#metros son los re)ueridos por E*pedia para utili'ar susservicios, los cuales se almacenan en

  • 8/17/2019 Gomez Matesanz Alfonso Tfg

    89/135

    pre!erencias. Se pueden observar en la :lustración 0> - Par#metrosde comunicación con la AP: de E*pedia.

    6abe destacar )ue la respuesta puede ser en KM