Tesis de Grado en Ingeniería de Sistemas
Transcript of Tesis de Grado en Ingeniería de Sistemas
UNIVERSIDAD NACIONAL DEL CENTRO DE LA PROVINCIA DE
BUENOS AIRES
FACULTAD DE CIENCIAS EXACTAS
Tesis de Grado en Ingeniería de Sistemas
“Sistema de Asistencia Vecinal Integral, basado en agentes
inteligentes”
Autor
Jesús Matías Ezequiel Tangorra
Directores
Dr. Luis Berdun, Dr. Alvaro Soria
Tandil, Junio de 2019
2
3
Resumen
Ante eventualidades cotidianas, se recurre a los medios de comunicación disponibles.
Existen situaciones para las cuales estas herramientas no bastan, ya sea porque no están
preparadas para ser instrumentos de comunicación ante determinadas eventualidades o
bien, porque su uso es tomado a la ligera por sus usuarios.
En este trabajo se presenta una herramienta que permite mantener una red social privada
entre un grupo de vecinos, se denominó Sistema de Asistencia Vecinal Integral (SAVI).
El objetivo de SAVI es la protección de familias y hogares de los usuarios en base a la
comunicación e interacción entre vecinos.
El trabajo propuesto no busca reemplazar los actuales sistemas de seguridad o alarmas, y
menos aún disminuir el trabajo de las fuerzas policiales. Sino que busca
complementarlos, usando tecnologías cercanas a todos, además de la utilización de
canales de comunicación cotidianos. No busca crear brechas entre la sociedad, sino que
alienta la comunicación en una red privada y de confianza. Da herramientas de libre
acceso para responder antes eventos cotidianos utilizando canales seguros.
En el presente documento se van a mostrar las bases teóricas en las que nace la idea y sus
fundamentos, así también como todo lo relacionado a la implementación, realización y
caso de estudio. El desarrollo de SAVI implicó la integración de los conocimientos
adquiridos durante la carrera, el resultado es una aplicación que contribuye a la seguridad
vecinal.
4
Contenido
Capítulo 1: Introducción ............................................................................................................... 8
Introducción .............................................................................................................................. 8
Motivación ................................................................................................................................ 9
Problemática............................................................................................................................ 10
Solución Propuesta .................................................................................................................. 11
Organización del documento................................................................................................... 13
Capítulo 2: Contexto Actual........................................................................................................ 15
Indicadores de seguridad en Argentina ................................................................................... 15
Contexto Social ....................................................................................................................... 17
Contexto Económico ............................................................................................................... 18
Situación regional ................................................................................................................... 20
Ley N.º 12.154 de Seguridad Pública ................................................................................. 21
Seguridad y tecnologías. ......................................................................................................... 23
Centro de Monitoreo Tandil (CMT) ................................................................................... 25
Seguridad Privada ............................................................................................................... 25
Capítulo 3: Elección de tecnologías ............................................................................................ 28
Marco tecnológico ................................................................................................................... 28
Android ............................................................................................................................... 28
Firebase ............................................................................................................................... 33
Mapas .................................................................................................................................. 39
Agentes y Multiagentes ....................................................................................................... 40
Capítulo 4: Diseño e implementación ......................................................................................... 45
Diagrama general de interacción ............................................................................................. 45
Diagrama de componentes ...................................................................................................... 45
Modelo de Casos de Uso ......................................................................................................... 46
Especificación de Casos de Uso .......................................................................................... 48
Diagrama de clases .................................................................................................................. 56
Modelo de Datos NoSQL ........................................................................................................ 57
Capítulo 5: Sistema de Asistencia Vecinal Integral .................................................................... 58
Secciones ................................................................................................................................. 58
Registro ............................................................................................................................... 58
Ingreso ................................................................................................................................. 59
Perfil .................................................................................................................................... 60
Domicilios ........................................................................................................................... 62
5
Menú principal .................................................................................................................... 63
Familia ................................................................................................................................ 64
Creación de grupo vecinal ................................................................................................... 67
Vinculación de usuarios a grupo vecinal............................................................................. 68
Alerta grupo ........................................................................................................................ 70
Respuesta alerta ................................................................................................................... 73
Configuración de cuenta ..................................................................................................... 74
Notificación ......................................................................................................................... 76
Proyectos Similares ................................................................................................................. 77
Alerta Tandil ....................................................................................................................... 77
Alerta Buenos Aires ............................................................................................................ 79
Strix LoJack ........................................................................................................................ 80
Comparación ........................................................................................................................... 81
Capítulo 6: Evaluación y resultados ............................................................................................ 83
Estado inicial ........................................................................................................................... 83
Autenticación ...................................................................................................................... 83
Base de datos ....................................................................................................................... 84
Storage ................................................................................................................................ 84
Cuentas ................................................................................................................................ 85
Perfiles ................................................................................................................................ 87
Suscripción a grupos ........................................................................................................... 89
Caso de estudio 1 .................................................................................................................... 95
Alerta ................................................................................................................................... 95
Caso de estudio 2 .................................................................................................................... 98
Configuración de perfil ....................................................................................................... 98
Alerta ................................................................................................................................... 99
Caso de estudio 3 .................................................................................................................. 101
Informar autoridades ......................................................................................................... 103
Caso de estudio 4 .................................................................................................................. 106
Capítulo 7: Conclusiones .......................................................................................................... 109
Contribuciones. ..................................................................................................................... 109
Limitaciones .......................................................................................................................... 110
Trabajos futuros .................................................................................................................... 110
Bibliografía ............................................................................................................................... 112
6
Índice de figuras
Figura 1.1 Esquema conceptual de la interacción entre el sistema y los usuarios .................... 12
Figura 2.1 Evolución del índice de victimización LICIP [27], 2008-2017 ................................ 16
Figura 2.2 Mapa de robos por provincia. Tasa por 100.000 habitantes [27]. ........................... 17
Figura 2.3 Costos del crimen, comparación internacional, 2014. ............................................. 19
Figura 2.4 Costos del crimen (límite superior) como porcentaje del PBI, ALC, 2014 .............. 19
Figura 2.5 Cantidad de habitantes por miles, Tandil según datos oficiales INDEC [3]............ 20
Figura 2.6 “Mapa del delito” Tandil [24] ................................................................................. 20
Figura 2.7 Distribución de cámaras de seguridad Tandil – Datos Oficiales ............................. 23
Figura 2.8 Licitación privada 29 – 2018 Municipalidad de Tandil [25]. .................................. 24
Figura 2.9 Domo exterior tipo PTZ ............................................................................................ 24
Figura 2.10 Cámara fija, tipo IP, bullet. .................................................................................... 24
Figura 2.11 Centro de Monitoreo Tandil (CMT) ........................................................................ 25
Figura 2.12 Mapa de empresas prestadoras de servicios de seguridad privada. ...................... 26
Figura 2.13 Kit de alarma exterior autoinstalable. .................................................................... 27
Figura 3.1 API Distribución de versiones [16] .......................................................................... 30
Figura 3.2 Ciclo de vida Activity [17] ........................................................................................ 33
Figura 3.3 Latitud y Longitud ..................................................................................................... 39
Figura 3.4 Una taxonomía de clases de agentes ........................................................................ 42
Figura 3.5 Atributos primarios de agentes. ................................................................................ 42
Figura 4.1 Diagrama conceptual de interacción SAVI. .............................................................. 45
Figura 4.2 Diagrama de componentes SAVI. ............................................................................. 46
Figura 4.3 Diagrama de casos de uso SAVI. .............................................................................. 47
Figura 4.4 Diagrama de clases SAVI ......................................................................................... 56
Figura 4.5 Ejemplo Base de datos NoSQL ................................................................................. 57
Figura 5.1 Flujo pantallas relacionadas con el acceso del usuario. .......................................... 59
Figura 5.2 Mockup pantalla SAVI. Sección registro/login. ........................................................ 60
Figura 5.3 Mockup de pantalla SAVI. Sección Perfil ................................................................. 61
Figura 5.4 Ejemplo captura de Latitud y Longitud .................................................................... 62
Figura 5.5 Mockup de pantalla SAVI. Sección Domicilio. ......................................................... 63
Figura 5.6 Instantánea base de datos, Domicilios...................................................................... 63
Figura 5.7 Mockup de pantalla SAVI. Sección menú principal. ................................................. 64
Figura 5.8 Mockup de pantalla SAVI. Secciones familiares. ...................................................... 65
Figura 5.9 Mockup de pantalla SAVI. Sección vista código personal. ....................................... 66
Figura 5.10 Mockup de pantalla SAVI. Sección creación de grupo vecinal. ............................. 67
Figura 5.11 Flujo pantallas relacionadas con la vinculación de usuarios a un grupo. ............. 68
Figura 5.12 Mockup de pantalla SAVI. Sección menú principal lateral. ................................... 69
Figura 5.13 Mockup de pantalla SAVI. Sección vista de código grupo. .................................... 69
Figura 5.14 Mockup de pantalla SAVI. Sección creación de alerta vecinal. ............................. 70
Figura 5.15 Diagrama de flujo entre las pantallas relacionadas con las alarmas. ................... 71
Figura 5.16 Diagrama de flujo entre las pantallas relacionadas con el informe de alarmas. ... 72
Figura 5.17 Mockup de pantalla SAVI. Sección respuesta alerta vecinal. ................................. 73
Figura 5.18 Mockup de pantalla SAVI. Sección configuración cuenta. ..................................... 75
Figura 5.19 Mockup de pantalla SAVI. Sección creación de notificación. ................................ 76
Figura 5.20 Captura base de datos, Notificación. ...................................................................... 76
Figura 5.20 Publicación de aplicación “Alerta Tandil” – Play Store. ...................................... 77
Figura 5.21 Captura de "Alerta Tandil". .................................................................................... 78
Figura 5.22 Captura de Alerta Buenos Aires. ............................................................................ 79
Figura 5.23 Captura de pantalla de Strix LoJack. ..................................................................... 81
Figura 6.1 Instantánea del estado inicial de la utilidad autenticación Firebase. ...................... 83
Figura 6.2 Instantánea del estado inicial de la base de datos Firebase ..................................... 84
Figura 6.3 Instantánea del estado inicial de la utilidad storage Firebase. ................................ 84
Figura 6.4 Captura pantalla SAVI. Sección inicio. .................................................................... 85
7
Figura 6.5 Captura pantalla SAVI. Sección registro/login. ....................................................... 85
Figura 6.6 Instantánea autenticación Firebase, creación de cuentas. ....................................... 86
Figura 6.7 Instantánea base de datos, creación de cuentas ....................................................... 86
Figura 6.8 Captura de pantalla SAVI. Sección creación perfil. ................................................. 87
Figura 6.9 Captura de pantalla SAVI. Sección elección domicilio. ........................................... 87
Figura 6.10 Instantánea estado base de datos Firebase. ........................................................... 88
Figura 6.11 Sección diagrama de clases, SAVI .......................................................................... 88
Figura 6.12 Distribución de usuario para la generación del experimento. ............................... 89
Figura 6.13 Captura de pantalla SAVI. Sección vista del código QR Usuario 3. ...................... 90
Figura 6.14 Captura de pantalla SAVI. Sección vista del código QR Usuario 4. ...................... 90
Figura 6.15 Captura de pantalla SAVI. Sección vista de integrantes del grupo familiar antes de
agregar familiares. ...................................................................................................................... 91
Figura 6.16 Captura de pantalla SAVI. Sección vista de integrantes del grupo familiar después
de agregar familiares. ................................................................................................................. 91
Figura 6.17 Estado de Base de datos antes que el usuario 3 tenga grupo familiar. .................. 92
Figura 6.18 Estado de Base de datos después de que el usuario 3 tenga grupo familiar. ......... 92
Figura 6.19 Captura pantalla SAVI. Sección creación de grupo vecinal ................................... 93
Figura 6.20 Instantánea de la Base de datos, luego de la creación del grupo vecinal .............. 93
Figura 6.21 Captura de pantalla SAVI. Sección vista de grupo vecinal. ................................... 94
Figura 6.22 Captura de pantalla, SAVI. Sección vista código grupo vecinal. ........................... 94
Figura 6.23 Captura de pantalla SAVI. Sección creación de alerta vecinal. ............................. 95
Figura 6.24 Estado de base de datos antes de crear la alerta vecinal. ...................................... 95
Figura 6.25 Estado de base de datos después de crear la alerta vecinal. .................................. 95
Figura 6.25 Captura de pantalla SAVI. Sección respuesta ante alerta vecinal presente. .......... 96
Figura 6.26 Captura informe de alerta. ...................................................................................... 96
Figura 6.27 Instantánea base de datos después de crear una nueva alerta vecinal................... 97
Figura 6.28 Captura pantalla SAVI. Sección configuración, vacaciones. ................................. 98
Figura 6.29 Instantánea base de datos, configuración de cuenta. ............................................. 98
Figura 6.30 Captura pantalla SAVI. Sección creación de alerta vecinal. .................................. 99
Figura 6.31 Instantánea de estado de base de datos, luego de crear segunda alerta. ............... 99
Figura 6.32 Instantánea de estado de base de datos, respuesta automática. ........................... 100
Figura 6.33 Captura pantalla SAVI. Sección creación de alerta vecinal. ................................ 102
Figura 6.34 Captura pantalla SAVI. Sección respuesta de alerta vecinal. .............................. 102
Figura 6.35 Captura pantalla SAVI. Sección respuesta de alerta vecinal. .............................. 103
Figura 6.36 Captura pantalla Teléfono. Sección informar autoridades, elección policía. ...... 103
Figura 6.37 Captura pantalla SAVI. Secciones alertas de grupo. ............................................ 104
Figura 6.38 Captura pantalla SAVI. Sección acceso a resumen de alertas/notificaciones. ..... 104
Figura 6.39 Captura pantalla SAVI. Sección alertas familia. .................................................. 105
Figura 6.40 Captura pantalla SAVI. Sección acceso a resumen de alertas/notificaciones. ..... 105
Figura 6.40 Captura pantalla SAVI. Sección creación de notificación. ................................... 107
Figura 6.42 Captura pantalla SAVI. Sección creación de notificación. ................................... 107
Figura 6.43 Captura pantalla SAVI. Sección acceso a resumen de alertas/notificaciones. ..... 107
Figura 6.44 Captura pantalla SAVI. Sección vista de notificaciones. ...................................... 107
Figura 6.45 Instantánea de estado de base de datos Firebase, notificación. ........................... 108
8
Capítulo 1: Introducción
Durante este capítulo se expondrá la problemática, la motivación y la solución propuesta
para la realización de un Sistema de Alerta Vecinal Integral. Se plantean las razones que
motivaron la elección del tema, los fundamentos que lo sustentan y por último los
objetivos del trabajo, así como también la forma en la que se estructura el presente
documento.
Introducción
“La seguridad interior es la situación de hecho basada en el derecho en el cual se
encuentra resguardadas la libertad, la vida y el patrimonio de los habitantes, sus derechos
y garantías y la plena vigencia de las instituciones del sistema representativo, republicano
y federal que establece la CONSTITUCIÓN NACIONAL” [1].
Como se establece en la Constitución Nacional Argentina, el derecho de seguridad
interior es privilegio de todos los habitantes. El sistema de seguridad interior tiene como
fin determinar políticas de seguridad, así como planificar, coordinar, dirigir, controlar y
apoyar el esfuerzo nacional de policía dirigido al cumplimiento de estas políticas.
Según la Encuesta Nacional de Victimización [2] Durante 2016, el 13,6% de los hogares
sufrió al menos uno de estos delitos: robo o hurto en vivienda; el robo o hurto de auto,
camioneta o camión; el robo o hurto de autopartes, el robo o hurto de moto o ciclomotor
y el secuestro extorsivo de uno de los residentes de la casa. El robo de en las casas fue el
que más porcentaje obtuvo, con el 8 por ciento. Además, se informó que el 85,4% de las
casas cuentan con alguna medida de seguridad con el objetivo de protegerse de la
delincuencia.
Si analizamos la seguridad presentada en los hogares, los sistemas de defensa usados
varían en complejidad y costo. En lo primero que se piensa cuando se habla de seguridad
en el hogar es un sistema de alarmas como las provistas por empresas privadas, que
cobran un costo de instalación y opcionalmente un costo de monitoreo. También se puede
recurrir a métodos de seguridad que tratan de impedir o desalentar posibles intrusiones
en el hogar, sean rejas, puertas de seguridad, etc.
Existe paralelamente sistemas vecinales, que usan la comunicación como defensa ante
diferentes eventos, por ejemplo, si una puerta está abierta de madrugada y es observado
por un vecino, lo primero que dicho vecino hará es comunicarse con el dueño de la casa.
9
La informalidad de los medios de comunicación usados por el vecino que desea informar
la anormalidad de la situación es un problema, ya que estos medios no están preparados
para ser instrumentos de comunicación ante determinadas eventualidades o bien, porque
su uso es tomado a la ligera por sus usuarios.
Motivación
El Instituto de Estadísticas y Censos [3] realizó por primera vez un estudio que revela el
escepticismo de parte de la sociedad frente a los que administran el Estado. De acuerdo
con el estudio, más del 66% de los delitos contra las personas y casi la mitad de los que
pasaron en los hogares durante 2016 no fueron denunciados "por desconfianza hacia las
autoridades". La información la reveló la Encuesta Nacional de Victimización 2017 [2],
que se hizo por primera vez, ejecutada entre el Instituto Nacional de Estadística y Censos
y el Ministerio de Seguridad de la Nación. "La desconfianza en las autoridades es el
principal motivo de no denuncia de los delitos", señaló el informe y, en ese sentido,
precisó que el 34,5% de los delitos contra el hogar y el 34,7% de los delitos contra las
personas "no fueron denunciados por este motivo".
Si analizamos la manera en la que un vecino procede ante una determinada emergencia,
tenemos que si observa una situación que amerita la alerta de los demás miembros de la
comunidad, no tiene una herramienta dedicada para contribuir de una posición segura
ante la posible eventualidad que pueda tener el propietario de la casa. Este tipo de
herramientas vecinales de alarma se va a basar el presente trabajo, es decir la protección
comunitaria entre los propios vecinos.
Un estudio presentado por Kantar IBOPE Media Argentina [5] indica que, en 2016 el
60% de los argentinos declaró poseer un teléfono inteligente, lo que implica un
incremento del 55% respecto al año anterior (39%), y las personas de nivel
socioeconómico bajo presentan mayor incremento en la posesión de este dispositivo.
Respecto al año anterior, el crecimiento es del 87%, pasando del 28% al 53%, que
declaran tener este tipo de equipo. Además, y en línea con el acercamiento de los adultos
mayores a las tecnologías de la comunicación, se observa un incremento del 132% en la
posesión de smartphones dentro del rango de 65 a 75 años, pasando del 9% al 20% que
declaran tener este tipo de teléfonos celulares.
Actualmente gracias a la evolución de los sistemas embebidos junto al bajo costo y
accesibilidad de internet, han dado como resultado el paradigma “Internet de las Cosas”
10
[7]. El objetivo de este paradigma es convertir los objetos que nos rodean en objetos
inteligentes de forma tal que, comunicándose a través de Internet, puedan percibir lo que
sucede en su entorno y poder reaccionar frente a ello. De manera simplificada, la internet
de las cosas es una red de dispositivos que pueden conectarse a internet, logrando que
máquinas normales y corrientes se vuelvan “Smart” [7].
Todos los objetos inteligentes operan como sensores, como actuadores o ambas a la vez.
De este modo, cuando están conectados a internet permitiendo su acceso para recibir o
enviar información y proceder según sea estipulado [7]. La combinación de internet y las
tecnologías emergentes como la localización en tiempo real, sensores embebidos en
objetos cotidianos y la comunicación a alta velocidad y bajo costo, han permitido la
concepción de objetos inteligentes que tienen la capacidad de no sólo comprender lo que
sucede a su alrededor sino también influir en el ambiente en el que se encuentra.
Problemática
Actualmente, existen canales de transmisión secundarios o informales para la generación
de alertas vecinales, ya sea una cadena de avisos, un grupo de WhatsApp, un grupo de
Facebook. Si tomamos por el ejemplo WhatsApp, según datos oficiales provistos por la
corporación, “Actualmente mil millones de personas están usando WhatsApp. Esto
quiere decir que casi una de cada siete personas en el mundo usa WhatsApp cada mes
para mantenerse en contacto con sus seres queridos, amigos, y familiares.” [6] estos
números sirven para dar una magnitud de lo masificada que está la tecnología de
mensajería personal. La informalidad de los medios de comunicación que se utiliza para
estar en comunicación, son sobreestimados por los usuarios y se terminan desviando de
su objetivo principal.
Estos métodos informales de comunicación ante eventuales problemas de seguridad,
normalmente se terminan desviando del objetivo principal para el que fueron creados por
falta de compromiso de sus integrantes, volviéndose obsoletos. El ejemplo más simple
de esto es un grupo de WhatsApp que al aumentar el número de integrantes comienza a
ser utilizado para distintas cuestiones de comunicación que no forman parte del objetivo
original, recordar cumpleaños, avisos de ventas, entre otras tantas cuestiones, haciendo
que el usuario no revise los mensajes o directamente salga del grupo. El método informal
es el que hace difícil que se establezca y se cumpla un reglamento de uso.
11
También existen alarmas vecinales las cuales son también son llamadas comunitarias,
estos sistemas no son más que simples altavoces conectados a controles similares a lo
que se usan para las alarmas de los autos. Estas alarmas son activadas de manera remota
por alguno de los diferentes usuarios, ante determinados episodios. La ciudad de Rosario
fue pionera en implementar estos métodos para combatir y desalentar hechos delictivos,
así por la Ordenanza 7914 se creó en el ámbito de la Municipalidad de Rosario el
Subprograma de Alarmas Comunitarias, como parte integrante y complementaria del
Programa Municipal de Seguridad Urbana (artículo 1) [6]. Aunque estos métodos de
alertas son más formales que los nombrados anteriormente. Sufren de ser instrumentos
que carecen de inteligencia. Si bien cumplen con su objetivo básico, es decir alertar. Los
vecinos además de escuchar la sirena no pueden deducir si la alarma pertenece a un
incendio, robo o actitud sospechosa sin salir de la seguridad de sus hogares. El alcance
de estas alarmas está acotado a una distancia máxima, la cual es el radio de audición de
las propias sirenas de las alarmas.
Solución Propuesta
En base a la problemática de los medios de comunicación informales y los sistemas
carentes de inteligencia, nace la idea del Sistema de Asistencia Vecinal Integral (SAVI).
El foco de SAVI es la satisfacción de una necesidad que es primordial, la seguridad. Si
una alarma está sonando de madrugada, se da una herramienta para contribuir de una
manera segura y remota de ayuda. Si alguien se encuentra en un evento social, tengo la
seguridad que su grupo de vecinos estas contribuyendo a la seguridad de su hogar. Si se
quisiera informar algo sospechoso o irregular en la comunidad, lo haga de manera rápida
y sencilla.
SAVI representa la creación de un sistema de ayuda a la comunidad, su objetivo es la
realización de un sistema de asistencia vecinal integral. Se da medios de comunicación
especialmente dedicados a la seguridad. No solo se trata de un sistema que pueda hacer
que los vecinos informen sobre determinadas situaciones, sino que da la posibilidad de
dar respuesta personalizadas e inteligentes. El sistema permite en base a sistemas
interactivos saber la ubicación precisa del dueño de casa generado alertas previamente
cargadas. Se da la posibilidad de poder crear grupos de vecinos, los cuales serán los
encargados generar las alertas a los demás, en caso de determinadas situaciones, ya sea
incendios, robos o actitudes sospechosas.
12
SAVI representa la creación de un sistema de ayuda a la comunidad, su objetivo es la
realización de un sistema de asistencia vecinal inteligente. Se da medios de comunicación
especialmente dedicados a la seguridad. No solo se trata de un sistema que pueda hacer
que los vecinos informen sobre determinadas situaciones, sino que da la posibilidad de
dar respuesta personalizadas e inteligentes. El sistema permite en base a sistemas
interactivos saber la ubicación precisa del dueño de casa generado alertas previamente
cargadas. Se da la posibilidad de poder crear grupos de vecinos, los cuales serán los
encargados generar las alertas a los demás, en caso de determinadas situaciones, ya sea
incendios, robos o actitudes sospechosas.
Figura 1.1 Esquema conceptual de la interacción entre el sistema y los usuarios
Como se observa en la figura 1.1 el sistema dará a los usuarios la posibilidad de crear una
red de confianza, con sus vecinos, familiares y conocidos (1). Los usuarios pertenecientes
a cada grupo de confianza serán los encargados de generar las "Alertas Vecinales" (2)
que tendrán efecto sobre los grupos, estas alertas serán informadas a todos los miembros
del grupo. Teniendo en cuenta el contexto de cada usuario se brindará una asistencia
inteligente. Los integrantes del “Grupo de Confianza” serán los encargados de crear las
alertas, estas alertas serán el disparador de una serie de chequeos (3). Los tipos de alertas
serán basados un conjunto predefinido de respuestas automáticas, el cual puede ser
13
ampliado fácilmente, por ejemplo, se podría informar que la alarma de un vecino en
particular está sonando.
Seguido del evento disparador, en este caso una “Alerta Vecinal”, el sistema SAVI
(Sistema de Asistencia Vecinal Inteligente) buscará si ese determinado vecino dejó
configurada una alerta (3), el vecino podría haber definido en la aplicación que está de
vacaciones, entonces SAVI generaría una respuesta al grupo con dicha información (9) y
generaría la alerta que será informada al dueño de la casa (4). Otro determinado curso de
acción es poder determinar la ubicación del teléfono smartphone de usuario mediante
geolocalización (8) e informar dicha posición a los demás integrantes del grupo (10). Si
la aplicación determina que el dueño de casa tiene el teléfono apagado o sin señal se
informará al grupo dicha situación (a los usuarios dentro del grupo de confianza). Una
situación similar ocurre si la aplicación determina la posición del dueño de la casa y la
misma es diferente al domicilio en cuestión. Estos escenarios permiten apreciar cómo la
aplicación toma un rol activo e inteligente en el diagnóstico de situaciones de emergencia,
permitiendo que los usuarios del grupo puedan determinar su accionar correspondiente.
Si el dispositivo del usuario está activo se generará una alerta que indica el motivo de
esta (5) y si uno o más integrantes del grupo fueron los que la reportaron. De esta forma
el usuario podrá transmitir un mensaje (6) al grupo informado que está de vacaciones,
que no se encuentra en la casa o que no presten atención a la alerta generada.
El sistema permite conectividad en conexiones con WIFI y datos de internet. Se utilizan
los sensores de los teléfonos de manera remota, ya sea sensores GPS, cámara, micrófono,
etc. Incluso se estima el agregado de dispositivos secundarios como fuentes de
información, por ejemplo, un Smartphone antiguo se puede transformar en una cámara
de vigilancia a demanda, o simplemente un micrófono para escuchar lo que está
sucediendo.
En base a lo investigado, ningún sistema de los presentes hoy en día permite dar
respuestas precisas e inteligentes en base a la ubicación actual del dueño de casa, a la
disponibilidad de la línea telefónica, o a un mensaje precargado.
Organización del documento
En el capítulo 2 se presentan el contexto en el cual se encuentra la región de América
Latina, se hace énfasis en esta región ya que los indicadores se repiten en la mayoría de
los países, se realiza una clasificación de los delitos.
14
En el capítulo 3 se hace estudio de las diferentes tecnologías, evaluando sus
características, disponibilidad de información, recursos disponibles. Se da a conocer la
elección de tecnologías y herramientas utilizadas en la creación de SAVI, se definen las
bases en la cuales va a ser desarrollada la aplicación.
En el capítulo 4 se hace un análisis general de las partes e interacción entre ellas de SAVI.
Se presentan diagramas UML (Unified Modeling Language) del diseño del sistema. Se
detalla el diseño de cada uno de los componentes del sistema para describir la interacción
que existe entre diferentes objetos del sistema.
En el capítulo 5 se presenta el desarrollo de SAVI, una aplicación que apoya y da medios
de comunicación seguros antes eventos cotidianos. Se analizará la herramienta desde un
nivel conceptual. Se estudia cada una de las secciones que contiene, así como la
interacción entre cada una de las partes. Se da importancia a la forma en la que la
tecnología sirve como herramienta a favor de la seguridad, se hace un relevamiento sobre
las medidas tecnológicas y se realiza una comparación entre las soluciones tecnológicas
actuales y SAVI.
En el capítulo 6 se desarrolla el caso de estudio. Evaluando los puntos en los cuales la
aplicación es vital. Se dará importancia a los tiempos de respuesta, usabilidad. Se presenta
las evaluaciones experimentales que se le realizaron SAVI, dejando claro a través de
análisis y comparaciones los beneficios de su utilización.
El capítulo 7 presenta las conclusiones obtenidas a partir de la construcción de SAVI y
de su utilización en el caso de estudio. También se presentan cuáles serán los trabajos
futuros que podrían desarrollarse a partir de éste.
15
Capítulo 2: Contexto Actual
En este capítulo se analiza el contexto y la situación de Argentina, en base a estudios
realizados por entes gubernamentales y no gubernamentales, se estudia los tipos de
delitos y la situación social, como la económica. Se usa el PBI como indicador del crimen,
con la premisa de que los países que tengan más problemas delictivos más van a invertir
en materia de seguridad. Por último, se hace un análisis de la forma en la que la tecnología
sirve de medio para contribuir a la seguridad y se realiza un análisis de soluciones
tecnológicas actuales.
Indicadores de seguridad en Argentina
Datos de encuestas realizadas por ENV [2], revelaron que en 2016 el 27,5% de las
familias sufrió algún delito ya sea contra el hogar o contra alguno de sus miembros. En
otras palabras, en el año 2016, tres de cada diez hogares argentinos padecieron al menos
un delito. Se dio importancia a cinco delitos contra el hogar (robo o hurto de vivienda,
auto, moto y/o secuestro) y nueve contra las personas (robo con violencia, hurto, estafa,
fraude, secuestro virtual, agresión física, amenazas, corrupción u ofensa sexual.
Según el INDEC [3], en la mayoría de los hechos (67,7%) no se hizo la denuncia. Las
encuestas nacionales de victimización (ENV) [2] complementan los registros
administrativos de la policía, al no estar afectados por el subreporte (no denuncia) de los
incidentes a la policía. Contar con datos de victimización a lo largo del tiempo es central
para analizar la evolución de la incidencia y prevalencia del crimen.
Una alternativa para analizar la evolución de la tasa de victimización es utilizar la
encuesta de victimización que realiza el Laboratorio de Investigaciones sobre Crimen,
Instituciones y Políticas [27] de la Universidad Torcuato Di Tella desde inicios de 2008.
Esta encuesta se ha convertido en los últimos años en un instrumento muy importante
para el diagnóstico en materia de inseguridad en vista de la falta de disponibilidad de
datos oficiales. A diferencia de la ENV 2017 [2], esta encuesta es telefónica y con una
muestra mucho menor. Sin embargo, tiene la ventaja de proveer una serie confiable y
larga en el tiempo de la victimización en el país, y arroja resultados muy similares para
2017. Según esta encuesta del LICIP [27] (Universidad Torcuato Di Tella), se observa en
la figura 2.1 que luego de varios años de aumento del índice de victimización durante la
16
década pasada, desde fines de 2015 hay una tendencia decreciente a nivel nacional
(medido por el porcentaje de hogares que declararon haber sufrido por lo menos un delito
en los últimos doce meses). En lo que va del año este índice se encuentra en torno al 27%.
Para 2016 el promedio fue 28,2%, muy similar al dato de victimización que arroja la ENV
2017, a pesar de las grandes diferencias metodológicas.
Figura 2.1 Evolución del índice de victimización LICIP [27], 2008-2017
17
Existe heterogeneidad en la distribución geográfica del crimen entre las provincias. El
siguiente mapa figura 2.2 muestra esta distribución robos en 2016. Los colores claros
representan las tasas por 100.000 habitantes más bajas, mientras que los colores oscuros
identifican a las provincias con tasas más elevadas. Los robos están más concentrados en
ciertas provincias del centro del país (Córdoba y Santa Fe y CABA), del Noroeste
(Catamarca, Jujuy, Salta y Tucumán) y del sur (en especial, Mendoza y Neuquén.
Figura 2.3 Mapa de robos por provincia. Tasa por 100.000 habitantes [27].
Contexto Social
Desde el año 2003, Argentina ha venido transitando un sendero de crecimiento, desarrollo
económico e inclusión social sin precedentes. Desde ese año, se inició un período de
recuperación del Estado nacional en el rol de direccionamiento de las políticas públicas
económicas y sociales y a través de diferentes medidas que fueron reconfigurando el
Estado y dando muestras de una gestión integral destinada a recomponer el tejido social.
Argentina ha dado muestras de la construcción de un nuevo paradigma en las políticas
18
sociales, especialmente a partir de una visión crítica, centrada en la experiencia obtenida,
respecto de los programas neoliberales sostenidos por algunos organismos multilaterales
de crédito. La seguridad social fue una de las áreas donde se comenzaron a concretar
políticas que daban cuenta de las nuevas necesidades surgidas tras la crisis económica y
el consecuente deterioro del Estado de bienestar. Así, en 2005, se anunció el Plan de
Inclusión Previsional, poniendo de manifiesto la capacidad del Estado nacional de incluir
nuevas realidades constituidas en el marco de las reconfiguraciones del mercado de
trabajo a partir de la desregularización y flexibilización que se inició desde mediados de
los años ´70 en nuestro país [4].
Como es evidente, la calidad de vida y la esperanza de vida aumentaron. Sin embargo,
los índices de criminalidad se dispararon paralelamente con el avance de calidad social.
Como se verá más adelante, estos indicadores se repiten en toda la región de América
Latina.
Contexto Económico
Según estudios realizados en ALC [4] el costo del crimen promedio por país en 2014 fue
del 3% del producto interno bruto (PBI), con un límite inferior de 2,41% y un límite
superior de 3,55% del PBI, y una amplia gama de variaciones que ilustran la
heterogeneidad en términos de crimen que tiene la región. En algunos países, los costos
de la delincuencia son el doble del promedio regional (especialmente en Centroamérica)
mientras que en otros países implican menos de la mitad.
El porcentaje del PBI que un país invierte en seguridad tiene una correlación directa con
la situación actual de dicho país en temas delictivos. Es probable que un país que tiene
graves problemas de seguridad destine un porcentaje mayor de su PBI en el combate de
esta.
Argentina ocupa el puesto 21 de escala mundial en PBI [10] con 541.748 (Millones de
Dólares USD). Como se verá más adelante Argentina invierte un 4% de su PBI en materia
de seguridad, esto equivale a 21.669 (Millones de Dólares USD).
En la figura 2.3 se presenta una comparación de los costos de la delincuencia en ALC
con los de un conjunto de países desarrollados: Australia, Canadá, Francia, Alemania,
Reino Unido y Estados Unidos. Los costos medios en los países de ALC son superiores
a los de todos los países desarrollados en cada componente.
19
Figura 2.4 Costos del crimen, comparación internacional, 2014.
Los costos privados y de victimización (es la tendencia de una persona a considerarse
víctima o a hacerse pasar por tal) son considerablemente más bajos en los países
desarrollados. Solo en los costos sociales de la prisión en algunos países desarrollados se
aproximan a las cifras latinoamericanas, básicamente debido a las tasas de
encarcelamiento relativamente altas de Australia y Reino Unido. Estados Unidos es la
clara excepción, con costos de encarcelamiento en torno al 0,45% del PBI. En general,
esta comparación ilustra nuevamente los costos excepcionalmente elevados del crimen
en ALC. En la Figura 2.4 presenta los resultados para cada país expresados como
proporción del PBI. Allí puede verse que la composición de los costos relacionados.
Figura 2.5 Costos del crimen (límite superior) como porcentaje del PBI, ALC, 2014
20
Situación regional
Según datos oficiales [24], Tandil ha sufrido un aumento exponencial en la cantidad de
habitantes, los datos del último censo oficial se muestran en la figura 2.5 INDEC [3], así
también como en la actividad comercial, seguida paralelamente con los índices delictivos.
Según relevamientos realizados por “El diario de Tandil” en 2015 la tasa de delitos se
disparó y notas actuales aseguran que la situación de inseguridad se siente de primera
mano. En la figura 2.6 se presenta un “Mapa del delito”.
Figura 2.6 Cantidad de habitantes por miles, Tandil según datos oficiales INDEC [3].
Figura 2.7 “Mapa del delito” Tandil [24]
21
Ley N.º 12.154 de Seguridad Pública
Tal cual lo indica la Ley N.º 12.154 de Seguridad Pública [21], desde mayo del corriente
año, Tandil cuenta con un Foro Municipal de Seguridad. La ley 12.154 en su artículo 20
determina que los Foros Municipales de Seguridad estarán integrados por el titular del
Departamento Ejecutivo del Municipio o un representante designado por éste, miembros
del Departamento Deliberativo del Municipio conforme a criterios de proporcionalidad
en la representación partidaria, representantes de organizaciones o entidades
comunitarias y sectoriales de carácter municipal, y un representante de instituciones
religiosas.
La presente Ley establece las bases jurídicas e institucionales fundamentales del sistema
provincial de seguridad pública en lo referente a su composición, misiones, funciones,
organización, dirección, y funcionamiento; así como las bases jurídicas e institucionales
para la formulación, gestión y control de las políticas y directivas de seguridad pública
en el ámbito provincial. Dicha Ley en “TÍTULO III PARTICIPACIÓN
COMUNITARIA” [21] y artículos del 10 al 18, se hace especial referencia a la
participación de la comunidad en pos de preservar la seguridad. Así por ejemplos se cita:
ARTÍCULO 12.- La participación comunitaria se efectiviza en la actuación en los Foros
Vecinales de Seguridad, los Foros Municipales de Seguridad, los Foros departamentales
de Seguridad, y por los Defensores Municipales de la Seguridad.
ARTÍCULO 16.- Los Foros Vecinales de Seguridad tendrán como funciones:
a) Entender e intervenir en las cuestiones atinentes a la seguridad pública vecinal.
b) Evaluar el funcionamiento y las actividades de las Policías de la Provincia y de
los prestadores del servicio de seguridad privada, en su ámbito de actuación.
c) Formular sugerencias y propuestas y solicitar informes a los titulares de las
Comisarías.
d) Intervenir en los planes de prevención de actividades y hechos delictivos o
vulneratorios de la seguridad pública y en los planes de mantenimiento de la
situación de seguridad pública desarrollados por las Comisarías correspondientes
a su ámbito de actuación.
e) Derivar inquietudes y demandas comunitarias y formular propuestas al Foro
Municipal de Seguridad que corresponda.
22
f) Informar y asesorar a los vecinos acerca de toda cuestión o asunto atinente a la
seguridad pública en el ámbito vecinal.
g) Invitar a autoridades o funcionarios públicos provinciales y/o municipales, con
actuación en su ámbito territorial, para tratar cuestiones y asuntos atinentes a la
seguridad pública del ámbito vecinal.
Con esta ley se busca participación por parte de la comunidad. Y declara que cada foro
vecinal de seguridad establecerá su organización, sus normas de funcionamiento y dictará
su propio reglamento. Así también como la utilización de herramienta especialmente
dedicadas.
23
Seguridad y tecnologías.
Tandil sigue el ejemplo de diferentes municipios que fueron los pioneros en instalar
cámaras de seguridad como elementos de seguridad en Argentina (La municipalidad de
Tigre fue quizás la más emblemática), en enero del corriente año confirmó el inicio del
proceso de licitación pública para la instalación de 200 nuevas cámaras de
videovigilancia en distintos sectores de la ciudad, que se sumarán a las 100 ya en
funcionamiento, en la figura 2.7 se muestra la distribución de las actuales. El objetivo es
ampliar el sistema de monitoreo permanente para la prevención y la protección
ciudadana. Desde la Secretaría de Protección Ciudadana anunciaron que se pondrá en
marcha la licitación pública destinada a la instalación de 165 nuevos puntos de captura
de imagen en diversos sectores de la planta urbana, con un mínimo de 200 cámaras entre
las del tipo domos y fijas. La iniciativa contempla también el tendido de nuevas redes de
fibra óptica para la interconexión y la ampliación del actual Centro de Monitoreo
municipal. La millonaria inversión requerida será financiada con los fondos afectados de
la Tasa Complementaria de Protección Ciudadana. La millonaria inversión no solo llega
a la instalación de las cámaras, sino que también a la capacitación de los recursos
humanos que cumplirán los roles de observadores.
Figura 2.8 Distribución de cámaras de seguridad Tandil – Datos Oficiales
24
Analizando la información disponible a los ciudadanos, en su página oficial [25] el
Municipio de Tandil da información de licitaciones públicas y privadas de seguimientos,
se tiene por ejemplo se muestran los datos de LICITACIÓN PRIVADA 29, con Apertura:
19/06/2018 y su presupuesto oficial es de $ 170600, datos observados en la figura 2.8
Figura 2.9 Licitación privada 29 – 2018 Municipalidad de Tandil [25].
Se detalla la compra de 5 cámaras con un importe unitario de $ 114.042 como la que se
ve en la figura 2.9, además de 50 cámaras con un valor unitario de $ 10831.5 como la que
se observa en la figura 2.10.
Figura 2.10 Domo exterior tipo PTZ
Figura 2.11 Cámara fija, tipo IP, bullet.
25
Centro de Monitoreo Tandil (CMT)
Paralelamente a la instalación de cámaras, se creó el centro de monitoreo Tandil (CMT),
figura 2.11. Según se informa se controlará durante 24 horas los 365 días del año, la red
de más de 100 cámaras, instaladas en diferentes lugares de la ciudad, los botones
antipánico para víctimas de violencia de género, el AVL para el control de los patrulleros
policiales, y los nuevos móviles municipales para Inspección General. En el centro
trabajarán 27 personas para cubrir los turnos durante todos los días del año. Son agentes
municipales que han recibido capacitación para poder desempeñarse en los puestos de
trabajo. Además, hay un policía las 24 horas que permite tener comunicación directa,
para de esta manera, enviar móviles o efectivos a un lugar en el que por las cámaras se
detecta un hecho sospechoso o que llame la atención.
Figura 2.12 Centro de Monitoreo Tandil (CMT)
Seguridad Privada
Si analizamos la seguridad privada, existen 2 tipos de empresas prestadoras de seguridad
(en cuanto a sistemas de alarma para el hogar), las que cobran por instalar la alarma y
luego una cuota mensual por monitoreo y las que solo cobran por instalación, estas
últimas carecen de supervisión.
La mayoría de las alarmas ofrece sistemas que se mantienen en permanente contacto su
propiedad, comercio o industria con la central receptora de alarmas, cuyo diseño se
orienta a facilitar la atención telefónica de urgencia ante un robo, asalto, emergencias
médicas o incendio, siendo la unidad de contacto más rápida, flexible y de fácil acceso
26
para dar aviso con la premura que el evento merece a las autoridades que correspondan.
Estas son las que cobran la instalación y además un costo fijo por mes, por el servicio de
monitoreo, en la Figura 2.12 se observa un mapa de las empresas prestadoras de este tipo
de servicio.
Figura 2.13 Mapa de empresas prestadoras de servicios de seguridad privada.
27
Por otro lado, tenemos kits de alarmas que son autoinstalables, estos varían en
complejidad y costo, pero sus principales objetivos son alertar a los habitantes del hogar
y al mismo tiempo de desalentar a los extraños que desean ingresar al hogar. Si
despreciamos los costos de instalación, tenemos el ejemplo de una alarma para el exterior
de un hogar figura 2.13.
Figura 2.14 Kit de alarma exterior autoinstalable.
28
Capítulo 3: Elección de tecnologías
En este capítulo se realiza un repaso por las tecnologías elegidas para realizar la
implementación de SAVI. El objetivo de este capítulo es mostrar el resultado final de las
elecciones de las tecnologías en las cuales va a ser desarrollada la aplicación.
Marco tecnológico
Al seleccionar una tecnología uno de los criterios más importantes es cómo se integrará
en los procesos y las aplicaciones existentes. A fin de poderlo cuantificar y medir, es
necesario comprender con todo detalle el entorno y las aplicaciones potencialmente
afectadas. Cualquier tecnología deberá funcionar en un entorno existente. Al seleccionar
una tecnología una consideración clave debe ser la capacidad de dicha tecnología de
adaptarse de forma rentable al entorno técnico y a los procesos existentes.
Android
Android constituye una pila de software pensada especialmente para dispositivos móviles
y que incluye tanto un sistema operativo, como middleware (es un software que asiste a
una aplicación para interactuar o comunicarse con otras aplicaciones, o paquetes de
programas, redes, hardware y/o sistemas operativos) y diversas aplicaciones de usuario.
Representa la primera incursión seria de Google en el mercado móvil y nace con la
pretensión de extender su filosofía a dicho sector. Todas las aplicaciones para Android se
programan en lenguaje Java y son ejecutadas en una máquina virtual especialmente
diseñada para esta plataforma, que ha sido bautizada con el nombre de Dalvik. Se
proporciona a los desarrolladores de forma gratuita un SDK y la opción de un plug-in
para el entorno de desarrollo Eclipse o Android Studio varios que incluyen todas las API
necesarias para la creación de aplicaciones, así como un emulador integrado para su
ejecución. Existe además disponible una amplia documentación de respaldo para
cualquier SDK [15].
Android busca reunir en una misma plataforma todos los elementos necesarios que
permitan al desarrollador controlar y aprovechar al máximo cualquier funcionalidad
ofrecida por un dispositivo móvil (llamadas, mensajes de texto, cámara, agenda de
contactos, conexión Wi-Fi, Bluetooth, aplicaciones ofimáticas, videojuegos, etc.), así
como poder crear aplicaciones que sean verdaderamente portables, reutilizables y de
rápido desarrollo. En otras palabras, Android quiere mejorar y estandarizar el desarrollo
29
de aplicaciones para cualquier dispositivo móvil y, por ende, acabar con la perjudicial
fragmentación existente hoy día. Además de todo ello, otro aspecto básico para entender
la aparición de Android es que pretende facilitar la integración de estos dispositivos con
las posibilidades cada día mayores ofrecidas por la Web. Por ejemplo, una aplicación
desarrollada en Android podría ser aquella que indicase al usuario, a través de Google
Maps, la localización de sus diferentes contactos de la agenda y que avisasen cuando
éstos se encuentren a una distancia cercana o en una ubicación determinada. Mejorar el
desarrollo y enriquecer la experiencia del usuario se convierte, por tanto, en la gran
filosofía de Android y en su principal objetivo.
La justificación de la elección de Android como framework, radica directamente en las
características ofrecidas, listadas a continuación:
● Busca el desarrollo rápido de aplicaciones, que sean reutilizables y
verdaderamente portables entre diferentes dispositivos.
● Los componentes básicos de las aplicaciones se pueden sustituir fácilmente por
otros.
● Cuenta con su propia máquina virtual, Dalvik, que interpreta y ejecuta código
escrito en Java.
● Permite la representación de gráficos 2D y 3D.
● Posibilita el uso de bases de datos.
● Soporta un elevado número de formatos multimedia.
● Servicio de localización GSM.
● Controla los diferentes elementos hardware: Bluetooth, Wi-Fi, cámara
● fotográfica o de vídeo, GPS, acelerómetro, infrarrojos, etc., siempre y cuando el
dispositivo móvil lo contemple.
● Cuenta con un entorno de desarrollo muy cuidado mediante un SDK disponible
de forma gratuita.
● Ofrece un plug-in para uno de los entornos de desarrollo más populares, Eclipse,
y un emulador integrado para ejecutar las aplicaciones.
30
En el siguiente gráfico se muestran los porcentajes uso de las diferentes versiones de
Android, figura 3.1.
Figura 3.15 API Distribución de versiones [16]
Activity
Es el componente más habitual de las aplicaciones para Android. Un componente Activity
refleja una determinada actividad llevada a cabo por una aplicación, y que lleva asociada
típicamente una ventana o interfaz de usuario; es importante señalar que no contempla
únicamente el aspecto gráfico, sino que éste forma parte del componente Activity a través
de vistas representadas por clases cómo View y sus derivadas. Este componente se
implementa mediante la clase de mismo nombre Activity [15].
La mayoría de las aplicaciones permiten la ejecución de varias acciones a través de la
existencia de una o más pantallas. Por ejemplo, piénsese en una aplicación de mensajes
de texto. En ella, la lista de contactos se muestra en una ventana. Mediante el despliegue
de una segunda ventana, el usuario puede escribir el mensaje al contacto elegido, y en
otra tercera puede repasar su historial de mensajes enviados o recibidos. Cada una de
estas ventanas deberías estar representada a través de un componente Activity, de forma
que navegar de una ventana a otra implica lanzar una actividad o dormir otra. Android
permite controlar por completo el ciclo de vida de los componentes Activity.
31
Muy vinculado a este componente se encuentran los Intents. Un Intent consiste
básicamente en la voluntad de realizar alguna acción, generalmente asociada a unos
datos. Lanzando un Intent, una aplicación puede delegar el trabajo en otra, de forma que
el sistema se encarga de buscar qué aplicación entre las instaladas es la que puede llevar
a cabo la acción solicitada. Por ejemplo, abrir una URL en algún navegador web, o
escribir un correo electrónico desde algún cliente de correo.
Broadcast Intent Receiver
Un componente Broadcast Intent Receiver se utiliza para lanzar alguna ejecución de
adentro de la aplicación actual cuando un determinado evento se produzca (generalmente,
abrir un componente Activity). Por ejemplo, una llamada entrante o un SMS recibido. No
tiene interfaz de usuario asociada, pero puede utilizar el API Notification Manager,
mencionada anteriormente, para avisar al usuario del evento producido a través de la barra
de estado del dispositivo móvil. Este componente se implementa a través de una clase de
nombre Broadcast Receiver.
Para qué Broadcast Intent Receiver funcione, no es necesario que la aplicación en
cuestión sea la aplicación activa en el momento de producirse el evento. El sistema
lanzará la aplicación si es necesario cuando el evento monitorizado tenga lugar.
Service
Un componente Service representa una aplicación ejecutada sin interfaz de usuario, y que
generalmente tiene lugar en segundo plano mientras otras aplicaciones (éstas con
interfaz) son las que están activas en la pantalla del dispositivo. Un ejemplo típico de este
componente es un reproductor de música. La interfaz del reproductor muestra al usuario
las distintas canciones disponibles, así como los típicos botones de reproducción, pausa,
volumen, etc. En el momento en el que el usuario reproduce una canción, ésta se escucha
mientras se siguen visionando todas las acciones anteriores, e incluso puede ejecutar una
aplicación distinta sin que la música deje de sonar. La interfaz de usuario del reproductor
sería un componente Activity, pero la música en reproducción sería un componente
Service, porque se ejecuta en background. Este elemento está implementado por la clase
de mismo nombre Service.
Content Provider
Con el componente Content Provider, cualquier aplicación en Android puede almacenar
datos en un fichero, en una base de datos SQLite o en cualquier otro formato que
32
considere. Además, estos datos pueden ser compartidos entre distintas aplicaciones. Una
clase que implemente el componente Content Provider contendrá una serie de métodos
que permite almacenar, recuperar, actualizar y compartir los datos de una aplicación.
Existe una colección de clases para distintos tipos de gestión de datos en el paquete
“android.provider”. Además, cualquier formato adicional que se quiera implementar
deberá pertenecer a este paquete y seguir sus estándares de funcionamiento.
Ciclo de vida Android
En Android, cada aplicación se ejecuta en su propio proceso. Esto aporta beneficios en
cuestiones básicas como seguridad, gestión de memoria, o la ocupación de la CPU del
dispositivo móvil. Android se ocupa de lanzar y parar todos estos procesos, gestionar su
ejecución y decidir qué hacer en función de los recursos disponibles y de las órdenes
dadas por el usuario.
El usuario desconoce este comportamiento de Android. Simplemente es consciente de
que mediante un simple clic pasa de una a otra aplicación y puede volver a cualquiera de
ellas en el momento que lo desee. No debe preocuparse de cuál es la aplicación que
realmente está activa, cuánta memoria está consumiendo, ni si existen o no recursos
suficientes para abrir una aplicación adicional. Todo eso son tareas propias del sistema
operativo.
Android lanza tantos procesos como permitan los recursos del dispositivo. Cada proceso,
correspondiente a una aplicación, estará formado por una o varias actividades
independientes (componentes Activity) de esa aplicación. Cuando el usuario navega de
una actividad a otra, o abre una nueva aplicación, el sistema duerme dicho proceso y
realiza una copia de su estado para poder recuperarlo más tarde. El proceso y la actividad
siguen existiendo en el sistema, pero están dormidos y su estado ha sido guardado. Es
entonces cuando crea, o despierta si ya existe, el proceso para la aplicación que debe ser
lanzada, asumiendo que existan recursos para ello. Cada uno de los componentes básicos
de Android tiene un ciclo de vida bien definido; esto implica que el desarrollador puede
controlar en cada momento en qué estado se encuentra dicho componente, pudiendo así
programar las acciones que mejor convengan. El componente Activity, probablemente el
más importante, tiene un ciclo de vida [17] como el mostrado en la figura 3.2.
33
Figura 3.2 Ciclo de vida Activity [17]
Firebase
Firebase es una plataforma de back-end como servicio, que dispone de una serie de
herramientas para el desarrollo de aplicaciones: el almacenamiento y sincronización de
datos en la nube, medición del comportamiento del usuario y soluciones para monetizar
productos. Está diseñada para integrar aplicaciones web y móviles. Permite trabajar con
BD documentales con formato JSON. No es necesario configuraciones a nivel servidor
para procesar solicitudes [30].
Firebase es una plataforma desarrollada por Google que facilita el desarrollo de apps,
proporcionando un servidor backend para las aplicaciones. Además, el mismo backend
puede ser utilizado de forma común en diversas plataformas: Android, IOS y web.
Firebase proporciona una solución eficaz frente no solo a problemas de desarrollo, sino
34
también de escalabilidad a medida que la base de usuarios de la aplicación crece, ya que
los servidores son proporcionados por Google. Entre sus funcionalidades se encuentra un
servicio de autenticación, base de datos en tiempo real, almacenamiento de archivos,
solución de errores, funciones backend, testeo, y medida de estadísticas recogidas de los
usuarios. Las características de esta API son [28]:
● Base de datos en tiempo real: Firebase proporciona una base de datos no SQL que
almacena datos y los sincroniza en tiempo real. Esto ha sido utilizado para
almacenar todos los datos de las apuestas realizadas, los resultados, datos de los
usuarios como los puntos de los que disponen, y en general, cualquier dato de la
aplicación que necesite ser guardado.
● Autenticación: Firebase proporciona un método de registro e inicio de sesión que
no solo incluye autenticación a través de correo, sino que también permite la
autenticación a través de proveedores externos como Facebook, Twitter, Github
y Google.
● Almacenamiento de archivos: Esta característica se ha utilizado para almacenar
ciertas imágenes que la aplicación utiliza, así como las fotos de perfil del usuario.
Aunque algunas de las imágenes se podrían haber guardado de forma local, se ha
decidido hacerlo de esta forma para garantizar que se puedan añadir nuevos
juegos y categorías a la aplicación sin necesidad de que los usuarios la actualicen,
simplemente utilizando la base de datos y el almacenamiento.
● Funciones backend: Firebase permite ejecutar código Javascript en el servidor.
Por ejemplo, notificaciones de tipo push que han de llegar a una serie de
dispositivos cuando se produce un cambio en la base de datos.
Realtime Database
Firebase Realtime Database es un servicio de la plataforma que permite almacenar y
sincronizar datos con una base de datos NoSQL alojada en la nube. Los datos se
sincronizan con todos los clientes en tiempo real y seguirá estando disponible cuando la
app pierda la conexión. La Firebase Realtime Database es una base de datos alojada en
la nube. Los datos se almacenan en formato JSON y se sincronizan en tiempo real con
cada cliente conectado. Cuando se crean apps multiplataforma con teléfonos iOS,
Android y los SDK de JavaScript, todos los clientes comparten una instancia de Realtime
Database y reciben actualizaciones de forma automática con los datos más nuevos.
35
● Tiempo real: en lugar de solicitudes típicas de HTTP, la Firebase Realtime
Database usa sincronización de datos —cada vez que los datos cambian, cualquier
dispositivo conectado recibe esa actualización dentro de milisegundos.
Proporciona experiencias colaborativas e inmersivas sin pensar en el código de
red.
● Trabajo sin conexión: Las apps de Firebase se mantienen receptivas incluso
cuando están sin conexión porque el SDK Firebase Realtime Database hace que
tus datos persistan en el disco. Una vez que la conectividad se restablece el
dispositivo del cliente recibe cualquier modificación que se haya perdido,
sincronizándolo con el estado actual del servidor.
● Accesible desde los dispositivos del cliente: Se puede acceder de forma directa a
Firebase Realtime Database desde un dispositivo móvil o desde el navegador web,
no se necesita un servidor de apps. 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.
La Firebase Realtime Database permite crear apps potentes y colaborativas permitiendo
un acceso seguro a la base de datos de forma directa desde el código del cliente. Los datos
persisten de manera local, e incluso cuando no hay conexión, los eventos en tiempo real
se siguen activando, brindándole al usuario final una experiencia receptiva. Cuando el
dispositivo recupera la conexión, la Realtime Database sincroniza las modificaciones
locales de datos con las actualizaciones remotas que ocurrieron mientras el cliente no
tenía conexión, fusionando cualquier conflicto de forma automática.
La Realtime Database proporciona un lenguaje de reglas flexibles basadas en expresiones
llamado Security Rules de Firebase Realtime Database , para definir el modo en que tus
datos se deben estructurar y el momento en que se pueden someter a lectura y escritura.
Cuando se integra con Firebase Authentication, los desarrolladores pueden definir quién
accede a qué datos y cómo pueden acceder al mismo.
La Realtime Database es una base de datos NoSQL y como tal tiene diferentes
optimizaciones y funcionalidad en comparación con una base de datos relacional. La API
Realtime Database está diseñada para permitir operaciones que se pueden ejecutar de
forma rápida. Esto te permite crear una gran experiencia en tiempo real que le puede
36
servir a millones de usuarios sin comprometerse con la capacidad de respuesta. Debido a
esto, es importante pensar en el modo en que los usuarios necesitan acceder a tus datos y
luego estructurarlos de forma adecuada.
NoSQL
Se refiere a una amplia clase de sistemas de gestión de datos (mecanismos para el
almacenamiento y recuperación de datos) que difieren, en aspectos importantes, del
modelo clásico de relaciones entre entidades (o tablas) existente en los sistemas de
gestión bases de datos relacionales, siendo el más destacado el que no usan SQL como
lenguaje principal de consulta.
Aunque son conocidas desde la década de los 60 del pasado siglo, su auge actual viene
determinado por el uso que, de estos sistemas han hecho las principales compañías de
internet como Amazon, Google, Twitter y Facebook. Estas compañías tenían que
enfrentarse a nuevos desafíos en el tratamiento de los datos motivados por el enorme
crecimiento de la Web donde se requería dar respuesta a la necesidad de proporcionar
información procesada a partir de grandes volúmenes de datos con unas estructuras
horizontales, más o menos, similares y con aplicaciones web que debían dar respuesta a
las peticiones de un número elevado e indeterminado de usuarios en el menor tiempo
posible. Estas compañías se dieron cuenta de que el rendimiento y sus necesidades de
tiempo real eran más importantes que la consistencia de los datos, aspecto este último al
que las bases de datos relacionales tradicionales dedicaban una gran cantidad de tiempo
de proceso.
Las características comunes entre todas las implementaciones de bases de datos NoSQL
suelen ser las siguientes:
● Consistencia Eventual: A diferencia de las bases de datos relacionales
tradicionales, en la mayoría de los sistemas NoSQL, no se implementan
mecanismos rígidos de consistencia que garanticen que cualquier cambio llevado
a cabo en el sistema distribuido sea visto, al mismo tiempo, por todos los nodos y
asegurando, también, la no violación de posibles restricciones de integridad de
los datos u otras reglas definidas. En su lugar y para obtener un mayor
rendimiento, se ofrece el concepto de “consistencia eventual”, en el que los
cambios realizados “con el tiempo” serán propagados a todos los nodos por lo
37
que, una consulta podría no devolver los últimos datos disponibles o proporcionar
datos inexactos, problema conocido como lecturas sucias u obsoletas. Asimismo,
en algunos sistemas NoSQL se pueden presentar pérdidas de datos en escritura.
Esto se conoce también como BASE (Basically Available Soft-state Eventual
Consistency), en contraposición a ACID (Atomicity, Consistency, Isolation,
Durability), su analogía en las bases de datos relacionales.
● Flexibilidad en el esquema: En la mayoría de base de datos NoSQL, los esquemas
de datos son dinámicos; es decir, a diferencia de las bases de datos relacionales
en las que, la escritura de los datos debe adaptarse a unas estructuras(o tablas,
compuestas a su vez por filas y columnas) y tipos de datos pre-definidos, en los
sistemas NoSQL, cada registro (o documento, como se les suele llamar en estos
casos) puede contener una información con diferente forma cada vez, pudiendo
así almacenar sólo los atributos que interesan en cada uno de ellos, facilitando el
polimorfismo de datos bajo una misma colección de información. También se
pueden almacenar estructuras complejas de datos en un sólo documento, como
por ejemplo almacenar la información sobre una publicación de un blog (título,
cuerpo de texto, autor, etc) junto a los comentarios y etiquetas vertidos sobre el
mismo, todo en un único registro.
● Escalabilidad horizontal: Por escalabilidad horizontal se entiende la posibilidad
de incrementar el rendimiento del sistema añadiendo, simplemente, más nodos
(servidores) e indicando al sistema cuáles son los nodos disponibles.
● Estructura distribuida: Generalmente los datos se distribuyen, entre los diferentes
nodos que componen el sistema. Hay dos estilos de distribución de datos:
○ Particionado (ó Sharding): El particionado distribuye los datos entre
múltiples servidores de forma que, cada servidor, actúe como única fuente
de un subconjunto de datos. Normalmente, a la hora de realizar esta
distribución, se utilizan mecanismos de tablas de hash distribuidas (DHT).
○ Réplica: La réplica copia los datos entre múltiples servidores, de forma
que cada bit de datos pueda ser encontrado en múltiples lugares. Esta
réplica puede realizarse de dos maneras:
■ Réplica maestro-esclavo en la que un servidor gestiona la escritura
de la copia autorizada mientras que los esclavos se sincronizan con
este servidor maestro y sólo gestionan las lecturas.
38
■ Réplica peer-to-peer en la que se permiten escrituras a cualquier
nodo y ellos se coordinan entre sí para sincronizar sus copias de
los datos
● Tolerancia a fallos y Redundancia: Pese a lo que cualquiera pueda pensar cuando
se habla de NoSQL, no todas las tecnologías existentes bajo este paraguas usan el
mismo modelo de datos ya que, al ser sistemas altamente especializados, la
idoneidad particular de una base de datos NoSQL dependerá del problema a
resolver. Así a todo, podemos agrupar los diferentes modelos de datos usados en
sistemas NoSQL en cuatro grandes categorías:
○ Base de datos de Documentos: Este tipo de base de datos almacena la
información como un documento, usando para habitualmente para ello
una estructura simple como JSON, BSON o XML y donde se utiliza una
clave única para cada registro. Este tipo de implementación permite,
además de realizar búsquedas por clave–valor, realizar consultas más
avanzadas sobre el contenido del documento. Son las bases de datos
NoSQL más versátiles.
○ Almacenamiento Clave-Valor: Son el modelo de base de datos NoSQL
más popular, además de ser la más sencilla en cuanto a funcionalidad. En
este tipo de sistema, cada elemento está identificado por una clave única,
lo que permite la recuperación de la información de forma muy rápida,
información que suele almacenarse como un objeto binario. Se
caracterizan por ser muy eficientes tanto para las lecturas como para las
escrituras.
○ Bases de datos de grafos: Usadas para aquellos datos cuyas relaciones se
pueden representar adecuadamente mediante un grafo. Los datos se
almacenan en estructuras grafo con nodos (entidades), propiedades
(información entre entidades) y líneas (conexiones entre las entidades).
○ Base de datos Columnar (o Columna ancha): En vez de “tablas”, en las
bases de datos de columna tenemos familias de columnas que, son los
contenedores de las filas. A diferencia de los RDBMS, no necesita conocer
de antemano todas las columnas, cada fila no tiene por qué tener el mismo
número de columnas. Este tipo de bases de datos se adecuan mejor a
operaciones analíticas sobre grandes conjuntos de datos.
39
Mapas
Google Maps es un servidor de aplicaciones de mapas en la web que pertenece a Alphabet
Inc. Ofrece imágenes de mapas desplazables, así como fotografías por satélite del mundo
e incluso la ruta entre diferentes ubicaciones o imágenes a pie de calle con Google Street
View.
Los usuarios pueden ingresar una dirección, una intersección o un área en general para
buscar en el mapa. Las coordenadas de Google Maps están en el sistema WGS842 y se
mostrará la latitud y la longitud, positiva para Norte y Este, negativa para Sur y Oeste.
El alcance de esta herramienta incluida para SAVI es la inclusión de un iframe que
permite obtener una vista satelital y la obtención de coordenadas en base a un punto.
La latitud mide el ángulo entre cualquier punto y el ecuador. Las líneas de latitud se
llaman paralelos y son círculos paralelos al ecuador en la superficie de la Tierra. La latitud
es la distancia que existe entre un punto cualquiera y el Ecuador, medida sobre el
meridiano que pasa por dicho punto.
La longitud mide el ángulo a lo largo del ecuador desde cualquier punto de la Tierra. Se
acepta por convención que Greenwich en Londres es la longitud 0. Las líneas de longitud
son círculos máximos que pasan por los polos y se llaman meridianos.
Todos los puntos ubicados sobre el mismo meridiano tienen la misma longitud.
Figura 3.3 Latitud y Longitud
40
Agentes y Multiagentes
La terminología de agentes es usada para referirse a un amplio rango de soluciones que
son propuestas por diversas organizaciones para diferentes propósitos. El término agente
es por sí mismo completamente evocativo de habilidades humanas para la resolución de
problemas y es frecuentemente usado sin una definición precisa, o sin definición al fin
[20].
Un sistema multiagente es básicamente un conjunto de agentes autónomos capaces de
trabajar de forma conjunta para resolver un problema [4]. Estos sistemas deben cumplir
una serie de condiciones para que puedan ser catalogados como tal. Como mínimo, uno
de los agentes debe ser autónomo y debe existir por lo menos una relación entre dos
agentes, en donde uno de ellos satisfaga alguno de los objetivos del otro. Además,
cualquiera de los agentes debe poseer una capacidad limitada para resolver el problema
de forma independiente.
La elección de agentes como una solución tecnológica responde a diferentes
observaciones:
● El dominio involucra una distribución inherente de datos, capacidades para
resolver problemas y responsabilidades.
● La necesidad de mantener la integridad. de 1::1 estructura de la organización y la
autonomía de sub partes.
● Las interacciones son sofisticadas, incluyen negociación, compartir información
y coordinación.
Los sistemas multiagentes son, en muchos casos, sistema distribuidos. Como tales están
compuestos por un número determinado de unidades computacionales. Sin embargo, a
diferencia de los sistemas distribuidos clásicos, ellos y sus entidades computacionales
son inteligentes.
Un sistema es inteligente si se necesitan, para propósitos intuitivos o científicos, atribuir
conceptos cognitivos tales como intenciones y creencias para caracterizar, entender,
analizar o predecir su comportamiento. La tendencia creciente al desarrollo de sistemas
inteligentes se aparea con la tendencia hacia la distribución de la computación. La ciencia
de los agentes multiagentes descansa en la interacción de estas tendencias. Los sistemas
multiagentes son de gran significación en un número de aplicaciones corrientes y futuras
de ciencias de la computación.
41
Los avances en estos estudios permitirán el desarrollo de sistemas inteligentes
independientes unos de otros y su reusó como componentes de nuevos sistemas. Estos
componentes pueden ser pensadas como miembros agentes en el nuevo sistema
multiagente. Esta modularización es útil, también, cuando se diseñan sistemas para
aplicaciones, tales como diagnóstico médico, en los cuales la experiencia está
inherentemente distribuida sobre agentes que se especializan, en diferentes dominios. Un
sistema diseñado como un sistema multiagente puede ser más robusto que si fuera
diseñado como tal, dado que la adquisición y validación de los requerimientos de diseño
es más simple para tales sistemas. Estos tipos de sistemas pueden ser muy simples para
diseño de muchas aplicaciones, incluyendo planeamiento de manufactura y control de
tráfico aéreo, permitiendo que un agente inteligente sea ubicado en el sitio donde los
datos están disponibles y donde tienen que tomarse las decisiones necesarias.
Taxonomía
La taxonomía es la ciencia en la que se clasifican los organismos y se establecen
parámetros de diferencia, creando familias, ramas y conjuntos de razas, La taxonomía es
estudiada bajo el sistema taxonómico de Linneo, en honor al biólogo Carlos Linneo (1707
– 1778) se le atribuye ser el más completo y acertado, sin embargo, al paso del tiempo se
le han realizado modificaciones pero se trata básicamente de la división de los organismos
en 7 clases, llamadas Taxones: 1- Reino, 2- Phylum, 3- Clase, 4- Orden, 5- Familia, 6-
Género y 7- Especies.
A semejanza del modelo biológico “Al nivel de Reino” podríamos clasificar los
agentes autónomos como biológicos, robóticos o computacionales. Estas parecen ser
clases naturales. Al nivel Phylum podemos subclasificar los agentes computacionales en
agentes de software y agentes con vida artificial de esta lógica se desprende una
clasificación más general observada en la figura 3.4.
42
Figura 3.4 Una taxonomía de clases de agentes
Como mínimo hay tres atributos primarios figura 3.5 que idealmente deberían exhibir:
autonomía, aprendizaje y cooperación con otros agentes. Usando estas tres características
mínimas podemos derivar cuatro tipos de agentes: agentes colaborativos, agentes
colaborativos que aprenden, agentes de interfaces y verdaderos agentes inteligentes.
Figura 3.5 Atributos primarios de agentes.
43
Según las estructuras de control
● Agentes reflejos que se limitan a clasificar las percepciones recibidas,
produciendo la respuesta respectiva, reaccionando a cada entrada sensorial, y que
siempre conocen qué hacer, es decir que no planean ni aprenden.
● Agentes que planean utilizando cualquiera de los mecanismos usuales de
razonamiento de la IA, o utilizando métodos de investigación de operaciones (OR
agents), o utilizando algoritmos aleatorios (randomizing agents), redes
neuronales, aprendizaje de máquina, etc.
● Agentes adaptativos, los cuales no únicamente planean, sino que también pueden
aprender
Según el ambiente en el que habitan
La relación que existe entre los agentes y los ambientes es siempre la misma: es el agente
quien ejerce sobre el ambiente, el que, a su vez, aporta percepciones al agente. Los
ambientes son de diversos tipos y condicionan el diseño de los agentes. Puede decirse
que los ambientes son:
● Accesibles o no accesibles
● Deterministas o no deterministas
● Episódicos o no episódicos
● Estáticos o dinámicos
● Discretos o continuos
Según sus atributos
Los principales atributos que pueden tener los agentes:
● Reactivo: El agente responde en un determinado tiempo a cambios en el ambiente.
● Autónomo: El agente no simplemente actúa como respuesta a estímulos en el
ambiente, sino que exhibe un comportamiento dirigido a lograr sus objetivos. Un
elemento clave de esta autonomía es su proactividad, su, habilidad para "tomar la
iniciativa" más que actuar simplemente en respuesta a su ambiente.
● Continuidad Temporal: El agente está continuamente en busca de sus objetivos.
● Comunicativo: El agente es capaz de comunicarse con otros agentes, tal vez con
personas.
44
● Aprender: La clave para lograr algún nivel de inteligencia, es la habilidad de
aprender. El aprendizaje puede también tomar la forma de desarrollo incremental
en el tiempo. El agente es capaz de realizar cambios en su ambiente basados en
su experiencia previa.
● Movilidad: Capaz de transportarse a sí mismo de un lugar a otro
● Flexibilidad: El agente es capaz de adaptarse a cambios inesperados en el
ambiente.
● Cooperación: En orden a cooperar, los agentes necesitan poseer una habilidad
social, por ejemplo, para interactuar con otros agentes y posiblemente humanos
vía algún lenguaje de comunicación.
● Carácter: Creíble personalidad y estado emocional
45
Capítulo 4: Diseño e implementación
En esta sección se presentan diagramas UML (Unified Modeling Language) del diseño
del sistema. En las subsecciones se detallan el diseño de cada uno de los componentes
del sistema. Para describir la interacción que existe entre diferentes objetos del sistema
se utilizan diagramas con notación UML.
Diagrama general de interacción
Antes de empezar a definir cada una de las partes, se va a mostrar un esquema general
que representa la interacción de la aplicación instalada en los dispositivos móviles que
funcionan como agentes, en conjunto con los api’s mediante un diagrama conceptual.
Figura 4.1 Diagrama conceptual de interacción SAVI.
Como se observa en la figura 4.1, como principal elemento se tienen los teléfonos de cada
usuario que integra el grupo de alerta vecinal, estos funcionan como agentes. Permitiendo
la interacción con cada uno de los integrantes, sin revelar información comprometida, por
ejemplo, el agente de un usuario determinado, puede informar si está ubicado o no en su
domicilio declarado, sin dar datos comprometidos de su ubicación actual. Cada agente no
conoce el todo, interactuando con otros agentes es que se genera una vista del todo.
Diagrama de componentes
Un diagrama de componentes representa cómo un sistema de software es dividido en
componentes y muestra las dependencias entre estos componentes. Los componentes
físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o
paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura de
46
software, pero pueden ser usados para modelar y documentar cualquier arquitectura de
sistema.
Debido a que los diagramas de componentes son más parecidos a los diagramas de casos
de usos, éstos son utilizados para modelar la vista estática y dinámica de un sistema.
Muestra la organización y las dependencias entre un conjunto de componentes. No es
necesario que un diagrama incluya todos los componentes del sistema, normalmente se
realizan por partes. Cada diagrama describe un apartado del sistema. En él se situarán
librerías, tablas, archivos, ejecutables y documentos que formen parte del sistema. Uno
de los usos principales es que puede servir para ver qué componentes pueden compartirse
entre sistemas o entre diferentes partes de un sistema.
En la figura 4.2 se presenta el diagrama de componentes.
Figura 4.2 Diagrama de componentes SAVI.
Modelo de Casos de Uso
Un caso de uso es una técnica de modelado usada para describir lo que debería hacer un
sistema nuevo o lo que hace un sistema que ya existe. Los casos de uso describen bajo la
forma de acciones y reacciones el comportamiento de un sistema desde el punto de vista
de un usuario, permiten definir los límites del sistema y las relaciones entre el sistema y
el entorno. Los componentes primarios de un modelo de casos de uso (case-use model)
son los casos de uso (use cases), los actores y el sistema modelado. Los casos de uso son
descripciones funcionales del sistema; describen cómo los actores pueden usar un
47
sistema. Los límites del sistema se definen por la funcionalidad que se maneja en el
sistema.
La funcionalidad se representa mediante diversos casos de uso, especificando cada uno
una funcionalidad completa (desde su inicio por parte de un actor externo hasta que haya
realizado la funcionalidad requerida). Un caso de uso siempre debe devolver algún valor
a un actor, siendo el valor cualquier cosa que el actor desee del sistema. El actor es una
entidad externa que tiene interés en interactuar con el sistema. A menudo, es una persona
que usa el sistema, pero también puede ser otro sistema o alguna clase de dispositivo
hardware que necesita interactuar con el sistema.
A continuación, en la figura 4.3 se presenta el diagrama de casos de uso.
Figura 4.3 Diagrama de casos de uso SAVI.
48
Especificación de Casos de Uso
RF-1 Registrarse
Versión 1.0 - 12/04/2018
Objetivos
asociados
Crear una cuenta de SAVI. Ingresando los datos necesarios.
Descripción El usuario instala la aplicación y desear crear una cuenta.
Precondición El usuario no debe tener otra cuenta abierta. Se considera unicidad del
campo mail.
Secuencia
Normal
Paso Acción
1 El usuario ingresa su correo.
2 El sistema verifica que los datos ingresados sean válidos.
3 El usuario ingresa su nombre de usuario y una contraseña.
4 El sistema verifica que los datos ingresados sean válidos.
Postcondición El usuario queda registrado en el sistema.
Excepciones Paso Acción
2.1 Si el correo es invalido se genera una alerta.
Si el correo ya fue asociado a una cuenta SAVI se genera alerta.
2.2 Vuelve al paso 1.
4.1 Se verifica que el nombre de usuario y la contraseña sean
válidos, de no serlo se genera una alerta.
4.2 Vuelve al paso 3.
RF-2 Iniciar Sesión
Versión 1.0 - 12/04/2018
49
Objetivos
asociados
Se accede a SAVI.
Descripción El usuario accede a las funcionalidades de SAVI.
Precondición El usuario debe tener una cuenta de usuario conocida y habilitada.
Secuencia
Normal
Paso Acción
1 El usuario ingresa su nombre de usuario
2 El usuario ingresa su contraseña.
3 El sistema verifica que los datos ingresados sean válidos
Postcondición El usuario queda logueado en el sistema.
Excepciones Paso Acción
3.1 Si el nombre de usuario o la contraseña si son incorrectas se
emite una alerta.
3.2 Vuelve al paso 1.
RF-3 Modificar Datos
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se modifican los datos del usuario.
Descripción El usuario ingresa sus datos personales y familiares.
Precondición El usuario debe estar logueado en el sistema.
Secuencia
Normal
Paso Acción
1 El usuario ingresa sus datos personales.
2 El sistema verifica que los datos ingresados sean válidos
3 El usuario ingresa sus datos familiares.
50
4 El sistema verifica que los datos ingresados sean válidos
Postcondición El usuario actualiza sus datos.
Excepciones Paso Acción
2.1 Si alguno de los datos personales es invalido se genera una
alerta.
2.2 Vuelve al paso 1.
4.1 Si alguno de los datos familiares es invalido se genera una
alerta.
4.2 Vuelve al paso 3.
RF-4 Agregar Domicilio
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se agrega un nuevo domicilio asociado a la cuenta.
Descripción El usuario ingresa datos del domicilio que desea asociar a la cuenta.
Precondición El usuario debe estar logueado en el sistema además de tener los datos
personales y familiar completados.
Secuencia
Normal
Paso Acción
1 El usuario ingresa los datos del domicilio que quiere asociar.
2 El sistema verifica que los datos ingresados sean válidos
Postcondición El usuario actualiza los datos de domicilio asociado.
Excepciones Paso Acción
2.1 Si el domicilio ingresado no es válido se genera una alerta.
2.2 Vuelve al paso 1.
51
RF-5 Crear Grupo Vecinal
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se agrega un nuevo grupo vecinal.
Descripción El usuario elige los datos que van a representar al grupo vecinal.
Precondición El usuario debe tener su perfil de datos completo.
Secuencia
Normal
Paso Acción
1 El usuario ingresa los datos del grupo respectivo.
2 El sistema valida que no se tenga suscripción a otro grupo.
3 El sistema verifica que los datos ingresados sean válidos
4 Se crea un nuevo grupo con el usuario que lo creó registrado.
Postcondición El usuario crea un nuevo grupo SAVI.
Excepciones Paso Acción
1.1 Si alguno de los datos no es válido.
1.2 Vuelve al paso 1.
RF-6 Unirse a Grupo Vecinal
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se agrega al usuario al grupo vecinal.
Descripción El usuario desea suscribirse a las alertas generados por el grupo
además de contribuir con las mismas.
Precondición El usuario debe poder escanear el código QR provisto por algún
miembro del grupo.
Paso Acción
52
Secuencia
Normal
1 El usuario escanea el identificador único del grupo.
2 El sistema verifica que los datos ingresados sean válidos
3 Se asocia al usuario al grupo.
Postcondición El usuario quedará suscrito al nuevo grupo, ya puede ver y recibir las
alertas que rigen sobre este.
Excepciones Paso Acción
2.1 Si el identificador del grupo es incorrecto, se genera una alerta.
2.2 Vuelve al paso 1.
2.1.1 Si el usuario no cumple con condición de rango de grupo o el
máximo de usuario fue alcanzado.
2.1.2 Se informa dicha situación y se vuelve al paso 1.
RF-7 Emitir Alerta
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se emite una alerta vecinal.
Descripción El usuario desea informar de alguna alerta.
Precondición El usuario está suscrito a un grupo vecinal.
Secuencia
Normal
Paso Acción
1 El usuario elige para que usuario está dirigida la alerta.
2 El usuario elige que tipo de alerta se desea disparar..
3 Se da curso a la alerta generada.
Postcondición El usuario queda pendiente de las respuestas por parte del grupo.
Excepciones Paso Acción
53
- N/A
RF-8 Responder Alerta
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se responde una alerta generada.
Descripción El usuario desea responder ante el evento de una alerta.
Precondición Debe existir al menos una alerta encendida para un determinado grupo.
Secuencia
Normal
Paso Acción
1 El sistema genera una notificación.
2 El sistema muestra los detalles de la alerta.
3 El usuario ingresa la respuesta
4 Se propaga la respuesta del usuario.
Postcondición -
Excepciones Paso Acción
- N/A
RF-9 Informar Autoridades
Versión 1.0 - 12/04/2018
Objetivos
asociados
Informar de alguna situación a las autoridades.
Descripción El usuario desea informar a las autoridades, dependiendo de la alerta
respondida, son las autoridades notificadas.
Precondición -
54
Secuencia
Normal
Paso Acción
1 El sistema carga el teléfono, marcando el numero de
emergencia seteado.
2 El usuario presiona llamar.
Postcondición -
Excepciones Paso Acción
- N/A
RF-10 Agregar familiar.
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se agrega un familiar.
Descripción El usuario desea agregar un nuevo usuario a su nuevo grupo familiar.
Precondición El usuario debe poder escanear el código QR provisto por algún
familiar que tenga creada la cuenta SAVI.
Secuencia
Normal
Paso Acción
1 El usuario escanea el identificador único del grupo.
2 El sistema verifica que los datos ingresados sean válidos.
3 Se asocia al usuario al grupo familiar..
Postcondición El usuario quedará suscrito al nuevo grupo familiar, ya puede ver y
recibir las alertas que rigen sobre este.
Excepciones Paso Acción
2.1 Si el identificador del usuario es incorrecto, se genera una
alerta.
2.2 Vuelve al paso 1.
55
RF-11 Quitar familiar.
Versión 1.0 - 12/04/2018
Objetivos
asociados
Se quita un familiar del grupo familiar.
Descripción El usuario desea quitar un usuario a su nuevo grupo familiar.
Precondición Ambos usuarios deben estar agregado al grupo familiar.
Secuencia
Normal
Paso Acción
1 El usuario selecciona el usuario a eliminar.
2 El sistema indica la alerta respectiva
3 El usuario confirma la acción.
4 Se elimina la suscripción del familiar.
Postcondición El usuario quedará suscrito al nuevo grupo familiar, ya puede ver y
recibir las alertas que rigen sobre este.
Excepciones Paso Acción
3.1 El usuario cancela la acción.
2.2 Vuelve al paso 1.
56
Diagrama de clases
Un diagrama de clases permite representar gráficamente y de manera estática la estructura
general de un sistema, mostrando cada una de las clases y sus interacciones (como
herencias, asociaciones, etc), representadas en forma de bloques, los cuales son unidos
mediante líneas y arcos. Los diagramas de clases son el pilar fundamental del modelado
con UML, siendo ampliamente utilizados tanto para análisis como para diseño de
sistemas y software en general. Los diagramas de clases son interacciones entre nodos y
arcos, que generalmente representan interacciones, relaciones, interfaces y
colaboraciones entre las clases, interfaces, notas, restricciones, paquetes y demás
elementos que conforman un programa orientado a objetos.
Se muestra el diagrama de clases, en la figura 4.4.
Figura 4.4 Diagrama de clases SAVI
57
Modelo de Datos NoSQL
La mayoría de los sistemas NoSQL comparten algunas características entre las que
destaca que no es necesario definir un esquema que describa la estructura de los datos
almacenados, dado que almacenan datos semiestructurados. Esta ausencia de esquema
(schemaless) justifica la mayor flexibilidad de estos sistemas frente a los relacionales.
Entre las ventajas se destaca que es posible tener datos no uniformes (algunos campos de
una misma entidad pueden ser opcional eso tener diferentes tipos) y se facilita la
evolución de los datos dado que no es preciso cambiar ningún esquema [29].
Figura 4.5 Ejemplo Base de datos NoSQL
Se observa la captura, figura 4.5, de una
instancia de a base de datos. Esta se encuentra
distribuida como para clave - valor, es una
manera de representarla mediante objetos
JSON que luego será interpretado por la
aplicación mapeando a instancias de clases
del modelo.
58
Capítulo 5: Sistema de Asistencia Vecinal Integral
En este capítulo se presenta el desarrollo de SAVI, una aplicación que apoya y da medios
de comunicación seguros antes eventos cotidianos. Se analizará la herramienta desde un
nivel conceptual. Se estudia cada una de las secciones que contiene, así como la
interacción entre cada una de las partes. Por último, se realiza un relevamiento de las
aplicaciones que tiene un fin similar.
Secciones
En este apartado se realiza un repaso por las secciones, se dan a conocer los detalles del
funcionamiento, así como también un mockup de la pantalla asociada para describir las
acciones asociadas. En el apartado de “Evaluación y Resultados” se realizará la
presentará el resultado final, una descripción más detallada del funcionamiento y rol de
cada componente dentro de SAVI.
Registro
Por motivos de simplicidad las pantallas de registro e ingreso están contenidas bajo una
misma pantalla, pero con diferentes métodos. Los campos mínimos para generar una
cuenta son email (el cual debe ser único en la aplicación) y una clave secreta que solo el
usuario de la cuenta debe saber.
Una vez ingresados estos campos, Al momento de cliquear el botón de
“REGISTRARSE” la aplicación hará las validaciones necesarias. Se validará que la
contraseña siga el patrón determinado, que no posea caracteres especiales, y que el email
tenga un formato válido, además la unicidad de dicho campo en la base de datos de
usuarios.
El patrón que describe un mail valido está definido por la siguiente expresión regular:
^[^@]+@[^@]+\.[a-zA-Z]{2,}$
Ejemplo: [email protected]
De la misma manera la expresión regular mediante la cual se validará la contraseña se
puede definir mediante la siguiente expresión regular:
^(?=\w*\d)(?=\w*[A-Z])(?=\w*[a-z])\S{5,10}$
59
La contraseña debe tener al entre 5 y 10 caracteres, al menos un dígito, al menos una
minúscula y al menos una mayúscula. NO puede tener otros símbolos.
Ejemplo: SaviS1stema
Ingreso
Esta sección de la aplicación está encargada de proveer el acceso a la aplicación. El
sistema validará los datos del usuario y contraseña con los almacenados en el
repositorio “Firebase Authentication”, con el fin de validar el ingreso, por cuestiones
relacionadas a la seguridad las contraseñas son almacenadas con el algoritmo MD5. El
flujo se representa en la Figura 5.1.
Figura 5.1 Flujo pantallas relacionadas con el acceso del usuario.
Si el usuario no está registrado se le permitirá ingresar sus datos para crear una nueva
cuenta. Con el fin de conservar una única cuenta por usuario, se le solicitará datos del
email, y se evaluará la unicidad de este campo. Si el usuario ingresa los datos de una
cuenta válida, se verificará si tiene datos de la cuenta cargados con anterioridad, si es así,
el flujo normal de la aplicación es navegar hasta el menú principal, si por el contrario el
usuario no posee datos cargados, es decir es la primera vez que ingresa, se navegará hasta
la pantalla de perfil.
60
Si el mail y la contraseña se corresponden
con un usuario válido, el acto de cliquear
ingresar da como como resultado la
navegación hasta las pantallas Perfil (si es
que es su primer ingreso) o a la pantalla
Menú Principal con los datos asociados a
su cuenta ya cargados. Si por el contrario
el par mail + contraseña no se
corresponden con un usuario válido, se da
un mensaje de “Validar datos ingresados”
y se permanece en la pantalla.
Cuando se ingresa registrarse, se validan
en primera instancia el mail y la
contraseña, si cumplen el formato
requerido, se valida la unicidad del campo
mail. Este debe ser único.
Si el resultado del registro es correcto se
da de alta una nueva entrada en Firebase
authentication, almacenando el
identificador y el proveedor (mail en este
caso) junto con datos relacionados a la
creación de la cuenta.
Figura 5.2 Mockup pantalla SAVI. Sección
registro/login.
Cada uno de emails registrados es almacenado con la utilidad que presenta firebase para
almacenar diferentes plataformas de login, sea email, Facebook, gmail, etc.
Perfil
En la sección de perfil, el usuario deberá ingresar datos sobre su persona, los datos
solicitados serán los necesario para darle identificación a la cuenta, se solicitan datos
como nombres, DNI y número de teléfono en caso de emergencia, además de datos
relacionados con la ubicación de su domicilio y domicilio secundario que luego servirán
como datos de entrada ante una situación de alarma.
61
Figura 5.3 Mockup de pantalla SAVI. Sección Perfil
Se solicitará una Foto que representara la
fachada del hogar de dicho usuario, la idea
es que si varios integrantes de un mismo
hogar poseen cuenta SAVI, todos
compartan la foto de la fachada.
Si es el primer acceso, lo campos aparecen
vacíos, si en cambio el usuario accede al
perfil desde el menú principal los campos
vendrán precargados con los que el
usuario informó en otro acceso previo.
Los botones Domicilio y Trabajo abre un
PopUp para que el usuario registrado elija
su domicilio en un mapa libre.
62
Domicilios
En esta sección se muestran un mapa libre, se centra la vista en la ubicación del
dispositivo. El usuario informará la ubicación de sus hogares, así como también la de su
trabajo/lugar de estudio.
Se da libertad para que el usuario tenga libre navegación en el mapa. El usuario mediante
el acto de cliquear elige la ubicación, una vez realizada esta acción se guardan las
coordenadas Latitud y Longitud. Combinando estos dos ángulos, se puede expresar la
posición de cualquier punto de la superficie de la Tierra.
Por ejemplo, podemos ubicar la facultad de Ciencias Exactas en las coordenadas:
-37.322738, -59.082372
Figura 5.4 Ejemplo captura de Latitud y Longitud
El signo negativo de la Latitud indica que la coordenada se encuentra al sur de la línea
del Ecuador, mientras que el signo negativo de la coordenada Longitud indica que se
encuentra al Oeste del Meridiano de Greenwich.
63
Figura 5.5 Mockup de pantalla SAVI. Sección Domicilio.
El acto de darle clic captura las latitudes y
longitudes del punto elegido y mediante
una referencia al usuario, permite persistir
dichas coordenadas.
Figura 5.6 Instantánea base de datos, Domicilios.
Cabe aclarar que para que funcione esta
opción se debe tener activado el permiso
de acceso al GPS del teléfono por parte de
SAVI.
Menú principal
Esta pantalla es la cual le da al usuario toda la información sobre su cuenta, además de
acceso a las alarmas, grupos y familiares. En primer plano la imagen a la foto
seleccionada en la pantalla de perfil inicialmente será el logo de SAVI. Además, se
encuentra una sección que abarca “Alarmas Grupo”, “Alarmas Familia” y
“Notificaciones” estas a ser clicadas, abre un popUp con la información útil que
corresponda. En la misma se encuentra una serie de stick que dan al usuario las pautas
de la motivación de SAVI además del funcionamiento en caso de diferentes alarmas.
En esta sección se encuentran accesos, que sirven para interactuar ante eventos de alerta.
Con color rojo (indicando peligro) se observa el botón que da flujo para informar a
autoridades, en base a la última alarma disparada, se precarga el número correspondiente
64
a la autoridad competente, y mediante un intent se abre la aplicación del teléfono con
dicho número, el propio usuario es el encargado de presionar call, si por ejemplo la última
alarma fue de principio de incendio, se abre el teléfono con el número correspondiente a
bomberos 103.
Figura 5.7 Mockup de pantalla SAVI. Sección menú
principal.
Estos números predeterminados serán
guardados en la base de datos, con el
objetivo de que puedan ser cambiados sin
necesidad de instalar una nueva versión de
la aplicación. Resaltado en color amarillo
(indicando alerta), se encuentra el botón
que da acceso a la pantalla de Alerta
vecinal, esta es el punto de creación del
flujo principal de la aplicación.
Se cuenta con un acceso al menú lateral,
en este se contiene todos los accesos
relacionados con la configuración de la
cuenta, como la administración de grupos,
familia y domicilios. Este menú
desplegable da un acceso detallado a cada
una de las secciones de SAVI.
Familia
Se muestra un listado de las personas que ya pertenecen al grupo familiar del usuario.
Puede suceder que no todos los integrantes de un mismo "grupo familiar y/o conviviente"
vivan bajo el mismo techo, de esta manera estos usuarios serán una opción para disparar
acciones en caso de que el usuario principal a la cual es dirigida una alerta no responda.
65
Figura 5.8 Mockup de pantalla SAVI. Secciones
familiares.
Opciones para eliminarlo del grupo
familiar, ver información del perfil y
ubicación de un determinado familiar y la
posibilidad de ver un historial de las
alarmas que recibió.
Cada grupo familiar está almacenado bajo
un mismo id familiar, dentro de la lista que
sigue en nivel, se encuentran los id de cada
usuario en cuestión.
También se presenta la opción de salir del
grupo vecinal, mediante esta opción se
borra el id del usuario de la lista
mencionada.
66
Figura 5.9 Mockup de pantalla SAVI. Sección vista
código personal.
Se agregan datos de familia, buscándolos
por un código generado por el sistema de
manera única para cada usuario, con el fin
de que cada usuario esté resguardado en el
sentido de que solo se podrá buscar
encontrar su perfil con este código
“secreto” dado en forma de QR (Quick
Response).
Este código QR contiene la información
del id del usuario logueado, el código a la
izquierda representa al siguiente id:
LeZJAJ4j03miE37IpuG.
Cuando el usuario da clic en “Agregar
Familia” se abre el Scan, el usuario que
desea ser agregado como miembro de la
familia deberá mostrarle el código
personal que se accede mediante el clic a
“VER CÓDIGO PERSONAL”.
67
Creación de grupo vecinal
Una vez que el usuario complete todos los datos de la cuenta, tendrá la opción de crear
un grupo vecinal (o de unirse a otro existente), es importante que usuario solo tenga un
grupo vecinal asociado a su cuenta, esta vinculación unaria se va a respetar para toda la
aplicación.
Figura 5.10 Mockup de pantalla SAVI. Sección creación
de grupo vecinal.
Si el usuario opta por crear un nuevo
grupo, deberá ingresar las coordenadas
mediante la interacción con un mapa- de
donde se encontrará el punto central de
acción del grupo, deberá especificar la
cantidad máxima de usuarios permitidos,
además se le solicitará un nombre
representativo para que lo identifique ante
otros usuarios, este nombre junto con un
código generado para el grupo será el que
usen los usuarios que quieran vincularse
con dicho grupo.
68
Vinculación de usuarios a grupo vecinal
Los usuarios son agregados de por medio del escaneo del código QR que les presenta
algún usuario del grupo como se ve en la figura 5.11. Se deberá proceder con una
vinculación que no es transparente, es decir, el usuario creador del grupo va a enseñar a
quien decida invitar a unirse al grupo el código QR que la aplicación le indica. En este
código se encuentra la información necesaria para realizar la vinculación. Se optó por
este método para que ambas personas se encuentren físicamente para realizar la
vinculación (solo se realiza una única vez).
Se podrán unir al grupo los usuarios que tengan declarado el domicilio principal dentro
del radio de acción del grupo, de otra manera se rechazara la solicitud.
Figura 5.11 Flujo pantallas relacionadas con la vinculación de usuarios a un grupo.
69
Figura 5.12 Mockup de pantalla SAVI. Sección menú
principal lateral.
La acción de clicar en “Unirse a Grupo
Vecinal” abre la ventana de modo scan, el
usuario que desea invitar a un tercero a
unirse al grupo vecinal deberá ir a la
sección “Ver Grupo Vecinal” para acceder
al código que necesita el nuevo integrante
del grupo.
Figura 5.13 Mockup de pantalla SAVI. Sección vista de
código grupo.
70
Alerta grupo
Cualquier integrante del grupo vecinal puede crear una nueva alerta vecinal.
Figura 5.14 Mockup de pantalla SAVI. Sección creación
de alerta vecinal.
Para la misma deberá especificar si es para
un usuario en particular o para todo el
grupo, además ingresar qué tipo de
alarma, es importante el tipo de alarma ya
que esta cambiara el curso de acción de
dicha alarma y de la interacción por parte
de cada uno de los usuarios.
Mediante las imágenes de perfil que
representan a cada domicilio, se aconseja
que sea una foto real del frente del
domicilio para evitar confusiones.
La acción de crear la alerta genera una
nueva entrada en el Grupo vecinal, donde
esta acción será transmitida a cada uno de
los usuarios.
71
En el siguiente diagrama, figura 5.15 se ve la continuidad de la alarma en caso de que sea
destinada a un usuario en particular o no.
Figura 5.15 Diagrama de flujo entre las pantallas relacionadas con las alarmas.
Las opciones de alarmas disponibles son:
● Alarma sonando: Representa la notificación de una alarma sonando, se refiere a
alarmas sonoras de casas. Las cuales pueden o no ser monitoreadas, el usuario en
su perfil podrá especificar dicha opción.
● Sospecha de robo: Esta alarma está destina para cuando el usuario que a disparo
no está totalmente seguro de la situación, la aplicación le sugerirá que informe
esto a las autoridades, paralelamente con el flujo propio de la aplicación. La
alarma disparada será ruidosa para cada uno de los usuarios del grupo, excepto
para el que fue destinada.
● Actitud sospechosa: Representa a extraños merodeando alguna casa en particular,
este tipo de alarma es meramente informativa, ya que de lo contrario entraría en
la categoría de sospecha de robo.
● Sospecha o principio de fuego: De manera análoga a la sospecha de robo, se
sugerirá que el usuario informe dicha situación de manera inmediata a las
autoridades. Se creará una alarma sonora para indicar dicha alarma.
● Agresión: Se trata de una alarma destina a prevenir situación de riesgo, se informa
agresiones verbales como físicas. Siempre se recomendará avisar a las
autoridades.
72
● Daños al vehículo: Esta alarma está condicionada a si el usuario en el perfil indico
que posee un vehículo. De igual manera si no informo poseer un vehículo, el flujo
de alarma continuará con el fin de darle aviso de la alarma.
● Vehículo mal estacionado: Sucede lo mismo que en daños al vehículo solo que de
una manera más relajada.
El curso de cada alarma está dado por el siguiente esquema figura 5.16, se ve la
importancia de que el usuario añada a familiares, ya que estos serán los encargados de
recibir las notificaciones en caso de que el usuario principal no esté disponible para recibir
la alerta.
Figura 5.16 Diagrama de flujo entre las pantallas relacionadas con el informe de alarmas.
73
Respuesta alerta
En esta sección el usuario que recibe la alerta tiene la opción de responder a determinada
alerta.
Figura 5.17 Mockup de pantalla SAVI. Sección
respuesta alerta vecinal.
Este flujo se utiliza si el usuario principal,
es decir para quien fue dirigida la alerta no
respondió por dicha situación.
Con la información y el respaldo del
demás usuario que conforman el grupo, el
usuario principal tendrá más información
al momento de responder.
Solo el usuario principal puede desactivar
la alerta, la respuesta de los demás
usuarios, sirve para incrementar o bajar el
nivel de alerta. Llegado un determinado
porcentaje de alerta se recomendará
informar a las autoridades la situación
enfrentado.
Si el usuario que recibe la notificación de
alerta tiene cargada una determinada de
configuración, por ejemplo, que está de
vacaciones, esta feedback no tendrá
sentido por lo que no recibirá está
notificaciones, y se generar una respuesta
automática en forma de respuesta.
74
Configuración de cuenta
Esta sección le da al usuario de programar la aplicación de manera que esta respete ciertas
reglas, por ejemplo, el usuario puede optar por silenciar las alarmas por un tiempo
determinado, o dar aviso que sale de vacaciones, o de precargar un mensaje que será
enviado como respuesta automática, en caso de que surja un evento de alarma.
75
Figura 5.18 Mockup de pantalla SAVI. Sección
configuración cuenta.
Las determinadas opciones para
configurar la cuenta son excluyentes, sólo
se permite tener activa una a la vez. La
opción que se elija impactar no solo en la
recepción de alertas, sino en la respuesta
automáticas.
Si por ejemplo se configura a cuenta para
decir que se encuentra de vacaciones, ante
la recepción de una nueva alerta, se validar
el rango de fechas el cual define el periodo
de vacaciones, si la alerta se da en este
rango, se genera una respuesta automática
informando dicha situación. Para la
opción de vacaciones, obligatoriamente se
deben ingresar las fechas de inicio y de fin,
así también como una breve descripción
que será la que se responda en caso de una
alerta.
Si la en la configuración se desea
representar una ausencia, se deberá
ingresar el día en que se presentara dicha
ausencia, el curso de acción es similar al
de vacaciones, solo que se valida
únicamente una fecha y no un rango.
La opción no molestar tiene como entrada una hora de finalización, si esta opción está
activada y en rango ante una nueva alerta, sea cual sea, su notificación será silenciosa.
Ignorar todo, deja sin acción todas las alertas y las respuestas ante las mismas.
76
Notificación
La sección notificación se encarga de crear una silenciosa, a todos los usuarios
(pertenezcan o no al grupo) con la única validación de que el centro de la notificación
este el rango del domicilio de hogar o trabajo. La idea es que cualquier usuario pueda dar
aviso sin ser parte de un grupo, por ejemplo, si se está de paso por el barrio y se detecta
o sospecha daños al vehículo, se puede crear un canal de comunicación para que los
usuarios que se tiene sus hogares en el radio sean avisados de dicha situación. Este tipo
de alerta no tiene ningún curso de acción asociado, solo se espera que mediante esta
utilidad se advierta cierta situación.
Figura 5.19 Mockup de pantalla SAVI. Sección creación
de notificación.
Ante la creación de una nueva notificación
los usuarios que tengan declarado su
domicilio de hogar o trabajo en un rango
igual o menor al de la notificación
recibirán la notificación informando la
situación.
En la creación de la notificación se captura
la longitud y latitud central, así como
también el rango y un título y texto que
describa la situación a informar.
Figura 5.19 Captura base de datos, Notificación.
Cada uno de los usuarios validará si la
nueva notificación está en su rango de
acción.
77
Proyectos Similares
Se realizó un relevamiento de proyectos que tuvieran características similares o que
tengan un fin similar, la seguridad de la comunidad.
Alerta Tandil
El Municipio presentó en mayo del año 2018 Alerta Tandil, un sistema de operaciones
inteligente que funcionará en el Centro de Monitoreo (CMT) y estará basado en una
plataforma tecnológica y operativa que centralizará información o solicitudes de los
vecinos a través de diferentes medios, que serán derivados al área que deba intervenir.
Figura 5.20 Publicación de aplicación “Alerta Tandil” – Play Store.
“Alerta Tandil”, es el sistema de operaciones inteligente basado en una plataforma
tecnológica y operativa que centraliza información o solicitudes de los vecinos a través
de diferentes medios, y que permite coordinar y optimizar recursos.
El sistema requiere que quienes tengan a su cargo el trabajo de recepción de alertas
reciban una capacitación exhaustiva y constante, para conocer las operaciones y las
potencialidades de la plataforma para la gestión de emergencias. Alerta Tandil ofrecerá
la posibilidad de enviar mensajes desde botones de pánico en Smartphone, fijos y móviles
con localización, alarmas fijas, dispositivos de POSNET para la protección de comercios,
llamados telefónicos recepcionados por un call center que los derivará al área
78
correspondiente, mensajes de texto, portal web, web móvil, email, Facebook, Twitter y
Cámaras de video vigilancia. El sistema estará segmentado para ser utilizado por
diferentes usuarios; como la población en general, comercios y los sectores del turismo y
la educación.
Mediante 3 botones, la aplicación captura la ubicación actual del teléfono por
geolocalización y envía estos parámetros a un operario del CMT, este en conjunto con
los entes respectivos, es el encargado de coordinar la asistencia al vecino. En la figura
5.21 se muestra capturas de la aplicación.
Figura 5.21 Captura de "Alerta Tandil".
79
Alerta Buenos Aires
Esta aplicación que combina WhatsApp y el servicio 911, para combatir la inseguridad.
Es una aplicación tecnológica similar “Alerta Tigre”, una suerte de botón antipánico que
funciona desde el celular y permite crear “redes de protección”. Desde el dispositivo
móvil se permite encender la alarma física ubicada en un punto estratégico, además
agrega la opción de denunciar incumplimiento del deber por parte de las fuerzas
policiales. Alerta Buenos Aires, permite:
● Iniciar el sonido, enviará un SMS diciendo quién es el vecino que necesita ayuda.
● Permite desactivar la sirena, para evitar que continúe sonando.
● Disca automáticamente al número de emergencias
● Compartir la ubicación actual del usuario, con la persona o grupo de WhatsApp
que se deseé.
En la figura 5.22 se muestra una captura de la aplicación, mostrando sus funcionalidades.
Figura 5.22 Captura de Alerta Buenos Aires.
80
Strix LoJack
LoJack (asegura) es la primera marca de Internet de las cosas de Argentina que ha sido
pensada para darle mayor bienestar a todas y cada una de las personas de una familia
[22]. Según su director comercial [22] “Con Strix es posible que cualquier persona pueda
chequear desde el trabajo lo que está pasando en su casa, ver rápidamente si los chicos
llegaron del colegio, ver cómo están manejando tus hijos cuando salen con amigos,
incluso se ofrece una función de acompañamiento virtual para cuando estás llegando a tu
casa”. En la definición tecnológica, Strix es un desarrollo propio de tecnología de big
data que permite conectar la familia, la casa, el auto, todas las cosas en cualquier
dispositivo mobile permitiendo generar información telemática, domótica y
geolocalización en tiempo real.
“Se trata de un concepto disruptivo e innovador, porque hasta ahora no existía en el
mercado una herramienta pensada para funcionar de manera integral, acompañando a una
familia durante todo el día, de manera eficiente, para transmitir calma y seguridad, a partir
de información en tiempo real y en el momento justo, permitiendo a las personas sentirse
presentes siempre” [23]. Tiene un precio base de $ 895 para contratar, tiene cuatro
grandes bloques de servicio:
● Strix en tu casa: permite modificar y controlar la alarma, programarla, recibir
notificaciones de activación e integrar las cámaras internas o externas del hogar.
● Strix en tu auto: permite acceder a la ubicación on-line de un vehículo, detectar
sobrepasos de límite de velocidad, avisar cuando está en modo estacionado y
recupero en caso de robo.
● Strix en tus cosas: acceder a la ubicación on-line de una mochila o una bicicleta;
establecer zonas seguras para los objetos y avisos de salida. Historia de
posiciones y estado de batería de gadgets varios.
● Strix con vos: servicio de “escolta virtual” para la llegada al hogar, con un sistema
pasivo de alerta.
81
Figura 5.23 Captura de pantalla de Strix LoJack.
Comparación
En este apartado se hará una comparación de las diferencias entre SAVI y cada una de
las aplicaciones listadas anteriormente.
Herramienta\Cualidad Costo Elemento
Físico
Integra ayuda
comunitaria
Control
descentralizado
Strix Mínimo de
$900 mensual
No No No
Alerta Buenos aires Sin costo Si No No
Alerta Tandil Sin costo No No No
SAVI Sin costo No Si Si
Si tomamos la más completas de todas, es decir “Strix”, vemos que su principal
desventaja es que es totalmente paga. Aunque posee funcionalidades realmente
interesantes, los casi $900 de base que se cobra por el servicio de monitoreo desalentaran
82
a la mayoría de los miembros de la comunidad a contratarla. Además, siempre debe haber
un operador del otro lado que le dé continuidad al flujo de la emergencia, se depende de
la competencia y capacitación del operador que funciona como representante de los entes
que brindan seguridad.
“Alerta Buenos aires” da un elemento físico que funciona como alarma, es decir una
sirena. Aunque esta puede desalentar los intentos delictivos, la sirena es un instrumento
que carece de inteligencia. Usa canales comunes para comunicar a los diferentes
miembros del grupo seguro, WhatsApp en este caso.
Por último “Alerta Tandil”, solo es un instrumento por el cual el ciudadano informa un
evento de emergencia, solo da un canal alternativo para la generación de una alerta, a la
convencional que es llamar por teléfono a un número de emergencia.
El punto de estas comparaciones arroja que todas las aplicaciones carecen de inteligencia
al momento de una emergencia. Siempre debe haber un operador del otro lado que le dé
continuidad al flujo de la emergencia, se depende de la competencia y capacitación del
operador que funciona como representante de los entes que brindan seguridad. Además,
ninguna de las anteriores crea canales especialmente dedicadas para la comunicación de
una alerta vecina, es decir, quizás bajo determinada alerta no es necesario generar una
emergencia a un ente externo. SAVI es autoadministrada por los miembros de la
comunidad que van a ser los encargados de generar y administrar las alertas.
83
Capítulo 6: Evaluación y resultados
Este capítulo se presenta el resultado final de SAVI, junto a los experimentos realizados
con el fin de dar evidencia sobre el funcionamiento del sistema. El objetivo de los
experimentos fue evaluar el rendimiento general de la herramienta. Se realizan casos de
estudios demostrando la interacción de la aplicación con los usuarios. Se recrea
escenarios en los cuales funcionará SAVI.
Estos experimentos están ambientados para simular la comunicación de 4 miembros
activos de un grupo, más un quinto que no tendrá grupo propio, sino que será familiar.
Se enfocó en ejecutar el sistema en un escenario real, es decir bajo diferentes condiciones
de configuración, conexión y ubicación de los dispositivos.
Estado inicial
Se procederá a realizar una limpieza de las cuentas de autenticación creadas con el fin de
estudiar la generación de estructuras desde un punto inicial.
Autenticación
En la siguiente figura 6.1, se ve el estado inicial tabla que modela los diferentes usuarios.
Figura 6.1 Instantánea del estado inicial de la utilidad autenticación Firebase.
Se ven los campos identificadores, en el caso de esta tesis será representado mediante el
mail. El campo proveedores indica mediante qué plataforma se creó la cuenta, en este
caso será mail, el campo creado indica la fecha que representa la creación de la cuenta,
el log de la última hora de acceso y un identificador único que representa el usuario.
84
Base de datos
Ya que no es necesario tener creada la estructura que soporta el almacenamiento, la base
de datos para el estado inicial se encuentra totalmente vacía. El concepto de tablas no
existe en este paradigma de base de datos (NoSql), gracias a las direcciones la estructura
se va a crear y completar a medida que se tengan que almacenar los datos pertinentes,
figura 6.2.
Figura 6.2 Instantánea del estado inicial de la base de datos Firebase
La base de datos está definida mediante para clave + valor. En el estado inicial la clave
“savitesis” está acompañada por el valor NULL, indicando que la base de datos se
encuentra vacía.
Storage
La sección de storage, puede ser usada para soportar cualquier archivo, en este caso se va
a utilizar para administrar las cuentas de usuarios, figura 6.3. Las fotos respectivas a los
usuarios serán almacenadas mediante la carpeta “Fotos”, siguiendo la misma lógica que
en la base de datos, la carpeta será creada a medida que se necesite.
Figura 6.3 Instantánea del estado inicial de la utilidad storage Firebase.
85
Cuentas
A continuación, se creará los diferentes perfiles llevar a cabo el experimento, las cuentas
creadas responden a la siguiente configuración:
Alias/Campo Mail Contraseña
Usuario 1 [email protected] saV1Sistema
Usuario 2 [email protected] Luca5T
Usuario 3 [email protected] gabR13L
Usuario 4 [email protected] 1068Yrigoy3n
Usuario 5 [email protected] alberT170
Figura 6.4 Captura pantalla SAVI. Sección inicio.
Figura 6.5 Captura pantalla SAVI. Sección
registro/login.
86
Una vez creadas las cuentas, se puede observar una instantánea del estado de Firebase en
su sección autenticación, figura 6.6.
Figura 6.6 Instantánea autenticación Firebase, creación de cuentas.
Figura 6.7 Instantánea base de datos, creación de
cuentas
Mientras que en la base de datos tenemos,
figura 6.7.
Como se observa la dirección de Usuario
de creo automáticamente, asignando a
cada usuario un identificador único en el
sistema que representa el valor
determinado.
Se expone el campo clave, aunque esto es
exclusivo para las pruebas, ya que el
proceso de autentificación no se realiza
mediante el acceso a la base de datos, sino
que mediante la utilidad de autenticación
que ofrece Firebase.
87
Perfiles
Los perfiles serán cargados luego de la creación de la cuenta.
Campo/Cuenta Usuario 1 Usuario 2 Usuario 3 Usuario 4 Usuario 5
Nombre Matias Lucas Gabriel Teresa Alberto
Apellido Tangorra Franchini Romero Sanchez Coronel
Nacimiento 18/02/1991 24/09/1994 15/03/1997 26/05/1960 17/11/1969
DNI 35867928 35666879 25416632 15258975 39512324
Celular 154280888 154594430 154256448 154988741 154632125
Fijo 4422664 4430843 4436987 4412560 4585621
Figura 6.8 Captura de pantalla SAVI. Sección creación
perfil.
Figura 6.9 Captura de pantalla SAVI. Sección elección
domicilio.
88
Tenemos una instantánea de la base de datos en el path que apunta a los usuarios. Si
tomamos como ejemplo el usuario 1, tenemos:
Figura 6.10 Instantánea estado base de datos Firebase.
Si tomamos la definición de los atributos
de la clase, vemos como por debajo del
identificador de la relación, en encuentra
exactamente una instancia de la clase
Usuario.
Figura 6.11 Sección diagrama de clases, SAVI
Se ve como los campos son mapeados uno
a uno mediante clases POJOs se usa DTO
para guardar estos datos
89
Suscripción a grupos
La disposición realizada para la generación del experimento sigue esta distribución:
Figura 6.12 Distribución de usuario para la generación del experimento.
Para generar esta distribución, los usuarios 2, 3 y 4 deberán escanear el código generado
en la pantalla de vista de grupo. Es indistinto si se unen a partir de una captura del usuario
1, o si el usuario 2 se une y este le comparte al usuario 3 y de manera análoga con el
usuario 4.
90
Grupo familiar
El objetivo de esta sección es mostrar cómo los usuarios se agregan a un mismo grupo
vecinal. Estos podrán estar al tanto de las alertas que reciben los usuarios, pertenezcan o
no a un mismo grupo vecinal.
A continuación, figura 6.13 y 6.14, se dan como muestra los códigos QR personales de
los usuarios 3 y 4, con el fin de que sea el usuario 5 el que los agregue a un nuevo grupo
familiar.
Figura 6.13 Captura de pantalla SAVI. Sección vista del
código QR Usuario 3.
Figura 6.14 Captura de pantalla SAVI. Sección vista del
código QR Usuario 4.
Ahora basta que el usuario 5 escanee estos códigos en la sección familiares para que
ambos sean agregados a un grupo. En la imagen 6.15 se ve el estado del grupo familiar,
que en un principio se encuentra vacío, ya que no tiene uno creado. Mediante la acción
de escanear el primer código persona, se da de alta un nuevo nodo y al usuario que
escaneo se le asigna el grupo correspondiente.
91
Figura 6.15 Captura de pantalla SAVI. Sección vista de
integrantes del grupo familiar antes de agregar
familiares.
Figura 6.16 Captura de pantalla SAVI. Sección vista de
integrantes del grupo familiar después de agregar
familiares.
92
Figura 6.17 Estado de Base de datos antes que el
usuario 3 tenga grupo familiar.
Al escanear el código QR se le setea el
idFamilia al usuario en cuestión
Figura 6.18 Estado de Base de datos después de que el
usuario 3 tenga grupo familiar.
Grupo vecinal
En esta sección el Usuario 1 creará un nuevo grupo, este será al cual los demás usuarios
se unirán.
Campo Valor
Nombre del Grupo Grupo barrio estación
Máximo usuarios 4
Latitud -37.3212
Longitud -59.1414
Rango Máximo 101 m
93
Figura 6.19 Captura pantalla SAVI. Sección creación de
grupo vecinal
Se presenta el estado de la base de datos,
dirección “Grupo”
Figura 6.20 Instantánea de la Base de datos, luego de
la creación del grupo vecinal
Se observa que el grupo está definido
mediante la clave “-
LesPBV6QfIxN8frQLch”. Ya que el
usuario 1 fue el creador del grupo,
automáticamente queda suscrito al grupo.
Por lo tanto, si se verifica el campo
idGrupo de usuario creador se tendrá.
94
Una vez creado el grupo vecinal, en la sección ver grupo vecinal, compartir grupo, se
observa el siguiente código QR que representa la información necesaria para que un
nuevo usuario se puede suscribir al grupo.
Figura 6.21 Captura de pantalla SAVI. Sección vista de
grupo vecinal.
Figura 6.22 Captura de pantalla, SAVI. Sección vista
código grupo vecinal.
Cada uno de los usuarios que escanear el código QR y paso las validaciones con las reglas
del negocio. Accederá a la suscripción del grupo, mediante la tupla que se indicó en el
apartado anterior. De la misma manera funciona el grupo familiar, solo que el código QR
es el que se ubica en la sección familiares.
95
Caso de estudio 1
En primera instancia se va a probar el funcionamiento de una nueva alerta en caso de que
no se tengan asignada una configuración determinada, es decir los usuarios deberán
responder manualmente cada una de las alertas que reciban.
Alerta
El usuario 3 será el encargado de disparar una alerta de Sospecha de Robo, el usuario
destinatario es el usuario 2.
En la izquierda se aprecia la pantalla de creación de alerta vecinal, con el tipo elegido en
sospecha de robo, mientras que el usuario al cual está dirigida corresponde al usuario 2.
Si analizamos el estado de la base de datos, sobre la derecha.
Figura 6.23 Captura de pantalla SAVI. Sección creación
de alerta vecinal.
Figura 6.24 Estado de base de datos antes de crear la
alerta vecinal.
Una vez lanzada la alerta
Figura 6.25 Estado de base de datos después de crear
la alerta vecinal.
96
Figura 6.26 Captura de pantalla SAVI. Sección
respuesta ante alerta vecinal presente.
En primera instancia se muestra una
notificación, en base al tipo de alerta y el
contexto del usuario al que fue dirigido
cambiará la manera en la que se lanza
dichas notificaciones, puede ser sonora o
silenciosa y con/sin vibración
Figura 6.27 Captura informe de alerta.
En la pantalla de respuesta de alerta, se
muestra al usuario, en primera instancia el
tipo de alerta además de a quién está
dirigida dicha alerta.
Por debajo se muestran los detalles
relacionados a la creación y un Nivel que
indica que tan urgente es la situación
informada.
Es mostrado también el centro de la alerta,
en este caso es el domicilio indicado por el
usuario 2 (quién fue el receptor principal
de la alerta)
97
El esquema de respuestas para este experimento sigue el siguiente patrón:
Usuario/Respuesta Respuesta
Usuario 1 N/A (fue disparada por el)
Usuario 2 Cancelada (El usuario a la está dirigida)
Usuario 3 -
Usuario 4 -
Si el usuario principal confirma la alerta, se abrirá el despliegue de informar a
autoridades, teniendo los números telefónicos previamente cargados. De esta manera si
el usuario principal llama a las autoridades, la alerta será cancelada. Mientras que si el
nivel de peligro es mayor al 50% cualquier de los usuarios del grupo.
Figura 6.27 Instantánea base de datos después de crear una nueva alerta vecinal.
98
Caso de estudio 2
En segunda instancia se va a probar el funcionamiento de una nueva alerta en caso de
que tengan asignada una configuración determinada, es decir los usuarios no deberán
responder manualmente cada una de las alertas que reciban.
Configuración de perfil
En esta sección se va a configurar el perfil del usuario 1, esta configuración serán datos
de entrada en el momento en que una alarma es disparada, así teniendo información para
ser respondida de manera automática.
Usuario/Campo Configuración Campo 1 Campo 2
Usuario 1 Vacaciones Inicio: 19/05/2019 Fin: 25/05/2019
Figura 6.28 Captura pantalla SAVI. Sección
configuración, vacaciones.
El usuario 1, accede a la pantalla
configuración y elegir un rango de fechas,
además de un breve texto que describa lo
que considere necesario, puede ser un
numero de contacto o ubicación donde se
encontrara. Al confirmar las vacaciones,
se realiza una validación de los campos,
inicio, fin y texto con descripción. Si estas
validaciones son aprobadas, se propaga a
la base de datos la configuración elegida.
Figura 6.29 Instantánea base de datos, configuración
de cuenta.
99
Alerta
El usuario 4 será el encargado de disparar
una alerta de Alarma Sonando, el usuario
destinatario es el usuario 1, quien tiene
activada una configuración de vacaciones
activa para esta nueva alerta.
Figura 6.30 Captura pantalla SAVI. Sección creación de
alerta vecinal.
Como se analizó en más detalle en el
anterior caso de estudio, se muestra el
estado de la base de datos luego de crear
la segunda alerta.
Figura 6.31 Instantánea de estado de base de datos,
luego de crear segunda alerta.
Cuando se detecte que el usuario 1, posee
una configuración activa se realizará una
validación para ver si dicha configuración
aplica a la alerta pertinente.
100
Figura 6.32 Instantánea de estado de base de datos, respuesta
automática.
Al detectar que el usuario 1 posee
una configuración que aplica para
la nueva alerta, se genera una
notificación para el usuario en
cuestión y en paralelo se crea una
respuesta a la alerta creada. De
modo que todos los usuarios
sepan que ese usuario se
encuentra bajo una determinada
configuración precargada.
101
Caso de estudio 3
En tercera instancia se va a probar el funcionamiento de una nueva alerta en caso de que
tengan de que no tenga una creada una configuración y que los demás usuarios confirmen
la alerta, dejando en última instancia la respuesta de usuario al cual fue dirigida. De esta
manera dejar la alerta con un nivel de alerta que supere el 50%, de manera que se active
el modo de alertar a las autoridades. Por último, se va a mostrar cómo el usuario 5 ve el
resultado del flujo de la alerta, al ser familiar de quien fue dirigida en primera instancia.
102
El usuario 2, será el encargado de disparar una alerta de actitud sospechosa hacia el
usuario 4. Luego los usuarios 1 y 3 confirman la alerta, haciendo que el nivel de alerta
supere el 50% de manera que se habilite la opción de disparar alerta en las respuestas del
ultimo usuario.
Figura 6.33 Captura pantalla SAVI. Sección creación de
alerta vecinal.
Figura 6.34 Captura pantalla SAVI. Sección respuesta
de alerta vecinal.
103
Informar autoridades
Figura 16 Captura pantalla SAVI. Sección respuesta de
alerta vecinal.
Los dos usuarios que respondieron la
alerta la confirmaron. El nivel de alerta
superó el 50%, esto hace que el menú
informar autoridades se despliegue.
El usuario encargado de responder la
alerta tendrá la opción de informar a
diferentes entes, sea policía, bomberos,
ambulancia o violencia de género según lo
amerite la situación.
La acción de elegir un tipo de autoridades
abre el teléfono, pre marcando el número
correspondiente a la autoridad
seleccionada.
Figura 6.36 Captura pantalla Teléfono. Sección
informar autoridades, elección policía.
104
Figura 6.37 Captura pantalla SAVI. Secciones alertas de
grupo.
Desde el menú principal, se accede al
resumen de las alertas recibidas por parte
del grupo, por parte de la familia y a las
notificaciones.
Figura 6.38 Captura pantalla SAVI. Sección acceso a
resumen de alertas/notificaciones.
En la sección alertas grupo se encuentra un
resumen de todas las alertas que se
recibieron mediante un grupo, se ordena
en orden cronológico.
Se muestra la información básica de la
alerta, así como también las respuestas por
parte de cada uno de los usuarios ante
determinada alerta.
105
Por último, vemos desde la perspectiva del usuario 5, quien no es miembro de ningún
grupo, pero sí tiene como familiares a los usuarios 3 y 4.
Figura 6.39 Captura pantalla SAVI. Sección alertas
familia.
De manera análoga a las notificaciones
por parte del grupo, se muestran las
notificaciones recibidas por parte del
grupo familiar.
Figura 6.40 Captura pantalla SAVI. Sección acceso a
resumen de alertas/notificaciones.
106
Caso de estudio 4
Como último caso de estudio se probar la creación de una nueva notificación. Esta solo
tiene carácter informativo y no tiene un flujo asociado. El usuario 5 será el encargado de
crear una nueva notificación.
107
Figura 6.41 Captura pantalla SAVI. Sección creación de
notificación.
Los usuarios que reciban esta notificación
son aquellos cuales el domicilio
informado este dentro del centro de la
notificación más el rango indicado por el
usuario creador.
Figura 6.42 Captura pantalla SAVI. Sección creación de
notificación.
Desde el menú principal, se accede al
resumen de notificaciones.
Figura 6.43 Captura pantalla SAVI. Sección acceso a
resumen de alertas/notificaciones.
Figura 6.44 Captura pantalla SAVI. Sección vista de
notificaciones.
108
Se muestra cómo se completa la lista “vistoPor” a medida que los usuarios reciben las
notificaciones.
Figura 6.45 Instantánea de estado de base de datos Firebase, notificación.
En este caso se almacena el identificador del usuario, con el fin de no enviar más de una
vez una notificación determinada.
109
Capítulo 7: Conclusiones
En este capítulo se presentan las conclusiones que se tuvieron una vez desarrollada la
aplicación y validado los casos de estudio. Se hace referencia a las contribuciones,
limitaciones y trabajos futuros.
La construcción de SAVI implicó la integración de los conocimientos adquiridos durante
la carrera de Ingeniería de Sistemas, se hace especial foco en lo aprendido en cátedras
como Programación Orientada a objetos al momento de modelar y mantener la estructura
de datos. En cuanto al diseño las aptitudes adquiridas en Metodologías de Desarrollo de
Software fueron claves al momento de diseñar la aplicación y sus interacciones con
demás plataformas. Aunque no se usó un motor de base de datos SQL, las habilidades
adquiridas en Base de Datos fueron claves al crear al diseñar la base de datos. Por último,
hay que destacar que fueron claves las habilidades adquiridas en las materias Diseño de
Sistemas de Software e Ingeniería de Sistemas, al momento de tener un vistazo más
general de la aplicación y el contexto en el cual funciona.
La implementación de SAVI como aplicación móvil fue realizada en Java en conjunto
con XML utilizando el entorno de desarrollo (IDE) Android Studio. El motivo de usar
Android se debe principalmente a la familiarización y experiencia con dichas tecnologías,
junto con la gran cantidad de bibliotecas existentes que realizan mucho del trabajo básico
necesario, permitiendo enfocarse en el objetivo real del proyecto.
Contribuciones.
La contribución principal de este trabajo es una herramienta que permite mantener una
red social privada dedicada a la seguridad social. Esta herramienta cuenta con
integraciones a servicios especialmente implementados para ser usado por dispositivos
móviles, optimizando factores como el uso de la batería y la transferencia de datos
utilizada.
En este trabajo se desarrolló una herramienta con soporte para tecnologías existentes en
la mayoría de los smartphones, se trata de una red social privada que dio medios
dedicados de comunicación que permiten interactuar y trabajar de manera conjunta
situaciones cotidianas de emergencia.
Por otra parte, se contribuye en la comunicación directa entre los diferentes miembros de
una comunidad. Al crear una herramienta especialmente dedicada a la seguridad, al
110
recibir una notificación la atención que le preste a esta tendrá un mayor poder por sobre
la que cualquiera que llegue por otro medio digital.
La construcción de SAVI se realizó priorizando la simplicidad de interacción al usuario,
que el trabajo complejo y estructurado no sea transparente al usuario.
Limitaciones
La herramienta presentada en este informe puede ser mejorada en diferentes aspectos, los
cuales se mencionan a continuación.
Si bien la interfaz es sencilla e intuitiva el usuario debe tener algún conocimiento previo
sobre utilización de aplicaciones móviles.
La herramienta desarrollada tiene como limitaciones que establece la versión gratuita de
la API Firebase. el plan gratuito contempla Cuotas de uso de Database, Firestore, Storage,
Functions, Phone Auth, Hosting y Test Lab. Ésta limitada la cantidad de flujo de
información, para pruebas experimentales, fue más que suficiente, los planes pagos de
esta API permite tener un mayor tráfico de datos, así como también utilidades más
potentes.
En cuanto a la base de datos en tiempo real, el máximo de anidamiento es de 27 nodos,
esto puede no alcanzar al definir estructuras de datos complejas. Esto no fue una
limitación en este proyecto, aunque si se quiere expandir el alcance de la aplicación
deberá ser considerado.
Trabajos futuros
Existen distintos aspectos de la herramienta que pueden ser mejorados como trabajos
futuros e incluso extendidos para lograr tener un mejor provecho de su utilización, a
continuación, se listan los considerados.
En cuanto a la inteligencia de los agentes, se podría agregar negociación entre los
dispositivos móviles aprovechando las utilidades que provee Firebase. Sería posible
implementar cierta inteligencia simulada mediante estudio de los comportamientos del
usuario, por ejemplo, si el dispositivo detecta que todos los días de 8hs a 18hs el usuario
no está en la casa, podría generar una alerta totalmente automática en caso de que una
alerta llegue para ese usuario, quitando el paso de respuesta por parte del usuario en
cuestión.
111
Se estudió la integración con alguna plataforma subsidiada por el estado, la idea sería
continuar el flujo de una alerta actual y bajo evento de alertar a autoridades, se genera
una invocación a un servicio web especialmente dedicado para informar la situación y la
traza de respuestas provistas por los usuarios del grupo, esto actuaría reemplazando el
clásico llamó al número de emergencias y los paso de transmitir al operador la situación
sucedida.
En caso de implantación de SAVI, se podría hacer un contraste entre las denuncias
realizadas y las alertas tratadas durante un periodo, obteniendo datos cuantificables más
confiable. Es decir, si en un periodo en un barrio se crean 2 denuncias por robo y en ese
mismo periodo y barrio se trataron 5 alertas por sospecha de robo, se tendrá una
información que demostraría un sesgo por parte de los indicadores obtenidos a partir de
la información obtenida por denuncias formales.
112
Bibliografía
1. [Constitución Nacional Argentina, 1994] Constitución Nacional Argentina, Ley
N° 24.059 artículo 2°. Año 1994.
2. [ENV,2017] Encuesta Nacional de Victimización. INDEC (Instituto Nacional de
Estadística y Censos). Año 2017.
3. [INDEC, 2017] Instituto de encuestas y censos. Año 2017.
4. [Los costos del crimen y de la violencia, 2017] Los costos del crimen y de la
violencia Nueva evidencia y hallazgos en América Latina y el Caribe. Autora:
Laura Jaitman. Instituciones para el desarrollo, División de Capacidad
Institucional del Estado. Código de publicación: IDB-MG-510. Año 2017.
5. [UNODC, 2011] UNODC Organización de las Naciones Unidas (ONU),
(Oficina de Naciones Unidas contra la Droga y el Delito). El Costo Económico
de la Delincuencia Organizada en el Perú: Estudio sobre los costos directos que
el crimen ocasiona al Estado y las familias. UNODC: Lima. Año 2011.
6. [Selig y Gómez, 2016] Seguridad Barrial. Estrategia de Comunicación
Preventiva ante el delito. - Carolina Selig y M. Gisela Gómez. - Facultad de
Arquitectura, Diseño y Urbanismo, FADU, Universidad de Buenos Aires, UBA.
Año 2016.
7. [Municipio de Rosario, 2005] Municipalidad de Rosario Ordenanza N.º
7914/2005. Año 2005.
8. [Stiglitz, 1979] PBI como indicador. Autor Pr. Joseph Stiglitz (premio Nobel de
economía). Año 1979.
9. [Kuznets, 1934] Relación no directa entre el crecimiento del PBI y el bienestar
social. Autor Simon Kuznets. Año 1934.
10. [FMI, 2016] PBI según el Fondo Monetario Internacional (FMI). Año 2016
11. [Foster, 1986] Innovación, la curva S. Autor Richard Foster. Año 1986.
12. [Carlos Cortés, 2015] El ‘internet de las cosas’: más internet que otra cosa.
Autor: Carlos Cortés, investigador del iLei en el CELE. Centro de Estudios en
Libertad de Expresión y Acceso a la Información. Año 2015.
13. [Ibanez y Riemenschneider, 2016/2017] IoT Research and Innovation in
Horizon 2020. Francisco Ibanez CNECT/A4, Rolf Riemenschneider CNECT
/E1 DG Communication Networks, Content & Technology European
Commission. Año 2016 y 2017.
14. [Whatsapp Foro Oficial, 2016] https://blog.whatsapp.com/616/Mil-millones.
Año 2016.
15. [Garrido Cobo, 2013] TFC Desarrollo de Aplicaciones Móviles. Tesista: Juan
Garrido Cobo. Universidad Oberta de Catalunya. Año 2013.
16. [Android Studio, 2018] Android Studio. Gráfico oficial de uso de sistema
operativo Android. Año 2018.
17. [Aranaz Tudela, 2009] Desarrollo de aplicaciones para dispositivos móviles
sobre la plataforma Android de Google. Autor: Aranaz Tudela, Jaime.
UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITÉCNICA
SUPERIOR. Año 2009.
18. [Navarro, 2006-07] Modelado, Diseño e Implementación de Servicios Web.
Autor Rafael Navarro Marset. Año 2006-07
19. [BEEPS, 2016] Encuesta sobre el entorno empresarial y el rendimiento
empresarial. Año 2016.
20. [Wooldridge y Jennings, 1996] WOOLDRIDGE, M. y JENNINGS, N. R 1996.
Intelligent Agents: Theory and Practice. Knowledge Engineering Review.
113
21. [Ley 12154, Ley provincial de seguridad pública] Ley provincial de seguridad
pública, Título 3, Artículos del 10 al 18.
22. [Ramiro Martínez Casas, 2017] Director comercial LoJack Argentina.
23. [Carlos Mackinlay, 2017] CEO de LoJack Argentina.
24. [El diario de Tandil, 2015] El mapa del delito: "El delito crece". 29/07/2015
25. [Municipalidad de Tandil] Sitio oficial, licitaciones públicas y privadas. URL:
http://www.tandil.gov.ar/
26. [Alier, M, 2009] Alier, M, 2008. Moodbile: Extending Moodle to the Mobile
on/offline Scenario. Proceedings of IADIS International Conference Mobile
Learning. Algarve, Portugal, pp.11-18
27. [LICIP, 2018] Laboratorio de Investigaciones sobre Crimen, Instituciones y
Políticas. Año 2018
28. Documentación Firebase. Firebase helps you build better mobile apps and grow
your business. Actualizada Diciembre de 2018. URL:
https://firebase.google.com/
29. Sadalage, P., Fowler, M.: NoSQL Distilled. A Brief Guide to the Emerging
World of Polyglot Persistence. Addison-Wesley (2012)
30. [Firebase, 2018] Firebase Realtime Database. Sitio Oficial. Año 2018. URL:
https://firebase.google.com/docs/database/?hl=es-419