Está en la página 1de 100

DISEÑO, PROTOTIPADO Y CONSTRUCCIÓN DE UN SISTEMA EN TIEMPO

REAL QUE PERMITA DAR INFORMACIÓN SOBRE LA DISPONIBILIDAD DE


ESPACIOS EN EL PARQUEADERO DE LA UNIVERSIDAD COOPERATIVA DE
COLOMBIA SEDE CALI SUR

CHRISTIAN ALEXIS RODRÍGUEZ CASTILLO


YEISON ANDRÉS CUARTAS VÉLEZ
ANDRÉS FELIPE GAVIRIA OCAMPO

UNIVERSIDAD COOPERATIVA DE COLOMBIA


FACULTAD DE INGENIERÍA
TRABAJO DE GRADO
CALI
2019
DISEÑO, PROTOTIPADO Y CONSTRUCCIÓN DE UN SISTEMA EN TIEMPO
REAL QUE PERMITA DAR INFORMACIÓN SOBRE LA DISPONIBILIDAD DE
ESPACIOS EN EL PARQUEADERO DE LA UNIVERSIDAD COOPERATIVA DE
COLOMBIA SEDE CALI SUR

CHRISTIAN ALEXIS RODRÍGUEZ CASTILLO


YEISON ANDRÉS CUARTAS VÉLEZ
ANDRÉS FELIPE GAVIRIA OCAMPO

TRABAJO DE GRADO

ASESOR (a):
ING. JOHN HAIDE CANO BELTRÁN

UNIVERSIDAD COOPERATIVA DE COLOMBIA


FACULTAD DE INGENIERÍA
TRABAJO DE GRADO
CALI
2019

2
3
CONTENIDO

pág.

RESUMEN 8
INTRODUCCIÓN 9
1 IDENTIFICACIÓN DEL PROBLEMA 10
1.1 PLANTEAMIENTO DEL PROBLEMA 10
1.2 FORMULACIÓN DEL PROBLEMA 11
2 JUSTIFICACIÓN 12
3 OBJETIVOS 13
3.1 OBJETIVO GENERAL 13
3.2 OBJETIVO ESPECÍFICO 13
4 MARCO DE REFERENCIA 14
4.1 MARCO TEÓRICO CONCEPTUAL 14
4.1.1 Metodologías de desarrollo 14
4.1.1.1 Fases de la metodología en cascada 14
4.1.2 Dispositivos móviles 16
4.1.2.1 Tipos de dispositivos móviles 16
4.1.3 Sistemas operativos móviles 17
4.1.3.1 Android 18
4.1.3.2 iOS 18
4.1.4 Lenguajes de programación 18
4.1.4.1 ¿Qué es el Lenguaje? 18
4.1.4.2 ¿Qué es la Programación? 19
4.1.4.3 Tipos de lenguajes de programación 20
4.1.4.4 Lenguajes de programación más populares 21
4.1.5 Base de datos 22
4.1.5.1 Bases de datos relacionales 22
4.1.5.2 Bases de datos No Relacionales 25
4.1.6 La nube y el IOT (internet de las cosas) 27

4
4.1.7 Entorno de desarrollo multiplataforma 29
4.1.7.1 Unity 3D 30
4.1.8 Parqueaderos automatizados 32
4.1.9 Firebase 33
4.2 MARCO CONTEXTUAL 36
5 METODOLOGÍA 37
6 RESULTADOS Y DISCUSIÓN 39
6.1 FASE DE INICIO 39
6.2 FASE DE ELABORACIÓN 40
6.3 FASE DE CONSTRUCCIÓN 60
6.4 FASE DE TRANSICIÓN 83
6.5 FASE DE IMPLEMENTACIÓN 84
7 CONCLUSIONES 93
8 RECOMENDACIONES 94
BIBLIOGRAFIA 95

5
LISTA DE FIGURAS

pág.

Figura 1. Comparativa entre sistema operativos más usados 17


Figura 2. Indice TIOBE (The Software Quality Company) Abril 2018 21
Figura 3. Caso de uso # 1 - Administrador web (general) 57
Figura 4. Caso de uso # 2 - Administrador web (especifico) 58
Figura 5. Caso de uso # 3 - Administrador web (especifico) 58
Figura 6. Caso de uso # 4 – Estudiante (General) 59
Figura 7. Caso de uso # 5 – Alternos (Especifico) 59
Figura 8. Base de datos firebase de google desde consola. 61
Figura 9. Diagrama de navegación. 62
Figura 10. Pantalla Login 63
Figura 11. Pantalla Registro 63
Figura 12. Pantalla Dashboard 64
Figura 13. Pantalla Parqueadero UCC (carros) 64
Figura 14. Pantalla Parqueadero UCC (motos) 65
Figura 15. Pantalla Mantenimiento de Usuarios 65
Figura 16. Pantalla Administración de pico y placa. 66
Figura 17. Pantalla Administración de parqueaderos Alternos 66
Figura 18. Pantalla Administración cambio de jornada. 67
Figura 19. Pantalla Estadísticas Ingreso y Salida 67
Figura 20. Cálculos de medición de sensor ultrasónico 74
Figura 21. Diseño de prototipo arduino con sensor ultrasónico y módulo wifi. 75
Figura 22. Código arduino 76
Figura 23. Diagrama de estados 76
Figura 24. Matriz RACI 86
Figura 25. Diseño # 1 – Soporte de Prototipo 87
Figura 26. Diseño # 2 – Soporte de Prototipo 88
Figura 27. Diseño Final – Soporte de Prototipo (Isométrico) 88
Figura 28. Diseño Final – Soporte de Prototipo (Acotado) 89
Figura 29. Diseño Final – Elaboración de Diseño Final 91
Figura 30. Prototipo instalado y en funcionamiento 91

6
LISTA DE TABLAS

pág.

Tabla 1. ACID vs BASE 26


Tabla 2. Requerimientos de Usuario 41
Tabla 3. Mapa funcional 44
Tabla 4. Req. funcional - Login de Usuario 44
Tabla 5. Req. funcional - Registro de Usuario 44
Tabla 6. Req. funcional - Visualización en tiempo real de datos 45
Tabla 7. Req. funcional - Modificar Estadística Carro 45
Tabla 8. Req. funcional - Modificar Estadística Motos 45
Tabla 9. Req. funcional - Registro de Novedades UCC 46
Tabla 10. Req. funcional - Visualización de Novedades Estudiantiles 46
Tabla 11. Req. funcional - Visualización en tiempo real de ingresos y salidas 46
Tabla 12. Req. funcional - Asignar espacio 47
Tabla 13. Req. funcional - Desocupar espacio 47
Tabla 14. Req. funcional - Habilitar espacio 47
Tabla 15. Req. funcional - Inhabilitar espacio 48
Tabla 16. Req. funcional - Registro de Ingresos para moto 48
Tabla 17. Req. funcional - Registro de Salidas para moto 49
Tabla 18. Req. funcional - Reset de ingresos y salidas 49
Tabla 19. Req. funcional - Modificación de usuarios. 50
Tabla 20. Req. funcional - Eliminación de Usuarios 50
Tabla 21. Req. funcional - Consulta de Usuarios 50
Tabla 22. Req. funcional - Visualización de Usuarios 51
Tabla 23. Req. funcional - Modificación de dígitos de pico y placa 51
Tabla 24. Req. funcional - Generación automática de pico y placa. 52
Tabla 25. Req. funcional - Visualización la información de los pico y placa 52
Tabla 26. Req. funcional - Creación de nuevos parqueaderos alternos 52
Tabla 27. Req. funcional - Visualización la información de los parqueaderos alternos. 53
Tabla 28. Req. funcional - Cambios de Jornada Diurno y Nocturno. 53
Tabla 29. Req. funcional - Generar estadísticas por año vs meses para motos 54
Tabla 30. Req. funcional - Generar estadísticas por meses vs semana para motos 54
Tabla 31. Req. funcional - Generar estadísticas por año vs meses para carros (Lineal) 54
Tabla 32. Req. funcional - Generar estadísticas por año vs meses para carros 55
Tabla 33. Req. funcional - Generar estadísticas por meses vs semana para carros 55
Tabla 34. Req. funcional - Generar estadísticas por cantidad de novedades reportadas 55
Tabla 35. Req. funcional - Crear usuario 56
Tabla 36. Req. funcional - Reportar novedades 56
Tabla 37. Requerimiento de Restricción 56
Tabla 38. Casos de pruebas para la evaluación de calidad de software. 82
Tabla 39. Requerimientos de Infraestructura 90
Tabla 40. Requerimientos de TI 90

7
RESUMEN

Dada la capacidad limitada del parqueadero de la universidad cooperativa de


colombia sede cali sur y el alto flujo vehicular que se presenta en ciertas horas del
día, toma mucha importancia la buena gestión de los lugares y espacios del
estacionamiento de vehículos para responder de una manera correcta a la
demanda, la cual se ve superada la oferta de espacios.

La falta de información que se tiene acerca de la disponibilidad de espacios en el


parqueadero, genera perdidas de tiempo y contaminación ambiental. La forma con
la cual se propone reducir los impactos por la falta de información es descrita en
este trabajo, la cual consta de un sistema centralizado que permite la captura de
señales de ultrasonido para mostrar la disponibilidad de espacios en tiempo real
mediante una plataforma web, aplicaciones móviles y convenios con otros
parqueaderos, con el fin de brindarle a los usuarios la capacidad de tomar mejores
decisiones sobre el uso que se le da a los vehículos para transportarse hacia la
universidad.

Palabras Clave: Parqueadero, Tiempo Real, Firebase, Disponibilidad, Movilidad,


Administracion de Espacios, Aplicación Moviles, Aplicaciones Web, Software.

8
INTRODUCCIÓN

En la Universidad Cooperativa de Colombia ubicada al sur de la ciudad de Cali, se


ha evidenciado un impacto en la capacidad instalada del parqueadero, dado al
crecimiento del numero de estudiantes que utilizan vehículos particulares para
desplazarse hacia la universidad. Para minimizar el impacto de este crecimiento y
ejercer registro y control sobre disponibilidad del parqueadero se inicia el proyecto
parking UCC, el cual brindará información en tiempo real a la comunidad
universitaria sobre el estado del parqueadero, pico y placa (externo e interno),
disponibilidad en parqueaderos alternos, novedades presentadas en la universidad
y un chat global entre otras funcionalidades.

El sistema consta de tres aplicaciones multiplataforma (web, móvil), una de ellas


esta a disposición de los parqueaderos alternos para brindar tarifas o novedades,
esta información es reflejada en la segunda aplicación que utilizan los estudiantes
o docentes para conocer la disponibilidad de espacios (universidad o alternos). La
tercera aplicación es gestionada por personal de vigilancia y encargada
principalmente de administrar y parametrizar el sistema en general-

Estas aplicaciones fueron desarrolladas utilizando: JavaScript y jquery para el


sistema de administración web, Unity para las aplicaciones móviles para android y
IOS, implementando también bases de datos en tiempo real (Firebase). La toma de
datos para alimentar el sistema se puede hacer de manera manual o automática
utilizando el prototipo electrónico.

9
1 IDENTIFICACIÓN DEL PROBLEMA

1.1 PLANTEAMIENTO DEL PROBLEMA

En la Universidad Cooperativa de Colombia ubicada al sur de la ciudad de Cali, se


ha visto un gran crecimiento en los últimos años, en cuanto al número de
estudiantes que se matriculan en los diferentes programas educativos. Este
crecimiento sumado al mejoramiento actual del poder adquisitivo, han hecho que se
aumente el número de personas que se desplazan en vehículos particulares,
impactando la capacidad instalada de la universidad.

Los hechos anteriormente nombrados, ha generado que la universidad implemente


medidas como el pico placa para estudiantes y personal administrativo, cambios en
las zonas de parqueo según la jornada ya sea diurna o nocturna, para favorecer el
volumen de motos que llegan en la noche y también proponer que se utilicen los
parqueaderos aledaños a la universidad, estas acciones han ayudado a mitigar un
poco algunos problemas que aún se siguen presentando como lo son externamente:
las largas filas de vehículos esperando a que se libere o se encuentre disponible un
espacio dentro del parqueadero, que a su vez esta fila también genera congestión
en la vía ya que es de doble sentido, problemas con los parqueaderos de las casas
vecinas a la universidad y de manera interna se presentan los siguientes indicios:
dificultades a la hora de indicar al conductor donde debe estacionar su vehículo,
además de quejas y reclamos parte de la comunidad estudiantil.

La causa principal de los problemas es que no se dispone de un sistema que brinde


una buena información sobre la disponibilidad de espacios del parqueadero. Otra
de las posibles causas de los problemas, es la desconfianza que tiene parte de la
comunidad universitaria, en la zona, al punto que los conductores no trasladen sus
vehículos a otros parqueaderos y se queden esperando fuera de la universidad
información sobre la disponibilidad de espacios.

En lo concerniente a dar impulso a la buena administración del parqueadero, el


equipo del proyecto ha considerado la realización de un aplicativo multiplataforma
(IOS, Android y Web) desarrollado en Unity, que implementará también bases de
datos en tiempo real (Firebase), con el fin de mejorar los tiempos de espera e
ingreso a la universidad, todo lo anterior será posible será posible gracias a que la
aplicación tendrá las siguientes funcionalidades: Información en tiempo real acerca
de espacios disponibles, espacios ocupados, espacios inhabilitados, vehículos en
cola o espera de ingreso entre otras funcionalidades más.

10
1.2 FORMULACIÓN DEL PROBLEMA

De este planteamiento se originan las siguientes preguntas:

¿Cómo se puede mejorar la administración y la información de la disponibilidad del


espacio del parqueadero, implementando tecnologías en tiempo real?

¿En qué herramientas se desarrollará el proyecto?

¿Qué metodología se utilizará para desarrollo y seguimiento del proyecto?

¿En qué plataformas será desplegado el proyecto?

¿Para qué dispositivos se implementará el proyecto?

11
2 JUSTIFICACIÓN

En primera instancia este proyecto mejorará la administración de los espacios del


parqueadero permitiendo que los vehículos puedan ingresar de una forma más
controlada y supervisada.

Podrá permitir que los usuarios puedan tener conocimiento a tiempo sobre el estado
del parqueadero, ya sea que esté lleno para que puedan llevar su vehículo a otro
parqueadero, esto permitirá que no tengan que esperar gastando gasolina y otros
factores, ya que se le brindará información completa en tiempo real de los espacios
y posiblemente mostrar los vehículos en espera.

El poder tener una fuente de información en tiempo real permitirá a los usuarios
poder tomar decisiones desde antes de salir de la casa para que puedan tomar el
vehículo que mejor se adecue a las necesidades y les permita estar en la
Universidad cómodamente. Gracias a este sistema, las personas podrán estacionar
su vehículo de una manera más rápida, conociendo en qué dirección deben ir para
ubicarlo en el espacio vacío.

En general se puede afirmar que la IoT (Internet of Things o Internet de las Cosas)
permitirá que los participantes de internet puedan tener acceso a cualquier instante
por medio del conjunto de tecnologías de la información y comunicaciones con el
objetivo que permita la consulta en tiempo real. Teniendo un grado de
automatización en zonas de estas podrán también acceder a un espacio libre en
menos tiempo y esto permite brindar mayor confort a las personas.

12
3 OBJETIVOS

3.1 OBJETIVO GENERAL

Diseñar y construir un prototipo de sistema móvil y web multiplataforma que permita


dar información sobre la disponibilidad de espacios en el parqueadero de la
Universidad Cooperativa de Colombia sede Cali.

3.2 OBJETIVO ESPECÍFICO

● Identificar los requerimientos y necesidades específicas del sistema.

● Diseñar un prototipo del sistema con la información y las especificaciones


propuestas.

● Desarrollar el prototipo del sistema con sus respectivas funcionalidades.

● Implementar el sistema en el parqueadero de la universidad.

13
4 MARCO DE REFERENCIA

4.1 MARCO TEÓRICO CONCEPTUAL

4.1.1 Metodologías de desarrollo

Para lograr implementar eficientemente el prototipo del sistema se debe recurrir a


las tecnologías actuales, aunque por encima de las herramientas primero se debe
establecer un modelo o metodología a seguir. “Una buena elección de modelo
(correctamente aplicado) ahorra tiempo y mejora la calidad de los sistemas que se
producen. Sin embargo, la amplia variedad de modelos y metodologías en el mundo
del desarrollo de software dificulta esta elección.” (J. Cervantes Ojeda, 2012).

El modelo o la metodología que se escoja debe ser adecuado con las circunstancias
y características del proyecto, pero existe un amplio abanico de elecciones en donde
se encuentran los siguientes modelos: cascada, prototipado, incremental, espiral y
RAD. Estos modelos son los más tradicionales y cuadriculados a la hora de ser
implementados, además, son incompatibles entre ellos.

En cuanto al desarrollo del proyecto se utilizará la metodología en cascada, siendo


la que mejor se relaciona con los objetivos planteados. La naturaleza secuencial
que presenta dicha metodología hace que el proceso se vea distribuido en etapas
que se van ejecutando una tras otra. “Se le denomina así por las posiciones que
ocupan las diferentes fases que componen el proyecto, colocadas una encima de
otra, y siguiendo un flujo de ejecución de arriba hacia abajo, como una cascada”.
(Domínguez, 2017)

4.1.1.1 Fases de la metodología en cascada

● Requisitos

El proceso de obtención de requisitos, cuya finalidad es llevar a la luz los requisitos,


no solo es un proceso técnico, sino también un proceso social que envuelve a
diferentes personas, lo que conlleva dificultades añadidas a su realización y
objetivos.

“La tarea de análisis de los requerimientos es un proceso de descubrimiento y


refinamiento, el cliente y el desarrollador tienen un papel activo en la ingeniería de
requerimientos de software. El cliente intenta plantear un sistema que en muchas
ocasiones es confuso para él, sin embargo, es necesario que describa los datos,
que especifique las funciones y el comportamiento del sistema que desea. El
objetivo es que el desarrollador actúe como un negociador, un interrogador, un
consultor, o sea, como persona que consulta y propone para resolver las
necesidades del cliente” (Fuentes, 2011).

14
● Diseño

En esta fase se descompone y organiza el sistema en elementos que puedan


elaborarse por separado, aprovechando las ventajas del desarrollo en equipo.
Como resultado surge el SDD (Documento de Diseño del Software), el cual contiene
la descripción de la estructura relacional del sistema y la especificación de lo que
debe hacer cada una de sus partes, así como la manera en que se combinan unas
con otras.

Es conveniente distinguir entre diseño de alto nivel o arquitectónico y diseño


detallado. En el diseño de alto nivel se tiene como objetivo definir la estructura de la
solución una vez que la fase de análisis ha descrito el problema se identifican los
grandes módulos y sus relaciones. Con ello se define la arquitectura de la solución
elegida. En el diseño detallado se define los algoritmos empleados y la organización
del código para comenzar la implementación.

● Implementación

Aquí se realiza la construcción del sistema de información y las pruebas


relacionadas con dicho proceso, como son las unitarias, integración y de sistema,
así como otras actividades propias de las etapas finales de un desarrollo (en donde
se implementa el código fuente, haciendo uso de prototipos, así como de pruebas y
ensayos para corregir errores).

