Está en la página 1de 112

ANLISIS, DISEO E IMPLEMENTACIN DE UNA APLICACIN CON

SERVICIOS BASADOS EN LOCALIZACIN PARA LA PLATAFORMA


ANDROID QUE PERMITA A LOS USUARIOS REALIZAR PUBLICACIONES DE
LUGARES Y PRODUCTOS

JUAN SEBASTIN RESTREPO NGEL

UNIVERSIDAD DE CALDAS
FACULTAD DE INGENIERA, DEPARTAMENTO DE SISTEMAS E
INFORMTICA
INGENIERA DE SISTEMAS Y COMPUTACIN
MANIZALES
FEBRERO, 2011
ANLISIS, DISEO E IMPLEMENTACIN DE UNA APLICACIN CON
SERVICIOS BASADOS EN LOCALIZACIN PARA LA PLATAFORMA
ANDROID QUE PERMITA A LOS USUARIOS REALIZAR PUBLICACIONES DE
LUGARES Y PRODUCTOS

JUAN SEBASTIN RESTREPO NGEL

Trabajo de grado

Director
PhD GUSTAVO ADOLFO ISAZA ECHEVERRY

UNIVERSIDAD DE CALDAS
FACULTAD DE INGENIERA, DEPARTAMENTO DE SISTEMAS E
INFORMTICA
INGENIERA DE SISTEMAS Y COMPUTACIN
MANIZALES
FEBRERO, 2011
2
Nota de aceptacin:

_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________

_______________________________

Firma del director

_______________________________

Firma del par lector

_______________________________

Firma del jurado

Manizales, __ de Febrero de 2011

3
A mi familia por su apoyo incondicional.

A mis compaeros por su compaa y


buenos momentos.

A mis profesores por compartir su


experiencia y conocimiento.

4
CONTENIDO

RESUMEN ...................................................................................................................... 13
INTRODUCCIN ........................................................................................................... 14
1. PLANTEAMIENTO DEL PROBLEMA .................................................................. 16
1.1 DESCRIPCIN DEL PROBLEMA ................................................................... 16
1.2 FORMULACIN .............................................................................................. 16
2. JUSTIFICACIN ..................................................................................................... 17
3. OBJETIVOS............................................................................................................. 18
3.1 OBJETIVO GENERAL ..................................................................................... 18
3.2 OBJETIVOS ESPECFICOS ............................................................................. 18
4. CONTEXTO DEL PROYECTO ............................................................................... 19
4.1 DELIMITACIN Y ALCANCE ....................................................................... 19
4.1.1 Conceptual.................................................................................................. 19
4.1.2 Temporal .................................................................................................... 19
4.1.3 Espacial ...................................................................................................... 19
4.1.4 De alcances ................................................................................................. 19
4.2 PRESENTACIN DE LA EMPRESA .............................................................. 20
5. MARCO REFERENCIAL ........................................................................................ 22
5.1 MARCO HISTRICO....................................................................................... 22
5.2 MARCO TERICO .......................................................................................... 23
5.2.1 Android ...................................................................................................... 23
5.2.1.1 Arquitectura de Android: ......................................................................... 24
5.2.1.2 Componentes de una aplicacin Android ................................................. 26
5.2.1.3 Tipos de aplicaciones en Android ............................................................ 27
5.2.1.4 Ciclo de Vida de las aplicaciones ............................................................ 28
5.2.2 Servicios basados en localizacin (LSB) ..................................................... 29
5.2.2.1 Tipos de LSB .......................................................................................... 29
5.2.2.2 Tecnologas de localizacin geogrfica ................................................... 30
5.2.2 Sistemas de informacin geogrfica (SIG) .................................................. 33
5
5.2.3 Redes Sociales ............................................................................................ 33
5.2.3.1 Redes Sociales Mviles ........................................................................... 33
6. PLANTEAMIENTO METODOLGICO ................................................................. 35
6.1 CRONOGRAMA .............................................................................................. 35
6.2 METODOLOGA .............................................................................................. 37
6.3 HERRAMIENTAS UTILIZADAS .................................................................... 38
7. RESULTADOS ........................................................................................................ 41
7.1 REQUISITOS.................................................................................................... 41
7.2 ANLISIS ......................................................................................................... 44
7.2.1 Diagrama de casos de uso del sistema. ........................................................ 44
7.2.1.1 Diagrama de casos de uso para el mdulo de la gestin de usuarios. ........ 44
7.2.1.2 Diagrama de casos de uso para el mdulo de la gestin de lugares........... 45
7.2.1.3 Diagrama de casos de uso para el mdulo de la gestin de productos. ..... 46
7.2.1.4 Diagrama de casos de uso para el mdulo de contactos ........................... 46
7.2.2 Especificacin de los casos de uso del sistema. ........................................... 47
7.2.2.1 Especificacin de los casos de uso del mdulo de gestin de usuarios. .... 47
7.2.2.2 Especificacin de los casos de uso del mdulo de la gestin de lugares. .. 48
7.2.2.3 Especificacin de los casos de uso del mdulo de la gestin de productos 49
7.2.2.4 Especificacin de los casos de uso del mdulo de contactos. ................... 50
7.2.3 Diagramas de secuencia para los casos de uso del sistema. .......................... 53
7.2.3.1 Diagramas de secuencia para los casos de uso del mdulo de gestin de
usuarios ............................................................................................................. 53
7.2.3.2 Diagramas de secuencia para los casos de uso del mdulo de gestin de
lugares. .............................................................................................................. 55
7.2.3.3 Diagramas de secuencia para los casos de uso del mdulo de gestin de
productos............................................................................................................... 57
7.2.3.4 Diagramas de secuencia para los casos de uso del mdulo de contactos.. . 59
7.3 DISEO ............................................................................................................ 61
7.4 IMPLEMENTACIN........................................................................................ 62
7.4.1 Archivo Manifiesto. .................................................................................... 62

6
7.4.2 Interfaces de usuario.. ................................................................................. 63
7.4.3 Flujo de informacin entre el sistema gestor de base de datos y el
dispositivo... ............................................................................................................. 65
7.4.4 Localizacin ............................................................................................... 67
7.5 VISTAS DE LA APLICACIN EN FUNCIONAMIENTO .............................. 74
8. CONCLUSIONES .................................................................................................... 78
9. RECOMENDACIONES ........................................................................................... 79
BIBLIOGRAFA ............................................................................................................. 80
ANEXOS...82

7
LISTA DE TABLAS

Tabla 1. Delimitacin de alcances del desarrollo. ............................................................. 20


Tabla 2. Cronograma de actividades para el desarrollo de la aplicacin ............................ 36
Tabla 3. Pila del producto ............................................................................................... 41
Tabla 4. Pila por Sprint .................................................................................................... 43
Tabla 5. Especificacin del caso de uso registrar un nuevo usuario. ................................. 47
Tabla 6. Especificacin del caso de ingresar a la aplicacin. ............................................ 48
Tabla 7. Especificacin del caso de uso registrar un lugar. ............................................... 48
Tabla 8. Especificacin del caso de uso buscar un lugar. .................................................. 49
Tabla 9. Especificacin del caso de uso registrar un producto. ......................................... 49
Tabla 10. Especificacin del caso de uso buscar un producto. .......................................... 50
Tabla 11. Especificacin del caso de uso buscar amigos. .................................................. 51
Tabla 12. Especificacin del caso de uso adicionar amigos. ............................................. 52
Tabla 13. Especificacin del caso de uso recordar la contrasea. ...................................... 83
Tabla 14. Especificacin del caso de uso ver el propio perfil de usuario. .......................... 84
Tabla 15. Especificacin del caso de uso editar la informacin del usuario ....................... 84
Tabla 16. Especificacin del caso de uso salir de la aplicacin. ........................................ 85
Tabla 17. Especificacin del caso de uso ver un lugar. ..................................................... 86
Tabla 18. Especificacin del caso de uso editar un lugar. ................................................. 87
Tabla 19. Especificacin del caso de uso publicar un comentario de un lugar. .................. 87
Tabla 20. Especificacin del caso de uso publicar una visita en un lugar. ......................... 88
Tabla 21. Especificacin del caso de uso calificar un lugar............................................... 88
Tabla 22. Especificacin del caso de uso ver un producto. ............................................... 89
Tabla 23. Especificacin del caso de uso editar un producto. ............................................ 90
Tabla 24. Especificacin del caso de uso publicar un comentario de un producto. ............ 90
Tabla 25. Especificacin del caso de uso calificar un producto. ........................................ 91
Tabla 26. Especificacin del caso de uso invitar a nuevos usuarios................................... 92
Tabla 27. Especificacin del caso de uso ver el perfil de un amigo. .................................. 93

8
LISTA DE FIGURAS

Figura 1. Representacin de la arquitectura de la plataforma Android.. ............................ 24


Figura 2. Representacin del funcionamiento del GPS y el A-GPS. .................................. 32
Figura 3. Diagrama de casos de uso para el modulo de la gestin de usuarios. .................. 44
Figura 4. Diagrama de casos de uso para el modulo de la gestin de lugares. ................... 45
Figura 5. Diagrama de casos de uso para el modulo de la gestin de productos. ............... 46
Figura 6. Diagrama de casos de uso para el modulo de contactos. .................................... 46
Figura 7. Diagrama de secuencia para el caso de uso Registrar un nuevo usuario. ............ 53
Figura 8. Diagrama de secuencia para el caso de uso ingresar a la aplicacin. .................. 54
Figura 9. Diagrama de secuencia para el caso de uso registrar un lugar. ........................... 55
Figura 10. Diagrama de secuencia para el caso de uso buscar un lugar. ............................ 56
Figura 11. Diagrama de secuencia para el caso de uso registrar un producto. .................... 57
Figura 12. Diagrama de secuencia para el caso de uso buscar un producto. ...................... 58
Figura 13. Diagrama de secuencia para el caso de uso buscar amigos. .............................. 59
Figura 14. Diagrama de secuencia para el caso de uso agregar amigo. .............................. 60
Figura 15. Diagrama de clases entidad para la aplicacin. ................................................ 61
Figura 16. Ejemplo de un archivo manifiesto. .................................................................. 62
Figura 17. Permisos necesarios para el funcionamiento de la aplicacin ........................... 63
Figura 18. Ejemplo cdigo XML de una interfaz de usuario. ............................................ 64
Figura 19. Vista de una interfaz de usuario en el emulador .............................................. 64
Figura 20. Libreras Ksoap2 utilizadas. ........................................................................... 65
Figura 21. Atributos de la clase conexin. ....................................................................... 65
Figura 22. Mtodo constructor de la clase conexin. ....................................................... 66
Figura 23. Mtodo para asignar el nombre del mtodo a consumir del servicio web. ....... 66
Figura 24. Mtodo para asignar la accin Soap a consumir del servicio web. .................. 66
Figura 25. Mtodo que se encarga de consumir el servicio web. ...................................... 67
Figura 26. Mtodo run para solicitar la localizacin del dispositivo. ................................ 68
Figura 27. Listener encargado de recibir el cambio de localizacin del dispositivo. ......... 69

9
Figura 28. Estructura XML de un objeto mapa. ............................................................... 70
Figura 29. Comandos para obtener la huella digital del archivo debug.Keystore ............... 70
Figura 30. Clase ejemplo de un MapActivity. .................................................................. 71
Figura 31. Clase ejemplo de un MapActivity. .................................................................. 71
Figura 32. Uso de la clase Geocoder. .............................................................................. 72
Figura 33. Calculo de la distancia entre dos puntos sobre la tierra. ................................... 73
Figura 34. Vista principal de la aplicacin despus de identificar al usuario. .................... 74
Figura 35. Vista de la ubicacin geogrfica del usuario en un mapa. ................................ 74
Figura 36. Vista de la bsqueda de la seal GPS. ............................................................. 74
Figura 37. Vista de la bsqueda de lugares. ...................................................................... 74
Figura 38. Vista del formulario para registrar lugares. ...................................................... 75
Figura 39. Vista de un lugar. ............................................................................................ 75
Figura 40. Vista de la galera de imgenes........................................................................ 75
Figura 41. Vista de la bsqueda de productos. .................................................................. 75
Figura 42. Vista del formulario para el registro de productos............................................ 76
Figura 43. Vista de un producto. ...................................................................................... 76
Figura 44. Vista de los contactos. ..................................................................................... 76
Figura 45. Vista de la bsqueda de contactos. .................................................................. 76
Figura 46. Vista de la conexin a Facebook para buscar contactos. .................................. 77
Figura 47. Vista del formulario para invitar nuevos usuarios. ........................................... 77
Figura 48. Vista de las solicitudes de Amistad.................................................................. 77
Figura 49. Vista del formulario de registro de usuarios. .................................................... 77
Figura 50. Diagrama de secuencia para el caso de uso Recordar contrasea. .................... 94
Figura 51. Diagrama de secuencia para el caso de uso ver el perfil del usuario. ................ 95
Figura 52. Diagrama de secuencia para el caso de uso Editar la informacin del usuario. . 96
Figura 53. Diagrama de secuencia para el caso de uso salir de la aplicacin. .................... 97
Figura 54. Diagrama de secuencia para el caso de uso ver un lugar. ................................. 98
Figura 55. Diagrama de secuencia para el caso de uso editar un lugar. ............................. 99
Figura 56. Diagrama de secuencia para el caso de uso publicar un comentario de un lugar.
.......................................................................................................................................100

10
Figura 57. Diagrama de secuencia para el caso de uso publicar una visita en un lugar. ....101
Figura 58. Diagrama de secuencia para el caso de uso calificar un lugar. .........................102
Figura 59. Diagrama de secuencia para el caso de uso ver un producto............................103
Figura 60. Diagrama de secuencia para el caso de uso editar un producto. .......................104
Figura 61. Diagrama de secuencia para el caso de uso publicar un comentario de un
producto..........................................................................................................................105
Figura 63. Diagrama de secuencia para el caso de uso invitar nuevos usuarios. ...............107
Figura 64. Diagrama de secuencia para el caso de uso ver el perfil de un amigo. .............108
Figura 65. Clase amistad ................................................................................................109
Figura 66. Clase Categora de un lugar ............................................................................109
Figura 67. Clase Categora de un producto ......................................................................109
Figura 68. Clase Comentario de un lugar.........................................................................109
Figura 69. Clase Comentario de un producto ...................................................................110
Figura 70. Clase Invitacin .............................................................................................110
Figura 71. Clase Lugar. ...................................................................................................110
Figura 72. Clase Lugares donde est disponible un producto ...........................................111
Figura 73. Clase Premio para los usuarios. ......................................................................111
Figura 75. Clase Premio para los lugares. ........................................................................111
Figura 74. Clase Premios dados a un lugar. .....................................................................111
Figura 76. Clase Premios dados a un usuario. ..................................................................111
Figura 77. Clase Producto ...............................................................................................112
Figura 78. Clase Usuario. ................................................................................................112
Figura 79. Clase Visitas realizadas por un usuario. ..........................................................112
Figura 80. Clase Votos dados a los lugares. .....................................................................112
Figura 81. Clase Votos dados a los productos..................................................................112

