tesis de grado en ingeniería de sistemas

113
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

Upload: others

Post on 26-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Tesis de Grado en Ingeniería de Sistemas

2

Page 3: Tesis de Grado en Ingeniería de Sistemas

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.

Page 4: Tesis de Grado en Ingeniería de Sistemas

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

Page 5: Tesis de Grado en Ingeniería de Sistemas

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

Page 6: Tesis de Grado en Ingeniería de Sistemas

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

Page 7: Tesis de Grado en Ingeniería de Sistemas

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

Page 8: Tesis de Grado en Ingeniería de Sistemas

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.

Page 9: Tesis de Grado en Ingeniería de Sistemas

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”

Page 10: Tesis de Grado en Ingeniería de Sistemas

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.

Page 11: Tesis de Grado en Ingeniería de Sistemas

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.

Page 12: Tesis de Grado en Ingeniería de Sistemas

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

Page 13: Tesis de Grado en Ingeniería de Sistemas

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.

Page 14: Tesis de Grado en Ingeniería de Sistemas

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.

Page 15: Tesis de Grado en Ingeniería de Sistemas

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

Page 16: Tesis de Grado en Ingeniería de Sistemas

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

Page 17: Tesis de Grado en Ingeniería de Sistemas

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

Page 18: Tesis de Grado en Ingeniería de Sistemas

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.

Page 19: Tesis de Grado en Ingeniería de Sistemas

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

Page 20: Tesis de Grado en Ingeniería de Sistemas

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]

Page 21: Tesis de Grado en Ingeniería de Sistemas

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.

Page 22: Tesis de Grado en Ingeniería de Sistemas

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.

Page 23: Tesis de Grado en Ingeniería de Sistemas

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

Page 24: Tesis de Grado en Ingeniería de Sistemas

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.

Page 25: Tesis de Grado en Ingeniería de Sistemas

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

Page 26: Tesis de Grado en Ingeniería de Sistemas

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.

Page 27: Tesis de Grado en Ingeniería de Sistemas

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.

Page 28: Tesis de Grado en Ingeniería de Sistemas

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

Page 29: Tesis de Grado en Ingeniería de Sistemas

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.

Page 30: Tesis de Grado en Ingeniería de Sistemas

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.

Page 31: Tesis de Grado en Ingeniería de Sistemas

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

Page 32: Tesis de Grado en Ingeniería de Sistemas

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.

Page 33: Tesis de Grado en Ingeniería de Sistemas

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

Page 34: Tesis de Grado en Ingeniería de Sistemas

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.

Page 35: Tesis de Grado en Ingeniería de Sistemas

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

Page 36: Tesis de Grado en Ingeniería de Sistemas

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

Page 37: Tesis de Grado en Ingeniería de Sistemas

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.

Page 38: Tesis de Grado en Ingeniería de Sistemas

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.

Page 39: Tesis de Grado en Ingeniería de Sistemas

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

Page 40: Tesis de Grado en Ingeniería de Sistemas

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.

Page 41: Tesis de Grado en Ingeniería de Sistemas

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.

Page 42: Tesis de Grado en Ingeniería de Sistemas

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.

Page 43: Tesis de Grado en Ingeniería de Sistemas

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.

Page 44: Tesis de Grado en Ingeniería de Sistemas

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

Page 45: Tesis de Grado en Ingeniería de Sistemas

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

Page 46: Tesis de Grado en Ingeniería de Sistemas

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

Page 47: Tesis de Grado en Ingeniería de Sistemas

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.

Page 48: Tesis de Grado en Ingeniería de Sistemas

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

Page 49: Tesis de Grado en Ingeniería de Sistemas

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.

Page 50: Tesis de Grado en Ingeniería de Sistemas

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.

Page 51: Tesis de Grado en Ingeniería de Sistemas

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

Page 52: Tesis de Grado en Ingeniería de Sistemas

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

Page 53: Tesis de Grado en Ingeniería de Sistemas

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 -

Page 54: Tesis de Grado en Ingeniería de Sistemas

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.

Page 55: Tesis de Grado en Ingeniería de Sistemas

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.

Page 56: Tesis de Grado en Ingeniería de Sistemas

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

Page 57: Tesis de Grado en Ingeniería de Sistemas

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.