● Verificación

Se realiza la instalación del sistema en un entorno de pruebas lo más parecido


posible al de producción donde se hacen las pruebas de implantación y las de
aceptación, donde los usuarios validan que el sistema hace lo que realmente
esperaban. Por último, se realizaría la implantación del sistema en el entorno de
producción.

● Mantenimiento

Los cambios que ocurran en esta fase son debidos a que hayan encontrado errores,
a que el software deba adaptarse a cambios del entorno externo (sistema operativo
o dispositivos periféricos), o debido a que el cliente requiera ampliaciones de
funcionalidad o del rendimiento.

La implementación del modelo en cascada trata sobre el planteamiento centrado en


la creación del mejor producto final posible, con poco margen para realizar ajustes
o actualizaciones al finalizar el proyecto. Actualmente la tecnología permite adoptar
metodologías más flexibles, se han popularizado otras formas de desarrollar
software y otros productos, pero el modelo en cascada sigue teniendo mucha
influencia.

15
4.1.2 Dispositivos móviles

Los dispositivos móviles son aparatos de tamaño pequeño que cuentan con algunas
capacidades de procesamiento, con conexión a una red y con memoria mayormente
limitada, que ha sido diseñado específicamente para una función, pero que puede
llevar a cabo otras funciones más generales, según (Pozo, 2007).

Cualquier dispositivo móvil debería funcionar y poder ser usado de forma fiable
mientras nos movemos, independientemente de la proximidad de una fuente de
energía (enchufe) o de una conexión física a Internet. Para facilitar la portabilidad,
los dispositivos móviles suelen contener baterías recargables, que permiten varias
horas o más de operación sin necesidad de acceso a un cargador o a una fuente de
energía externa. Aunque son móviles, estos dispositivos pueden sincronizarse con
un sistema de sobremesa para actualizar aplicaciones y datos.

El mundo de “lo móvil” está de moda, no hay más que visualizar a nuestro alrededor
para darnos cuenta. Un ejemplo muy común son los usuarios de telefonía móvil
debido a que éstos se han multiplicado hasta límites no previstos, convirtiéndose en
el mayor y más difundido exponente de ese mercado, aprovechando este punto
como uno de los más importantes en el proyecto debido a que el prototipo será
desarrollado principalmente para dispositivos móviles, específicamente celulares,
contando que la mayor parte de la comunidad estudiantil tiene un teléfono inteligente
que estará en todo momento en contacto con el estado del parqueadero de la
universidad.

Uno de los ejemplos más conocidos en Colombia en temas de aplicaciones para


dispositivos móviles es nET: “El Grupo Empresarial Parking lanzó la aplicación
'Parking App' para teléfonos inteligentes. La 'app' determina qué parqueaderos se
encuentran disponibles en la ciudad, cuál es su porcentaje de ocupación y cuánto
cuesta el minuto en cada uno de ellos” (EL TIEMPO, 2013).

4.1.2.1 Tipos de dispositivos móviles

● Tablets

Vienen en distintas marcas y tamaños, y sirven para leer libros, realizar


videollamadas, llevar agendas, calendarios y también soportan aplicaciones. Son
utilizadas en empresas, pero por lo general son más grandes que un celular y en
algunos sectores pueden reemplazar el uso de laptops.

● Laptops

Computadoras portátiles. Las hay en todos tamaños y marcas, con distintas


posibilidades de procesamiento y almacenamiento. En el mundo de los dispositivos
móviles, son las que menos se usan últimamente, en especial porque no es fácil

16
mantenerla conectada de forma remota del mismo modo que a un celular, por
ejemplo.

● Teléfonos Inteligentes

Los dispositivos móviles por excelencia son los celulares. Son los más ligeros y
cómodos. Hasta el momento son los favoritos de las empresas móviles por su
versatilidad y porque cada vez son más avanzados.

4.1.3 Sistemas operativos móviles

Para explicar este tema y como se relaciona con el proyecto, se delimitará primero
el campo de estudio con definiendo un sistema operativo como “…una colección de
programas que comparten los mismos mecanismos de distribución. Se genera con
el propósito de administrar y extender los recursos o capacidades de los sistemas
de información.” (Llaven, 2015). Un Sistema Operativo es un software que se inicia
al encender un dispositivo y se encarga de gestionar todos los recursos del sistema,
tanto de hardware como el software permitiendo así la comunicación entre el usuario
y el ordenador.

En los últimos años los sistemas operativos han ampliado sus fronteras, dejando a
un lado los entornos de escritorio y equipos estáticos, para relacionarse en el mundo
de los dispositivos móviles. Según (Pernía, 2016) “Los sistemas operativos móviles
son mucho más simples y están más orientados a la conectividad inalámbrica. A
medida que los teléfonos móviles crecen en popularidad, los sistemas operativos
con los que funcionan adquieren mayor importancia”.

Figura 1. Comparativa entre sistema operativos más usados

Fuente: https://ux.stackexchange.com/questions/96537/whats-the-symbol-for-the-locate-me-button

17
La imagen anterior muestra la clara predominancia que tiene el sistema operativo
móvil Android, seguido de iOS. Teniendo en cuenta que entre los dos suman un
92% del mercado, se opta por desplegar el proyecto en estos dos sistemas
operativos, para abarcar el mayor número de usuarios posibles.

4.1.3.1 Android

Este es un sistema operativo orientado a dispositivos móviles, comprado por Google


en el 2005, se destaca sobre otros por estar basado en Linux, el cual hace que su
núcleo sea libre, gratuito y multiplataforma.

4.1.3.2 iOS

“iOS (en inglés “iPhone Operating System”) es un sistema operativo propietario de


la empresa Apple Inc utilizado en dispositivos como smartphones, tablets y otros
dispositivos como televisores o reproductores mp4, entre ellos los famosos iPhone,
iPad y iPod.” (Filgueira, 2015).

4.1.4 Lenguajes de programación

Cuando hablamos de lenguajes de programación debemos tener en cuenta que


estos son la arquitectura de todo sistema de información, el cual permite la
interacción directa con las computadoras o cualquier dispositivo que permita su
interpretación o entendimiento. Para entrar en contexto identificamos brevemente
que es un lenguaje y la programación según los diferentes puntos de vista.

4.1.4.1 ¿Qué es el Lenguaje?

Son varias las definiciones existentes, pero nos centraremos en las más relevantes
y actuales basados en el contexto actual.

(Pavio & Begg, 1981) indican que “el lenguaje es un sistema de comunicación
biológico especializado en la transmisión de información significativa e intra
individualmente, a través de signos lingüísticos”.

(El Diccionario de la Real Academia de la Lengua Española, 2001) define “el


lenguaje como estilo y modo de hablar y escribir de cada persona en particular”. La
Real Academia presenta una definición simple tomando en consideración la
comunicación verbal y escrita sin adentrarse en las particularidades lingüísticas que
puedan estar inmersas en las personas sean emisores o receptores.
Luego de todas las interpretaciones propuestas por los autores podemos decir
textualmente que el lenguaje es la forma de comunicarse entre 1 o más individuos
de forma escrita o verbal, logrando un entendimiento mutuo y transparente entre las

18
partes; que claro que el lenguaje establecido entre los individuos o máquinas puede
ser totalmente diferente y con lleve al aprendizaje frecuente para su interpretación.

4.1.4.2 ¿Qué es la Programación?

Ahora definiremos de manera muy textual que es la programación en forma habitual


y en informática.

(Anónimo. 2017, Párr. 1) define en el contexto habitual


“La programación hace referencia al efecto de programar, es decir, de organizar una
secuencia de pasos ordenados a seguir para hacer cierta cosa”.

(Ibíd., párr. 3) define en el contexto informático “la programación refiere a la acción


de crear programas o aplicaciones, a través del desarrollo de un código fuente, el
cual se basa en el conjunto de instrucciones que sigue el ordenador para ejecutar
un programa”.

Luego de conocer la definición para ambos términos, podemos dar un significado


más coherente acerca de que es un lenguaje de programación. Un lenguaje de
programación es una estructura artificial diseñada de manera secuencial para
expresar procesos paso a paso interpretados por el ordenador o hardware.

Pueden usarse para crear programas que controlen el comportamiento físico y


lógico de una máquina, para expresar algoritmos con precisión, o como modo
de comunicación humana. Está formado por un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el significado de sus
elementos y expresiones. Al proceso por el cual se escribe, se prueba, se
depura, se compila y se mantiene el código fuente de un programa informático
se le llama programación. También la palabra programación se define como el
proceso de creación de un programa de computadora, mediante la aplicación
de procedimientos lógicos, a través de los siguientes pasos: El desarrollo lógico
del programa para resolver un problema en particular. Escritura de la lógica del
programa empleando un lenguaje de programación específico (codificación del
programa). Ensamblaje o compilación del programa hasta convertirlo en
lenguaje de máquina. Prueba y depuración del programa. Desarrollo de la
documentación. (Salazar, Catirre & Deivit, 2013).

Actualmente los lenguajes de programación han evolucionado permitiendo


integrarse a diferentes dispositivos, pero algo que está recalcando en la industria es
la utilización de software libre desarrollado con este tipo de herramientas
permitiendo cambios tecnológicos y ayudando a desarrollar grandes aprendizajes
de manera autodidacta. Con parte del aprendizaje en las nuevas tecnologías. “El
software libre se ha convertido en uno de los movimientos tecnológicos de mayor
auge en el siglo XXI. Para su desarrollo ha sido necesario contar con un grupo de
herramientas que hagan óptima su utilización y sean fáciles de aprender”.
(Challenger, Díaz & Becerra, 2014, p. 1).

19
Cuando hablamos de lenguajes de programación también identificamos su nivel de
compilación según el medio expuesto, esto con el fin de verificar el entorno de
desarrollo más optimo en término lenguaje informático. No podemos deducir que
estos son de alto nivel o bajo nivel; sin embargo, ayudan a sistematizar la estructura
de comunicación ya sea a nivel de software alternos o al propio hardware. A
continuación, detallaremos un poco la clasificación de los tipos de lenguajes
existentes.

4.1.4.3 Tipos de lenguajes de programación

Lenguajes de programación en bajo nivel

Son aquellos implementados para controlar las partes tangibles (hardware) y


dependen de manera directa con la máquina, es decir, que no pueden ser usados
en dispositivos diferentes para los que fueron desarrollados. Estos lenguajes son
los que ordenan las operaciones esenciales para el funcionamiento del dispositivo.
También es conocido como código máquina. Su actividad es compleja, por lo que
principalmente son utilizados por los fabricantes de hardware directamente. Con
ellos se pueden programar tareas como reproducción de audio o video a escalas
muy detalladas, mostrar imágenes, realizar operaciones matemáticas, asignación,
liberación de memoria, entre otras. “Como técnica de programación, es una tarea
tediosa puesto que ha de ser el programador el que lleve esta responsabilidad. Sin
embargo, el lenguaje de la máquina abstracta es un lenguaje de bajo nivel y no está
pensado para codificar directamente aplicaciones de usuario sobre él”. (Soler F.,
2001, P. 177).

● Lenguajes de Programación en Alto Nivel

Estos lenguajes son más intuitivos y no dependen de la máquina, sirven


principalmente para crear aplicaciones informáticas que puedan solucionar distintos
tipos de necesidades. Entre los programas más relevantes se utilizan JAVA, SQL,
PHP y C. Algunos del sistema que funcionan con las aplicaciones que usamos a
diario, permite la interacción de casi todos los lenguajes de programación
permitiendo de esta manera aprenderlo de forma más fácil y práctica, debido a que
estos usan palabras o comandos del lenguaje natural. Los lenguajes de alto nivel a
su vez permiten ser estructurados bajo una sintaxis clara que nos ayudan a
interpretar y ordenar la programación ingresada en el ordenador.

20
4.1.4.4 Lenguajes de programación más populares

Actualmente se han desarrollado múltiples lenguajes de programación, partiendo de


las necesidades que requiere la industria, esto con el fin de lograr agilidad en los
procesos de codificación para el desarrollo de software. Lenguajes como Java, C y
C++ mantiene una estabilidad al tener un 38.584% del mercado al ser estos
robustos y garantizando a los desarrolladores herramientas de implementación
avanzadas para un mayor desempeño.

Otros de los lenguajes que tienen mayor auge son Python y C#, estos logran tener
un ranking compartido del 11.068% como lo indica la figura 1. “Python es un
lenguaje de programación que cumple con lo planteado y se viene perfilando como
una opción recomendada para el desarrollo de software libre.” (Challenger, Díaz &
Becerra, 2014, p. 1). Por otra parte, lenguajes como C# de alto nivel y desarrollado
por Microsoft logra adaptarse de manera considerable a sistemas operativos de
Windows permitiendo mayor interacción entre software y hardware de los
ordenadores de mayor demanda en el mercado. “C#, se ha convertido en uno de
los lenguajes de programación más populares en Internet, sin embargo, también es
un extraordinario lenguaje de aplicación general”. (Ceballos, 2002, p. XIII). Mucho
de estos lenguajes de programación implementan mejoras en su arquitectura para
lograr mejores resultados en el desempeño de aplicaciones. En la actualidad
lenguajes como PHP, JavaScript y SQL, son muy apetecidos para la realización de
Front end, Backend e incluso creación y consulta de bases de datos relacionales,
pero cuentan con una curva de aprendizaje a largo un poco lenta para su
implementación práctica.

En la siguiente figura, se podrá observar la clasificación de los lenguajes de


programación más utilizados en la actualidad para el año 2018.

Figura 2. Indice TIOBE (The Software Quality Company) Abril 2018

Fuente: https://www.tiobe.com/tiobe-index/

21
4.1.5 Base de datos

Las bases de datos son colecciones o estructuras de información que permite la


organización de los datos rápidamente por medio de campos, registros y/o archivos
consultados por medio del lenguaje de programación SQL (Structure Query
Lenguages) directamente al gestor. Los sistemas de bases de datos se diseñan y
construyen con el fin de gestionar y almacenar grandes volúmenes de información.

4.1.5.1 Bases de datos relacionales

Durante muchos años la administración de bases de datos han logrado evolucionar


hacia la administración de base de datos relacionales, permitiendo prevalecer en la
industria tecnológica y cambiado el paradigma establecido. Una base de datos
relacional es un modelo organizado de entidades que posee características que
tienen relaciones entre ellas. Una base de datos relacional bien diseñada provee
información de un negocio o un proceso y su uso más común es para almacenar y
recuperar información. Las estructuras para la administración de base de datos
relacionales son fáciles de comprender y construir, pues son lógicamente
representadas utilizando Diagramas Entidad Relación para su modelación gráfica;
Según la definición de Amazon web Services los componentes principales de estas
bases de datos relacionales parten de la integridad y orden en la recopilación de
información, como se muestra a continuación:

Un base de datos relacional es una recopilación de elementos de datos con


relaciones predefinidas entre ellos. Estos elementos se organizan como un
conjunto de tablas con columnas y filas. Las tablas se utilizan para guardar
información sobre los objetos que se van a representar en la base de datos.
Cada columna de una tabla guarda un determinado tipo de datos y un campo
almacena el valor real de un atributo. Las filas de la tabla representan una
recopilación de valores relacionados de un objeto o entidad. Cada fila de una
tabla podría marcarse con un identificador único denominado clave principal,
mientras que filas de varias tablas pueden relacionarse con claves extranjeras.
Se puede obtener acceso a estos datos de muchas formas distintas sin
reorganizar las propias tablas de la base de datos. (Amazon Web Services,
2006).

Para las bases de datos las estructuras son esencial en la incorporación de objetos
que almacenan o acceden a los datos de la base de datos como lo son Tablas,
vistas e índices. Las tablas son objeto que almacena datos en forma de filas,
columnas y se clasifican por medio de un tipo de dato. Las columnas permiten
almacenar la información sobre cada elemento que queremos guardar en la tabla,
cada fila de la tabla conforma un registro; también debemos tener en cuenta que los
datos de una tabla contienen valores atómicos, es decir que contiene elementos
que no pueden ser divididos. IBM afirma:

22
Una base de datos relacional es una base de datos que se trata como un
conjunto de tablas y se manipula de acuerdo con el modelo de datos relacional.
Contiene un conjunto de objetos que se utilizan para almacenar y gestionar los
datos, así como para acceder a los mismos. Las tablas, vistas, índices,
funciones, activadores y paquetes son ejemplos de estos objetos. (Consulta de
SQL,1993-2002 ,p.1).

● SQL

SQL (Structure Query Language o Lenguaje Estructurado de consultas) es el


lenguaje estándar para la interacción entre los gestores de bases de datos de tipo
relacional, este nos brinda grandes ayudas que permite detallar tipos de
operaciones en ellas. Las consultas realizadas por SQL utilizan el álgebra y el
cálculo relacional como bases fundamentales para agilizar los procesos mediante
los algoritmos de búsqueda, el SQL brinda la posibilidad de obtener consultas con
el objetivo de recuperar información de las bases de datos de manera sencilla. Las
consultas SQL son transformadas bajo lenguaje de definición, manipulación y
control que permite realizar las siguientes operaciones sobre el gestor o la base de
datos para: insertar, actualizar, eliminar y averiguar la ubicación de los datos.

Basado en esto también se debe aclarar que el SQL no solo permite la manipulación
de datos como insert, update, delete o select, sino también para en la creación y
modificación de los objetos de base de datos, como lo afirma (Microsoft, 2018).

Como en todo lenguaje estructurado, para SQL existen palabras reservadas que
serán interpretadas por los gestores de base de datos, es muy importante conocer
su aplicabilidad y función al momento de generar consultas robustas para lograr
obtener la información correcta. Pero todas estas consultas requieren a su vez de
matemáticas que la soportan como el álgebra y cálculo relacional, que combinas
técnicas y por medio de algoritmos mejorar el desempeño por medio de los índices.
En base a lo anteriormente mencionado los siguientes autores afirman “El estudio
del álgebra relacional presenta un interés especial, pues ayuda a entender qué
servicios de consulta debe proporcionar un lenguaje relacional, facilita la
comprensión de algunas de las construcciones del lenguaje SQL y también sirve de
base para el tratamiento de las consultas que efectúan los SGBD internamente.”
(Camps et. al., 2005,p.20-21).

● Clasificación de Claves

● Clave primaria

Las claves primarias permiten realizar una restricción única en el campo, mediante
estas logramos garantizar que los datos no van a generar duplicidad en nuestra
tabla. Adicional a esto la clave primaria también nos ayuda a interconectar con otras
tablas generando relación entre una a muchas columnas. Esta se recomienda que

23
se define como NOT NULL restringiendo que su campo quede vacío y pueda
generar inconsistencia para otras tablas.

● Clave foránea

Por otro lado, se encuentra las claves foráneas que nos permite especificar una
restricción por referencia, esta debe coincidir obligatoriamente como mínimo con un
valor de la clave primaria o de una clave de la tabla padre. Como lo confirma “Una
clave externa (FK) es una columna o combinación de columnas que se utiliza para
establecer y exigir un vínculo entre los datos de dos tablas.” (Microsoft, 2018, p.1).

● Clave Índice