11
LISTA DE ANEXOS

Anexo A. Especificacin de los casos de uso del mdulo de gestin de usuarios ............. 83
Anexo B. Especificacin de los casos de uso del mdulo de la gestin de lugares ........... 86
Anexo C. Especificacin de los casos de uso del mdulo de la gestin de productos ....... 89
Anexo D. Especificacin de los casos de uso del mdulo de contactos ............................ 92
Anexo E. Diagramas de secuencia para los casos de uso del mdulo de gestin de usuarios
........................................................................................................................................ 94
Anexo F. Diagramas de secuencia para los casos de uso del mdulo de gestin de lugares
........................................................................................................................................ 98
Anexo G. Diagramas de secuencia para los casos de uso del mdulo de gestin de
productos ........................................................................................................................103
Anexo H. Diagramas de secuencia para los casos de uso del mdulo de contactos..........107
Anexo I. Clases entidad con atributos y mtodos ............................................................109

12
RESUMEN

En los ltimos aos se produjo un gran crecimiento de los dispositivos mviles con
conectividad inalmbrica y capacidad de localizacin. De all que surjan numerosos
proyectos que buscan aprovechar al mximo estas prestaciones tanto a nivel comercial
como a nivel investigativo. Por otra parte el xito que tiene Android, la plataforma lanzada
al mercado por Google en 2007 y que cuenta con las tecnologas mencionadas antes, hace
de la misma un excelente campo de trabajo para los desarrolladores de software para
mviles.

Por lo tanto, en este proyecto se presenta el funcionamiento de dichas tecnologas y se


aborda el anlisis, el diseo y la implementacin de una aplicacin tipo red social para
dispositivos Android que ofrece a los usuarios servicios basados en localizacin
relacionados con lugares comerciales y productos, adems de un sistema de contactos. Para
llevar a cabo el desarrollo se sigui la metodologa de desarrollo gil Scrum que propone el
ciclo de vida de software incremental.

Palabras claves:
Android, servicios basados en localizacin, redes sociales, dispositivos mviles, sistemas
de informacin geogrfica.

13
INTRODUCCIN

Castaeda, Gmez y Leal (2006) mencionan que durante la ltima dcada la telefona
mvil ha presentado un constante y amplio desarrollo, lo que ha llevado a un crecimiento
de los tipos de servicios mviles empezando por el trfico de voz, pasando por la
mensajera de texto y multimedia, el acceso a Internet y llegando a los servicios basados en
localizacin (LBS).

Los LBS se pueden ofrecer cuando las tecnologas de conectividad inalmbrica y


posicionamiento geogrfico convergen en un dispositivo mvil, haciendo posible relacionar
los datos de posicin con la informacin disponible en un sistema de informacin
geogrfica para contextualizar la prestacin de un servicio. (Castaeda, C. 2009).

Entre tanto las redes sociales se han convertido en todo un fenmeno social,
revolucionando la forma de comunicarse y de interactuar, adems de ofrecer mltiples
posibilidades que pueden llegar a ser valiosas para diversos mbitos de la vida.

La relacin entre los usuarios en estas plataformas pasa de ser vertical a horizontal,
posibilitando que todos estn al mismo nivel. Cualquiera puede convertirse en emisor y
producir sus propios contenidos. (Prensa Valenciana Media, 2009).

Por otra parte la plataforma Android, lanzada al mercado por Google en el mes de
Noviembre de 2007 es una de las plataformas mviles de mayor proyeccin actualmente.
Android es un conjunto de software para dispositivos mviles que incluye desde un sistema
operativo hasta aplicaciones. El SDK (Software Development Kit) de Android provee las
herramientas y las API (Application Programming Interface) necesarias para desarrollar
aplicaciones para la plataforma usando el lenguaje de programacin Java.

En este proyecto se entrelazan las tecnologas mencionadas anteriormente mediante el


desarrollo de una aplicacin para dispositivos Android que permita a los usuarios contactar
amistades, compartir informacin de lugares y productos, y que ofrezca informacin de
sitios de inters de acuerdo a la ubicacin geogrfica del usuario. Para cumplir con este
objetivo, se construyo un sistema de informacin mvil cuyos datos son suministrados por
los usuarios. Durante la implementacin se sigui la metodologa de desarrollo de software:
Scrum.

Entre las tecnologas que se utilizaron se encuentra la plataforma de Microsoft .NET para la
implementacin de un servicio web necesario para comunicar la aplicacin con la base de

14
datos que se cre en el motor Microsoft SQL Server 2005. Dicha comunicacin se realizo
empleando kSOAP, que es una librera Java que sirve de cliente para el consumo de
servicios web desde dispositivos mviles. Adems se utilizo el API de Google Maps para la
implementacin de los servicios de localizacin a los que tendrn acceso los usuarios.

15
1. PLANTEAMIENTO DEL PROBLEMA

1.1 DESCRIPCIN DEL PROBLEMA

La falta de interaccin entre las marcas comerciales y los clientes, hacen que en algunas
oportunidades productos y/o servicios no tengan el impacto que se deseaba en la sociedad
de consumo; esto ocurre porque al momento de crear los mismos no se hace un adecuado
estudio de mercado. De all que surja la necesidad para que los clientes compartan
informacin acerca de establecimientos y productos. Con esto las compaas tendrn
fundamentos para adaptar sus productos a las necesidades reales del mercado.

Por otra parte, la necesidad actual del ser humano de estar en constante comunicacin hace
que las redes sociales se conviertan en una excelente alternativa para obtener informacin
de acuerdo a gustos y necesidades especficas, en este caso la informacin compartida por
otros usuarios acerca de sitios de inters que se encuentren cerca a la ubicacin geogrfica
del usuario.

1.2 FORMULACIN

Con el fin de aprovechar las prestaciones que hoy en da ofrecen los dispositivos mviles,
entre estas el acceso a Internet y la geolocalizacin, como un modelo de negocio y de
mercadeo, en el desarrollo de este proyecto se pretende construir una aplicacin para
dispositivos mviles Android, tipo red social con servicios basados en localizacin que
permita a los usuarios publicar y realizar comentarios de lugares y productos, esto con la
finalidad de construir comunidad entorno a marcas comerciales. Adems se busca que los
usuarios puedan compartir su ubicacin geogrfica y contactar e invitar amistades mediante
correo electrnico y conexin a redes sociales mviles (Facebook); con esto se busca
ampliar el nmero de usuarios de la aplicacin as como las vas de comunicacin de los
mismos. Por otra parte en la aplicacin se premiarn a los usuarios para ir alcanzando
niveles por crear y participar en lugares determinados. Con la creacin de la nueva red
social se busca clasificar a los usuarios en dos categoras: Usuario Anunciante y Usuario
Consumidor, el usuario anunciante tendr privilegios como ensear imgenes a la hora de
publicar lugares y/o productos, y que un usuario consumidor pueda contactar mediante
llamada (Clic to call) a un anunciante al visitar su perfil.
16
2. JUSTIFICACIN

El significativo incremento en la oferta de servicios de datos prestados hoy a travs de las


redes mviles, ha creado la necesidad de buscar elementos diferenciadores, que garanticen
la acogida y la aceptacin de estos servicios en un mercado que es cada vez ms exigente.
Segn la agencia Juniper Research citada por Tsirulnik (2010), gracias al crecimiento de
dispositivos mviles equipados con conexin a Internet y GPS (Global Positioning
System), para el ao 2014 los servicios basados en localizacin sern usados por cerca de
1,5 millones de usuarios y se espera que estos generen ingresos totales alrededor de los 12,7
millones de dlares.

El desarrollo de una aplicacin con servicios basados en localizacin que le muestre a los
usuarios informacin de lugares y productos de acuerdo a su ubicacin geogrfica y que les
permita publicar sus opiniones acerca de los mismos, brinda a las empresas la posibilidad
de que sus clientes les den presencia constante en el mercado, al igual que les abre las
puertas hacia nuevas alternativas de promocin, as como les permite hacer un seguimiento
al comportamiento de sus clientes para identificar y obtener informacin de los gustos de
los mismos para formar una relacin ms profunda y directa con ellos.

La decisin que el desarrollo de la aplicacin propuesta se lleve a cabo para la plataforma


Android, se toma con base a la excelente proyeccin en el mercado que tiene la misma; as
lo demuestra el estudio realizado por Mobile Entertainment (2010) en el que se dice que en
Febrero de 2010, 60.000 telfonos Android se vendieron cada da, es decir una tasa
equivalente de 21.9 millones de dispositivos Android en el ao. Entre tanto para finales de
2010 en el Android Market (tienda de aplicaciones Android) haba disponibles ms de 100
mil aplicaciones.

17
3. OBJETIVOS

3.1 OBJETIVO GENERAL

Analizar, disear e implementar una aplicacin social con servicios basados en localizacin
para la plataforma Android que permita el registro de usuarios y la realizacin de
publicaciones.

3.2 OBJETIVOS ESPECFICOS

Disear e implementar el modelo relacional de la base de datos para la aplicacin


siguiendo el modelo orientado a objetos.

Implementar el servicio web que ser el puente entre la base de datos y la aplicacin
Android.

Desarrollar el modulo para la administracin de perfiles de usuario.

Implementar el modulo para el intercambio dinmico de informacin entre los usuarios.

Compartir ubicaciones geogrficas usando el API de Google Maps e implementar un


sistema de contactos a partir de redes sociales mviles.

18
4. CONTEXTO DEL PROYECTO

4.1 DELIMITACIN Y ALCANCE

4.1.1 Conceptual. La parte terica de la propuesta contiene la definicin del


funcionamiento y la estructura de la plataforma Android, incluyendo los recursos que
ofrece, los tipos de aplicaciones que se pueden desarrollar y las herramientas que se usan
para su implementacin. Adems se explica cmo es el funcionamiento de los servicios
basados en localizacin (LSB) en dispositivos mviles, especficamente en dispositivos
Android. Por otra parte se presentan las herramientas adicionales necesarias para la
construccin del aplicativo, tales herramientas incluyen el marco de trabajo .net de
Microsoft para la implementacin de un servicio web; el motor de bases de datos Microsoft
SQL Server 2005 para la implementacin de la respectiva base de datos que alimentar la
aplicacin; y el API de Google Maps que se emplear para brindar los servicios basados en
localizacin.

4.1.2 Temporal. El desarrollo de la aplicacin se realiz entre las fechas:


Fecha Inicio: Agosto 2 de 2010
Fecha Finalizacin: Diciembre 10 de 2010

4.1.3 Espacial. La prctica empresarial se desarroll en la ciudad de Manizales,


departamento de Caldas, Colombia; en las instalaciones del CDI de Ariadna, el cual se
encuentra ubicado en la calle 66 N 23B-145 Barrio Palermo

4.1.4 De alcances.
Alcance de la propuesta Problemas u rea o poblacin
Oportunidades que lo afectada
motivan
Diseo e implementacin del El adecuado IT, Produccin
modelo relacional de la base funcionamiento de la
de datos. aplicacin requiere de un
planteamiento idneo de
su arquitectura.

19
Implementacin del servicio Desde una aplicacin IT, Produccin
web que servir de puente Android no se puede
entre la base de datos y la consumir directamente una
aplicacin Android. base de datos relacional
alojada en un servidor
externo al dispositivo.
Desarrollo del mdulo para la Tener el control sobre que Usuarios
gestin de usuarios. personas utilizan la
aplicacin.
Desarrollo del mdulo para La necesidad de compartir Usuarios
realizar publicaciones y informacin de
comentarios de lugares y determinado lugar y/o
productos. producto. Esto permite a
los establecimientos y a las
marcas comerciales tener
un mayor acercamiento
con sus clientes.
Desarrollo del mdulo para Aumentar las vas de Usuarios
compartir la ubicacin comunicacin y los
geogrfica del usuario y contactos entre los
contactar amistades. usuarios de la aplicacin.
Adems de ofrecer a los
usuarios informacin
relacionada con sitios y
productos que estn cerca
de su localizacin.

Tabla 1. Delimitacin de alcances del desarrollo.

4.2 PRESENTACIN DE LA EMPRESA

Ariadna naci en 1998 para atender la demanda de comunicacin y estrategia digital que
surgi en la poca, encontrando en el mercado latinoamericano una excelente oportunidad
de realizar trabajos creativos e innovadores al lado de importantes socios y grandes clientes.

Con oficinas en Estados Unidos, Brasil, Mxico, Argentina, Colombia, Ecuador y Panam,
Ariadna cuenta con casos regionales para marcas como Telefnica, Nokia, Harley-
Davidson, Colgate, Cadbury-Adams, Unilever, Ford, Motorola, Coca Cola, P&G, Audi, HP
y Visa entre otras.

20
El centro de desarrollo e investigacin (CDI), se focaliza en ser un centro de excelencia
para el desarrollo de proyectos de innovacin en tecnologas de la informacin, el diseo y
multimedia, y la comunicacin, aplicados a las necesidades y oportunidades de la industria
del mercadeo interactivo y la publicidad en internet.

El CDI propicia un espacio que une la academia con la industria para la formacin de
profesionales con conocimiento especializado en las nuevas tecnologas y reas de la
comunicacin digital, permitindoles a travs de su experiencia en proyectos reales de
innovacin proyectarse como una fuerza laboral competitiva en la industria del mercadeo
interactivo, tanto a nivel nacional como internacional. (Ariadna CDI, 2009).

21
5. MARCO REFERENCIAL

5.1 MARCO HISTRICO

Android es una plataforma de software libre para dispositivos mviles que se encuentra en
el mercado desde el ao 2007 y actualmente se encuentra disponible en su versin 2.3,
conocida popularmente bajo el nombre de Gingerbread (Android, 2010). A pesar del
corto tiempo desde su lanzamiento, dicha plataforma se viene posicionando muy bien en el
mercado y son numerosas las personas y las entidades que se han dedicado a su estudio y
al desarrollo de aplicaciones para la misma.

Balaguero (2008) presento su trabajo de grado titulado Estudio de la plataforma Android


