Espitia Paz Harold Stevens 2017
Espitia Paz Harold Stevens 2017
Espitia Paz Harold Stevens 2017
FACULTAD DE INGENIERÍA
14 de noviembre de 2016
2
Índice general
0.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
I Contextualización de la Investigación 15
1. Descripción de la investigación 17
1.1. Estudio del problema . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.1.1. Planteamiento del problema . . . . . . . . . . . . . . . . . 17
1.1.2. Formulación del problema . . . . . . . . . . . . . . . . . . 18
1.1.3. Sistematización del problema . . . . . . . . . . . . . . . . 18
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.2. Objetivos especı́ficos . . . . . . . . . . . . . . . . . . . . . 19
1.3. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3.1. Justificación práctica . . . . . . . . . . . . . . . . . . . . . 19
1.4. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5. Marco de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5.1. Marco teórico . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5.2. Marco conceptual . . . . . . . . . . . . . . . . . . . . . . . 26
1.6. Aspectos metodológicos . . . . . . . . . . . . . . . . . . . . . . . 28
1.6.1. Tipo de estudio . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6.2. Método de investigación . . . . . . . . . . . . . . . . . . . 28
1.6.3. Fuentes y técnicas para la recolección de la información . 29
1.6.4. Tratamiento de la información . . . . . . . . . . . . . . . 29
1.7. Organización del trabajo de grado . . . . . . . . . . . . . . . . . 29
1.8. Estudio de sistemas previos . . . . . . . . . . . . . . . . . . . . . 29
1.8.1. Waze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.8.2. Moovit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
II Desarrollo de la Investigación 31
2. Gestión del Proyecto 33
2.1. Gestión Técnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.1.1. Metodologı́a de Desarrollo . . . . . . . . . . . . . . . . . . 33
3
4 ÍNDICE GENERAL
3. Arquitectura Funcional 99
3.1. Vista Motivacional . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.1.1. Metamodelo . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.1.2. Vista Motivacional iTransAgilApp . . . . . . . . . . . . . 100
3.2. Vista Proceso de Negocio . . . . . . . . . . . . . . . . . . . . . . 100
3.2.1. Metamodelo . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.2.2. Vista Proceso de Negocio iTransAgilApp . . . . . . . . . 101
6. Conclusiones 115
6.1. Verificación, contraste y evaluación de los objetivos . . . . . . . . 115
6.2. Sı́ntesis del modelo propuesto . . . . . . . . . . . . . . . . . . . . 116
6.3. Aportes originales . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.4. Trabajos o publicaciones derivadas . . . . . . . . . . . . . . . . . 117
ÍNDICE GENERAL 5
7
8 ÍNDICE DE FIGURAS
11
12 ÍNDICE DE CUADROS
0.1. Introducción
Los usuarios del sistema de transporte masivo de Bogotá(Colombia) ST,
diariamente se enfrentan a la congestión en estaciones y buses de las diferentes
rutas, lo cual genera retrasos en la llegada a sus destinos e incomodidad en su
desplazamiento. Actualmente un usuario del ST no cuenta con una fuente de
información que presente el nivel de congestión real de buses y estaciones, por
lo cual se puede dirigir a una estación congestionada e invierte tiempo simple-
mente para poder ingresar, el cual puede emplear para dirigirse a otra estación
con una cantidad de usuarios menor, definir otra ruta o medio de transporte
diferente y posiblemente reducir el tiempo de llegada a su destino.
Es normal ver personas esperando una ruta especı́fica que corren hacia otro
vagón en la misma estación ’persiguiendo’ a un bus que lleva una ruta diferente
a la esperada pero que también les permite llegar a su destino. El motivo de
esto puede ser que la ruta esperada llevaba mucho tiempo sin pasar, puede ser
porque el bus perseguido tenia mas espacio del que creı́an iban a encontrar en
el bus de la ruta esperada inicialmente, o una combinación de las dos causas.
Contextualización de la
Investigación
15
Capı́tulo 1
Descripción de la
investigación
La creación del ST, proporcionó una solución paulatina al problema, sin em-
bargo con el paso del tiempo la idea de unificar el transporte público, con el
SITP, ha hecho que el sector movilidad a nivel distrital, se convierta en uno de
los problemas principales de la administración capitalina, pues el sistema que
actualmente opera presenta diferentes incógnitas, dentro de las que resaltan la
optimización del servicio, la seguridad dentro del sistema, comodidad, costos,
etc. Generalmente durante las horas pico se presenta congestión en estaciones
y paraderos del SITP, ası́ como en los del ST. Para el caso de las estaciones, el
tiempo de espera tan solo para el ingreso puede superar los diez minutos. En
cuanto a los paraderos del SITP las filas que conducen al lugar donde el bus
abrirá las puertas pueden extenderse a más de quince metros.
17
18 CAPÍTULO 1. DESCRIPCIÓN DE LA INVESTIGACIÓN
cuentan con una herramienta o medio que les permita identificar los puntos que
son realmente crı́ticos para poder abordar un auto bus del ST o aquellos puntos
que comparados con otros presentan una cantidad menor de usuarios.
Por otro lado los usuarios desconocen totalmente el nivel de congestión pun-
tual del sistema, tiempo estimado de llegada o cantidad de usuarios aproximada
del siguiente bus que arribará al punto de abordaje en el que se encuentra. En
algunas situaciones cuando el usuario se encuentra a la espera de un autobús
en el punto de abordar, el que esté más cerca puede llevar en el momento más
usuarios que otro aunque se encuentre más lejos. Para ese caso vale la pena
esperar unos minutos más para poder transportarse en un bus más desocupado
y ası́ poder viajar más cómodo.
Las siguientes son preguntas que serán objeto de estudio a lo largo de este
proyecto, pues se busca agilizar desde un punto de vista tecnológico, el sistema
de transporte a nivel distrital.
1.2. Objetivos
1.2.1. Objetivo general
Implementar una aplicación móvil Android que se integre con un sistema de
información basado en la cantidad aproximada de usuarios del ST capturando
datos en tiempo real, permitiendo a los mismos enviar y consultar la información
que verán los demás usuarios, para lograr identificar el nivel de congestión y
ubicación de los buses y estaciones del mismo.
1.3. Justificacion
1.3.1. Justificación práctica
Teniendo en cuenta la problemática presentada previamente, el proyecto tie-
ne su razón de ser principalmente en el hecho de realizar un estudio preliminar
del comportamiento del sistema de transporte masivo, teniendo en cuenta las
diferentes variables que lo afectan. El estudio permitirá obtener una apreciación
directa de la gestión del sistema y la interacción con el usuario que este presenta.
1.4. Hipótesis
La implementación de una aplicación Android constituirá, para el usuario,
un medio de consulta inmediata sobre la ubicación y nivel de congestión de buses
y estaciones del ST permitiéndoles enterarse de ciertas variables en tiempo real
para tomar decisiones basados en esa información.
Sin embargo un éxito prematuro del sistema presentó durante sus primeras fases
de funcionamiento, generó un crecimiento no controlado, que a su vez desarrolló
una sobre demanda de los usuarios, hasta el punto de un 12.8 % en los últimos
13 años. (Revista semana, 2014) [1]
C – Suba
D – Calle 80
E – NQS Central
F – Américas
G – NQS Sur
H – Caracas sur
J – Eje ambiental
K – Avenida el dorado
L – Carrera 10
M – Carrera séptima central
N – Boyacá sur
P – Boyacá central
R – Boyacá norte
S – Carrera séptima norte [6]
Desde el punto de vista del usuario final, el principal problema que presenta
el sistema es la ineficiencia en cuanto al flujo cotidiano del mismo, particu-
larmente en las llamadas horas pico (segmentos del dı́a en los que el flujo de
usuarios es especialmente crı́tico), pues el ST presenta descompensaciones cla-
ramente visibles durante su cotidiano funcionamiento.
80 y Suba. [5]
El presente proyecto busca por medio de una solución tecnológica, brindar una
fuente de información a los usuarios, que permita a los mismos tener conocimien-
to en tiempo real sobre el comportamiento del sistema, especı́ficamente sobre el
nivel de congestión de buses y estaciones.
Dado que uno de los objetivos especı́ficos del proyecto es realizar la creación
de una aplicación móvil, el core del proyecto centrará sus esfuerzos en la prime-
ra capa del esquema de aplicaciones del sistema operativo Android, realizando
el despliegue de una aplicación desarrollada en lenguaje Java, cuyo soporte de
información fundamental está radicado en un servicio web que implementará la
tecnologı́a REST.
ASPECTOS TÉCNICOS:
Dado que el foco de la solución planteada para el desarrollo del proyecto
consiste en el desarrollo de una aplicación móvil desarrollada bajo el sistema
operativo Android, a continuación se presentan los conceptos más importantes
en cuanto a los aspectos técnicos que se tendrán en cuenta:
1.8.1. Waze
De acuerdo a lo descrito en la página de ayuda de WAZE (ahora propiedad
de Google), es una aplicación de navegación GPS, aunque para muchas personas
es considerada una red social que permite a sus usuarios compartir información
sobre el estado del tráfico, controles policiales, accidentes, entre otros eventos
que puedan afectar la velocidad y calidad de desplazamiento de vehı́culos en las
calles.
1.8.2. Moovit
MOOVIT Es una aplicación móvil que permite a los usuarios consultar infor-
mación sobre el transporte público como rutas, paradas, tiempo de espera para
la llegada de una ruta, etc. Lo anterior para facilitar la movilidad en el sistema
de transporte de cada ciudad; SITP/Transmilenio en el caso de Bogotá que es la
ciudad en la cual se desarrollará nuestro proyecto. MOOVIT tiene varias funcio-
nalidades muy importantes y útiles, las cuales se pueden consultar en su página
oficial moovitapp.com/es/. Sin embargo, la navegación y facilidad de uso no
favorecen mucho a la misma, teniendo en cuenta que realmente un usuario del
ST, SITP o cualquier sistema de transporte masivo espera de una herramienta
para llevar a cabo su recorrido, la simplicidad de uso y calidad de la información.
Desarrollo de la
Investigación
31
Capı́tulo 2
Una vez finalizado el desarrollo se liberará el Sprint para que se realice la fase
de pruebas, mientras se avanza en el desarrollo de los demás Sprint, y en caso
de existir errores serán corregidos y entregados con el desarrollo del siguiente
Sprint.
33
34 CAPÍTULO 2. GESTIÓN DEL PROYECTO
corresponda.
Evidencias:
2. Registro de usuario
Identificador (ID) de la Historia:0-002
Rol: Usuario final
Caracterı́stica/Funcionalidad:Registro de usuario
Razón/Resultado:Registrar usuario final para que pueda usar la
aplicación
Escenarios:
• 1. Usuario no registrado diligencia correctamente el cam-
po de email y contraseña
Evidencias:
Evidencias:
campo de email
pues de ’@nombredominio’
Evidencias:
Evidencias:
3. Inicio de sesión
Evidencias:
Evidencias:
Evidencias:
4. Olvido de contraseña
Identificador (ID) de la Historia: 0-004
Rol: Usuario final
Caracterı́stica/Funcionalidad: Olvido de contraseña
Razón/Resultado: Reiniciar contraseña y enviarla al e-mail del
usuario
Escenarios:
• 1. Usuario registrado selecciona link de olvido de con-
traseña
Evidencias:
Evidencias:
Evidencias:
50 CAPÍTULO 2. GESTIÓN DEL PROYECTO
Contexto:
Evidencias:
Contexto:
Evidencias:
Evidencias:
Contexto:
Evidencias:
Evidencias:
Contexto:
Evidencias:
Evidencias:
Evidencias:
Evidencias:
• 6. Búsqueda filtrada
Evidencias:
Evidencias:
Evidencias:
Evidencias:
• 3. Mensaje informando la inconsistencia.
2.1. GESTIÓN TÉCNICA 65
Evidencias:
Evidencias:
Evidencias:
• 3. Seleccionar ruta que no tenga buses registrados en el
momento de la consulta
Evidencias:
Evidencias:
Evidencias:
Evidencias:
Evidencias:
Evidencias:
Evidencias:
• 6. Mensaje de confirmación.
Evidencias:
Evidencias:
• 8. Presentación correcta de los componentes definidos
durante el viaje del usuario en el bus.
Evidencias:
Evidencias:
Evidencias:
Esta ejecución se realiza en segundo plano, por lo cual no es
posible tomar una evidencia de la aplicación móvil. Al realizar la
prueba se verificó que llegara la solicitud al WS y que se guardará
correctamente la información en la base de datos.
16. Finalizar Viaje
Identificador (ID) de la Historia:3-007
Rol: Usuario final
Caracterı́stica/Funcionalidad:Finalizar Viaje
Razón/Resultado:Enviar una notificación al servicio, que se encar-
ga de detener el proceso de actualización de la ubicación actual del
usuario.
Escenarios:
• 1. Finalización de viaje
su recorrido.
Evidencias:
Después de presionar el botón de finalizar sesión se mostró nue-
vamente el listado de estaciones como se esperaba.
Evidencias:
VISTA PRINCIPAL DE PORTAL DE ADMINISTRACIÓN
CREACIÓN DE TRONCAL
EDICIÓN DE TRONCAL
CONSULTA DE TRONCAL
ELIMINACIÓN DE TRONCAL
• 2. Gestión de Estaciones
Evidencias:
LISTADO DE ESTACIONES
CREACIÓN DE ESTACIÓN
EDICIÓN DE ESTACIÓN
CONSULTA DE ESTACIÓN
ELIMINACIÓN DE ESTACIÓN
• 3. Gestión de Rutas
Evidencias:
LISTADO DE RUTAS
CREACIÓN DE RUTA
EDICIÓN DE RUTA
CONSULTA DE RUTA
Evidencias:
LISTADO DE RUTAS POR ESTACIÓN (PARADA)
MENSAJES INFORMATIVOS
Numeral Mensaje
INF-1 Usuario registrado exitosamente.
INF-2 Infomación no disponible. Intentelo de nuevo.
INF-3 No se encontró nombre de estación con el texto ingresado.
INF-4 Cambio de contraseña exitoso.
INF-5 No se encontró información de buses en la ruta seleccionada.
INF-6 Usted abordó un bus de la ruta XXX.
2.1. GESTIÓN TÉCNICA 89
MENSAJES INFORMATIVOS
Numeral Mensaje
WAR-1 Email inválido.
WAR-2 No es posible abordar un bus estando lejos de una estación.
WAR-3 El GPS del dispositivo no está activo.
WAR-4 Está seguro que desea calificar el nivel de congestión del bus?
WAR-5 No es posible abordar un bus si no se ha registrado uno cerca a la estación.
MENSAJES INFORMATIVOS
Numeral Mensaje
ERR-1 Email ya registrado.
ERR-2 Email inválido.
ERR-3 Contraseña inválida.
ERR-4 Credenciales inválidas.
ERR-5 Debe diligenciar los campos.
ERR-6 La nueva contraseña y la confirmación deben ser iguales.
ERR-7 La contraseña actual es incorrecta.
ERR-8 No se pudo establecer conexión con el servidor central.
1. Tabla Users
2. Tabla ResponseCodes
3. Tabla Troncals
4. Tabla Routes
5. Tabla Stations
6. Tabla RouteStatation
7. Tabla RouteStationQualification
8. Tabla BusRouteQualification
9. Tabla Bus
OpRegisterUser
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
email string 5 NA resposeCode string 9 NA
password string 6 NA message string 10 NA
2. Método OpLoginSession
OpLoginSession
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
email string 5 NA resposeCode string 9 9
password string 6 NA message string 10 NA
94 CAPÍTULO 2. GESTIÓN DEL PROYECTO
3. Método OpGetStations
OpGetStations
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
NA NA NA NA stationCode int 1 NA
NA NA NA NA name string 3 50
NA NA NA NA idTroncal int 1 NA
NA NA NA NA troncal string 4 13
NA NA NA NA identificatorTroncal char 1 1
NA NA NA NA colorTroncal string 7 7
4. Método OpChangePassword
OpChangePassword
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
email string 5 NA resposeCode string 9 9
password string 6 NA message string 10 NA
newPassword string 6 NA
5. Método OpSetRouteStationQualification
OpSetRouteStationQualification
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
routeStationCode int 1 NA resposeCode string 9 9
qualification int 1 NA message string 10 NA
user String 1 NA
2.1. GESTIÓN TÉCNICA 95
6. Método OpGetStationQualification
OpGetStationQualification
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
stationCode int 1 NA responseCode string 1 NA
stationCode int 1 NA qualification int 1 NA
7. Método OpGetRoutesStations
OpGetRoutesStations
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
stationCode int 1 NA routeCode int 1 NA
stationCode int 1 NA name string 1 5
stationCode int 1 NA stationName string 1 100
stationCode int 1 NA nameStartStation string 1 100
stationCode int 1 NA troncalName string 1 100
stationCode int 1 NA nameFinishStation string 1 100
stationCode int 1 NA troncalColor string 1 7
stationCode int 1 NA routeStationCode int 1 NA
8. Método OpGetRouteStationQualification
OpGetRouteStationQualification
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
stationCode int 1 NA responseCode string 1 NA
stationCode int 1 NA qualification int 1 NA
96 CAPÍTULO 2. GESTIÓN DEL PROYECTO
9. Método OpSetQualificationBusRoute
OpSetQualificationBusRoute
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
routeCode int 1 NA responseCode string 1 NA
idBus int 1 NA qualification int 1 NA
qualification int 1 NA
OpGetRouteQualification
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
routeCode int 1 NA responseCode string 1 NA
stationCode int 1 NA qualification int 1 NA
OpGetBus
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
routeCode int 1 NA idBus int(identity) 1 NA
routeCode int 1 NA latitudInitial numeric 1 NA
routeCode int 1 NA longitudeInitial numeric 1 NA
routeCode int 1 NA qualification int 1 NA
routeCode int 1 NA routeCode int 1 NA
routeCode int 1 NA lastUpdateDate dateTime() NA NA
2.2. GESTIÓN DE COMUNICACIONES 97
OpGetBus
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
idBus int 1 NA responseCode int 1 NA
latitudeActual int 1 NA messageResponse string 1 NA
longitudeActual int 1 NA
OpCreateBus
Request Response
Nombre Tipo Longitud Longitud Nombre Tipo Longitud Longitud
Campo Dato Mı́nima Máxima Campo Dato Mı́nima Máxima
routeCode int 1 NA responseCode int 1 NA
qualification int 1 NA messageResponse string 1 NA
initialLatitude int 1 NA idBus int 1 NA
initialLongitude int 1 NA idBus int 1 NA
Arquitectura Funcional
3.1.1. Metamodelo
99
100 CAPÍTULO 3. ARQUITECTURA FUNCIONAL
3.2.1. Metamodelo
Dichos servicios son realizados por una serie de procesos internos que permi-
ten cumplir el objetivo de brindar esa información especifica a los usuarios del
ST.
102 CAPÍTULO 3. ARQUITECTURA FUNCIONAL
Capı́tulo 4
Arquitectura Técnica
4.1.1. Metamodelo
103
104 CAPÍTULO 4. ARQUITECTURA TÉCNICA
4.2.1. Metamodelo
4.3.1. Metamodelo
4.4.1. Metamodelo
4.5.1. Metamodelo
4.6.1. Metamodelo
Cierre de la Investigación
111
Capı́tulo 5
Resultados y discusión
El objetivo general ası́ como cada uno de los objetivos especı́ficos se lograron
en su totalidad ya que se genero un producto de alta calidad, tanto en el sistema
de información compuesto por la base de datos y el servicio REST que la con-
sulta/alimenta, como en la aplicación móvil Android que utiliza dicho sistema
de información.
113
114 CAPÍTULO 5. RESULTADOS Y DISCUSIÓN
Capı́tulo 6
Conclusiones
115
116 CAPÍTULO 6. CONCLUSIONES
Durante la etapa de concepción y planeación del proyecto, como parte del méto-
do que se abordó para el proceso investigativo, se realizó la creación de un crono-
grama general, dentro del cual posteriormente y en conjunto con la concepción
de la EDT (Estructura de Desglose de Trabajo) se detallaron las actividades
que deberı́an ser ejecutadas, teniendo en cuenta su espacio en el cronograma.
119
120 CAPÍTULO 7. PROSPECTIVA DEL TRABAJO DE GRADO
Bibliografı́a
[1] Togaf R 9.1 - part ii: Architecture development method (adm), 1999.
[2] The open group ¿togaf R 9.1, 1999.
[3] Kent. Fowler Martin Beck. Extreme programming explained: Embrace
change, oct 2000.
[4] Borja López Yolanda. Metodologı́a Ágil de desarrollo de software – xp. feb
2011.
[5] Joskowicz José. Reglas y prácticas en extreme programming. feb 2008.
[6] Cordero Jorge y otros. Báez Manuel, Borreo Álvaro. Introducción a an-
droid. jan 2010.
[7] Jesús Tomás Gironés. El gran libro de android (segunda edición), may
2005.
[8] Android.com, 2014.
[9] Software de comunicaciones - arquitectura android, 2012.
[10] Android os, 2012.
[11] Arquitectura mulñtinivel para la construcción de servicios web restful, 2011.
[12] Capitulo 5. representational state transfer (rest), 2000.
[13] Historia de transmilenio, 2016.
[14] Sistema masivo de transporte, 2014.
[15] José Vittone Javier ’Simón’ Cuello. Diseñando apps para móviles, 2013.
[16] Android, 2016.
[17] Algoritmos defnición, 2016.
[18] Algoritmos para la ruta mas corta en un grafo, 2016.
[19] Ruta mas corta en grafos, 2016.
121
122 BIBLIOGRAFÍA