Los índices permiten obtener un registro de forma más rápida, donde se pueden
presentar demoras dependientes la complejidad de una consulta a la base de datos.
Básicamente lo que logran los índices es por medio de algoritmos recuperar las filas
por medio de grafos y árboles agilizando la consulta de la información. Como lo
confirma “Un índice es una estructura de disco asociada con una tabla o una vista
que acelera la recuperación de filas de la tabla o de la vista. Un índice contiene
claves generadas a partir de una o varias columnas de la tabla o la vista.” (Microsoft,
2018, p.1).

● Normalización

La normalización es un proceso que clasifica y relaciona elementos en un único


grupo de datos de información, teniendo como base las características que cada
uno conserva, esto con el fin de identificar las reglas aplicadas a las categorías
definidas; si se establece otras reglas esta deberá tener otra categoría.

Debemos tener en cuenta que la normalización o formas normales de una base de


datos disminuye y evita la redundancia, disminuye problemas de actualización de
los datos en las tablas y proteger la integridad de los datos esto es muy importante
en el diseño de las bases de datos y garantizan la estandarización de normas que
debemos tener en cuenta al momento de proponer este tipo de diseños donde
relacionamos y almacenamos nuestra información. Mediante la normalización
garantizamos un modelo entidad relación en una base de datos.

Los principales objetivos de la normalización para los autores (Garzón, Maldonado


& Villegas, 2006, p. 20).

● Controlar la redundancia de la normalización.


● Evitar pérdidas de información.
● Capacidad para representar toda la información.
● Mantener la consistencia de los datos.

24
4.1.5.2 Bases de datos No Relacionales

Desde hace muchos años, las bases de datos han tenido un soporte para la
organización de la información basándose en las tipologías relacionales, pero en la
actualidad los paradigmas cambian y permiten que nuevas fuentes de
almacenamiento renacen para mejorar el desempeño de las aplicaciones. Para las
bases de datos NoSQL (“Not Only SQL” o “No solo SQL”) se caracterizan cinco
importantes acontecimientos a diferencia de las relacionales, como lo son: Mejoras
al momento de escala horizontal, El manejo de grandes cantidades de volúmenes
de información, procesamiento de información en tiempo real, flexibilidad en el
esquema y estructuras distribuidas. Las bases de datos NoSQL están
completamente mejoradas y optimizadas en la aplicación de operaciones para
recuperar y agregar información en el modelo, los cuales se presenta como clave –
valor.

Sin embargo, estas bases de datos se encuentran orientadas al desarrollo web y no


está sujeto a estructuras de tablas o relaciones. Los tamaños y cantidades de la
información que se puede almacenar en estructuras JSON que son fáciles de
interpretar y consultar, garantizando agilismo en el desarrollo de aplicaciones por
parte de los desarrolladores. Una de las grandes ventajas al usar bases de datos
NoSQL es que se encuentra diseñadas para manipularse por lenguajes de
programación como JavaScript, Java, Python entre otros.

Algunas de las bases de datos NoSQL se clasifican según las necesidades de


volúmenes de información y necesidades del proyecto, muchas de estas manejan
diferentes arquitecturas para almacenamiento y consultas. Dentro de esta
clasificación tenemos las siguientes:

● Bases de Datos Clave – Valor


● Bases de Datos Documentales
● Bases de Datos Orientadas a Grafos
● Bases de Datos Orientadas a Objetos
● Bases de Datos Orientadas a Columnas
● Bases de Datos Multivalor

En la actualidad las bases de datos NoSQL son usadas con mucha frecuencia en el
desarrollo para cubrir sus propias necesidades en temas de escalabilidad,
rendimiento, mantenimiento, etc. como, por ejemplo: Google+, Twitter, Facebook,
Instagram y LinkedIn.

● ACID (Transacciones Relacional) vs BASE (Transacciones No Relacional)

ACID es actualmente muy usado en bases de datos relacionales, donde el modelo


de transacciones producente del lenguaje SQL garantiza la Atomicidad,

25
Consistencia, Aislamiento (Isolation) y Durabilidad y que podemos definir de la
siguiente manera según (Gómez, Raúl. 2014, p. 49).

o Atomicity (Atomicidad). Las transacciones han de ejecutarse por


completo o no ejecutarse, pero la transacción no puede quedar a medias.
o Consistency (Consistencia o Integridad). Los datos que se guardan tras
la transacción han de ser siempre datos válidos.
o Isolation (Aislamiento). Las transacciones son independientes y no se
afectan entre sí.
o Durability (Durabilidad). Una vez finalizada una operación, está perdurará
en el tiempo.

BASE se basa en el modelo transaccional con enfoque en el ACID, que permite a


las bases de datos mantener un nivel de disponibilidad, la degradación y
rendimiento óptimo para el almacenamiento y consulta de la información. El modelo
se basa en la siguiente manera según lo describe (Gómez et al., 2014, p. 50).

o Basic Availability. El sistema funciona incluso cuando alguna parte falla,


debido a que el almacenamiento sigue los principios de distribución y
replicación.
o Soft State. Los nodos no tienen por qué ser consistentes entre si todo el
tiempo.
o Eventual Consistency. La consistencia se produce de forma eventual.

Tabla 1. ACID vs BASE

● Consultas

Las consultas son una herramienta por la cual muchas bases de datos interactúan
con la información, ya sea implementando las llaves primarias y foráneas para las
relacionales como también la llamada clave – valor para las bases de datos no
relacionales. Estás permite a su vez practicidad, flexibilidad y riqueza en la

26
construcción de Query que a su vez garantizan un óptimo rendimiento y la
escalabilidad. Existen diferentes métodos para la búsqueda de información como lo
registró el autor (Gómez et al., 2014, p. 55).

Companion SQL database consiste en tener una base de datos auxiliar (que puede
ser una base de datos SQL o una TestDB) de forma que se utilice esta secundaria
para almacenar ciertos metadatos importantes para realizar la búsqueda, y se
empleen para facilitar la búsqueda posterior en el contenedor NoSQL.

Búsqueda local dispersa. Otra forma de realizar consultas consiste en, puesto que
se tiene el conjunto de datos repartido entre los distintos servidores, repartir de igual
modo la consulta, de forma que cada servidor ejecute localmente cada consulta y
reenvíe los resultados a un nodo maestro, que sería el encargado de juntar todos
los resultados y presentarlos a la aplicación.

Árboles B+ Distribuidos. Una forma eficiente de acelerar las búsquedas consiste


en mantener un árbol B+ que forme un índice de entradas a la base de datos NoSQL
(Aquilera, Golab and Shah 2008). El procedimiento consistiría en sacar los valores
hash de los atributos que nos interese indexar, y construir con ellos el árbol B+.
Cuando se quiera realizar una consulta, se comenzará desde la raíz y se irá
descendiendo en orden hasta llegar a la hoja correspondiente, que nos dará la
entrada concreta donde se encuentra el registro que se está buscando. Al tratarse
de un árbol B+, se debe tener en cuenta las particularidades de este tipo de
estructura de datos a la hora de realizar los mantenimientos necesarios, las
inserciones y borrados que puedan hacer redimensiones en el árbol, etc.

4.1.6 La nube y el IOT (internet de las cosas)

En la actualidad podemos evidenciar los avances en la tecnología que ha permitido


el desarrollo de productos y servicios que pueden interactuar con personas u objetos
alrededor, esto permite simplificar y facilitar inconvenientes de la vida diaria. “Para
sacar el máximo provecho de la tecnología que Internet brinda, existe la necesidad
de implementar a gran escala, infraestructura independiente de la plataforma,
sensores inalámbricos en red que incluye la gestión y tratamiento de datos,
actualizacion y análisis” (Barillaro et al. , 2016) por lo tanto esto ofrece en la
tecnología cierto grado de autonomía, esto es lo que hoy día conocemos como IoT.
“La capacidad de interconectar aplicaciones en la internet y servicios en la nube,
permiten ejecutar tareas indispensables en un tiempo menor y automáticamente.”
(Carrión, Maya, Domínguez, Peluffo, 2016).

Claramente podemos ver que los dispositivos conectados a internet a través del
tiempo van en incremento y se “estima que en 2020 habrá́ más de 20 mil millones
de dispositivos conectados a Internet, en lo que se conoce como Internet de las
Cosas (IoT)” (Mora, 2016). La ciencia de esto es interconectar dispositivos que
permitan intercambiar información u hechos, pero algo que realmente a veces no

27
entendemos es que por el simple hecho de que el dispositivo esté conectado a
internet, no lo convierte en IoT, unos de los puntos más acertados es que “Una
solución IoT tiene mucho que ver sobre cómo entender mejor el mundo que está a
nuestro alrededor para ofrecer un servicio inteligente a la sociedad.” (Mora, 2016).
En la actualidad podemos encontrar diversas plataformas que facilitan el desarrollo
de sistemas basados en IoT que ofrecen servicios en la nube para desarrollar,
podemos encontrar las siguientes plataformas “Microsoft Azure IoT Suite, Google
Cloud IoT Core, Amazon Web Service IoT son solo algunos ejemplos de los
proveedores más importantes de nube publica que ofrecen a los desarrolladores
servicios específicos para IoT” (Mora, 2016).

Otra definición encontrada fue “IoT es un sistema de dispositivos de


computación interconectados, máquinas mecánicas y digitales, objetos,
animales o personas, a los cuales se ha provisto de identificadores únicos y la
habilidad de transferir datos sobre una red sin la necesidad de interacción
humana” (Mora, 2016). Podemos ver que esencia de IoT es interconectar
dispositivos que permiten generar y cambiar datos con sus observaciones,
acciones para la cual están diseñados de forma que recolectan la información,
“Una solución IoT es simplemente un conjunto de dispositivos diseñado para
producir, consumir o presentar datos relacionados con algún tipo de evento u
observación” (Mora, 2016).

El almacenamiento de los datos IoT son servicios que nos permiten almacenar
nuestros datos IoT y obtener informes sencillos. Los servicios que proporcionan
redes y protocolos de comunicaciones similares o plataformas para IoT. La mayoría
se especializa en servicios Machine-to-Machine (M2M). Las plataformas hardware
IoT son vendedores que nos permiten desarrollar y prototipar rápidamente
dispositivos IoT utilizando plataformas hardware, módulos y herramientas para
construirlos y que abarca desde un simple componente hasta el dispositivo
completo. En general podemos afirmar que el IoT podrá permitir agentes integrantes
o participantes de internet, comunicarse desde cualquier ubicación y en cualquier
momento con el objetivo de brindar o utilizar servicios de la red que permitan el
control o monitoreo de dichos agentes de forma automática y en tiempo real.

Existen 3 modelos de servicios, uno es Infraestructura as a Service (IaaS), otro es


Platform as a Service (Paas) y software as a Service (SaaS), estos modelos los
puede ofrecer proveedores de la nube. “Dependiendo de las necesidades de cada
compañía los servicios se pueden obtener mediante un proveedor externo (nube
pública), una infraestructura exclusiva para la compañía (nube privada) o de una
comunidad especifica (nube comunitaria), o hacer uso de las anteriores (nube
hibrida)” (Mora, 2016). Gracias a estos servicios ofrecidos por proveedores se
puede realizar un ahorro en hardware, alquilar servidores y otros, por lo tanto, las
empresas no deberán invertir en mantener el hardware al día y el mantenimiento de
los servidores. “La nube reduce las necesidades de capacidad en las instalaciones
locales y permite ajustar el espacio o la capacidad de proceso en función de la

28
demanda, evitando tener recursos ociosos en los momentos de menor carga de
trabajo” (Moreno, 2016).

En IoT se encuentran muchos desafíos, uno de ellos es la seguridad y la privacidad,


la cual es clave en los despliegues, normalmente los dispositivos IoT tienen
almacenamientos limitados, por lo que son un poco más vulnerables y se debe tener
en cuenta los casos en que los dispositivos estén procesando información sensible
como datos personales y otros, sin embargo, existen muchas formas de proteger y
aumentar la seguridad a estos entornos, no podemos olvidar los beneficios.
“Autoservicio bajo demanda, amplio acceso a la red, concentración de recursos,
rápida elasticidad y optimización de recursos” (Moreno, 2016). Otro beneficio es
que, si la aplicación consume información de gran volumen, ciertos proveedores
permiten escalar los recursos para poder suplir la necesidad y en base a la
información “se puede utilizar el aprendizaje predictivo que proporcionan estas
herramientas para que el sistema de control ambiental se ajuste de manera
automática.” (Moreno, 2016).

El desarrollo del IoT está llevando a que el consumidor sea cada vez más exigente,
al estar conectados y localizables en todo momento facilita una mayor
personalización de los servicios y objetos que nos rodean, así́ como una mayor
información disponible en el momento de la toma de decisiones. Podemos analizar
cómo IoT evoluciona en el terreno de los modelos de negocios. “Si bien es verdad
que las grandes empresas suelen asentar las bases de la infraestructura
tecnológica, los emprendedores son los agentes transformadores de nuestra
sociedad que impulsan las tendencias más innovadoras.” (Cuzme, 2015),
realizando un impacto en empresas de desarrollo y no sólo en empresas sino
también personas y hogares.

4.1.7 Entorno de desarrollo multiplataforma

Las aplicaciones nativas son muy potentes, pero también requieren de mucha
dedicación y esfuerzo de desarrollo que al final sólo lo soportaría una plataforma,
anteriormente para poder desarrollar para todas las plataformas se debía escoger
el lenguaje y el IDE necesario con sus respectivas librerías.

En el entorno de desarrollo se plantean nuevos desafíos en las que existen


características únicas, la necesidad de tratar con diversas plataformas, estándares
y tecnologías, por lo tanto, tiene capacidades limitadas. Para maximizar su
presencia en el mercado el producto debe funcionar en la mayor cantidad de
dispositivos posibles.” Una solución consiste en el desarrollo nativo de la aplicación
en cada una de las plataformas existentes utilizando el entorno de desarrollo
integrado (IDE por sus siglas en inglés), el lenguaje y las herramientas propias de
cada plataforma.” (Delía, Galdamez y Thomas, 2014). El desarrollo multiplataforma
se opone al nativo y su objetivo es el reusó de código y procura optimizar el

29
desarrollo costo/beneficio compartiendo el mismo código para las diferentes
plataformas. Entre otras ventajas sobresalen: menor tiempo y costo de desarrollo;
prestaciones cercanas a las nativas con acceso al hardware del dispositivo y
disponibilidad de entornos potentes de desarrollo (Delphi, Visual Studio) o, en su
lugar, utilización de tecnologías bien conocidas por los desarrolladores web
(HTML5, JavaScript y CSS) que pueden trasladar sus conocimientos y experiencias
al paradigma móvil (Delía et al., 2014).

Gracias a la demanda de software para diversos sistemas operativos se ha visto la


necesidad de nuevas herramientas y metodologías, esto llevo a las aplicaciones
multiplataforma reduciendo tiempos y costos, pero claramente de todo esto incide
mucho el rendimiento en término de tiempo, entre otros factores más. “Se ha
presentado un estudio comparativo sobre el rendimiento de distintos modos de
desarrollo multiplataforma en relación con el tiempo de ejecución de las aplicaciones
construidas.” (Delía et al., 2014). Según el estudio podemos saber que el
rendimiento multiplataforma es según los modos y los escenarios configurados.
“entre los tres modos de desarrollo multiplataforma puestos a prueba, cuando se
prioriza el rendimiento en relación al tiempo de ejecución de las aplicaciones
construidas, Titanium representa la mejor opción resultando siempre uno de los
mejores tiempos de ejecución y comportándose de manera estable, sin grandes
variaciones de rendimiento entre distintos dispositivos.” (Delía et al., 2014).

4.1.7.1 Unity 3D

Unity es un motor para crear videojuegos 3D y 2D, oficialmente lanzado en Junio


del 2005, este motor permite la creación de cualquier contenido interactivo, tales
como diseños arquitectónicos o animaciones 3D. Unity Technologies es una
empresa que ha decidido facilitar a las personas la creación de productos
interactivos desde la primera versión, se han esforzado para que sus herramientas
sean accesibles y fáciles de utilizar, según su licencia no e tiene acceso a su código
fuente, por lo tanto tiene una interfaz de usuario para crear los elementos necesarios
sin entrar al código fuente.“Unity pone la potencia de su motor al servicio de los
utilizadores permitiéndoles”.

Obtener un resultado de máxima calidad con un mínimo de esfuerzo. Además, las


actualizaciones, mejoras e inclusión de nuevas funcionalidades no han cesado
hasta llegar a la actual versión la 4.0 y su desarrollo sigue en curso.” (Ouazzani,
2012), por este motivo muchas personas les ha llamado la atención el motor para
desarrollo, también existen dos versiones, una es libre y la otra es versión paga,
estas dos versiones no tienen diferencias según las herramientas, sin embargo,
según los fines del proyecto a realizar es la versión que deben obtener para poder
no tener inconvenientes en el licenciamiento, para poder distribuir el producto y
facturar se debe tener una licencia profesional.

30
Podemos encontrar muchos tipos de motores de videojuegos y diferentes maneras
de clasificarlos ya sea por lo que las herramientas incluyen, las funcionalidades que
ofrecen y el grado de programación requerido o por lo que engloba, puede ser un
motor general o especializado en un tipo de videojuego y así se dividen en tres tipos
de motores, uno es roll-your-own versión, mostly-ready versión y el motor point-and-
click.

Los motores de tipo Roll-your-own son del nivel más bajo e implica que para crear
el videojuego se debe primero crear el motor, la creación de los motores requieren
de tiempo y recursos, pero muchas empresas lo realizan de esta forma, para esto
recurren a aplicaciones disponibles al público, “tales como las API como XNA,
DirectX, OpenGL, la API de Windows y Linux y SDL y bibliotecas comerciales o de
código abierto.” (Ouazzani, 2012). Estas herramientas son muy utilizadas para
facilitar la creación del motor de físicas y funcionalidades gráficas.

“La ventaja de este tipo de motores es la flexibilidad que permite al creador la


selección de los componentes necesarios para el videojuego sin sobrecargar el
procesador con herramientas que le restan potencia y por consecuente calidad al
videojuego. El gran inconveniente de este tipo de motores y lo que hace que no sea
de los más apreciados por los usuarios es que requiere mucho tiempo y recursos.”
(Ouazzani, 2012).

Mostly ready son motores listos para su uso, por lo cual proporciona numerosas
herramientas para la creación de contenido interactivo, por lo tanto, ya tienen su
interfaz de usuario, motor de físicas y opciones para la renderización que permitirán
acortar el tiempo de desarrollo, “Existen varios motores de este tipo y van desde los
gratuitos como ORGE, Génesis hasta los que tiene un precio elevado como Unreal,
id Tech o GameBryo pasando por los de bajo precio como Torque.” (Ouazzani,
2012).

En Point-and-click es el nivel más alto ya que son motores muy completos, tiene un
diseño muy intuitivo y se requiere programar muy poco, por lo tanto, es limitado ya
que sólo permite el desarrollo hasta que el motor se lo permita, “A pesar de estas
limitaciones son motores muy solicitados y apreciado por los creadores porque
permiten la creación de un juego de manera muy rápido sin tener que preocuparse
por los aspectos matemáticos y centrándose en los aspectos creativos.” (Ouazzani,
2012).