en la Universidad de Catalua, el objetivo principal de dicho proyecto fue estudiar y
realizar una prueba de concepto sobre la plataforma para dispositivos mviles creada por
Google, Android. En l se estudian los conceptos ms novedosos de Android, se aprende
como desarrollar aplicaciones y se crea una aplicacin que permite evaluar algunas de las
prestaciones del sistema.

Aranaz (2009), present para la Universidad Carlos III de Madrid su trabajo de grado
titulado: Desarrollo de aplicaciones para dispositivos mviles sobre la plataforma Android
de Google, el cual tiene por objetivos conocer las principales caractersticas de Android y
el entorno de desarrollo, adems de desarrollar una aplicacin completa para dispositivos
Android.

Otro trabajo que sobresale es el titulado Estudio de la plataforma de software Android para
el desarrollo de una aplicacin social desarrollado tambin en la Universidad Politcnica
de Catalua, este tiene como objetivo estudiar el funcionamiento y las prestaciones que
ofrece el sistema operativo mvil Android comenzando por un enfoque analtico de sus
caractersticas hasta llegar a la realizacin de una aplicacin social que muestre sus
funcionalidades bsicas. (Prez, 2009).

Tambin en la Universidad Carlos III de Madrid se presento el trabajo titulado Diseo y


Desarrollo de un sistema de posicionamiento en interiores basado en Wi-Fi con
Tecnologa Android, con el cual se dise un sistema capaz de gestionar la localizacin de
un individuo en un edificio, usando como infraestructura la red Wi-Fi del propio edificio.
(Chico, 2009).

22
En Colombia, tambin se han llevado a cabo desarrollos sobre la plataforma Android, entre
estos se encuentra el Middleware para la definicin e implementacin de servicios
genricos independientes de la plataforma orientado a dispositivos mviles presentado en
la Pontificia Universidad Javeriana, en dicho proyecto se estudian diferentes plataformas
mviles incluida Android para proponer una solucin para la implementacin de LBS, de
tal forma que sean independientes de cada plataforma. (Castaeda, 2009).

A nivel de mercado la aplicacin de marketing por geoposicionamiento que ms se destaca


es Foursquare, esta permite a los usuarios crear su propia red de confianza para compartir
su ubicacin adems de opiniones acerca de los distintos sitios que visitan; as como le
ofrece informacin relacionada con lugares cercanos a la ubicacin del usuario. Foursquare
se encuentra disponible para dispositivos Android, Iphone y BlackBerry con capacidades de
localizacin.

5.2 MARCO TERICO

5.2.1 Android

Android es un conjunto de software para dispositivos mviles que incluye desde un sistema
operativo hasta aplicaciones. El SDK de Android provee las herramientas y los API
(Application programming interface) necesarias para desarrollar aplicaciones para la
plataforma usando el lenguaje de programacin Java. Entre las caractersticas de la
plataforma se destaca que las aplicaciones permiten reutilizar y sustituir componentes
fcilmente; la ejecucin de las aplicaciones utiliza la mquina virtual Dalvik optimizada
para dispositivos mviles, la cual interpreta y ejecuta cdigo Java; el navegador web
integrado utiliza el motor WebKit y para el almacenamiento de datos cuenta con SQLite.

Otras caractersticas importantes son el soporte para formatos multimedia comunes


(MPEG-4, H.264, MP3, AAC, OGG, AMR, JPEG, PNG, GIF) y el soporte a grficos
mejorados tanto en 2D como en 3D. Adems de dar soporte a recursos dependientes del
hardware (telefona GSM, conexin Bluetooth, EDGE, 3G y Wifi, cmara, GPS, Brjula y
acelermetro).

23
5.2.1.1 Arquitectura de Android:

En el siguiente grfico se presenta la estructura de la arquitectura de la plataforma Android,


la cual est conformada por capas en donde cada una emplea los servicios ofrecidos por las
capas anteriores para ofrecer sus propios servicios a las capas superiores.

Figura 1. Representacin de la arquitectura de la plataforma Android. (Android, 2010).

La primera capa es la correspondiente al ncleo de Android. Android utiliza como ncleo


Linux 2.6, el cual sirve como una capa de abstraccin para el hardware disponible en los
dispositivos mviles. Esta capa se encarga de las funciones ms bsicas: gestin de
controladores, seguridad, gestin de memoria, administracin de procesos, entre otros.

La segunda capa corresponde a las libreras, estas se encuentran escritas en lenguaje C y


C++. Entre estas se destacan:

- Libc, esta incluye todas las cabeceras y funciones segn el estndar del lenguaje C.
Todas las dems libreras se definen en este lenguaje.

24
- Surface Manager, es la encargada de manejar el acceso al subsistema de visualizacin y
la composicin sin problemas de capas de grficos 2D y 3D para mltiples aplicaciones.

- OpenGL/SL y SGL, representan las libreras grficas. OpenGL/SL maneja grficos en


3D. Por otro lado, SGL proporciona grficos en 2D. Una caracterstica importante de la
capacidad grfica de Android es que es posible desarrollar aplicaciones que combinen
grficos en 3D y 2D.

- Media Library, soporta la reproduccin y la grabacin de formatos populares de audio y


video as como de archivos de imgenes estticas.

- FreeType, permite trabajar de forma rpida y sencilla con distintos tipos de fuentes.

- SSL, posibilita la utilizacin de dicho protocolo para establecer comunicaciones


seguras.

- SQLite, ofrece un poderoso y ligero motor de base de datos relacional disponible para
todas las aplicaciones.

- WebKit, proporciona un motor para las aplicaciones de tipo navegador, y forma el


ncleo del actual navegador incluido por defecto en la plataforma.

Al mismo nivel de la capa de las libreras se encuentra el entorno de ejecucin, este tiene
como filosofa que cada aplicacin se ejecute en su propio proceso, en su propia instancia
de la mquina virtual Dalvik, cuyo propsito es que un dispositivo pueda ejecutar varias
mquinas virtuales de manera eficiente. La mquina virtual est basada en registros y corre
clases compiladas del lenguaje de programacin Java que se han convertido al formato
.dex.

En la tercera capa se encuentra el marco de trabajo de las aplicaciones, el cual representa


fundamentalmente el conjunto de herramientas de desarrollo de cualquier aplicacin y esta
pensado para la reutilizacin de componentes, es decir, una aplicacin puede coger
funcionalidades de otra creada anteriormente para su desarrollo. Entre las API ms
importantes ubicadas aqu, se pueden encontrar las siguientes:

- Activity Manager, gestiona el ciclo de vida de las aplicaciones en Android.

- Window Manager, gestiona las ventanas de las aplicaciones y utiliza la librera Surface
Manager.

25
- Telephone Manager, incluye todas las API vinculadas a las funcionalidades propias del
telfono.

- Content Providers, permite a cualquier aplicacin compartir sus datos con las dems
aplicaciones de Android. Ejemplo de esto es la informacin de contactos, agenda,
mensajes, entre otros; puede ser accesible para otras aplicaciones.

- View System, proporciona un gran nmero de elementos para poder construir interfaces
de usuario (GUI).

- Location Manager, posibilita a las aplicaciones la obtencin de informacin de


localizacin y posicionamiento.

- Notification Manager, mediante el cual las aplicaciones pueden mostrar alertas


personalizadas en la barra de estado.

En la cuarta y ltima capa se encuentran las aplicaciones, tanto las incluidas por defecto de
Android como aquellas que el usuario vaya agregando posteriormente. Pero todas se encuentran
escritas en lenguaje de programacin Java.

5.2.1.2 Componentes de una aplicacin Android

Las aplicaciones Android estn escritas en el lenguaje de programacin Java, el cdigo


compilado junto con los datos y dems recursos que requiere una aplicacin, son incluidos
en un paquete Android cuya extensin es .apk, este archivo es el vehculo para distribuir e
instalar la aplicacin en un dispositivo.

Una caracterstica destacada en Android es que una aplicacin puede hacer uso de los
elementos de otras aplicaciones; la aplicacin no incorpora ni enlaza el cdigo de la otra
aplicacin, lo que hace es poner en marcha la parte que se necesita. Para que esto funcione
el sistema debe tener la capacidad de iniciar un proceso de aplicacin cuando una parte de
esta sea requerida. A diferencia de la mayora de las aplicaciones en otros sistemas, las
aplicaciones Android no tienen un solo punto de entrada para todo en la aplicacin; mejor
tiene componentes esenciales de los cuales el sistema puede crear una instancia y ejecutarla
segn sea necesario. Existen cuatro tipos de componentes:

- Actividades: Una actividad presenta una interfaz visual de usuario enfocada en apoyar el
esfuerzo del usuario. Cada actividad es independiente y se implementa como una

26
subclase de la clase Activity. Una aplicacin puede contar con una o varias actividades.
Para pasar de una actividad a otra, existe una clase llamada Intent. Un Intent es una
solicitud para realizar una accin. y que, en general, describe que quiere hacer una
aplicacin. Las dos partes ms importantes de un Intent son la accin que se quiere
realizar y la informacin necesaria que se proporciona para poder realizarla.

- Servicios: Un servicio no tiene una interfaz visual de usuario y por el contrario se


ejecuta en un segundo plano por un periodo indefinido de tiempo. Cada servicio se
extiende de la clase Service.

- Receptores de broadcast: Un receptor de broadcast es un componente que no hace ms


que recibir y responder a mensajes de broadcast. Una aplicacin puede tener cualquier
cantidad de receptores de broadcast para responder a los mensajes que considere
importantes. Todos los receptores extienden de la clase BroadcastReceiver. Los
receptores de broadcast no muestran una interfaz de usuario.

- Proveedores de Contenidos: Un proveedor de contenido tiene un conjunto especfico de


datos de aplicaciones disponible para otras aplicaciones. Los datos pueden ser
almacenados en el sistema de archivos, en una base de datos SQLite o en cualquier otra
forma que est disponible. Los proveedores de contenido extienden de la clase
ContentProvider.

Es de destacar que antes de que Android inicie un componente de una aplicacin, debe
verificar que el componente existe. Por lo tanto las aplicaciones declaran sus componentes
en un archivo de manifiesto que se incluye en el paquete Android. El archivo de manifiesto
es un archivo XML estructurado y siempre se denomina AndroidManifiest.xml para todas
las aplicaciones. Adems de declarar las componentes, en el archivo manifiesto se nombran
las bibliotecas vinculadas a la aplicacin y se identifican los permisos que la aplicacin
espere le concedan para su adecuado funcionamiento.

5.2.1.3 Tipos de aplicaciones en Android

Tareas

Una tarea es lo que siente el usuario como una aplicacin, es decir un conjunto actividades
relacionadas agrupadas en una pila. La actividad raz en la pila es la actividad que inicio la
tarea. La actividad en la parte superior de la pila es la que actualmente se ejecuta, es la que
tiene el foco de las acciones del usuario. Cuando una actividad inicia otra, la nueva
actividad se inserta en la pila y se convierte en la actividad en funcionamiento pero la
actividad anterior permanece en la pila.
27
Procesos e hilos

Cuando el primer componente de una aplicacin necesita ejecutarse, Android lanza un


proceso Linux con un solo hilo de ejecucin. Por defecto todos los componentes de una
aplicacin se ejecutan en un proceso y en un hilo. Sin embargo se pueden iniciar los
componentes en procesos diferentes.

Android puede decidir terminar un proceso en un momento dado, cuando queda poca
memoria y pocos recursos para otros procesos que sirven ms inmediatamente al usuario.
Aunque se puede limitar una aplicacin a un nico proceso, es posible que algunos casos
se deban generar hilos para hacer un trabajo en segundo plano; la interfaz de usuario debe
dar respuesta rpidas a las acciones del usuario, todo lo que no se puede completar con
rapidez debe ser asignado a un hilo diferente.

5.2.1.4 Ciclo de Vida de las aplicaciones

En Android, el ciclo de vida de una aplicacin no est controlado por la misma aplicacin
sino que lo determina el sistema. El sistema Android intenta mantener un proceso de una
aplicacin por el mayor tiempo posible, pero eventualmente se necesitan remover los
procesos ms antiguos cuando la memoria disponible para usar es baja. Para determinar
cules procesos mantener y cuales destruir, Android ubica cada proceso en una jerarqua de
importancia basada en los componentes que se estn ejecutando y el estado de estos. Los
procesos que tiene menor importancia son eliminados primero, y as sucesivamente.
Existen cinco niveles de Jerarqua:

1. Un proceso en primer plano. Es un proceso que se requiere para lo que el usuario est
haciendo actualmente. Se considera en primer plano si:

- Se encuentra ejecutando una actividad perteneciente a la pantalla con la que el


usuario est interactuando.
- Se encuentra ejecutando un receptor de broadcast.
- Se encuentra ejecutando un servicio.

2. Un proceso visible. Es un proceso que contiene una Actividad que es visible al usuario
mediante la pantalla pero no en primer plano, es decir, una actividad pausada. Este
proceso solo se eliminar en caso de que sea necesario para mantener en ejecucin a los
procesos que se encuentran en primer plano.

28
3. Un proceso de servicio. Es un proceso que contiene un servicio que ha sido inicializado.
No son directamente visibles al usuario y el sistema los mantendr a no ser que no pueda
mantener en ejecucin a un proceso visible o en primer plano.

4. Un proceso en segundo plano. Es un proceso que acoge una actividad que no es


actualmente visible al usuario, es decir, una actividad detenida. Mientras que la
destruccin de dichos procesos no afecten la interaccin de usuario, el sistema puede
eliminarlos para dar prioridad a procesos de las jerarquas anteriores.

5. Un proceso vaco. Es un proceso que no contiene ningn componente activo de ninguna


aplicacin. La nica razn para mantener dicho proceso es para mejorar sus
inicializaciones posteriores a modo de cach.

5.2.2 Servicios basados en localizacin (LSB)

Schiller (2004), define los servicios de localizacin como servicios que integran la
posicin o localizacin de un dispositivo mvil con otra informacin con el fin de
proporcionar un valor agregado al usuario.

Segn Steniger (2006) citado por Castaeda (2009), los LBS implican dos acciones
principales: obtener la ubicacin geogrfica del usuario y utilizar dicha informacin para
prestar un servicio; para esto un LBS debe contar con la interseccin de tres tecnologas:
sistemas de localizacin geogrfica (LCS), sistemas de informacin geogrfica (SIG) e
Internet.

Un LBS se divide en tres capas: capa de datos, capa de servicios y capa de visualizacin.
La primera se compone de bases de datos y archivos mviles, la segunda es la encargada de
la recuperacin de datos de los dispositivos y de realizar operaciones para el usuario; y la
tercera es en s la conexin entre el usuario y los servicios (Milin, 2010).

