Академический Документы
Профессиональный Документы
Культура Документы
para Carpool
Alumno: Jordi Cuadrado Borbons
Director/Ponente: Miquel Barcel Garca
Departamento: ESSI
Fecha: 01 de julio de 2010
CALIFICACIN
Calificacin numrica:
Calificacin descriptiva:
Una de las mltiples interpretaciones de esta letra de Arcade Fire es la del mensaje
ecolgico. Un cambio climtico antropognico anunciado. Viene, pero no se percibe
repentino ni inmediato. La percepcin que no llega se apodera de las vidas diarias de
muchas personas al no ser claramente visible en su da a da.
Ah, la irona aparece, en un llamamiento a la accin, en que todos necesitamos salir
de ah pronto, remarcando en lenguaje business as usual:
mantn el coche en marcha.
ndice de contenidos
Parte 0: Introduccin ........................................................................................................ 1
0.1. Introduccin y descripcin general del proyecto ................................................. 2
0.2. Definiciones de movilidad sostenible ................................................................... 3
Parte 1: Inicio del proyecto .............................................................................................. 5
1.1. Anlisis previo e inicio del proyecto ..................................................................... 6
1.2. Informe de definicin ........................................................................................... 6
1.2.1.
Razn y oportunidad del proyecto ............................................................... 6
1.2.2.
Situacin actual ............................................................................................ 6
1.2.3.
Estudio del estado de la tcnica en sistemas carpool .................................. 8
1.2.3.1.
Tabla resumen anlisis ....................................................................... 11
1.2.3.2.
Otros sistemas encontrados ............................................................... 16
1.2.3.3.
Detalle de los sistemas ms relevantes .............................................. 17
1.2.3.4.
Conclusiones estudio del estado de la tcnica en sistemas carpool .. 27
1.2.4.
Objetivos y motivacin del proyecto .......................................................... 30
1.2.5.
Alcance........................................................................................................ 31
1.2.6.
Beneficios ................................................................................................... 32
1.2.7.
Visin general del sistema .......................................................................... 33
1.2.8.
Arquitectura tcnica ................................................................................... 37
1.2.9.
Tecnologas ................................................................................................. 37
1.2.10. Justificacin ................................................................................................ 38
1.2.11. Necesidades de informacin ...................................................................... 38
1.2.12. Interfaces .................................................................................................... 38
1.2.13. Anlisis de impactos ................................................................................... 39
1.3. Anlisis de requisitos .......................................................................................... 40
1.3.1
Identificacin de requisitos ........................................................................ 40
1.3.2
Requisitos funcionales ................................................................................ 41
1.3.3
Requisitos no funcionales ........................................................................... 47
Parte 2: Desarrollo del proyecto .................................................................................... 49
2.1. Desarrollo del proyecto ...................................................................................... 50
2.2. Metodologa ....................................................................................................... 50
2.3. Especificacin ..................................................................................................... 53
2.4. Especificacin casos de uso ................................................................................ 57
2.5. Modelo conceptual de datos .............................................................................. 66
2.6. Arquitectura del Sistema .................................................................................... 67
2.6.1
El Rac: Modelo servidor aplicaciones ....................................................... 67
2.6.2
Arquitectura de aplicaciones en capas ....................................................... 69
2.6.3
Arquitectura elegida para el Proyecto ....................................................... 70
2.7. Tecnologa........................................................................................................... 72
2.7.1
Estndares de la web .................................................................................. 72
2.7.1.1 HTTP (Hypertext Transfer Protocol) ....................................................... 73
2.7.1.2 TLS (Transport Layer Security) y HTTPS (Hypertext Transfer Protocol
Secure) 73
2.7.1.3 SMTP (Simple Mail Transfer Protocol) ................................................... 74
ii
iii
iv
Parte 0
Introduccin
0.1.
Para conseguir este objetivo principal se ha de crear un sistema para Carpool (compartir
coche) donde poner en contacto a diferentes personas para crear una comunidad -o como est
actualmente de moda, red social- de personas que comparten recursos de transporte.
Este proyecto, aprovecha el hecho de estar integrado all donde es necesario y ms til: en el
Rac del estudiante, la intranet y campus virtual de la FIB. En el Rac es donde est
centralizada la informacin de la actividad como estudiante, con horarios, cambios y avisos de
asignaturas, informacin necesaria para saber si es necesario desplazarse o no.
En este proyecto se aprovechan las posibilidades tecnolgicas de visualizacin y organizacin
de la informacin, al usar como ncleo de la presentacin de informacin geogrfica el popular
GoogleMaps, pensado en mejorar la experiencia del usuario. Adems, se incorpora un
concepto innovador en los sistemas para carpool: cruzar la informacin de horarios adems
de la proximidad geogrfica y confiabilidad de los usuarios- y permitir la bsqueda de personas
con quien compartir slo si coincide en la misma hora de salida y/o llegada, debido a la
arquitectura flexible de horarios de la FIB.
As pues, desarrollar un sistema web til, fcil, rpido y atractivo de usar -la parte creacin
del ttulo- adaptado para ser incorporado en el marco del Rac la parte implantacin- ser el
resultado del proyecto.
0.2.
Movilidad
Conjunto desplazamientos que las personas y los bienes realizan por motivos laborales,
formativos, sanitarios, sociales, culturales o de ocio, o por cualquier otro.
Movilidad vs Transporte
Segn la Fundaci Mobilitat Sostenible i Segura1, el trmino movilidad se usa a menudo, de
manera errnea, como sinnimo de transporte. Movilidad se refiere a todo el colectivo de
personas y objetos mviles, mientras que el transporte slo considera traslados de tipo
mecnico, olvidando el sector social ms importante y abundante: los peatones. Los peatones
son la base y el objetivo de toda poltica de movilidad: todos los conductores, ciclistas o
usuarios de transporte pblico son peatones en algn momento del da.
Movilidad sostenible
Segn la definicin del World Business Council for Sustainable Development (WBCSD)2, la
movilidad sostenible es aquella capaz de satisfacer las necesidades de la sociedad de moverse
libremente, acceder, comunicar, comercializar o establecer relaciones sin sacrificar otros
valores humanos o ecolgicos bsicos actuales o del futuro.
Esto supone ms que el conseguir reducir la contaminacin que sale de los tubos de escape de
los automviles. En este proyecto, se pretende dar un primero paso en adems de reducir la
contaminacin, ir informando e internalizando los costes socioeconmicos derivados del uso
del vehculo privado.
Carpool
Conocido como viaje compartido en automvil, o simplemente compartir coche, es traducido
literalmente como un conjunto de coches, entendido para estar disponible a varias personas.
Carsharing
Comnmente confundido con carpooling, el carsharing es el uso de vehculos compartidos con
el fin de transporte pblico. A diferencia del carpooling, en el que como mnimo se entiende
hay 2 ocupantes y alguno de los conductores es el propietario del vehculo, en el carsharing
ningn conductor es el propietario, y normalmente no implica la alta ocupacin del vehculo.
Ambos son modelos para aumentar la eficiencia por poca que sea- del vehculo privado: el
carpooling por la va del aumento de la ocupacin media y el carsharing por la
desincentivacin de la compra y el aumento de las horas de uso del vehculo.
FIBPool
Aunque este trmino no hace referencia a ningn concepto de movilidad sostenible, se
incorpora en este listado para clarificar su significado. FIBPool es simplemente el nombre
interno que se le da a la aplicacin durante su desarrollo, derivado de la unin de FIB + Carpool
= FIBPool. De esta manera evitamos tener que hacer una referencia constante y repetitiva a el
sistema, el sistema para carpool, la aplicacin a lo largo del texto de esta memoria.
Parte 1
1.1.
Todo proyecto tiene un inicio donde se analiza la situacin de partida, la oportunidad, alcance
y objetivos, adems de extraer los requisitos que ha de cumplir.
En los siguientes apartados se muestra el informe de definicin del proyecto, que incluye un
estudio del estado del arte de los sistemas para carpool usados en la actualidad.
1.2.
Informe de definicin
Aprovechando que el proyecto no se llev a cabo en el marco del concurso, porque no fue
seleccionado entre los finalistas ni tuvo ningn tipo de atencin en el momento, pero
considerando que poda ser til, surgi la oportunidad de realizarlo como Proyecto Final de
Carrera. As pues, este proyecto pretende desarrollar una prueba piloto del sistema que se
propona originalmente, en un mbito ms reducido, e integrarlo slo en el Rac de la FIB.
adems diario, como indica que el curso 2006-2007 se leyeron 1.267.271 avisos de los
publicados por profesores, etc. Esto nos indica que el sistema que propone este proyecto, si ha
de estar en algn sitio, ha de ser ah, donde adems est centralizada toda la informacin
relativa a horarios y avisos, informacin necesaria para saber si es necesario desplazarse o no a
la Facultad.
As pues, por lo general, para compartir coche en el mbito de la FIB se ha de contar con la
suerte de que se produzca la casualidad de encontrar y conocer una persona que realice un
trayecto similar al de uno mismo.
Se ha realizado una evaluacin de los diferentes sistemas actualmente en uso para determinar
si alguno de ellos poda ser aprovechado total o parcialmente as como para evaluar el estado
de la tcnica actual. Se han comparado las funcionalidades que ofrecen, con el fin de detectar
posibles mejoras o nuevas caractersticas no contempladas en la actualidad. Adems,
mediante esta evaluacin se han detectado las funcionalidades mnimas que ha de ofrecer un
sistema para carpool para que pueda resultar til y atractivo de usar.
As pues, con este estudio se pretende tambin conseguir como objetivo identificar cules han
de ser los mnimos que ha de cumplir un sistema para compartir en la actualidad, adems de
para aprender de algunas interfaces con dificultades de uso, para intentar evitarlas al mximo
y as conseguir que un mayor nmero de usuarios haga uso del sistema.
Se han estudiado los sistemas ms representativos existentes, ya bien sea por su relevancia,
grado de antigedad de implantacin, singularidad o nmero de usuarios.
Aqu se estudian los sistemas informticos y webs para carpool y no los de carsharing ni de
otro tipo o hbridos.
A continuacin se muestra una tabla resumen con el anlisis de diferentes criterios. Despus
de la tabla resumen pasamos a analizar con detalle algunos de los puntos dbiles de los
sistemas ms interesentes.
Tipo: Categorizacin de cmo est enfocado el sistema hacia los usuarios en cuanto a
su uso. Existen principalmente dos tipos de sistemas: tabln y grfico.
Grfico: el sistema est orientado a una bsqueda sobre un mapa real, donde
la informacin se presenta de forma grfica, lo cual facilita la bsqueda de
informacin al estar agrupada por posible inters al inicio o final de la ruta en
la que se desea compartir coche.
Comercial: Sistema con fines lucrativos, del que o bien se vende el software a un
cliente (y luego se pueda no hacer pagar a los usuarios) o bien se hace pagar a los
usuarios por su uso.
Nota: los datos de uso y percepcin de usuarios activos son a fecha de finales de 2009.
10
1.2.3.1.
Sitio
Tipo
Casa
horarios
Soporte
mapa
Georreferenciacin
Comercial
Propsito
general/especfico
Multitrayecto
Avisos automticos y
otros
http://www.compartir.org y http://uab.compartir.org/ compartir.org cifra en unos 50.000 usuarios registrados en todas las versiones (incluida la de la UAB)
Compartir.org
Universitat
Autnoma de
Barcelona
NO
S, paga
quien
ofrece el
servicio.
Usuarios
acceden
gratis.
No
S, mails de
contacto.
Dispone de
autocompletado
por JavaScript en
introduccin datos
para puntos
trayecto.
No
No
General, el sistema no
impone restricciones
de uso ya que son
mensajes en texto
claro.
No
No
NO
No
http://www.vao.es/ulpgc y http://www.vao.es/ Cerca de un centena de usuarios habituales, en ULPGC 23.000 usuarios potenciales
Proyecto VAO:
Universidad de
las Palmas de
Gran Canaria
VAO.es
NO
No
Especfico (para
ULPGC) y general
(vao.es).
No
11
Sitio
Tipo
Casa
horarios
Soporte
mapa
Georreferenciacin
Comercial
Propsito
general/especfico
Multitrayecto
Avisos automticos y
otros
S, uso
gratuito
pero existe
publicidad.
General, cualquier
trayecto.
No
S, contacto
mensajera interna y
mail.
El sistema no impone
restricciones de uso ya
que son mensajes en
texto claro.
No
No
No
No
No
No
Especfico
No
No
NO
Tabln: publicacin de
mensajes de
oferta/demanda a travs
de un mail supervisado.
NO
No
No
No
NO,
aunque
permite
filtrar
bsqued
a por da
No
No
12
NO
No
No
Sitio
Tipo
Casa
horarios
Soporte
mapa
Georreferenciacin
Comercial
Propsito
general/especfico
Multitrayecto
Avisos automticos y
otros
NO
No
No
No
Especfico
No
S, bsico de
mensaje.
ND
No
No
S, cobran
General
cerca de
10.000$ al
ao a cada
universidad
No
S, adems ofrece
integracin opcional
con facebook
NO
Grfico
NO,
aunque
permite
filtrar
por da
en
concreto
http://www.carpoolzone.smartcommute.ca/es/my/
13
Sitio
Tipo
Casa
horarios
Soporte
mapa
Georreferenciacin
Comercial
Propsito
general/especfico
Multitrayecto
Avisos automticos y
otros
Carpool Zone
NO
S, aunque
de uso
gratuito,
cobro para
empresas.
General
S, mensajes,
perfiles, etc.
NO
No
Especfico
No
NO
No
General
No
NO
No
No
No
General
No
No
S, bsico de
http://www.amovens.com/
Amovens
Tabln, ofertas y
demandas en misma
pgina de una ciudad a
otra
14
NO
S, uso
Sitio
Tipo
Casa
horarios
Soporte
mapa
Georreferenciacin
Comercial
Propsito
general/especfico
(bsica)
gratuito
pero existe
publicidad
de commuting
Multitrayecto
Avisos automticos y
otros
mensaje.
http://www.viajamosjuntos.com/ Cerca del centenar de personas /parece un sistema con poca atencin/mantenimiento
Viajamosjuntos.
com
Tabln
NO
No
No
No
General
No
S, bsico de
mensaje.
15
1.2.3.2.
Adems de los sistemas arriba analizados, se han considerado los abajo indicados, pero se han
descartado de un anlisis ms profundo por desviarse demasiado de los requisitos fijados, por
ser demasiado generalistas o simplemente porque estn orientados en otras zonas geogrficas
del resto de Europa o Estados Unidos.
Precisamente, en universidades de EEUU y Canad existe tradicin en la cultura del carpool,
pero muchos sistemas se encuentran cerrados bajo contrasea. Adems, debido a la cantidad
de sistemas ya analizados se ha estimado acotar el anlisis a universidades de Catalunya y
Espaa (salvo alguna excepcin).
http://www.comparteviaje.es/
Orientado a compartir viajes (largos) en general, no slo en coche y no orientado al
commuting (desplazamientos por trabajo/estudios).
Tipo foro, sin soporte grfico ni georreferenciacin, tampoco ofrece cruce de
oferta/demanda de plazas.
http://www.conmicoche.com/
No orientado a desplazamientos regulares por estudios/trabajo.
http://www.compartoelcoche.com/
Tipo tabln de anuncios, con un foro que parece no haberse usado ms que para
pruebas.
Existen tambin tablones y foros de anuncios generalistas, que se usan eventualmente con el
fin de compartir coche:
16
http://www.loquo.com/cs/comunidad/compartir-coche-viajes/101
http://www.mundoanuncio.com/categoria/compartir_coche_36.html
Sin analizar en profundidad, tambin se han tenido en cuenta otros sistemas establecidos que
funcionan en el resto de Europa y Amrica del Norte:
http://www.mitfahrgelegenheit.de/
En colaboracin con el ADAC alemn (el equivalente al RACC de Catalunya)
http://covoiturage.transilien.com/
En colaboracin con la SNCF francesa
http://www.ridebuzz.org
Tipo tabln de anuncios, poco depurado
http://dynamicridesharing.org
Wiki que estudia lo relacionado al fenmeno del carpool, entre otros, sus ventajas y
causas de porqu no pueden funcionar
http://www.erideshare.com/
De tipo generalista, exclusivamente centrado en los EEUU
https://www.carpool.ca
Disponible desde 2001 en la web, protegido bajo contrasea
http://www.carpoolworld.com
Aunque tambin se soporta en grficos, no ofrece demasiadas funcionalidades.
http://www.carpoolking.com
De tipo foro, con una cierta aceptacin en Singapur.
http://www.carbuddy.com/
Dedicado a empresas, parece que no dispone de muchos usuarios.
1.2.3.3.
En este apartado mostramos los puntos dbiles de los 6 sistemas ms relevantes, disponibles
con acceso pblico, y entendiendo relevancia como su estado de evolucin tecnolgica,
popularidad de uso o cercana geogrfica y cultural de algunas universidades.
17
18
Para este sistema, por ser el ms depurado y avanzado que existe (tecnolgicamente y por
funcionalidades e informacin), pasaremos a enumerar los puntos dbiles ms evidentes:
Como se puede observar, este sistema no tiene en cuenta y no se puede guardar el origen
del trayecto tpicamente nuestra casa-, con lo que se ha de escribir constantemente a
cada nueva bsqueda.
Los resultados se muestran en forma de listado, por lo que hay que recorrer todos los
posibles resultados de uno en uno viendo los detalles del trayecto, y pudiendo llegar a
invertir tiempo en verlos todos sin xito.
No hay ninguna manera de evaluar a las personas que comparten y si pueden llegar a ser
confiables o no.
No existe ninguna manera de ponernos en contacto con las personas que compartimos
ms que por la direccin de correo electrnico que tengamos del viaje guardado.
Universitat de Girona
El sistema usado por la Universitat de Girona, Borsa x compartir cotxe promovido por
lOficina Verda/Pla dAmbientalitzaci es un sencillo tabln de anuncios en la web. A pesar de
ser un tabln de anuncios, listando las ofertas y demandas, permite buscar por municipios:
http://www3.udg.edu/ov/mobilitat/borsa/municipis.htm
20
21
22
23
24
Stanford University
La Universidad de Stanford, situada en Palo Alto, California, hace uso del sistema desarrollado
por la empresa Zimride Inc, la cual cobra a la universidad unos 10.000 dlares anuales por este
servicio. Zimride tambin ofrece sus servicios a empresas y otras universidades de Estados
Unidos a travs de www.zimride.com y el sistema es uno de los ms extendidos, y que ms
hace uso de la vertiente social. El sistema en un primer momento se dise como aplicacin
para la popular red social facebook y evolucion hasta ofrecer un sistema independiente,
aunque con posibilidad de integracin bajo el nombre de usuario de facebook. A pesar de
tener una gran financiacin y disponer de un equipo de desarrolladores el sistema no permite
25
filtrar por horarios, aunque s por das concretos en el calendario. Los resultados son
mostrados como listado a pesar de hacer uso de un sistema de informacin geogrfica como
Google Maps.
26
1.2.3.4.
Como se puede apreciar de la tabla resumen y de los detalles de los sistemas evaluados, el
hecho ms llamativo es que en la actualidad ningn sistema cruza totalmente la informacin
horaria entre demanda y oferta de trayectos para mostrar estos resultados a los potenciales
usuarios dispuestos a compartir coche.
Este hecho parece sorprendente, ya que en los trayectos diarios hacia la universidad, un
criterio importante de bsqueda es saber si se va a llegar a la hora de entrada de clases, as
como la hora de salida, aparte de la cercana de la persona para el trayecto. El cruce de oferta
y demanda teniendo en cuenta criterios horarios puede facilitar la bsqueda de trayectos a
compartir, pero no cabe olvidar que este filtro slo ser til a partir de un cierto nmero de
usuarios concentrados en una misma zona con trayectos similares.
En cuanto a los sistemas usados en diferentes Universidades, se puede apreciar una disparidad
de evolucin de los sistemas, desde el ms sofisticado de la UAB, gracias a la tecnologa
comercial de Compartir.org, a los ms sencillos tablones de uso con intermediacin y
recepcin de ofertas por parte de una persona responsable como puede ser el de la
Universidad de Mlaga.
As pues, se puede ver que, de los sistemas que se mantienen activos, hay iniciativas con
buena intencin pero poco cuidadas actualmente, como los de la Universitat de Girona o la
Rovira i Virgili. Esto se puede deber a muchos factores, como pueden ser el apoyo
institucional, falta de financiacin, el grado de uso del sistema (un aspecto comn de todos
estos sistemas es que no parecen ser usados masivamente) y/o desinters por parte de los
usuarios, etc. Independientemente de estos factores, se puede pensar que cuantos ms
alumnos se puede hacer necesario un sistema ms sofisticado para facilitar a los potenciales
usuarios la bsqueda de trayectos compartidos y que as no decaiga el inters y la voluntad de
apoyo a estos sistemas.
27
En cuanto a la orientacin de los sistemas si restringen el punto de partida o destinoobviamente, depende del uso al que est destinado el sistema, pero aquellos que estn
integrados en las pginas universitarias gozan de una mayor visibilidad y estn ms al alcance
del usuario, lo cual es un apoyo importante para que el sistema pueda ser usado. Adems, al
estar integrados se puede hacer llegar informacin ambiental a los alumnos de forma directa,
rpida y efectiva.
Por otra parte se puede ver que los sistemas que ofrecen la posibilidad de ponerse en contacto
a los usuarios entre s gracias al envo de mensajes o correos desde el propio sistema son
eminentemente ms tiles que la intermediacin de un administrativo, con lo cual es un
mnimo obligatorio en la actualidad que el sistema ofrezca la posibilidad de enviar mensajes de
contacto automatizados.
Aspectos a destacar
A partir de estas conclusiones, podemos extraer que el sistema ms completo y sofisticado y
que podra ser ms til, es el que ofrece comercialmente la empresa Compartir.org, pero este
es de cdigo privado hay que pagar un licencia para su despliegue y uso en la FIB, lo cual
dificulta la viabilidad de la implantacin del sistema. Por otra parte, tampoco ofrece la
posibilidad de casar horarios, cruzando la informacin de oferta y demanda en funcin de la
hora de llegada/salida, y as aprovechar la informacin de horarios de alumnos existente en el
Rac.
As pues se ve que est justificado y es necesario desarrollar un sistema nuevo desde cero,
para tener un sistema actual, con nuevas caractersticas no ofrecidas por los sistemas actuales.
De este estudio, tambin se puede extraer una primera iteracin de los requerimientos para
satisfacer las necesidades de los potenciales usuarios y que, para este tipo de sistemas, es
necesario integrar unos nuevos mnimos como la casacin de oferta y demanda en base a la
28
hora de llegada/salida, una orientacin ms grfica aprovechando las posibilidades que nos
ofrecen los mapas dinmicos y la georreferenciacin. En estos nuevos mnimos necesarios hay
que adaptar el sistema a las necesidades e infraestructuras tecnolgicas propias de la FIB, y el
Rac, donde gozar de una visibilidad adecuada para que las personas que lo quieran usar
puedan disponer de la herramienta lo ms til posible y que queda disponible para ampliar y
perfeccionar en un posible futuro uso a nivel UPC.
29
As pues, el objetivo principal del proyecto es desarrollar un sistema -una aplicacin web- con
el que las personas se puedan poner en contacto para que se llegue a racionalizar el uso del
vehculo privado en los desplazamientos a y desde la FIB, que incluya las caractersticas
mnimas necesarias para que sea til, fcil, rpido y atractivo de usar a la hora de poner en
contacto a diferentes personas que tengan la opcin de compartir sus trayectos habituales.
Se quiere desarrollar una aplicacin web, compatible para ser integrada en el Rac, para que
se puedan encontrar y poner en contacto las personas vinculadas a la FIB que realicen
trayectos similares en sus desplazamientos habituales.
30
Ofrecer informacin y estadsticas de carcter ambiental acerca del coste del viaje, as
como otra informacin relacionada de concienciacin ambiental.
Por otra parte, otro objetivo, ms personal, es el de aprender, investigar e integrar diferentes
tecnologas que no se tratan en la carrera.
1.2.5. Alcance
Este proyecto est definido bajo un mbito de las personas vinculadas a la FIB y contempla:
4. La aplicacin se comunicar con el sistema de autenticacin del Rac, para que el usuario
slo tenga que escribir una vez su contrasea (Single Sign On) y as dar la imagen al usuario
de aplicacin integrada. As pues, la aplicacin no contempla la gestin tpica de usuarios
en cuanto a creacin y modificacin, ya que esa funcionalidad se obtiene directamente del
Rac, con lo cual queda externa a la aplicacin a desarrollar.
1.2.6. Beneficios
Los principales beneficios que se esperan obtener del nuevo sistema son:
Maximiza y agiliza las posibilidades de ponerse en contacto entre posibles usuarios que
no se conocen.
32
Facilita la concienciacin social del uso racional del vehculo privado, por la
informacin que ofrece y el mero hecho de estar a la vista en una web de uso diario.
Administrador: Ser personal capacitado encargado de velar por una buena operacin de la
aplicacin, mediante el mantenimiento o ajuste de los parmetros necesarios de la aplicacin,
as como de las instalaciones de hardware necesarias, y podr gestionar las estadsticas y
eventuales bajas de usuarios, as como las tareas funcionales del sistema.
Usuario: Ser cualquier persona que disponga de una cuenta en el Rac, y que desea ponerse
en contacto con otros usuarios para compartir trayectos o gestionar la actividad relacionada
con el hecho de compartir viaje.
1.2.7.2.1.
Acceso al sistema
El acceso al sistema se realiza a travs del mismo formulario que el del acceso al Rac, ya que
se ha de dar la sensacin al usuario de que la aplicacin est integrada en l. Adems, el
acceso al sistema ha de cumplir con la premisa, que una vez autenticado un usuario en el
sistema, este tambin lo estar en el Rac (Single Sign-On).
33
Dependiendo del perfil con el que se est accediendo, usuario o administrador, se tendrn ms
privilegios al acceso a algunas funcionalidades. No obstante, la seguridad del acceso al sistema
se realiza en todas las pginas de la misma forma independientemente del perfil: Se validar
con usuario y contrasea.
1.2.7.2.2.
Esta funcionalidad permitir a los usuarios activar de forma rpida y fcil su cuenta en el
sistema. Esta cuenta ya estar completada con algunos datos obtenidos a travs del Rac,
concretamente, se partir del horario matriculado as cmo la direccin de correo que
disponga. As pues, en el primer acceso al sistema, el usuario deber indicar o confirmar como
mnimo los siguientes datos:
-
Horario
Direccin de correo
Direccin fsica
1.2.7.2.3.
1.2.7.2.4.
Esta funcionalidad permitir, a travs del horario, configurar el nivel de privacidad de los datos
que se comparten y se muestran a otros usuarios del sistema. Tambin permite la
modificacin de los datos introducidos al activar la cuenta, como la direccin fsica que se
georreferenciar.
1.2.7.2.5.
34
Bsqueda de trayectos
Esta es la funcionalidad principal del sistema, que permitir, de forma visual sobre un mapa
dinmico e interactivo, encontrar los compaeros dispuestos a compartir viaje, que adems
coincidan con el horario definido por el usuario. El mapa se mostrar de diferentes maneras:
-
General, mostrando resultados por proximidad del resto de usuarios del sistema.
Sobre los mapas dinmicos aparecern los usuarios, de los que se podr obtener ms
informacin detallada acerca de la oferta/demanda de compartir viaje, as como la valoracin
de confianza obtenida por otros usuarios.
Adems, el mapa permitir mostrar los resultados con mayor o menor precisin, en cuanto a
distancia entre usuarios alrededor del punto de salida/llegada del trayecto, que ser el lugar
donde haya indicado el usuario marcado como casa. Tambin permitir definir cierto
margen en las horas de entrada/salida.
El sistema tambin informar, con carcter general, del nmero de usuarios coincidentes que
tienen un mismo horario, de entrada y/o salida, que el usuario que haya iniciado sesin.
1.2.7.2.6.
Detalles de trayectos
1.2.7.2.7.
Gestin de avisos
Esta funcionalidad ha de permitir enviar, leer, archivar y borrar avisos mensajes internos- a
los usuarios del sistema con los que se tenga una relacin de contacto. Adems esta
funcionalidad puede aparecer en una primera pantalla que reciba el usuario, informando de
nuevos avisos recibidos.
1.2.7.2.8.
35
Esta funcionalidad ha de permitir ver, aceptar y/o cancelar las peticiones de viaje compartido,
as como borrar las peticiones antiguas. Tambin permitir ver con que usuarios se comparte
viaje actualmente y tener un resumen de costes econmicos y ambientales ahorrados.
As mismo, esta funcionalidad podr aparecer en la primera pantalla que reciba el usuario,
informando de los nuevos mensajes y peticiones para compartir trayecto que no se hayan
ledo.
Adems, por cada contacto con el que se comparta, esta funcionalidad permitir ver, crear,
modificar y borrar los comentarios y valoraciones que se realicen a otros usuarios. Esta
herramienta servir para generar un ndice de confianza del usuario, en cuanto a puntualidad,
seriedad y otros aspectos importantes a la hora de compartir viaje. Los comentarios, no
obstante, podrn ser reportados eventualmente a un administrador para su revisin, y
eventual eliminacin, si se consideran ofensivos, as como la posibilidad de rplica pblica a los
comentarios.
1.2.7.2.9.
1.2.7.2.10.
1.2.7.2.11.
El sistema ofrecer informacin relevante en cuanto al uso del sistema, as como de unos
consejos a la hora de compartir viaje, y las ventajas que supone el uso del sistema. Tambin,
podr mostrar la informacin estimada de usuarios activos, viajes compartidos y emisiones
estimadas ahorradas gracias al uso del sistema.
36
1.2.9. Tecnologas
En este apartado se enumeran las principales tecnologas necesarias y vinculadas a la
realizacin del proyecto. Cabe destacar que el sistema se puede implantar en diferentes
servidores web y de correo, siempre que soporten la tecnologa en la que se desarrolla el
proyecto. En la parte 2 de esta memoria se detallan en profundidad estas tecnologas.
37
1.2.10. Justificacin
La justificacin, alternativas y detalles de la eleccin de estas tecnologas se trata en
profundidad en la parte 2 de esta memoria, aunque no obstante, se enumeran tambin unas
razones principales para su eleccin:
-
Desde un punto de vista tcnico parecen las ms adecuadas para este proyecto, ya que
ofrecen la suficiente seguridad, flexibilidad, funcionalidad y rendimiento para los
objetivos del proyecto.
1.2.12. Interfaces
Las interfaces habrn de estar preparadas para ser mostradas en los diferentes idiomas en los
que se ofrece el Rac en la actualidad: Cataln, Castellano e Ingls. As pues, la aplicacin
deber estar preparada, mediante las tcnicas de internacionalizacin (i18n) y localizacin
38
(L10n) para poder ser ofrecida en estos tres idiomas de una forma en la que el cdigo de la
aplicacin sea independiente del idioma en que se muestre la interfaz.
Por otra parte, la interaccin que los usuarios hagan con el sistema se har mediante pantallas
grficas dinmicas, dependientes de la funcionalidad que se est ejecutando. En la parte 2 de
esta memoria se detalla en profundidad el diseo de interfaces.
El sistema es una nueva aplicacin que ofrece un servicio hasta ahora no contemplado en el
Rac. La implantacin del sistema ayuda y facilita en gran manera a las personas a ponerse en
contacto para compartir trayectos. Tambin ofrece una herramienta potente de
concienciacin y ayuda a mejorar la movilidad generada por la FIB.
Si el sistema acaba siendo implantado en el uso real y diario del Rac, no se espera un rechazo
del sistema, puesto que tal servicio no se ofrece actualmente y constituye la cobertura de una
cierta necesidad para algunos usuarios. No obstante, y a pesar de las ventajas inherentes de
usar el sistema habra que luchar contras las reticencias sociales de compartir vehculo
privado, que haran incrementar el uso del sistema.
1.2.13.2
En la infraestructura informtica
Para la implantacin del sistema no habra que realizar ninguna gran modificacin, puesto que
el LCFIB dispone de la infraestructura adecuada para poder implantar el sistema.
1.2.13.3
Econmicos
La valoracin econmica general del proyecto aparece como captulo individual en la parte 3
de la memoria, como valoracin econmica. No obstante, derivado del uso del sistema se
pueden obtener diferentes beneficios econmicos. Para cuantificar las mejoras en las
externalidades del uso del vehculo privado en los desplazamientos habituales por estudios
habra que realizar un estudio que escapa del mbito de este apartado. Sin embargo, el propio
sistema incluir un sistema de estadsticas que ofrecer una estimacin de los ahorros directos
39
1.2.13.4
Proceso de conversin
1.2.13.5
Riesgos
El riesgo ms importante al que se enfrenta el sistema es al poco uso, as como las reticencias
de los usuarios para compartir sus vehculos privados en los desplazamientos a y desde la FIB,
a pesar de las importantes ventajas que supone hacerlo.
Precisamente, para combatirlos, el propio sistema est definido para ser integrado en el Rac,
con lo cual se gana visibilidad y no es necesaria una gran campaa de informacin de la
existencia del sistema, puesto que estar disponible en un lugar visitado frecuentemente. Por
otra parte, para combatir las reticencias sociales se dispone de la funcionalidad de valoracin
de fiabilidad de los usuarios del sistema, pero se tendra que estudiar la posibilidad de realizar
una campaa informativa y de sensibilizacin, as como explorar otras alternativas para
fomentar su uso, como el envo gratuito de un nmero limitado de SMS como extensin del
sistema de avisos- si se comparte con alguna persona y se ha completado su valoracin y
comentarios, etc.
1.3.
Anlisis de requisitos
40
Los requisitos no funcionales son aquellas necesidades del sistema en general, y que no
afectan a un comportamiento especfico en concreto.
Recordamos que la principal finalidad del sistema es que las personas se puedan poner en
contacto para poder compartir trayectos.
De ahora en adelante, y para no tener que estar haciendo referencia a el sistema el sistema
para carpool etc. se har referencia a FIBPool que es el nombre interno que se le da en el
desarrollo, derivado de la unin de FIB + Carpool = FIBPool.
41
de navegacin disponibles.
4. Carga del idioma inicial
Carga del idioma por defecto de la interfaz internacionalizada: Catal.
5. Carga de la vista inicial
Carga de la pantalla de bienvenida con el resumen de los datos y estado del usuario en la
aplicacin, comos las novedades en cuanto a personas que desean compartir o comparten
actualmente, avisos recibidos, ahorros conseguidos, valoracin en el sistema, etc.
Soporte multilinge
6. Seleccin de idioma
Seleccin del idioma desde cualquier parte del sistema y cambio inmediato del idioma de
la vista de la aplicacin por la que se est navegando. Los idiomas disponibles sern
Cataln, Castellano e Ingls, no obstante FIBPool estar preparado para ser traducido a
cualquier otro idioma con tan slo traducir sus textos.
Informacin de usuario
7. Alta de usuario
Registro de los datos de usuario necesarios para poder utilizar la aplicacin. Los datos
disponibles, como nombre y apellidos, direccin de correo electrnico de la FIB, y horario
matriculado en la FIB ya aparecern rellanados en el formulario, pendientes de la
validacin.
Para la introduccin de los datos de direccin, se usar un mapa dinmico para poder
georreferenciar (traducir a unas coordenadas geogrficas) la direccin fsica.
8. Modificacin usuario
Modificacin de los datos de usuario facilitados en el alta, adems la direccin fsica se
podr modificar mediante un mapa dinmico georreferenciando directa (proceso por el
que dada una direccin fsica se obtienen unas coordenadas) o inversamente (dado un
punto de coordenadas en un mapa, se obtiene una direccin fsica).
9. Modificacin horario y preferencias disponibilidad
El horario registrado en el alta de usuario se puede modificar dentro de unos mrgenes, as
cmo las preferencias para compartir que se tengan para cada da de la semana, as como
decir si est dispuesto a compartir o no en algn determinado das.
10. Recuperacin horario original matriculado
Recupera automticamente el horario original matriculado en la FIB en cualquier
momento, por si se hubiera modificado y se quisiera recuperar la informacin original
rpidamente.
42
Privacidad
adems del radio de accin en km, el margen de horas desde las que se desean encontrar
coincidencias.
Tambin se informar al usuario del nmero total de usuarios registrados que tienen un
horario coincidente al que tenga el usuario que realiza la bsqueda, como orientacin ante
posibles coincidencias.
17. Detalles de los trayectos
Una vez mostrados los resultados de la bsqueda, se obtendr informacin detallada del
trayecto a compartir, con distancias, costes econmicos y ambientales estimados, etc. En
esta informacin sobre trayectos tambin aparecer la valoracin del usuario en la
comunidad FIBPool.
18. Envo de peticin contacto para compartir
Con los detalles de los trayectos se podr hacer una peticin de contacto para compartir
trayectos. Estas peticiones se crearn y se podrn gestionar en el sistema y tambin se
recibir copia de la peticin por correo electrnico. Se controlarn el nmero de peticiones
enviadas por fecha para evitar abusos del sistema y molestias de recepcin masiva de
correos electrnicos a los usuarios (medida anti flooding).
Gestin de avisos
Gestin de contactos
Gestin de valoraciones
cualquier texto a modo de comentario. Del mismo modo, se podrn ver las notas y textos
recibidos por parte de las personas con que se comparte.
32. Creacin de comentarios y valoraciones
Emisin de una opinin como una nota numrica y comentario en texto acerca de otro
usuario con el que se comparte. Adems de registrarse en el sistema, se enviar una
notificacin por correo electrnico a la persona receptora de la valoracin. Las
valoraciones en forma de nota se recalcularn de forma ponderada para el usuario que la
reciba.
33. Modificacin de comentarios y valoraciones
Modificacin de una opinin de otro usuario con el que se comparta, anteriormente
emitida.
34. Visualizacin de valoraciones usuarios
De forma separada al comentario, se podr consultar la valoracin, en forma de nota
numrica ponderada, del usuario actual, adems del resto de usuarios.
Administracin
46
Estadsticas y ayuda
Transversales al sistema
47
En este punto, con todo el listado detallado de requisitos a satisfacer, ya podemos hacer una
planificacin de las diferentes etapas para que el proyecto pueda llegar a buen puerto.
Por claridad de la estructura de este documento, la planificacin as cmo el presupuesto han
quedado incluidos en posteriores apartados, para as poder poner en comparativa la
planificacin inicial prevista y las desviaciones.
48
Parte 2
49
2.1.
Hasta este momento, tenemos una idea ms o menos clara de qu sistema es el que hay que
desarrollar, pero es a partir de este momento en el que se empiezan a tomar decisiones.
En esta parte de la memoria se detallan estas decisiones que harn que el proyecto pase de la
idea a ser una realidad. A partir de ahora se detallarn las decisiones importantes en cuanto a
metodologa, modelado de datos, arquitectura, diseo lgico y fsico, tecnologas utilizadas y el
resto de decisiones relevantes a la consecucin de los objetivos marcados.
2.2.
Metodologa
Para el desarrollo del proyecto se sigue una metodologa flexible de desarrollo, inspirada por
una parte en el desarrollo en espiral que implementa el Proceso Unificado Racional -conocido
como RUP5- y por otra parte haciendo uso de algunos de los principios del Manifiesto gil de
desarrollo del software, aunque siempre teniendo en mente las herramientas ms tiles
enseadas a lo largo de la carrera en las asignaturas de Enginyeria del Software.
Esta combinacin de algunos de los aspectos de agilidad con una metodologa ms formal
supone un equilibrio y una naturalidad que hacen que el desarrollo del proyecto est
correctamente orientado sin sufrir la asfixia de los formalismos derivados de algunos procesos
estrictos de algunas de las metodologas clsicas.
El proceso deber adaptarse a las caractersticas propias del proyecto. El tamao del mismo,
as como su tipo y condicionantes, influirn en su diseo especfico. Tambin se deber tener
en cuenta el alcance del proyecto en un rea subformal.
Las partes del proyecto se entregan, de un modo interno, en etapas iteradas. En cada iteracin
se analiza la estabilidad y calidad del producto obtenido, y se refina la direccin del proyecto.
50
Este principio dominante motiva el uso de conceptos reutilizables tales como los patrones del
software o marcos de referencia frameworks. Esto evita que los ingenieros de software vayan
directamente de los requisitos a la codificacin de software, sin saber con certeza qu codificar
para satisfacer de la mejor manera los requisitos y sin comenzar desde un principio pensando
en la reutilizacin del cdigo. Un alto nivel de abstraccin tambin permite discusiones sobre
diversos niveles y soluciones arquitectnicas. stas se pueden acompaar por las
representaciones visuales de la arquitectura, por ejemplo con el lenguaje UML.
Enfocarse en la calidad
El control de calidad no debe realizarse al final de cada iteracin, sino en todos los aspectos del
desarrollo del proyecto. El aseguramiento de la calidad forma parte del proceso de desarrollo y
no de un grupo independiente o unas comprobaciones a posteriori.
Junto con dos de los cuatro valores principales que emanan del Manifiesto gil6:
Por supuesto que los procesos ayudan al trabajo y son una gua de operacin. Las
herramientas mejoran la eficiencia, pero sin personas con conocimiento tcnico y actitud
adecuada, no producen resultados. Aunque valorar ms a los individuos que a los procesos
est ms orientado al desarrollo en empresas, es til tener en cuenta las herramientas y la
documentacin, aunque siempre sin asfixiar el proyecto por el sobreesfuerzo de la
documentacin rgida e inflexible.
Como resumen del ciclo de vida de una metodologa RUP, podemos encontrar el detalle de sus
fases en la siguiente ilustracin.
51
Ilustracin 10: Ciclo de vida formal en fases de un proyecto, segn la metodologa RUP
No obstante, en este proyecto se sigue una versin flexible de este, aunque la flexibilidad no
significa carencia de estructura o descontrol, por lo que en este proyecto tambin se siguen
algunos de los pasos clsicos como el uso del lenguaje de modelo UML, tal y como sigue en el
apartado de especificacin.
52
2.3.
Especificacin
La utilizacin de UML proporciona una ayuda en la comunicacin de los modelos del Proyecto,
al proporcionar una semntica suficiente para capturar las decisiones estratgicas y tcticas, y
proporcionar una notacin robusta desde el anlisis al diseo del Proyecto.
Desde el ao 2005, UML es un estndar aprobado por la ISO como ISO/IEC 19501:2005
Information technology Open Distributed Processing Unified Modeling Language (UML)
Version 1.4.2 pero la notacin UML fue propouesta por Rational Software Corporation y
posteriormente estandarizada por el Object Management Group (OMG). UML es el resultado
del esfuerzo de unificacin de las metodologas OMT, Booch i OOSE.
Ilustracin 11: Jerarqua de diagramas UML 2.0, representado como diagrama de clases
53
Modelo de la especificacin
Una vez tenemos el anlisis de requerimientos completo y detallado, el paso siguiente a seguir
es la especificacin del sistema. En la especificacin el objetivo es aclarar qu es lo que tiene
que hacer el sistema, pero sin entrar en detalles tecnolgicos todava. Es una de las partes
difciles para muchas personas, puesto que requiere un esfuerzo de abstraccin para hacer la
especificacin totalmente independiente de la tecnologa.
Para este apartado usaremos algunas de las herramientas tpicas de las etapas de
especificacin con son el modelo de casos de uso y el modelo conceptual de datos.
El modelo de casos de uso forma parte de la clasificacin de diagramas UML segn una vista
esttica. Como ya hemos dicho este modelo nos ayuda a describir el sistema, y en concreto
sus propsitos son: especificar el contexto del sistema, capturar los requerimientos del sistema
y conducir la implementacin.
Para este proyecto se han identificado las categoras de usuarios potenciales que intervienen y
que se detallan a continuacin:
54
Cabe destacar, que para mejorar la claridad del diagrama de casos de uso, a pesar de existir la
jerarqua de usuarios descrita, todos estos se engloban como dos nico actores: usuario
registrado FIBPool estndar y administrador.
Esta licencia se ha tomado puesto que el usuario con cuenta en Rac nicamente puede
acceder al sistema y ser redirigido a un caso de registro en el sistema. Adems, los actores
invisible simplemente sufren la restriccin que para los casos de uso de bsquedas en el
sistema no estn contemplados.
Adems, en la siguiente figura con el diagrama de casos de uso, se entiende que el Usuario
administrador accede a todos los casos de uso del Usuario registrado FIBPool, pero no se
marcan las relaciones por claridad del diagrama.
55
56
2.4.
Caso de uso:
Actores:
Descripcin:
Sistema
1. Activa una carga del FIBPool, llamando a 2. Comprueba las credenciales del usuario
una URL
contra
el
sistema
de
autenticacin
el
usuario
centralizado de El Rac.
3.
Comprueba
que
est
registrado en el sistema.
4. Carga los contenidos en el idioma por
defecto.
5. Carga los mens dinmicos con los
contenidos del sistema.
6. Carga la vista pedida por el usuario
57
Escenario alternativo:
-
Paso 3: Error al usuario con cuenta Rac, deber registrarse en el sistema, aplicndose
en ese momento el caso de uso Alta en el sistema. El usuario registrado en FIBPool
no tendr este error.
Comentario:
Para no repetir el cuadro del caso de uso, para un usuario administrador, el paso 5 cargar los
mens dinmicos mostrando las funcionalidades de administracin.
Caso de uso:
Alta en el sistema
Actores:
Descripcin:
Sistema
1. Entra por primera vez a cualquier URL 2. Comprueba las credenciales del usuario
del FIBPool
contra
el
sistema
de
autenticacin
centralizado de El Rac.
3. Recoge los datos de horario matriculado
del usuario desde El Rac.
4. Recoge los datos de nombre y apellidos y
articula la direccin de correo electrnico
de la FIB
5. Carga la vista con el formulario de
registro para el usuario, incluyendo un
mapa dinmico.
6. Usuario completa los campos de
informacin no rellenados por el sistema
58
Escenario alternativo:
-
Caso de uso:
Actores:
Descripcin:
Sistema
de
59
entrada/salida.
4. Comprueba la validez de las horas
introducidas si se han cambiado, as cmo
el cambio de preferencias, y en caso que no
tenga ninguna preferencia cambiar el nivel
de privacidad del usuario por uno superior.
5. Registra los datos modificados e informa
de los cambios realizados.
Escenario alternativo:
-
Paso 4: Error si no se han introducido las horas de forma correcta, o si la hora de salida
es mayor a la de entrada, as como si se ha marcado preferencia para compartir sin
tener una hora de entrada/salida para tal da.
Comentario:
Si el usuario no tiene disponibilidad se entender como que necesita ms privacidad, por lo
que no aparecer en el resto de bsquedas de otros usuarios.
Caso de uso:
Seleccin de idioma
Actores:
Descripcin:
Sistema
1. Usuario hace clic en un idioma de los 3 2. Se recarga la pgina con los contenidos
disponibles en los que se ofrece la interfaz
Caso de uso:
Actores:
60
Descripcin:
Sistema
1. Hace clic en la opcin buscar cerca del 2. Carga un mapa, mostrando los usuarios
men
Escenario alternativo:
-
Paso 2: Error si el usuario tiene definido un nivel de privacidad alto, en el que no tiene
preferencias para compartir marcadas o no dispone de un horario completado. No se
le mostrarn los resultados, tan slo un mapa informando del error.
Comentario:
Los casos de uso de interaccin con el mapa tendran una relacin de tipo extends sobre los
mapas de resultados de las bsquedas, puesto que son dinmicos.
Caso de uso:
Actores:
61
Descripcin:
Sistema
1. Hace clic en la opcin buscar por da del 2. Carga un mapa, mostrando los usuarios
men
62
Escenario alternativo:
-
Paso 2: Error si el usuario tiene definido un nivel de privacidad alto, en el que no tiene
preferencias para compartir marcadas o no dispone de un horario completado. No se
le mostrarn los resultados, tan slo un mapa informando del error.
Comentario:
Los casos de uso de interaccin con el mapa tendran una relacin de tipo extends sobre los
mapas de resultados de las bsquedas, puesto que son dinmicos.
Caso de uso:
Actores:
Descripcin:
Sistema
1. Hace clic en el icono que representa la 2. Carga los detalles de la ruta compartida,
disponibilidad para compartir de una mostrando
los
costes
econmicos
63
Escenario alternativo:
-
Comentario:
Este caso de uso tiene una inclusin (relacin include) de los casos de uso de bsqueda., a
partir de los cuales nace este caso de uso.
Caso de uso:
Actores:
Descripcin:
Sistema
1. Hace clic en Compartir con en las 2. Carga los comentarios introducidos por
peticiones recibidas o bien en la entrada al el usuario con el que se va a compartir
sistema
Comentario:
De forma anloga ser el caso de uso rechazar peticin, aunque con un efecto a la inversa en el
registro del nuevo estado para el paso 4.
Caso de uso:
Actores:
64
Descripcin:
Sistema
1. Hace clic en la opcin del men para ver 2. Carga la lista de personas con las que se
sus contactos
est compartiendo.
6.
Ilumina
la
cantidad
de
estrellas
seleccionadas
7. Escribe un comentario sobre el otro
usuario y hace clic en enviar valoracin
8. Registra la valoracin dada as como el
comentario.
Escenario alternativo:
-
65
2.5.
En este apartado se definen los objetos bsicos, las mnimas entidades propias necesarias que
utilizar la aplicacin para cumplir los requisitos extrados y los casos de uso de sus respectivos
anlisis, mostrados en el modelo conceptual de datos.
Restricciones textuales
Restricciones de integridad, calves externas:
RT1: (Usuario, id), (Historico, fechaGenerado), (Intervalo, idUsuari+diaSemana), (Fecha, fecha)
RT2: No puede haber un contacto de dos mismos usuarios en fechas diferentes.
RT3: Las valoraciones no pueden ser de un mismo usuario.
RT4: Los contactos no pueden ser de un usuario a s mismo.
RT5: Los avisos no pueden ser de un usuario a s mismo.
Otras consideraciones:
La clase trayecto est fuera del sistema a desarrollar, siendo SIG el Sistema de Informacin
Geogrfica.
66
2.6.
Una vez se ha definido qu es lo que debe hace el sistema, es necesario decidir cmo lo har.
Antes de introducirnos en la parte en la que se empieza a decidir el cmo, -la fase de diseohay que analizar previamente la arquitectura del proyecto. Para empezar a tomar decisiones
acerca de cmo se debe estructurar la arquitectura fsica del sistema hay que estudiar los
condicionantes existentes, como son que el sistema se enmarcar en los sistemas relacionados
del Rac, en el LCFIB (Laboratori de Clcul de la Facultat dInformtica de Barcelona).
67
Con este modelo se pueden obtener algunas ventajas importantes como son:
-
Poca necesidad de recursos para la capa de presentacin, puesto que esta se realiza en
buena parte por los clientes ligeros como son los navegadores de Internet.
Gracias a este modelo se pueden realizar peticiones a objetos remotos de forma transparente,
sin la necesidad de saber exactamente qu mquina es la responsable, de tal manera como si
fueran peticiones locales. En este modelo, como modelo de distribucin, ha de existir un
coordinador que se encargue de la admisin de peticiones y la redireccin de estas al lugar
adecuado.
68
Tal y como se puede en la figura 16, nuestro coordinador son los servidores de aplicaciones
marcados como Apache (el servidor web usado) y que sern los responsables de que todos los
servicios (otros servidores de aplicaciones como los Tomcat) estn disponibles de forma
transparente a los clientes.
As pues, tenemos una primera indicacin de cmo tendr que estar enmarcada la
arquitectura del sistema de este Proyecto: como servicio independiente, coordinado a su vez
por un servidor web apache. Ilustrado grficamente, quedara en la parte superior, en la zona
de los puntos suspensivos.
69
La capa de datos es proporcionar a la capa de negocio los datos necesarios para operar y poder
servir las peticiones que se demanden desde la capa de presentacin. Adems, es la
responsable de la persistencia de los datos.
Mayor sencillez de los clientes y mejor rendimiento, puesto que se pueden compartir
tareas en un servidor.
70
Capa de presentacin
Como podemos ver en la ilustracin 17 anterior la capa de presentacin est formada
bsicamente por los navegadores de la parte cliente. Estos navegadores hacen las peticiones al
servidor de aplicaciones, que acta como servidor web, proveyendo las pginas y contenidos
dinmicos desde el servidor a los navegadores. Los navegadores ms populares usados
actualmente (Firefox, Internet Explorer, Chrome, Opera, Safari, etc.) todos implementan
correctamente (aunque con diferencias en algunos casos, como la versin de CSS) los
estndares de presentacin (X)HTML, DOM, CSS, JavaScript, lo cul nos respalda en la eleccin
de estas tecnologas estndar para este Proyecto.
Capa de negocio
En la capa de negocio es dnde, reside la parte importante se podra decir el ncleo o
corazn que bombea la informacin- de toda la arquitectura, puesto que es ah donde estn
implementados los procesos de la aplicacin.
Para esta parte, en el FIBPool se usa en la implementacin de las clases el lenguaje de
programacin PHP, junto JavaScript y XML para las clases y la parte relativa a los mapas
dinmicos provistos, finalmente, por el Sistema de Informacin Geogrfica GoogleMaps (ver
ms detalles en el apartado Bsqueda de Sistema de Informacin Geogrfica).
Para la obtencin de informacin desde la capa de datos se usan clases en PHP, que sern las
encargadas de comunicarse con el resto de sistemas como el CAS, Servidor Central de
Autenticacin, y los dems sistemas de El Rac destinados a obtener datos de informacin
horaria. Ms adelante, se tratan los detalles de diseo en sus respectivos apartados. Existe una
excepcin que es en la informacin de resultados que se presenta en los mapas dinmicos,
donde esta se procesa como datos en XML para poder ser tratada por funciones JavaScript y
ser mostradas en la capa de presentacin. En el apartado de diseo referente a las bsquedas
se puede encontrar el funcionamiento exacto detalladamente.
En la capa de negocio tambin reside el servidor de correo, pero no se detalla en profundidad
puesto que la responsabilidad de este se ha decido quede transparente al mbito de este
Proyecto, por ser responsabilidad del LCFIB.
71
Capa de datos
La capa de datos, encargada de la persistencia y obtencin de informacin en este proyecto
consiste en un Sistema Gestor de Bases de Datos MySQL, el cual tendr la Base de datos
relacional. Para el acceso a los datos se usarn las pasarelas y drivers existentes provistos por
el lenguaje PHP para poder acceder a los datos, que sern llamadas por las clases PHP que
articularn el modelo de datos. Tambin, como en la capa de negocio, se detalla el
funcionamiento exacto y patrones de diseo implementados en el apartado de diseo del
sistema.
En esta capa es desde dnde se obtendrn los datos de distancias totales de rutas e
informacin de horarios de usuarios, como se detalla en sus respectivos apartados ms
adelante.
2.7.
Tecnologa
En este apartado, se detallan cuales son las tecnologas base usadas y se consideran los
aspectos tecnolgicos de los sistemas basados en la web. Se enumera cada tecnologa base
usada para la realizacin de este proyecto, junto una breve explicacin y ficha resumen de
cada una, adems de su justificacin de eleccin y alternativas.
RFC: Request For Comments, o peticin de comentarios, un documento cuyo contenido es una
propuesta, aceptacin o aclaracin oficial para un nuevo protocolo de Internet, en el que se explica el
protocolo con todo detalle para que en caso de ser aceptado pueda ser implementado sin
ambigedades.
72
El protocolo HTTP define la sintaxis y la semntica que utilizan los elementos de software de la
arquitectura web tales como clientes y servidores en su comunicacin. Es un protocolo
orientado a transacciones y sigue el esquema peticin-respuesta entre un cliente y un servidor.
Adems, HTTP es un protocolo sin estado, en el que no se guarda ninguna informacin sobre
conexiones anteriores. Este protocolo est ubicado en la capa de aplicacin de la pila de
protocolos de Internet.
2.7.1.2 TLS (Transport Layer Security) y HTTPS (Hypertext Transfer Protocol Secure)
73
TLS. El RFC 2818 especifica de forma formal HTTPS, en forma de memo, lo cual no le otorga el
rango de estndar de Internet.
74
Estndar:
ISO/IEC 15445
W3C HTML 4.0111
W3C HTML 512 (borrador)
El lenguaje extensible de marcado XHTML naci con el objetivo de avanzar en el proyecto del
W3C de lograr una web semntica, donde la informacin, y la forma de presentarla estn
claramente separadas. Este lenguaje est pensado para sustituir HTML como estndar en las
pginas web. XHTML tiene las mismas funcionalidades que HTML, pero a diferencia de HTML
cumple con las especificaciones ms estrictas de XML, que permiten eliminar las
ambigedades en los cdigos fuente de los documentos y permiten una lectura automtica
ms rpida de los documentos, adems de otras ventajas para el uso de herramientas y
editores para el procesamiento de documentos XML genricos.
La versin 1.0 de XHTML es simplemente la reformulacin en XML de HTML 4.01.
75
Justificacin de eleccin: necesario para el mostrar las pginas en los navegadores, usado
XHTML 1.0 por su estricta especificacin par poder ser procesado mejor automticamente.
Justificacin de eleccin: necesario conocer la sintaxis para poder crear pginas XHTML.
Permite la compatibilidad entre sistemas para compartir informacin de una manera
fiable, fcil y segura. Se usar en el intercambio de datos entre componentes de la propia
aplicacin para mostrar resultados de las bsquedas de personas dispuestas a compartir.
76
Para entender cmo sera un modelo mediante DOM, basmonos en el ejemplo de fragmento
de cdigo de un documento XHTML que nos proporciona el W3C18:
<table>
<tbody>
<tr>
<td>Shady Grove</td>
<td>Aeolian</td>
</tr>
<tr>
<td>Over the river, Charlie</td>
<td>Dorian</td>
</tr>
</tbody>
</table>
77
El lenguaje de las hojas de estilo en cascada, CSS, nos permite definir la presentacin de un
documento estructurado escrito en HTML o XHTML. Este lenguaje, promovido por el W3C nace
de la idea de separar la estructura de los documentos de su presentacin, que queda en el
mbito de CSS. De esta manera, la informacin de estilo puede ser adjuntada como un archivo
diferente o empotrado en el propio documento HTML/XHTML.
78
79
2.7.2.2 JavaScript
Alternativas: No existe alternativa aceptada por todos los navegadores para poder
interactuar con el DOM. Existen alternativas para poder conseguir efectos dinmicos y una
mejor experiencia de usuario como Flash o incluso Silverlight, pero suponen la obligacin
al usuario de tener instalado un complemento no estndar y de cdigo no libre.
80
Para este proyecto se usar esta base de datos con el motor InnoDB, puesto que este admite
transacciones, bloqueos a nivel de registro y gran velocidad en consultas.
ltima versin: 5.1.46, abril de 2010, se usa la 5.1.30 por ser la ms estable probada en
el momento de inicio del proyecto, aunque no existe ningn problema en hacer el
cambio de versin.
Alternativas: existen diversas alternativas para ser usadas como sistema gestor de bases
de datos, teniendo como alternativa ms seria PostgreeSQL. Sin embargo, por facilidad de
integracin y herramientas disponibles para poder trabajar con el SGBD durante el
GNU GPL: GNU General Public License es una de las licencias de software libre ms usadas.
81
El servidor web es una pieza fundamental en la aplicacin, puesto que es el encargado del
funcionamiento de esta, ya que se encarga de resolver las peticiones HTTP y devolver los
resultados.
2.7.4.1 Apache
Apache26 HTTP Server es un servidor web de cdigo abierto multiplataforma que implementa
HTTP/1.1. Apache es uno de los servidores web ms populares y usados debido a sus
caractersticas de rendimiento, modularidad, extensibilidad, etc. Este servidor se presenta bajo
su propia licencia de cdigo abierto y tiene sus orgenes en 1995, en el servidor de HTTPd de la
NCSA4. En su historia, podemos encontrar que es el servidor ms utilizado del mundo desde
1996, alcanzado cuotas de hasta el 70% de los servidores web en 2005, segn estadsticas de la
empresa Netcraft, sin embargo su cuota ha ido descendiendo ligeramente durante los ltimos
aos.
82
83
Modelo de diseo
2.8.
Despus de haber definido una arquitectura para el sistema, con su plataforma, tecnologas,
etc. entramos en la fase de diseo, donde modelamos el sistema en base a esta y a los
requerimientos. En esta fase, tambin tomamos conciencia en profundidad de los requisitos
no funcionales y restricciones relativas a los lenguajes de programacin, reutilizacin de
componentes, tecnologas de interfaces de usuario, etc.
84
En muchos sistemas se utiliza un Sistema de Gestin de Base de Datos para gestionar los datos,
que en lneas generales del MVC corresponde al modelo. La unin entre capa de presentacin
y capa de negocio conocido en el paradigma de las 3 capas representara la integracin entre la
vista y su correspondiente controlador de eventos y acceso a datos. Este patrn no pretende
discriminar entre capa de negocio y capa de presentacin pero si pretende separar la capa
visual grfica de su correspondiente programacin y acceso a datos, algo que mejora el
desarrollo y mantenimiento de la vista y el controlador en paralelo.
85
Permite una divisin sencilla de roles, dejando el diseo de la vista con la mnima
cantidad de cdigo de programacin posible.
86
En base a estos criterios se han encontrado diversos frameworks que cumplen varios o todos
de los requisitos planteados, adems todos disponen de licencias de cdigo abierto.
CakePHP27
symfony28
Zend29
Kohana30
CodeIgniter31
MVC
Liviano
Bueno 3MB
Regular 8MB
Malo 60MB
Bueno 2MB
Bueno 2MB
Relativa c.apre.
Media
Larga
Larga
Corta
Corta
OO (PHP5)
Muy buena
Excelente
Regular
Muy Buena
Nota: en cuanto a liviano no slo se toma como referencia el tamao de los archivos, sino la
cantidad de funcionalidades y archivos necesarios de configuracin.
Relativa c.apre. significa curva de aprendizaje estimada, con los valores corta: de 20 a 40
horas, media: 40 a 80 horas, larga: superior a 80horas.
Examinando los objetivos arquitectnicos de CodeIgniter podemos encontrar que este entorno
est orientado a: el mximo rendimiento, capacidad, y flexibilidad en el ms pequeo, liviano
paquete de entorno posible, adems de los siguientes importantes objetivos:
87
Con todos los datos se opt finalmente por el uso de CodeIgniter, al ser un entorno simple,
con unas buenas caractersticas de diseo, que nos ofrece el esqueleto estrictamente
necesario para nuestra aplicacin web.
88
89
En CodeIgniter tenemos una implementacin de este patrn que nos permite obtener, insertar
y actualizar informacin en la base de datos, adems de un escapado de caracteres de control
SQL en los datos de entrada, con una mnima codificacin, a travs de los objetos que
envuelven y representan las filas de las tablas en la base de datos.
Con la aplicacin de este patrn conseguimos una independencia total del SGBD al
abstraernos de este, lo cual nos permite cambiar la capa de datos de forma fcil
simplemente cambiando la configuracin de la aplicacin, sin tener que retocar el
cdigo fuente de la aplicacin.
90
Una URL segmentada no es ms que la direccin URL de cualquier pgina o recurso partida de
tal manera que refleja la estructura de la aplicacin, organizada segn los diferentes
controladores existentes.
De esta manera podemos obtener URLs de la siguiente manera:
http://fibpool.fib.upc.edu/busca/dia/3
Donde detrs de la barra del dominio de nivel superior .edu podemos encontrar que:
1. El primer segmento (busca) hace referencia al controlador que deber ser invocado.
2. El segundo segmento (dia) es la funcin que o mtodo que deber ser llamado.
3. El tercer segmento (3), as como los sucesivos, forma parte de los parmetros.
Con esta URL estaramos accediendo a la bsqueda filtrada por coincidencia de horario y
cercana en los mircoles.
http://carpool.fib.upc.edu/index.php/usuari/modificar
Cabe remarcar que la URL original siempre incorpora en el primer segmento el recurso al que
realmente se accede y que es el Front Controller, index.php, pero que podemos obviar
mediante la configuracin de reescritura de URLs del servidor web Apache elegido.
91
92
Del detalle de la cabecera, podemos identificar diversos elementos, como el botn de salida
del sistema, una barra superior para poder seleccionar el idioma de la aplicacin y el men
horizontal que indica la ubicacin lgica de la pantalla actual (en el caso de la figura, situado en
la bsqueda filtrada por horario para los mircoles, dentro de la funcionalidad de buscar).
93
94
En esta nica pantalla unificamos el proceso de registro de usuario en el sistema. Los datos
disponibles, como nombre y apellidos, direccin de correo electrnico de la FIB, y horario
95
96
Ilustracin 33: Detalle de las opciones de bsqueda por coincidencia horario y cercana.
En las dos ilustraciones superiores podemos apreciar la diferencia entre el diseo de las
bsquedas por cercana y las que adems filtran por hora de entrada y/o salida.
Ilustracin 34: Detalle de mapa con informacin de un usuario potencial con quien compartir.
En la pantalla superior se puede apreciar el resultado de hacer clic en alguno de los resultados
obtenidos por la bsqueda, informacin complementaria como la distancia exacta desde el
punto de partida o casa del usuario, as como nombre y valoracin de los usuarios encontrados
en la bsqueda para poder ponerse en contacto.
97
Ilustracin 35: Diseo pantalla con detalles ruta y persona para contactar
Una vez el usuario ha clicado en unos de los coches que representan personas para compartir
se le muestra la pantalla superior, con los detalles de los trayectos y el botn de envo con el
que podr hacer una peticin de contacto para compartir trayectos.
En la ilustracin superior se puede apreciar tambin que se da informacin sobre la
confiabilidad del usuario, ya que se muestra su valoracin dada por otros usuarios, y se incluye
tambin los 2 ltimos comentarios realizados a esa persona, con la respuesta que dio el
usuario.
En el tercio derecho de la pantalla se muestra la informacin ambiental y estimacin de
ahorros potenciales al compartir esa ruta con es persona.
98
99
Ilustracin 37: Diseo de la pantalla que agrupa el estado de los contactos y muestra nuestras
valoraciones y comentarios realizados y recibidos.
100
101
102
103
El diseo seguido para la comunicacin de errores despus del envo de datos de formularios
es el que se muestra en la ilustracin superior, donde se sita un bloque de fondo rojo con un
texto explicativo del error.
104
2.8.4.10
En la ilustracin superior encontramos el diseo de la pgina donde los usuarios pueden ver
qu datos son los que figuran en el sistema. El diseo de esta interfaz aprovecha los iconos de
los coches de colores para mostrar las preferencias de cada da. Sin embargo, al pasar el cursor
por encima saldr una leyenda explicando si ofrece, busca o busca y ofrece plaza para
compartir.
Si el usuario desea cambiar sus preferencias para compartir y su horario con simplemente
seguir el enlace de modificacin de horarios acceder a la pantalla mostrada en la ilustracin
superior.
2.8.4.11
Para que un usuario consiga su nivel de privacidad de invisible (al resto de usuarios) deber
simplemente desmarcar todas sus preferencias del horario, con lo que una vez realizado
obtendr una pantalla diseada as:
106
107
2.8.4.12
En el siguiente diseo, podemos observar una barra lateral a la derecha (Sabas que?), que
contiene informacin ambiental en forma de cpsula de informacin.
108
2.8.4.13
Visualizacin de estadsticas
109
2.8.4.14
Opciones de administracin
Ilustracin 51: Detalle de la vista con explicacin de los cambios a realizar en un cambio de
cuatrimestre
110
En las diseo de las vistas que requiere confirmacin de una persona administradora se
incorpora un botn de confirmacin de los cambios, ya que por ejemplo, el cambio de
cuatrimestre desencadena un reclculo y obtencin de todos los horarios originales
matriculados de los usuarios, entre cambios (detallados en la ilustracin superior).
Ilustracin 52: Detalle de la vista de forzado de limpieza de usuarios con explicacin de las
acciones a llevar a cabo.
111
2.9.
Diagramas de secuencia
Un diagrama de secuencia muestra la interaccin entre los objetos a travs del tiempo en un
sistema segn UML. Los diagramas de secuencia forman parte de la vista dinmica (ver
ilustracin 11) en la clasificacin de diagramas UML 2.0. Los principales objetivos de un
diagrama de secuencia son mostrar la secuencia de eventos entre los actores y el sistema,
permitir identificar las operaciones del sistema y modelar el curso de control ilustrando los
escenarios tpicos. Los diagramas de secuencia se obtienen a partir de los casos de uso
concretos, para los cuales puede haber mltiples diagramas de secuencia, cada uno definiendo
un camino posible.
En este apartado, y de acuerdo tambin con el criterio del director slo se reproducen los
siguientes diagramas representativos de algunas de las funcionalidades del sistema:
112
113
En el siguiente diagrama se muestra el curso tpico de una bsqueda iniciada por el usuario. En
el apartado Resolucin de las bsquedas y subapartados AJAX y REST se explica con detalle el
significado del objeto XMLHTTPRequest y el resto de detalles. En este diagrama se ha optado
por encapsular y abstraer algunas operaciones para mejorar la claridad del diagrama. En las
notas del diagrama se explican las partes encapsuladas y las abstracciones realizadas.
114
En la ilustracin 54 podemos ver las relaciones de clave existentes, que siguen la siguiente
leyenda:
Todos los atributos son no nulos. Las claves primarias formadas por ms de un atributo
aparecen en negrita con cdigo PK y PF.
115
Bajo el directorio fibpool podemos encontrar los archivos del sistema, a excepcin de
imgenes y ficheros CSS que se guardan en otro directorio del mismo nivel.
El directorio appfibpool contiene todos los ficheros con el cdigo fuente de la aplicacin
sin tener cdigo del framework mezclado- adems de los archivos de configuracin y
traducciones de los textos.
116
cache guarda las caches generadas, aunque esta opcin se ha desactivado por defecto.
database contiene las clases que implementan los patrones Active Record para
diversos SGBD.
helpers al igual que su mismo subdirectorio a fibpool contiene las funciones asistentes
globalmente, pero en este directorio son las que incorpora el entorno por defecto.
language al igual que su mismo subdirectorio a fibpool contiene los textos traducidos
de en este caso las pginas generales de error grave de CodeIgniter (el grueso de los
textos traducido se encuentra en el subdirectorio /fibpool/appfibpool/language.
libraries contiene las libreras o clases que ofrecen funcionalidades incorporadas por el
framework.
117
Esta propiedad de los sistemas de control de acceso tiene diversas ventajas de cara a la
integracin de diferentes sistemas independientes que tienen algn tipo de relacin lgica,
como son:
As pues, para cumplir con el requisito funcional nmero 1 -de acceso y comprobacin
de credenciales de usuario-
Central
Authentication
Service,
adems
los
paquetes
118
de
Este protocolo permite que aplicaciones web como FIBPool tengan usuarios autenticados sin
tener acceso a las credenciales de seguridad de los usuarios, es decir, la aplicacin no conoce
ni tiene manera de conocer las contraseas de los usuarios. En la siguiente ilustracin se puede
ver el proceso seguido en la autenticacin, donde la aplicacin identificada como Rac- en
ningn momento obtiene la contrasea del usuario.
119
php_domxml, soporte DOM para la lectura de respuestas XML del servidor CAS.
120
https://fibpool.fib.upc.edu/entrada/?ticket=ST-15050K9asmvUqnWNlkE5b1Q04k7YBytX1jg2TYeh-20
Muestra de URL ficticia mostrando el paso del ticket ST va GET (despus del ?)
Sin este nmero de ticket, el protocolo de autenticacin falla, con lo que los usuarios no
pueden acceder al sistema.
Para solucionar este problema, se valoraron diversas soluciones, como extender la clase que
acepta y procesa las peticiones de CodeIgniter para evitar la destruccin de los parmetros
pasados por GET, pero se aprovech la posibilidad que ofrece CodeIgniter de reemplazar el uso
de URL segmentadas a URL de tipo query.
http://fibpool.fib.upc.edu/usuari/modificarHorari
http://fibpool.fib.upc.edu?c=usuari&m=modificarHorari
Sin embargo, con la simple activacin no se soluciona el problema, puesto que phpCAS ha de
estar disponible desde cualquier URL, al estar todas las pginas protegidas, con lo que para el
tipo de URL mixtas como esta:
...upc.edu/entrada/?ticket...
segua fallando la
autenticacin.
Finalmente se opt por una solucin intermedia que supone la activacin de la directiva para
el uso de la variable de entorno PATH_INFO en el servidor Apache adems de activar en
CodeIgniter su uso, junto la no denegacin (no prohibicin) de los caracteres ? y = en las URLs.
La directiva PATH_INFO controla si las peticiones que contienen informacin de path aadida
(trailing pathname information) a continuacin de un nombre de fichero existente (o no
existente en un directorio que s existe) sern aceptadas o rechazadas. La informacin de path
121
aadida (trailing pathname information) puede pasarse a los scripts en la variable de entorno
PATH_INFO.
Por ejemplo, la ubicacin /test/ se refiere a un directorio que contiene un nico fichero:
here.html.
= "PATH_INFO";
122
Ilustracin 59: Diagrama del proceso de obtencin horas de entrada y salida horario usuarios
Tal y como muestra la ilustracin superior el proceso seguido para la obtencin de las horas de
entrada y salida de un usuario se hace de la siguiente manera:
3.1. El sistema pide la informacin de usuario a una URL disponible en los sistemas del
Rac, que contesta con un archivo de texto y que al final contiene la informacin de
asignaturas y grupos matriculadas.
3.2. El sistema procesa mediante un conjunto de expresiones regulares el archivo en
bsqueda de las asignaturas y las relaciona con los grupos matriculados.
3.3. Para cada asignatura matriculada, el sistema accede a otra URL de los sistemas del
Rac que provee mediante texto plano todos los horarios y grupos de tal asignatura.
3.4. El sistema procesa estos horarios mediante el uso de expresiones regulares para ir
obteniendo los intervalos con menor hora de entrada y mayor de salida para cada da,
con lo que se acaba obteniendo un conjunto de 5 intervalos que representan el
horario del usuario.
Todo el procesado se hace en la capa de negocio de la arquitectura, y el responsable es un
modelo dentro del diseo de la aplicacin. As pues, con la obtencin de los intervalos
podemos cumplir con el requisito de la obtencin automtica de los horarios matriculados
para mejorar la experiencia de los usuarios.
123
Las tres opciones ofrecen prcticamente las mismas funcionalidades, incluso el servicio que
ofrece lInstitut Cartogrfic de Catalunya est basado en un servidor de Google Maps, aunque
algunas funcionalidades no estn disponibles para el uso pblico y con la importante diferencia
124
que la cartografa servida para Catalunya proviene del ICC y no de los proveedores de Google,
adems de usar una versin de la API diferente respecto al original Google Maps.
Cabe remarcar que openlayers no es tan slo servicio de mapas al uso, sino que adems de
ser muy extensible y ofrecer caractersticas que sobrepasan las necesidades de este proyecto,
es un sistema para mostrar piezas del mosaico en que se divide un mapa y marcadores de
informacin superpuestos a estas piezas, provenientes de cualquier fuente de datos
disponible. Con openlayers, en efecto se podra obtener y mostrar la informacin de Google
maps a travs de su librera JavaScript.
GoogleMaps
Geoserveis ICC
Precisin
geocodificador
Buena
(nivel de barrio o calle)
Muy buena
(nivel de calle)
Experiencia
usuario
Muy buena
Excelente
(versin 3, beta)
Excelente
(nivel de nmero exacto
en calle)
Muy buena
(basado en la versin 2
de GoogleMaps)
125
Muy bueno
Muy buena
Muy bueno
(ofrece ortofotos
gran calidad)
Regular
de
Ilustracin 61: Comparativa de detalle ofrecido por Openstreetmap, Google Maps e ICC para un
rea densamente poblada de El Prat de Llobregat, delimitada por la base por lAvinguda Onze de
Setembre, por la Carretera de la Marina por la derecha y por la Plaa de Catalunya en la
izquierda.
La opcin de Geoserveis del ICC, dispone del mejor servicio de geocodificacin disponible y
prcticamente hara que fuera la opcin elegida, pero queda descartada puesto que no se
obtuvo permiso para el acceso al servicio de geocodificacin. Este servicio no se publicita su
existencia ni se ofrece abiertamente, a pesar de depender de un organismo pblico. En el
siguiente apartado se dedican unas pinceladas sobre la investigacin realizada a cabo sobre
este aspecto.
126
GoogleMaps, por ser el ms equilibrado en los aspectos tratados, cubrir las necesidades de
los requisitos, ser el ms agradable visualmente, con mejor experiencia de usuario y
disponer de la calidad (precisin y detalle) de la informacin necesaria realmente buena,
por no decir extraordinaria.
2.11.4.1
ICC
podemos
encontrar
el
mapa
de
base
topogrfica
1:5000
geocodificador,
que
responda
en
la
URI
Donde $carrer y $ciutat son strings y time() es una funcin que retorna el timestamp5
actual.
Timestamp: secuencia de caracteres, que denotan la hora y fecha (o alguna de ellas) en la cual ocurri
determinado evento. En el caso que nos ocupa se us el UNIX Timestamp (conocido tambin como
POSIX) que se define como la cantidad de segundos transcurridos desde la medianoche UTC del 1 de
enero de 1970, sin contar segundos intercalares.
127
Adems, como medida de seguridad era necesario enviar una cabecera HTTP indicando como
Referer http://cygnus.icc.cat/of5m/.
La respuesta a este servicio se obtena con el formato ligero de intercambio de datos
JavaScript Object Notation, JSON43.
Ante la existencia de este servicio disponible en la web del ICC, me puse en contacto con su
webmaster exponiendo los objetivos de este proyecto y preguntando por la posibilidad de
integrar en FIBPool el geocodificador del ICC. Desgraciadamente, en la atenta respuesta
recibida por su parte se me indica que han estado valorando la posibilidad de abrir el servicio
al pblico en general o en caso puntuales como para este Proyecto, pero desgraciadamente se
me contesta que no es posible y que siga consultando su web por si en un futuro se decidiera
una obertura del servicio.
2.11.4.2
De forma comn a la versin 2, el uso de la API de Google Maps conlleva la aceptacin de unas
condiciones, entre las cuales cabe destacar:
El API de Google Maps no incluye publicidad, pero se reserva esta opcin, con un
preaviso de 90 das. Si llegase a ocurrir tal extremo, el diseo de la aplicacin permite
un cambio de Sistema de Informacin Grfica fcilmente, y en el apartado anterior ya
hemos visto las alternativas existentes.
Una vez introducida la API, se lista a continuacin el conjunto de clases que se ha estudiado y
utilizado. Para cada conjunto se detalla el nmero de clases usadas en las pruebas y/o
implantacin definitiva sobre el total de clases del grupo.
MapOptions
NavigationControlStyle
MapTypeId
ScaleControlOptions
MapTypeControlOptions
ScaleControlStyle
MapTypeControlStyle
ControlPosition
NavigationControlOptions
MapPanes
MarkerOptions
MarkerImage
MarkerShape
Geocoder (geocodificador, 5 de 6)
o
GeocoderRequest
InfoWindowOptions
GeocoderStatus
GeocoderResult
129
GeocoderAddressComponent
DirectionsUnitSystem
GeocoderLocationType
DirectionsWaypoint
DirectionsStatus
DirectionsResult
DirectionsRoute
DirectionsLeg
DirectionsRendererOptions
DirectionsRequest
DirectionsDistance
DirectionsTravelMode
DirectionsDuration
LatLngBounds
MapsEventListener
Point
event
Size
MouseEvent
LatLng
MVCObject
MVCArray
la
traduccin
de
direcciones
fsicas postales
coordenadas
geogrficas
En la siguiente ilustracin se puede ver una captura donde se usa el geocodificador, para hacer
la traduccin entre una direccin escrita en un campo de texto (geocodificacin directa) y la
traduccin entre un punto del mapa y la direccin escrita (geocodificacin inversa).
130
Como apunte de cultura cabe mencionar que Google Maps usa una proyeccin WGS84 Pseudo
Mercator44, una variante de la proyeccin Mercator45 adaptada al uso de mapas en reas
relativamente pequeas (del orden de decenas de km).
Con el uso de este geocodificador obtenemos unas coordenadas con el nmero suficiente de
decimales para obtener una extraordinaria precisin de las georreferencias. Para el caso de la
aplicacin, se ha optado por guardar hasta 6 decimales, lo que nos asegura una precisin de
0,111m (+/- 0,555m) en el ecuador cada grado de los 360 de la proyeccin representa 111km
en el ecuador-, cifra realmente precisa, que nos permite incluso tener personas viviendo en los
mismos edificios con portales diferentes.
131
Clculo de distancias
Como ya se ha comentado, la aplicacin maneja coordenadas (latitud y longitud) para ubicar
los usuarios en el espacio y poder realizar los clculos de cercana entre unos y otros. Para
saber a cunta distancia estn las coordenadas 41.320801, 2.097849 respecto 41.376762,
2.160728 no nos sirve hacer el clculo en un plano Euclidiano, a pesar que el error no ser
excesivo. Por eso, se ha decidido calcular las distancias entre coordenadas de la forma ms
correcta posible, usando el clculo de distancias en la geometra esfrica.
Aunque realmente tanta precisin no sea estrictamente necesaria para el objetivo de poner en
contacto a usuarios que vivan cerca para hacer carpool se ha decidido, adems de evitar el
error del plano Euclidiano, usar esta aproximacin por su rapidez y facilidad de clculo e
implementacin.
Ilustracin
63: Distancia
ortodrmica entre dos puntos
a lo largo de un crculo
mximo sobre la superficie de
una esfera.
del crculo mximo entre dos puntos, a partir de sus latitudes y longitudes.
132
Donde:
R es el radio de la esfera,
es la diferencia de longitud,
De esta manera, podremos obtener fcilmente con una nica consulta SQL todos los usuarios
que estn a una determinada distancia respecto la latitud y longitud de un usuario,
ordenndolos de menor a mayor distancia (radio en km):
SELECT id,
(6371*acos(cos(radians($latitud))*cos(radians(latitud))*cos(radians(long
itud)-radians($longitud))+sin(radians($latitud))*sin(radians(latitud))))
* AS distancia FROM usuario HAVING distancia < $radioKm ORDER BY
distancia;
Segn las pruebas que se fueron realizando paralelamente al desarrollo esta aproximacin,
para un conjunto de 30 usuarios, el SGBD ofrece resultados en cerca de 0,3s. Usando una
aproximacin en que no se hagan subconsultas de subconjuntos de datos la misma bsqueda
133
se resuelve en ms de 3 segundos. Pero veamos por partes como sigue el proceso para
mostrar los resultados al usuario.
2.11.7.1
AJAX
AJAX, Asynchronous JavaScript And XML, es una tcnica de desarrollo para crear aplicaciones
web interactivas, conocidas en ingls como RIA, Rich Internet Applications. Estas aplicaciones,
en parte se ejecutan en el lado cliente, es decir, en el navegador del usuario, mientras se
mantiene la comunicacin asncrona con el servidor en segundo plano. As es posible realizar
cambios sobre las pginas sin necesidad de recargarlas, lo que redunda en un incremento de la
interactividad, velocidad y usabilidad en las aplicaciones.
AJAX, al fin y al cabo slo representa el uso conjunto de las tecnologas ya vistas en el apartado
estndares de la web, aprovechando un objeto que implementan todos los navegadores
actuales: XML HTTP Request46 (XHR).
Esta interfaz del navegador, XHR, provee la capacidad de realizar peticiones HTTP de forma
asncrona desde el navegador del usuario al servidor de forma transparente para l.
Las peticiones del objeto XHR se realizan desde las correspondientes clases escritas en
JavaScript a unas determinadas URL, dependiendo de la bsqueda que se est realizando, de
las que obtiene un archivo XML con los resultados para posteriormente ser dibujados
mediante la implementacin de las clases de GoogleMaps- en el mapa.
2.11.7.2
REST
Un protocolo cliente-servidor sin estado: cada mensaje HTTP contiene toda la informacin
necesaria para comprender la peticin.
134
Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso es
direccionable nicamente a travs de su URI.
La aplicacin de esta tcnica en FIBPool resulta en un conjunto de URI de las que se obtienen
los resultados de las bsquedas (los recursos de informacin) y que se retornan en forma de
XML. Las URIs que se han definido en la aplicacin para obtener los resultados de las
bsquedas son las siguientes dos:
/busca/generadatoscercaxml/radioKm/
Destinada para obtener los usuarios que viven en un radio menor de radioKm kilmetros.
/busca/generaDatosDiaCercaXML/dia/radioKm/margenHoras/cuando/
Destinada para obtener resultados de los usuarios que vivan en un radio menor de radioKm
kilmetros, con coincidencia de horario el da dia de la semana, a la entrada, salida o entrada y
salida (cuando) en un margen de horas margenHoras respecto el horario del usuario que haya
iniciado sesin en FIBPool. Todos los parmetros que siguen despus del segundo segmentoson numricos y se valida su correccin, que en caso de fallar, se ofrece un resultado por
defecto de usuarios a 10 km en el caso de la bsqueda por cercana.
Los mtodos que resuelven las bsquedas por coincidencia de horario retornan resultado en
funcin de las preferencias del usuario para compartir siguiendo esta tabla:
Usuarios
presentados en
resultados
Busca
Busca/Ofrece
Indefinido
Por cercana
No
Ofrecen plazas
No
No
Buscan plazas
No
No
Buscan/Ofrecen
No
Tabla 4: Conjuntos de usuarios presentados en las bsquedas segn preferencias del usuario.
135
As pues, el resultado de llamar a esas URL ser, como ya se ha dicho, un XML con la
informacin de usuarios que ser procesada para su representacin en el mapa. Adems, con
el uso de esta tcnica se deja el sistema preparado para una futura fcil adaptacin a otro tipo
de plataformas como los dispositivos mviles, que podran procesar estos datos XML.
Ilustracin 65: ejemplo de XML con los resultados de una bsqueda por cercana <10km.
136
Ilustracin 66: detalle de la presentacin de costes y ahorros para una ruta determinada.
137
Entre las normas bsicas de seguridad seguidas, se ha prestado especial inters y dedicacin
de horas a evitar los problemas ms importantes para la seguridad del sistema, mediante:
Validacin de los datos para comprobar y asegurar que forma parte del dominio esperado,
como puede ser un tipo correcto, una longitud de texto, tamao, etc.
Escapado (de caracteres no permitidos) de los datos previa insercin en la Base de Datos.
El trabajo ha sido facilitado gracias a la decisin del uso de un framework de desarrollo, que
incorpora unas medidas de seguridad bsicas, como son el filtrado global de datos ante
ataques XSS que se ha configurado en la aplicacin- el escapado automtico de datos al hacer
uso del patrn Active Record (comentado en el apartado Aplicacin de CodeIgniter y diseo
MVC en este proyecto) y la librera de validacin de formularios que tambin incorpora.
No obstante, cabe decir que esta librera ofrece unas funcionalidades muy bsicas, con lo que
se obtiene una ayuda limitada. Por este motivo, se ha extendido la clase form_validation.php
para poder aadir algunas reglas de comprobacin extra mediante el uso de expresiones
regulares- como son las restricciones entre horas en los formularios relacionados con horarios
y la traduccin de todos los campos al mostrar errores de validacin de formularios.
138
Cabe remarcar tambin que la validacin de datos se hace en cualquier parte del sistema que
sea necesario, desde los campos de los formularios (como en la ilustracin superior) hasta la
comprobacin de segmentos en las URIs. La validacin de datos relacionados con el paso de
informacin en URIs se hace en su correspondiente controlador, mediante el uso de
expresiones regulares diseadas para cada caso particular.
2.11.10
En este apartado se repasan rpidamente los aspectos relacionadas con la interfaz multi
idioma implementada.
139
Estos dos aspectos se han aplicado al proyecto para cumplir el requisito de soporte multilinge
de la aplicacin, ofreciendo la aplicacin a los usuarios en castellano, cataln e ingls.
La internacionalizacin de la aplicacin se ha realizado mediante la creacin de variables en las
vistas, las cuales representan un texto o elemento traducible. La localizacin se realiza gracias
a la extensin de la clase Language.php que ofrece CodeIgniter, que puesto a sus limitaciones
ha sido necesario extender la implementacin de una funcin que recupera, a partir de las
diversas variables de la vista, los strings correspondientes al idioma del usuario. Estos strings
son cargados desde un fichero de texto, debido a su mayor rapidez de recuperacin respecto a
una base de datos.
De esta manera, slo es necesario cargar en cada controlador las traducciones necesarias a las
vistas que se vayan a usar.
Ilustracin 68: Mens en los diferentes idiomas a los que se ha localizado la aplicacin.
140
Para cumplir con el requisito funcional 6 seleccin de idioma- se ha optado por una solucin
de traduccin desde cualquier pgina de la aplicacin, mediante el men de la barra superior.
2.11.11
En este apartado se describen las acciones realizadas para el cumplimiento del requisito no
funcional 2, de accesibilidad, marcado inicialmente.
La accesibilidad web se refiere a la capacidad de acceso a esta y a sus contenidos por todas
las personas, independientemente de la discapacidad que presenten, ya sea fsica,
intelectual o tcnica. La accesibilidad est relacionada con la usabilidad, la facilidad de
utilizar un sistema para conseguir un propsito.
Los sitios web diseados pensando en la accesibilidad son aquellos en los que todos los
usuarios pueden acceder en condiciones de igualdad a los contenidos.
Por ejemplo, cuando un sitio tiene un cdigo XHTML semnticamente correcto, se
proporciona un texto equivalente alternativo a las imgenes y a los enlaces se les da un
141
nombre significativo, esto permite a los usuarios ciegos utilizar lectores de pantalla o lneas
Braille para acceder a los contenidos.
Ilustracin 70: Confirmacin del cumplimiento del estndar XHTML 1.0 de una de las vistas
142
Para la etapa de implementacin, se opt por usar un entorno de desarrollo integrado, una
herramienta para programadores pensada para escribir, compilar, depurar y ejecutar
programas, aunque slo se us para escribir principalmente. El entorno elegido fue NetBeans
IDE, un entorno escrito en Java, con una licencia cercana a la de cdigo libre, que desde su
versin 6.5 soporta el desarrollo en
PHP. Por su facilidad de uso y
caractersticas que facilitan el trabajo
como la integracin con el sistema de
control de versiones svn- se elegi este
Ilustracin 72: logotipo NetBeans IDE 6.8
nombre de la herramienta utilizada en la lnea de comandos o shell. Con este software se pudo
establecer un repositorio en servidor subversion de la FIB con el trabajo y cdigo fuente de la
aplicacin.
Para la realizacin de los diagramas presentes en esta memoria, se us Microsoft Visio 2007.
144
145
Parte 3
146
3.1.
Planificacin temporal
La planificacin temporal del proyecto implica la organizacin de las diferentes tareas y etapas
de ste en el tiempo, para servir de gua desde sus inicios hasta su final.
Tarea
1. Estudio del estado del arte en sistemas carpool
disponibles
Horas
aprox.
Riesgo
estimado
20
Bajo
Desviacin
horas
0
20
2.1. Estudio de definicin y Anlisis Requisitos
20
Bajo
35
Bajo
+10
-5
55
3.1. Diseo: arquitectura y funcionalidades
40
Bajo/Medio
-2
+3
Bajo
+5
20
Bajo
+8
66
4.1. Estudio de oferta y aprendizaje Framework
40
+9
Bajo/Medio
25
-4
+5
Bajo/Medio
12
+5
Bajo
147
65
5.1. Implementacin: CAS y obtencin horarios
20
+6
Medio/Alto
10
+20
Medio
+6
50
-6
Medio/Alto
60
-8
Medio/Alto
10
+15
Bajo/Medio
15
+10
Bajo
25
+58
Medio
190
6. Pruebas, evaluacin y verificacin
20
+95
Medio
20
7. Documentacin del proyecto (incluida memoria
y documentacin cdigo)
40
+20
Bajo
40
8. Coordinacin y seguimiento (incluidas
reuniones LCFIB, tareas administrativas)
+20
16
+6
Bajo/Medio
16
9. Presentacin y preparacin
Suma total horas aproximadas programadas:
148
8
492
+6
Bajo
0
Desvo:
+141
Multiplicador h
Riesgo
Multiplicador h
Bajo
0,1
Medio/Alto
0,7
Bajo/Medio
0,3
Alto
Medio
0,5
Muy Alto
1,5
3.2.
Valoracin econmica
La valoracin econmica consta de dos partes: una primera de costes directos de personal y
una segunda de costes de herramientas usadas, tanto hardware como software.
En base al clculo de horas necesarias, desglosado por los diversos perfiles que estn
involucrados en este Proyecto y teniendo en cuenta precios actuales de mercado, podemos
obtener el coste de personal para realizar este proyecto detallado en la siguiente tabla.
Perfil persona
Coste total/hora
Horas realizadas
Coste
Director de proyecto
65
46
2.990
Diseador
52
75
3.900
Analista
48
65
3.120
Programador
34
398
13.532
Diseador grfico
28
18
504
Traductor
26
31
806
149
Concepto hardware/software
Coste adquisicin
Amortizacin/uso
Coste imputable
Equipo de escritorio
750
1/6
125
725
1/8
90,6
Licencia Windows 7
Professional
175
1/12
14,6
Teniendo en cuenta el coste econmico de uso (alquiler anual) de otros sistemas similares para
Universidades la aplicacin de este proyecto supone unas condiciones muy ventajosas.
A ttulo de ejemplo, la empresa Zimride, que comercializa el sistema de carpool Zimride que
no ofrece una gran cantidad de funcionalidades aadidas respecto este proyecto- analizado en
la primera parte de esta memoria factura unos 8.000 anuales (10.000$/ao55) por el uso del
sistema a Universidades Estadounidenses. La empresa catalana Compartir SL no ha facilitado
datos de posibles facturaciones, a pesar de haber sido contactada.
150
3.3.
Propuestas de mejora
A pesar que se han conseguido los objetivos y los requisitos marcados al inicio del Proyecto se
han cubierto, siempre surgen nuevas ideas y lneas de continuacin y mejora de la aplicacin
web desarrollada, como las que se detallan a continuacin:
Mejoras de usabilidad:
Lectura de avisos: en la lnea del anterior, usando AJAX, se puede hacer que la
confirmacin de lectura de avisos no recargue la pgina, sino que el cambio se haga en
segundo plano, y posteriormente mostrando el cambio de estado del aviso sin tener
que recargar la pgina.
Nuevas funcionalidades:
152
3.4.
Conclusiones
En este apartado se tratan las conclusiones finales, surgidas de la reflexin del proceso de
desarrollo del Proyecto por completo. Cabe decir, que se resumen las ms importantes, puesto
que tras cerca de 5 meses de trabajo se puede reflexionar sobre muchos aspectos.
Como primera conclusin cabe decir que el resultado del proyecto es un xito, puesto que
se han conseguido todos los objetivos marcados y una aplicacin en mi opinin muy
completa y de una gran calidad. Adems, se han incorporado algunos aspectos
innovadores en cuanto a los sistemas de carpool, como dirigir las bsquedas por
coincidencia de horario y cercana e integrarla (aunque no se haya puesto en produccin
todava) en el sitio dnde puede ser ms til: en el Rac, el punto central en la web desde
donde se llega a toda la informacin de la actividad de un estudiante.
Como reflexin de las decisiones tomadas, por una parte me alegro de haber optado por el
uso de un framework, ya no slo por el reto de investigacin, estudio y aprendizaje, sino
por el hecho que me ha facilitado la aplicacin, de una forma correcta, de los patrones de
diseo de software que se han usado. Esto me ha permitido obtener una grata satisfaccin
por la claridad y mantenibilidad del cdigo desarrollado. La nica parte menos buena de la
decisin de usar un framework ha sido darme cuenta que la eleccin fue demasiado
ajustada, puesto que el CodeIgniter es muy bsico en algunos aspectos, por lo que se ha
tenido que dedicar un esfuerzo extra en complementar alguna de las carencias de este.
153
consumiendo ms tiempo del esperado, por lo que se tuvo que tomar la decisin de no
localizar toda la aplicacin a los 3 idiomas.
154
3.5.
Agradecimientos
En este punto he de agradecer a Jaume Moral, del Laboratori de Clcul de la FIB, LCFIB, por la
ayuda, soporte tcnico y dedicacin en explicarme los sistemas usados en este Proyecto.
Tambin, gracias, Jordi Garca, Cap dEstudis durante la realizacin del Proyecto, por la ayuda y
darme el soporte institucional.
Miquel, por permitirme realizar este proyecto con total libertad y flexibilidad para
compaginarlo al mismo tiempo con el trabajo.
Tambin gracias a todos los que me habis acompaado durante la carrera, Miriam, Isaac,
David, Ral, Jordi, Marina, y todas las dems personas increbles que he ido conociendo,
gracias por vuestro apoyo todo este tiempo.
Por supuesto a mi familia, por saberme entender y por todo el soporte durante el proyecto.
Y a la mala calidad del aire de Barcelona, gracias por en parte- inspirarme en la idea de este
Proyecto :P
155
3.6. Referencias
1
156
47
Green Power for Electric Cars: Development of policy recommendations to harvest the potential of
electric vehicles: http://www.greenpeace.org/eu-unit/press-centre/reports/green-power-for-electriccars-08-02-10
48
Coste medio de propiedad de un coche: http://www.autoprofesional.com/noticias/detalle_noticia//asset_publisher/1Oqw/content/el-coste-medio-de-propiedad-de-un-coche-es-de-24-euros-por-cada100-kilometros
49
Gua OWASP, seguridad en aplicaciones web:
http://www.owasp.org/index.php/OWASP_Guide_Project
50
OWASP Top 10: http://www.owasp.org/index.php/OWASP_Top_Ten_Project
51
XSS, Cross Site Scripting: http://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
52
Web Content Accessibility Guidelines 2.0: http://www.w3.org/TR/WCAG20/
53
Compliant W3C validator http://validator.w3.org/check
54
WAVE, Web accessibility evaluation tool: http://wave.webaim.org/
55
2009 Finalists: America's Best Young Entrepreneurs: Zimride:
http://images.businessweek.com/ss/09/10/1009_entrepreneurs_25_and_under/26.htm
56
Framework de JavaScript: http://jquery.com/
Libros
Patterns of enterprise application architecture, Martin Fowler et al., Addison-Wesley, cop. 2003,
ISBN 0321127420
Diseo web con CSS, Ralph G. Schulz, editorial Marcombo, 2009 ISBN 978-84-267-1470-1
157
CreacineimplantacinenelRacdeunsistemaparaCarpool
Parte 4
Anexos
158
CreacineimplantacinenelRacdeunsistemaparaCarpool
4.1.
Proyectooriginalpresentadoalconcursdideesambientals2009
CreacineimplantacinenelRacdeunsistemaparaCarpool
http://maps.google.com/maps?hl=ca&tab=wl
160
CreacineimplantacinenelRacdeunsistemaparaCarpool
Amb aquestes dues dades ja tenim solucionada una bona part del problema que
sorgeix a lhora de buscar un company per compartir cotxe: si viu a prop i si va i/o
torna de la universitat a la mateixa hora que nosaltres.
Daltra banda, el mecanisme per casar ofertes de persones disposades a portar alg
al seu cotxe de cam a la universitat amb persones que estan disposades a anar-hi s
bastant senzill, noms es mostrar una icona o imatge grfica diferent si s una oferta,
una demanda o totes dues coses alhora.
El que cal fer llavors es oferir aquesta informaci de manera fcil i que lusuari
decideixi quin s el radi dacci en el que vol buscar persones que visquin a prop. s a
dir, si es vol buscar persones a 1, 5, 10, 20 quilmetres o els que es vulguin a la
rodona des de casa per poder apropar-se i agafar a aquesta persona de cam o
tornada a la universitat.
Daquesta manera, aconseguim un sistema efectiu en que no sha hagut de perdre
ms temps que uns segons en fer clic a lopci del campus virtual i veure el mapa amb
els voltants del nostre lloc de residncia per comprovar si hi ha gent disposada a
compartir cotxe... i eventualment contactar-la via un formulari web.
Per tenir una idea de la possible interfcie grfica del que veuria cada estudiant, es
mostra una petita imatge com a pea central del sistema:
El cotxe representa que seriem nosaltres (lusuari que ha entrat al campus virtual) i en
la rodona (que es pot fer ms gran o ms petita per buscar ms gent) es mostren les
persones que viuen a prop nostre i que volen compartir cotxe per anar a la universitat.
A ms, aquestes persones tenen el mateix horari o molt semblant al nostre amb el que
no haurem de patir per preguntar, esperar o buscar alternatives.
El sistema que es proposa haur destar plenament integrat des del punt de vista dels
usuaris als campus virtuals com a una opci ms com pot ser consultar el seu
161
CreacineimplantacinenelRacdeunsistemaparaCarpool
expedient acadmic, els avisos duna assignatura, etc. Els usuaris principalment seran
estudiants, per tamb es pot estendre al personal docent i investigador, personal
dadministraci i serveis, etc. ja que tamb disposen daccs als campus virtuals com
Atenea2 o el Rac3.
Daltra banda, el sistema no noms haur de tenir en compte el creuament doferta i
demanda amb la informaci de residncia i horaris. Tamb shaur de proporcionar als
usuaris un mecanisme de missatgeria interna, o correu electrnic per rebre els avisos
de disponibilitat, o per si un dia en concret es cancella el viatge usual acordat aix com
opcions per definir una nova adrea diferent a la que consta a Secretaria del centre,
etc.
Precisament, tots aquests afegits marquen la diferncia i poden aportar al sistema un
cert grau dxit, a banda del propi enfocament diferenciat del tpic taulell danuncis que
usen els sistemes actuals i que ja per si seria una gran evoluci orientada a la facilitat
ds. Els afegits al sistema shan de tenir en compte ja que poden servir per combatre
els problemes dels sistemes actuals destinats a compartir cotxe:
Intimitat i privadesa
Aquest s un punt important a tenir en compte, ja que duna banda, sha de considerar
que es tracta amb dades personals protegides per la Ley Orgnica de Proteccin de
Datos de Carcter Personal, com s el lloc de residncia i daltra, la voluntat de lusuari
a ser marcat en un punt del mapa.
Per no suposa cap problema per al desenvolupament del projecte, ja que tots dos
aspectes tenen soluci.
Quant a les dades personals, els estudiants ja hem donat el consentiment a que la
UPC gestioni les nostres dades per assumptes propis de la universitat o fins i tot de
fora. Noms caldr tenir en compte el correcte tractament de les dades i la correcta
implementaci dels aspectes que afectin de la LOPD.
En laspecte de la privadesa en envers la resta destudiants o usuaris del sistema es
pot implementar un sistema no associat a les persones pblicament. s a dir, al mapa
que mostra una rodona amb les persones que viuen a prop i que tenen el mateix horari
que nosaltres i a ms volen compartir cotxe no cal mostrar els noms de les persones.
Noms cal mostrar que existeix una persona i una forma de contacte via formulari web
perqu a aquesta altra persona li arribi un correu electrnic, per la persona que envia
el correu de contacte no sabr ladrea a qui senvia el correu.
Seguretat vers un desconegut
Aquest s un aspecte limitador de lxit en les implementacions de sistemes
generalistes per compartir cotxe. Compartir un viatge per anar a la universitat amb un
desconegut, dentrada pot fer enrere a moltes persones. Moltes persones dins el seu
cotxe volen tenir la total llibertat de fer el que vulguin, des de fumar, cantar amb la
rdio, tirar-se pets...
Per el sistema al estar focalitzat a estudiants que a ms tenen horaris similars, el
grau de coincidncia i afinitat t una probabilitat ms alta que en un sistema
generalista. s a dir, aqu compartiran cotxe estudiants que estaran segurament
estudiant carreres semblants i a ms duna mateixa franja dedat, i no un alt executiu
2
3
http://atenea.upc.edu:8080/moodle/
https://raco.fib.upc.edu/
162
CreacineimplantacinenelRacdeunsistemaparaCarpool
de 60 anys amb un estudiant antisistema que podria ser que no fossin tan afins com
els dos estudiants de la mateixa franja dedat. Tamb, s molt probable que siguin
companys a classe o hagin coincidit en qualsevol assignatura. Fins i tot compartir
cotxe pot ser beneficis per socialitzar ms la gent i fer menys avorrit un viatge rutinari
de casa al centre destudi.
Per des del punt de vista del sistema es pot establir un rnquing de confiana i/o
popularitat amb opinions sobre si la persona que comparteix cotxe (i la que puja) s de
fiar o no.
Tamb, cal convenir unes normes informals de comportament per al viatge compartit
en que tindr preponderncia la persona que condueix.
Finalment, com a reflexi sobre aquest aspecte, estem en un temps en que les xarxes
socials com facebook en part ens avoquen a perdre cada cop ms intimitat i si usem
massivament facebook per compartir fotos i la nostra vida perqu no compartir un
viatge rutinari per anar a la universitat?
Comunicaci dimprevistos, disponibilitat i flexibilitat dhoraris
Tamb aquest s un punt molt important per determinar lxit del sistema. No hi ha
escenari pitjor que, per exemple, tenir un examen a les 8 del mat i la persona que ens
ha de recollir no ens ha pogut comunicar que no podr venir a recollir-nos.
Si b el sistema no pretn substituir la resta de mtodes de transport (aquesta persona
pot tenir la opci danar en tren, tot i que arribar tard a lexamen) sin ser una opci
ms, sha de proporcionar el mxim deines per poder comunicar de forma fcil la
disponibilitat per compartir cotxe.
El sistema haur de tenir un mecanisme per definir el dies en que no es compartir
cotxe (per si sha danar al metge tal dia, p.ex.) i que avisi mitjanant un correu
electrnic o fins i tot via SMS. Tamb es pot tenir un log de missatges o un sistema de
missatgeria intern amb adrea de contactes amb la gent amb qui compartim cotxe.
Aix soluciona el problema si es comparteix cotxe amb poca freqncia.
Pels casos demergncia en que no shavia avisat abans es poden explorar acords
amb companyies de taxis per oferir gratutament als usuaris regulars del sistema
(pagant una petita assegurana com 5 a lany) un parell de viatges en cas que la
persona que ens hagi de buscar no pugui. Per aquest cas encara que possible no s
ms probable que qualsevol imprevist que puguem tenir en la nostra vida diria.
Preu de la benzina, conscienciaci de la gent
Aquest punt ja t ms a veure amb el fet de compartir cotxe en general que amb el
sistema que es proposa per solucionar els arranjaments de viatges compartits. Un
argument que sovint es pot escoltar en contra de compartir cotxe s que amb un preu
baix del petroli no s prou interessant portar a alg. Aix s degut a que, si es
comparteixen a mitges els costos, el conductor rep a canvi molt poc, donat que el preu
de la benzina s baix. Aix, si b pot ser cert, no ho s ms que la volatilitat del preu
de la benzina, que en uns mesos pot -o no- ser el triple que ara mateix. A ms, s un
aspecte moral el que es tracta aqu: ser una mica menys insostenibles amb el nostre
entorn, mentre no hi hagi alternativa, com un bon transport pblic i de qualitat o la
producci de cotxes elctrics en massa.
Precisament, al ser una tasca de conscienciaci el que es necessita, aquest sistema
ajuda a difondre la idea de compartir cotxe, ja que al estar present als campus virtuals
cada estudiant rebr el missatge de forma no intrusiva, en un sistema que usa cada
dia durant els anys que est estudiant.
163
CreacineimplantacinenelRacdeunsistemaparaCarpool
Cal tenir en compte tamb que el sistema no sha de veure com una relaci amb un
autoestopista, dun sollicitant per una part, per que el portin gratis i que no
recompensar al conductor de cap manera i de laltra part amb una bona persona, el
conductor que la porta. El sistema shaur danunciar com un acord mutu, on es
comparteixin els costos, i es pugui compensar dalguna manera al conductor. Tamb
shaur de comunicar la idea que puguin compartir cotxe dos conductors habituals i
que cada setmana, p.ex., condueixi cadasc. Guardar un histric ds seria llavors una
funcionalitat que el sistema hauria de tenir, tal i com sha comentat de passada
anteriorment.
Precisament, shaur de comunicar b en el sistema els avantatges de compartir cotxe
per al conductor, ja que la prdua dintimitat i el haver destar pendent dalg altre
poden eclipsar els beneficis.
Aquests beneficis principalment sn compartir costos i poder descansar, ja que cada
setmana pot conduir una persona diferent amb el seu respectiu cotxe. Per, existeix un
greu problema, que un dels millors avantatges que es podria aconseguir, com s
laccs a Carrils dAlta Ocupaci (o carrils VAO en castell), no es poden oferir a lrea
Metropolitana de Barcelona ja que prcticament no existeixen, i els plans de creaci
sn molt poc ambiciosos. Per suplir aquesta mancana es podria negociar amb els
ajuntaments places daparcament exclusives per vehicles amb alta ocupaci previ
registre i control.
Aquest document per, no cont les parts tcniques detallades per al seu
desenvolupament, ja que cal lautoritzaci prvia a nivell UPC. Noms cont la idea i
all que es vol aconseguir. Per aplicar a la realitat aquest projecte shan de seguir els
passos que tot seguit es detallen. Donat que aquesta idea de projecte implica la
creaci dun Sistema dInformaci duna certa complexitat shaur dimplicar a les
persones responsables dels Campus Virtuals com Atenea o el Rac per definir els
detalls tecnolgics necessaris.
Detall dels passos a seguir per aplicar aquest projecte:
1. Creaci de linforme de definici on es detalla labast, plataformes
informtiques actuals i requeriments detallats.
2. Creaci de linforme detallat de costos i planning del projecte, amb la relaci de
persones implicades.
3. Desenvolupament del codi del Sistema Informtic i posada a prova.
4. Promoci interna dins el collectiu UPC del nou sistema i seguiment de
lassoliment dobjectius.
Aquests passos segueixen les metodologies de Gesti de Projectes per Sistemes
Informtics, per assegurar la qualitat del sistema que es vol assolir, i que simparteixen
a assignatures a la prpia UPC com la marcada a la referncia [2]. Aquestes
metodologies tamb defineixen plans de continutat i noves caracterstiques, com la
que el sistema tamb haur de contenir: la possibilitat de compartir cotxe diverses
persones a la vegada.
Es tracta de la creaci de rutes amb parades intermdies, com es mostra a la segent
imatge, i que permetria que per cada cotxe sassols el mxim nivell docupaci. El
sistema llavors ens oferir totes les possibilitats i no imposar cap limitaci per all que
volem assolir: augmentar leficincia ens els trajectes amb vehicle privat cap a la
universitat.
164
CreacineimplantacinenelRacdeunsistemaparaCarpool
Exemple de ruta que el sistema pot oferir per compartir cotxe amb dues persones,
indicant la parada intermdia per recollir la segona (o ms) persona per anar fins a la
universitat.
Impacte ambiental
Limpacte ambiental daquesta proposta s clarament positiu. Sassoleixen tres
objectius principals i daltres collaterals. Els principals sn els segents.
CreacineimplantacinenelRacdeunsistemaparaCarpool
Tamb podem fer una estimaci simple en la reducci de CO2. Tenim en compte un
cotxe tipus estndard que genera 140g/km de CO2. Podem definir diversos escenaris
ds en que deixin de circular un nombre determinat de cotxes que recorren un cert
nombre de quilmetres al dia i dies de cotxe compartit a lany:
10
100
1000
10
10
10
100
100
100
10
100
1000
10
10
10
150
150
150
2.100
21.000
210.000
10
100
1000
10
10
10
200
200
200
2.800
28.000
280.000
10
100
1000
20
20
20
100
100
100
2.800
28.000
280.000
10
100
1000
20
20
20
150
150
150
4.200
42.000
420.000
10
100
1000
20
20
20
200
200
200
5.600
56.000
560.000
Aix doncs, podem obtenir per un escenari en que noms hem tret de la circulaci 10
cotxes que realitzen 10 quilmetres al dia durant 100 dies (part del curs) una reducci
de 1.400 Kg de CO2.
Per si aconseguim treure 100 cotxes que recorrin 20 quilmetres durant 200 dies
obtenim una reducci de 56.000 Kg de CO2 a lany.
Podem observar doncs, que encara que lxit sigui escs, val la pena aplicar aquest
projecte donat que cada kg de CO2 que es deixa demetre ens ajuda a reduir les
immissions de CO2. Com diu la dita popular: De mica en mica somple la pica.
Daltra banda, si tenim en compte les estimacions en la reducci de CO2 projectades al
Pla marc de mitigaci del canvi climtic a Catalunya 2008-2012 [3] noms la mesura
Reducci neta de la mobilitat del cotxe per l'augment de l'ocupaci mitjana a la Regi
Metropolitana de Barcelona estima la reducci de 331.330 tCO2eq en el perode
166
CreacineimplantacinenelRacdeunsistemaparaCarpool
2008-2012. I cal tornar a remarcar que aquest projecte pot ajudar activament a
lassoliment daquesta xifra.
Quant a la contaminaci acstica, els indicadors de seguiment de la zona 80km/h, aix
com els estudis que es porten a terme al Barcelona Supercomputing Center4 podran
simular i validar la reducci del soroll a les vies de la zona 80km/h tenint en compte les
dades que puguin extreure del sistema dinformaci que es proposa en aquesta idea.
Com a efectes collaterals positius, tenim un augment de leficincia en ls de les
infraestructures com carreteres i aparcaments, que impliquen el no creixement
daquestes i el seu consum despai associat.
Quant al consum denergia necessari per mantenir els servidors i equips informtics
funcionant per poder donar servei al sistema que es proposa, es pot afirmar que ser
una augment negligible, donat que els campus virtuals han de funcionar igualment i la
capacitat de clcul addicional que demanar el sistema s poca.
El millor de tot s que del propi sistema sen pot extreure una estimaci acurada per
estudiar limpacte ambiental positiu, ja que es pot demanar la informaci de tipus de
cotxe deixat dusar aix com el nombre de viatges. Daquesta manera es poden obtenir
dades reals de reducci dimmissions derivades per laplicaci daquesta idea tant o
ms acurades que les estimacions que es fan avui dia.
Beneficis socials
Locupaci mitjana per vehicle en dia feiner a la Regi Metropolitana de Barcelona s
tan reduda com 1,18 persones[1], s a dir, els cotxes desaprofiten el 76,4% de la seva
capacitat (assumint 5 places) o el que s el mateix: gaireb 4 places viatgen buides.
Un dels beneficis socials derivat daugmentar aquesta baixa ocupaci s la pacificaci
de les vies, la reducci del trfic en hores punta i la reducci de la congesti.
Tamb obtenim una millora en la facilitat per trobar aparcament amb el conseqent
estalvi de temps i diners derivats de no haver de fer voltes per trobar una plaa
daparcament. Daltra banda, obtenim una immaterial sensaci de tranquillitat derivada
de la reducci de lestrs creat per la conducci en vies congestionades i els minuts
diaris que es deixen de perdre fent voltes per trobar aparcament.
Per sens dubte, el benefici social ms important s el que saconsegueix per a la
salut pblica.
Tal i com podem trobar a lapartat de conclusions (p.57) de linforme Els beneficis per a
la salut pblica de la reducci de la contaminaci atmosfrica a lrea metropolitana de
Barcelona [4] aquest projecte ajuda activament a la reducci de la contaminaci
atmosfrica.
Si sassolissin els nivells de contaminaci atmosfrica recomanats per lOMS Barcelona no compleix ni de lluny les recomanacions de qualitat mnima ni de lOMS ni
de la Uni Europea [5]- es podrien arribar a evitar, tal i com safirma demostrat a
linforme esmentat del CREAL5:
4
5
http://www.bsc.es/
Centre de Recerca en Epidemiologia Ambiental. http://www.creal.cat/
167
CreacineimplantacinenelRacdeunsistemaparaCarpool
3.500 morts prematures (aproximadament 12% de totes les morts naturals entre
les persones ms grans de 30 anys), la qual cosa representaria un increment de
lesperana de vida de gaireb 14 mesos
1.800 ingressos hospitalaris per causes cardiorespiratries
5.100 casos de smptomes de bronquitis crnica en adults
31.100 casos de bronquitis agudes en nens, i
54.000 crisis dasma en nens i adults
Aix doncs aquest projecte no pretn ni de lluny salvar totes aquestes vides (tant de
bo!) per s anar en la direcci correcta per arribar a aconseguir-ho.
Estudi econmic per a laplicaci del projecte presentat
Per aquesta part del projecte caldria que saprovs el mateix, per poder estudiar amb
detall les funcionalitats que shauran dimplementar en el sistema dinformaci.
Tamb caldr tenir en compte els detalls tcnics de la plataforma tecnolgica exacta
en que sha dintegrar. Aix, juntament amb el detall de les funcionalitats, s important
perqu implica la dedicaci dun major o menor nombre dhores dedicades al
desenvolupament del codi necessari. Noms seguint les metodologies com les de Punt
Funci que sempren en la Gesti de Projectes de lEnginyeria Informtica [2] es pot
obtenir un preu estimat acurat. Per, com ja sha dit, per poder aplicar aquestes
metodologies cal primer fer una definici exacta del sistema.
No obstant i per donar una orientaci del rang en que es mouria aquest projecte, en
termes comercials podria estar en els 9.000-15.000.
Sha de tenir en compte per un detall molt important, i s que ja es compta amb el
personal en nmina necessari per portar part del projecte, ja que UPCNet i els
Laboratoris de Clcul estarien directament implicats i no caldria contractar ms gent
dedicada al projecte.
A ms, s recomanable que el projecte es desenvolupi amb eines de software lliure i
sota aquest marc, ja que un dels molts avantatges s que no t cost econmic afegit.
Daltra banda tamb es pot oferir laplicaci daquesta idea com una beca de PFC
duna de les Enginyeries i Enginyeries Tcniques en Informtica existents.
Per la part de necessitat de clcul i disponibilitat de mquines i servidors no es
necessita cap inversi extra a priori, ja que els sistemes que hostatgen els campus
virtuals estan preparats per donar la potncia de clcul i ample de banda necessaris
per poder aplicar el sistema que es proposa.
Aix doncs, obtenim que el resultat s que aplicar aquesta proposta t un cost
econmic molt baix i fins i tot negligible per a la UPC.
Viabilitat de laplicaci
La viabilitat daquest projecte s pot qualificar com total i a molt curt termini.
Duna banda, tenim que noms cal la voluntat necessria per portar a terme aquesta
iniciativa, ja que t un cost prcticament negligible per a la UPC com safirma a
lapartat de lestudi econmic. Es disposa ja de la infraestructura adient per integrar un
sistema que ataca directament i soluciona en bona part un dels problemes del poc xit
dels sistemes actuals per compartir cotxe.
168
CreacineimplantacinenelRacdeunsistemaparaCarpool
http://www.compartir.org/
http://proyectovao.wordpress.com/
8
http://www.busvao.com/
7
169
CreacineimplantacinenelRacdeunsistemaparaCarpool
una idea dels usuaris potencials als que es pot arribar com a mxim, si el sistema
proposat simplanta i sestn a tots el campus virtuals existents.
Val a dir que, en el decurs dels darrers anys aquestes dades segurament hagin anat
en augment la qual cosa no fa ms que assegurar la base de potencials usuaris del
sistema que es proposa confirmant la seva viabilitat.
Finalment, com a conclusi cal recordar la total viabilitat del projecte en un temps curt,
com podria ser tenir-ho funcionant en qesti de 4-6 mesos des de la seva aprovaci.
Aquest s un projecte daplicaci real, es pot portar a la prctica ja, moltes persones ja
en sn conscients dels problemes ambientals, per el que necessiten sn eines
adequades al seu abast per poder ser una mica ms sostenibles. Aquest projecte s
una eina real de les que es necessiten.
http://en.wikipedia.org/wiki/Carpool
Pster de propaganda del govern dels Estats Units durant la II Guerra Mundial incitant
a compartir cotxe (per estalviar combustible).
Quan condueixes sol, viatges amb Hitler!
Fes s dun club per compartir cotxe avui!
Els sistemes no shan popularitzat en part perqu no es disposava duna eina
adequada com la que es presenta en aquesta proposta.
170
CreacineimplantacinenelRacdeunsistemaparaCarpool
Referncies
[1] Enquesta de mobilitat en dia feiner (EMEF): La mobilitat a la Regi Metropolitana
de Barcelona, ATM, 2006
http://www10.gencat.net/ptop/binaris/EMdiafeiner_tcm33-38073.pdf
[3] Pla marc de mitigaci del canvi climtic a Catalunya 2008-2012. p.71
http://www20.gencat.cat/docs/Sala%20de%20Premsa/Documents/Arxius/com_govern_admin.a
cordsGovern.ca_ES.Pla%20canvi%20climatic1222778578559.pdf
171
CreacineimplantacinenelRacdeunsistemaparaCarpool
4.2. ReferenciaclasesCodeIgniter
172
CreacineimplantacinenelRacdeunsistemaparaCarpool
173
CreacineimplantacinenelRacdeunsistemaparaCarpool
4.3.
InstruccionesSQLconlaestructuradelaBD
174
CreacineimplantacinenelRacdeunsistemaparaCarpool
--- Estructura de tabla para la tabla `intervalo`
-CREATE TABLE IF NOT EXISTS `intervalo` (
`idUsuario` int(10) unsigned NOT NULL,
`diaSemana` enum('1','2','3','4','5') NOT NULL,
`hEntrada` tinyint(2) unsigned zerofill NOT NULL,
`hSalida` tinyint(2) unsigned zerofill NOT NULL,
`ofrece` tinyint(1) NOT NULL,
`busca` tinyint(1) NOT NULL,
PRIMARY KEY (`idUsuario`,`diaSemana`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ---------------------------------------------------------- Estructura de tabla para la tabla `usuario`
-CREATE TABLE IF NOT EXISTS `usuario` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`idRaco` varchar(75) NOT NULL,
`mail` varchar(100) NOT NULL,
`nombre` char(25) NOT NULL,
`apellidos` char(100) NOT NULL,
`direccion` varchar(300) NOT NULL,
`latitud` float(10,6) NOT NULL,
`longitud` float(10,6) NOT NULL,
`ultimoAcceso`
timestamp
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP,
`comentarioViaje` varchar(500) NOT NULL,
`idioma` varchar(2) NOT NULL DEFAULT 'ca',
`nota` float(3,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
-- ---------------------------------------------------------- Estructura de tabla para la tabla `valoracion`
-CREATE TABLE IF NOT EXISTS `valoracion` (
`idEmisor` int(10) unsigned NOT NULL,
`idReceptor` int(10) unsigned NOT NULL,
`nota` enum('1','2','3','4','5') NOT NULL,
`comentario` varchar(800) NOT NULL,
`fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`idEmisor`,`idReceptor`),
KEY `idReceptor` (`idReceptor`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--- Filtros para la tabla `admins`
-ALTER TABLE `admins`
ADD CONSTRAINT `admins_ibfk_1` FOREIGN KEY (`id`) REFERENCES `usuario` (`id`) ON
DELETE CASCADE;
--- Filtros para la tabla `aviso`
-ALTER TABLE `aviso`
ADD CONSTRAINT `aviso_ibfk_1` FOREIGN KEY (`idEmisor`) REFERENCES `usuario` (`id`) ON
DELETE CASCADE,
ADD CONSTRAINT `aviso_ibfk_2` FOREIGN KEY (`idReceptor`) REFERENCES `usuario` (`id`)
ON DELETE CASCADE;
--- Filtros para la tabla `contacto`
-ALTER TABLE `contacto`
ADD CONSTRAINT `contacto_ibfk_1` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`id`)
ON DELETE CASCADE,
ADD CONSTRAINT `contacto_ibfk_2` FOREIGN KEY (`idContacto`) REFERENCES `usuario`
(`id`) ON DELETE CASCADE;
--- Filtros para la tabla `inactivo`
-ALTER TABLE `inactivo`
ADD CONSTRAINT `inactivo_ibfk_1` FOREIGN KEY (`id`) REFERENCES `usuario` (`id`) ON
DELETE CASCADE;
--- Filtros para la tabla `intervalo`
-ALTER TABLE `intervalo`
175
CreacineimplantacinenelRacdeunsistemaparaCarpool
ADD CONSTRAINT `intervalo_ibfk_1` FOREIGN KEY (`idUsuario`) REFERENCES `usuario`
(`id`) ON DELETE CASCADE;
--- Filtros para la tabla `valoracion`
-ALTER TABLE `valoracion`
ADD CONSTRAINT `valoracion_ibfk_2` FOREIGN KEY (`idReceptor`) REFERENCES `usuario`
(`id`) ON DELETE CASCADE,
ADD CONSTRAINT `valoracion_ibfk_3` FOREIGN KEY (`idEmisor`) REFERENCES `usuario`
(`id`) ON DELETE CASCADE;
176