Unity permite la creación de escenas teniendo en cuenta iluminación, terrenos,


animaciones con particular, cámaras, sonido, textura. Una de las ventajas es que
es un motor multiplataforma por lo que permite ser compatible con Windows, Mac
OS X, IOS, Android, Wii, PlayStation, Xbox, Nintendo, iPad, iPhone y Web lo cual
facilita el desarrollo, por lo cual tenemos muchas ventajas más, permite la
importación de numerosos formatos 3D como 3ds Max, maya, cinema 4D,
Cheetah3D y Softimage, Blender, Modo, ZBrush y FBX, permite otros tipos de

31
formato para texturas,“ es compatible con las API gráficas de Direct3D, OpenGL y
Wii. Además de ser compatible con QuickTime y utilizar internamente el formato
Ogg Vorbis” (Ouazzani, 2012). Unity provee recursos de modelos 3D en la que se
puede acceder por la misma aplicación donde existe el modo pago y gratuito de
esos recursos, incluso se puede extender la herramienta mediante plugins que se
obtienen en esta misma tienda.

En Unity para crear cualquier contenido interactivo se debe utilizar el editor y el


lenguaje de scripts, hay una particularidad y es que trae su propia herramienta para
programar MonoDevelop, sin embargo, se puede utilizar otras herramientas para
programar en el lenguaje C#. “Dispone de una interfaz de desarrollo muy bien
definida e intuitiva que permite crear rápidamente min-juegos.” (Ouazzani, 2012).
Dentro de los motores de desarrollo de contenido interactivo y programas que
facilitan la creación de videojuegos podemos encontrar que “Unity 3D es uno de los
motores más recientes en el mercado, es completo y muy potente. Además, ha ido
adaptándose a los avances versión a versión y a las nuevas tendencias como la
creación de juegos para diferentes soportes de allí que sea multiplataforma.”
(Ouazzani, 2012).

4.1.8 Parqueaderos automatizados

Un parqueadero automatizado tiene un sistema que permite el control de los


vehículos que ingresan a la zona de parqueo, permitiendo un control sobre la
ubicación y tiempo de parqueo, teniendo en cuenta que múltiples sistemas permiten
la identificación de la placa vehicular y lector del tag, permite el control con la entrega
de un recibo o tarjeta. “El sistema de parqueo robotizado, es una estructura tipo
edificio que ofrecerá el servicio de estacionamiento a los conductores que transitan
por el centro de Guayaquil, optimizando los recursos de tiempo y espacio; el cual
funcionará y realizará su labor por medio de una red eléctrica.” (Villa, Stalin, Vaca y
Arturo, 2017).

Existen parqueaderos automatizamos automatizado y aparcamiento robotizados, en


el caso del aparcamiento robotizado es un sistema de estacionamiento inteligente
enfocado a reducir maniobras y establecer muy bien los espacios para los vehículos,
se puede evitar el hurto ya que ninguna persona puede entrar al parqueadero,
actualmente existen sistemas sencillos con plataformas de traslación y elevación
del vehículos, hasta altamente avanzados y totalmente robotizados, pero también
tenemos los parqueaderos semi semiautomáticos que se pueden clasificar en
independientes y dependientes, en el caso del independientes los vehículos se
pueden estacionar y recoger sin importa los demás autos, el dependiente se debe
tener en cuenta los autos a su alrededor para realizar el parqueo o el traslado del
vehículo. Esto se debe a que “Parking is becoming an expensive resource in almost
any major city in the world.” (Tullio, Sabato y Giovanni, 2012).

32
Los parqueaderos automatizados permiten satisfacer la necesidad de los
conductores de encontrar un lugar para estacionarse “El cliente por medio de su
tarjeta inteligente, la cual contendrá sus datos personales, podrá obtener el acceso
hacia la plataforma central del parqueadero.” (Villa et al.,2017) los parqueaderos
automatizados están caracterizados por brindar un servicio de estacionamiento para
vehículos de una manera eficaz y optimizando el tiempo de búsqueda de que tardan
los conductores buscando un espacio en el parqueadero, dentro de algunos
parqueaderos automatizados los usuarios pueden tener la ventaja de ubicar su
automóvil dentro del parqueadero. “El beneficio que obtendrán los clientes es que
ellos evitarán la tediosa tarea de trasladarse y maniobrar su transporte hasta
encontrar y ubicarse en área disponible para parquearse” (Villa et al.,2017).

Algunos usuarios pierden hasta 30 minutos intentando encontrar dentro del


parqueadero la ubicación del vehículos, ya que no recuerdan en qué espacio lo
estacionaron o también puede ser el caso de que el usuario pierda hasta 20 minutos
encontrando un espacio para poder dejar su carro, para esto muchos centros
comerciales empezaron a implementar tecnología para evitarle ese dolor de cabeza
a sus clientes, “Santafé Medellín, por ejemplo, puso al servicio un sistema de
geolocalización para que el propietario de un carro sepa en qué zona específica de
sus más de 2.000 celdas de estacionamiento está el vehículo.” (Peréz, 2014).

El concepto de una nueva generación de parqueaderos y seguridad en el área de


transporte se evidencia con el establecer un entorno de automatizado de diferentes
formas traerá muchos más beneficios según el sistema y la base de datos. “La base
de datos consta de dos modos de operación, administrador quien registra el carnet
del estudiante y usuario que permite utilizar estos datos al momento de utilizar el
almacenamiento vehicular” (Palacio, 2015), con la nueva implementación se supone
que las personas tendrán que hacer menos recorridos dentro de los parqueaderos
claro que de una forma derivada se beneficiar el medio ambiente ya que esto
permita la disminución de emisión de gases contaminantes.

4.1.9 Firebase

“Firebase es una nueva tecnología creada por google, es una tecnología con gran
potencial, presenta diferentes servicios con gran facilidad de implementación, sin
duda alguna es gran ayuda para los desarrolladores.” (Niño y Ricardo, 2017), con
las funcionalidades que ofrece Firebase permite el apoyo para desarrollar diferentes
tipos de aplicaciones según la funcionalidad que se haya escogido que ofrece
Firebase.

Firebase cuenta con tres planes para los usuarios que deseen sus servicios,
podemos encontrar el plan sin cargo llamado Plan Spark en el cual es un plan que
no tiene costo, pero sin embargo tiene límites en las conexiones a la base de datos
en tiempo real, limitación en el almacenamiento de datos, hosting limitado. Podemos

33
encontrar el Plan Flame el cual tiene un cupo para más conexiones y
almacenamiento, tenemos por último el Plan Blaze la cual la manera de cobro es
pago por uso, el cual según el servicio que se esté utilizando y el tiempo será el
costo. Firebase es una herramienta web que le pertenece a Google la cual surgió
como una solución de construcción rápida para una aplicación por medio del kit de
desarrollo de software con el objetivo de la unificación de todas las soluciones de
Google.

“Es una plataforma móvil y de aplicaciones web con las herramientas y la


infraestructura diseñada para ayudar a los desarrolladores a crear aplicaciones de
alta calidad. Firebase se compone de características complementarias que los
desarrolladores pueden mezclar y combinar para adaptarse a sus
necesidades.”(Saltos, Mora y Elmer, 2018). El equipo tiene una sede en California,
San Francisco y Mountain View, la empresa se fundó en el 2011 por Andrew Lee y
James Tamplin, el producto inicial de Firebase era una base de datos en tiempo
real, tiene una API que permite a los desarrolladores almacenar y sincronizar los
datos a través de múltiples clientes. “Con el tiempo, se ha ampliado su línea de
productos para convertirse en un paquete completo para el desarrollo de
aplicaciones. La compañía fue adquirida por Google en octubre de 2014 y un
número significativo de nuevas características se presentaron en de mayo de 2016
a Google I / O.” (Saltos et al.,2018).

Firebase implementó una API que permite la autenticación de usuarios en la


aplicación, esta autenticación puede ser por medio del correo o alguna red social,
al momento de hacer la autenticación se genera un token de seguridad el cual es
enviado al servidor NodeJs, mediante unos protocolos para gestionar las
notificaciones y mensajes, como Firebase proporciona una base de datos en la nube
que almacena en formato JSON y se sincronizan en tiempo real con cada cliente
conectado se pueden realizar muchas aplicaciones con parte del desarrollo ya
avanzado y proporcionando economía en un proyecto. “Cuando creas apps
multiplataforma con nuestro iOS, Android y los SDK de JavaScript, todos tus clientes
comparten una instancia de Realtime Database y reciben actualizaciones de forma
automática con los datos más nuevos.” (Saltos et al.,2018), gracias a esto ya no es
necesario utilizar las solicitudes típicas de HTTP, las actualizaciones en la base de
datos de tiempo real se pueden reflejar en milisegundos de esta forma proporciona
experiencias colaborativas e inmersivas sin pensar en el código de red, otra de las
ventajas es que es accesible desde los dispositivos del cliente, de esta manera se
puede acceder de forma directa a Firebase desde un dispositivo móvil o también
desde un navegador web. “La seguridad y la validación de datos están disponibles
a través de las Security Rules de Firebase Realtime Database, reglas basadas en
expresiones que se ejecutan cuando se leen o se escriben los datos.” (Saltos et
al.,2018).

Dentro de los servicios que ofrece Firebase podemos encontrar muchas ventajas,
una de ellas es el manejamos de CRUD de base de datos en tiempo real conociendo

34
la lógica del código la aplicación, sin necesidad de tener conocimientos abstractos
de alto nivel en manejo de base de datos, al margen del uso del Web Services
convencional que se usa para realizar el backend. “Acoplable para a otras
plataformas de desarrollo mediante librerías para cada lenguaje de programación.”
(Saltos et al.,2018). Ofrece una librería de notificación en pocas líneas de código.
“Gestión estadística del uso de la aplicación para evidenciar el mercado,
instalaciones, usuarios, etc.” (Saltos et al.,2018).

35
4.2 MARCO CONTEXTUAL

La Universidad Cooperativa de Colombia es una institución privada de educación


superior que pertenece al sector de la economía solidaria creada en 1983, como
sucesora del Instituto de Economía Social y Cooperativismo - INDESCO.

La trayectoria institucional de la Universidad Cooperativa De Colombia data


desde el año 1958, cuando un grupo de cooperativistas, liderados por los
hermanos Henry y Rymel Serrano Uribe junto con Carlos Uribe Garzón, deciden
apostarle al fortalecimiento de la economía solidaria y en particular al
cooperativismo, a partir de la formación de adultos dentro de esta doctrina. Para
ello, fue creado el Instituto Moses Michael Coady, honrando el nombre del
sacerdote cooperativista canadiense, pionero de la educación cooperativa en
su país.

Más adelante, en 1961, el Instituto M. M. Coady se convierte en el Instituto de


Economía Social y Cooperativismo – INDESCO, y posteriormente, la
Superintendencia Nacional de Cooperativas, después DANCOOP, luego
DANSOCIAL, y hoy Unidad Administrativa Especial de Organizaciones
Solidarias, mediante Resolución 4156 de 1963, otorga Licencia de
funcionamiento al “Instituto de Economía Social y Cooperativismo”.

Gracias a la labor en pro del desarrollo de las cooperativas durante la década


de los 60, no sólo en la labor de formación sino de consultoría, la
Superintendencia Nacional de Cooperativas, mediante Resolución 00559 de
1968, reconoce como Institución auxiliar del cooperativismo al “Instituto
Universitario de Economía Social y Cooperativismo”- INDESCO, con domicilio
en la ciudad de Bogotá. (Colombia, s.f.).

La universidad está conformada por 4182 entre profesores de planta y de cátedra.


Cuenta con 7 facultades, 39 programas de pregrado, 19 especializaciones y 3
maestrías. Entre las 18 sedes distribuidas por todo el territorio nacional, se decidió,
llevar a cabo el proyecto en la sede sur de la ciudad de Cali.

36
5 METODOLOGÍA

La investigación aplicada persigue fines más directos e inmediatos. Tal es el caso


de cualquier estudio que se proponga evaluar los recursos humanos o naturales con
que cuenta una región para lograr su mejor aprovechamiento, también puede ser el
caso de investigar para conocer las causas que provocan una enfermedad, con el
fin de proteger la salud, sin embargo, hay que recordar que debe existir la
aplicabilidad en la cual encontraremos consecuencias prácticas.

Para este proyecto haremos el uso de la investigación aplicada ya en resumen se


refiere al estudio científico que busca la forma de resolver problemas prácticos,
normalmente se utiliza para encontrar soluciones a problemas cotidianos,
basándonos en el proyecto podemos encontrar que el problema que deseamos
resolver es un problema cotidiano dónde está ligado al desarrollo de una aplicación,
es decir desarrollar tecnologías innovadoras, de esta forma la investigación aplicada
que realizaremos está de la mano con la investigación básica. También está
orientada a la mejora de bienes y servicios, buscando mejorar actividades en la vida
humana, de esta forma realizaremos una aplicación móvil para el parqueadero de
la Universidad Cooperativa de Colombia sede Cali donde beneficiará a los
estudiantes y por consiguiente a cada estudiante les traerá beneficios. Uno de los
beneficios podría ser la organización del tiempo para poder tener su vehículo dentro
de la Universidad, también podemos encontrar que la investigación es exploratoria
ya que se debió hacer un primer acercamiento al problema pretendiendo conocer y
estudiarlo, lo que nos permite familiarizarnos con el problema.

Finalmente son experiencias de investigación con propósito de resolver o mejorar


una situación para comprobar un método o modelo por medio de la innovación y
creatividad de una propuesta de intervención que llevarán a una solución a la
situación particular, en nuestro caso se llevará a cabo un desarrollo que fue basado
en la exploración del problema para la creación de la posible solución aplicándolo
en el campo.

Las fuentes primarias y secundarias según la información, en el caso que la


información sea nueva es una fuente primaria y esté resumida y estructurada se
puede decir que es una fuente secundaria, cuando se trata de una fuente de primera
mano quiere decir que han sido publicados por primera vez y es de producción
original, es decir no es un resumen ni una interpretación de otro texto, en muchos
casos los libros son una fuente primaria por lo que abarcan todas las ramas del
conocimiento humano, desde lo más básico hasta lo más avanzado. En este
proyecto se hizo la selección de algunos libros para poder realizar la investigación,
una selección y análisis de la información contenida en ciertos libros, haciendo uso
de esa fuente primaria, también tuvimos en cuenta las revistas ya que en ellas
podemos obtener variedad de temas que normalmente no son relatados en libros,
obteniendo novedades en la que pueden participar diferentes autores, realizamos

37
entrevistas, una de ellas fue con el portero donde nos expresó su opinión acerca de
la problemática, también se realizó una entrevista con el decano para poder saber
su opinión acerca del tema del parqueadero de la Universidad Cooperativa, siendo
esas fuentes de primera mano, también tomamos en cuenta unas tesis ya que es
una redacción de origen académico.

En las fuentes secundarias su principal función es recopilar, resumir y organizar


información que realmente proviene de la información de primera mano que
recolectamos, por lo general es una colección de temas y por tal razón lo puede
abarcar, una de las ventajas es que pudimos obtener la información a partir de
lecturas realizadas.

Siguiendo rigurosamente los pasos que marca la metodología en cascada, en donde


una etapa no termina sin que haya culminado otra, se empezará con el análisis y
definición de los requisitos del sistema, llevando a cabo tareas como, por ejemplo:
reuniones con los usuarios y sus historias, alcance del proyecto y la clasificación de
requisitos funcionales y no funcionales. El documento que resulte de lo anterior
contendrá la especificación completa de lo que debe hacer el sistema sin entrar en
detalles internos.

Para la siguiente fase la cual es el diseño del sistema, Se descompone y organiza


el sistema en elementos que puedan elaborarse por separado, aprovechando las
ventajas del desarrollo en equipo. En esta fase se describe la funcionalidad de cada
módulo y cómo se relaciona con otros, aplicando el diseño arquitectónico o de alto
nivel, en el cual se define la estructura solución o los módulos necesarios del
sistema; una tarea específica sería: diseñar mockups. Otro tipo de diseño es el
diseño del programa, donde se definen las herramientas de codificación y los
algoritmos necesarios para ser utilizados, como en el caso del proyecto un entorno
de desarrollo como Unity, Firebase como una base de datos no relacional en tiempo
real, JavaScript, C#, HTML y css.

Pasando a la fase de codificación, se definirá la estructura de la base de datos y se


empezaran a construir, desarrollar y codificar los módulos del sistema, como lo son,
por ejemplo: el login, registro de usuarios, pantalla principal, control de pico y placa,
novedades, gestión de espacios del parqueadero y reportes, entre otros.
Para la implementación y pruebas los elementos, ya programados, se articulan para
componer el sistema y se comprueba que funciona correctamente y que cumple con
los requisitos, antes de ser entregado al usuario.

38
6 RESULTADOS Y DISCUSIÓN

Este proyecto ha sido diseñado y desarrollado teniendo en cuenta aspectos


importantes como tecnologías web, móvil y Arduino; como resultado principal del
proyecto se obtuvo un sistema en tiempo real que permita dar información sobre la
disponibilidad de espacios en el parqueadero de la universidad cooperativa sede
sur.

Los resultados obtenidos durante el proyecto son la realización de actividades


establecidas en la metodología de ejecución y que dan cumplimiento a cada uno de
los objetivos específicos, logrando dar como resultado las falencias que presenta la
institución al momento de lograr tener información en tiempo real para garantizar
que las personas se anticipen a los hechos y técnicas que fueron aplicadas durante
el alcance del proyecto.

Finalmente se hace énfasis a la forma cómo se llegó a la construcción del sistema


de información y móvil, explicando el proceso de diseño y desarrollo de forma muy
específica; y por último se revelan los resultados de los requisitos necesarios para
la utilización del sistema.
6.1 FASE DE INICIO

En este capítulo se presenta los pasos y los resultados de la información obtenida


en el proyecto. Estos pasos y resultados mostrarán de manera más general cuál fue
el proceso a seguir para la evolución constante del proyecto. Se destacarán muy
especialmente las variables que han influido significativamente para llevar a cabo el
desarrollo del proyecto.

Inicialmente, en esta fase se hicieron necesarios estudios a través de visitas y


entrevistas a los principales actores en el contexto del parqueadero de la
Universidad Cooperativa de Colombia, como lo son: Decano de la facultad de
ingeniería, personal de seguridad, personal administrativo, administradores de
parqueaderos alternativos a la universidad, profesores y estudiantes, quienes
además de presentar sus respectivas molestias, dieron a conocer el proceso que
llevan a cabo para el uso del parqueadero y también dieron opiniones de mejora,
que serán tomadas en cuenta para llevar a cabo el proyecto.

Con lo anterior se establecieron los inconvenientes y se determinaron las


necesidades de dicho proceso, de esta forma se delimitó el alcance del sistema de
información a desarrollar, junto con unos objetivos claros y marcados. Al tomar en
cuenta las necesidades, problemas y sugerencias para el trabajo, se pensó en
sistema de administración web para el parqueadero, una aplicación para la
comunidad en general (profesores, personal administrativo y profesores) y una
aplicación para los administradores de los parqueaderos aledaños.