5.2.2.1 Tipos de LSB

Pull

En este tipo de servicio, el cliente solicita de manera constante al servidor el envo de


informacin. En este sentido se reconocen dos formas se servicios pull:

- Cuando el servicio requiere la posicin del solicitante. Ejemplo: Solicitar la informacin


del centro comercial ms cercano a la ubicacin del usuario.
29
- Cuando el servicio requiere de la posicin de un dispositivo extra al del solicitante.
Ejemplo: Solicitar la ubicacin de un amigo del usuario.

Push

En este tipo de servicio, se enva al cliente informacin de forma asncrona cuando ocurre
un evento de inters. Ejemplo: Enviar la informacin meteorolgica de una ciudad todos los
das en una hora determinada.

Tracking

En este tipo de servicio, se provee informacin constante de la ubicacin de un objeto


determinado. Ejemplo: Monitorear la ruta seguida por un vehculo.

5.2.2.2 Tecnologas de localizacin geogrfica

Las tecnologas de localizacin geogrfica son las que permiten obtener la informacin de
la localizacin de un dispositivo mvil. Segn Shukla (2004), estas tecnologas se pueden
clasificar de acuerdo al mtodo que usan en:

Tecnologas de posicionamiento manual:

En este mtodo el usuario es el responsable de proveer su ubicacin al servicio que est


solicitando. Ya sea por medio de una llamada a un centro de control o digitndola en una
aplicacin soportada e incluida por el dispositivo.

Tecnologas de posicionamiento basado en la red:

Otra forma de hallar la localizacin de un objeto o persona es encontrar la localizacin de


su dispositivo mvil en relacin a la celda en la que se encuentra. El posicionamiento
basado en la red se fundamenta en diferentes maneras de triangulacin de la seal
proveniente de las celdas que sirven a un dispositivo mvil en un momento determinado.
Entre estas tcnicas se encuentran:

- Celda de Origen (COO): Esta tcnica es soportada por todos los telfonos mviles.
COO usa el rea de red conformada por la celda base para identificar el origen de una
llamada. La precisin depende del rea de la celda y esta alrededor de 150 metros en
30
una zona urbana. Aunque no es muy precisa y no se puede usar para servicios de
emergencias, es muy usada por los operadores mviles debido a su bajo costo.

- Tiempo de llegada (TOA): En esta tcnica, para calcular la localizacin de un


dispositivo, se usa el tiempo de llegada de la seal del dispositivo a ms de una
estacin base. La implementacin de este mecanismo es costoso comparado con el
beneficio que se consigue en el rendimiento del servicio. TOA es mucho ms preciso
que COO siempre y cuando entre las estaciones base y el dispositivo halla una buena
visibilidad.

- ngulo de llegada (AOA): Calcula los ngulos de la llegada de la seal del dispositivo
a dos estaciones base, usando triangulacin para hallar la localizacin. Esta tcnica no
resulta til cuando se presentan obstculos entre las estaciones base y el dispositivo.

- Diferencia de tiempo observada mejorada (E-ODT): Funciona al situar receptores de


localizacin superpuestos en una red celular (estaciones base), de manera que acten
como unidades de medida de localizacin (LMU) dispersos un rea geogrfica
amplia. Esta tcnica es muy precisa pero depende de la visibilidad de las estaciones
base.

Tecnologas de posicionamiento global (GPS):

El sistema de posicionamiento global (GPS), es un sistema de navegacin por radio en todo


el mundo que consta de 24 satlites que orbitan alrededor de la tierra en 6 planos orbitales
distintos con 4 satlites por plano, de manera que en cualquier punto de la tierra haya entre
5 y 11 satlites visibles en un momento dado. El GPS se basa en el concepto de
trilateracin. Trilateracin es un principio de base geomtrica que permite buscar un lugar
si se conoce su distancia de otros lugares, de los que ya se conoce su localizacin. Para
poder utilizar la frmula de trilateracin slo es necesario que el receptor GPS sea
interceptado por la seal de tres satlites. Con la informacin de los satlites de
transmisin al receptor y calculando el tiempo que la seal llev a alcanzar el receptor, el
receptor es capaz de reconocer la distancia exacta del satlite. Al recoger las seales de tres
o ms satlites, el receptor calcula su propia relacin espacial con cada satlite con el fin de
llegar a una lectura precisa de su posicin en el planeta.

As para que un receptor GPS pueda encontrar su ubicacin con una precisin de hasta 3
metros, tiene que determinar dos cosas: la ubicacin de al menos tres satlites a su
alrededor y la distancia entre el dispositivo y cada uno de los satlites.
31
Una subcategoria dentro de las tecnologas de posicionamiento global, es el Sistema de
Posicionamiento Global Asistido (A-GPS), este se desarrollo con el fin de mejorar el
funcionamiento del sistema GPS tradicional. El GPS convencional presenta dificultades a
la hora de proporcionar posiciones precisas en condiciones de baja seal. Por ejemplo,
cuando la seal del satlite se ve atenuada por obstculos. Adems, la primera vez que se
encienden en tales condiciones, algunos receptores no son capaces de descargar
informacin de los satlites GPS con eficiencia, hacindolos incapaces de funcionar hasta
que se reciba una seal clara por al menos un minuto. A-GPS utiliza la red de telefona
mvil para ayudar al receptor GPS a solucionar dichos problemas. El A-GPS utiliza
las antenas cercanas para triangular la posicin del dispositivo y la de los satlites GPS que
se utilizan. Esta posicin se obtiene a travs de HTTP, una vez encontrada el sistema
funciona igual que un GPS convencional. Adems al no requerir tanto tiempo para
triangular la posicin del dispositivo, se aumenta la duracin de la batera del mismo.

La siguiente figura muestra una representacin esquemtica de la diferencia entre el GPS y


el A-GPS.

Figura 2. Representacin del funcionamiento del GPS y el A-GPS.

32
5.2.2 Sistemas de informacin geogrfica (SIG)

Murphy (1995) citado por Castaeda (2009), define: un sistema de informacin


geogrfica como un tipo especial de un sistema de informacin que tiene la capacidad de
integrar datos espaciales y descriptivos. Adems un SIG puede verse como un modelo que
representa una zona geogrfica con un determinado grado de precisin por medio de un
sistema de coordenadas que representa cualquier punto de forma nica. Adicionalmente
para cada punto se puede almacenar informacin de inters segn sea el uso que vaya a
tener el SIG.

5.2.3 Redes Sociales

Rodrguez (2009), define una red social como un medio donde distintas personas
interactan con la finalidad de compartir informacin. En general una red social virtual
permite al usuario la creacin de un perfil y a partir de esta la comunicacin con otros
usuarios. Las redes sociales se pueden dividir en dos tipos: Redes sociales internas y redes
sociales externas. Las primeras corresponden a comunidades cerradas y/o privadas
pertenecientes a una empresa, asociacin, entre otros, un ejemplo puede ser un grupo
creado en Google con el fin de compartir informacin de una entidad determinada. Las
segundas corresponden a comunidades pblicas de las cuales puede ser parte cualquier
individuo, ejemplo de estas son Facebook, Twitter, MySpace, entre otras.

Las redes sociales presentan un crecimiento exponencial puesto que un nmero inicial de
participantes envan mensajes a miembros de su crculo social invitndolos a ser parte de la
misma. Los nuevos participantes repiten el proceso, creciendo as la cantidad de usuarios de
la red. Entre los puntos fuertes de una red social se destacan: la comunicacin, la
comunidad y la cooperacin. Por el contrario un punto dbil de las redes sociales est
ligado con la informacin personal del usuario, es decir, su privacidad y por ende su
seguridad.

5.2.3.1 Redes Sociales Mviles

Hernndez (2008), argumenta que quizs porque los dispositivos mviles ofrecen la
sensacin de inmediatez o de contacto constante entre los usuarios, el modelo de negocio
de las redes sociales mviles se ha convertido en uno de los ms exitosos de la web mvil.

33
Las redes sociales mviles son vistas por los usuarios como una forma de mantenerse
conectados. De esta forma se puede estar actualizado en todo momento de los cambios y
estar al da de todo lo que sucede en su comunidad. Por otra parte los operadores ven las
redes mviles como una gran oportunidad, ellos buscan que sus clientes consuman lo
mximo posible. Con la integracin de las redes sociales, el usuario debe pasar ms tiempo
usando su dispositivo y con esto el operador tiene la posibilidad de ofrecer planes de datos
a sus clientes. Para los fabricantes de dispositivos mviles, las redes sociales son una
manera de tener que innovar en los dispositivos debido a la creciente demanda de
aplicaciones que van a requerir de un hardware ms sofisticado y ms especfico, como es
el caso de los servicios basados en localizacin.

34
6. PLANTEAMIENTO METODOLGICO

6.1 CRONOGRAMA

Actividad Tiempo en semanas para el ao 2010


Agosto Septiembre Octubre Noviembre
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Etapa 0 Indagar la Arquitectura de la plataforma Android
Indagar el uso de las herramientas de desarrollo para Android
Aprender el manejo de las llamadas Actividades e Intenciones
Indagar la persistencia de datos en dispositivos Android
Indagar el control de hardware especial en dispositivos Android
Indagar el proceso para publicar aplicaciones en el Android Market.
Etapa 1 Estructurar el modelo relacional de la BD.
Implementar el modelo relacional de la BD.
Construir el Servicio web para conectar la aplicacin Android con la
base de datos.
Indagar la Conexin de Android con Servicio web
Probar Conexin Android con Servicio web
Etapa 2 Crear formulario para la creacin de un perfil de usuario.
Cargar una imagen para el perfil de usuario.
Probar mdulo de perfiles de usuario.
Etapa 3 Crear formulario para la publicacin de un lugar.
Asignar premio por la publicacin de un lugar.
Crear formulario para la publicacin de un producto.
Asignar premio por la publicacin de un producto
Crear formulario para publicar comentarios de un lugar o de un
producto.
Asignar premios por participar en un lugar.
Mostrar los premios ganados a un usuario.
35
Probar el mdulo para realizar publicaciones , comentarios de lugares
y productos
Etapa 4 Crear formulario para compartir la ubicacin de un usuario.
Mostrar al usuario lugares cercanos a su posicin.
Mostrar los productos relacionados a un lugar especfico.
Mostrar los amigos de un usuario.
Invitar personas a la aplicacin a travs de correo electrnico
Indagar el uso del API de Facebook desde aplicaciones Android
Invitar personas a la aplicacin a travs del API de Facebook.
Mostrar los lugares que han visitado los amigos.
Probar mdulo de compartir localizacin y contactar amistades.
Etapa 5 Probar la funcionalidad de la aplicacin por completo
Publicar la aplicacin en el Android Market.

Tabla 2. Cronograma de actividades para el desarrollo de la aplicacin.

36
6.2 METODOLOGA

El desarrollo de la aplicacin planteada se dividir en seis etapas as:

Etapa 0: Indagacin del funcionamiento y las prestaciones de la plataforma Android.

Etapa 1: Diseo e implementacin de la base de datos relacional e implementacin del


servicio web que comunicar la base de datos con la aplicacin Android.

Etapa 2: Desarrollo del mdulo para la administracin de los perfiles de usuario.

Etapa 3: Desarrollo del mdulo para realizar publicaciones y comentarios de lugares y


productos asociados a dichos lugares. Adems de la asignacin de premios a los usuarios
por realizar dichas acciones.

Etapa 4: Desarrollo del mdulo para compartir la ubicacin geogrfica de un usuario y as


mostrar informacin pertinente a sitios cercanos a dicha ubicacin. Adems permitir al
usuario contactar amistades mediante envo de correo electrnico y el API de Facebook.

Etapa 5: Probar la funcionalidad de la aplicacin por completo y realizar los ajustes


necesarios.

El diseo de la aplicacin seguir una estructura orientada a objetos, esto para permitir la
reutilizacin de cdigo para futuras versiones adems de tener cdigo menos propenso a
fallos. Para llevar a cabo la etapa 1 se utilizar la herramienta de modelado DB Designer
por la facilidad que presenta para definir el modelo relacional de la base de datos, esta
ltima se implementar empleando el sistema de gestin de base de datos Microsoft SQL
Server; el cual se decide usar por la agilidad que brinda para la implementacin. Adems
se utilizar la herramienta de desarrollo Microsoft Visual Studio para la implementacin
del servicio web necesario para la integracin de la base de datos con la aplicacin
Android, empleando el lenguaje de programacin C#.

Por otra parte para el desarrollo de las etapas 2, 3, 4 y 5 se utilizar el SDK (Software
Development Kit) que provee Android para el desarrollo de aplicaciones, este consta de las
herramientas y las API necesarias para desarrollar aplicaciones para la plataforma Android
usando el lenguaje de programacin Java, para esto se usa un complemento en el IDE
(Integrated Development Environment) de la herramienta de desarrollo Eclipse, adems
incluye un emulador para dispositivos Android. Y para la construccin de las interfaces de
usuario de la aplicacin se usa XML (Extensible Markup Language).

37
Para lograr la conexin entre la aplicacin mvil y el servicio web, se utilizara la librera
kSOAP que es un cliente Java para el consumo de este tipo de servicios. Por otra parte para
la implementacin de los servicios basados en localizacin se utilizar el API de Google
Maps.

Con la finalidad de verificar el alcance de los objetivos propuestos, al final de cada etapa se
dar una revisin de la evolucin del proyecto.
Tomando como base la metodologa de desarrollo gil Scrum, la cual sigue un modelo de
desarrollo iterativo (Sprint) e incremental, el desarrollo de este proyecto se llevo a cabo en
cuatro incrementos, cada uno correspondiente a un modulo funcional de la aplicacin.

6.3 HERRAMIENTAS UTILIZADAS

DB Designer

Es un sistema de diseo visual de base de datos que integra el diseo, el modelado, la


creacin y el mantenimiento de bases de datos en un nico entorno. Esta herramienta
combina caractersticas profesionales y una interfaz de usuario clara y sencilla para ofrecer
una manera eficiente de gestionar bases de datos. Adems de proveer funciones de
exportacin en formatos de imgenes de los diagramas relacionales as como de scripts de
creacin, modificacin y borrado en lenguaje SQL.

StarUML

Es una herramienta para el modelado de software basada en los estndares UML (Unified
Modeling Language) y MDA (Model Driven Arquitecture); este es un proyecto de cdigo
abierto para realizar diagramas de forma rpida, flexible y extensibel.
Entre las funcionalidades de la herramienta esta el poder realizar:
- Diagrama de casos de uso
- Diagrama de clase
- Diagrama de secuencia
- Diagrama de colaboracin.
- Diagrama de estados
- Diagrama de actividad.
- Diagrama de componentes
- Diagrama de despliegue.
- Diagrama de composicin estructural (UML 2.0)

