Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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:
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
3
A mi familia por su apoyo incondicional.
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
8
LISTA DE FIGURAS
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.
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).
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.
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
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 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.
17
3. OBJETIVOS
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.
Implementar el servicio web que ser el puente entre la base de datos y la aplicacin
Android.
18
4. CONTEXTO DEL PROYECTO
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.
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
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.
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).
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).
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.
23
5.2.1.1 Arquitectura de Android:
- 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.
- FreeType, permite trabajar de forma rpida y sencilla con distintos tipos de fuentes.
- SQLite, ofrece un poderoso y ligero motor de base de datos relacional disponible para
todas las aplicaciones.
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.
- 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).
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.
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.
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.
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
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.
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:
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.
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).
Pull
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
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:
- 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.
- 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.
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.
32
5.2.2 Sistemas de informacin geogrfica (SIG)
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.
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
36
6.2 METODOLOGA
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.
DB Designer
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.
.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.
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.
Para que el Eclipse pueda compilar y construir cdigo para dispositivos Android, es necesario
adicionar un complemento.
40
7. RESULTADOS
7.1 REQUISITOS
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:
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.2 Especificacin de los casos de uso del sistema.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
61
7.4 IMPLEMENTACIN
62
Figura 17. Permisos necesarios para el funcionamiento de la aplicacin.
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.
63
Figura 18. Ejemplo cdigo XML de una interfaz de usuario.
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).
- Atributos de la clase:
- 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.
Figura 23. Mtodo para asignar el nombre del mtodo a consumir del servicio web.
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.
7.4.4 Localizacin
67
A continuacin se muestra el mtodo run() que se ejecuta cuando se solicita la ubicacin
geogrfica del usuario:
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:
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:
Figura 29. Comandos para obtener la huella digital del archivo debug.Keystore
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.
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.
72
Figura 33. Calculo de la distancia entre dos puntos sobre la tierra.
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'.
73
7.5 VISTAS DE LA APLICACIN EN FUNCIONAMIENTO
74
Figura 38. Vista del formulario para Figura 39. Vista de un lugar.
registrar lugares.
75
Figura 42. Vista del formulario para el Figura 43. Vista de un producto.
registro de productos.
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.
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
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>
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>
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>
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>
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.
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
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:
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:
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.
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.
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.
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:
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.
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.
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.
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.
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:
93
ANEXO E. DIAGRAMAS DE SECUENCIA PARA LOS CASOS DE USO DEL MDULO DE GESTIN DE
USUARIOS
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
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
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
109
Figura 70. Clase Invitacin.
110
Figura 72. Clase Lugares donde est disponible un producto.
111
Figura 77. Clase Producto.
Figura 79. Clase Visitas realizadas por un Figura 80. Clase Votos dados a los
usuario. lugares.
112