39
En la primera fase se empezó a contextualizar el ambiente físico o capacidad
instalada del parqueadero, llegando a un aproximado de 90 espacios para carros y
disponibilidad para aproximadamente 500 motos. Además del ambiente propio de
la universidad, también se logró contextualizar los parqueaderos aledaños.

La realización de los objetivos para la construcción del trabajo de grado,


consecutivamente quedaron así: identificación de requerimientos y necesidades,
diseño del sistema de información, desarrollo o codificación del proyecto y para
terminar, implementación del sistema.

6.2 FASE DE ELABORACIÓN

El presente documento busca diseñar y describir los requisitos funcionales


establecidos para el desarrollo de un sistema de información que permita visualizar
la disponibilidad de espacios en tiempo real de la universidad cooperativa de
Colombia sede sur que ayude en agilizar, gestionar y ordenar los procesos en la
administración de este espacio. Dentro del documento se darán a conocer todos los
pasos para tal desarrollo, desde los requerimientos de usuario, modelos e
identificación del contexto, hasta llegar a los requisitos de restricción.

Requerimientos de usuario

Identificación
Descripción
REQ

REQ-1 Se requiere que el sistema permite visualizar la información del


dashboard en tiempo real. (Web, Móvil)

REQ-2 Se requiere que el sistema permite visualizar novedades. (Web,


Móvil)

REQ-3 Se requiere que el sistema permite asignar, desocupar, habilitar


e inhabilitar espacios del parqueadero. (Web, Móvil)

REQ-4 Se requiere que el sistema permite visualizar la información del


parqueadero de carros en tiempo real. (Web, Móvil)

REQ-5 Se requiere que el sistema permita el mantenimiento de usuarios.


(Web)

40
Identificación
Descripción
REQ

REQ-6 Se requiere que el sistema permite la administración de pico y


placa. (Web, Móvil)

REQ-7 Se requiere que el sistema permite la administración de


parqueaderos alternos. (Web, Móvil)

REQ-8 Se requiere que el sistema permite los cambios de jornada.


(Web, Móvil)

REQ-9 Se requiere que el sistema permite generar estadísticas para


motos, carros y novedades. (Web)

REQ-10 Se requiere que el sistema permite reportar novedades. (Móvil)

REQ-11 Se requiere el sistema permite el registro de usuarios y


recuperación de contraseña. (Móvil)

Tabla 2. Requerimientos de Usuario

41
MAPA FUNCIONAL

Funcionalidad Subfuncionalidad Actividad Descripción Actor Req

Visualización en tiempo real de Permite visualizar la información en tiempo real para las Administrador/
datos estadísticas de carros y motos. Estudiante
1.1.1

Modificar Estadística Carro Permite la modificación del estado de vehículos en espera. Administrador 1.1.2

Permite la modificación del estado para la cantidad total de


Módulo Modificar Estadística Motos
espacio disponible de motos.
Administrador 1.1.3
Administración
Dashboard

Registro de Novedades UCC Permite registrar las novedades reportadas por la UCC. Administrador 1.1.4

Visualización de Novedades Permite visualizar las novedades registradas por los


Estudiantiles estudiantes
Administrador 1.1.5

Visualización en tiempo real de Permite la visualización de la información en tiempo real para Administrador/
ingresos y salidas los ingresos y salidas de vehículos (carros, motos). Estudiante
2.1.1

Permite asignar un espacio al parqueadero seleccionado.


Asignar espacio
Aplica para carros.
Administrador 2.1.2

Permite desocupar un espacio al parqueadero seleccionado y


Desocupar espacio
que se encuentre asignado. Aplica para carros.
Administrador 2.1.3
Módulo
Administración
Parqueaderos
Permite habilitar un espacio de parqueo anteriormente
Habilitar espacio
bloqueado. Aplica para carros.
Administrador 2.1.4

Permite Bloquear un espacio de parqueo anteriormente


Inhabilitar espacio
habilitado. Aplica para carros.
Administrador 2.1.5

Registro de ingreso Permite registrar un ingreso para motos. Administrador 2.1.6

42
MAPA FUNCIONAL

Funcionalidad Subfuncionalidad Actividad Descripción Actor Req

Registro de Salida Permite registrar una salida para motos. Administrador 2.1.7

Permite reiniciar la secuencia de motos anteriormente


Reset de ingresos y salidas Administrador 2.1.8
reportadas.

Modificación de usuarios Permite modificar la información de los usuarios Administrador 3.1.1

Eliminación de Usuarios Permite eliminar usuario Administrador 3.1.2

Permite consulta la información de los usuarios


Consulta de Usuarios
registrados.
Administrador 3.1.3

Visualización de Usuarios Permite visualizar la información de los usuarios Administrador 3.1.4

Modulo Modificación de dígitos de


Administración
Administrador pico y placa
Permite modificar la información de los usuarios Administrador 3.1.5

Generación automática de Permite generar automáticamente la secuencia de


pico y placa pico y placa
Administrador 3.1.6

Visualización la información
de los pico y placa
Permite visualizar la información de los pico y placa Administrador 3.1.7

Creación de nuevos
parqueaderos alternos
Permite crear los parqueaderos alternos. Administrador 3.1.9

Visualización la información de Permite visualizar la información de los parqueaderos


los parqueaderos alternos alternos.
Administrador 3.1.10

43
MAPA FUNCIONAL

Funcionalidad Subfuncionalidad Actividad Descripción Actor Req

Cambios de Jornada Diurno y


Nocturno
Permite seleccionar las jornadas activas (diurna o nocturna). Administrador 3.1.11

Generar estadísticas por año vs


meses para motos
Permite generar graficas del ingreso y salida de motos Administrador 3.1.12

Generar estadísticas por meses


vs semana para motos
Permite generar graficas del ingreso y salida de motos Administrador 3.1.13
Modulo
Administración
Estadísticas
Generar estadísticas por año vs Permite generar graficas del inhabilitado, habilitados, ingreso
meses para carros y salida de carros
Administrador 3.1.14

Generar estadísticas por meses


vs semana para carros
Permite generar graficas del ingreso y salida de carros Administrador 3.1.15

Tabla 3. Mapa funcional

44
Requisitos Funcionales

Login

RQ: 1.0.1 Nombre: Login de Usuario Prioridad: Alta Fase: 1 Estado:


Especificado

Detalles:
1. El sistema permitirá ingresar el correo electrónico y contraseña.
2. El sistema debe validar si se presentan los siguientes errores:
a. Campo vacío de correo electrónico.
b. Campo vacío de contraseñas.
c. Si el usuario no existe.
d. Si el correo ingresado no tiene un formato valido.
e. Campo vacío de correo electrónica para la recuperación de contraseña.
3. El sistema permitirá tener un link para ingresar a registrar usuario.
4. El sistema permitirá recuperar la contraseña.

Tabla 4. Req. funcional - Login de Usuario

Registro

RQ: 1.0.2 Nombre: Registro de Usuario Prioridad: Alta Fase: 1 Estado:


Especificado

Detalles:
1. El sistema permitirá ingresar nombre, apellido, correo, contraseña y confirmación de
contraseña.
2. El sistema permitirá enviar un correo confirmando la creación de un nuevo usuario.
3. El sistema debe validar si se presentan los siguientes errores:
a. Campo vacío nombre del usuario.
b. Campo vacío apellido del usuario.
c. Campo vacío correo electrónico.
d. Si el correo ingresado no tiene un formato valido.
e. Campo vacío en la confirmación del correo electrónico.
4. El sistema permitirá tener un enlace para redireccionar a la pantalla de login.
5. El sistema permitirá validar la contraseña vs la comparación de manera automática

Tabla 5. Req. funcional - Registro de Usuario

44
MÓDULO DASHBOARD

RQ: 1.1.1 Nombre: Visualización en Prioridad: Alta Fase: 1 Estado:


tiempo real de datos Especificado

Detalles:
 El sistema permitirá visualizar la siguiente información:

- Estadística de Carros
- Disponibles
- Ocupados
- En espera
- Inhabilitados

- Estadística de Motos
- Total, espacios
- Espacios Ocupados
- Espacios Desocupados

- Novedades UCC
- Nombre de UCC
- Texto
- Fecha y Hora

- Novedades Estudiantes
- Nombre del estudiante o usuario
- Texto
- Fecha y Hora

Tabla 6. Req. funcional - Visualización en tiempo real de datos

RQ: 1.1.2 Nombre: Modificar Estadística Prioridad: Media Fase: Estado:


Carro 1 Especificado

Detalles:
 El sistema permite modificar los vehículos en espera ingresando la cantidad.

Tabla 7. Req. funcional - Modificar Estadística Carro

RQ: 1.1.3 Nombre: Modificar Estadística Prioridad: Media Fase: Estado:


Motos 1 Especificado

Detalles:
 El sistema permite modificar los valores para la zona administrativa, zona principal,
zona cafetería y una vez actualizada debe calcular la suma total de la capacidad.

Tabla 8. Req. funcional - Modificar Estadística Motos

45
RQ: 1.1.4 Nombre: Registro de Prioridad: Media Fase: Estado:
Novedades UCC Especificado

Detalles:
 El sistema permite ingresar una novedad reportada por la UCC, la información que se
debe visualizar es la siguiente:

- UCC
- texto ingresado
- fecha y hora (DD/MM/YYYY HH:MM: SS)

Tabla 9. Req. funcional - Registro de Novedades UCC

RQ: 1.1.5 Nombre: Visualización de Prioridad: Media Fase: Estado:


Novedades Estudiantiles Especificado

Detalles:
 El sistema permite visualizar la novedad reportada por los estudiantes, la información
que se debe visualizar es la siguiente:

- Estudiante
- texto ingresado
- fecha y hora (DD/MM/YYYY HH:MM: SS)

Tabla 10. Req. funcional - Visualización de Novedades Estudiantiles

MÓDULO PARQUEADEROS

RQ: 2.1.1 Nombre: Visualización en tiempo Prioridad: Alta Fase: Estado:


real de ingresos y salidas Creación 1 Especificado
de Productos.

Detalles:
 El sistema permitirá mostrar la siguiente información dependiente su estado:

- Vehículo (Ocupado)
- Desocupado (Habilitado)
- Símbolo de prohibido (Bloqueado).

Tabla 11. Req. funcional - Visualización en tiempo real de ingresos y salidas

46
RQ: 2.1.2 Nombre: Asignar espacio Prioridad: Alta Fase: Estado:
1 Especificado

Detalles:
 El sistema permitirá la asignación de un vehículo una vez selecciona el carro, se debe
desplegar un modal pop-up donde se visualiza la siguiente
 e información:

- N° de parqueadero
- Botón Asignar
- Botón Desocupar
- Botón Habilitar
- Botón Inhabilitar

 Si el usuario oprime el botón “Asignar” se debe visualizar el vehículo en pantalla.

Tabla 12. Req. funcional - Asignar espacio

RQ: 2.1.3 Nombre: Desocupar espacio Prioridad: Alta Fase: Estado:


Especificado
Detalles:
 El sistema permitirá desocupar de un vehículo una vez selecciona el carro, se debe desplegar
un modal pop-up donde se visualiza la siguiente información:

- N° de parqueadero
- Botón Asignar
- Botón Desocupar
- Botón Habilitar
- Botón Inhabilitar

 Si el usuario oprime el botón “Desocupar” no se debe visualizar el vehículo en pantalla.

Tabla 13. Req. funcional - Desocupar espacio

RQ: 2.1.4 Nombre: Habilitar espacio Prioridad: Alta Fase: Estado:


Especificado

Detalles:
 El sistema permitirá habilitar el espacio de un vehículo una vez selecciona el carro, se
debe desplegar un modal pop-up donde se visualiza la siguiente información:

- N° de parqueadero
- Botón Asignar
- Botón Desocupar
- Botón Habilitar
- Botón Inhabilitar

 Si el usuario oprime el botón “Habilitar” no se debe visualizar el vehículo en pantalla y


permite asignar un vehículo.

Tabla 14. Req. funcional - Habilitar espacio

47
RQ: 2.1.5 Nombre: Inhabilitar espacio Prioridad: Alta Fase: Estado:
Especificado

Detalles:
 El sistema permitirá inhabilitar un espacio de un vehículo una vez selecciona el carro,
se debe desplegar un modal popup donde se visualiza la siguiente información:

- N° de parqueadero
- Botón Asignar
- Botón Desocupar
- Botón Habilitar
- Botón Inhabilitar

 Si el usuario oprime el botón “Inhabilitar” se debe visualizar un símbolo de bloqueo


sobre el parqueadero.

Tabla 15. Req. funcional - Inhabilitar espacio

RQ: 2.1.6 Nombre: Registro de Ingresos Prioridad: Alta Fase: Estado:


para moto Especificado

Detalles:
 El sistema permitirá ocupar un espacio de una moto, y se visualiza la siguiente
información:

- Total espacio disponible


- Zona administrativa
- Zona principal
- Zona cafetería
- N° de Ocupados
- N° de Desocupados
- Botón Ocupar
- Reset
- Desocupar

 Si el usuario oprime el botón “Ocupar” el sistema actualiza las opciones de Ocupados


y Desocupados calculando de la siguiente manera:

- Ocupado (+ Aumenta)
- Desocupado (- Disminuye)

 Cuando oprima el botón “Ocupar” se debe visualizar el siguiente mensaje “Acceso


concebido”.

- Ocupado (- Disminuye)
- Desocupado (+ Aumenta)

Tabla 16. Req. funcional - Registro de Ingresos para moto

48
RQ: 2.1.7 Nombre: Registro de Salidas Prioridad: Alta Fase: Estado:
para moto Especificado

Detalles:
 El sistema permitirá Desocupar un espacio de una moto, y se visualiza la siguiente
información:

- Total espacio disponible


- Zona administrativa
- Zona principal
- Zona cafetería
- N° de Ocupados
- N° de Desocupados
- Botón Ocupar
- Reset
- Desocupar

 Si el usuario oprime el botón “Desocupar” el sistema debe actualiza las opciones de


Ocupados y Desocupados calculando de la siguiente manera:

- Ocupado (- Disminuye)
- Desocupado (+ Aumenta)

 Cuando oprima el botón “Desocupar” se debe visualizar el siguiente mensaje “Acceso


concebido”.

Tabla 17. Req. funcional - Registro de Salidas para moto

RQ: 2.1.8 Nombre: Reset de ingresos y Prioridad: Alta Fase: Estado:


salidas Especificado

Detalles:
 El sistema permitirá resetear los contadores de Ocupados y Desocupados.

Tabla 18. Req. funcional - Reset de ingresos y salidas

49
MÓDULO ADMINISTRADOR

RQ: 3.1.1 Nombre: Modificación de Prioridad: Alta Fase: Estado:


usuarios. Especificado

Detalles:
 El sistema permitirá modificar por medio del botón “Editar” la información asociada al
cliente, como lo es:

- Nombre
- Apellido
- Correo electrónico

 El sistema permitirá visualizar la información a actualizar por medio de un modal


popup.

Tabla 19. Req. funcional - Modificación de usuarios.

RQ: 3.1.2 Nombre: Eliminación de Prioridad: Alta Fase: Estado:


Usuarios Especificado

Detalles:
 El sistema permitirá eliminar por medio del botón “Eliminar” la información asociada al
cliente, como lo es:

- Nombre
- Apellido
- Correo electrónico

 El sistema permitirá visualizar la información a eliminar por medio de un modal popup.

Tabla 20. Req. funcional - Eliminación de Usuarios

RQ: 3.1.3 Nombre: Consulta de Usuarios Prioridad: Alta Fase: Estado:


Especificado

Detalles:
 El sistema permitirá seleccionar por medio de un filtro (lista desplegable) la siguiente
información:

- Nombre
- Apellido
- Email

 Una vez seleccionado el filtro que se desea consultar e ingresando el texto


comparativo, debe traer la información asociada por medio del botón de búsqueda.

Tabla 21. Req. funcional - Consulta de Usuarios

50
RQ: 3.1.4 Nombre: Visualización de Prioridad: Alta Fase: Estado:
Usuarios Especificado

Detalles:
 El sistema permitirá visualizar la siguiente información por el usuario:

- N° consecutivo
- Nombre
- Apellido
- Email
- Botón “Editar”
- Botón “Eliminar”

Tabla 22. Req. funcional - Visualización de Usuarios

RQ: 3.1.5 Nombre: Modificación de dígitos Prioridad: Alta Fase: Estado:


de pico y placa Especificado

Detalles:
 El sistema permitirá modificar los dígitos para la visualización del pico y placa, para
este cambio se deberán tener 2 formas de hacerlo.

Opción 1:
 El sistema permitirá la modificación de los dígitos desde la consulta principal, por
medio del botón “Editar”, el cual traerá la siguiente información:

- Día de la Semana
- Dígito 1
- Dígito 2

Opción 2:
 El sistema permitirá la modificación de los dígitos, por medio del botón “Cambio de
Dígito”, el cual traerá la siguiente información:

- Lunes
- Martes
- Miércoles
- Jueves
- Viernes

Nota: Las modificaciones se deberán realizar por medio del botón “Editar”.

Tabla 23. Req. funcional - Modificación de dígitos de pico y placa

51
RQ: 3.1.6 Nombre: Generación Prioridad: Alta Fase: Estado:
automática de pico y placa. Especificado

Detalles:
 El sistema permitirá la generación automática del consecutivo de pico y placa
dependiendo el día de la semana.

Tabla 24. Req. funcional - Generación automática de pico y placa.

RQ: 3.1.7 Nombre: Visualización la Prioridad: Alta Fase: Estado:


información de los pico y placa Especificado

Detalles:
 El sistema permitirá visualizar la siguiente información de los dígitos de pico y placa:

- N° de consecutivo
- Día de la Semana
- Dígito 1
- Dígito 2
- Botón “Editar”
- Botón “Cambio de Dígito”

Tabla 25. Req. funcional - Visualización la información de los pico y placa

RQ: 3.1.8 Nombre: Creación de nuevos Prioridad: Alta Fase: Estado:


parqueaderos alternos Especificado

Detalles:
 El sistema permitirá registrar nuevos parqueaderos alternos; esto será realizado
cuando se oprima el botón “Agregar Nuevo Parqueadero”, donde se solicitará la
siguiente información:

- Titulo
- Coordenadas X
- Coordenadas Y
- Dirección
- Horario
- Novedades
- Precio COP
- Disponibilidad
- Ubicación
- Link de acceso a google Maps
- Contraseña de acceso aplicativo móvil

 La información se debe guardar por medio de un botón “Guardar”.

Tabla 26. Req. funcional - Creación de nuevos parqueaderos alternos

52
RQ: 3.1.9 Nombre: Visualización la Prioridad: Alta Fase: Estado:
información de los Especificado
parqueaderos alternos.

Detalles:
 El sistema permitirá visualizar la siguiente información de manera independiente por
parqueadero creado:

- Titulo
- Coordenadas ‘X’ y ‘Y’
- Dirección
- Precio
- Horarios
- Novedades
- Disponibilidad

Tabla 27. Req. funcional - Visualización la información de los parqueaderos alternos.

RQ: 3.1.10 Nombre: Cambios de Jornada Prioridad: Alta Fase: Estado:


Diurno y Nocturno. Especificado

Detalles:
 El sistema permitirá parametrizar las jornadas para la diurna y nocturna.

