Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ttulo
Director/es
Departamento
Ingeniera Mecnica
Curso Acadmico
2012-2013
Desarrollo de una aplicacin mvil cliente-servidor basada en Android para la
configuracin y control de parmetros de un vehculo particular, proyecto fin de
carrera
de David Ruiz Urraca, dirigido por Francisco Javier Martnez de Pisn Ascacbar (publicado
por la Universidad de La Rioja), se difunde bajo una Licencia
Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.
Permisos que vayan ms all de lo cubierto por esta licencia pueden solicitarse a los
titulares del copyright.
El autor
Universidad de La Rioja, Servicio de Publicaciones, 2013
publicaciones.unirioja.es
E-mail: publicaciones@unirioja.es
UNIVERSIDAD
DE LA RIOJA
2
PFC David Ruiz Urraca
Resumen
En la presente memoria se especifican y detallan todos los pasos que el alumno ha
realizado, desde que se propuso realizar una aplicacin Android como proyecto fin de
carrera, hasta que esta aplicacin es totalmente funcional en el dispositivo de
desarrollo y pruebas.
3
PFC David Ruiz Urraca
4
PFC David Ruiz Urraca
Agradecimientos
Muchas gracias
a mis padres, por haberme proporcionado una buena educacin y haberme apoyado
siempre.
a mis amigos, que siempre han credo en m, incluso en los momentos malos.
a todos los profesores que me han enseado a lo largo de toda mi vida, porque
gracias a ellos he adquirido todos los conocimientos que ahora tengo.
a todas aquellas personas que de un modo u otro han influido en mi vida, puesto
que gracias a ellos, soy la persona que soy.
5
PFC David Ruiz Urraca
6
PFC David Ruiz Urraca
ndice de contenidos
1 Introduccin................................................................................................................. 11
1.1 Reflexin inicial ................................................................................................ 12
1.2 Motivacin ....................................................................................................... 12
2 Documento de Objetivos de Proyecto ........................................................................ 13
2.1 Objetivos ............................................................................................................... 14
2.2 Descripcin....................................................................................................... 14
2.3 Justificacin ...................................................................................................... 14
2.4 Alcance ............................................................................................................. 15
2.5 Entregables finales ........................................................................................... 15
2.6 Personal implicado ........................................................................................... 15
2.7 Riesgos ............................................................................................................. 15
2.7.1 Deteccin de posibles riesgos .................................................................. 15
2.7.2 Planes de contingencia ............................................................................. 16
2.8 Esquema de descomposicin de tareas ........................................................... 18
2.8.1 Gestin del proyecto: ............................................................................... 19
2.8.2 Formacin ................................................................................................. 20
2.8.3 Anlisis ...................................................................................................... 20
2.8.4 Diseo ....................................................................................................... 20
2.8.5 Construccin ............................................................................................. 21
2.8.6 Pruebas ..................................................................................................... 21
2.8.7 Otra documentacin................................................................................. 22
2.9 Tecnologas a utilizar........................................................................................ 22
2.9.1 Servidor..................................................................................................... 22
2.9.2 Aplicacin mvil ........................................................................................ 23
2.9.3 Simulador del vehculo ............................................................................. 24
2.9.4 Comunicacin ........................................................................................... 24
2.9.5 Sistema operativo de desarrollo............................................................... 24
2.9.6 IDE ............................................................................................................. 24
2.9.7 Generacin de documentacin ................................................................ 24
7
PFC David Ruiz Urraca
8
PFC David Ruiz Urraca
9
PFC David Ruiz Urraca
10
PFC David Ruiz Urraca
1 Introduccin
11
PFC David Ruiz Urraca
1.2 Motivacin
En estos tiempos tan cambiantes, la informtica se ha convertido en una especialidad
en la que los sujetos no pueden dejar de aprender nuevas tecnologas, lenguajes y
plataformas. Comparando el ndice de adopcin de los ordenadores personales que
empez en la dcada de los 70 hasta hoy, con el ndice de adopcin de telefona mvil
y el ndice de acceso a internet en ambas plataformas, se observa una clara tendencia
en su uso que indica que cada vez ms, la telefona mvil est desbancando al clsico
ordenador de sobremesa o porttil.
Algunos analistas denominan esta poca, la poca post-pc aunque este es un trmino
demasiado aventurado puesto que estos dispositivos en movilidad de momento no
tienen la potencia ni las prestaciones suficientes como para poder desbancar por
completo al ordenador clsico de sobremesa/porttil, aunque si que son un buen
sustituto para ciertas tareas para las que antes el equipo tradicional era la nica
alternativa viable.
12
PFC David Ruiz Urraca
2 Documento de
Objetivos de
Proyecto
13
PFC David Ruiz Urraca
Objetivos
Descripcin
Justificacin
Alcance
Entregables finales
Personal implicado
Riesgos
Esquema de descomposicin de tareas
Tecnologas a utilizar
Estimacin de tiempo
Calendario de trabajo
Ciclo de vida
2.1 Objetivos
El objetivo del proyecto es poder disponer de una aplicacin para el seguimiento y la
gestin de un vehculo o flota de vehculos, accesible all donde nos encontremos, en
forma de aplicacin para dispositivo mvil.
2.2 Descripcin
Al ser este un proyecto que comienza desde cero, habr que desarrollar una aplicacin
para el vehculo con la que se registrarn una serie de datos del estado actual del
mismo, una aplicacin para el dispositivo mvil del usuario con la cual poder leer
dichos datos, y por ltimo un servidor encargado de centralizar y almacenar dichos
datos.
2.3 Justificacin
En Estados Unidos ya existen algunas compaas aseguradoras que tienen servicios
como desbloqueo de coches cuando el usuario se ha dejado las llaves dentro. Por otra
parte en Espaa se estn empezando a comercializar sistemas de seguridad y
localizacin de vehculos en caso de que estos hayan sido sustrados.
14
PFC David Ruiz Urraca
Por este mismo motivo, se ha visto que podra ser muy interesante un servicio que no
slo sirva para estos dos casos, si no que tambin ayude al seguimiento del estado del
coche.
2.4 Alcance
El proyecto se considerar completo, cuando se haya obtenido una aplicacin cliente
desde la cual poder consultar en todo momento los ltimos estados del vehculo, un
servidor en el cual poder almacenar dichos datos y una aplicacin que simule la
recogida de datos del estado del coche.
El alumno es consciente de que se podra obtener una interaccin real del propio
coche con un dispositivo, gracias al protocolo OBD2, pero este apartado quedar fuera
del proyecto al considerarse que la entidad del mismo ya es suficientemente completa.
2.7 Riesgos
Durante el proyecto n de carrera pueden surgir imprevistos, que pueden retrasar el
proyecto. Se explicarn cules son estos riesgos, las soluciones que se proponen en el
caso de que ocurran, la probabilidad de que estos se produzcan y el momento previsto
para su deteccin.
15
PFC David Ruiz Urraca
Cualquiera de los cuatro puntos en los cuales hay un posible riesgo, podra suponer un
impacto en la extensin en el tiempo del proyecto.
16
PFC David Ruiz Urraca
17
PFC David Ruiz Urraca
Diagrama 1
18
PFC David Ruiz Urraca
19
PFC David Ruiz Urraca
2.8.1.3.3 Revisin
Revisin del documento Memoria del proyecto tanto por parte del
alumno, como por parte del director de proyecto para su valoracin y
posible correccin o modificacin.
2.8.1.4.0 Defensa del PFC
Tareas relacionadas con la presentacin y defensa del proyecto.
2.8.1.4.1 Preparacin
Estudio exhaustivo de las partes ms importantes del proyecto fin de
carrera, y preparacin de la presentacin a realizar del proyecto, as
como asistencia a defensas de otros proyectos y estudio de las
mismas.
2.8.1.4.2 Defensa
Presentacin y defensa del proyecto fin de carrera del alumno frente al
tribunal acadmico.
2.8.2 Formacin
Conjunto de tareas relacionadas con el estudio de la plataforma seleccionada, y
de las tecnologas necesarias para poder llevar a cabo el mismo. Dicha tarea se
considera una de las ms importantes de dicho proyecto, ya que supone el
estudio de una plataforma nueva para el alumno, ya que no ha cursado ninguna
asignatura relacionada con plataformas ni tecnologas mviles. De esta tarea
depender en gran parte el xito o fracaso del resultado final.
2.8.3 Anlisis
En esta etapa se realizar un estudio de cules son los objetivos del proyecto y de
sus caractersticas tcnicas.
2.8.3.1.0 Definicin del sistema
Estudio exhaustivo del alcance del proyecto, sus caractersticas, limitaciones,
etc.
2.8.3.2.0 Anlisis de requisitos
Se realizar un estudio de los requisitos de la aplicacin, la viabilidad de los
mismos, intentando evitar una futura modificacin de los mismos.
2.8.3.3.0 Casos de uso
Se reflejarn en forma de diagramas de casos de uso los posibles actores que
pudieran intervenir en la aplicacin, as como los posibles usos de la misma.
2.8.3.4.0 Diagramas de actividad
Se realizarn los diagramas necesarios para reflejar el flujo de informacin en
la aplicacin.
2.8.3.5.0 Identificacin de clases
Anlisis inicial de las posibles clases de las clases del sistema para poder
hacernos una idea inicial de la estructura del mismo.
2.8.3.6.0 Revisin del anlisis
Revisin y correccin de errores de toda la informacin generada en la fase de
anlisis.
2.8.4 Diseo
En esta fase se alcanza con mayor precisin una solucin ptima de la aplicacin,
teniendo en cuenta los recursos fsicos como lgicos del sistema.
20
PFC David Ruiz Urraca
21
PFC David Ruiz Urraca
22
PFC David Ruiz Urraca
2.9.1.4.0 Nota
En fases ms tempranas el alumno se plante el uso de Ruby On Rails
como lenguaje de programacin (si hablamos con propiedad RoR no es
un lenguaje de programacin si no un framework escrito en Ruby) por
su gran versatilidad, simplicidad y proyeccin en el mundo laboral, pero
hubiera supuesto un incremento notable en la fase de Formacin, as
que finalmente se descart. Aun as no se descarta un futuro portar el
sistema a RoR, si los conocimientos alcanzados por el usuario as lo
permiten.
2.9.2 Aplicacin mvil
2.9.2.1.0 Android
Para este punto se han barajado como opciones, los dos sistemas
operativos mviles con mayor impacto en el mercado que son Android y
iOS pero finalmente se ha decidido que Android sea el elegido por los
siguientes motivos.
2.9.2.1.1 Mercado mayor y de mayor crecimiento: El parqu de dispositivos
Android en el mercado es significativamente superior al de iOS y las
previsiones dicen que esta diferencia ser ms grande en el futuro.
2.9.2.1.2 El lenguaje de programacin: A da de hoy existen varios
frameworks que generan aplicaciones nativas para ambas plataformas,
pero el rendimiento de dichas aplicaciones es sustancialmente inferior
al de las aplicaciones realizadas con el SDK oficial de la plataforma, as
que la decisin se resume en Java Vs Objective-C. De esta forma, en
caso de elegir desarrollar para iOS habra que replanificar la estimacin
de horas y aumentar la duracin de la fase de formacin, cosa que no
sucedera en caso de elegir Android como plataforma.
2.9.2.1.3 Desembolso econmico: En el momento en el que se realiza este
proyecto, la nica opcin para desarrollar una aplicacin iOS pasa por
adquirir un ordenador de la marca Apple, sin embargo para desarrollar
para Android podemos escoger cualquiera de los 3 sistemas operativos
ms importantes Windows, Mac OS X y Linux (por orden en cuanto a
cuota de uso) y el alumno adquiri hace relativamente poco tiempo un
porttil as que no se plantea la adquisicin de otro equipo.
2.9.2.1.4 Por otra parte, esto tambin plantea otros inconvenientes, como
por ejemplo la mayor fragmentacin de la plataforma, y algunos
estudios que indican que el usuario de iOS est ms predispuesto a
pagar una aplicacin que uno de Android.
2.9.2.2.0 Sqlite
Se ha optado por un SGBD como SQLite para almacenar datos en el
dispositivo mvil a modo de cach por su gran ligereza y
23
PFC David Ruiz Urraca
24
PFC David Ruiz Urraca
2.9.7.1.0 LibreOffice
Suite ofimtica libre y gratuita, compatible con Microsoft Windows, Mac y
GNU/Linux. Cuenta con un procesador de texto (Writer), un editor de hojas de
clculo (Calc), un creador de presentaciones (Impress), un gestor de bases de
datos (Base), un editor de grficos vectoriales (Draw), y un editor de frmulas
matemticas (Math). LibreOffice fue creada por la fundacin The Document
Foundation y permite guardar los archivos en un formato estndar ISO
(OpenDocument) adems de importar y exportar documentos en varios
formatos de archivo adicionales como por ejemplo los de Microsoft Office,
Rich Text Format (.rtf), archivos de texto plano (.txt), Office Open XML y
OpenOffice.org XML, Microsoft Works y WordPerfect. Adems, puede
exportar documentos directamente a los formatos PDF y SWF. LibreOffice
tambin cuenta con la capacidad de importar documentos en modo de solo
lectura en los formatos Unified Office Format, Data Interchange Format y los
formatos propios de Lotus 1-2-3, entre otros.
2.9.7.2.0 Calligra Suite
Suite ofimtica multiplataforma, libre y de cdigo abierto para el proyecto
KDE, aunque es independiente de este. Utiliza el formato de documento
abierto y estndar OASIS OpenDocument de forma nativa. Adems, incluye
filtros de importacin para poder trabajar con algunos formatos de fichero de
otras suites ofimticas. Calligra Suite fue diseado inicialmente para funcionar
en sistemas operativos tipo Unix, pero desde la versin 2.0 es posible la
ejecucin de Calligra Suite en Mac OS X as como tambin en Windows.
2.9.7.3.0 Google Drive
Servicio de almacenamiento de archivos en lnea introducido por Google el 24
de abril de 2012. La principal diferencia es que no es un programa local si no
que es una webapp (o aplicacin web) por lo que compartir estos archivos a
travs de internet es una de las cualidades ms interesantes. Google Drive nos
ofrece la misma variedad de programas (procesador de textos, hoja de clculo,
presentaciones) y es capaz de compatibilizar todas las extensiones de los dos
suites anteriores (e incluso MS Office o iLife) sin embargo al ser una suite con
mucho menor recorrido, las limitaciones son an demasiado importantes. Sin
embargo s que se utilizar Google Drive (en combinacin con Dropbox) como
sistema de copias de seguridad.
2.9.7.4.0 Decisin final
Esta no est an tomada, pero girar en torno a las dos primeras opciones, y al
ser compatibles una con la otra, no afectar demasiado.
Diagrama 2
25
PFC David Ruiz Urraca
Horario fijo
Horas extras
26
PFC David Ruiz Urraca
27
PFC David Ruiz Urraca
Diagrama 3
28
PFC David Ruiz Urraca
3 Gestin del
proyecto
29
PFC David Ruiz Urraca
3.1 Replanificacin
Debido a la magnitud inicial del proyecto, durante el desarrollo del mismo se ha
producido una reduccin de funcionalidades que se explicarn a continuacin.
La idea original del proyecto, como ya se explic en el DOP, era una aplicacin con la
que poder gestionar un vehculo o flota de vehculos por completo, pero debido a la
inexperiencia del alumno, y a los retrasos acumulados con anterioridad y las
limitaciones fsicas al no disponer de un vehculo con dichas caractersticas, se ha
decidido recortar las siguientes funcionalidades.
Posibilidad de realizar una foto o una grabacin de audio del interior del vehculo
Aviso en caso de que los acelermetros hayan notado movimiento.
Avisos sobre el mantenimiento del mismo (ITV, revisiones peridicas, etc)
Mostrar informacin meteorolgica del trayecto
Mostrar informacin de trfico
Mostrar informacin de radares
Control y reparto de carga en camiones
Cliente web
30
PFC David Ruiz Urraca
Por tanto y teniendo en cuenta estas modificaciones y los retrasos actuales, la nueva
planificacin quedar de la siguiente forma.
31
PFC David Ruiz Urraca
Diagrama 4
32
PFC David Ruiz Urraca
300
250
200
150
Tiempo estimado
100
Tiempo real
50
Diagrama 5
33
PFC David Ruiz Urraca
34
PFC David Ruiz Urraca
4 Anlisis del
proyecto
35
PFC David Ruiz Urraca
El objetivo del anlisis del sistema es obtener las especificaciones necesarias para
servir de apoyo y definir con exactitud qu tareas va a realizar el nuevo sistema y as
poder satisfacer las necesidades de informacin de la parte del diseo.
Especificacin de requisitos
Roles
Diagramas de casos de uso del sistema
Identificacin de clases provisionales y diagrama
Diagramas de actividad
Diagramas de secuencia
4.2 Roles
4.2.1 Usuario
Dicho rol corresponder al usuario que acceder desde tu terminal a los datos
almacenados en el servidor
4.2.2 Vehculo
Dicho rol corresponder al vehculo cuya funcin ser la de enviar la
informacin al servidor, cada determinado rango de tiempo.
36
PFC David Ruiz Urraca
Diagrama 6
El vehculo deber enviar su estado actual en todo momento para poder ser estos
estados, almacenados en el servidor. Se han subdividido dichos estados en tres clases.
37
PFC David Ruiz Urraca
Diagrama 7
38
PFC David Ruiz Urraca
Diagrama 8
39
PFC David Ruiz Urraca
Diagrama 9
40
PFC David Ruiz Urraca
4.3.2 Usuario
Diagrama 10
Consultas: Todo tipo de interacciones que sirvan para que el usuario reciba
informacin del estado del vehculo.
Accin: Interacciones en las cuales el usuario enve instrucciones a realizar por
el vehculo.
41
PFC David Ruiz Urraca
4.3.2.1 Consultas
Diagrama 11
Consultar avisos: El usuario podr consultar los avisos que el sistema considere
de mayor importancia
Consultar ltimo estado: El usuario podr consultar todos los detalles del
ltimo estado enviado por el vehculo
Consultar ltimas localizaciones: El usuario podr consultar un histrico de las
ltimas localizaciones del vehculo.
42
PFC David Ruiz Urraca
4.3.2.2 Accin
Diagrama 12
43
PFC David Ruiz Urraca
4.3.2.3 rdenes
Diagrama 13
44
PFC David Ruiz Urraca
4.3.3 Servidor
Diagrama 14
45
PFC David Ruiz Urraca
El Modelo Vista Controlador es un patrn para el desarrollo del software que se basa
en separar los datos (por un lado), la interfaz del usuario (por otro) y la lgica interna
(por un ltimo lado). Es mayormente usado en aplicaciones web, dnde la vista es la
pgina HTML, el modelo es el Sistema de Gestin de Base de Datos y la lgica interna,
y el controlador es el responsable de recibir los eventos y darles solucin.
Diagrama 15
46
PFC David Ruiz Urraca
47
PFC David Ruiz Urraca
Diagrama 16
48
PFC David Ruiz Urraca
usuarios (pantalla de login) en la que se pedir que el mismo se identifique (se seguir
para ello el mtodo user-password). Una vez el usuario se ha identificado el sistema
comprobar que es un usuario vlido o no.
Por el contrario, en caso de que el usuario sea un usuario vlido, se le dar acceso a la
aplicacin.
49
PFC David Ruiz Urraca
4.5.2 Diagrama 2
Diagrama 17
50
PFC David Ruiz Urraca
Al acceder el sistema nos mostrar una relacin de coches que el propietario gestiona.
El usuario tendr que elegir el vehculo al cual le vamos a enviar dicha instruccin. Una
vez seleccionado, el sistema nos mostrar informacin relativa como es el estado del
mismo y una serie de posibles acciones a realizar. El usuario selecciona la opcin
correspondiente (cerrar puertas) y la enva al servidor.
51
PFC David Ruiz Urraca
Diagrama 18
52
PFC David Ruiz Urraca
Al igual que suceda con el ltimo diagrama de actividad, este ltimo diagrama de
secuencia es extrapolable a todos los posibles casos del sistema ya que el mecanismo
de comunicacin es el mismo en todos ellos, por tanto con este diagrama se dan por
concluidos todos los posibles diagramas de secuencia.
53
PFC David Ruiz Urraca
4.7 Presupuesto
A continuacin detallamos el presupuesto de este proyecto.
54
PFC David Ruiz Urraca
55
PFC David Ruiz Urraca
D101 Director 1 50 50
A101 Analista 3 45 135
Total Otra documentacin 4 185
Implantacin
T101 Tcnico 9 20 180
A101 Analista 5 45 225
Total Implantacin 14 405
TOTAL 548 18.665
Tabla 5
56
PFC David Ruiz Urraca
5 Diseo del
proyecto
57
PFC David Ruiz Urraca
Por tanto en esta etapa es donde se le dar forma a la informacin que se recolect y
analiz en apartados anteriores, conformando el nuevo sistema, en documentos,
diagramas de flujo de procesos, diseos de entradas y salidas, seleccin de dispositivos
de almacenamiento, la lgica que llevar el sistema, diseo de archivos maestros, de
trabajo, flujo de los datos determinar volmenes de informacin, pantallas, mens,
submens, mensajes, reportes, mantenimiento, ajustes...
Diagrama 19
58
PFC David Ruiz Urraca
5.1.2 Capa de negocio: es donde residen los programas que se ejecutan, se reciben
las peticiones del usuario y se envan las respuestas tras el proceso. Se denomina capa
de negocio (e incluso de lgica del negocio) porque es aqu donde se establecen todas
las reglas que deben cumplirse. Esta capa se comunica con la capa de presentacin,
para recibir las solicitudes y presentar los resultados, y con la capa de persistencia,
para solicitar al gestor de base de datos almacenar o recuperar datos de l.
Un patrn de diseo resulta ser una solucin a un problema de diseo. Para que una
solucin sea considerada un patrn debe poseer ciertas caractersticas. Una de ellas es
que debe haber comprobado su efectividad resolviendo problemas similares en
ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable
a diferentes problemas de diseo en distintas circunstancias.
59
PFC David Ruiz Urraca
5.3.1 Diagramas
A continuacin se detallan los diagramas de clases, tanto de la aplicacin del usuario,
como de la aplicacin del vehculo.
60
PFC David Ruiz Urraca
Diagrama 20
61
PFC David Ruiz Urraca
Diagrama 21
62
PFC David Ruiz Urraca
5.3.2 Descripcin
5.3.2.1 Usuario
- CarStatus:
Diagrama 22
- Order:
Diagrama 23
63
PFC David Ruiz Urraca
- JsonParser:
- OrderSender:
- StatusDatabase:
- StatusView:
Diagrama 27
64
PFC David Ruiz Urraca
- StatusMapView:
- OrderView:
Diagrama 29
- MainActivity:
Diagrama 30
65
PFC David Ruiz Urraca
5.3.2.2 Vehculo
- CarStatus:
Diagrama 31
- JsonParser:
66
PFC David Ruiz Urraca
- StatusSender:
Diagrama 33
- MainActivity:
Diagrama 34
67
PFC David Ruiz Urraca
68
PFC David Ruiz Urraca
Diagrama 35
69
PFC David Ruiz Urraca
5.4.2 Descripcin
La base de datos ms importante, ser la almacenada en el servidor de la aplicacin, y
ser la encargada de almacenar tanto los estados de los diferentes vehculos, como las
rdenes que sus usuarios que ambos se intercambien.
Adems de estos datos, hay una tabla especfica para los datos principales del
vehculo. En este caso y por simplificar se ha optado por almacenar nicamente el
nombre del vehculo y su ao de fabricacin. No se han aadido otros por no ser de
utilidad, pero a estos datos se les podran sumar datos para tener una descripcin ms
completa del vehculo, como la marca, el modelo, etc.
Al igual que con los vehculos, tambin se almacenan datos referentes a los usuarios.
Los ms importantes son el nombre de usuario y la contrasea, que nos servirn para
realizar la autenticacin del mismo. De la misma forma que el vehculo, en caso de
interesarnos se podran aadir datos complementarios como la fecha de nacimiento
del usuario, la direccin de correo electrnico, etc.
Adems de las tablas comentadas, se ha aadido una quinta tabla que nos servir de
nexo entre las tablas car y user y que nos servir para discernir qu vehculos
pertenecen a qu usuarios.
Por otra parte, en el lado del usuario tambin se ha creado una pequea base de datos
local, para poder consultar la informacin sin necesidad de conexin.
Esta base de datos es mucho ms simple y slo consta de una tabla CarStatus, en la
que se almacenarn, al igual que en el servidor, todos los estados de los diferentes
coches, pero a diferencia de esta ltima, en el dispositivo local, slo se almacenarn
los estados asociados a vehculos que pertenecen a un determinado usuario.
70
PFC David Ruiz Urraca
6 Construccin del
proyecto
71
PFC David Ruiz Urraca
En esta fase se identificarn y plasmarn, tanto los objetivos como las principales
caractersticas ya concretadas en apartados anteriores, como el anlisis y todas las
decisiones tcnicas que las mismas han supuesto.
Adems se concretarn los diferentes recursos que el alumno ha utilizado, tales como
tecnologas, libreras, etc. Tambin se realizar un estudio de las principales
caractersticas de los mismos.
Tecnologas empleadas.
Libreras utilizadas
Estructura del proyecto
Interfaz
72
PFC David Ruiz Urraca
Por contra, s que ha sido necesario que el alumno, estudie y aprenda las
caractersticas especficas de que esta plataforma dispone, ya que el desarrollo de
aplicaciones mviles s que era algo nuevo para el alumno.
73
PFC David Ruiz Urraca
Cabe aadir, que para el diseo de los diagramas no se han utilizado herramientas
especficas, si no que se ha optado por utilizar plugins y extensiones o interfaces
grficas de las anteriores herramientas, tales como.
Base de datos
o Mysql Workbenc
o PhpMyAdmin
Diagramas de clases
o ObjectAid para Eclipse
Realizacin de la memoria
o LibreOffice 3 y LibreOffice 4
Codificacin del proyecto
o SDK oficial de Android para Eclipse
El alumno se plante el uso de una de estas alternativas, pero supondra un costo extra
de tiempo el aclimatarse a estas plataformas, y dems el resultado no suele ser el
ptimo puesto que la fluidez de estas aplicaciones es generalmente inferior, por lo que
se acab optando por el SDK oficial.
Phonegap
Flex
Appcelerator Titanium
74
PFC David Ruiz Urraca
PostgreSQL
MariaDB
En el lado del cliente, Android incorpora de serie una serie de libreras para utilizar de
forma sencilla bases de datos de tipo SqLite por tanto ese ha sido el motivo
fundamental de su eleccin. Sin embargo cabe destacar que aplicaciones como
navegadores web (Chrome, Firefox, Opera), sistemas operativos mviles (Android, iOS,
Windows Phone, Symbian) e incluso aplicaciones de escritorio (Skype, Photoshop, etc)
lo han escogido como gestor de bases de datos por lo que se puede suponer su gran
rendimiento y flexibilidad.
La otra opcin para el desarrollo pasaba por almacenar los datos utilizando el otro
mecanismo que Android dispone por defecto, que son los archivos xml. Este
mecanismo es el ideal para poca cantidad de datos como por ejemplo, credenciales,
preferencias, etc. Sin embargo mostraba un rendimiento inferior con cantidades
grandes de datos, por lo que se acab descartando.
75
PFC David Ruiz Urraca
Ilustracin 1
Sin embargo, a pesar de haber realizado ya las primeras pruebas grficas con dicha
libreara, con la ltima actualizacin del SDK de Android, esta librera sufri ciertos
problemas de compatibilidad y se opt por utilizar el componente listview estndar,
pero con una ligera personalizacin. De esta forma la aplicacin seguira siendo
ligeramente diferente a la mayora de aplicaciones para Android, aunque perdiendo
gran parte del atractivo que hubiera tenido, de haber podido usar dicha librera.
76
PFC David Ruiz Urraca
Cabe destacar que dicha librera fue presentada por Google en diciembre del 2012 y
que el alumno haba estado estudiando el funcionamiento de la versin anterior, por
otra parte mucho ms limitada, por lo que se tuvo que redisear parte del cdigo de la
aplicacin para poder utilizar la nueva versin de la librera.
Por otra parte, tiene algunos inconvenientes, como la menor compatibilidad con
dispositivos ms antiguos.
Ilustracin 2
77
PFC David Ruiz Urraca
Los beneficios de esta decisin, son la posibilidad de utilizar las nuevas funcionalidades
introducidas en las ltimas versiones, como son ActionBar, OpenGL, etc. Dado que se
ha optado por las ltimas versiones del sistema operativo, la estructura de dicho
proyecto varia ligeramente respecto a versiones anteriores.
6.3.1 Cliente
La siguiente estructura, es la estructura tpica de un proyecto de Android bajo IDE
Eclipse. El proyecto consta de las siguientes partes.
Diagrama 36
78
PFC David Ruiz Urraca
Diagrama 38
79
PFC David Ruiz Urraca
En la carpeta Google APIs se guardan aquellas libreras que se han ido adjuntando al
proyecto. En concreto la librera android.jar es una librera que se adjunta
automticamente en cualquier proyecto, mientras que las otras tres libreras, se han
adjuntado al haber necesitado hacer uso de los servicios de Google. En este caso para
la manipulacin de los mapas de Google Maps.
Diagrama 39
80
PFC David Ruiz Urraca
Diagrama 40
81
PFC David Ruiz Urraca
Diagrama 41
Permisos:
o Acceso a Google Maps
o Utilizacin de los servicios de Google
o Acceso a internet
o Comprobacin del estado de la red
o Almacenamiento de datos en cach
o Acceso a los dos tipos de geolocalizacin que existen en Android (GPS y
triangulacin GPRS/WIFI)
82
PFC David Ruiz Urraca
Credenciales
o Credenciales de acceso al API de Google Maps
Pantallas de la aplicacin
o MainActivity
Nombre de aplicacin
Definicin como pantalla principal
Icono de la aplicacin
Orientacin vertical
o StatusView
o StatusMapView
o OrderView
o AboutView
Otros
o Uso de aceleracin grfica OpenGL
o Tema y diseo de la aplicacin
o Versin mnima para su ejecucin (versin mnima del SDK)
o Versin de la aplicacin
o etc
83
PFC David Ruiz Urraca
6.3.2 Vehculo
En la parte de la aplicacin del vehculo, la estructura vara ligeramente puesto que el
funcionamiento no es el mismo, pero la definicin de clases y paquetes es muy similar.
Diagrama 42
Diagrama 43
84
PFC David Ruiz Urraca
Diagrama 44
85
PFC David Ruiz Urraca
Diagrama 45
Permisos
o Acceso a internet
o Comprobacin del estado de la red
o Acceso a los dos tipos de geolocalizacin que existen en Android (GPS y
triangulacin GPRS/WIFI)
Pantallas de la aplicacin
o MainActivity
Nombre de aplicacin
Definicin como pantalla principal
Icono de la aplicacin
Otros
o Tema y diseo de la aplicacin
o Versin mnima para su ejecucin (versin mnima del SDK)
o Versin de la aplicacin
o etc
86
PFC David Ruiz Urraca
6.3.3 Servidor
Scripts de creacin de las tablas y referencias de la base de datos del servidor.
6.3.3.1 CAR
Diagrama 46
6.3.3.2 USER
Diagrama 47
6.3.3.3 CAR_USER
Diagrama 48
87
PFC David Ruiz Urraca
6.3.3.4 STATUS
Diagrama 49
6.3.3.5 ORDER
Diagrama 50
88
PFC David Ruiz Urraca
6.4 Interfaz
6.4.1 Usuario
Al entrar en la aplicacin, el
usuario ver un listado de
los ltimos estados que se
han enviado desde los
vehculos que l tiene
asignados. En cada estado
se ver el identificador de
dicho estado, y la
fecha/hora a la que se ha
enviado.
Ilustracin 3
89
PFC David Ruiz Urraca
Por otra parte, para mostrar si este vehculo se encontraba abierto cuando se envi el
estado, se ha optado por cambiar el color de la barra de acciones en vez de mostrar
otro control, para darle mayor importancia. Se mostrar un ejemplo a continuacin.
90
PFC David Ruiz Urraca
Ilustracin 5
Ilustracin 6
91
PFC David Ruiz Urraca
Como ya se ha comentado
anteriormente, cuando el
vehculo se encuentre
abierto, dicho estado se
representar con un color
rojo, para darle mayor
importancia.
Ilustracin 7
92
PFC David Ruiz Urraca
Igualmente con la
representacin con mapa de
dicho estado.
El funcionamiento de dicha
pantalla no difiere en nada,
con respecto a la anterior.
Simplemente se ha
cambiado el color para darle
mayor nfasis.
Ilustracin 8
93
PFC David Ruiz Urraca
La pantalla de enviar
rdenes, es una
simplificacin de la pantalla
de estado, dejando
disponibles nicamente
aquellos parmetros que se
pueden modificar a
distancia.
94
PFC David Ruiz Urraca
Ilustracin 10
95
PFC David Ruiz Urraca
Si el usuario y contrasea
introducido es incorrecto, la
aplicacin borrar de la
base de datos, todos lo que
tenga almacenado,
evitando de esta forma que
dicho usuario tenga acceso
a datos a los que no debera
poder tener.
Ilustracin 11
96
PFC David Ruiz Urraca
6.4.2 Vehculo
Ilustracin 12
97
PFC David Ruiz Urraca
Ilustracin 13
98
PFC David Ruiz Urraca
7 Pruebas del
proyecto
99
PFC David Ruiz Urraca
100
PFC David Ruiz Urraca
PRUEBA 1
PRUEBA 2
101
PFC David Ruiz Urraca
PRUEBA 3
PRUEBA 4
Resultado esperado Coincidencia total entre los datos de la base de datos local, con
los datos de la base de datos del servidor.
102
PFC David Ruiz Urraca
PRUEBA 5
PRUEBA 6
103
PFC David Ruiz Urraca
PRUEBA 7
PRUEBA 8
Resultado esperado Mostrar todos los detalles del estado en una nueva pantalla de
manera correcta.
104
PFC David Ruiz Urraca
PRUEBA 9
PRUEBA 10
Resultado esperado Se reciben los datos de la orden, y tanto la pantalla, como los
datos almacenados en las preferencias varan en funcin de
dicha orden.
105
PFC David Ruiz Urraca
PRUEBA 11
PRUEBA 12
Resultado esperado Insercin correcta de los datos en la base de datos del servidor
106
PFC David Ruiz Urraca
PRUEBA 13
107
PFC David Ruiz Urraca
108
PFC David Ruiz Urraca
8 Conclusiones
finales
109
PFC David Ruiz Urraca
En este apartado del proyecto, se expondrn las conclusiones y retos que ha supuesto
la realizacin de este proyecto por parte del alumno, as como una serie de
funcionalidades que han ido surgiendo durante la realizacin del mismo, pero que por
falta de tiempo o por no realizar una replanificacin del mismo, se ha decidido
finalmente no incluir.
110
PFC David Ruiz Urraca
Por estos motivos entre otros, la conclusin de este proyecto se considera un reto muy
interesante y con el que el alumno se siente muy realizado.
Si bien es cierto que los objetivos iniciales eran demasiado optimistas, y que durante la
realizacin del mismo, se han rebajado parte de dichos objetivos, tambin hay que
decir que el alcance del mismo ha sido superado ampliamente la idea inicial que tena
el alumno cuando se plante su ejecucin.
111
PFC David Ruiz Urraca
300
250
200
150
Diagrama 51
Como se puede observar en la grfica, tanto la fase de Anlisis, como la fase de diseo,
han superado las previsiones que se haban creado en un principio, aunque no de una
forma demasiado pronunciada. Eso no pasa con la fase de formacin, ya que el alumno
crea que con los conocimientos de Java adquiridos durante la carrera, iba a ser una
fase mucho ms corta de lo que en realidad ha acabado siendo. De hecho como se
puede comprobar, con motivo de las particularidades del sistema operativo (Android)
y otros conocimientos que el alumno no tena, esta se ha convertido en la fase que
ms ha ocupado en la realizacin del proyecto.
Sin embargo cabe destacar, que una vez superado estas tres fases, se ha conseguido
reducir el tiempo previsto para las fases de construccin y pruebas de forma, notoria.
No muy pronunciada pero suficiente como para aligerarlas de forma interesante.
112
PFC David Ruiz Urraca
Tiempo real
Diagrama 52
113
PFC David Ruiz Urraca
Y ya para finalizar y en modo de resumen, cabra indicar que si bien se trata de una
apelacin con una interfaz sencilla, hace falta una aproximacin ms profunda de la
114
PFC David Ruiz Urraca
misma para poder identificar todos los conocimientos de diversas disciplinas que ha
debido asimilar el alumno para conclusin del proyecto.
115
PFC David Ruiz Urraca
116
PFC David Ruiz Urraca
9 Bibliografa
117
PFC David Ruiz Urraca
9.1 Libros
Ableson F., Collins C., and Sen R., 2009. Unlocking Android A Developer's Guide.
Manning publications Co.
Burnette E., 2009. Hello, Android: Introducing Google's Mobile Development
Platform. 3rd ed. Pragmatic Bookshelf
Murphy M., 2001. Beginning Android 3. Apress
118
PFC David Ruiz Urraca
10 Anexos
119
PFC David Ruiz Urraca
Otra documentacin
Actas de reunin
120
PFC David Ruiz Urraca
Diagrama 53
10.1.1.2 Libraries:
Esta capa, que se sita justo sobre el kernel, la componen las bibliotecas nativas de
Android, tambin llamadas libreras. Escritas y compiladas para la arquitectura
hardware especfica del telfono. El objetivo de dicha capa, es proporcionar
funcionalidad a las aplicaciones para tareas que se repiten con frecuencia, evitando
121
PFC David Ruiz Urraca
tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma ms
eficiente eficiente posible.
122
PFC David Ruiz Urraca
su vez incluyen los archivos .dex con todos los recursos y archivos adicionales
que necesite la aplicacin, para facilitar su descarga e instalacin.
Telephony Manager. Con esta librera podremos realizar llamadas o enviar y
recibir SMS/MMS, aunque no permite reemplazar o eliminar la actividad que se
muestra cuando una llamada est en curso.
Resource Manager. Con esta librera podremos gestionar todos los elementos
que forman parte de la aplicacin y que estn fuera del cdigo, es decir,
cadenas de texto traducidas a diferentes idiomas, imgenes, sonidos o layouts.
En un post relacionado a la estructura de un proyecto Android veremos esto
ms a fondo.
Location Manager. Permite determinar la posicin geogrfica del dispositivo
Android mediante GPS o redes disponibles y trabajar con mapas.
Sensor Manager. Nos permite manipular los elementos de hardware del
telfono como el acelermetro, giroscopio, sensor de luminosidad, sensor de
campo magntico, brjula, sensor de presin, sensor de proximidad, sensor de
temperatura, etc.
Cmara: Con esta librera podemos hacer uso de la(s) cmara(s) del dispositivo
para tomar fotografas o para grabar vdeo.
Multimedia.Permiten reproducir y visualizar audio, vdeo e imgenes en el
dispositivo.
10.1.1.5 Applications
En la ltima capa se incluyen todas las aplicaciones del dispositivo, tanto las que tienen
interfaz de usuario como las que no, las nativas (programadas en C o C++) y las
administradas (programadas en Java), las que vienen preinstaladas en el dispositivo y
aquellas que el usuario ha instalado.
En esta capa encontramos tambin la aplicacin principal del sistema: Inicio (Home) o
lanzador (launcher), porque es la que permite ejecutar otras aplicaciones mediante
una lista y mostrando diferentes escritorios donde se pueden colocar accesos directos
a aplicaciones o incluso widgets, que son tambin aplicaciones de esta capa.
123
PFC David Ruiz Urraca
10.1.2.1 CarStatus.java
Diagrama 54
124
PFC David Ruiz Urraca
Como ya se indic, esta es la clase que representa el estado que el vehculo enva al
servidor y por tanto al usuario.
10.1.2.2 Order.java
Diagrama 55
125
PFC David Ruiz Urraca
Por otra parte, esta es la clase que representa la orden que el usuario le enva al
vehculo.
10.1.2.3 status_view.xml
Diagrama 56
Este es un fragmento del cdigo XML en el que se especifica el diseo que ha de tener
la pantalla en la que se muestra el estado del vehculo, en el dispositivo del usuario.
126
PFC David Ruiz Urraca
10.1.2.4 MyAsyncTask.java
Diagrama 57
Las clases que heredan de la clase AsyncTask, se utilizan para lanzar procesos
asncronos en segundo plano, sin que estos afecten al funcionamiento de la aplicacin.
127
PFC David Ruiz Urraca
10.2.1 Acta 1
Hora: 10:30
Asistentes
Orden del da
Desarrollo
Conclusin
128
PFC David Ruiz Urraca
10.2.2 Acta 2
Hora: 10:00
Asistentes
Orden del da
Desarrollo
Conclusin
129
PFC David Ruiz Urraca
10.2.3 Acta 3
Hora: 12:00
Asistentes
Orden del da
Desarrollo
Conclusin
130
PFC David Ruiz Urraca
10.2.4 Acta 4
Hora: 10:30
Asistentes
Orden del da
Desarrollo
Conclusin
131
PFC David Ruiz Urraca
10.2.5 Acta 5
Hora: 10:00
Asistentes
Orden del da
Desarrollo
Conclusin
132
PFC David Ruiz Urraca
10.2.6 Acta 6
Hora: 11:00
Asistentes
Orden del da
Desarrollo
Conclusin
133
PFC David Ruiz Urraca
10.2.7 Acta 7
Hora: 10:00
Asistentes
Orden del da
Anlisis
Desarrollo
Puesta en comn de los diagramas de casos de uso, los distintos roles que actan en
el sistema y una aproximacin inicial de los diagramas de actividad.
Conclusin
134
PFC David Ruiz Urraca
10.2.8 Acta 8
Hora: 13:00
Asistentes
Orden del da
Desarrollo
Conclusin
135
PFC David Ruiz Urraca
10.2.9 Acta 9
Hora: 9:30
Asistentes
Orden del da
Desarrollo
Se acuerda tanto la arquitectura del sistema como el diseo de la base de datos del
servidor
Conclusin
136
PFC David Ruiz Urraca
10.2.10 Acta 10
Hora: 10:00
Asistentes
Orden del da
Desarrollo
Conclusin
137
PFC David Ruiz Urraca
10.2.11 Acta 11
Hora: 10:30
Asistentes
Orden del da
Seguimiento
Desarrollo
Conclusin
138
PFC David Ruiz Urraca
10.2.12 Acta 12
Hora: 10:00
Asistentes
Orden del da
Desarrollo
Conclusin
139
PFC David Ruiz Urraca
10.2.13 Acta 13
Hora: 12:30
Asistentes
Orden del da
Desarrollo
Conclusin
140
PFC David Ruiz Urraca
10.2.14 Acta 14
Hora: 12:30
Asistentes
Orden del da
Desarrollo
Una vez realizadas las modificaciones propuestas, se da por aprobada dicha fase y se
da comienzo a la fase de implementacin o codificacin del sistema
Conclusin
141
PFC David Ruiz Urraca
10.2.15 Acta 15
Hora: 9:00
Asistentes
Orden del da
Seguimiento
Desarrollo
Conclusin
142
PFC David Ruiz Urraca
10.2.16 Acta 16
Hora: 10:00
Asistentes
Orden del da
Seguimiento
Desarrollo
Conclusin
143
PFC David Ruiz Urraca
10.2.17 Acta 17
Hora: 11:00
Asistentes
Orden del da
Seguimiento
Desarrollo
Conclusin
144
PFC David Ruiz Urraca
10.2.18 Acta 18
Hora: 10:00
Asistentes
Orden del da
Seguimiento
Desarrollo
Conclusin
145
PFC David Ruiz Urraca
10.2.19 Acta 19
Hora: 10:00
Asistentes
Orden del da
Desarrollo
Conclusin
146
PFC David Ruiz Urraca
10.2.20 Acta 20
Hora: 11:00
Asistentes
Orden del da
Desarrollo
Una vez corregidos los errores detectados en la anterior reunin, se aprueba dicha
fase y se establecen las pruebas a realizar.
Conclusin
147
PFC David Ruiz Urraca
10.2.21 Acta 21
Hora: 12:30
Asistentes
Orden del da
Desarrollo
Conclusin
148
PFC David Ruiz Urraca
10.2.22 Acta 22
Hora: 10:00
Asistentes
Orden del da
Desarrollo
Conclusin
149
PFC David Ruiz Urraca
10.2.23 Acta 23
Hora: 12:30
Asistentes
Orden del da
Aprobacin de la memoria
Desarrollo
Conclusin
150