Escolar Documentos
Profissional Documentos
Cultura Documentos
PROYECTO DE GRADO
Directora:
Co-Director:
Inicialmente, nos gustaría agradecer a Dios por bendecirnos para llegar hasta donde
hemos llegado, porque hizo realidad este sueño anhelado, y nos dio salud y vida para
poder culminar con éxito nuestra carrera profesional.
A nuestra directora de tesis, MSc. Alba Consuelo Nieto Lemus, por su esfuerzo y
dedicación, quien con sus conocimientos, su experiencia, su paciencia, su orientación,
su persistencia y su motivación ha logrado que podamos culminar con éxito nuestro
trabajo. Ha sido un privilegio poder contar con su guía y ayuda.
A nuestro Jurado, MSc. Helbert Eduardo Espitia, por el interés, motivación, apoyo y
critica, necesarios para la realización de éste trabajo.
También nos gustaría agradecer a nuestros profesores durante toda nuestra carrera
profesional, porque todos han aportado con un granito de arena a nuestra formación
como ingenieras.
1.3 OBJETIVOS........................................................................................................... 4
1.4 JUSTIFICACIÓN.................................................................................................... 5
2.3 ANTECEDENTES................................................................................................ 25
3.10 PRUEBAS.......................................................................................................... 74
CONCLUSIONES
TRABAJO FUTURO
ANEXOS
ÍNDICE DE TABLAS
TABLA 1. Tarifas Recargos 2014. ................................................................................. 12
TABLA 2. Comparación De Sistemas Operativos Para Móviles ................................... 22
TABLA 3. Personas y Roles Del Proyecto. . ................................................................. 29
TABLA 4. Sprints Del Proyecto. . .................................................................................. 33
TABLA 5. Actividades Desarrolladas En El sprint 0. . ................................................. 333
TABLA 6. Herramientas Utilizadas Para El Desarrollo Del Proyecto. ........................... 34
TABLA 7. Actividades Desarrolladas En El Sprint1. ...................................................... 35
TABLA 8. Módulos De La aplicación móvil. .................................................................. 36
TABLA 9. Matriz De Trazabilidad. ................................................................................. 45
TABLA 10. Actividades Sprint 2. ................................................................................... 58
TABLA 11. Actividades Sprint 3.. .................................................................................. 66
TABLA 12. Actividades Sprint 4.. .................................................................................. 68
TABLA 13. Actividades Sprint 5.. .................................................................................. 68
TABLA 14. Actividades Sprint 6.. .................................................................................. 69
TABLA 15.Actividades Realizadas en pruebas. . .......................................................... 74
TABLA 16. Formato De Caso de Prueba: Activar gps................................................... 75
TABLA 17. Formato De Caso de Prueba: Iniciar Medición. .......................................... 76
TABLA 18. Formato De Caso de Prueba: Contabilizar y Seleccionar Recargos........... 77
TABLA 19. Formato De Caso de Prueba: Notificar y Actualizar Modelo De Tarifa. ...... 78
TABLA 20. Formato De caso de Prueba: Notificar Queja En Twitter.. .......................... 79
TABLA 21. Días, Zonas y Franjas En Las Que Se Tomaron Los Datos. ...................... 82
TABLA 22. Toma De Datos.. ......................................................................................... 85
TABLA 23. Cronograma De Las Actividades Desarrolladas. ........................................ 91
TABLA 24. Formato De Caso De Prueba: Mostrar La ubicación Del Usuario. ............ 109
TABLA 25. Formato De Caso De Prueba: Iniciar Aplicación. ...................................... 110
TABLA 26. Formato De Caso De Prueba: Calcular Valor De La Carrera.................... 111
TABLA 27. Formato De Caso De Prueba: Almacenar Información Del Servicio. ........ 112
TABLA 28. Formato De Caso De Prueba: Generar Informe. ...................................... 113
TABLA 29. Formato De Caso De Prueba: Cargar Modelo De Tarifa. ......................... 114
TABLA 30. Distribución T-Student. ............................................................................. 116
ÍNDICE DE FIGURAS
Dada esta situación se propone el desarrollo de una aplicación móvil para teléfonos
celulares con sistema operativo Android, que controle y verifique las unidades que
marca el recorrido que realiza el taxi en el que se transporta un usuario, calculando la
tarifa que se debe pagar según la normatividad vigente, establecida por la Secretaria
de Movilidad de Bogotá como organismo de regulación. Adicionalmente, la aplicación
permitirá generar un reporte en las redes sociales como mecanismo de control social
en caso de irregularidades en la marcación del taxímetro o en el cobro de la tarifa.
1
1.2 PLANTEAMIENTO DEL PROBLEMA
1.2.1 DESCRIPCIÓN DEL PROBLEMA
Para el cálculo del cobro del servicio de taxi, se hace uso del taxímetro como
instrumento de medición el cual le indica al pasajero la cantidad total que debe pagar
según las unidades marcadas basándose en la distancia recorrida y el tiempo
transcurrido. Para calcular el valor a pagar, cada una de las unidades que marca tiene
un equivalente en distancia y en tiempo: se marca una unidad por cada 100 metros
recorridos o por cada 30 segundos de espera [3] (Ver sección 2. Normativa Vigente).
El valor de la unidad se establece de acuerdo al decreto No. 237 de 2006 [3], donde se
determina el costo del kilómetro recorrido y el valor que tendrá cada unidad en pesos.
Cada una de estas variables se incrementa en Junio de cada año. La Secretaria de
Tránsito y Transporte de Bogotá es la entidad encargada de regular dichos cambios y
velar por su cumplimiento.
Muchas son las técnicas utilizadas para adulterar el taxímetro lo cual se ve reflejado en
el cobro del servicio de taxi. A continuación se mencionan algunas de las prácticas
ilegales para manipular y adulterar el funcionamiento correcto de un taxímetro.
Actualmente los usuarios de taxi que quieran manifestar una inconformidad o hacer una
denuncia por el servicio prestado, pueden ir a la página oficial de la Secretaria Distrital
de Movilidad y en la parte superior derecha ingresar a la pestaña Contacto [6]. Una vez
diligenciado el formato, se generará un número de radicado, con este número el
ciudadano puede hacer el seguimiento de su denuncia. Existe en Twitter una página
llamada @DenunciealTaxista [7], en donde los usuarios pueden hacer públicas sus
quejas de manera rápida. Dicha página no está gestionada por ninguna entidad oficial,
pero al ser una red social popular, permite la rápida difusión de éstos reportes.
2
1.2.2 FORMULACIÓN DE LA PREGUNTA CENTRAL DEL TRABAJO
¿Cómo y con qué tecnología debe ser desarrollado el prototipo de software para
dispositivos móviles con sistema operativo Android, de tal forma que funcione cómo
taxímetro para el usuario, para que éste pueda llevar control del cobro del servicio de
taxi, pudiendo generar una queja y hacerla pública en las redes sociales?
3
1.3 OBJETIVOS
1.3.1 OBJETIVO GENERAL
Especificar los requerimientos del prototipo para el monitoreo del cobro del
servicio de taxi ajustado a la normatividad vigente para la ciudad de Bogotá.
4
1.4 JUSTIFICACIÓN
Taxi GPS: Demora al iniciar la aplicación, las unidades corren más rápido que el
taxímetro real y maneja mucha publicidad, lo cual resulta incómodo para sus usuarios
[8].
Taxiando: Funciona únicamente como una calculadora de tiempo y tarifa, además solo
está disponible en Costa Rica [9].
Taxímetro GPS: Gratuita para Android pero tiene un costo para iOS de 0.99 dólares
[10].
5
1.5 ALCANCES Y LIMITACIONES
1.5.1 ALCANCES
La aplicación debe permitir enviar un reporte a la red social Twitter, aplicación web
gratuita, que permitirá a los usuarios enviar, compartir y difundir mensajes, cada una
con su correspondiente soporte. La gestión o trámite del reporte no está dentro del
alcance de la aplicación.
6
1.5.2 LIMITACIONES
La tecnología GPS que se utilizará para monitorear el recorrido del taxi, algunas veces
provee información imprecisa debido a factores externos como: precisión del dispositivo
GPS, visibilidad del GPS, presencia de edificios muy altos o cambios climáticos; dichos
factores hacen que la información suministrada sea poco acertada [13]. Al ser el GPS
el instrumento de medida que se utilizará para calcular las unidades recorridas y para
evitar ofrecer datos erróneos, se realizará el proceso de verificación del prototipo bajo
condiciones normales.
En [14], [15] y [16], se enuncia que el desarrollo de software es una actividad, que dada
su complejidad, debe desarrollarse en grupo. Además, ésta actividad requiere de
distintas capacidades, las que no se encuentran todas en una sola persona.
Actualmente existen diferentes metodologías para el desarrollo de software, en donde
todas tienen una característica en común, han sido diseñadas para un contexto de
trabajo en equipo, planteando la interacción de diferentes tipos de roles, con funciones
diferentes dentro del proyecto. La mayor parte del software no puede desarrollarse de
manera individual y exige la participación de equipos de desarrollo. Se propuso Scrum
[17] como metodología de desarrollo para flexibilizar el manejo del cambio debido a la
curva de aprendizaje y teniendo en cuenta que las restricciones de tiempo requerían
una construcción rápida, pero sin dejar de lado las buenas prácticas del desarrollo de
software.
7
2. MARCO REFERENCIAL
2.1 MARCO TEÓRICO
2.1.1 TAXIMETRO
El taxímetro es un instrumento digital instalado en los taxis que marca las unidades
usadas por un pasajero durante un recorrido, busca garantizar el cobro de las tarifas
justas, indicando en todo momento el valor que debe pagar el usuario con respecto a la
distancia recorrida por el vehículo y al tiempo transcurrido [17].
2.1.1.1 CARACTERÍSTICAS
Los taxímetros deben contar con las siguientes características [19]:
Visibilidad: Lectura fácil a una visión normal 20/20, a una distancia mínima de 3
metros, tanto de día, como de noche.
El taxímetro es de tipo digital, y debe estar ajustado para calcular la tarifa base
tomando como punto de partida la distancia recorrida y el tiempo.
Está ubicado en el medio de la parte delantera interior del taxi o fijado al techo;
con el objetivo de que el pasajero pueda observarlo en cualquier momento.
8
2.1.1.2 FUNCIONAMIENTO
El taxímetro cuenta con un ciclo de trabajo de 5 estados: libre, servicio, pausa, pagar y
control, como se indica en la figura 1. Cada uno de éstos estados presenta un
comportamiento especial [18].
Para enunciar las indicaciones aportadas por los taxímetros, se establecen las
siguientes unidades de medida [18]:
A continuación se describen cada uno de los valores básicos de los que consta una
tarifa.
2.1.1.3.1 BANDERA
9
b) Servicio: Ésta etapa inicia cuando inicia el viaje, en dónde se va mostrando el
número de unidades recorridas. En este estado no debe poder alterarse el valor
acumulado por un medio diferente a la función distancia y tiempo.
Costo inicial
También llamado Banderazo, se refiere al valor en el que inicia el taxímetro al
momento de ser puesto en servicio. De acuerdo a la Alcaldía Mayor de Bogotá [19]
se estipuló que para el año 2014-2015, el banderazo será de 25 unidades, que
corresponden a $2000 pesos.
10
por hora de servicio es el valor fijado por la Alcaldía Mayor de Bogotá. El costo por
la función tiempo es sumado al acumulador interno de costo a medida que se vaya
generando.
Se refiere a la velocidad a la que los costos por función distancia y tiempo son
equivalentes. A una velocidad menor, el taxímetro automáticamente trabaja en la
función tiempo y a una velocidad mayor el taxímetro trabaja en la función distancia.
Ésta velocidad se calcula a partir de la siguiente fórmula [18]:
2.1.1.3.4 EXTRAS
Es un valor adicional que se le cobra al pasajero, el cual no está incluido en la tarifa del
taxímetro. El caso más común es por llevar equipaje o artículos pesados. Éste valor se
deja a criterio del taxista.
2.1.1.4 MODELO DE TARIFA
De acuerdo al decreto 400 de 2014 [19], la Alcaldía Mayor de Bogotá autorizó los
nuevos recargos para el año 2014. En la tabla 1, se muestran dichos recargos, y se
contrastan contra las del año 2013.
11
Se considera cuando el taxi está inmóvil a causa de trancones o cuando transita a
velocidades menores de 10 kilómetros por hora, éste valor aplica en horario diurno y
nocturno.
Tarifa nocturna
Es aquella tarifa entre las 20:00 y las 5:00 horas. Aplica para domingos y festivos
todo el día.
Tarifa diurna
Es aquella tarifa entre las 05:01 y las 19:59 horas.
Un estudio realizado por la Policía de Tránsito de Bogotá arrojó que se han sancionado
345 vehículos semestralmente por tener el taxímetro adulterado, cuya consecuencia es
que en promedio diariamente los bogotanos pierden 300 millones de pesos [20]. Hay
distintas maneras de cometer fraude, algunas de ellas son:
El paseo
Éste tipo de fraude es uno de los más populares, el cual consiste en llevar al
pasajero por el camino más largo, pasar por vías congestionadas y dar vueltas
sin necesidad, con el objetivo de cobrar más en la carrera.
Tarifa Anticipada
1
A la fecha, 28 de Julio de 2015, la Alcaldía Mayor de Bogotá no ha publicado las tarifas del 2015-2016.
12
La tarifa anticipada consiste en encender el taxímetro antes de que el pasajero
aborde el vehículo, en muchas ocasiones el pasajero no se percata de dicha
acción.
El "muñeco"
El "muñeco" es un dispositivo ilegal que altera las unidades del taxímetro. Puede
ser instalado en cualquier parte del vehículo: El pito, sistema de freno, freno de
mano, parte posterior de la dirección o en las direccionales, etc. Consta de un
botón, o de una "cuerdita" que permite que al ser presionado o halado, el
taxímetro aumente más rápido.
13
2.1.2 NORMATIVA VIGENTE
Se define tarifa como el precio que se debe pagar por el servicio que se ofrece de
transporte individual de pasajero, esta se cancela al llegar al lugar de destino. Se
definen como autoridades de trasporte competentes:
a) Jurisdicción Nacional.
b) Jurisdicción Distrital y Municipal.
c) Jurisdicción del área metropolitana constituida de conformidad con la ley.
Título II Habilitación
Cualquier empresa que desee prestar sus servicios y ser parte del trasporte público,
deberá solicitar y diligenciar una serie de documentos que lo acrediten y de esta
manera asegurar la prestación de un servicio confiable. Una vez se ha realizado la
solicitud la autoridad competente tendrá máximo 90 días hábiles para responder. La
empresa se someterá a ser evaluada por parte de las autoridades competentes
para la confirmación y verificación de datos la cual se realizara en cualquier
momento [21].
14
Título IV Prestación del servicio
Una vez la empresa tenga los permisos y se habilite al vehículo para prestar el
servicio público, deberá permanecer en este servicio como mínimo 5 años.
Por el cual se fijan las tarifas para el servicio taxi, determinando variables y criterios
que se deben tener en cuenta al momento de establecer el valor de la misma. Dicha
tarifa tendrá un incremento anual el cual será calculado el mes de Junio de cada año.
Se debe incentivar el servicio de taxis por medio de llamada telefónica con el fin de
ofrecer al usuario un servicio más seguro, cómodo y de calidad [3].
La tarifa técnica por unidad, entendida como el valor por unidad cada 100 metros o
cada 30 segundos, se establecerá de acuerdo a las siguientes ecuación [3]:
15
La tabla de conversiones de unidades a pesos se obtiene de multiplicar el número de
unidades transcurridas por el valor de cada unidad vigente autorizada, el resultado de
este producto será el valor de la tarifa básica.
Además de la tarifa básica se puede aplicar recargos extras al solicitar un servicio de
taxi, como se puede observar en la tabla 1: recargo al y del aeropuerto; recargo
nocturno, dominical y festivo; recargo por servicio puerta a puerta o por solicitud
telefónica del usuario. Definiendo horario nocturno entre las 8:00 p.m. y las 5:00 a.m.
del siguiente día.
2.1.2.3 Sanciones Ley 1383 de 2010
Estas sanciones las deberá asumir el conductor y/o propietario del vehículo que cometa
las siguientes infracciones [22] :
No llevar las tarifas oficiales en condiciones de fácil lectura para los pasajeros o
usar tarifas deterioradas y/o adulteradas. Vehículo inmovilizado.
16
2.1.3 GPS
Algunas de las ventajas que ofrecen los receptores GPS es que se pueden instalar en
una variedad de dispositivos y con diversos fines. Uno de los más conocidos es para
determinar rutas y trayectorias de vehículos, para ello se instalan en automóviles
permitiendo: ubicar la posición donde se encuentra, el tiempo transcurrido que lleva
circulando, la velocidad que lleva en marcha, incluso se puede almacenar rutas de
interés o por las que se ha pasado, de esta manera se tendrá conocimiento de los sitios
por donde ha transitado [23]. Algunas aplicaciones que incorporan tecnología GPS en
vehículos son:
SpeedView: Aplicativo móvil que mide la velocidad del vehículo indicando la velocidad
actual, máxima y media; el tiempo trascurrido y por último la distancia total recorrida.
Adicionalmente cuenta con gráficos de velocidad indicando la velocidad de los últimos
minutos y con aviso de velocidad, alertando al conductor cuando exceda el límite de
velocidad [25].
17
My Tracks: Aplicación Android que permite grabar: rutas de interés, velocidad, distancia
y elevación a la que se encuentra, adicionalmente se pueden añadir notas y fotos a la
ruta mientras se graba. Dichas rutas pueden ser compartidas y almacenadas en
Google Drive [26].
2.1.3.2 SISTEMA GPS AVL
El sistema AVL está compuesto por: GPS; una unidad móvil con el receptor GPS, un
servidor de almacenamiento y una aplicación que contenga una base de datos
cartográfica digital [27].
Una de las opciones que han surgido para el cálculo de la tarifa en taxis es el taxímetro
con GPS, aunque cuenta con ciertas limitaciones pues sus cálculos presentan poco
grado de precisión, esto se debe a que muchas veces la señal se debilita por la
presencia de edificios altos o zonas de escasa cubertura; sin embargo los resultados se
aproximan bastante a la tarifa a pagar [29].
Para calcular el valor del recorrido el GPS indica la velocidad y el tiempo trascurrido de
una carrera, de esta manera el taxímetro no irá conectado a sensores de velocidad o
18
movimiento y el pasajero viajará más tranquilo, pues la probabilidad de que el
taxímetro sea adulterado es mínima [29].
2.2 MARCO TECNOLÓGICO
2.2.1 TECNOLOGÍA PARA EL DESARROLLO DE SOFTWARE PARA
DISPOSITIVOS MÓVILES
En los últimos años los dispositivos móviles han adquirido cada vez mayor acogida y
aceptación en la sociedad, convirtiéndose en elementos indispensables para realizar
variedad de tareas, pues independientemente dónde se encuentre el usuario, siempre
y cuando tenga conexión a internet. Le facilita: acceder a información de su interés,
comunicarse de manera contínua en las redes sociales, ver contenido audio visual de
alta calidad, descargar juegos, editar documentos, enviar correos, entre otra [30].
Es así como el concepto de dispositivo móvil visto como herramienta que permite
comunicar, ha evolucionado a tal punto que en la actualidad también es usado con
fines administrativos y considerado como una herramienta que permite aumentar
índices de productividad en una empresa [31].
2.2.1.1 SISTEMAS OPERATIVOS PARA DISPOSITIVOS MÓVILES
2.2.1.1.1 ANDROID
Algunas de las características y especificaciones con las que cuenta Android son:
2
IDEN: Integrated Digital Enhanced Network, tecnología de conexión inalámbrica [72].
3
WiMAX: Worldwide Interoperability for Microwave Access, estándar de comunicación inalámbrica [74].
4
CDMA: Code Division Multiple Access, técnica de acceso múltiple a un medio de comunicación [73].
19
Adicionalmente da soporte a diversos dispositivos de hardware como: pantalla
táctil, GPS, acelerómetros, giroscopios, magnetómetros, sensores de:
proximidad, presión y luz, termómetro, etc.
Cuenta con su propia máquina virtual, Dalvik, para la compilación en tiempo de
ejecución. Finalmente le facilita la tarea al programador por medio del entorno
Eclipse, el cual tiene un emulador de dispositivos [32].
Cada uno de los sistemas operativos cuenta con una arquitectura, donde se define la
estructura, funcionamiento e interacción de los componentes a nivel de software. Como
se puede ver en la figura 5, Android está conformada por cuatro capas que son:
20
frecuencia en un sistema, como manejo de: persistencia con SQLite,
multimedia, efectos gráficos con gestor de superficies, fuentes tipográficas con
FreeType, entre otras [33].
Entorno de ejecución: Además de las bibliotecas mencionadas con anterioridad,
Android ofrece Bibliotecas donde se encuentran especificaciones propias de
Android, adicionalmente esta capa está compuesta por la máquina virtual Dalvik
donde se corren los procesos [11].
2.2.1.1.2 SYMBIAN
21
CARACTERISTICA
Variedad de Móviles
Mayor cantidad de
aplicaciones
disponibles
Interfaz Intuitiva
Disponibilidad del
SDK
OpenSource
Multitarea
Localización GPS
Antivirus
Cortafuegos
Tabla 2. Comparación de Sistemas Operativos para móviles
Fuente: Elaboración propia basada en [37].
Para el desarrollo del proyecto, se optó por usar el sistema operativo Android, debido a
que presenta mayores ventajas con respecto a los demás sistemas operativos como:
22
2.2.1.3 ENTORNOS DE DESARROLLO PARA APLICACIONES MÓVILES
2.2.1.3.1 ECLIPSE
Uno de los plugins que ofrece Eclipse para el desarrollo de aplicaciones Android es
ADT Android Development Tools, este plugin permite: configurar proyectos Android,
crear interfaz de usuario, depurar aplicaciones, entre otros [38]. Es por ello que eclipse
es el IDE preferido a la hora de desarrollar aplicaciones sobre la plataforma Android
pues ofrece herramientas que agilizan la fase de inicio en un producto de software. Por
lo mencionado anteriormente el presente proyecto hizo uso de este entorno de
desarrollo y de los plugins que se consideraron necesarios.
2.2.1.3.2 JAVA MICRO EDITION
En 1999 Sun Microsystems da a conocer una nueva versión de Java [40], Java 2 Micro
Edition, esta versión fue diseña para el desarrollo y ejecución de aplicaciones
instaladas en dispositivos con memoria, pantalla y capacidad de procesamiento
reducidas, como es el caso de: PDA (Personal Digital Assistant), teléfonos móviles o
electrodomésticos inteligentes.
Un entorno de ejecución en Java Micro Edition, está conformado por tres componentes:
23
CDC y CLDC, la primera de ellas orientada a dispositivos con 512 KB de ROM,
256 de RAM, interfaz de usuario relativamente limitado y CLDC orientado a
dispositivos con 192 KB A 512 KB de memoria, procesador de 16 o 32 bits,
restricciones en el consumo de energía, entre otras [40].
24
2.3 ANTECEDENTES
25
2.4 MARCO METODOLÓGICO
Hoy en día el software es inestable y cambiante por lo que las metodologías robustas
como RUP no se adaptan al desarrollo, ya que considera necesario conocer desde un
principio qué desea el cliente. Existe una gran variedad de metodologías para el
desarrollo de software, como las metodologías ágiles, que surgen como respuesta a la
necesidad de simplificar el desarrollo y la reducción del costo del proyecto,
minimizando drásticamente los tiempos de desarrollo pero manteniendo una alta
calidad. Estas metodologías se enfocan en las personas y en los resultados,
promoviendo iteraciones en el desarrollo a lo largo de todo el ciclo de vida del proyecto.
En cada iteración se incluye: planificación, análisis de requerimientos, diseño,
codificación, revisión y documentación [44].
26
2.4.1 SCRUM
Scrum es una metodología ágil y flexible desarrollada por Ken Schwaber y Jeff
Sutherland, en la que se aplican un conjunto de buenas prácticas para trabajar en
equipo colaborativamente, y así obtener el mejor resultado posible. Ésta metodología
es ligera, fácil de entender y extremadamente fácil de implementar, basándose en la
teoría de control de procesos empírica. El empirismo afirma que el conocimiento
proviene de la experiencia y de tomar decisiones apoyándose en lo que se conoce [47].
2.4.1.1 PROCESO
En Scrum, la etapa de desarrollo se divide en Sprints, que son ciclos cortos de trabajo
que al finalizar produce un producto terminado, de duración entre un mes y como
máximo seis semanas. Para el desarrollo de esta metodología es importante establecer
las fechas de revisión o Sprint, donde se entregaran versiones de software [49].
1. Se inicia con los requerimientos que establece el cliente, donde hace énfasis en las
prioridades que se tener en cuenta para empezar a desarrollar el aplicativo, esta lista
de requisitos que define el usuario se denomina pila del producto.
2. El equipo de desarrolladores hace una estimación del esfuerzo que le llevará realizar
cada una de las funcionalidades que el usuario definió previamente. En esta etapa el
equipo genera una lista de los requisitos que se llevaran a cabo en el Sprint.
3. Se realiza una reunión diaria con una duración aproximada de 15 minutos, cada uno
de los miembros le comparte al equipo los avances y los factores que han retrasado las
tareas que se les ha asignado.
27
4. Al finalizar el Sprint se entrega parte del producto desarrollado listo para ser
probado, codificado y documentado.
La metodología Scrum fue la escogida para el desarrollo de este proyecto por permitir
el desarrollo iterativo e incremental y por admitir avanzar en la construcción sin tener
que elaborar todo el marco estructural, haciendo que se tomen acciones correctivas a
tiempo.
28
3. DESARROLLO DEL PROYECTO
29
asignación de estas historias no fue definitiva y se sometió a cambios, pues a medida
que se iba avanzando en el desarrollo se encontró que algunas historias de usuarios
eran redundantes y en algunas se especificó con mayor detalle la lógica de negocio.
3.1.2.1 PRODUCT BACKLOG
Documento en el que se listaron y recopilaron las historias de usuario, para cada una
de ellas se definió: nombre, tipo (historias de usuario, historias predeterminadas o
historias técnicas/no funcionales) y descripción. Las historias de usuario se clasificaron
en 4 módulos, cada uno con un color que lo identifica: azul para gestión de tarifas,
verde para medición, rosado para notificación y morado para validación. Las historias
de usuario que están en color amarillo son historias técnicas.
Luego de listar todas las historias de usuario, se seleccionaron las que tuvieran un
valor significativo dentro del proyecto. En el Sandbox5 se organizaron de izquierda a
derecha según el orden de realización. El número que viene acompañado por la
palabra Estimated indica el tiempo, estimado en semanas, para realizar cada una de
las HU.
5
Sandbox: Documento en el que se incorporan todas las posibles historias de usuario que contendrá el
proyecto [49].
30
Figura 9. Sprint Backlog.
Fuente: Elaboración Propia.
31
3.1.2.1.1 PLANEACIÓN DE SPRINTS
Los Sprints son reuniones que se hacen periódicamente, cada 15 días [49], en las que el grupo de trabajo muestra lo que
ha adelantado, en caso de que a algún miembro se le haya presentado dificultades, las da a conocer al equipo. Al
finalizar cada Sprint se deben entregar productos terminados y se debe registrar en el Release Plan las HU que el grupo
de trabajo se compromete a entregar en las próximas reuniones [47]. En el Release Plan se definieron 6 Sprints cada
uno con una duración y una asignación de historias específicas.
32
Sprint Historias Planificadas
Documentación previa del desarrollo móvil.
Sprint 0 Desarrollo de un prototipo inicial de bajo nivel.
Construcción de las historias de usuario.
Sprint 1 Prototipo de las historias de usuario.
Modelo de requerimientos.
Modelo de casos de uso.
Arquitectura de la aplicación.
Sprint 2 Diagrama de clases.
Modelo de base de datos.
Verificar y solicitar la activación del GPS.
Mostrar la ubicación del usuario en el mapa.
Iniciar aplicación.
Cargar modelo de tarifa.
Sprint 3 Iniciar medición.
Contabilizar y seleccionar recargos.
Sprint 4 Calcular valor de la carrera.
Almacenar información del servicio.
Sprint 5 Generar informe con los datos del servicio.
Notificar y actualizar modelo de la tarifa.
Sprint 6 Notificar queja en Twitter.
Manual del usuario de la aplicación móvil:
TwTaxi.
Manual del usuario de la aplicación web:
Administrador TwTaxi.
Tabla 4. Sprints del proyecto. Fuente: Elaboración propia.
DURACIÓN 1 Semana
Tabla 5. Actividades desarrolladas en el Sprint 0. Fuente: Elaboración propia.
33
3.2.1 AMBIENTE DE DESARROLLO
34
3.3 DESARROLLO DEL SPRINT 1
DURACIÓN 2 Semanas
Tabla 7. Actividades desarrolladas en el Sprint1.
Fuente: Elaboración propia.
35
MÓDULO RESPONSABILIDAD
36
3.3.1.1 HU: VERIFICAR Y SOLICITAR LA ACTIVACIÓN DEL GPS
HISTORIA DE USUARIO
Módulo: Medición.
Descripción: Al iniciar la aplicación se verifica que el usuario tenga el GPS activo. Se asume
que el usuario tiene conexión a internet.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
Comprobar que el GPS no está activo. Presentar un mensaje: “El sistema GPS está
inactivo, ¿Desea activarlo?” (Redirigir a la
configuración del GPS del móvil).
HISTORIA DE USUARIO
Módulo: Medición.
Descripción: Guiar al usuario desde que inicia hasta que finaliza el recorrido por medio del
mapa.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
37
3.3.1.3 HU: INICIAR APLICACIÓN
HISTORIA DE USUARIO
Módulo: Medición.
Descripción: Permite que el usuario inicie la aplicación y así comenzar la medición del
recorrido. El sistema inicializa los contadores para la medición.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
HISTORIA DE USUARIO
38
Módulo: Medición.
Descripción: Calcular las unidades transcurridas y determinar el factor por el que debe
incrementar las unidades, si por distancia o por tiempo (depende de cual esté sucediendo más
rápido).
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
La velocidad del vehículo es menor de Incrementar las unidades por tiempo cada 30
10Km/h. segundos.
La velocidad del vehículo es mayor de Incrementar las unidades por distancia cada
10Km/h. 100 metros.
HISTORIA DE USUARIO
Módulo: Medición.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
El usuario llega al lugar de destino y da click Desplegar un menú en el que el usuario podrá
en el botón detener. seleccionar los recargos a los que aplica la
carrera.
39
El servicio de taxi es prestado desde / al Sumar al contador monetario el valor de dicho
aeropuerto. recargo, el cual dependerá del modelo de
tarifa que se haya consultado (para el 2014
de $3.900).
HISTORIA DE USUARIO
Módulo: Medición.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
HISTORIA DE USUARIO
40
Actor: Sistema. HU Relacionadas: Hu_Med_03, Hu_Med_04,
Hu_Med_05, Hu_Med_06.
Módulo: Medición.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
HISTORIA DE USUARIO
Módulo: Medición.
Descripción: Generar un informe con los datos del servicio, para que posteriormente sirva
como soporte en caso de que el usuario desee hacer una denuncia social o para futuros
estudios estadísticos.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
Al finalizar el recorrido dar click en “Datos de Generar un informe con los siguientes datos:
la carrera”. fecha, hora de servicio, unidades, costo total
de la tarifa básica, costo total de los recargos
causados, duración, distancia y total a pagar.
41
3.3.1.9 CARGAR MODELO DE TARIFA
HISTORIA DE USUARIO
Módulo: Tarifa.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
HISTORIA DE USUARIO
Módulo: Tarifa.
Descripción: Para que los valores a cobrar sean vigentes, se debe actualizar en el servidor el
modelo de tarifa según lo reglamentado por la Alcaldía Mayor de Bogotá.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
42
Al abrir la aplicación móvil TwTaxi. La aplicación detecta que las tarifas han sido
actualizadas. Automáticamente, actualiza las
tarifas en la aplicación:
HISTORIA DE USUARIO
Módulo: Notificación.
Descripción: Si el usuario quiere reportar una situación anómala, puede difundirlo por medio
de la red social Twitter.
CRITERIOS DE ACEPTACIÓN
Condición: Resultado:
Al finalizar el recorrido el usuario da click en la Publica en la red social Twitter un reporte con
opción “Reportar”. los siguientes datos: placas del taxi, empresa,
unidades de diferencia, motivo del reporte y
comentarios.
43
3.3.1 DEPENDENCIAS ENTRE HISTORIAS DE USUARIO
44
HISTORIAS DE USUARIO (A) DEPENDIENTES
HU Vs. HU Med_1 Med_2 Med_3 Med_4 Med_5 Med_6 Med_7 Med_8 HU_Tar HU_Tar_ HU_Not_
_1 2 1
Hu_Med_01 X X X
Hu_Med_02 X X
Hu_Med_03 X X X X X X
I Hu_Med_04 X X X X X
N
D Hu_Med_05 X X X X
E
P
Hu_Med_06 X X X
E
N
D Hu_Med_07 X
I
E Hu_Med_08
N
T HU_Tar_01 X X
E
S HU_Tar_02
HU_Not_1
Tabla 9. Matriz de trazabilidad.
Fuente: Elaboración propia.
De la anterior matriz se puede observar que la historia de usuario HU_Med_003, HU_Med_004 y HU_Med_005 son las
que más generan dependencias.
45
3.3.3 PROTOTIPOS DE LAS HISTORIAS DE USUARIO
PROTOTIPO DESCRIPCIÓN
46
En ésta pantalla se muestran la historia de
usuario Hu_Med_05. Ésta interfaz, muestra
los recargos adicionales que se causaron al
finalizar el recorrido.
47
Finalmente, se le muestra un mensaje de
notificación al usuario, informando: “Tu
denuncia ha sido publicado correctamente”.
El primero de los objetivos del análisis en la lógica de negocio a incorporar, tiene que
ver con la organización en módulos de trabajo de las ideas, necesidades, servicios y/o
componentes que ha de tener el aplicativo, de acuerdo con la definición de las historias
de usuario. Implementando los principios de abstracción, se optó por definir paquetes
de trabajo más generales que puedan dar ventaja en dos casos: la interpretación
adecuada de los procesos y la simplificación de trabajo, conociendo qué características
son comunes en los servicios finales del software. En la figura 11, se presenta el
modelo final de requerimientos, el cual incluye los requerimientos funcionales
(necesidades propias para la aplicación) y los requerimientos no funcionales
(necesidades para soportar los requerimientos funcionales).
Requisitos Funcionales
+ Notificación
+ Medición
El modelo de requisitos estructura el catálogo de + Gestión de tarifas
Requerimientos Funcionales y No Funcionales de
la aplicación.
Requerimientos No funcionales
+ Rnf_App_01_Persistencia
+ Rnf_App_02_Arquitectura
+ Rnf_App_03_Desempeño
+ Rnf_App_04_Usabilidad
+ Rnf_App_05_Disponibilidad
+ Rnf_App_06_Confiabilidad
48
3.3.4.1 REQUERIMIENTOS FUNCIONALES
Medición
Gestión de tarifas
+ Rf_Med_01_IniciarAplicación
+ Rf_Tar_11_CargarModeloTarifa
+ Rf_Med_02_IniciarMedición
+ Rf_Tar_12_ActualizarModeloTarifa
+ Rf_Med_03_DetenerMedición
+ Rf_Med_04_VerificarGPS
+ Rf_Med_05_MostrarPosiciónActual
+ Rf_Med_06_Iniciar Contadores
+ Rf_Med_07_CalcularTarifaTotal
Notificación
+ Rf_Med_08_CalcularRecargosAdicionales
+ Rf_Med_09_GenerarReporte + Rf_Not_21_NotificarCambio Tarifa.
+ Rf_Not_22_NotificarQueja: Twitter
Figura 12. Diagrama de Requerimientos funcionales para los módulos principales de la Aplicación.
Fuente: Elaboración Propia.
49
DESEMPEÑO: Para evitar desfases en la medición, el tiempo de respuesta al
iniciar la aplicación será en fracciones de milisegundos. De esta manera tanto el
taxímetro del móvil como el de la aplicación empezarán al mismo tiempo.
Uno de los objetivos más importantes a la hora de diseñar una solución, es conocer el
¿Qué? de la aplicación, es decir, asegurar que el ScrumTeam sepa cuáles son los
servicios que debe prestar la aplicación y para ello es que se vale de: las historias de
usuario y del Product Backlog. Ya con plasmar los requerimientos funcionales existe
una idea general de esta pregunta, sin embargo es a través de los casos de uso que se
logra interpretar adecuadamente las necesidades propias del cliente. Dado que se
siguió una metodología ágil no se utilizó el formato extendido de casos de uso, sino que
se sólo se modeló la interacción entre actor-sistema; las HU fueron utilizadas para
complementar los escenarios en cada interacción.
3.3.5.1 NOMENCLATURA PARA LOS CASOS DE USO
Antes de entrar en los diagramas y como parte de las estrategias en la creación de los
casos de uso, se propuso que la nomenclatura de los diferentes módulos estuviera
regida por un número de identificación que indicaría a qué servicio corresponde cada
caso de uso, de tal manera que los requerimientos asociados a estos diagramas serían
nombrados de la siguiente manera:
Cu_Med_000_Medición
Cu_Tar_100_GestiondeTarifas
50
Uno de los casos de uso en este paquete es cargar el modelo de la tarifa, que se
identifica así: Cu_Tar_11_CargarModelo Tarifa.
Cu_Not_200_GestiondeTarifas
Con éste sistema fue más sencillo implementar recursividad en los casos de uso y
demarcar aquellos servicios secundarios sin perder de vista su punto de inicio, módulo
al que pertenecen y los responsables de su ejecución.
3.3.5.2 DIAGRAMA DE CONTEXTO
uc Diagrama de Contexto
MÓDULOS
Cu_Med_000_Medición
Cu_Tar_100_Gestión de
tarifas
Sistema
Usuario
Cu_Not_200_Notificación
Administrador
Figura 13. Diagrama de Contexto con la estrategia de nomenclatura de los casos de uso.
Fuente: Elaboración Propia.
51
3.3.5.3 DIAGRAMAS DE CASOS DE USO
El primer diagrama presentado se relaciona con las tareas que se deben ejecutar
desde el módulo de Medición. Allí se incluyen los usuarios (actores) responsables y sus
posibilidades dentro del aplicativo:
uc Medición
Notificación
Cu_Med_04_VerificarGPS
«include»
Cu_Med_01_Iniciar
Cu_Med_05_MostrarPosición
aplicación
«include» Actual
«include»
Cu_Med_06_Iniciar
Contadores
Cu_Med_02_Iniciar
Medición
Usuario
Cu_Med_08_CalcularRecargos
Adicionales
«include»
52
uc Gestión de tarifas
Gestión de Tarifas
Cu_Tar_11_CargarModelo
Tarifa
Administrador Cu_Tar_12_ActualizarModelo
Tarifa
Por otro lado, en la figura 15, se muestran los casos de uso del módulo de notificación,
módulo encargado de gestionar todos los mensajes que le llegan al usuario. El envío
de estos mensajes se puede presentar ante dos situaciones: el modelo de tarifa se
actualizó ó para notificar que el reporte vía Twitter se realizó correctamente.
53
uc Cu_Not_200_Notificación
Notificación
Cu_Not_21_NotificarCambio
Tarifa
Sistema
Cu_Not_22_NotificarQuej a
Tw iter
Usuario
54
Figura 17. Modelo de procesos. Fuente: Elaboración propia
55
3.3.5.5 FLUJO DE ACTIVIDADES
56
uc Diagrama de Proceso de Negocio
Preparación
Datos de configuración del
dispositiv o.
Entrada
Coordenadas del
Entrada
dispositiv o
Entrada
Entrada
Medición
Usuario
Calcular costos
Tarifa básica
Entrada
Entrada
Entrada Entrada
Salida Costo del racargo nocturno, dominical y/o Entrada Suma de la tarifa básica Salida Costo total de la carrera
Cálculo automático de recargos causados. más recargos.
festiv o.
Entrada Entrada
Reportar
57
3.4 DESARROLLO DEL SPRINT 2
DURACIÓN 2 Semanas.
Tabla 10. Actividades Sprint 2.
Fuente: Elaboración Propia.
Luego de finalizar el Sprint 1, se observó que algunas de las historias de usuario eran
inconsistentes y redundantes como es el caso de las historias de usuario: actualizar
mapa y mostrar ubicación del usuario, se dejó la segunda y se especificó qué a medida
que el usuario cambiara de posición se debía actualizar el mapa. Igualmente sucedió
con las historias de usuario: notificar y actualizar tarifa, las cuales se unieron en una
sola historia. Inicialmente se había considerado la historia notificar, para que el usuario
otorgará permisos de su dispositivo móvil, en el momento de descargar la tarifa, pero
gracias al BackEnd Parse y la sincronización con la base de datos SQLite, se pudo
actualizar las tarifas sin intervención del usuario, de esta manera se automatizó el
proceso y se garantizó que las tarifas a cobrar fueran vigentes.
58
específicos).La funcionalidad de la aplicación está compuesta por dos procesos:
calcular tarifa basica y reportar en Twitter.
Modelo: Encargada de suministrar todos los datos de la aplicación y de acceder
a los mismos. Los datos se almacenaron en dos bases de datos: SQLite Local y
BackEnd Parse, la primera es la base de datos del dispositivo móvil, en la que
se guardó unicamente los datos de la tarifa, mientras que en el BackEnd Parse
se almacenó la información de todos los servicios realizados a la fecha.
Dicha segmentación de tareas permitió que la aplicación fuera mucho más modular
e independiente. Sin embargo éstas capas constantemente se comunicaron e
interactuaron entre sí para realizar tareas especificas.
Este patrón reduce la dependencia entre los módulos del sistema y minimiza el
impacto que puede generar un cambio [58].
59
Figura 19. Arquitectura de la aplicación.
Fuente: Elaboración propia
60
3.4.2 DIAGRAMA DE CLASES
Tarifa: Clase que representa una tarifa. Contiene los elementos de una tarifa:
unidades, valor, fecha de vigencia y nombre del recargo, en caso de que
aplique.
61
class DiagramaClases
CONT ROLADOR
NEGOCIO
Acti onBarActi vi ty M odelo::Empresa M odelo::Tarifa
Controlador::RecargoApp
~ nom bre: Stri ng - fechaVi genci a: Stri ng
~ datos: GestorDatos ~ tel efono: Stri ng - i d: i nt
+ m ostrarRecargos(): voi d + Em presa(Stri ng, Stri ng) - nom bre: Stri ng
# onCreate(Bundl e): voi d + getNom bre(): Stri ng - uni dades: i nt
+ onCreateOpti onsM enu(M enu): bool ean + getT el efono(): Stri ng - val or: i nt
+ onOpti onsItem Sel ected(M enuItem ): bool ean + setNom bre(Stri ng): voi d + getFechaVi genci a(): Stri ng
+ setT el efono(Stri ng): voi d + getId(): i nt
+ getNom bre(): Stri ng
Acti onBarActi vi ty + getUni dades(): i nt
M odelo::GestorDatos + getVal or(): i nt
Controlador::EmpresaApp
+ setFechaVi genci a(Stri ng): voi d
- datos: GestorDatos - em presas: Li st<Em presa> + setId(i nt): voi d
- parse: Servi dorParse + setNom bre(Stri ng): voi d
+ m ostrarEm presa(): voi d - recargos: Li st<T ari fa> + setUni dades(i nt): voi d SQLi teOpenHel per
# onCreate(Bundl e): voi d - sql i te: T ari faSqLi teHel per + setVal or(i nt): voi d
+ onCreateOpti onsM enu(M enu): bool ean - tari fas: Li st<T ari fa> Datos::TarifaSqLiteHelper
+ T ari fa(i nt, i nt, i nt, Stri ng, Stri ng)
+ onOpti onsItem Sel ected(M enuItem ): bool ean + T ari fa(i nt, i nt) - sql Create: Stri ng = "CREAT E T ABLE T ...
+ accessUrl T wi tter(): Stri ng
+ T ari fa(i nt, i nt, Stri ng) - sql CreateEm presa: Stri ng = "CREAT E T ABLE E...
+ actual i zarT ari fa(Li st<ParseObj ect>, Acti vi ty): bool ean
+ authori zeUrl T wi tter(): Stri ng + T ari fa()
Acti onBarActi vi ty + borrarT ari fas(): voi d
+ cal l BackUrl T wi tter(): Stri ng + contarRegi strosEm presa(): i nt
Controlador::TarifaApp + cargarEm presa(Stri ng, Stri ng): voi d + contarRegi strosT ari fa(): i nt
+ cargarT ari fa(i nt, i nt, Stri ng, Stri ng): voi d + i nsertarRegi stroEm presa(Em presa): voi d
~ datos: GestorDatos
+ consum erKeyT wi tter(): Stri ng + i nsertarRegi stroT ari fa(T ari fa): voi d
+ m ostrarT ari fas(): voi d + consum erSecretT wi tter(): Stri ng Datos::DatosTw itter
+ l i starEm presas(): Li st<Em presa>
# onCreate(Bundl e): voi d + GestorDatos() + l i starRecargos(): Li st<T ari fa>
+ ACCESS_URL: Stri ng = "https://api .tw... {readOnl y}
+ onCreateOpti onsM enu(M enu): bool ean + i ni ci al i zarParse(Acti vi ty): voi d + l i starT ari fas(): Li st<T ari fa>
+ AUT HORIZE_URL: Stri ng = "https://api .tw... {readOnl y}
+ onOpti onsItem Sel ected(M enuItem ): bool ean + i nsertarRegi stros(T ari fa): voi d + onCreate(SQLi teDatabase): voi d
+ CONSUM ER_KEY: Stri ng = "ON6Q0rSwr8Dl J2... {readOnl y}
+ i nsertarRegi stros(Em presa): voi d + onUpgrade(SQLi teDatabase, i nt, i nt): voi d
+ CONSUM ER_SECRET : Stri ng = "BHgV4s7VOCKYAe... {readOnl y}
+ l i starEm presas(Acti vi ty): Li st<Em presa> + T ari faSqLi teHel per(Context)
+ OAUT H_CALLBACK_URL: Stri ng = "m dw://twi tter" {readOnl y}
Acti onBarActi vi ty + l i starRecargos(Acti vi ty): Li st<T ari fa>
+ REQUEST _URL: Stri ng = "https://api .tw... {readOnl y}
Controlador::Tw itterApp + l i starT ari fas(Acti vi ty): Li st<T ari fa>
+ obtenerNum eroRegi stros(Acti vi ty): i nt + getAccessUrl (): Stri ng
- ACCESS_KEY: Stri ng = nul l + obtenerNum eroRegi strosEm presa(Acti vi ty): i nt + getAuthori zeUrl (): Stri ng
- ACCESS_SECRET : Stri ng = nul l + requestUrl T wi tter(): Stri ng + getConsum erKey(): Stri ng
- consum er: Com m onsHttpOAuthConsum er + getConsum erSecret(): Stri ng
- provi der: Com m onsHttpOAuthProvi der + getOauthCal l backUrl (): Stri ng
- twi tter: T wi tter + getRequestUrl (): Stri ng
+ construi rM ensaj e(): Stri ng
- envi arT weet(Stri ng): voi d
+ onCreate(Bundl e): voi d
+ onCreateOpti onsM enu(M enu): bool ean
+ onOpti onsItem Sel ected(M enuItem ): bool ean
+ onResum e(): voi d Datos::Serv idorParse
62
3.4.3 DIAGRAMA DE SECUENCIA
La figura 21, ilustra la secuencia de mensajes entre objetos al iniciar la aplicación. Los diagramas de secuencia de los
demás casos de uso se encuentran el anexo A.
sd Iniciar Aplicación
«activity» tm:T aximetro sv:Servicio lm: LocationManager lc: Localización gm: GoogleMap sq: SQLiteOpenHelper p:Parse
InicioApp
Usuario
onCreate(Bundle)
verificarGPSActivo()
locManager=if(!locManager.isProviderEnabled)
mostrarMapa()
mostrarMapa()
getMapa()
obtenerNumeroRegistros(Activity)
cargarDatosParse()
inicializarContadores()
actualizarPosicion ()
getLatitude()
getLongitude()
actualizarPuntosPosicion(): latitud,longuitud
cargarDatosParse()
63
3.4.4 MODELO DE PERSISTENCIA DE DATOS
La arquitectura cliente servidor se caracteriza por que se distribuyen las tareas del
sistema: el servidor se encarga de gestionar el acceso a los datos, controlar la
concurrencia, recuperarse de errores y de optimizar los tiempos de consultas. Mientras
que el cliente se encarga de manejar la parte visible de la aplicación (interfaz de
usuario). La interacción cliente servidor se da de la siguiente manera: el cliente solicita
determinado servicio al servidor, el servidor recibe la solicitud y envía uno o más
mensajes con la respuesta [52].
Estas son algunas de las ventajas que ofrece ésta arquitectura [60]:
EMPRESA TARIFA
«column» «column»
*PK K_Object_Id: VARCHAR(11) *PK K_Object_Id: VARCHAR(11)
N_Nombre: VARCHAR(20) * N_Nombre: VARCHAR(15)
N_Telefono: VARCHAR(7) * Q_Unidad: NUMBER(3)
* Q_Valor: NUMBER(5)
«PK» * F_Fecha_Vigencia_Tarifa: DATE
+ PK_EMPRESA(VARCHAR)
«PK»
+ PK_TARIFA(VARCHAR)
64
3.4.4.2 PERSISTENCIA DEL LADO DEL SERVIDOR
Gestión de usuarios: Gracias a la clase User que ofrece Parse [61], es posible
autenticarse y registrarse desde la aplicación web AdministradorTwTaxi, controlando
así el acceso a la aplicación.
Gestión de servicios: Una vez que el usuario finalizó el recorrido, los datos del servicio
fueron enviados a Parse. Esto datos pueden ser usados, posteriormente, para análisis
estadísticos en los que se pueda determinar las situaciones en las que más se
presentan adulteración del taxímetro.
Gestión de tarifa: La clase tarifa se utilizó para cargar y actualizar las tarifas, de tal
manera que las tarifas a cobrar siempre fueran vigentes.
TARIFA
EMPRESA
«column»
«column» *PK K_Object_Id_Tarifa: VARCHAR(11)
*FK K_Object_Id_Empresa: VARCHAR(11) * N_Nombre: VARCHAR(15)
N_Nombre: VARCHAR(20) * Q_Unidad: NUMBER(3)
N_Telefono: VARCHAR(7) * Q_Valor: NUMBER(5)
* F_Fecha_Vigencia_Tarifa: DATE
«FK»
+ FK_EMPRESA(VARCHAR) «PK»
+ PK_TARIFA(VARCHAR)
SERVICIO
«column»
*PK K_Object_Id_Servicio: VARCHAR(11)
* K_Fecha: DATE
V_Distancia: NUMBER(10,2)
V_Duracion: NUMBER(2,2)
Q_Total_Pagar: NUMBER(11,2)
USUARIO Q_Unidades_Aplicación: NUMBER(3)
Q_Unidades_Vehiculo: NUMBER(3)
«column» Hora: VARCHAR(9)
*PK K_Object_Id: VARCHAR(50) Q_Total_Recargos: NUMBER(11,2)
N_Username: VARCHAR(10) Q_Total_Unidades: NUMBER(11,2)
N_Password: VARCHAR(15) K_Placa: NUMBER(6)
* K_Object_Id_Empresa: VARCHAR(11)
«PK» * K_Object_Id_Tarifa: VARCHAR(11)
+ PK_USUARIO(VARCHAR)
«PK»
+ PK_SERVICIO(VARCHAR)
«unique»
+ UQ_SERVICIO_K_Object_Id_Empre(VARCHAR)
65
3.5 DESARROLLO DEL SPRINT 3
DURACIÓN 2 Semanas.
Tabla 11. Actividades Sprint 3. Fuente: Elaboración Propia.
El modelo de proceso que se muestra en la figura 24 ilustra el flujo de tareas que sigue
el administrador cuando desea cargar las tarifas al servidor. En este proceso
intervienen: el usuario, el administrador y el sistema. El usuario inicia el proceso
ingresando los datos de la tarifa en un archivo Excel, estos datos son publicados
previamente por la Secretaria Distrital de Movilidad, luego de que el usuario ingresa los
datos, los debe guardar en formato CSV. Una vez se tienen las tarifas en dicho formato
el administrador debe ingresar a la aplicación AdministradorTwTaxi y seleccionar el
archivo .csv para empezar a importar los datos al servidor Parse. Enviada ésta
información el sistema eliminará las tarifas existentes y cargará las nuevas al servidor.
El proceso finalizará cuando se despliegue un mensaje en la aplicación informándole al
usuario que las tarifas se han importado con éxito.
66
Figura 24. Modelo de procesos: Cargar tarifa. Fuente: Elaboración propia.
67
3.6 DESARROLLO DEL SPRINT 4
DURACIÓN 2 Semanas.
Tabla 12. Actividades Sprint 4. Fuente: Elaboración Propia.
DURACIÓN 2 Semanas.
Tabla 13. Actividades Sprint 5. Fuente: Elaboración Propia.
68
3.8 DESARROLLO DEL SPRINT 6
DURACIÓN 2 Semanas.
Tabla 14. Actividades Sprint 6. Fuente: Elaboración Propia.
En ésta etapa del proyecto la aplicación ya generaba el costo total del servicio y se
guardaban los datos del recorrido en el servidor. Con ésta información el pasajero ya
contaba con los soportes necesarios para hacer un reporte en Twitter. Inicialmente se
propuso que el reporte tuviera gran cantidad de información como: fecha, hora de
servicio, unidades, costo total de la tarifa básica, costo total de los recargos causados,
duración, distancia y valor total a pagar; al enviar estos datos a Twitter no fue posible,
ya que ésta red social restringe el número de caracteres por publicación a 140. De tal
manera que se publicaron los datos más relevantes del reporte: placa del taxi,
empresa, unidades de diferencia, motivo de reporte y comentarios. Al final de éste
Sprint se corrigieron y mejoraron aspectos de la aplicación gráficos, permitiendo ser
desplegaba en diferentes tamaños de pantalla.
3.9 TECNOLOGÍAS UTILIZADAS EN EL DESARROLLO DEL PROYECTO
Como se mencionó en apartados anteriores se escogió Android versión 4.4 Kit kat
como sistema operativo y Eclipse Luna Service Release 2 versión 4.4.2 como IDE.
Para el desarrollo y pruebas de la aplicación se utilizó: un portátil DELL procesador intel
core i5, una Tablet Samsung Galaxy Tab 4, Android 4.4.2 y un celular Huawei Y511
Android 4.4.
Esta aplicación estará disponible para dispositivos móviles con sistema operativo
Android 4.0, hasta la última versión disponible 5.0.1.
69
3.9.1.1 CAPA DE PRESENTACIÓN
Internet inalámbrico
Dado que la API de Android soporta la tecnología 4.4 (Ver sección 2. Marco
tecnológico) para localizar dispositivos móviles, fue necesario que el usuario tuviera
acceso a internet, una vez que éste se conectó, la API de Android identificó la posición
del móvil y con base en ésta localización mostró el mapa que se utilizaría durante el
recorrido.
Esta herramienta permite crear componentes gráficos para aplicaciones móviles [32],
como launcher icons, notification icons, generic icons (Ver figura 25), tab icons, menu
icons y action bar [11].
70
3.9.1.2 CAPA DE NEGOCIO
Para diseñar la solución del problema que se planteó, se utilizaron las herramientas
Enterprise Architect Spark versión 11 y Bizagi Modeler versión 2.9.0.4. Estas dos
herramientas se utilizaron en las etapas de análisis y diseño.
Bizagi Modeler
Enterprise Architect
BackEnd Parse
SQLite
Ésta base de datos relacional, se usó para almacenar en el dispositivo móvil las tarifas
vigentes. Permitió la sincronización con el BackEnd [64], para que la información que
se brinda al usuario, esté actualizada.
71
3.9.2 LIBRERÍAS
3.9.2.1 CAPA DE PRESENTACIÓN
Google Maps
Una de las librerías de mayor utilidad dentro del proyecto fue Google Maps. Permitió
manipular y utilizar los mapas que ofrece el navegador web Google, como se muestra
en la siguiente figura. A continuación se nombran algunas funcionalidades que ofrece
esta herramienta: manipulación de mapas vectoriales, integración con los servicios de
Google Play, creación de mapas, geolocalización, búsquedas localizadas, creación de
itinerarios de viajes, entre otras [65].
Librería de Twitter
Para que la aplicación pudiera tener conexión con Twitter, fue necesario descargar la
librería Twitter4j [66] la cual permitió que se compartiera contenido en Twitter
automáticamente desde la aplicación. Esto fue posible gracias a la API de Twitter
(Application Programming Interface) que ofrece un conjunto de métodos y funciones
que permiten la interacción de una aplicación móvil con la red social. Para incluir estas
funcionalidades en la aplicación fue necesario:
72
1. Crear una cuenta en Twitter.
2. Crear una aplicación desde Twitter y obtener las claves que permitirán la
comunicación entre estas dos tecnologías. Para el proyecto se descargaron las claves:
CONSUMER_KEY, CONSUMER_SECRET, REQUEST_URL y ACCESS_URL,
AUTHORIZE_URL [66].
4. Una vez se descargaron las librerías, la aplicación ya estaba lista para llamar y
utilizar las funciones que ofrecía la librería Twitter4.
Al existir una gran variedad de versiones del sistema operativo Android, con el tiempo
surgió el problema de que las versiones antiguas no eran compatibles con las nuevas
funcionalidades que ofrecía éste sistema operativo [67]. Como respuesta a este
problema se crearon las bibliotecas de compatibilidad, Librería Android Support, las
cuales permitían incorporar nuevas funcionalidades en diferentes versiones de
Android. En la actualidad existen cinco versiones: v4, v7, v8, v13 y v17 [67]. Para el
desarrollo de éste proyecto se escogió la versión siete, ya que soporta una amplia
gama de versiones de Android. Para usar estas librerías se tuvo que configurar el
entorno de desarrollo. Los pasos que se siguieron se pueden consultar en el anexo B:
3.9.2.3 CAPA DE PERSISTENCIA
Librería Parse
Una vez se realizaron estos pasos, la aplicación ya tenía acceso a los datos que
estaban almacenados en el servidor. De esta manera no solo fue posible consultar los
datos sino que también se pudieron enviar, como es el caso de las historias de usuario:
Cargar tarifa y Almacenar información del servicio, respectivamente.
73
3.10 PRUEBAS
DURACIÓN 2 Semanas.
Tabla 15.Actividades realizadas en pruebas. Fuente: Elaboración Propia.
Identificador CP_001
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Verificar y solicitar la activación del GPS.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 001
Objetivo Verificar que al iniciar la aplicación el sistema solicite la
activación del GPS.
Precondiciones de la El usuario tiene acceso a Internet.
74
prueba El usuario abre la aplicación pero no tiene el GPS activo.
Pasos de ejecución Se realizaron los siguientes pasos:
1. Se inhabilitaron las fuentes de ubicación (GPS) del
dispositivo.
2. Se abrió la aplicación.
Resultados Al abrir la aplicación se despliega un mensaje: “El sistema
esperados GPS está inactivo, ¿Desea activarlo?”
Resultados Al abrir la aplicación se despliega un mensaje en el que se
Obtenidos solicita al usuario activar el GPS.
Estado de la prueba Pasó: Fecha: 17 de Julio de Falló: Fecha:
Si 2015
Identificador CP_002
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Iniciar medición.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 002
Objetivo Verificar que se estén incrementando las unidades según el
factor que esté sucediendo más rápido: tiempo o distancia.
Precondiciones de la El usuario tiene acceso a Internet.
prueba El usuario inicia el recorrido.
Pasos de ejecución 1. Se abrió la aplicación.
2. Se empezó el recorrido, con el botón Iniciar.
3. El sistema deshabilitó el botón “Siguiente”.
4. Se recorrieron diferentes zonas de Bogotá para evaluar el
comportamiento del contador de unidades.
Resultados El sistema incrementa el contador de unidades según el
esperados factor que se esté dando más rápido: distancia o tiempo.
Además se actualiza el valor de la carrera conforme van a
75
aumentando las unidades.
Identificador CP_003
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Contabilizar y seleccionar recargos
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 003
Objetivo Verificar que se despliegue un menú para que el usuario
seleccione los recargos a los que aplica la carrera.
Precondiciones de la El usuario tiene acceso a Internet.
prueba La tabla tarifa existe y es vigente.
Pasos de ejecución 1. Se detuvo el recorrido con el botón detener.
2. El sistema habilitó el botón “Siguiente” y deshabilitó el
botón “Iniciar”.
3. Se dio click en el botón siguiente.
4. Se seleccionó más de un recargo.
Resultados Al detener el recorrido se despliega un menú en el que el
esperados usuario puede seleccionar los recargos a los que aplica la
carrera. Una vez el usuario termina de seleccionarlos se
76
actualiza el valor total de recargos.
Identificador CP_004
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Notificar y actualizar modelo de tarifa.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 004
Objetivo Verificar que al actualizar la tarifa desde la aplicación web se
actualice tanto el BackEnd, Parse, como la base de datos
local, SQLite.
Precondiciones de la El usuario tiene acceso a Internet.
prueba El administrador tiene el archivo en formato CSV con los
datos de la tarifa que desea actualizar.
El administrador está registrado en la aplicación y en Parse.
Pasos de ejecución 1. Se ingresó a la aplicación web, con usuario y contraseña.
2. Se seleccionó el archivo que contenía los datos de la tarifa
que se quería actualizar.
3. Se consultó la base de datos en Parse.
4. Se verificó que al abrir la aplicación móvil TwTaxi
cambiaran los valores de la tarifa.
Resultados La aplicación actualiza los datos que se encuentran en Parse
esperados y los guarda en la base de datos local SQLite. El sistema
77
informa que se ha cambiado el modelo de tarifa.
Identificador CP_005
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Notificar queja en Twitter.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 005
Objetivo Verificar que cuando el usuario quiera reportar una situación
anómala, pueda difundirlo por medio de la red social Twitter.
Precondiciones de la El usuario tiene acceso a Internet.
prueba El usuario tiene cuenta en Twitter.
El usuario autoriza para que TwTaxi tenga acceso a
información de su cuenta en Twitter.
Pasos de ejecución 1. Al finalizar la carrera se dio click en el botón “Reportar”.
2. Se dio autorización a Twiiter para que usará la aplicación.
3. Se ingresaron los datos de la carrera: placas del taxi,
unidades de diferencia, motivo de reporte y comentarios.
4. Se seleccionó la empresa del taxi.
5. Se dio click en “Publicar”.
Resultados La aplicación publica el reporte en la página
esperados @denunciealtaxista y @TwTaxii con los datos que ingresa el
usuario.
78
Resultados Al hacer el reporte, ingresando los datos de la carrera, queda
Obtenidos registrada la denuncia en Twitter y se despliega un mensaje
“Tu denuncia ha sido publicada correctamente”.
Estado de la prueba Pasó: Fecha: 17 de Julio de Falló: Fecha
Si 2015
- Factor constante: Factor que se mantuvo fijo durante el proyecto. Para realizar las
medidas se tomó de referencia siempre el mismo taxímetro como instrumento de
referencia y como instrumento de medida siempre se tomó el mismo teléfono celular.
- Factor variable: Los días y zonas fueron los factores que se permitieron variar durante
el experimento. En el mes de Julio se tomaron los datos los días comprendidos entre el
13 y el 24 de Julio, en el mes de Agosto se tomaron los datos entre el 11 y 19 de
Agosto.
79
3.11.2.2 FACTORES PERTURBADORES: Estos factores se clasifican en: controlables,
no controlables o de ruido. Los factores controlables pueden ser ajustados por el
experimentador, los factores de ruido son los que varían de manera natural y no
controlada, cuando en un experimento se presenta éste factor de varianza, se ajustan y
adecuan los factores controlables, de tal manera que se reduzca la variabilidad
producida por factores de ruido [68]. Durante el desarrollo del experimento se encontró
que las condiciones atmosféricas se comportaban como factores de ruido, ya que la
aplicación era sensible cuando se variaba éste factor.
Además de la elección de los factores, se fijaron los rangos en los que se variaría cada
factor. Uno de los rangos que es de común interés es el espacial, para efectos del
experimento se escogió como región de interés la ciudad de Bogotá.
3.11.3 SELECCIÓN DE LA VARIABLE DE RESPUESTA
Las pruebas se realizaron en los meses de Julio y Agosto, por las estudiantes Angélica
Babativa y Paula Briceño. Los datos se tomaron con un celular Huawei Y511 Android
4.4 con capacidad de 4GB de Internet.
80
5. Una vez se finalizó el recorrido se registraron las unidades que marcaba la
aplicación y las que marcaba el taxímetro.
Las localidades, zonas y franjas horarias en las que se realizaron las pruebas fueron
las siguientes:
81
MUESTRA: Para realizar el estudio estadístico, se determinó un número de pruebas
finitas aleatorias, las cuales permitieron recolectar información relevante y significativa
para el estudio en curso.
Luego de realizar 35 muestras se encontró que las medidas tomadas por la aplicación
vs. las tomadas por el taxímetro eran diferentes en 2 unidades promedio. También se
encontró que la desviación estándar era aproximadamente 1,5. Al remplazar estos
valores en la ecuación 6, se obtuvo que el parámetro tenía un valor de:
GRADOS DE LIBERTAD
82
MEDIA: Valor que indica el promedio en un conjunto de datos. Matemáticamente se
define como la suma de los datos observados dividido entre el tamaño de la muestra
[68].
La siguiente tabla muestra los resultados que se obtuvieron al realizar las pruebas de
validación:
83
Medida Taxi: Unidades dadas por el taxímetro.
Desviación Xi: Diferencia entre las medidas de TwTaxi y el taxímetro del vehículo.
Desviación al
Medida TwTaxi Medida Taxi Desviación Xi Desviación Media Xi- cuadrado (Xi- )^2
33 33 0 2,02 4,0804
37 40 -3 -0,98 0,9604
84 87 -3 -0,98 0,9604
74 74 0 2,02 4,0804
43 43 0 2,02 4,0804
97 100 -3 -0,98 0,9604
46 50 -4 -1,98 3,9204
111 111 0 2,02 4,0804
93 96 -3 -0,98 0,9604
85 87 -2 0,02 0,0004
84 84 0 2,02 4,0804
43 46 -3 -0,98 0,9604
68 71 -3 -0,98 0,9604
64 66 -2 0,02 0,0004
83 83 0 2,02 4,0804
84 86 -2 0,02 0,0004
73 76 -3 -0,98 0,9604
85 88 -3 -0,98 0,9604
67 67 0 2,02 4,0804
74 76 -2 0,02 0,0004
85 87 -2 0,02 0,0004
74 74 0 2,02 4,0804
67 68 -1 1,02 1,0404
47 51 -4 -1,98 3,9204
114 115 -1 1,02 1,0404
120 123 -3 -0,98 0,9604
67 71 -4 -1,98 3,9204
89 93 -4 -1,98 3,9204
74 77 -3 -0,98 0,9604
98 102 -4 -1,98 3,9204
41 41 0 2,02 4,0804
66 67 -1 1,02 1,0404
84 87 -3 -0,98 0,9604
83 87 -4 -1,98 3,9204
67 68 -1 1,02 1,0404
96 99 -3 -0,98 0,9604
84
100 103 -3 -0,98 0,9604
77 79 -2 0,02 0,0004
95 95 0 2,02 4,0804
60 62 -2 0,02 0,0004
55 58 -3 -0,98 0,9604
92 93 -1 1,02 1,0404
61 64 -3 -0,98 0,9604
38 38 -1 1,02 1,0404
52 54 -2 0,02 0,0004
40 43 -3 -0,98 0,9604
55 57 -2 0,02 0,0004
79 82 -3 -0,98 0,9604
33 35 -2 0,02 0,0004
72 72 0 2,02 4,0804
72,1800000 74,1800000 -2,0200000 90,9800000
Tabla 12. Toma de datos. Fuente: Elaboración propia.
VALOR MÍNIMO: Del tamaño muestral se obtiene el valor más cercano a cero .
La desviación mínima de unidades en el experimento fue de 0 unidades.
85
El intervalo de confianza es de -2,342971305 a -1,697028695. Es decir, para una
seguridad del 95%, se obtuvo que la aplicación marca entre 2,34 a 1,69 unidades
promedio menos que el taxímetro real.
Donde:
Tabulando los grados de libertad de las dos medidas, ambas de 49, se obtuvo que
=1.63 aproximadamente.
3.11.5.1 EXACTITUD
Diferencia entre el valor verdadero y el valor medido. Algunas veces el valor verdadero
no se conoce con certeza[68]. Matemáticamente se expresa como:
DESVIACIÓN:
86
DESVIACIÓN RELATIVA:
RECUPERACIÓN:
Lo ideal es que un instrumento de medición tenga una recuperación del 100% [68],
como se acerca al 100%, se puede afirmar que el instrumento se acerca al
valor real.
TOB:
87
Como Tob es mucho menor que T-Student tabulado, , la exactitud
requerida para una seguridad del 95% es aceptable.
3.11.5.2 PRECISIÓN
Grado de repetitividad de una medición alrededor de un valor. Esta medida evalúa que
tanto varían los datos muéstrales con respecto a su valor promedio [68]. Es decir un
instrumento es preciso cuando al hacer una muestra todos los valores son similares
entre sí. Matemáticamente se expresa como:
COEFICIENTE DE VARIANZA:
Los valores no son dispersos ya que 1.73%es significativamente menor que 100%.
ERROR ESTÁNDAR:
88
3.11.6 ANÁLISIS ESTADÍSTICO DE LOS DATOS
-1
Desviación Máxima
-1,5
-2
Desviación
-2,5
Polinómica (Desviación)
-3
-3,5
-4
-4,5
Número de Muestras
Figura 27. Distribución Normal del Error. Fuente: Elaboración propia.
Para evaluar la fiabilidad de la aplicación, se comparó las unidades que marcaba el taxi
vs. las que había marcado TwTaxi, obteniendo como resultado la gráfica que se
muestra a continuación.
89
Medida TwTaxi vs. Medida Taximetro
140
80
60
40
20
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
Número de prueba
Figura 28. Medidas TwTaxi Vs. Medidas Taxímetro. Fuente: Elaboración propia.
90
4. RESULTADOS OBTENIDOS
La tabla 23 muestra un resumen del desarrollo que tuvo el proyecto, para cada uno de
los Sprints se describe las historias que se realizaron y el tiempo en el que se
desarrollaron. El proyecto se planeó en 176 días y se realizó en 174 días.
Estimado Real
Documentación previa del desarrollo móvil.
20 días 17 días
Sprint 0 Desarrollo de un prototipo inicial de bajo nivel.
Construcción de las historias de usuario.
Sprint 1 Prototipo de las historias de usuario.
20 días 20 días
Modelo de requerimientos.
Modelo de casos de uso.
Arquitectura de la aplicación.
Sprint 2 Diagrama de clases.
Modelo de base de datos.
31 días 35 días
Verificar y solicitar la activación del GPS.
Mostrar la ubicación del usuario en el mapa.
Iniciar aplicación.
Cargar modelo de tarifa.
30 días 30 días
Sprint 3 Iniciar medición.
Contabilizar y seleccionar recargos.
20 días 15 días
Sprint 4 Calcular valor de la carrera.
Almacenar información del servicio.
25 días 23 días
Sprint 5 Generar informe con los datos del servicio.
Notificar y actualizar modelo de la tarifa.
Sprint 6 Notificar queja en Twitter.
Manual del usuario de la aplicación móvil
30 días 34 días
TwTaxi.
Manual del usuario de la aplicación web
Administrador TwTaxi.
176 174
Tabla 23. Cronograma de las actividades desarrolladas. Fuente: Elaboración propia.
Como se puede observar en la tabla 23, el tiempo de desarrollo del proyecto se ajustó
según lo planeado, gracias a las reuniones periódicas que se hicieron con los Scrum
Master. Sin embargo en los Sprints 2 y 3 se presentó un desfase de 4 días, ya que el
grupo de trabajo se enfrentó a una curva de aprendizaje, pues no tenía conocimiento ni
experiencia en desarrollo para Android. En términos generales el proyecto se realizó en
menos tiempo del que se esperaba esto se debe a que los Scrum Team 1 y 2 tuvieron
una dedicación de tiempo completo, 6 horas de dedicación 5 días a la semana.
91
4.2 RESULTADOS DEL PROTOTIPO FUNCIONAL
Una diferencia significativa obtenida del prototipo elaborado, a diferencia de las otras
aplicaciones existentes en el mercado fue: permitir que TwTaxi, siga ejecutándose de
manera correcta estando inclusive en segundo plano, evitando de ésta manera,
bloqueos en el dispositivo móvil.
92
Luego de que el usuario selecciona los recargos, la aplicación despliega una pantalla
con un resumen del servicio, en la parte inferior se le indica al pasajero el total a pagar.
Figura 30. Historia de usuario: Generar informe con los datos del servicio.
Fuente: Elaboración propia.
En caso de que el pasajero esté inconforme con el cobro de la tarifa, puede reportarlo
en la red social Twitter. Para ello deberá ingresar: las placas del taxi, el nombre de la
empresa, motivo del reporte y comentario (se recomienda no excederse de 15
caracteres).
93
Figura 31. Historia de usuario: Notificar queja en Twitter. Fuente: Elaboración propia.
En caso de que el usuario quiera ver el modelo de tarifa con el que está funcionando
TwTaxi, puede dirigirse a la parte superior izquierda en el icono “Tarifas”, en ésta tabla
podrá encontrar: unidad y valor.
94
Si el usuario desea saber más información de las empresas de trasporte público taxi,
podrá consultar en la parte superior izquierda de la aplicación donde se encuentran 3
iconos: tarifas, recargo y empresas, al dar click en esta última podrá obtener el nombre
y teléfono de la empresa que desee consultar.
95
CONCLUSIONES
Dados los diferentes avances tecnológicos, las personas y las empresas dependen
cada día más de las tecnologías de información. El número de usuarios de teléfonos
inteligentes "Smartphones" incrementa día a día, es por esto que el desarrollo de
aplicaciones móviles utilizando software libre, permiten poner la tecnología al servicio
de la comunidad. Se observó que la realización de la aplicación TwTaxi, sea un aporte
valioso para los usuarios de Taxi por dos razones: transmita confianza y seguridad a la
hora de utilizar el taxi como medio de transporte público y muestre los beneficios que
traen las redes sociales al usarlas como mecanismo de difusión de información.
Cabe resaltar que la aplicación TwTaxi, fue puesta a disposición del usuario mediante
la tienda de aplicaciones Aptoide, en donde se observa que en tan poco tiempo desde
la publicación de la aplicación (15 días), se ha descargado 22 veces con 10
comentarios positivos. La acogida de la aplicación se debe en gran medida a que no se
maneja publicidad, no se presentan demoras al iniciar la aplicación, lo que sucedía en
otras aplicaciones, y es la única aplicación que viene integrada con Twitter, permitiendo
así que el usuario haga públicas sus inconformidades en caso de que se presenten
situaciones anómalas.
96
TRABAJO FUTURO
97
BIBLIOGRAFÍA
[1] A. Cardenas, «Hay cerca de 675 taxis por cada mil habitantes,» Diario ADN, p. 1, 9
Agosto 2012.
[3] Decreto No. 237 de 2006, Bogotá D.C: Registro Distrital 3567 de Julio 4 de 2006. ,
2006.
[4] L. F. B. Pachón, «La fiebre amarilla en Bogotá. Los taximetros fuera de control.,»
Universidad del Rosario, Bogotá, 2013.
[7] El tiempo Zona, «Así surgió la idea de denunciar taxistas a través de redes
sociales,» El tiempo., 26 Julio 2012.
[10] R. Silva, «Desarrollador Chileno presenta una aplicación para evitar cobros de más
en taxis,» Emol. Ciencia y Tecnología, 23 Enero 2013.
98
[15] P. Letelier, M. C. Penadés y J. Sánchez, «Trabajo en equipo en proyectos de
desarrollo de Software: Estrategía docente e infraestructura sofware,»
Departamento de Sistemas Informáticos y Computación. Universidad Politecnica
de Valencia, 2012.
[22] República, Congreso de la, «Secretaria Senado,» 16 Marzo 2010. [En línea].
Available:
http://www.secretariasenado.gov.co/senado/basedoc/ley_1383_2010.html#3.
[Último acceso: 4 Agosto 2014].
[25] Jon, «El androide libre,» 11 Diciembre 2010. [En línea]. Available:
http://www.elandroidelibre.com/2010/12/mide-la-velocidad-de-tu-coche-con-
speedview-y-your-speed-lite.html. [Último acceso: 6 Agosto 2014].
[26] Google maps para móviles , «My Tracks,» [En línea]. Available:
https://support.google.com/gmm/answer/2391538?hl=es. [Último acceso: 6 Agosto
2014].
99
Superior de Ingeniería de Telecomunicación Universidad Politécnica de Cartagena
, Cartagena, 2006.
[29] D. Cuadrado, «Las pruebas del nuevo taxímetro con GPS obtienen buenas notas,»
Autopista.es, 11 Diciembre 2000.
[34] Y. E. Vasquéz, «All About Symbian,» 13 Diciembre 2012. [En línea]. Available:
http://www.allaboutsymbian.com/. [Último acceso: 6 Septiembre 2014].
100
[41] U. P. d. Valencia, «Diploma de especialización en desarrollo de aplicaciones para
Android,» [En línea]. Available: http://www.androidcurso.com/. [Último acceso: 5
Marzo 2015].
[43] «The complete Mobile App Plataform Parse,» [En línea]. Available:
https://parse.com/docs. [Último acceso: 03 Marzo 2015].
[49] J. Palacio, «Gestión de proyectos Scrum Manager,» Version 2.5, Abril 2014.
101
2008.
[58] F. Xhafa, Aplicaciones distribuidas en Java con tecnología RMI, DELTA, 2007.
[61] W. F. Stephan Alber, Beginning App Development with Parse and PhoneGap, New
York: Apress, 2015.
[64] S. Haldar, SQLite Database System Design and Implementation, Self, 2015.
[65] M. Miller, Using Google Maps and Google Earth, Pearson , 2011.
[70] D. Salvi, «Aprueban un aumento del 21% en la tarifa de Taxis,» La voz de Tandil,
10 Junio 2011.
102
[72] I. Pellejero, F. Andreu y A. Lesta, Fundamentos y aplicaciones de seguridad en
redes WLAN: de la teoría a la práctica, Barcelona: Marcombo, 2006.
103
ANEXOS
104
ANEXO A: DIAGRAMAS DE SECUENCIA
sd Iniciar Medición
actionBtnIniciarServicio()
iniciarServicio(velocidad)
iniciarMedicion(velocidad)
aumentarUnidad()
insertarRegistros(velocidad)
105
Diagrama de Secuencia: Calcular Tarifa
sd Calcular Tarifa
Usuario
actionBtnDetenerServicio()
seleccionarRecargos()
calculartotalAPagar()
guardarTablaResumen()
mostrarTablaResumen()
106
Diagrama de Secuencia: Actualizar Tarifa
sd ActualizarTarifa
eliminarTarifas ()
eliminarTarifa()
cargarTarifa()
guardarTarifa()
107
ANEXO B: INSTALACIÓN DE LA LIBRERÍA
ANDROID SUPPORT V7 APPCOMPAT
108
ANEXO C: PRUEBAS
Identificador CP_006
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Mostrar la ubicación del usuario en el mapa.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 006
Objetivo Verificar que al abrir la aplicación el sistema le muestre al
usuario, mediante un mapa, el lugar donde se encuentra.
Precondiciones de la El usuario tiene acceso a Internet y tiene el GPS activo.
prueba
Pasos de ejecución 1. Se abrió la aplicación.
109
Identificador CP_007
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Iniciar aplicación.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 007
Objetivo Verificar que se inicialicen correctamente los cinco
contadores.
Precondiciones de la El usuario tiene acceso a Internet.
prueba La tabla tarifa existe y es vigente.
Pasos de ejecución 1. Se abrió la aplicación.
2. El sistema deshabilitó el botón “Siguiente”.
Resultados El sistema inicializa los contadores de: tiempo, velocidad,
esperados unidades de arranque y valor de la carrera.
Resultados Al abrir la aplicación cada uno de los contadores se inicializa
Obtenidos en su respectiva unidad.
Estado de la prueba Pasó: Fecha: 17 de Julio de Falló: Fecha
Si 2015
Comentarios
Identificador CP_008
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Calcular valor de la carrera.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
110
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 008
Objetivo Verificar que efectivamente se suma el valor de la tarifa
básica con el valor total de recargos.
Precondiciones de la El usuario tiene acceso a Internet.
prueba El usuario ha seleccionado más de un recargo.
Pasos de ejecución 1. Se dio click en el botón datos de la carrera.
Comentarios
Identificador CP_009
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Almacenar información del servicio.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 009
Objetivo Verificar que al finalizar el servicio se almacenen los datos en
Parse.
Precondiciones de la El usuario tiene acceso a Internet.
prueba
111
Pasos de ejecución 1. Se finalizó el servicio dando click en el botón "Datos
Carrera"
2. Se verifico que en el BackEnd Parse quedaran registrados
los datos del servicio.
Resultados Una vez se detiene el recorrido el sistema almacena los datos
esperados del servicio en Parse.
Resultados Se ha consultado la base de datos del servidor y
Obtenidos efectivamente quedan registrados los datos del servicio.
Estado de la prueba Pasó: Fecha: 17 de Julio de Falló: Fecha
Si 2015
Identificador CP_0010
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Generar informe con los datos del servicio.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 0010
Objetivo Verificar que al detener el recorrido se muestre una tabla en
el que el usuario pueda ver un resumen de la carrera.
Precondiciones de la El usuario tiene acceso a Internet.
prueba
Pasos de ejecución Una vez se terminaron de seleccionar los recargos se dio
click en “Datos de la carrera”.
Resultados El sistema muestra una tabla en el que se le muestra al
esperados usuario un resumen del servicio.
Resultados Al dar click en datos de la carrera, se muestra una tabla, la
Obtenidos cual indica: fecha, hora de servicio, unidades marcadas,
duración, distancia, costo total de la tarifa básica, costo total
112
de los recargos causados y total a pagar.
Comentarios
Tabla 28. Formato de caso de prueba: Generar informe con los datos del servicio.
Identificador CP_0011
Proyecto PROTOTIPO DE SOFTWARE MÓVIL PARA IMPLEMENTAR
UN TAXIMETRO ENFOCADO AL CONTROL DEL SERVICIO
Subsistema o Cargar modelo de tarifa.
Función
Preparado Por Angélica María Babativa Fecha 15 de Julio de
2015
Probado Por Paula Daniela Briceño Fecha 17 de Julio de
2015
Nombre
Caso Prueba 0011
Objetivo Verificar que al abrir la aplicación, por primera vez, se
carguen los datos de Parse a SQLite.
Precondiciones de la El usuario tiene acceso a Internet.
prueba El administrador tiene el archivo en formato CSV con los
datos de la tarifa que desea cargar.
El administrador está registrado en la aplicación y en Parse.
Pasos de ejecución 1. Se ingresó a la aplicación web, con usuario y contraseña.
2. Se seleccionó el archivo que contenía los datos de la tarifa
que se quería cargar.
3. Se consultó la base de datos en Parse.
4. Se verifico que existiera la tabla tarifa en la aplicación
móvil TwTaxi.
Resultados La aplicación carga los datos que se encuentran en Parse y
esperados los guarda en la base de datos local SQLite.
Resultados Al abrir la aplicación por primera vez el sistema carga los
Obtenidos datos que se encuentran en Parse.
113
Estado de la prueba Pasó: Fecha: 17 de Julio de Falló: Fecha
Si 2015
114
ANEXO D: VALIDACIÓN
115
Tabla 30. Distribución T-Student. Fuente [68].
116