- Si la jornada diurna se encuentra activa, se inhabilitará la jornada nocturna


- Si la jornada nocturna se encuentra activa, se inhabilitará la jornada diurna
- Si la jornada diurna y nocturna se encuentra activa, el sistema trabajara de
manera normal controlando automáticamente horas y jornadas.
- Si la jornada diurna y nocturna se encuentra inactivas, el sistema trabajara de
manera normal controlando automáticamente horas y jornadas.

Tabla 28. Req. funcional - Cambios de Jornada Diurno y Nocturno.

53
MÓDULO ESTADISTICAS

RQ: 4.1.1 Nombre: Generar estadísticas Prioridad: Alta Fase: Estado:


por año vs meses para motos Especificado

Detalles:
 El sistema permitirá generar la gráfica por medio de un filtro, dependiendo el año
seleccionado se graficarán los ingresos y salida de vehículos durante el año. (enero a
diciembre).

 La grafica se visualizará de forma barras.

Tabla 29. Req. funcional - Generar estadísticas por año vs meses para motos

RQ: 4.1.2 Nombre: Generar estadísticas Prioridad: Alta Fase: Estado:


por meses vs semana para Especificado
motos

Detalles:
 El sistema permitirá generar la gráfica por medio de un filtro, dependiendo el mes
seleccionado se graficarán los ingresos y salida de vehículos durante la semana.
(lunes a viernes).

 La grafica se visualizará de forma barras.

Tabla 30. Req. funcional - Generar estadísticas por meses vs semana para motos

RQ: 4.1.3 Nombre: Generar estadísticas Prioridad: Alta Fase: Estado:


por año vs meses para carros Especificado
(Lineal)

Detalles:
 El sistema permitirá generar la gráfica por medio de un filtro, dependiendo el mes
seleccionado se graficarán los ingresos y salida de vehículos durante la semana.
(lunes a viernes).

 La grafica se visualizará de forma lineal.

Tabla 31. Req. funcional - Generar estadísticas por año vs meses para carros (Lineal)

54
RQ: 4.1.4 Nombre: Generar estadísticas Prioridad: Alta Fase: Estado:
por año vs meses para carros Especificado

Detalles:
 El sistema permitirá generar la gráfica por medio de un filtro, dependiendo el año
seleccionado se graficarán los ingresos, salida, inhabilitados y habilitados de
vehículos durante el año. (enero a diciembre).

 La grafica se visualizará de forma barras.

Tabla 32. Req. funcional - Generar estadísticas por año vs meses para carros

RQ: 4.1.5 Nombre: Generar estadísticas Prioridad: Alta Fase: Estado:


por meses vs semana para Especificado
carros

Detalles:
 El sistema permitirá generar la gráfica por medio de un filtro, dependiendo el mes
seleccionado se graficarán los ingresos y salida de vehículos durante la semana.
(lunes a viernes).

 La grafica se visualizará de forma barras.

Tabla 33. Req. funcional - Generar estadísticas por meses vs semana para carros

RQ: 4.1.6 Nombre: Generar estadísticas Prioridad: Alta Fase: Estado:


por cantidad de novedades Especificado
reportadas

Detalles:
 El sistema permitirá generar la gráfica por medio de un filtro, dependiendo el año
seleccionado se graficará la cantidad de novedades reportadas durante el año (enero
a diciembre).

 La grafica se visualizará de forma barras.

Tabla 34. Req. funcional - Generar estadísticas por cantidad de novedades reportadas

55
RQ: 4.1.7 Nombre: Crear usuario Prioridad: Alta Fase: Estado:
Especificado

Detalles:
 El sistema permitirá crear un usuario para poder visualizar la información del
parqueadero en tiempo real, debe permitir registrarse con el correo y la contraseña y
nombre completo

 El sistema deberá permitir que el usuario pueda restablecer contraseña.

Tabla 35. Req. funcional - Crear usuario

RQ: 4.1.7 Nombre: Reportar novedades Prioridad: Alta Fase: Estado:


Especificado

Detalles:
 El sistema deberá permitir que los usuarios con Login activo puedan realizar reportes
y los demás usuarios puedan leer esos reportes.

 El sistema deberá tener un cuadro tipo chat para realizar estos reportes.

Tabla 36. Req. funcional - Reportar novedades

REQUISITO DE RESTRICCION

N° de
Descripción de la Restricción
Restricción
El sistema permitirá ejecutarse en los sistemas operativos:
- Windows 7
RES-01 - Windows 8
- Windows 10
- Linux
El sistema solo permitirá el ingreso por medio de login por usuario
RES-02
y contraseña.

El sistema implementará en lenguaje JavaScript y el gestor de


RES-03 base de datos no relacional “Firebase”.

RES-04 El sistema requiere de internet para su operación y desempeño.

Tabla 37. Requerimiento de Restricción

56
Modelamiento de casos de uso

Figura 3. Caso de uso # 1 - Administrador web (general)

Fuente: Propia de Autores

En este modelo de casos de uso se resumen los accesos y roles que tiene un
administrador para la plataforma web donde tendrá el uso total del aplicativo para
su operación, administración y manejo de estadísticas. Esto garantizando que todos
los requerimientos de usuario tengan cumplimento a nivel funcional.

También se construyen 2 casos de uso un poco más específicos donde se muestren


los procesos más cruciales del software y que tendrá más interacción en usuario
final. Estos casos de uso son específicos y detallan los procesos de gestión del
parqueadero y gestión de parqueaderos alternos.

57
Figura 4. Caso de uso # 2 - Administrador web (especifico)

Fuente: Propia de Autores

Figura 5. Caso de uso # 3 - Administrador web (especifico)

Fuente: Propia de Autores

En estos diagramas se identifican los actores del sistema con su respectivo rol
dentro del sistema y sus acciones, donde se han definido tres roles que se pueden
distinguir por los permisos asignados para realizar dicha acción.

58
Figura 6. Caso de uso # 4 – Estudiante (General)

Fuente: Propia de Autores

Figura 7. Caso de uso # 5 – Alternos (Especifico)

Fuente: Propia de Autores

59
6.3 FASE DE CONSTRUCCIÓN

Desarrollo Web

Durante la etapa de construcción del ambiente web se implementaron algunas


herramientas de desarrollo de software, teniendo encuenta que los conocimientos
principales se enfocaron en el dominio de lenguajes de etiqueta como HTML
(Hypertext Markup Language) y CSS (Cascading Style Sheets). Otro de los
lenguajes más utilizados para el desarrollo de esta página web es JavaScript, el
cual se utilizó para lograr interactuar entre los componentes HTML del lado del
servidor y la base de datos no SQL como fue Firebase.

Como logramos describir con anterioridad Firebase es la base de datos en tiempo


real que nos permite obtener información rápida y segura, basada en una estructura
JSON (JavaScript Object Notation) por la cual mediante métodos de escucha
continuos que permite envía y recibe información de forma inmediata.

Iniciamos el desarrollo utilizando una plantilla de tipo free como AdminLTE, esta
plantilla utiliza una serie de funcionalidades por parte del front-end que logran
agilizar y otorga un excelente diseño al usuario final; con las habilidades adquiridas
y una vez denotamos una fase de inicio y elaboración iniciamos con la solución de
cada requerimiento de usuario, los cuales fueron detallados uno a uno y planteados
en esta etapa. Con la ayuda de las herramientas de Firebase configuramos el
ambiente para permitir el acceso de usuarios por medio de JavaScript logramos
garantizar las condiciones de registro y login de usuarios al aplicativo esto con el fin
de permitir la seguridad al sistema por parte de otros usuarios.

Para lograr el objetivo de la fase de desarrollo utilizamos la metodología


anteriormente planteada y siguiente un cronograma para lograrlo se establecieron
fechas y estimados del proyecto. Para el ambiente para el desarrollo utilizado el IDE
ya por excelencia de Microsoft como Visual Studio Code, el cual garantiza confianza
para el manejo de diferentes sintaxis y su cantidad de plugin que ayudan a facilitar
horas de trabajo.

Diseño de base de datos


La base de datos del proyecto que finalmente de escogió fue “Firebase” esta
estructura No SQL nos garantiza una excelente operabilidad con todos los sistemas
e infraestructuras involucrados desde la web, mobile y Arduino, y donde la
escalabilidad no sea un problema; es por esta razón que nuestras 3 plataformas a
desarrollar centralizan toda su información en Firebase de google.

60
Figura 8. Base de datos firebase de google desde consola.

Fuente: https://firebase.google.com/?hl=es-419

Luego del desarrollo de mockups que nos ayudaron a dimensionar el diseño de la


interface, se opta por la elaboración de un diagrama para estructurar un menú
práctico que ayude a nuestro cliente a tener usabilidad basado en los requerimientos
de usuario.

61
Figura 9. Diagrama de navegación.

Fuente: Propia de Autores

Visualización de Interfaces Plataforma Web

En esta pantalla se permite el login de los usuarios que administraran el


parqueadero de la universidad cooperativa. Para el ingreso a la aplicación se
requiere de un correo electrónico y password.

62
Figura 10. Pantalla Login

Fuente: Propia de Autores

En esta pantalla se permite el registro de los usuarios para el acceso a la plataforma


web.

Figura 11. Pantalla Registro

Fuente: Propia de Autores

En esta pantalla se permite visualizar el dashboard de las estadísticas en tiempo


real del registro de entrada y salida de los vehículos. También se permite el registro
de las novedades por parte de la universidad cooperativa.

63
Figura 12. Pantalla Dashboard

Fuente: Propia de Autores

En esta pantalla se permite visualizar y designar los espacios de parqueo disponible


para los vehículos (carros) en la universidad cooperativa de Colombia.

Figura 13. Pantalla Parqueadero UCC (carros)

Fuente: Propia de Autores

En esta pantalla se permite visualizar, y gestionar los ingresos de entrada y salida


para los vehículos (motos) en la universidad cooperativa de Colombia.

64
Figura 14. Pantalla Parqueadero UCC (motos)

Fuente: Propia de Autores

En esta pantalla se permite modificar y eliminar los usuarios creados y con acceso
a la aplicación.

Figura 15. Pantalla Mantenimiento de Usuarios

Fuente: Propia de Autores

En esta pantalla se permite Administrar y coordinar la generación de pico y placa


que utilizara la universidad, esta es parametrizable.

65
Figura 16. Pantalla Administración de pico y placa.

Fuente: Propia de Autores

En esta pantalla se permite la creación de nuevos parqueaderos alternos


disponibles y con convenido en la Universidad Cooperativa de Colombia sede sur
Cali.

Figura 17. Pantalla Administración de parqueaderos Alternos

Fuente: Propia de Autores

66
En esta pantalla se permite administrar el cambio de jornada para la aplicación, esto
dependiendo de las necesidades de la universidad.

Figura 18. Pantalla Administración cambio de jornada.

Fuente: Propia de Autores

Para la opción de estadísticas se visualizará la gráfica de barras según el


comportamiento de ingresos y salidas que se presentaron en la universidad por
parte del estudiantado.

Figura 19. Pantalla Estadísticas Ingreso y Salida

Fuente: Propia de Autores

67
Desarrollo Mobile y Tablets

Una de las tecnologías que se decidió utilizar para desarrollar la aplicación móvil ya
que para este proyecto se debe tener en cuenta que la aplicación debe permitir
utilizarse en Android y IOS, ya sean celulares o tablets, se escogió la herramienta
Unity. Realizando el desarrollo en este software permitió un despliegue
multiplataforma, también cabe resaltar que esta herramienta se caracteriza por su
potencia en entornos 2D y 3D, además tiene su propia assets store para poder
utilizar material totalmente gratuito, cuenta con una interfaz muy sencilla que
permitió realizar la ubicación de los assets y poder diseñar el menú y las pantallas.
La creación de la interfaz es fácil de usar y esto generará una gran experiencia de
usuario a los probadores del producto. En este software tiene como base para la
programación el lenguaje C# que permitió implementar la base de datos Firebase,
claramente se debe implementar todos los plugins adecuados.

Firebase tiene métodos en diferentes lenguajes para la cargar y descarga de datos


almacenados, se realizó la integración de Unity y Firebase con el lenguaje C# con
los métodos que brinda la base de datos la API es muy intuitiva y el SDK es fácil de
instalar, sin embargo se debieron ajustar a los requerimientos de la aplicación,
debido a que la rapidez es una de sus características nos permitirá reducir el tiempo
en desarrollo, además nos permitió desarrollar diferentes interfaces en lenguajes
diferentes y plataformas diferentes pero todas unidas a una misma base de datos.

Unity tiene una increíble adaptabilidad en cuanto al tiempo de respuesta en los


dispositivos móviles y Firebase, esto permitió que la autenticación demore
milisegundo en promedio, ya que estas herramientas dependen mucho del flujo del
internet para su buen funcionamiento. La mitad del diseño implementado en la
aplicación fueron sacados de recursos gratuitos y la otra mitad fue desarrollada por
el grupo.

Visualización de Interfaces Plataforma Móviles y Tablets.

A continuación, se visualizan las pantallas construidas durante esta etapa de


construcción para las aplicaciones móviles como (celulares y Tablet).

68
Plataforma Mobile (Estudiantes y Administrador Mobile)

Pantalla Login
Permitirá usuario escribir el usuario que es el
correo electrónico y la contraseña, tiene la opción
recuperar contraseña y registrar usuario en caso
de que nunca haya ingresado a la aplicación,
también tiene dos formas de registro rápidas,
Facebook y Google.

Fuente: propia de Autores

Pantalla Recuperación contraseña


Esta pantalla permitirá restablecer una contraseña
nueva al usuario que haya olvidado la anterior, se
realiza por medio de un mensaje que se envía por
correo electrónico.

Fuente: propia de Autores

69
Pantalla Registro
En esta pantalla se podrá registrar un nuevo
usuario, deberá colocar los datos básicos que se
muestran ya que esto permitirá la identificación
y autenticación en la App.

Fuente: propia de Autores

Pantalla Dashboard
Permitirá al usuario ver superficialmente el
estado del parqueadero de carros y motos, el
dato de espacios de carros disponibles,
ocupados, inhabilitados y carros en espera, en
motos podrá visualizar total de espacios
desocupados y ocupados.

Fuente: propia de Autores

70
Menú
En el lado derecho podemos encontrar un menú
con los módulos que tiene la aplicación, en los que
podrá navegar y consultar el usuario estudiante.

Fuente: propia de Autores

Pantalla Motos
El usuario podrá visualizar a detalle el estado del
parqueo de motos, porcentajes de disponibilidad y
también los espacios destinados para las motos.

Fuente: propia de Autores

71
Pantalla Novedades
Permitirá al usuario estar al día con noticias que
publiquen por parte de la Universidad
Cooperativa sede Sur y permitirá a los
estudiantes también comunicarse reportando su
propia novedad.

Fuente: propia de Autores

Parqueaderos alternos
Permitirá al usuario consultar los parqueaderos
que estén registrados con la Universidad para
poder llevar su vehículo llegado el caso que el
parqueadero de carros o motos esté lleno, se
puede visualizar la dirección, nombre del
parqueadero, novedades, precios y horario.

Fuente: propia de Autores

72
Parqueaderos alternos
Esta funcionalidad permitirá ubicar de manera
fácil el parqueadero por medio de Google
maps.

Fuente: propia de Autores

Pantalla Parqueadero Carros


En esta pantalla el usuario podrá visualizar el estado del parqueadero a detalle en
tiempo real. Fuente: propia de Autores

73
Desarrollo Prototipo Arduino
Principalmente cabe resaltar que el desarrollo del prototipo Arduino tubo como base
la investigación, Identificando que este desarrollo involucra conocimientos a nivel
de software y hardware nos centramos en entender que Arduino es una plataforma
de creación electrónica de código abierto la cual interactuar con diferentes módulos
que facilitan la toma de datos y la interacción con diferentes plataformas, para este
caso la base de datos en tiempo real “firebase”.

Lo que se quiere lograr desarrollar es un prototipo capaz de detectar un objeto a


distancia definida en este caso sería un vehículo, mediante un sensor ultrasónico,
el cual envié una señal por medio de un módulo wifi a la base de datos firebase y
este logre actualizar el sistema de información en tiempo real.

Como primera fase de este desarrollo debemos tener en cuenta una serie de
cálculos para lograr obtener la distancia como se refleja en la siguiente imagen.

Figura 20. Cálculos de medición de sensor ultrasónico

Fuente: https://www.luisllamas.es/medir-distancia-con-arduino-y-sensor-de-ultrasonidos-hc-sr04/

Basados en un esquema de montaje procedemos a instalar cada uno de los


componentes en la protoboard, identificando las posiciones en el cual conectaremos
cada dispositivo o cable conductor. Es muy importante saber que nosotros
necesitamos la ayuda de un componente adicional independiente del Arduino como
el módulo wifi, el cual debemos configurar desde el IDE de Arduino instalando una
serie de librerías que permitirán interactuar y conectarnos a internet.

74
Para la construcción de este prototipo se contaron con los siguientes componentes:

 Arduino Uno
 Módulo Wifi ESP8266 NodeMCU 1.0
 Jumper de conexión entre los pines de la placa
 Sensor Ultrasónico
 Protoboard

El módulo wifi que utilizaremos es el ESP8266 NodeMCU 1.0, este módulo tiene la
gran facilidad que permite su programación y utiliza una alimentación 3.3 V con
regulador de tensión. Su utilidad en el proyecto es conectarse a firebase y mediante
una librería actualizar el estado del vehículo en la base de datos, la cual reflejara en
cambio en todos los dispositivos conectados a ella.

Figura 21. Diseño de prototipo arduino con sensor ultrasónico y módulo wifi.

Fuente: Diseñada por Autores

Nuestro Arduino UNO tendrá como misión alimentar los dispositivos electrónicos y
enviar la señal del sensor ultrasónico al módulo wifi que luego se enviará vía internet
a firebase como anteriormente explicamos. La alimentación del sensor debe ser
continua de al menos 5v para garantiza datos reales de comparación esto se detectó
durante las pruebas de desarrollo realizadas.

Finalmente, el código que implementaremos y que se descargará al módulo wifi será


el siguiente el cual se encuentra documentado y resumen la actualización de datos
en la base de datos firebase cada vez que este detecta una distancia inferior o
superior en el nodo “parqueaderos/parqueadero_1/disponibilidad”. Cabe resaltar
que nuestro principal objetivo en la realización del prototipo es evaluarlo en una

75
posición del estacionamiento en el parqueadero para este caso utilizamos la
posición número 1, donde se estarán presentado las respectivas actualizaciones.

Figura 22. Código arduino

Fuente: Diseñado por Autores

Con base en lo anterior se estructura un diagrama de estado, el cual refleja como la


aplicación identificara cuando los parqueaderos se encontrarán Asignados,
Desocupados, Habilitados o Inhabilitados. Esto nos ayuda debido a que 3
aplicaciones tendrán interacción directa con la base de datos y teniendo definido un
solo modelo garantizamos la trazabilidad de estados.

Figura 23. Diagrama de estados

Fuente: propia de Autores