38
Adems tiene la capacidad de generar cdigo fuente (actualmente funcionando para los
lenguajes Visual C++, Visual C# y Java) a partir de los diagramas y viceversa.

Microsoft Visual Studio 2008

Es un IDE para sistemas operativos Windows. Soporta varios lenguajes de programacin


tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque
actualmente se han desarrollado las extensiones necesarias para muchos otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, as
como servicios web en cualquier entorno que soporte la plataforma .NET. Adems permite
ejecutar pruebas unitarias ms rpido e independientemente de si lo hacen en el entorno
IDE o desde la lnea de comandos. Visual Studio 2008 tambin permite mejorar la
interoperabilidad entre cdigo nativo y cdigo manejado por .NET. Esta integracin ms
profunda simplificar el trabajo de diseo y codificacin. Adems provee LINQ (Language
Integrated Query) es un conjunto de herramientas diseado para reducir la complejidad del
acceso a Base de Datos, a travs de extensiones para C++ y Visual Basic as como para
Microsoft .NET Framework. Permite filtrar, enumerar, y crear proyecciones de muchos
tipos y colecciones de datos utilizando todas las mismas sintaxis, prescindiendo del uso de
lenguajes especializados como SQL o XPath. Visual Studio tambin cuenta con la
capacidad de crear soluciones multiplataforma adaptadas para funcionar con las diferentes
versiones de .Net Framework: 2.0., 3.0 y 3.5.

.NET 3.5 incluye la biblioteca ASP.NET AJAX para desarrollar aplicaciones web ms
eficientes, interactivas y altamente personalizadas que funcionen para todos los
navegadores ms populares y utilicen las ltimas tecnologas y herramientas Web.

Microsoft SQL Server 2005

Es un sistema para la gestin de bases de datos, basado en el modelo relacional. Sus


lenguajes para consultas son T-SQL y ANSI SQL. Algunas de sus caractersticas son:
- Soporte de transacciones.
- Escalabilidad, estabilidad y seguridad.
- Soporta procedimientos almacenados.
- Incluye tambin un potente entorno grfico de administracin, que permite el uso de
comandos DDL (Lenguaje de definicin de datos) y DML (Lenguaje de manipulacin
de datos) grficamente.

39
- Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el
servidor y las terminales o clientes de la red slo acceden a la informacin.
- Adems permite administrar informacin de otros servidores de datos.

Esta base de datos coloca a disposicin un modelo de programacin rpido y sencillo para
desarrolladores, eliminando la administracin de base de datos para operaciones estndar, y
suministrando herramientas sofisticadas para operaciones ms complejas.

Eclipse 3.5 - Galileo

Es una IDE de cdigo abierto multiplataforma para desarrollar Aplicaciones de Cliente


Enriquecido, es decir, aplicaciones que no se basan en navegadores. Eclipse emplea
mdulos ( plug-in) para proporcionar toda su funcionalidad al frente de la plataforma de
cliente rico, a diferencia de otros entornos monolticos donde las funcionalidades estn
todas incluidas, las necesite el usuario o no. La fundacin Eclipse, define el IDE como una
especie de herramienta universal, un IDE abierto y extensible para todo y nada en
particular". Eclipse dispone de un editor de texto con resaltado de sintaxis. La compilacin
es en tiempo real. Tiene pruebas unitarias con JUnit y asistentes para creacin de proyectos,
clases, pruebas, entre otros.

Para que el Eclipse pueda compilar y construir cdigo para dispositivos Android, es necesario
adicionar un complemento.

40
7. RESULTADOS

7.1 REQUISITOS

Aplicando la metodologa se obtiene como resultado que el marco de trabajo de los


requisitos corresponde a la pila del producto y a la pila por sprint. A continuacin se
presentan la pila de producto (lista de requisitos de usuario iniciales) y la pila de cada uno
de los sprint (labores realizadas durante cada iteracin para conseguir un incremento)
seguidos durante el desarrollo.

Pila del producto (Product Backlog)

Id. Descripcin Esfuerzo


1. Disear e implementar el back-end de la aplicacin. Base 50
de datos relacional, Servicio web.
2. Desarrollar mdulo la gestin de los usuarios: creacin, 70
visualizacin y administracin de perfiles de usuario
3. Desarrollar mdulo para la gestin de publicaciones: 80
creacin, visualizacin y administracin de lugares y
productos.
4. Desarrollar Sistema de contactos a partir de redes sociales 60
mviles y correo electrnico

Tabla 3. Pila del producto. La escala de esfuerzo se toma entre 1 y 100 donde 1 es el valor
ms bajo y 100 el ms alto.

41
Pila por Sprint

1 2 3 4 5
Id. Descripcin Numero de Sprint
Prioridad
Sprint 1. Estructurar e implementar el Back-end de la aplicacin
1. Estructurar el modelo entidad relacin de la base de datos. A
2. Implementar el modelo relacional de la base de datos. A
3. Implementar el servicio web para conectar la informacin
A
con los dispositivos.
4. Configurar e implementar la conexin entre dispositivos
A
Android con servicios web.
5. Hacer un ejemplo de transmisin de datos desde el
A
servidor a un dispositivo.
Sprint 2. Primer incremento funcional de la aplicacin: Perfiles de
Usuario
6. Crear un formulario para el registro de usuarios. A
7. Crear un formulario para el ingreso de los usuarios. A
8. Implementar mecanismo de recuperacin de contrasea. M
9. Crear un formulario para la vista del perfil del usuario. A
10. Permitir a los usuarios la edicin de su informacin
A
personal.
11. Hacer que los usuarios puedan subir una fotografa a su
M A
perfil.
12. Permitir al usuario observar las publicaciones que ha
B A A
realizado recientemente.
13. Definir los premios a los que puede acceder un usuario por
B A A
determinadas acciones.
Sprint 3.Segundo Incremento funcional de la aplicacin: Publicaciones
relacionadas con lugares.
14. Crear un formulario para el registro de lugares teniendo en
A
cuenta su ubicacin geogrfica.
15. Crear un formulario para la vista de los lugares. A
16. Permitir visualizar la ubicacin de un lugar en un mapa. A
17. Crear un formulario para la edicin de la informacin de
M A
un lugar y permitir al usuario subir fotografas del mismo.
18. Permitir a un usuario realizar comentarios de lugares. A
19. Permitir a un usuario decir que ha visitado un lugar. A
20. Permitir a un usuario calificar lugares. M A
21. Permitir adicionar promociones asociadas a un lugar. M A
22. Permitir adicionar un producto como especialidad de un
B A
lugar.
23. Visualizar los premios que ah obtenido un lugar de
M A
acuerdo a acciones determinadas.
24. Crear un formulario de bsqueda de lugares que al mostrar A

42
los resultados indique la distancia a la que se encuentra el
usuario de dichos lugares.
Sprint 4. Tercer incremento funcional de la aplicacin: Publicaciones
relacionadas con productos.
25. Crear un formulario para el registro de productos. A
26. Crear un formulario para la vista de productos A
27. Permitir al usuario asociar los productos con los lugares en
A
donde son vendidos.
28. Crear un formulario para la edicin de la informacin de
un producto y permitir al usuario subir fotografas del M A
mismo.
29. Permitir a un usuario realizar comentarios de productos. A
30. Permitir a un usuario calificar productos. M A
31. Crear un formulario de bsqueda de productos que al
mostrar los resultados indique la distancia a la que se
A
encuentra el usuario de dichos productos, esto de acuerdo a
los lugares en donde est disponible el producto.
Sprint 5. Ultimo incremento funcional de la aplicacin: Sistema de
contactos y ajuste de detalles pendientes de otros mdulos.
32. Crear un formulario para la bsqueda de usuarios que usen
la aplicacin por correo electrnico y nombre, para A
posterior solicitud de amistad
33. Crear un formulario para la bsqueda de usuarios que usen
la aplicacin empleando una cuenta de Facebook, para A
posterior solicitud de amistad.
34. Crear un formulario para enviar invitaciones a travs de
correo electrnico a otros usuarios para que inicien a usar A
la aplicacin
35. Permitir al usuario visualizar solicitudes de amistad
A
pendientes.
36. Listar los amigos del usuario. A
37. Permitir visualizar el perfil de los amigos de un usuario. A

Tabla 4. Pila por Sprint. La prioridad de cada tarea en cada sprint se califica en tres estados:
Alto (A) - Medio (M) - Bajo (B)

43
7.2 ANLISIS

7.2.1 Diagrama de casos de uso del sistema. Para una mejor visualizacin de los casos
de uso correspondientes a la interaccin del usuario con la aplicacin, estos se mostraran
divididos por cada incremento funcional as:

7.2.1.1 Diagrama de casos de uso para el mdulo de la gestin de usuarios.

Figura 3. Diagrama de casos de uso para el modulo de la gestin de usuarios.

44
7.2.1.2 Diagrama de casos de uso para el mdulo de la gestin de lugares.

Figura 4. Diagrama de casos de uso para el modulo de la gestin de lugares.

45
7.2.1.3 Diagrama de casos de uso para el mdulo de la gestin de productos.

Figura 5. Diagrama de casos de uso para el modulo de la gestin de productos.

7.2.1.4 Diagrama de casos de uso para el mdulo de contactos.

Figura 6. Diagrama de casos de uso para el modulo de contactos.

46
7.2.2 Especificacin de los casos de uso del sistema.

7.2.2.1 Especificacin de los casos de uso del mdulo de gestin de usuarios.

Id: CU-01
Nombre: Registrar un nuevo usuario
Descripcin: Registrar un usuario nuevo de aplicacin.
Actores: Usuario sin registrar
Precondiciones: El usuario no puede estar registrado.
Poscondiciones: Se ha registrado el nuevo usuario.
Flujo normal de eventos
1. El actor ingresa su nombre, apellido, nmero telefnico, fecha de nacimiento,
gnero, email, contrasea y verificacin de la contrasea.
2. El actor selecciona la opcin registrar.
3. El sistema vlida los datos ingresados por el actor.
4. Si los datos son validos, el nuevo usuario es registrado.
Flujos alternos:

Excepciones:
En el paso 2, Si los datos son incorrectos o ya se encuentra un usuario
registrado con el mismo email, el nuevo usuario no se registra y se muestra la
respectiva notificacin.

Tabla 5. Especificacin del caso de uso registrar un nuevo usuario.

Id: CU-02
Nombre: Ingresar a la aplicacin
Descripcin: Identificar un usuario para que use la aplicacin.
Actores: Usuario registrado
Precondiciones: El usuario se debe de encontrar registrado en la aplicacin
Poscondiciones: Se ha identificado el usuario.
Flujo normal de eventos
1. El actor ingresa su email y su contrasea.
2. El actor selecciona la opcin ingresar.
3. El sistema verifica si el usuario se encuentra registrado.
4. Si el usuario es vlido, el sistema muestra la vista principal de la aplicacin.
Flujos alternos:

Excepciones:
En el paso 2, si el usuario no se encuentra registrado, el sistema muestra una

47
notificacin en la que indica que los datos son incorrectos.

Tabla 6. Especificacin del caso de ingresar a la aplicacin.

7.2.2.2 Especificacin de los casos de uso del mdulo de la gestin de lugares.

Id: CU-07
Nombre: Registrar un lugar
Descripcin: Permite al usuario registrar un nuevo lugar.
Actores: Usuario identificado
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: El nuevo lugar fue registrado con xito.
Flujo normal de eventos
1. El actor selecciona la opcin lugares.
2. El actor selecciona la opcin nuevo lugar.
3. El sistema carga el formulario para el registro de un lugar.
4. El actor ingresa la categora, el nombre y el telfono del lugar.
5. El actor selecciona la opcin registrar.
6. El sistema obtiene la ubicacin geogrfica del usuario.
7. El sistema verifica que el lugar no se encuentre registrado.
8. El sistema almacena el nuevo lugar con la informacin provista por el usuario
ms la ubicacin obtenida por el sistema.
9. El sistema muestra una notificacin de que el registro fue exitoso.
Flujos alternos:

Excepciones:
En el paso 6, si el sistema no puede obtener la ubicacin geogrfica del usuario
se muestra la notificacin y se cancela el registro del nuevo lugar.
En el paso 7, si el lugar ya se encuentra registrado, se muestra la respectiva
notificacin y se cancela el registro.

Tabla 7. Especificacin del caso de uso registrar un lugar.

Id: CU-08
Nombre: Buscar un lugar
Descripcin: Permite al usuario buscar un lugar.
Actores: Usuario identificado
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: Se muestra el resultado de la bsqueda.
Flujo normal de eventos
1. El actor selecciona la opcin lugares.

48
2. El actor ingresa la categora y un patrn de bsqueda.
3. El actor selecciona la opcin buscar.
4. El sistema obtiene la ubicacin geogrfica del usuario.
5. El sistema realiza la bsqueda y muestra una lista de los lugares encontrados
ordenados por la distancia del lugar al punto donde se encuentra el usuario.
Flujos alternos:

Excepciones:
En el paso 4, si el sistema no puede obtener la ubicacin geogrfica del usuario
se muestra la notificacin y se cancela la bsqueda.
En el paso 5, si la bsqueda no obtiene resultados, se muestra la respectiva
notificacin.

Tabla 8. Especificacin del caso de uso buscar un lugar.

7.2.2.3 Especificacin de los casos de uso del mdulo de la gestin de productos.

Id: CU-14
Nombre: Registrar un producto
Descripcin: Permite el registro de un nuevo producto.
Actores: Usuario identificado
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: El nuevo producto fue registrado con xito.
Flujo normal de eventos
1. El actor selecciona la opcin productos.
2. El actor selecciona la opcin nuevo producto.
3. El sistema carga el formulario para el registro de un producto.
4. El actor ingresa la categora, el nombre y la descripcin del producto.
5. El actor selecciona la opcin registrar.
6. El sistema verifica que el producto no se encuentre registrado.
7. El sistema almacena el nuevo producto.
8. El sistema muestra una notificacin de que el registro fue exitoso.
Flujos alternos:

Excepciones:
En el paso 6, si el lugar ya se encuentra registrado, se muestra la respectiva
notificacin y se cancela el registro.

Tabla 9. Especificacin del caso de uso registrar un producto.

49
Id: CU-15
Nombre: Buscar un producto
Descripcin: Permite al usuario buscar un producto.
Actores: Usuario identificado
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: Se muestra el resultado de la bsqueda.
Flujo normal de eventos
1. El actor selecciona la opcin productos.
2. El actor ingresa la categora y un patrn de bsqueda.
3. El actor selecciona la opcin buscar.
4. El sistema obtiene la ubicacin geogrfica del usuario.
5. El sistema realiza la bsqueda y muestra una lista de los productos encontrados
ordenados por la distancia de los lugares en donde se encuentra disponible el
producto al punto donde se encuentra el usuario.
Flujos alternos:

Excepciones:
En el paso 4, si el sistema no puede obtener la ubicacin geogrfica del usuario
se muestra la notificacin y se cancela la bsqueda.
En el paso 5, si la bsqueda no obtiene resultados, se muestra la respectiva
notificacin.

Tabla 10. Especificacin del caso de uso buscar un producto.

7.2.2.4 Especificacin de los casos de uso del mdulo de contactos.

Id: CU-20
Nombre: Buscar Amigos.
Descripcin: Permite al usuario buscar amigos que usen la aplicacin.
Actores: Usuario identificado
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: Se muestra el resultado de la bsqueda.
Flujo normal de eventos
1. El actor selecciona la opcin amigos.
2. El actor selecciona la opcin buscar.
3. El sistema carga un formulario de bsqueda.
4. El usuario selecciona la opcin deseada: Facebook o email y nombre
5. El sistema muestra el resultado de la bsqueda.
Flujos alternos:
En el punto 4.
4.1 si el usuario selecciono Facebook:
4.1.1 El sistema carga el formulario de conexin a Facebook.

50
4.1.2 El usuario ingresa su cuenta y contrasea de Facebook.
4.1.3 El usuario da permisos a la aplicacin para obtener la informacin de sus
amigos en la red social.
4.1.4 El sistema obtiene la lista de amigos de Facebook del usuario.
4.1.5 El sistema filtra los amigos de Facebook del usuario que tambin usen la
aplicacin.
4.2 si el usuario selecciono email y nombre:
4.2.1 El usuario selecciona email o nombre e ingresa un patrn de bsqueda
4.2.2 El usuario selecciona la opcin buscar.
Excepciones:
En el paso 5, si la bsqueda no obtiene resultados se muestra la respectiva
notificacin.

Tabla 11. Especificacin del caso de uso buscar amigos.

Id: CU-21
Nombre: Agregar amigos.
Descripcin: Permite al usuario contactar amigos que tambin usen la
aplicacin.
Actores: 1. Usuario identificado
2. Usuario registrado
Precondiciones: El usuario debe de estar identificado y se debe realizar una
bsqueda de amigos CU-20
Poscondiciones: Se adiciona un amigo al usuario.
Flujo normal de eventos
1. El usuario identificado selecciona los usuarios que desee de la lista que se
obtuvo como resultado de la bsqueda de amigos.
2. El usuario selecciona enviar solicitud de amistad.
3. El sistema almacena las solicitudes de amistad.
4. El sistema notifica a los usuarios seleccionados de la nueva solicitud de
amistad.
5. Los usuarios notificados ven la solicitud de amistad.
6. El sistema notifica el envo de las solicitudes de amistad.
7. El sistema muestra la lista de amigos.
Flujos alternos:
En el punto 5. Para ver las solicitudes de amistad.
5.1 El usuario identificado selecciona la opcin amigos.
5.2 El usuario identificado selecciona la opcin ver solicitudes pendientes.
5.3. Si el usuario tiene solicitudes pendientes el sistema muestra una lista con
las mismas.
5.4 El usuario decide cuales solicitudes aceptar y cuales rechazar.
5.5 El sistema notifica a los usuarios cuyas solicitudes de amistad fueron
aceptadas.

51
5.6 El sistema muestra la lista de amigos actualizada.
Excepciones:

Tabla 12. Especificacin del caso de uso adicionar amigos.

52
7.2.3 Diagramas de secuencia para los casos de uso del sistema.

7.2.3.1 Diagramas de secuencia para los casos de uso del mdulo de gestin de usuarios. En los siguientes diagramas se
presenta el flujo de informacin entre los objetos del sistema cuando el usuario interacta con la aplicacin en el
mdulo de gestin de usuarios.

Figura 7. Diagrama de secuencia para el caso de uso Registrar un nuevo usuario.

53
Figura 8. Diagrama de secuencia para el caso de uso ingresar a la aplicacin.

54
7.2.3.2 Diagramas de secuencia para los casos de uso del mdulo de gestin de lugares. En los siguientes diagramas se
presenta el flujo de informacin entre los objetos del sistema cuando el usuario interacta con la aplicacin en el
mdulo de gestin de lugares.

Figura 9. Diagrama de secuencia para el caso de uso registrar un lugar.

55
Figura 10. Diagrama de secuencia para el caso de uso buscar un lugar.

56
7.2.3.3 Diagramas de secuencia para los casos de uso del mdulo de gestin de productos. En los siguientes diagramas se
presenta el flujo de informacin entre los objetos del sistema cuando el usuario interacta con la aplicacin en el
mdulo de gestin de productos.

Figura 11. Diagrama de secuencia para el caso de uso registrar un producto.

57
Figura 12. Diagrama de secuencia para el caso de uso buscar un producto.

58
7.2.3.4 Diagramas de secuencia para los casos de uso del mdulo de contactos. En los siguientes diagramas se presenta el
flujo de informacin entre los objetos del sistema cuando el usuario interacta con la aplicacin en el mdulo de
contactos.

Figura 13. Diagrama de secuencia para el caso de uso buscar amigos.

59
Figura 14. Diagrama de secuencia para el caso de uso agregar amigo.

60
7.3 DISEO

Para el desarrollo de la aplicacin se sigui el paradigma orientado a objetos. Al extraer las clases entidad (las clases que
almacenarn informacin perdurable) y relacionarlas se obtuvo el siguiente diagrama de clases. Para observar los atributos y los
mtodos de las respectivas clases ver el anexo I.

Figura 15. Diagrama de clases entidad para la aplicacin.

61
7.4 IMPLEMENTACIN

A continuacin se presentan algunos de los principales detalles necesarios para la


implementacin de la aplicacin.

7.4.1 Archivo Manifiesto. En toda aplicacin Android se hace necesaria la inclusin de


un archivo conocido como manifiesto. Por medio de este, una aplicacin puede verificar la
existencia de todos sus componentes (Actividades, servicios, entre otros). El archivo de
manifiesto es un archivo XML estructurado y siempre se denomina AndroidManifiest.xml
para todas las aplicaciones. Adems de declarar los componentes, en el archivo manifiesto
se nombran las bibliotecas vinculadas a la aplicacin y se identifican los permisos que la
aplicacin requiere para su funcionamiento (Acceso a hardware, conexin a internet, entre
otros). Un ejemplo de la estructura de un AndroidManifiest.xml es el siguiente:

Figura 16. Ejemplo de un archivo manifiesto.

En la imagen se puede observar que dentro de la etiqueta application se incluyen todos


los componentes de la aplicacin. Por otra parte para adicionar permisos se hace dentro de
la etiqueta manifiest.

Para el adecuado funcionamiento de la aplicacin desarrollada, fue necesario incluir los


siguientes permisos:

62
Figura 17. Permisos necesarios para el funcionamiento de la aplicacin.

El primero permite a la aplicacin acceder a la conexin a Internet, el segundo permite a la


aplicacin acceder al hardware de localizacin (GPS), el tercero permite la realizacin de
llamadas para el servicio de clic to call. Y finalmente el ltimo permiso permite la
exportacin de informacin desde el dispositivo.

7.4.2 Interfaces de usuario. En Android una interfaz de usuario est compuesta por
jerarquas de objetos llamados vistas. Una Vista (View) es un objeto dibujable utilizado
como un elemento en el diseo de la interfaz de usuario, como un botn, una imagen, una
etiqueta de texto, entre otros. Cada uno de estos objetos es una subclase de la clase View.

Para la construccin de las interfaces de usuario, Android ofrece dos posibilidades: Ir


construyendo los objetos grficos desde cdigo Java o construir interfaces independientes
en archivos XML. La estructura general del archivo de un diseo XML para Android es
simple: Es un rbol de elementos XML, donde cada nodo es el nombre de una clase View;
de all que se pueden emplear entonces nombres de cualquier clase que extiende de View
como un elemento en el diseo XML. Esta estructura hace que se puedan construir de
forma rpida las interfaces de usuarios, utilizando una estructura ms sencilla y la sintaxis
que se puede utilizar en un diseo programtico. Este diseo est inspirado en la
programacin web donde es posible separar la presentacin de la aplicacin de la lgica
usada para recoger y llenar datos. Por esto fue que en el desarrollo de la aplicacin se opto
por utilizar la segunda opcin. Un cdigo ejemplo de una interfaz bsica es el siguiente:

63
Figura 18. Ejemplo cdigo XML de una interfaz de usuario.

En ejecucin, la interfaz anterior se muestra de la siguiente manera:

Figura 19. Vista de una interfaz de usuario en el emulador.

64
7.4.3 Flujo de informacin entre el sistema gestor de base de datos y el dispositivo.
Para el flujo normal de informacin entre el sistema gestor de base de datos y los
dispositivos Android, fue necesario implementar un servicio web. Dicho servicio se
desarrollo utilizando el lenguaje de programacin C# (C-Sharp) en el marco de trabajo de
Microsoft .NET 2.0.

Para que los dispositivos puedan consumir el servicio web, se utiliz la librera KSoap2. La
cual es una librera libre, que funciona como cliente para el consumo de servicios web en
entornos Java con limitaciones como es el caso de los Applets o de versiones mviles de
Java (J2ME).

A continuacin se presenta la estructura de la clase Conexin que se implement para la


transmisin de informacin:

- Clases utilizadas de la librera:

Figura 20. Libreras Ksoap2 utilizadas.

- Atributos de la clase:

Figura 21. Atributos de la clase conexin.

- Mtodos de la clase:
Entre los mtodos de la clase se tiene primero el constructor de la clase, en este se
inicializan los vectores nombreParametros y valorParametros, ambos vectores se
emplean para el envo de parmetros al servicio web cuando el mtodo que se necesite
as lo requiera y pueden ser accedidos desde cualquier instancia de la clase Conexin.

65
Figura 22. Mtodo constructor de la clase conexin.

Seguido se tiene al mtodo setNombreMetodo( ), el cual se utiliza para asignar el


nombre del mtodo del servicio web que se desea consumir.

Figura 23. Mtodo para asignar el nombre del mtodo a consumir del servicio web.

Despus se presenta el mtodo setSoapAction( ), en este mtodo se asigna la accin


SOAP que se va ejecutar y que corresponde a concatenar en el NAMESPACE y el
nombre del mtodo a utilizar.

Figura 24. Mtodo para asignar la accin Soap a consumir del servicio web.

Finalmente se tiene el mtodo consumirWS( ), en este se crea un SoapObject que es el


encargado de realizar la solicitud al servicio web, seguido a esto se pasan los parmetros
necesarios y despus se crea un objeto HttpTrasnportSE que gestiona la conexin a la
URL que aloja el servicio web. Por otra parte se crea un SoapPrimitive que es el
encargado de recibir la respuesta enviada por el servicio web que al final se retorna en
un objeto String.

66
Figura 25. Mtodo que se encarga de consumir el servicio web.

7.4.4 Localizacin

En la aplicacin, obtener la ubicacin geogrfica del usuario es primordial para poder


ofrecer los servicios basados en localizacin: Ofrecer informacin de lugares y productos
de inters cercanos; adems es utilizada para el registro de los lugares.

Para obtener la ubicacin geogrfica (Latitud y longitud) de un dispositivo Android a travs


del GPS, lo primero que se debe hacer es dar el permiso ACCESS_FINE_LOCATION
en el archivo manifiesto de la aplicacin. Despus en el cdigo Java se requiere un objeto
LocationManager, con este se obtiene el servicio de localizacin con el que cuenta el
dispositivo. Seguido a esto se requiere de un objeto LocationListener para poder detectar
cambios en la ubicacin del dispositivo, esto se logra implementando el mtodo
onLocationChanged. Todo este proceso se realiza dentro de un hilo, debido a que no
siempre con el envo de la primera solicitud de localizacin se obtiene respuesta, de all que
la clase en la que se implementa dicho proceso debe implementar la interfaz Runnable.

67
A continuacin se muestra el mtodo run() que se ejecuta cuando se solicita la ubicacin
geogrfica del usuario:

Figura 26. Mtodo run para solicitar la localizacin del dispositivo.

Hasta que no se obtenga una respuesta en el LocationListener de la solicitud de localizacin


no se detiene el hilo. A continuacin se muestra el LocationListener implementado para
detectar el cambio de la localizacin; cuando una nueva localizacin es detectada, se
almacena en un objeto Location del cual se puede obtener en variables tipo double tanto la
latitud como la longitud que corresponden a un punto geogrfico, para esto se aplican los
mtodos getLatitude() y getLongitude().

68
Figura 27. Listener encargado de recibir el cambio de localizacin del dispositivo.

Una vez obtenida la ubicacin geogrfica del dispositivo, en la aplicacin esta se utiliza
para mostrar al usuario su ubicacin en un mapa, o bien mostrar los lugares y productos
cercanos.

Para el uso de mapas en la aplicacin se utilizo el API provisto por Google para tal fin.
Como la librera Maps no pertenece a las libreras estndar de Android, dicha librera se
debe relacionar en el elemento activity del archivo de manifiesto as:

<uses-library android:name="com.google.android.maps" />

En la parte de diseo de la aplicacin (en el archivo XML), el nodo raz contenedor del
mapa ser del tipo com.google.android.maps.MapView as:

69
Figura 28. Estructura XML de un objeto mapa.

El atributo android: apiKey tiene la llave para el API Maps para la aplicacin, este es
requerido para recibir los datos del mapa. La inscripcin al servicio es gratuita y obtener el
key para el API Maps no conlleva mucho tiempo; para esto basta con realizar lo siguiente:

1. Se copia el archivo debug.Keystore que se encuentra en la carpeta .android que se cre en


Mis Documentos a la hora de instalar el SDK, en C:\Android.

2. Despus se extrae la huella digital MD5 correspondiente a dicho archivo as:

Figura 29. Comandos para obtener la huella digital del archivo debug.Keystore

1. Ahora se ingresa al sitio web: http://code.google.com/intl/es-ES/android/maps-api-


signup.html y se pega el MD5 obtenido en la paso anterior.

2. Se aceptan las condiciones y se da clic en Generate Key.

En el cdigo Java, la clase que controla el mapa debe extender de MapActivity, y en el mtodo
onCreate se carga la vista del mapa y se adicionan los controles de zoom con el mtodo
setBuiltInZoomControls( ). A continuacin se muestra un ejemplo:

70
Figura 30. Clase ejemplo de un MapActivity.

Para adicionar un punto en el mapa es necesario crear un marcador, para ello se crea un
GeoPoint con las coordenadas deseadas, se personaliza su visualizacin, se agrega en el
mapa y se centra el mapa en dicho punto. El siguiente ejemplo muestra como se adiciona
un lugar en un mapa.

Figura 31. Clase ejemplo de un MapActivity.

Por otra parte la localizacin del usuario tambin es usada a la hora de registrar lugares,
puesto que para este proceso el usuario proporciona solo la informacin bsica del lugar
(Nombre, Categora y Telfono) y la aplicacin se encarga de obtener la direccin del
lugar, esto se logra con la localizacin del dispositivo.

Para tal fin se uso la clase Geocoder, la cual es una clase para el manejo
de geocodificacin y geocodificacin inversa. La Geocodificacin es
el proceso de transformar una direccin u otra descripcin de un lugar en un par de

71
coordenadas (Latitud y Longitud). La Geocodificacin inversa es el proceso
de transformacin de un par de coordenadas en una direccin.

A continuacin se muestra cmo usar dicha clase. Primero se crea el objeto GeoCoder,
seguido a esto se crea una lista en la cual se almacenaran las posibles direcciones obtenidas
por el mtodo getFromLocation( ) que recibe como parmetros la latitud, la longitud y la
cantidad de formatos de direcciones que se desean obtener.

Figura 32. Uso de la clase Geocoder.

Otro uso que se da a la localizacin del usuario en la aplicacin es la bsqueda de lugares y


productos cercanos, para esto es necesario el clculo de la distancia entre el usuario y los
lugares de inters. Dicho clculo se realizo mediante la implementacin de las frmulas de
Bessell o teorema del coseno de la trigonometra esfrica.

A continuacin se muestra el funcionamiento de dicho teorema de acuerdo a la


presentacin de Chinea (S.F.) en su artculo Posicionndonos en el globo terrestre.

72
Figura 33. Calculo de la distancia entre dos puntos sobre la tierra.

Sean los puntos P y P' dados por sus coordenadas:

La distancia entre dos puntos, P y P' de la superficie de la Tierra es la longitud del arco de
crculo mximo comprendido entre el punto P y el punto P'. Para hacer estos clculos se
aproxima el elipsoide terrestre por la forma esfrica, y se calcula el arco de crculo mximo
entre ambos puntos mediante la frmula de los cosenos de la trigonometra esfrica.

Sea ahora el tringulo esfrico P-N-P' formado por ambos puntos y el polo Norte. Se
conocen los lados PN= y P'N= , as como el ngulo diedro PNP'= - . Por tanto,
aplicando el teorema de los cosenos de la geometra esfrica se puede calcular el tercer lado
de dicho tringulo a partir del arco de crculo mximo entre ambos puntos:

Para calcular la distancia entre ambos puntos se emplea la proporcin de 360 a 40000
kilmetros con la del arco aPP' a su longitud dPP'.

Se obtiene as la siguiente frmula aproximada:

73
7.5 VISTAS DE LA APLICACIN EN FUNCIONAMIENTO

Figura 34. Vista principal de la aplicacin Figura 35. Vista de la ubicacin


despus de identificar al usuario. geogrfica del usuario en un mapa.

Figura 36. Vista de la bsqueda de la Figura 37. Vista de la bsqueda de


seal GPS. lugares.

74
Figura 38. Vista del formulario para Figura 39. Vista de un lugar.
registrar lugares.

Figura 40. Vista de la galera de Figura 41. Vista de la bsqueda de


imgenes. productos.

75
Figura 42. Vista del formulario para el Figura 43. Vista de un producto.
registro de productos.

Figura 44. Vista de los contactos. Figura 45. Vista de la bsqueda de


contactos.

76
Figura 46. Vista de la conexin a Figura 47. Vista del formulario para
Facebook para buscar contactos. invitar nuevos usuarios.

Figura 48. Vista de las solicitudes de Figura 49. Vista del formulario de
Amistad. registro de usuarios.

77
8. CONCLUSIONES

El enfoque de red social que se le dio a la aplicacin apoya el crecimiento del mercado
de tecnologas mviles que permiten a las personas un nivel ms elevado de
comunicacin y de acceso inmediato a informacin de inters.

A travs de las publicaciones que se pueden realizar desde la aplicacin, se crea un


acercamiento entre los usuarios y los proveedores de los servicios y productos utilizados
por ellos.

El aprovechamiento del hardware de localizacin y de conectividad inalmbrica en la


aplicacin permite ofrecer a los usuarios servicios de informacin de acuerdo a su
ubicacin geogrfica.

El respaldo por parte de los fabricantes con el que cuenta la plataforma Android, hace
que esta se convierta en una de las plataformas con mayor futuro de crecimiento y
expansin en la industria de los dispositivos mviles y brinda a los desarrolladores una
gran oportunidad de explorar e innovar nuevos desarrollos gracias a su filosofa libre.
Esto se ve reflejado en el Android Market donde actualmente (finales de 2010) hay
disponibles ms de cien mil aplicaciones.

78
9. RECOMENDACIONES

Con el fin de obtener un mejor reconocimiento y debido a la diversidad de sistemas


operativos mviles para Smartphones disponibles en el mercado: Iphone OS, BlackBerry
OS, Windows Phone, Symbian, entre otros; se recomienda implementar la aplicacin
desarrollada en este trabajo para las plataformas que tienen mayor acogida entre los
usuarios.

Por otra parte se sugiere como un futuro desarrollo, integrar funcionalidades de realidad
aumentada a la aplicacin para complementar los servicios ofrecidos y proporcionar al
usuario una mejor experiencia con el uso de la aplicacin aprovechando al mximo los
recursos provistos por los dispositivos.

79
BIBLIOGRAFA

ANDROID. What is Android?. [en lnea]. s.n.: Google Inc., 2007. [Citado el 6 de Agosto
de 2010]. Disponible en internet: <http://developer.android.com/guide/basics/what-is-
android.html>

ARANAZ, Jaime. Desarrollo de aplicaciones para dispositivos mviles sobre la plataforma


Android de Google. [en lnea]. [Madrid, Espaa]: Universidad Carlos III de Madrid, Enero
de 2009. [Citado el 9 de Agosto de 2010]. Disponible en internet: <http://e-
archivo.uc3m.es/bitstream/10016/6506/1/PFC_Jaime_Aranaz_Tudela_2010116132629.pdf
>

ARIADNA CDI. Presentacin centro de desarrollo e investigacin. Manizales, Colombia.


2009. Presentacin power point.

BALAGUERO, Judit. Estudio de la plataforma Android. [en lnea]. [Barcelona, Espaa]:


Universidad Politcnica de Catalunya, Julio de 2008. [Citado el 9 de Agosto de 2010].
Disponible en internet: <http://upcommons.upc.edu/pfc/handle/2099.1/5350>

CASTAEDA, Csar. Middleware para la definicin e implementacin de servicios


genricos independientes de la plataforma orientado a dispositivos mviles. [en lnea].
[Bogot, Colombia]: Pontificia Universidad Javeriana, Diciembre de 2009. [Citado el 2 de
Agosto de 2010]. Disponible en internet:
<http://www.javeriana.edu.co/biblos/tesis/ingenieria/tesis270.pdf>

CASTAEDA, Hernn, GOMZ, Juan y LEAL, Alexander. Proveedor de servicios de


localizacin para dispositivos mviles. [en lnea]. [Medelln, Colombia]: Universidad Santo
Toms, Junio de 2006. [Citado el 2 de Agosto de 2010]. Disponible en internet en:
<http://pisis.unalmed.edu.co/avances/archivos/ediciones/2006/castaneda_etal06.pdf>

CHICO, Adolfo. Diseo y desarrollo de un sistema de posicionamiento en interiores basado


en Wi-Fi con tecnologa Android. [en lnea]. [Madrid, Espaa]: Universidad Carlos III de
Madrid, Diciembre de 2009. [Citado el 9 de Agosto de 2010]. Disponible en internet:
<http://e-archivo.uc3m.es/handle/10016/8819>

80
CHINEA, Carlos. Posicionndonos en el globo terrestre. [en lnea]. s.n., s.f. [Citado el 3 de
Enero de 2011]. Disponible en internet:
<http://personales.ya.com/casanchi/ast/latierra.htm>

MILIAN, Vladimir. Propuesta de framework para servicios basados en localizacin en


Cuba. [en lnea]. [La Habana, Cuba]: Universidad de las ciencias informticas, Mayo de
2010. [Citado el 7 de Diciembre de 2010]. Disponible en internet:
<http://usbvirtual.usbcali.edu.co/ijpm/images/stories/documentos/v1n2/003.pdf>

MOBILE ENTERTAINMENT. Mobile Entertainment Guide to Android. [en lnea]. s.n:


Mobile Entertainment, s.f. [Citado el 9 de Agosto de 2010]. Disponible en internet:
<http://www.mobile-ent.biz/news/36426/Mobile-Entertainments-Guide-to-Android>

PREZ, Ivan. Estudio de la plataforma de software Android para el desarrollo de una


aplicacin social. [en lnea]. [Barcelona, Espaa]: Universidad Politcnica de Catalunya,
Febrero de 2009. [Citado el 9 de Agosto de 2010]. Disponible en internet:
<http://upcommons.upc.edu/pfc/handle/2099.1/6752>

PRENSA VALENCIANA MEDIA. Pros y Contras de las redes sociales. [en lnea].
[Espaa]: Prensa Valenciana media, s.f. [Citado el 6 de Agosto de 2010]. Disponible en
internet: <http://mas.levante-emv.com/especiales/redes-sociales/redes-sociales/52-pros-y-
contras-de-las-redes-sociales.html>

SCHILLER, Jochen y VOISARD, Agns. Location-based services. [en lnea]. [San


Francisco, Estados Unidos]: Elsevier, 2004. [citado el 6 de Diciembre de 2010]. Disponible
en internet: <http://books.google.com.co/books?id=wj19b5wVfXAC&>

SHUKLA, Reena. LBS, the ingredients and the alternatives. [en lnea]. [India]: GIS
Development, s.f. [Citado el 9 de Diciembre de 2010]. Disponible en internet:
<http://www.gisdevelopment.net/technology/lbs/techlbs006.htm>

SIMPLIGILITY TECHNOLOGIES INC. Ksoap2-Android. [en lnea]. s.n., 2006. [Citado


el 13 de Diciembre de 2010]. Disponible en internet: <http://code.google.com/p/ksoap2-
android/>

81
TSIRULNIK, Giselle. Total mobile LBS revenues to reach $12.7B by 2014. [en lnea].
[Estados Unidos]: Mobile Marketer, Mayo de 2010. [Citado el 13 de Agosto de 2010].
Disponible en internet: http://www.mobilemarketer.com/cms/news/search/6309.html

82
ANEXO A. ESPECIFICACIN DE LOS CASOS DE USO DEL MDULO DE
GESTIN DE USUARIOS

Id: CU-03
Nombre: Recordar la contrasea
Descripcin: Permite al usuario recordar su contrasea.
Actores: Usuario registrado
Precondiciones: El usuario se debe de encontrar registrado en la aplicacin.
Poscondiciones: Se enva un mail al usuario con su nueva contrasea.
Flujo normal de eventos
1. El actor ingresa su email.
2. El actor selecciona la opcin recordar contrasea.
3. El sistema verifica que el email ingresado pertenezca a un usuario registrado.
4. Si el email es vlido, el sistema enva un mail con una nueva contrasea.
5. Se notifica al usuario acerca del envo del mail.
Flujos alternos:

Excepciones:
En el paso 2, si el usuario no se encuentra registrado, el sistema muestra una
notificacin en la que indica que el email ingresado no se encuentra registrado.

Tabla 13. Especificacin del caso de uso recordar la contrasea.

Id: CU-04
Nombre: Ver el propio perfil de usuario
Descripcin: Permite al usuario visualizar su perfil
Actores: Usuario identificado
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: Se muestra el perfil del usuario identificado.
Flujo normal de eventos

1. El actor selecciona la opcin perfil.


2. El sistema carga la informacin del usuario identificado: Nombre, Edad, email,
visitas a lugares y comentarios realizados, adems de mostrar su fotografa.
Flujos alternos:
En el paso 2, se presenta la opcin de visualizar en una lista los premios
obtenidos por el usuario por usar la aplicacin.
En el paso 2, se presenta la opcin de visualizar la ubicacin geogrfica del
usuario en un mapa.
Excepciones:
En el paso 2, si no se puede obtener la ubicacin geogrfica del usuario o no se

83
puede cargar su fotografa, se muestra la respectiva notificacin.

Tabla 14. Especificacin del caso de uso ver el propio perfil de usuario.

Id: CU-05
Nombre: Editar la informacin del usuario
Descripcin: Permite al usuario editar su informacin personal.
Actores: Usuario identificado
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: La informacin del usuario se actualizo correctamente.
Flujo normal de eventos
1. El actor selecciona la opcin editar en la vista del perfil.
2. El sistema carga un formulario con la informacin del usuario: nombre,
apellido, telfono, fecha de nacimiento, gnero y email.
3. El actor realiza los cambios en la informacin.
4. El actor selecciona la opcin actualizar.
5. El sistema verifica que la nueva informacin sea vlida.
6. El sistema almacena la nueva informacin.
7. Se muestra la notificacin de que la actualizacin fue exitosa.
Flujos alternos:
3.1 El usuario puede seleccionar una fotografa para su perfil.
3.2 El usuario selecciona la opcin de cambiar contrasea.
3.2.1 El usuario ingresa su contrasea actual, su nueva contrasea y la
verificacin de la nueva contrasea.
3.2.2 El usuario selecciona cambiar contrasea.
3.2.3 El sistema verifica que la contrasea actual sea correcta y que la nueva
contrasea sea igual a la verificacin de la nueva contrasea.
3.2.4 Si los datos son vlidos se actualiza la contrasea.
Excepciones:
En el paso 5, si la nueva informacin es invlida, el sistema muestra la
respectiva notificacin.
En el paso 3.2.3, si hay alguna inconsistencia el sistema muestra la respectiva
notificacin.

Tabla 15. Especificacin del caso de uso editar la informacin del usuario.

Id: CU-06
Nombre: Salir de la aplicacin
Descripcin: Permite al usuario cerrar sesin.
Actores: Usuario identificado

84
Precondiciones: El usuario debe de estar identificado.
Poscondiciones: El usuario sale de la aplicacin correctamente.
Flujo normal de eventos
1. El actor selecciona del men la opcin salir.
2. El sistema destruye la sesin del usuario.
3. El sistema muestra el formulario de ingreso.
Flujos alternos:

Excepciones:

Tabla 16. Especificacin del caso de uso salir de la aplicacin.

85
ANEXO B. ESPECIFICACIN DE LOS CASOS DE USO DEL MDULO DE LA
GESTIN DE LUGARES

Id: CU-09
Nombre: Ver un lugar
Descripcin: Permite al usuario ver la informacin de un lugar.
Actores: Usuario identificado
Precondiciones: Se debe buscar antes el lugar. CU-08
Poscondiciones: Se muestra la informacin del lugar.
Flujo normal de eventos
1. El actor selecciona un lugar de la lista mostrada al realizar una bsqueda.
2. El sistema muestra un formulario con la informacin del lugar: Nombre,
categora, direccin, ciudad, pas, especialidad, calificacin.
Flujos alternos:
En el paso 2, se presenta la opcin de visualizar en una lista los premios
otorgados al lugar.
En el paso 2, se presenta la opcin de visualizar la ubicacin geogrfica del
lugar en un mapa.
En el paso 2, se presenta la opcin de visualizar los comentarios que los
usuarios han realizado acerca del lugar.
En el paso 2, se presenta la opcin de visualizar fotografas del lugar.
Excepciones:

Tabla 17. Especificacin del caso de uso ver un lugar.

Id: CU-10
Nombre: Editar un lugar
Descripcin: Permite al usuario editar la informacin de un lugar.
Actores: Usuario identificado
Precondiciones: Se debe ver antes un lugar CU-08 y se debe ser el usuario que
registro el lugar.
Poscondiciones: Se actualiza la informacin del lugar.
Flujo normal de eventos
1. El actor selecciona la opcin editar en la vista del lugar.
2. El sistema carga un formulario con la informacin del lugar: Categora,
nombre, telfono, promocin, especialidad, ubicacin.
3. El actor realiza los cambios en la informacin.
4. El actor selecciona la opcin actualizar.
5. El sistema verifica que la nueva informacin sea vlida.
6. El sistema almacena la nueva informacin.

86
7. Se muestra la notificacin de que la actualizacin fue exitosa.
Flujos alternos:
3.1 El usuario puede seleccionar 2 fotografas para el lugar.
3.2 El usuario puede asignar un producto como especialidad del lugar.
3.3 El usuario puede cambiar la ubicacin del lugar por su ubicacin actual.
3.3.1 Si el sistema no puede obtener la ubicacin geogrfica del usuario se
muestra la notificacin y se mantiene la ubicacin anterior del lugar.
Excepciones:
En el paso 5, si la nueva informacin es invlida, el sistema muestra la
respectiva notificacin.

Tabla 18. Especificacin del caso de uso editar un lugar.

Id: CU-11
Nombre: Publicar un comentario de un lugar
Descripcin: Permite al usuario publicar un comentario de un lugar.
Actores: Usuario identificado
Precondiciones: Se debe ver un lugar previamente CU-08
Poscondiciones: Se adiciona un comentario a un lugar.
Flujo normal de eventos
1. El actor selecciona la opcin ver comentarios en la vista del lugar.
2. El actor selecciona la opcin nuevo comentario.
3. El actor ingresa el comentario que desea publicar.
4. El actor selecciona la opcin adicionar.
5. El sistema valida la longitud del comentario
6. El sistema almacena el comentario.
7. El sistema notifica el xito de la publicacin
8. El sistema redirige a la lista de comentarios del lugar.
Flujos alternos:

Excepciones:
En el paso 5, si el comentario no es vlido se muestra la respectiva
notificacin.

Tabla 19. Especificacin del caso de uso publicar un comentario de un lugar.

Id: CU-12
Nombre: Publicar una visita en un lugar
Descripcin: Permite al usuario decir que ha visitado un lugar.
Actores: Usuario identificado
Precondiciones: Se debe ver un lugar previamente CU-08
Poscondiciones: Se registra la visita del usuario a un lugar.

87
Flujo normal de eventos
1. El actor selecciona la opcin estoy aqu en la vista de un lugar.
2. El sistema obtiene la ubicacin geogrfica del usuario.
3. El sistema compara la ubicacin geogrfica del usuario con la del lugar.
4. Si las ubicaciones geogrficas corresponden la visita es almacenada.
5. El sistema notifica el xito de la publicacin.
Flujos alternos:

Excepciones:
En el paso 2, si el sistema no puede obtener la ubicacin geogrfica del usuario
se muestra la notificacin y se cancela la publicacin.
En el paso 4, si las ubicaciones geogrficas no corresponden se muestra la
respectiva notificacin y se cancela la publicacin.

Tabla 20. Especificacin del caso de uso publicar una visita en un lugar.

Id: CU-13
Nombre: Calificar un lugar.
Descripcin: Permite al usuario valorar en una escala de 1 a 5 a un lugar.
Actores: Usuario identificado
Precondiciones: Se debe ver el lugar previamente CU-08
Poscondiciones: Se actualiza la calificacin de un lugar de acuerdo al nmero de
votos.
Flujo normal de eventos
1. El actor selecciona un valor entre 1 y 5.
2. El actor selecciona la opcin votar.
3. El sistema verifica que el usuario no haya calificado antes el lugar.
4. Si la validacin es vlida, el sistema promedia la calificacin del lugar
teniendo en cuenta la cantidad de votos del lugar.
5. El sistema actualiza la calificacin del lugar.
6. El sistema notifica el xito de la operacin.
Flujos alternos:

Excepciones:
En el paso 3, si el usuario ya califico el lugar antes, se muestra la respectiva
notificacin y se cancela la operacin.

Tabla 21. Especificacin del caso de uso calificar un lugar.

88
ANEXO C. ESPECIFICACIN DE LOS CASOS DE USO DEL MDULO DE LA
GESTIN DE PRODUCTOS

Id: CU-16
Nombre: Ver un producto
Descripcin: Permite al usuario ver la informacin de un producto
Actores: Usuario identificado
Precondiciones: Se debe buscar antes el producto. CU-15
Poscondiciones: Se muestra la informacin del producto.
Flujo normal de eventos
1. El actor selecciona un producto de la lista mostrada al realizar una bsqueda.
2. El sistema muestra un formulario con la informacin del producto: Nombre,
categora, usuario que lo pblico, calificacin.
Flujos alternos:
En el paso 2, se presenta la opcin de visualizar los comentarios que los
usuarios han realizado acerca del producto.
En el paso 2, se presenta la opcin de visualizar fotografas del producto.
En el paso 2, se presenta la opcin de visualizar una lista de los lugares en
donde est disponible el producto y adicionar ms lugares a dicha lista.
Excepciones:

Tabla 22. Especificacin del caso de uso ver un producto.

Id: CU-17
Nombre: Editar un producto
Descripcin: Permite al usuario editar la informacin de un producto
Actores: Usuario identificado
Precondiciones: Se debe ver antes el producto. CU-16 y se debe ser el usuario
que registro el producto.
Poscondiciones: Se actualiza la informacin del producto.
Flujo normal de eventos
1. El actor selecciona la opcin editar en la vista del producto.
2. El sistema carga un formulario con la informacin del producto: Categora,
nombre, descripcin.
3. El actor realiza los cambios en la informacin.
4. El actor selecciona la opcin actualizar.
5. El sistema verifica que la nueva informacin sea vlida.
6. El sistema almacena la nueva informacin.
7. Se muestra la notificacin de que la actualizacin fue exitosa
Flujos alternos:

89
3.1 El usuario puede seleccionar 2 fotografas para el lugar.
Excepciones:
En el paso 5, si la nueva informacin es invlida, el sistema muestra la
respectiva notificacin.

Tabla 23. Especificacin del caso de uso editar un producto.

Id: CU-18
Nombre: Publicar un comentario de un producto
Descripcin: Permite al usuario publicar un comentario de un producto
Actores: Usuario identificado
Precondiciones: Se debe ver un producto previamente. CU-16
Poscondiciones: Se adiciona un comentario a un producto.
Flujo normal de eventos
1. El actor selecciona la opcin ver comentarios en la vista del producto.
2. El actor selecciona la opcin nuevo comentario.
3. El actor ingresa el comentario que desea publicar.
4. El actor selecciona la opcin adicionar.
5. El sistema valida la longitud del comentario
6. El sistema almacena el comentario.
7. El sistema notifica el xito de la publicacin.
8. El sistema redirige a la lista de comentarios del producto.
Flujos alternos:

Excepciones:
En el paso 5, si el comentario no es vlido se muestra la respectiva
notificacin.

Tabla 24. Especificacin del caso de uso publicar un comentario de un producto.

Id: CU-19
Nombre: Calificar un producto.
Descripcin: Permite al usuario valorar en una escala de 1 a 5 a un producto.
Actores: Usuario identificado
Precondiciones: Se debe ver un producto previamente. CU-16
Poscondiciones: Se actualiza la calificacin de un producto de acuerdo al nmero
de votos.
Flujo normal de eventos
1. El actor selecciona un valor entre 1 y 5.
2. El actor selecciona la opcin votar.
3. El sistema verifica que el usuario no haya calificado antes el producto.

90
4. Si la validacin es vlida, el sistema promedia la calificacin del producto
teniendo en cuenta la cantidad de votos del producto.
5. El sistema actualiza la calificacin del producto.
6. El sistema notifica el xito de la operacin
Flujos alternos:

Excepciones:
En el paso 3, si el usuario ya califico el producto antes, se muestra la respectiva
notificacin y se cancela la operacin.

Tabla 25. Especificacin del caso de uso calificar un producto.

91
ANEXO D. ESPECIFICACIN DE LOS CASOS DE USO DEL MDULO DE
CONTACTOS

Id: CU-22
Nombre: Invitar a nuevos usuarios
Descripcin: Permite al usuario invitar a otros usuarios a usar la aplicacin
Actores: Usuario Identificado
Precondiciones: El usuario debe de estar identificado
Poscondiciones: Se enva un email con la invitacin para usar la aplicacin.
Flujo normal de eventos
1. El actor selecciona la opcin amigos.
2. El actor selecciona la opcin buscar.
3. El actor selecciona la opcin invitar.
4. El sistema carga un formulario para enviar invitaciones.
5. El actor ingresa los correos electrnicos de las personas a las que desea invitar
separados por coma.
6. El actor selecciona la opcin enviar.
7. El sistema vlida los correos electrnicos ingresados por el usuario.
8. Si la validacin tiene xito, el sistema enva una invitacin con informacin de
la aplicacin a dichos correos electrnicos.
Flujos alternos:

Excepciones:
En el paso 7, si los correos electrnicos ingresados poseen errores, el sistema
muestra la respectiva notificacin.

Tabla 26. Especificacin del caso de uso invitar a nuevos usuarios.

Id: CU-23
Nombre: Ver el perfil de un amigo.
Descripcin: Permite a un usuario ver el perfil de un amigo.
Actores: Usuario Identificado
Precondiciones: El usuario debe de estar identificado
Poscondiciones: Se muestra la informacin de un amigo.
Flujo normal de eventos
1. El actor selecciona la opcin amigos.
2. El sistema muestra la lista de amigos del usuario.
3. El actor selecciona un amigo de la lista mostrada.
4. El sistema carga un formulario con la informacin del amigo seleccionado:
nombre, edad, email, visitas a lugares y comentarios realizados, adems de
mostrar la fotografa.

92
Flujos alternos:
En el paso 4, se presenta la opcin de visualizar en una lista los premios
obtenidos por el amigo por usar la aplicacin.
Excepciones:

Tabla 27. Especificacin del caso de uso ver el perfil de un amigo.

93
ANEXO E. DIAGRAMAS DE SECUENCIA PARA LOS CASOS DE USO DEL MDULO DE GESTIN DE
USUARIOS

Figura 50. Diagrama de secuencia para el caso de uso Recordar contrasea.

94
Figura 51. Diagrama de secuencia para el caso de uso ver el perfil del usuario.

95
Figura 52. Diagrama de secuencia para el caso de uso Editar la informacin del usuario.

96
Figura 53. Diagrama de secuencia para el caso de uso salir de la aplicacin.

97
ANEXO F. DIAGRAMAS DE SECUENCIA PARA LOS CASOS DE USO DEL MDULO DE GESTIN DE
LUGARES

Figura 54. Diagrama de secuencia para el caso de uso ver un lugar.

98
Figura 55. Diagrama de secuencia para el caso de uso editar un lugar.

99
Figura 56. Diagrama de secuencia para el caso de uso publicar un comentario de un lugar.

100
Figura 57. Diagrama de secuencia para el caso de uso publicar una visita en un lugar.

101
Figura 58. Diagrama de secuencia para el caso de uso calificar un lugar.

102
ANEXO G. DIAGRAMAS DE SECUENCIA PARA LOS CASOS DE USO DEL MDULO DE GESTIN DE
PRODUCTOS

Figura 59. Diagrama de secuencia para el caso de uso ver un producto.

103
Figura 60. Diagrama de secuencia para el caso de uso editar un producto.

104
Figura 61. Diagrama de secuencia para el caso de uso publicar un comentario de un producto.

105
Figura 62. Diagrama de secuencia para el caso de uso calificar un producto.

106
ANEXO H. DIAGRAMAS DE SECUENCIA PARA LOS CASOS DE USO DEL MDULO DE CONTACTOS

Figura 63. Diagrama de secuencia para el caso de uso invitar nuevos usuarios.

107
Figura 64. Diagrama de secuencia para el caso de uso ver el perfil de un amigo.

108
ANEXO I. CLASES ENTIDAD CON ATRIBUTOS Y MTODOS

Figura 66. Clase Categora de un lugar

Figura 65. Clase amistad

Figura 67. Clase Categora de un Figura 68. Clase Comentario de un lugar.


producto.

109
Figura 70. Clase Invitacin.

Figura 69. Clase Comentario de un


producto.

Figura 71. Clase Lugar.

110
Figura 72. Clase Lugares donde est disponible un producto.

Figura 74. Clase Premios dados a un


Figura 73. Clase Premio para los lugar.
usuarios.

Figura 76. Clase Premios dados a un


usuario.

Figura 75. Clase Premio para los lugares.

111
Figura 77. Clase Producto.

Figura 78. Clase Usuario.

Figura 79. Clase Visitas realizadas por un Figura 80. Clase Votos dados a los
usuario. lugares.

Figura 81. Clase Votos dados a los productos.

112

También podría gustarte