Professional Documents
Culture Documents
Ttulo
Ingeniera Mecnica
Curso Acadmico
2012-2013
El autor
Universidad de La Rioja, Servicio de Publicaciones, 2013
publicaciones.unirioja.es
E-mail: publicaciones@unirioja.es
UNIVERSIDAD
DE LA RIOJA
Facultad de Ciencias, Estudios Agroalimentarios e Informtica
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.
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 mi familia en general por haberme animado siempre.
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.
ndice de contenidos
1 Introduccin................................................................................................................. 11
1.1
1.2
Motivacin ....................................................................................................... 12
Descripcin....................................................................................................... 14
2.3
Justificacin ...................................................................................................... 14
2.4
Alcance ............................................................................................................. 15
2.5
2.6
2.7
Riesgos ............................................................................................................. 15
2.7.1
2.7.2
2.8
2.8.1
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
2.9.3
2.9.4
Comunicacin ........................................................................................... 24
2.9.5
2.9.6
IDE ............................................................................................................. 24
2.9.7
Replanificacin ................................................................................................. 30
3.2
3.3
3.4
Roles ................................................................................................................. 36
4.2.1
Usuario...................................................................................................... 36
4.2.2
Vehculo .................................................................................................... 36
4.3
4.3.1
Vehculo .................................................................................................... 37
4.3.2
Usuario...................................................................................................... 41
4.3.3
Servidor..................................................................................................... 45
4.4
4.4.1
4.4.2
La capa Controlador.................................................................................. 47
4.4.3
La capa Modelo......................................................................................... 47
4.5
4.5.1
Diagrama 1................................................................................................ 48
4.5.2
Diagrama 2................................................................................................ 50
4.6
Diagramas de secuencia................................................................................... 52
4.7
Presupuesto ..................................................................................................... 54
4.7.1
4.7.2
4.7.3
10
1 Introduccin
11
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
2 Documento de
Objetivos de
Proyecto
13
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
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.
2.7.1
Deteccin de posibles riesgos
Errores en la estimacin de fechas: A pesar de haber adquirido los
conocimientos tericos necesarios durante la carrera y haber estado durante
ms de tres aos trabajando en una de las empresas de desarrollo de ms
15
2.7.2
Planes de contingencia
o Errores en la estimacin de fechas: Debido a la inexperiencia del alumno en
proyectos de esta entidad, es un riesgo a tener muy en cuenta, por tanto la nica
solucin sera volver a planificar la estimacin de fechas del mismo.
o Insuficiente conocimiento en algunas reas: Dicho problema se tendr en cuenta
antes del comienzo de desarrollo del mismo y se dedicar una parte de la
planificacin al estudio de la plataforma, pero en caso de que el tiempo dedicado a
ello no sea suficiente, el alumno deber dedicar horas extras para evitar que se vea
afectada la fecha final del mismo.
o Posibles problemas en el entorno de desarrollo: Este riesgo en principio es el
menos probable de todos, pero en caso de ocurrir, sera de gran impacto, por lo
que el alumno va a utilizar plataformas como GitHub.com, Dropbox o Google Drive
para ir guardando copias de seguridad.
o Errores en el diseo del proyecto: En caso de que el diseo sea incompleto o
incorrecto, se proceder a realizar las modificaciones pertinentes intentando que
el impacto de las mismas no afecte a lo realizado con anterioridad ni a la fecha final
del mismo.
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
17
Diagrama 1
18
2.8.1
19
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
Estudio previo
Recopilacin de todo tipo de informacin referida al proyecto o que pueda ser
necesaria para el mismo
2.8.4.2.0 Arquitectura del sistema
Realizacin de un diseo del mismo lo ms previsor posible para adelantarnos
a posibles fallos posteriores.
2.8.4.3.0 Diseo de la BBDD
Definicin de valores a almacenar en la base de datos y estructuracin de los
mismos en las posibles distintas tablas y las relaciones entre ellas. En esta fase
se incluye tanto la creacin de la base de datos del servidor, como la base de
datos (de menor entidad) del dispositivo mvil, que usaremos sobre todo a
modo de cach para cuando la conexin con el servidor no est disponible.
2.8.4.4.0 Diagrama de clases
Identificacin de las clases que componen el sistema y las relaciones entre las
mismas.
2.8.4.5.0 Diseo de interfaces
En esta fase se realizar el diseo de la interfaz de la aplicacin, intentando
adelantarnos a lo que el futuro usuario vaya a querer/necesitar, y de esta
forma intentando hacer la interfaz ms intuitiva y fcil posible, y a la vez
adaptndonos a las guas de diseo del propio sistema operativo elegido.
2.8.4.6.0 Revisin del diseo
Revisin y correccin de errores surgidos durante la fase de anlisis del
sistema.
2.8.5
Construccin
Fase operativa en la que se realiza el trabajo.
2.8.5.1.0 Estudio previo
Se realizar una recopilacin de los conocimientos adquiridos durante la
carrera, y se elegirn las herramientas adecuadas para su realizacin.
2.8.5.2.0 Implementacin de BBDD
Instalacin y configuracin del servidor y creacin y despliegue de la base de
datos.
2.8.5.3.0 Implementacin de scripts webservice
Una vez diseado el protocolo de comunicacin entre dispositivo mvil y
servidor, se proceder a crear el webservice que ser el que realice dicha
actividad en el servidor.
2.8.5.4.0 Implementacin aplicacin mvil
Desarrollo de la aplicacin cliente en el dispositivo mvil. En esta fase se
incluyen tanto el cdigo funcional de la aplicacin, como su UI y la BBDD
interna.
2.8.5.5.0 Implementacin simulador automvil
Al no disponer con un vehculo con las caractersticas deseadas, se desarrollar
una aplicacin que simular la recogida de datos dicho vehculo.
2.8.5.6.0 Revisin de cdigo
Revisin y correccin de errores en el cdigo de la aplicacin.
2.8.6
Pruebas
En esta fase se crearn un conjunto de pruebas para comprobar el correcto
funcionamiento de la aplicacin.
2.8.6.1.0 Diseo de pruebas
Se disearn dichas pruebas atendiendo a criterios de funcionalidad y
usabilidad, intentando contemplar por un lado todas las posibilidades que
presenta la aplicacin y final, y su correcta usabilidad.
21
2.8.7
Otra documentacin
2.9
2.9.1
Tecnologas a utilizar
Servidor
Para la construccin del servidor se necesitan dos tecnologas diferentes, la
primera para bases de datos y la segunda para el servicio Web y posible cliente
web.
2.9.1.1.0 Bases
de
datos
El sistema de gestin de bases de datos elegido es mysql por dos
motivos fundamentales. El primero, es un sistema ya conocido por el
alumno y por tanto la curva de aprendizaje ser menor. El segundo, es
un sistema libre (por ahora, ya que se rumorea que deje de serlo al
haber sido adquirido hace no demasiado tiempo por Oracle
Corporation). Adems de lo ya mencionado, es un sistema potente,
relacional, multihilo y multiusuario.
2.9.1.2.0 PHP
El alumno se ha decidido por PHP como lenguaje de programacin por
su facilidad de uso y similitud con otros lenguajes de programacin ya
conocidos por el alumno. Otro motivo de esta eleccin es la gran
integracin que presenta con el SGBD escogido en el punto anterior,
que limita posibles problemas aadidos.
2.9.1.3.0 Apache
Se ha apostado por Apache como servidor web http por su filosofa de
cdigo abierto y por su esencia multiplataforma. De esta forma, si el
sistema operativo en el que se desarrollar el proyecto no es suficiente
o sufre algn problema, siempre se podr preparar otro equipo u otro
sistema operativo, sin que esto suponga mucho cambio. Adems de
esto, tambin se ha elegido por la gran documentacin existente, su
gran calidad como software y por su gran integracin con las dos
tecnologas elegidas de antemano (PHP y MySql)
22
23
2.9.5
Decisin final
La decisin final ha sido JSON por la gran cantidad de documentacin
disponible para el mismo, y la inmensa cantidad de recursos disponibles para
el mismo.
2.9.6
IDE
En el desarrollo de aplicaciones para Android, Google (la desarrolladora del
sistema operativo) aconseja utilizar Eclipse, y al ser este un IDE ya conocido por el
usuario, la eleccin es obvia.
2.9.7
Generacin de documentacin
Para la redaccin del proyecto se han barajado tres posibilidades (todas ellas
disponibles en Linux, ya que va a ser el sistema operativo seleccionado para el
desarrollo)
24
2.9.7.2.0
2.9.7.3.0
2.9.7.4.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.
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.
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.
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
Horas estimadas
No estimado
Formacin
160
Anlisis
80
Diseo
116
Construccin
220
Pruebas
72
Otra documentacin
Tabla 1
26
27
Diagrama 3
28
3 Gestin del
proyecto
29
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
Cliente web
30
Comprobacin de geolocalizacin
Por tanto y teniendo en cuenta estas modificaciones y los retrasos actuales, la nueva
planificacin quedar de la siguiente forma.
Horas reales
110
Formacin
240
Anlisis
84
Diseo
120
Construccin
180
Pruebas
36
Otra documentacin
Tabla 3
31
Diagrama 4
32
300
250
200
150
Tiempo estimado
100
Tiempo real
50
Diagrama 5
33
34
4 Anlisis del
proyecto
35
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
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
Diagrama 7
38
Diagrama 8
39
Diagrama 9
40
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
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
Diagrama 12
43
Diagrama 13
44
Diagrama 14
45
Diagrama 15
46
47
Diagrama 16
48
49
Diagrama 17
50
51
Diagrama 18
52
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
4.7 Presupuesto
A continuacin detallamos el presupuesto de este proyecto.
Para la realizacin de dicho proyecto, se han utilizado herramientas de software libr,
por lo que no se incluye ningn gasto de licencias de uso. Por tanto, para la realizacin
de dicho presupuesto, se tendrn en cuenta exclusivamente, las horas de realizacin
del mismo.
Se aplicar a su vez un 6% de beneficio.
54
Cdigo
D101
A101
D201
D301
T101
Ttulo
Director
Analista
Diseador
Desarrollador
Tcnico
Precio
50
45
40
30
20
Tabla 4
Cdigo
Ttulo
Gestin del PFC
D101
A101
D201
D301
T101
Cantidad
Director
Analista
Diseador
Desarrollador
Tcnico
40
35
20
10
5
Total Gestin
Anlisis
D101
A101
Director
Analista
10
74
Diseador
Desarrollador
85
35
Desarrollador
Tcnico
110
70
50
45
16
20
Total Pruebas
Otra documentacin
36
55
500
3.330
3.830
40
30
3.400
1.050
4.450
30
20
180
Analista
Desarrollador
2.000
1.575
800
300
100
4.775
120
Total Construccin
Pruebas
A101
D301
50
45
40
30
20
84
Total Diseo
Construccin
D301
T101
Importe
110
Total Anlisis
Diseo
D201
D301
Precio
3.300
1.400
3.700
45
30
720
600
1.320
Director
Analista
1
3
T101
A101
9
5
Tcnico
Analista
Total Implantacin
TOTAL
50
45
50
135
185
20
45
14
548
180
225
405
18.665
Tabla 5
Apartado
Horas
Importe
110
84
120
180
36
4
14
6.175
4.720
6.075
6.500
1.680
230
545
Tabla 6
56
5 Diseo del
proyecto
57
Diagrama 19
58
59
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
Diagrama 20
61
Diagrama 21
62
- CarStatus:
Esta clase ser la encargada de almacenar el
estado del coche, en un momento determinado.
Dicho estado est compuesto de los valores
esenciales que son, el id del vehculo, la hora en
el que el mismo se enva al servidor, el instante
en el que este ltimo lo recibe, la localizacin
exacta del vehculo, y una serie de parmetros
fundamentales para conocer su estado real como
son, el nivel de carga del depsito, de aceite, de
batera, si este se encuentra abierto o cerrado, si
tiene alguna ventana o puerta abierta, etc.
Al realizar la llamada al servidor, este nos
devolver un array de estados, correspondientes
a todos los estados de todos los coches del
usuario.
Diagrama 22
- Order:
Esta clase ser la encargada de gestionar las rdenes
que el usuario de dicho vehculo enva al mismo. La
esencia es la misma que en la clase CarStatus, solo
que con menos valores. Solo aquellos que puedan
ser modificados a distancia.
Por ejemplo podremos ordenar al coche a apagar las
luces o a cerrar una ventanilla, pero no podremos
ordenarle llenar el depsito de combustible.
Diagrama 23
63
Diagrama 24
- OrderSender:
Al igual que la clase anterior, este se encargar de
formatear la respuesta obtenida del servidor, en
formato json, despus del envo de una orden. Como
est explicado en el apartado anterior, esta orden es un
objeto de la clase Order
Diagrama 25
- StatusDatabase:
Diagrama 26
- StatusView:
Clase encargada de mostrar al usuario, un
estado concreto del vehculo. Este estado se
compone de prcticamente los mismos valores
de la clase CarStatus, puesto que va a ser una
representacin
grfica
de
la
misma,
exceptuando aquellos en los que se necesita
realizar algn ajuste manual, y por
caractersticas de la plataforma, se ha optado
Diagrama 27
64
- OrderView:
De la misma forma que la clase StatusView est
relacionada con la clase CarStatus, esta clase
est relacionada con la clase Order. Es por tanto
la representacin grfica al usuario, de dicha
clase.
La clase OrderView ser la encargada de
recolectar todos los parmetros que el usuario
quiera ajustar para enviar la orden al vehculo.
Diagrama 29
- MainActivity:
Como su propio nombre indica, esta es la clase
principal de la aplicacin. Es la primera clase que
se muestra al abrir la aplicacin y es gracias a la
cual, podremos acceder a las diferentes
secciones de la misma. A su vez se encarga de
gestionar la identificacin del usuario, y la
encargada de lanzar las diferentes peticiones
que se realizan al servidor.
Diagrama 30
65
5.3.2.2 Vehculo
- CarStatus:
Al igual que en la versin del cliente, esta va a ser
la clase que nos va a servir de representacin de
un estado concreto del vehculo.
Los valores son los mismos que en la versin
anterior, a excepcin de la hora del servidor,
puesto en este momento, an este estado no ha
sido enviado y por tanto no se le ha asignado una
hora. Si tiene por otro lado la hora local del
vehculo, que ser rellenada en el momento en el
que este estado se cree.
Diagrama 31
- JsonParser:
Esta clase ser la encargada de parsear la respuesta
recibida del servidor, en forma de json. Esta
respuesta estar compuesta de un solo valor,
verdadero o falso, dependiendo de si el servidor ha
recogido y almacenado correctamente el estado en
la base de datos o por el contrario ha habido algn
problema imprevisto.
- Localizator:
Diagrama 32
66
- StatusSender:
Clase encargada de, una vez creada la clase
CarStatus, enviar dicho estado al servidor mediante
llamadas post al servidor.
Diagrama 33
- MainActivity:
Al igual que con la versin del cliente, esta
ser la clase principal de la aplicacin. Tendr
asociada una interfaz grfica en la que el
usuario podr ajustar los valores a su gusto,
simulando la recepcin de los mismos, desde
los diferentes sensores del vehculo. Desde la
misma tambin se podr realizar dos
funciones, que son las de envo del estado al
servidor, y la de recepcin de la ltima orden
enviada por el usuario y almacenada
temporalmente en el servidor.
Diagrama 34
67
68
Diagrama 35
69
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
6 Construccin del
proyecto
71
Tecnologas empleadas.
Libreras utilizadas
Estructura del proyecto
Interfaz
72
73
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
Phonegap
Flex
Appcelerator Titanium
74
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
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
Ilustracin 2
77
Diagrama 36
78
Diagrama 38
79
Diagrama 39
80
81
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
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
Diagrama 42
Diagrama 43
84
Diagrama 44
85
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
6.3.3.1 CAR
Diagrama 46
6.3.3.2 USER
Diagrama 47
6.3.3.3 CAR_USER
Diagrama 48
87
Diagrama 49
6.3.3.5 ORDER
Diagrama 50
88
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.
A su vez tendr un botn en
la parte superior para poder
actualizar dichos estados,
realizando una consulta al
servidor. Otro botn con el
cual podr enviar una orden
a uno de los vehculos, y un
men desde el cual poder
entrar a los ajustes y borrar
sus credenciales.
Ilustracin 3
89
su
vez,
tendr
dos
botones
para
poder
interactuar. Con el primero
de ellos, podr enviar una orden a dicho vehculo. Con el segundo, podr ver en un
mapa, la localizacin exacta del vehculo, cuando se envi dicho estado.
Ilustracin 4
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
Ilustracin 5
Ilustracin 6
91
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
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
La pantalla de enviar
rdenes, es una
simplificacin de la pantalla
de estado, dejando
disponibles nicamente
aquellos parmetros que se
pueden modificar a
distancia.
As por ejemplo, el usuario
puede bloquear el coche,
cerrar las ventanillas, apagar
las luces, etc a distancia. Sin
embargo jams podr
cambiar el nivel del depsito
de gasolina o de la carga de
batera.
Una vez rellenados dichos
valores, el usuario dispone
de un botn para enviar
dicha orden al vehculo.
Ilustracin 9
misma.
En la captura de la izquierda, se muestra la pantalla de rdenes, accedida desde un
estado concreto, y por tanto en la parte superior derecha, ya se nos queda marcado el
identificador del vehculo al que queremos enviar dicha orden.
94
Ilustracin 10
95
Ilustracin 11
96
Ilustracin 12
97
Ilustracin 13
98
7 Pruebas del
proyecto
99
100
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 7
PRUEBA 2
Tarea
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 8
101
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 9
PRUEBA 4
Tarea
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 10
102
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 11
PRUEBA 6
Tarea
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 12
103
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 13
PRUEBA 8
Tarea
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 14
104
Cambiar configuracin
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 15
PRUEBA 10
Tarea
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 16
105
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 17
PRUEBA 12
Tarea
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 18
106
Descripcin
Realizacin
Resultado esperado
Resultado obtenido
Correcto
Tabla 19
107
108
8 Conclusiones
finales
109
110
111
300
250
200
150
Tiempo estimado
100
Tiempo real
50
0
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
Tiempo real
Diagrama 52
113
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
115
116
9 Bibliografa
117
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
10 Anexos
119
Otra documentacin
Actas de reunin
120
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
122
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
Diagrama 54
124
Diagrama 55
125
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
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
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la propuesta del PFC
Desarrollo
Propuesta por parte del alumno, del desarrollo de un sistema de geolocalizacin de
vehculos.
Se acuerda la realizacin de un documento inicial en el que quedar detallado el
alcance del mismo.
Conclusin
Se aprueba la realizacin de dicho proyecto.
128
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin del alcance
Desarrollo
Se retoma el proyecto despus de una temporada en el aire. Se corrige y aprueba el
documento en el que se detalla el alcance del proyecto y se realiza una estimacin
inicial de tiempo
Conclusin
Se aprueba el documento realizado y se establece fecha para la siguiente reunin.
129
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin del DOP
Desarrollo
Puesta en comn del DOP, y correccin de errores del mismo.
Conclusin
Se establece nueva fecha para entrega del DOP y nueva reunin
130
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin del DOP
Desarrollo
Una vez corregido el DOP se aprueba. Adems se establece la metodologa a seguir
para la realizacin del proyecto.
Conclusin
Se establece fecha para la siguiente reunin
131
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Comprobacin de avance del proyecto
Desarrollo
Reunin para poner en comn el avance tanto en la documentacin como en el
desarrollo, del proyecto.
Conclusin
Se establece fecha para la siguiente reunin
132
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Replanificacin del PFC
Desarrollo
Se modifica ligeramente el alcance del mismo y se establece una nueva previsin
Conclusin
Se establece fecha para la siguiente reunin
133
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
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
Se acuerda la modificacin de algunos de ellos y se establece fecha para la siguiente
reunin
134
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin del anlisis
Desarrollo
Con los diagramas modificados a instancia del director, se aprueban y se comienza
con la fase de diseo
Conclusin
Se aprueban y se establece fecha para la siguiente reunin
135
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Puesta en comn del avance del diseo
Desarrollo
Se acuerda tanto la arquitectura del sistema como el diseo de la base de datos del
servidor
Conclusin
Se establece fecha para la siguiente reunin
136
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de las pantallas de la aplicacin.
Desarrollo
Puesta en comn y aprobacin tanto de las pantallas de la aplicacin, como de la
funcionalidad de cada una de ellas.
Conclusin
Se aprueban y se establece fecha para la siguiente reunin
137
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Seguimiento
Desarrollo
Puesta en comn del avance de la fase de diseo
Conclusin
Se establece fecha para la siguiente reunin
138
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin del diseo de las clases
Desarrollo
Puesta en comn de las clases identificadas inicialmente para el desarrollo de la
aplicacin y aprobacin de las mismas.
Conclusin
Se aprueba y se establece fecha para la siguiente reunin
139
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la fase de diseo
Desarrollo
Puesta en comn del documento generado durante la fase de diseo, y se acuerdan
ciertas modificaciones sobre el mismo.
Conclusin
Se establece fecha para la siguiente reunin
140
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la fase de diseo
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
Se aprueba y se establece fecha para la siguiente reunin
141
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Seguimiento
Desarrollo
Puesta en comn de las metas alcanzadas hasta el momento
Conclusin
Se establece fecha para la siguiente reunin
142
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Seguimiento
Desarrollo
Puesta en comn de las metas alcanzadas hasta el momento
Conclusin
Se establece fecha para la siguiente reunin
143
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Seguimiento
Desarrollo
Puesta en comn de las metas alcanzadas hasta el momento y propuesta de
modificacin de algunos comportamientos
Conclusin
Se establece fecha para la siguiente reunin
144
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Seguimiento
Desarrollo
Puesta en comn de las metas alcanzadas hasta el momento
Conclusin
Se establece fecha para la siguiente reunin
145
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la fase de construccin
Desarrollo
Puesta en comn de la fase de construccin y deteccin de errores
Conclusin
Se establece fecha para la siguiente reunin
146
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la fase de construccin
Desarrollo
Una vez corregidos los errores detectados en la anterior reunin, se aprueba dicha
fase y se establecen las pruebas a realizar.
Conclusin
Se aprueba y se establece fecha para la siguiente reunin
147
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la fase de pruebas
Desarrollo
Puesta en comn de las pruebas y los resultados de las mismas.
Conclusin
Se establece fecha para la siguiente reunin
148
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la fase de conclusiones
Desarrollo
Lectura de las conclusiones y aprobacin de las mismas
Conclusin
Se establece fecha para la siguiente reunin
149
Asistentes
David Ruiz Urraca
Francisco Javier Martnez de Pisn Ascacbar
Orden del da
Aprobacin de la memoria
Desarrollo
Puesta en comn de la memoria definitiva del PFC y aprobacin de la misma
Conclusin
Se establece el procedimiento a seguir para su presentacin y defensa.
150