76
Desarrollo Mobile (Parqueaderos Alternos)
En el caso de los parqueaderos alternos a la universidad, se decidió también utilizar
una herramienta que permitiera un desarrollo consistente y que se adapte en
sistemas operativos móviles como iOS y Android, esta herramienta es conocida
como Thunkable, la cual trabaja con un sistema de bloques que permite desarrollos
mucho más rápidos y dinámicos, permitiendo también conexiones a bases de datos
locales y en la nube. En este caso se decide utilizar firebase como base de datos
para centralizar la información que se muestra en la aplicación web de
administración, la aplicación móvil para los estudiantes y la aplicación para los
parqueaderos alternos.

Además de permitir la utilización de métodos preestablecidos para la manipulación


de información en tiempo real, Firebase Realtime Database también se funciona
con métodos para Iniciar sesión.

La política de creación de una cuenta de parqueadero alterno en la base datos viene


dada de la siguiente manera: todo parqueadero que quiera pertenecer a la red de
alternos deberá presentar su documentación verificar que tiene la normatividad
suficiente. así mismo desde la plataforma web será creado en el sistema con toda
la información suministrada por el interesado, de este modo se hará entrega de un
usuario y contraseña para poder empezar a utilizar la aplicación de los
parqueaderos aledaños.

Definición de la Herramientas Utilizadas

Thunkable Cross Platform X: Thunkable es la forma más fácil de crear una


aplicación ya que en lugar de escribir código, simplemente se pueden agregar los
componentes necesarios y conectarlos. En lugar de elegir si se quiere lanzar para
iOS o Android, los proyectos de aplicaciones Thunkable funcionan en dispositivos
iOS y Android.Una de las características más interesantes es la capacidad de
previsualizar las aplicaciones a medida que son construidas.

77
Mobile (Parqueaderos Alternos)

Pantalla Login
La pantalla incluirá un pequeño formulario donde
se requerirá el nombre del usuario y la clave
asociada al mismo. Utilizando credenciales
provistas se iniciará el proceso mediante el cual se
controla el acceso individual al sistema de
parqueaderos alternos. También permitirá al
usuario de manera sencilla recuperar su
contraseña, en caso de olvido o pérdida.

Fuente: propia de Autores

Pantalla Inicio
Esta pantalla es la que se muestra después del
login y permite al administrador, conocer las
coordenadas del parqueadero en Google Maps,
junto con el nombre y la última actualización hecha.

Fuente: propia de Autores

78
Pantalla de Admin (Administración)
Esta pantalla permite la actualización de los
parámetros establecidos, como lo son: precio,
disponibilidad de espacios y las novedades.

Fuente: propia de Autores

Definición de roles

Administrador: Este usuario tiene asignado permisos totales sobre la aplicación,


podrá acceder a todas las secciones, además puede gestionar usuarios, cambiar el
pico placa, quitar la automatización de procesos como cambios de jornada, creación
de parqueaderos alternos, ingreso manual de motos y carros, generación de
reportes y novedades.

Estudiantes: Este usuario tiene permisos para poder visualizar la información, pero
no podrá realizar alguna edición, puede visualizar los estados del parqueadero,
consultar los parqueaderos alternos, puede consultar el pico placa, puede visualizar
las novedades de la Universidad y de los mismos estudiantes, puede realizar una
novedad.

Alternos: Son los usuarios encargados de mantener al día la información de los


parqueaderos alternos ya registrados en la aplicación por el usuario administrados,
este rol puede realizar edición sobre el costo del parqueadero, disponibilidad, puede
generar un anunció.

79
Pruebas de Calidad de Software
Se puede inferir que la calidad es algo abstracto y cualitativo, no aplicable al
software, pero al ser un arte, podemos decir que a un software se le puede decir
que es bueno, malo, lento, rapido u ´ optimo. Para decir que un software es de
calidad tenemos que tener ´ en cuenta que influyen varios factores, por ejemplo, los
procesos y buenas practicas, las herramientas, las personas y las medidas y
metricas asociadas.

Como parte de la construcción de cada una de las aplicaciones mencionadas es de


mucha importancia evaluar la calidad de software, es por esto que se realizan
pruebas que garanticen que todos los requerimientos de usuario y funcionales
cumplan las necesidades que los usuarios han solicitado. Para el proyecto se
implementarón la pruebas de caja negra, las cuales son técnicas de pruebas de
software en la cual la funcionalidad se verifica sin tomar en cuenta la estructura
interna de código, detalles de implementación o escenarios de ejecución internos
en el software. Para esto se realizarón 10 casos de pruebas generales y detallados
que evaluan el cumplimiento de las principales funcionalidades del software,
apoyado de evidencias.

80
Área Funcional / Sub Funcionalidad / Requerimientos de Ambiente de Última Fecha de
Id Caso de Prueba Descripción Fecha Datos / Acciones de Entrada Resultado Esperado Resultado Obtenido Estado Observaciones
proceso Característica Pruebas Estado

Verifique que el sistema permita la asignación de un vehículo una


vez selecciona el carro, se debe desplegar un modal pop-up donde
se visualiza la siguiente información:

- N° de parqueadero Cuando se presiona sobre el


El vehiculo debe aparece
Administracion de Espacios en parqueadero - Botón Asignar Asignacion de vehiculo este debe traer el El vehiculo aparece ubicado en
1 1-nov-18 Modulo Parqueadero ubicado en el sitio selecciado Se debe tener acceso a Internet 100% 1-nov-18 Cumple
(Asignacion de Espacio Carro) - Botón Desocupar Espacio de parqueo numero de parqueadero que el sitio selecciado por el usuario
por el usuario
- Botón Habilitar sera actualizado
- Botón Inhabilitar

• Si el usuario oprime el botón “Asignar” se debe visualizar el


vehículo en pantalla.

Verifique que el sistema permita desocupar de un vehículo una vez


selecciona el carro, se debe desplegar un modal pop-up donde se
visualiza la siguiente información:

- N° de parqueadero Cuando se presiona sobre el


Administracion de Espacios en parqueadero - Botón Asignar Desocupar Espacio de vehiculo este debe traer el El vehiculo debe desaparece en El vehiculo desaparece en el
2 1-nov-18 Modulo Parqueadero Se debe tener acceso a Internet 100% 1-nov-18 Cumple
(Desocupar Espacio Carros) - Botón Desocupar parqueo numero de parqueadero que el sitio selecciado por el usuario sitio selecciado por el usuario
- Botón Habilitar sera actualizado
- Botón Inhabilitar

• Si el usuario oprime el botón “Desocupar” no se debe visualizar el


vehículo en pantalla.

El sistema permite modificar los El sistema permite modificar los


valores de las zonas valores de las zonas
administrativas, principal y administrativas, principal y
Cuando se presiona el boton
cafeteria. cafeteria.
Verifique que el sistema permita modificar los valores para la zona Visualizacion de modificar en la capacidad
3 Dashboard (Estadisticas Motos) administrativa, zona principal, zona cafetería y una vez actualizada 1-nov-18 Dashboard informacion en total, se debe cargar un popup Se debe tener acceso a Internet 100% 1-nov-18 Cumple
Una vez editado se actualiza la Una vez editado se actualiza la
debe calcular la suma total de la capacidad. tiempo real con la informacion actual de
base de datos "firebase" y se base de datos "firebase" y se
las zonas
calcula demanera automatica la calcula demanera automatica la
cantidad total de espacios cantidad total de espacios
disponibles. disponibles.

Cuando se presiona el boton


Se realiza el cambio de manera Se realiza el cambio de manera
Generar secuencia de cambio de digito, se deben
Verifique que el sistema permita la generación automática del secuancia en cada uno de los secuancia en cada uno de los
4 Administracion (Pico y Placa) 1-nov-18 Administracion automatica de dias cargar los valores de los Se debe tener acceso a Internet 100% 1-nov-18 Cumple
consecutivo de pico y placa dependiendo el día de la semana. dias de la semana, para cada dias de la semana, para cada
de la semana digitos según dia de la
digito. digito.
semana.

Cuando se presiona el boton


Verifique las siguiente condiciones:
ocupar, el contador aumenta
para Ocupados. El contador aumenta para
• Si el usuario oprime el botón “Ocupar” el sistema actualiza las
Ocupados.
opciones de Ocupados y Desocupados calculando de la siguiente
- Ocupado (+ Aumenta)
manera:
- Desocupado (- Disminuye) - Ocupado (+ Aumenta)
Cambios en el - Desocupado (- Disminuye)
Administracion de Espacios en parqueadero - Ocupado (+ Aumenta) Aumento de contadores y
5 1-nov-18 Modulo Parqueadero contador de la Se debe tener acceso a Internet 100% 1-nov-18 Cumple
(Ingresos en Motos ) - Desocupado (- Disminuye) actualizacion de grafica
capacidad total. Cuando se presiona el boton El contador disminuye para
desocupar, el contador Desocupados.
• Cuando oprima el botón “Ocupar” se debe visualizar el siguiente
disminuye para Desocupados.
mensaje “Acceso concebido”.
- Ocupado (- Disminuye)
- Desocupado (+ Aumenta)
- Ocupado (- Disminuye)
- Ocupado (- Disminuye)
- Desocupado (+ Aumenta)
- Desocupado (+ Aumenta)

81
Área Funcional / Sub Funcionalidad / Requerimientos de Ambiente de Última Fecha de
Id Caso de Prueba Descripción Fecha Datos / Acciones de Entrada Resultado Esperado Resultado Obtenido Estado Observaciones
proceso Característica Pruebas Estado

Los datos se permite ingresar Los datos se ingresan


correctamente mediante el correctamente mediante el
Ingreso de datos:
aplicativo movil y se visualiza en aplicativo movil y se visualiza
el aplicativo web donde se en el aplicativo web donde se
Registre la informacion de forma correcta y oprima el boton Acceso y - Correo
mostrara la siguiente mostrara la siguiente
6 Registro de usuarios (Aplicación Movil) registrar, y verifique que este usuario queda guardado en la 1-nov-18 Registro de Usuarios Visualizacion de - Nombre Se debe tener acceso a Internet 100% 1-nov-18 Cumple
informacion: informacion:
aplicación web. usaurios. - Apellido
- Contraseña
- Nombre - Nombre
- Confirmar Contraseña
- Apellido - Apellido
- Correo - Correo

Los cambios realizados en la Los cambios realizados en la


Verifique que los cambios realizados en la aplicación web para Visualizacion de asignacion de vehiculos en asignacion de vehiculos en
7 Dashboard (Aplicativo Movil) asignar o desocupar se actualizan de manera automatica en el 1-nov-18 Dashboard informacion en No aplica aplicativo web se reflejan en Se debe tener acceso a Internet aplicativo web se reflejan en 100% 1-nov-18 Cumple
dashboard de la aplicación movil. tiempo real aplicativo movil recalculando aplicativo movil recalculando
los valores. los valores.

Ingreso de datos:
Verifique que el sistema permite ingresar el correo electrónico y La aplicación movil se logea La aplicación movil se logea
8 Login de usuarios (Aplicación Movil) contraseña, En caso de ser correcto el sistema permite el acceso al 1-nov-18 Login de Usuarios Acceso usaurios. correctamente con un email y Se debe tener acceso a Internet correctamente con un email y 100% 1-nov-18 Cumple
- Correo
aplicativo movil. contraseña. contraseña.
- Contraseña

Ingreso de datos:
Verifique que el sistema permite ingresar el correo electrónico y La aplicación movil se logea La aplicación movil se logea
Login de usuarios (Aplicación Movil) Login de Usuarios Acceso usaurios.
9 contraseña, En caso de ser correcto el sistema permite el acceso al 1-nov-18 correctamente con un email y Se debe tener acceso a Internet correctamente con un email y 100% 1-nov-18 Cumple
Parqueaderos Alternos Parqueaderos Alternos - Correo
aplicativo movil. contraseña. contraseña.
- Contraseña

Verifique que ell sistema permite generar la gráfica por medio de


un filtro, dependiendo el año seleccionado se graficarán los Visualizacion de El sistema muestra las graficas El sistema muestra las graficas
Estadisticas (Parqueadero Motos) Grafica Parqueadero de
10 ingresos y salida de vehículos durante el año. (Enero a Diciembre). 1-nov-18 grafica de Ingresos y Selección de Filtro (Año) por cada mes del año para los Se debe tener acceso a Internet por cada mes del año para los 100% 1-nov-18 Cumple
Años x Meses Motos
Salida ingresos y salidas. ingresos y salidas.
• La grafica se visualizará de forma barras.

Tabla 38. Casos de pruebas para la evaluación de calidad de software.

82
6.4 FASE DE TRANSICIÓN

Durante la fase de desarrollo y construcción se realizaron pruebas en una algunos


procesos críticos para la aplicación, uno de esos puntos es la conexión a internet
por parte del prototipo con la aplicación web, donde se garantizó que la señal
enviada modificara correctamente el nodo de base de datos y el cambio se reflejara
correctamente en los ambientes web y mobile. Se realizaron de igual forma cambios
de manera manual para el registro y salida de vehículos los cuales ayudaron en el
control de espacios y la información en tiempo real, permitiendo a los usuarios
anticiparse a los hechos presentados en la universidad en disponibilidad de
parqueadero; para algunos usuarios los convenios son fundamentales con
parqueaderos alternos ayudando a identificar ocasiones eventuales que puedan
generar retrasos en el ingreso a las instalaciones de la universidad.

Pero también con un grupo de evaluadores externos, logramos identificar una serie
de mejoras propuestas en las cuales tuvimos acciones correctivas. Estos casos
fueron nuevamente probados por los evaluadores hasta tener un visto bueno.
Logramos comprender que el punto de vista de otras personas es muy importantes
y logra una crítica constructiva durante el proyecto, mejorando toda posibilidad de
error.

Como conclusión de las pruebas, se puede constatar que se obtuvo un producto


robusto, que ha ido mejorando en todas sus fases de desarrollo y se ha corregido
los errores que se han presentado, que por medio de esta nace una idea innovadora
que brinda información en tiempo real y permite una mejor administración del
parqueadero. En las pruebas realizadas se evidenció la buena elección de tener
firebase como base de datos, también se realizaron las pruebas integrando los
prototipos para carros y motos en Arduino que dieron una excelente respuesta a
este proyecto, generando automatización en los procesos, al final se obtuvo una
buena respuesta por los usuarios ya que las aplicaciones y los prototipos brindaban
una respuesta inmediata.

Finalmente dando esta actividad de transición como necesaria y complementaria en


la etapa de finalización de pruebas se obtiene resultados satisfactorios para la fase
de implementación.

83
6.5 FASE DE IMPLEMENTACIÓN

Durante la fase de implementación se tuvo en cuenta el seguimiento al plan de


implementación propuesto, con el fin de dividir nuestra serie de actividades logrando
asi priorizar la etapa de (Etapa de Reuniones y Conclusiones con los Actores
Involucrados, Etapa Tecnica, Etapa de Seguimiento y finalmente la etapa de
finalización y conclusiones).

Como fase de reuniones y conclusiones iniciamos con una serie citaciones con los
actores donde principalmente definimos la fase de implementación del proyecto en
a oficina del decano, con el fin de alinear los avances de la matriz RACI solicitada
para ver roles y responsabilidades. De esta reunión tuvimos los siguientes avances:

 Avances Matriz RACI

Se Inicio la reunión mencionándole al decano de la facultad Víctor Mosquera, que


se había enviado vía email la matriz RACI Solicitada y que si era posible revisarla.
El decano informo que aún no la había realizado y se comprometió en separarnos
un espacio el día 12/Mar/2019 entre las 6:00 pm y 7:00 pm.

 Recursos para la Implementación

Se le pregunto al decano que pasaría en caso de que los recursos para la


implementación no se asignaran. El contesto que, en tal caso, se debe documentar
toda la fase de implementación con presupuesto y diseño detallado. Pero que no es
un problema si no se asigna el recurso, ya que estas cosas pueden pasar en la
implementación de proyectos.

 Plan Estratégico de Desarrollo Universidad Cooperativa de Colombia

Respecto al plan estratégico el decano me informo que se encontraba en la pagina


web de la universidad, que debemos leerlo y relacionarlo con el proyecto para
identificar hacía que objetivo apunta.

Esta reunión tuvo una duración aproximada de 1 hora, en presencia del decano de
la faculta y el estudiante Christian Rodriguez.

84
Definición y Construcción Matriz RACI

Para la definición de actividades y roles en la construcción de la matriz RACI tuvimos


encuenta muchos factores, ya que partimos que nuestro proyecto cuenta con varias
fases durante su elaboración, para esto entonces se relacionaron los siguientes
actores:

 Líderes de Proyecto: Estos son los actores principales, ya que tiene


responsabilidades en cada actividad para su realización, consultoría, Informar a
los demás actores. Los líderes son también responsable de realizar seguimiento
para cada actividad independiente que su ayuda sea directa o indirecta.

 Decanatura: Durante la elaboración se detectó que la decanatura es la conexión


para la realización de algunas actividades, por lo tanto es de vital importancia
para brindar o solicitar información.

 Coordinación Académica: actor involucrado para informar sobre la fase del


proyecto, y la solicitud de presupuesto en caso que sea requerido.

 Personal de Seguridad: Como actores principales del producto final, se


requieren realizar una serie de capacitaciones con el fin de lograr obtener un
feedback para las mejoras propuestas, y de igual manera informar del proyecto
en para su fase de implementación.

 Parqueaderos Alternos: Estos también son usuarios con el perfil similar al


personal de seguridad a los cuales se les brindara de igual manera
capacitaciones y obtendremos un feedback por parte del usuario.

 Infraestructura / IT: Se requieren una serie de aprobación y estar notificando


los cambios establecidos durante la implementación del proyecto, por lo que
infraestructura y TI son roles fundamentales con los cuales los líderes del
proyecto tendrán un contacto de manera directa en la actividades de informar y
aprobar.

 Arquitecto: Se requiere de su aprobación y notificación sobre la instalación del


prototipo, por lo que tiene una serie de actividades definidas igualmente.

 Dirección Nacional de derechos de autor: Se requiere de la aprobación luego


del registro del software en la dirección nacional.

85
También se definierón una serie de actividades asociadas a cada rol y responsable
separadas (aplicativo web, Aplicativo móvil, aplicativo y prototipo). De esta manera
logramos priorizar cada actividad con los actores involucrados y dar un orden
establecido en la fase de implementación. (Ver Figura 24).

Figura 24. Matriz RACI

Matriz de Asignación de Responsabilidades (RACI)


Elaborado por: Christian Rodriguez, Yeison Cuartas, Andres Gaviria
Roles / Responsabilidades: R: Responsable, A: Aprobador, C: Consultado, I: Informado.

Proyecto: DISEÑO, PROTOTIPADO Y CONSTRUCCIÓN DE UN SISTEMA EN TIEMPO REAL QUE PERMITA DAR INFORMACIÓN SOBRE LA DISPONIBILIDAD DE ESPACIOS EN EL PARQUEADERO DE LA
UNIVERSIDAD COOPERATIVA DE COLOMBIA SEDE CALI SUR
Actividad Roles / Responsabilidades

Parqueaderos Direccion Nacional de


ID Actividad Actividad Lideres Proyecto Decanatura Coordinación Seguridad Alternos
Infraestructura IT Arquitecto Derechos Autor