Page 58: Tesis de Grado en Ingeniería de Sistemas

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}$

Page 59: Tesis de Grado en Ingeniería de Sistemas

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.

Page 60: Tesis de Grado en Ingeniería de Sistemas

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.

Page 61: Tesis de Grado en Ingeniería de Sistemas

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.

Page 62: Tesis de Grado en Ingeniería de Sistemas

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.

Page 63: Tesis de Grado en Ingeniería de Sistemas

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

Page 64: Tesis de Grado en Ingeniería de Sistemas

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.

Page 65: Tesis de Grado en Ingeniería de Sistemas

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.

Page 66: Tesis de Grado en Ingeniería de Sistemas

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”.

Page 67: Tesis de Grado en Ingeniería de Sistemas

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.

Page 68: Tesis de Grado en Ingeniería de Sistemas

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.

Page 69: Tesis de Grado en Ingeniería de Sistemas

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.

Page 70: Tesis de Grado en Ingeniería de Sistemas

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.

Page 71: Tesis de Grado en Ingeniería de Sistemas

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.

Page 72: Tesis de Grado en Ingeniería de Sistemas

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.

Page 73: Tesis de Grado en Ingeniería de Sistemas

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.

Page 74: Tesis de Grado en Ingeniería de Sistemas

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.

Page 75: Tesis de Grado en Ingeniería de Sistemas

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.

Page 76: Tesis de Grado en Ingeniería de Sistemas

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.

Page 77: Tesis de Grado en Ingeniería de Sistemas

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

Page 78: Tesis de Grado en Ingeniería de Sistemas

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".

Page 79: Tesis de Grado en Ingeniería de Sistemas

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.

Page 80: Tesis de Grado en Ingeniería de Sistemas

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.

Page 81: Tesis de Grado en Ingeniería de Sistemas

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

Page 82: Tesis de Grado en Ingeniería de Sistemas

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.

Page 83: Tesis de Grado en Ingeniería de Sistemas

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.

Page 84: Tesis de Grado en Ingeniería de Sistemas

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.

Page 85: Tesis de Grado en Ingeniería de Sistemas

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.

Page 86: Tesis de Grado en Ingeniería de Sistemas

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.

Page 87: Tesis de Grado en Ingeniería de Sistemas

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.

Page 88: Tesis de Grado en Ingeniería de Sistemas

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

Page 89: Tesis de Grado en Ingeniería de Sistemas

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.

Page 90: Tesis de Grado en Ingeniería de Sistemas

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.

Page 91: Tesis de Grado en Ingeniería de Sistemas

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.

Page 92: Tesis de Grado en Ingeniería de Sistemas

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

Page 93: Tesis de Grado en Ingeniería de Sistemas

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á.

Page 94: Tesis de Grado en Ingeniería de Sistemas

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.

Page 95: Tesis de Grado en Ingeniería de Sistemas

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.

Page 96: Tesis de Grado en Ingeniería de Sistemas

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)

Page 97: Tesis de Grado en Ingeniería de Sistemas

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.

Page 98: Tesis de Grado en Ingeniería de Sistemas

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.

Page 99: Tesis de Grado en Ingeniería de Sistemas

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.

Page 100: Tesis de Grado en Ingeniería de Sistemas

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.

Page 101: Tesis de Grado en Ingeniería de Sistemas

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.

Page 102: Tesis de Grado en Ingeniería de Sistemas

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.

Page 103: Tesis de Grado en Ingeniería de Sistemas

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.

Page 104: Tesis de Grado en Ingeniería de Sistemas

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.

Page 105: Tesis de Grado en Ingeniería de Sistemas

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.

Page 106: Tesis de Grado en Ingeniería de Sistemas

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.

Page 107: Tesis de Grado en Ingeniería de Sistemas

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.

Page 108: Tesis de Grado en Ingeniería de Sistemas

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.

Page 109: Tesis de Grado en Ingeniería de Sistemas

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

Page 110: Tesis de Grado en Ingeniería de Sistemas

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.

Page 111: Tesis de Grado en Ingeniería de Sistemas

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.

Page 112: Tesis de Grado en Ingeniería de Sistemas

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.

Page 113: Tesis de Grado en Ingeniería de Sistemas

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