Aplicativo Web
1 Implementación del Sistema web en porteria. R C/I A
2 Solicitud de un PC para Adminsitración de la aplicación. R A
3 Capacitación Personal de Seguridad R I/A
4 Inscripción y Aprobación del Sistema (Derechos de Autor) R I A
5 Seguimiento en fase de pruebas R I I
6 Documentación de Resultados R I I I
Aplicativo Mobile IOS y Android (Estudiantes)
1 Definición de gastos por Inscripcion de Aplicación en App Store R C A
2 Definición de gastos por Inscripcion de Aplicación en Play Store R C A
3 Inscripción de la App en App Store R I I
4 Inscripción de la App en Google Play R I I
5 Solicitud de una tablet para administración. R A I
6 Capacitación Personal de Seguridad R I/A
7 Despliegue a Comunidad Estudiantes. R I I
8 Documentación de Resultados R I I
Aplicativo Mobile (Alternos)
1 Definición de gastos por Inscripcion de Aplicación en App Store R C A
2 Definición de gastos por Inscripcion de Aplicación en Play Store R C A
3 Inscripción de la App en App Store R I I
4 Inscripción de la App en Google Play R I I
5 Solicitud de una tablet para administración. R A I
6 Capacitación Personal de Parqueaderos Alternos R I/A
7 Despliegue a Comunidad Estudiantes. R I I
8 Documentación de Resultados R I I
Prototipo (Arduino)
1 Reunión para definición de propuesta en infraestructura IT y Civil C C R/A R/A
2 Acondicionamiento de parqueadero para inicio de montaje C C R/A
3 Diseño de Soporte para instalación de prototipo R I
4 Pruebas de Conectividad. R A
5 Documentación de Resultados R I I I I

Fuente: propia de Autores

86
Diseño de Planos para Soporte

Para el diseño del soporte donde se instalará el prototipo se contactó con un


profesional en diseño industrial, donde se le solicitaron sus servicios
proporcionando una serie de ideas en la formar que se podría levantar los planos
garantizando con correcta operación, ya que se parte de una ubicación en la parte
trasera de los vehículos.

Como idea principal se realizó un diseño un poco dado a la imaginación partiendo


de algunas suposiciones, pero sin ideas claras y con algunas deficiencias en la
practicidad para ser instalado. Este primer diseño era muy alto y no garantizaba
movilidad en caso de que se necesitara, adicional detectamos que podría ser
impactado por vehículos de mayor tamaño. (Ver Figura 25).

Figura 25. Diseño # 1 – Soporte de Prototipo

Fuente: Propia de Autores

Para el siguiente diseño, luego de una análisis se propuso que el prototipo se


encontrara ubicado en la superficie del suelo, pero que además este garantizara
movilidad en caso de que se requiere, adicional el prototipo no es 100% hermético
pero logra mitigar y garantizar los posibles daños causados por la intemperie del sol
o lluvias presentadas. Es como de esta manera llegamos a un diseño final que
puede estar sujeto a modificaciones según se requiere en el plano desarrollado,
pero que es muy práctico a la hora de un monte o desmonte.

87
Figura 26. Diseño # 2 – Soporte de Prototipo

Fuente: Propia de Autores

Y finalmente utilizando una herramienta profesional de diseño industrial como lo es


AutoCAD, el diseño de los planos son realizados con sus respectivas mediciones y
presentación en 3D como plasman en la figura 27.

Figura 27. Diseño Final – Soporte de Prototipo (Isométrico)

Fuente: Propia de Autores

88
Figura 28. Diseño Final – Soporte de Prototipo (Acotado)

Fuente: Propia de Autores

Como parte de la implementación se requieren una serie de requerimientos para las


áreas de TI e infraestructura, la cual permita la instalación en sitio, garantizando que
el prototipo y aplicaciones funciones de la manera correcta, permitiendo resultados
conformes.

A continuación se presentan los requerimientos solicitados a las áreas de TI, para


iniciar con la instalación en sitio:

89
 Requerimientos Área de Infraestructura

Tabla 39. Requerimientos de Infraestructura

 Requerimientos Área de TI

Tabla 40. Requerimientos de TI

Como fase en la cual implementamos el diseño final se realiza la intervención con


un personal experto es el desarrollo de esta solución logrando reflejar, el diseño en
planos. La elaboración de este prototipo tuvo aproximadamente unos 3 días donde
se vieron detalles de acabados y las respectivas medidas. Pero también se gestionó
para el proyecto unos requerimientos técnicos IT con el ingeniero a cargo del area
con base al servicio de internet brindado por la universidad, esto con el fin de
mejorar la comunicación con los dispositivos que se involucraron. Para esto se creo
un SSID para el caso del ejercicio llamada “UCC22_prototipo” dedicada, donde se

90
realizó el enrolamiento de las direcciones MAC de cada dispositivo conectado,
garantizando que esta red solo de uso esclusivo por el prototipo.

Figura 29. Diseño Final – Elaboración de Diseño Final

Fuente: propia de Autores

Para la alimentación electrica del prototipo se realizó la solicitud al area de


infraestructura un punto de conexión el cual garantizara que los dispositivos de
transferencia de la señal contaran con energía continua y no por medio de baterías
portables, las cuales no son viables para este tipo de dispositivos.

Cabe aclarar que la instalación del dispositivo se realizó en uno de los espacios
disponibles del parqueadero de la universidad cooperativa, donde se validó la
operación en tiempo real teniendo resultados satisfactorios, para los aplicativos
web, móviles y arduino.

Figura 30. Prototipo instalado y en funcionamiento

Fuente: propia de Autores

91
Finalmente la implementación concluye con éxito, ya que cumplen con una serie de
resultados, los cuales garantizan el funcionamiento del equipo, como fase piloto del
proyecto.

1. Al establecerse señal desde un punto AP cercano a la zona de parqueo se


garantiza una conectividad óptima.

2. El diseño del prototipo es práctico para la ubicación en cualquier punto desde el


piso, garantizando que la señal siempre sea detectada por los vehículos.

3. Viendo el funcionamiento del prototipo, los sistemas integrados reflejan un


correcto funcionamiento reflejando el estatus del parqueadero en tiempo real y
generando las estadísticas y novedades pertinentes.

4. La ubicación de los dispositivos se realizó detrás del vehículo permitiendo la


movilidad en caso de ser requerido.

92
7 CONCLUSIONES

Como resultado de este trabajo se permitió realizar un aplicativo web, dos


aplicativos móviles y un prototipo con tecnología arduino, las cuales conjuntamente
permitieron automatizar el proceso de la identificación de los espacios disponibles
de un parqueadero, en este caso, el parqueadero de la Universidad Cooperativa de
Colombia sede Cali, estos sistemas aun que incluyen un prototipo permite informar
sobre los espacios del parqueadero el cual por medio de los aplicativos la
comunidad universitaria podría saber de estos estados en tiempo real, esta tesis se
realizó cumpliendo todos los objetivos específicos, por consiguiente fue satisfactorio
el levantamiento de los requerimientos para poder llevar a cabo una correcta
implementación del prototipo y realizar las pruebas necesarias para darle
cumplimiento a este proyecto.

Para la implementación que se realizó se llevaron a cabo reuniones con los actores
que se involucraban para el correcto funcionamiento, accedieron a la participación
cumpliendo los requerimientos necesarios para hacer de esto una realidad, al
realizarlo pudimos encontrar varios inconvenientes, se pudieron solucionar los
aspectos que impedían la implementación.

Las pruebas que se realizaron fueron de forma satisfactoria en cuanto a los


aplicativos que proveían la información en tiempo real, las aplicaciones se
sincronizaban correctamente, sin embargo, el prototipo que detectaba la presencia
del vehículo sufría de inconvenientes por la distancia del AC (access point) ya que
estaba muy retirado, gracias a esto se pudo también ajustar el presupuesto para
una posible implementación en el parqueadero.

Finalmente, en el proyecto se comprobó la factibilidad de implementar un sistema


en tiempo real que complemente todo el parqueadero de la universidad brindando
información actualizada sobre el estado del parqueadero, resultando en la
implementación el cumplimiento los objetivos generales y específicos. Para llevar a
cabo el desarrollo del proyecto fue necesario la recopilación y aplicación de los
conocimientos adquiridos durante toda la carrera.

93
8 RECOMENDACIONES

En un proyecto el cual tiene tan altas expectativas, como lo fue éste, siempre se
busca que esté en una mejora continua en cuanto a operaciones, procesos, la
reducción de costos oportunidad, la racionalización, y otros factores que juntos
permiten la optimización del proyecto.

Para los futuros interesados en el proyecto, es importante centrarse en la


complementación del sistema con las siguientes recomendaciones:

 Bajar los costos del prototipo de Arduino, para poder hacer de él, un proyecto
más dirigido a ser una oportunidad de negocio.

 Encontrar alternativas dirigidas a la industria, reemplazando el Arduino por otras


placas más robustas como, por ejemplo, Raspberry Pi. Una placa computadora
u ordenador de placa reducida de bajo coste.

 Implementación de una red de internet dedicada y el enrolamiento de direcciones


MAC, para la conexión del prototipo.

 Buscar una mejor estrategia para impermeabilizar el prototipo de Arduino y


además, que el material no reduzca la intensidad de la señal de internet. Por el
momento el prototipo tiene un recubrimiento de cristal y acrílico, el cual reduce
la intensidad de la señal Wifi en un 25%.

 Publicación de las aplicaciones móviles en sus respectivos repositorios, la Play


Store para el caso de Android y App Store para IPhone. Esto hace que las
posibilidades de llegar y captar un mayor número de usuarios sean mayores.

 Cambiar el plan free de la base de datos Firebase, por un plan que permita
aumentar la cantidad de conexiones y el almacenamiento de información.

94
BIBLIOGRAFIA

AdminLTE (2018). AdminLTE Control Panel Template. Recuperado de:


https://adminlte.io/

Amazon Web Service (2006). ¿Qué es una base de datos relacional? Recuperado
de: https://aws.amazon.com/es/relational-database/

Aquilera, M., Golab, W., y Shah, M. A (2018) Practical Scalable Distributed B-Tree.
Recuperado de: http://www.vldb.org/pvldb/1/1453922.pdf

Barillaro, S. De Luca, G. Valiente, W. Carnuccio, E. (2016). Diseño de sistema IoT


de monitoreo y alarma para personas mayores. Recuperado de :
http://sedici.unlp.edu.ar/bitstream/handle/10915/53061/Documento_complet
o.pdf-PDFA.pdf?sequence=1

Bosco Cayo, C., Zavala, D., León de Aranoa, F., Acosta, F., Campos, J., Ávila
Laurel, J. T., de la Puente, M., Montañés, M., Guerra, R., Chocrón, S., De
Stefano, V., Cordero, V., Medina, Y. (2007). Diccionario de la lengua
española. (22 ed.). España, Madrid. Recuperado de: http://www.rae.es/.

Cárdenas Villa, J. S., Masson Vaca, L. A (2017). Estudio de factibilidad para la


implementación de un parqueadero automatizado en el centro de
Guayaquil. Recuperado de: http://repositorio.ug.edu.ec/handle/redug/22521

Carrión, M. E., Maya, E. A., Domínguez, H. M., Peluffo D. H (2016). Sistema de


monitoreo de monóxido de carbono a través de una red de sensores
inalámbrica y una plataforma como servicio en la nube para una residencia.
Recuperado de:
http://dspace.ucuenca.edu.ec/bitstream/123456789/26351/1/TICEC_2016_1
0.pdf

Ceballos, J. (2002). Lenguaje de programación C#. México: Ra-Ma.

Cervantes Ojeda, J., Gómez Cifuentes, M. (2012). Taxonomía de los modelos y


metodologías de desarrollo de software más utilizados. Recuperado de:
http://www.redalyc.org/articulo.oa?id=37326902005

Cuzme Rodríguez, F. G. (2015). El internet de las cosas y las consideraciones de


seguridad. Recuperado de:
http://repositorio.puce.edu.ec/bitstream/handle/22000/8492/internet%20de%

95
20las%20cosas%20tesis%20y%20consideraciones%20de%20seguridad%2
0-%20final.pdf?sequence=1

Domínguez, P. (30 de octubre de 2017). Open classrooms. Recuperado de:


https://openclassrooms.com/courses/gestiona-tu-proyecto-de-desarrollo/en-
que-consiste-el-modelo-en-cascada

Filgueira, M. (2015). ¿Qué es iOS?. Recuperado de:


http://www.gabit.org/gabit/?q=es/que-es-ios

Fuentes, M. D. (12 de Diciembre de 2011). Notas del curso: analisis de


requerimientos. Recuperado de:
http://www.cua.uam.mx/pdfs/conoce/libroselec/Notas_Analisis_Requerimien
to.pdf

Garzon Ayala, A. T. Maldonado Peláez, B. E., y Villegas Quiñonez, C. A. (2006).


Diseño y construcción del prototipo de un sistema optimizado para el
ingreso a parqueadero vehiculares con tarjetas inteligentes. Recuperado de:
http://biblioteca.usbbog.edu.co:8080/Biblioteca/BDigital/38007.pdf

Github inc.(2018). FirebaseArduino Recuperado de:


https://github.com/FirebaseExtended/firebase-arduino

Giuffrè,T., Siniscalchi, M., Tesoriere, G. (2012). SciVerse ScienceDirect.


Recuperado de: https://ac.els-cdn.com/S1877042812043182/1-s2.0-
S1877042812043182-main.pdf?_tid=10d3049d-a398-4e2e-9030-
8b821ee68902&acdnat=1550439361_1ee4501bfc9adc6d6103f8b935554b6
d

Gomez, R. H. (2014). BASES DE DATOS NOSQL

Hongwei Wang. (Julio de 2011). A reservation-based smart parking system.


Recuperado de:
http://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=1045&context=co
mputerscidiss

JQuery (2018). What is jQuery?. Recuperado de: https://jquery.com/

Kianpisheh, A., Mustaffa, N., Limtrairut, P. y Keikhosrokiani, P. (2012).


International Journal of Software Engineering and Its Applications.
Recuperado de

96
https://pdfs.semanticscholar.org/d985/e50fc73cd28477af544d52b1e4c9f11f
09d5.pdf

Llamas, L. (2015). Medir distancia con arduino y sensor de ultrasonidos hc-sr04.


Recuperado de: https://www.luisllamas.es/medir-distancia-con-arduino-y-
sensor-de-ultrasonidos-hc-sr04/

Llaven, D. S. (2015). Sistemas Operativos: Panorama para ingeniería en


computación e informática. México: Grupo Editorial Patria.

Microsoft (2018). Conceptos básicos de los índices. Recuperado de:


https://technet.microsoft.com/es-es/library/ms190457(v=sql.105).aspx

Microsoft (2018). Restricciones Foreign Key. Recuperado de:


https://technet.microsoft.com/es-es/library/ms175464(v=sql.105).aspx

Mora Rodríguez, A (2016). Diseño e Implementación de una Aplicación IoT en la


Nube de Azure para el Análisis de Imagen. Recuperado de:
http://oa.upm.es/48064/8/TFM_ALEJANDRO_MORA_RODRIGUEZ.pdf

Moreno Sánchez, O. (2016). Diseño y despliegue de una arquitectura IoT para el


análisis de datos en tiempo real. Recuperado de:
http://oa.upm.es/48108/9/tfm_oscar_moreno_sanchez.pdf

Ouazzani, I (2012). Manual de creación de videojuego con Unity 3d. Recuperado


de: https://e-archivo.uc3m.es/handle/10016/16345#preview.

Pavio, B. (1981). Psychology of language. New Jersey: Prentice-Hall.

Pérez Cardona, M (octubre de 2018). Firebase, qué es y para qué sirve la


plataforma de Google [Blog]. Recuperada de:
https://www.iebschool.com/blog/firebase-que-es-para-que-sirve-la-
plataforma-desarroladores-google-seo-sem/

Pérez, I, (2014). El lenguaje de programación Python/The programming language


Python. Recuperado de: http://www.redalyc.org/html/1815/181531232001/

Pernía, M. (3 de octubre de 2016). Sistemas Operativos Móviles. Recuperado de:


https://dtyoc.com/2016/10/03/sistemas-operativos-moviles/

97
Pino Reyes, J. J. (2018). ¿Qué es HTML? [Blog]. Recuperado de:
https://devcode.la/blog/que-es-html/

Pozo Morillo, J. D. (2007). Introducción a los dispositivos móviles. Recuperado de:


https://www.exabyteinformatica.com/uoc/Informatica/Tecnologia_y_desarroll
o_en_dispositivos_moviles/Tecnologia_y_desarrollo_en_dispositivos_movil
es_(Modulo_2).pdf

Rafael Camps Paré, L. A. (2005). Software Libre. España. Recuperado de:


http://www.uoc.edu/masters/oficiales/img/913.pdf

Raffino, M. E. (16 de Agosto de 2016). Concepto de Programacion. Recuperado


de concepto: http://concepto.de/programacion/

Redacción tecnológica. (18 de diciembre de 2013). net: Parking App, la aplicación


móvil para encontrar parqueadero. El Tiempo. Recuperado de:
http://www.eltiempo.com/archivo/documento/CMS-13299517

Salazar Ramirez J. D., Catirre Carrillo, B. D. (28 de Junio de 2013). Lenguaje de


Programación JAVA [Blog]. Recuperado de:
http://javadefinicion.blogspot.com.co/2013/06/marco-teorico.html

Saltos Viteri, H. (2018). Sistema Traductor de Lengua Natural a Lengua de Señas


para Asegurar la Inclusión Educativa de las Personas con Discapacidad
Auditiva de la Unidad Educativa Isabela Católica. Recuperado de:
http://dspace.utb.edu.ec/handle/49000/3661.

Software Arduino (2018). Recuperado de:


https://www.arduino.cc/en/Main/Software

Soler, F. (2001). Sistema computacional de programación flexible diseñado sobre


una máquina abstracta reflectiva no restrictiva. Recuperado de:
http://di002.edv.uniovi.es/~cueva/investigacion/tesis/Paco.pdf

Universidad Cooperativa de Colombia. (s.f.). Historia. Recuperado de:


https://www.ucc.edu.co/institucion/Paginas/historia.aspx

Wikipedia (15 de Noviembre de 2018). C Sharp. Recuperado de:


https://es.wikipedia.org/wiki/C_Sharp

98
Wikipedia (15 de Noviembre de 2018). JavaScript. Recuperado de:
https://es.wikipedia.org/wiki/JavaScript.

Wikipedia (15 de Noviembre de 2018). Bootstrap (framework). Recuperado el 15


de noviembre de 2018 de
https://es.wikipedia.org/wiki/Bootstrap_(framework)

Wikipedia (15 de Noviembre de 2018). Red de distribución de contenidos.


Recuperado de:
https://es.wikipedia.org/wiki/Red_de_distribuci%C3%B3n_de_contenidos

Wikipedia. (15 de Noviembre de 2018). Unity (motor de videojuego). Recuperado


de: https://es.wikipedia.org/wiki/Unity_(motor_de_juego)

Wikipedia. (15 de Noviembre de 2018). Visual Studio Code. Recuperado de:


https://es.wikipedia.org/wiki/Visual_Studio_Code

99

También podría gustarte