PROYECTO ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE VOTO ELECTRÓNICO I-VOTE
RAMIREZ LEIVA DEYSI CAROLINA FLECHAS TENORIO DANIEL RICARDO SALAMANCA SANCHEZ ANDREA HERRERA RUIZ KATHERINE BERRIO SALAS PAOLA
Institución Universitaria Politécnico Gran colombiano Especialización en Gerencia de proyectos en Inteligencia de Negocios Bogotá D.C., Colombia 2018
ÍNDICE
1. PLANTEAMIENTO DEL PROBLEMA
3
2. JUSTIFICACIÓN Y OBJETIVOS
3
3. MARCO TEÓRICO
4
4. ESTRUCTURA DE DESCOMPOSICIÓN DEL TRABAJO(WBS).......................................................................................5 5. CRONOGRAMA DE ACTIVIDADES…………………………………………6 6. SISTEMA PROPUESTO……………………….…………………………......7 ▪
Panorama (Universo del Discurso)
▪
Requerimientos funcionales
▪
Requerimientos no funcionales
7. MODELOS DEL SISTEMA……………..…………………………………….8 ▪ Diseño conceptual de la base de datos ▪ Normalización de la base de datos ▪ Diseño lógico de la base de datos 8. CUESTIONES DE CONTROL DE INTEGRIDAD REFERENCIAL………9 9. DISEÑO FÍSICO DE LA BASE DE DATOS………………………….…...14 10. Consultas SQL y reportes según requerimientos del sistema………….16 11. Descripción de los requerimientos mínimos en hardware y software necesarios para el buen funcionamiento de la aplicación y la base de datos………………………………………………………………………...…23 12. BIBLIOGRAFÍA 25
ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE BASES DE DATOS PARA LA GESTIÓN DE LA INFORMACIÓN DEL PROCESO DE VOTO ELECTRÓNICO I-VOTE
PLANTEAMIENTO DEL PROBLEMA El voto electrónico es un concepto creado para buscar el mejoramiento de los procesos electorales en cualquier país u organización democrática mediante el uso efectivo de las tecnologías de la información y las comunicaciones (TIC). Diversas herramientas o sistemas han sido creados buscando este objetivo, pero
no han sido del todo efectivas debido a problemas de seguridad, usabilidad, auditoría, entre otras. La empresa tiene la necesidad de realizar procesos democráticos internos que permitan elegir a sus directivos, representantes y delegados en los diferentes niveles de su estructura organizacional; para esto requiere una estrategia que incluya una solución tecnológica para la gestión de la información y la implementación del voto electrónico, de tal forma que sea un proceso ágil, sencillo, seguro y eficiente para todo el equipo de trabajo de la empresa. La votación electrónica tiene potencialmente múltiples ventajas en comparación con otros sistemas de votación. Puede reducir drásticamente el tiempo del recuento de votos así como el número de errores en dicho proceso debidas a fallas humanas o por anotación deficiente de las papeletas.
Al desarrollar nuestro sistema de bases de datos permitirá a los votantes emitir su voto en cualquier recinto habilitado sin restricciones geográficas, disminuir la posibilidad de fraudes por autoridades maliciosas o comprometidas (por medio de administración distribuida de la elección, en particular, del recuento de votos), y obtener verificación universal de la elección. Esta última característica permite garantizar un proceso completamente transparente ante cualquier observador interno o externo, quien puede verificar en forma online la realización correcta de cada una de las etapas del proceso de votación
JUSTIFICACIÓN En la actualidad los procesos democráticos requieren una logística que puede ser mayor o menor compleja dependiendo de su magnitud y características, sin embargo cualquiera que sea el tipo de elecciones a llevarse a cabo, genera para los votantes y quien la organiza, un inversión en tiempo, recursos técnicos y humanos que pueden llegar a ser engorrosos para ambas partes. En el contexto empresarial, algunas compañías tienen políticas de participación democrática de sus colaboradores, en la elección de representantes, consejos directivos, voceros, delegados, entre otros, lo cual demanda que estos procesos
sean lo más eficientes posible, en aras de ahorrar tiempo, desplazamientos, logística de materiales y recursos técnicos y humano para la realización de los mismos. La alta competitividad y productividad de las empresas hoy en día, requieren la optimización de todos sus procesos, en este sentido una solución a estos requerimientos es un sistema de bases de datos que permita gestionar la información necesaria y resultante de un proceso democrático interno. La implementación de un sistema de voto electrónico facilita, agiliza y asegura una elección al interior de la empresa, con resultados satisfactorios para las partes involucradas, ya que además puede garantizar seguridad y transparencia de las mismas. OBJETIVOS
OBJETIVO GENERAL ● Realizar un sistema de base de datos que permita gestionar la información de un sistema de votación electrónica a través de “i-vote”, proponiendo una solución para la gestión de la información y el apoyo a la toma de decisiones de la organización.
OBJETIVOS ESPECÍFICOS ● Diseñar una base de Datos implementada sobre el sistema de gestión de base de Datos MySQL. ● Utilizar un software para diseñar una base de Datos a partir de un modelo entidad-relación. ● Diseñar consultas SQL que respondan a requerimientos específicos. ● Aplicar las propiedades que tienen las bases de datos para realizar transacciones seguras.
MARCO TEÓRICO A lo largo de la historia las sociedades se han organizado de diversas maneras. Sin embargo, en los últimos dos siglos se ha producido un cambio generalizado
en la forma de organización y de gobierno. En efecto, muchos países u organizaciones han adoptado un modelo de gobierno democrático, incluso en los últimos años se ha visto cómo diversos pueblos con gobiernos autoritarios se han levantado contra estos en favor de establecer una nueva sociedad democrática.
En un régimen democrático el poder reside en la totalidad de sus miembros. Una característica fundamental de la democracia es que sus gobiernos derivan su legitimidad de las elecciones, que son la principal forma que tiene la sociedad para ejercer el poder de manera libre e igualitaria. Dada la importancia de las elecciones es absolutamente necesario contar con un sistema de votación confiable y seguro. Un sistema de este tipo debe cumplir una serie de requisitos esenciales: ● El voto debe ser secreto, tanto al momento de emitir el voto, como al realizar el conteo de los votos. (Si el voto es efectivamente secreto, la coerción del votante no es posible). ● Un votante sólo puede votar la cantidad de veces establecida legalmente. Normalmente esto es un voto por carrera, aunque puede haber excepciones. ● Un votante sólo puede emitir voto en las suscripciones o carreras en las que legalmente puede votar. ● Un votante no puede vender su voto. ● Todas las papeletas de votación deberían ser contadas sin errores. ● No debe haber obstáculos para que un votante pueda emitir su voto. ● El sistema de votación utilizado debe estar operable durante todo el proceso de votación.
Helios es un sistema de votación de tipo i-voting, es decir que los votantes pueden votar por Internet sin necesidad de ir a un local de votación. Este sistema es “abiertamente auditable", es decir, que el comportamiento y los resultados del sistema pueden ser verificados por cualquier persona o entidad. El sistema ha sido diseñado para ser utilizado en elecciones donde se necesita confianza,
voto secreto, pero donde la coerción de los votantes no es una preocupación importante.
El sistema está construido en Python, utiliza una interfaz Web implementada con JavaScript, jQuery, y utiliza JSON como estructura de datos. Se utiliza el protocolo de votación de Sako-Kilian, el cual utiliza mixnets para asegurar el anonimato de los votos, utilizando El-Gamal como esquema de encriptación.
Este sistema se presenta como una alternativa segura para realizar elecciones on-line, que puede ser utilizado por comunidades de Internet, grupos sociales o centros estudiantiles. Tiene la clara ventaja de permitir que los votantes puedan sufragar cómodamente desde cualquier lugar, en poco tiempo, especialmente útil en organizaciones o grupos que están muy distribuidos geográficamente como para votar todos en un mismo local de votación.
El sistema es públicamente auditable. Para esto proveen dos programas, un programa para verificar un único voto, verificando su integridad y validez, mediante revisión de checksums. Otro programa permite verificar las etapas del proceso de combinación, des encriptación y conteo de los votos. En el lado del cliente, se utiliza una técnica llamada Single-Page Web Application, esto se refiere a que en el lado del cliente ( Browser ) toda la aplicación se carga una sola vez, sin realizar solicitudes a través de la red hasta terminar el proceso de preparación del voto.
ESTRUCTURA DE DESCOMPOSICIÓN DEL TRABAJO (WBS) SISTEMA DE VOTO ELECTRÓNICO I VOTE
ANÁLISIS PREVIO
ANÁLISIS DE REQUISITOS
DISEÑO
PROGRAMACIÓN
PRUEBAS E IMPLEMENTACIÓ N
Definir objetivos
Definir funciones del software
Definir estandares del software
Preparar entorno de desarrollo
Pruebas con usuarios
Definir estrategias
Definir modelos de datos
Diseñar modelos de datos
Codificar procesos
Evaluación de estado del proyecto
Definir recursos necesarios
Definir interfases
Diseñar interfases
Construir interfases
Implementación
Concretar costos y plazos
Definir procesos
Diseñar procesos
Pruebas globales
Diseñar juegos de prubas
1.1 Definir objetivos 1.2 Definir estrategias 1.3 Definir recursos 1.4 Concretar costos y plazos 2.1 Definir funciones del software 2.2 Definir modelos de datos 2.3 Definir interfases 2.4 Definir procesos 3.1 Definir estándares del software 3.2 Diseñar modelos de datos 3.3 Diseñar interfases 3.4 Diseñar procesos 3.5 Diseñar juegos de pruebas 4.1 Preparar entorno desarrollo 4.2 Codificar procesos 4.3 Construir interfases 4.4 Pruebas Globales 5.1 Pruebas con usuario 5.2 Evaluación de estado proyecto 5.3 Lanzamiento
(Probar el software, localizar y corregir los errores que se detecten)
5.PRUEBAS Y LANZAMIENTO
4. PROGRAMACIÓN (En esta etapa traduciremos el 3. DISEÑO (Esta fase reflejará la parte diseño a un código orgánica del proyecto) procesable por el hardware)
(Esta fase reflejaría la parte funcional del proyecto)
TAREAS
2. ANALISI DE REQUISITOS
FASE DEL PROYECTO
1. ANÁLISIS PREVIO ( Plan de trabajo del proyecto y procedimientos que van a marcar las pautas de control sobre el mismo )
CRONOGRAMA DE ACTIVIDADES
1
5
FEBRERO 10 15 20 25 30 1
5
10
MARZO 15 20 25
30
1
ABRIL 5 10 15 20 25
30
1
5
MAYO 10 15 20 25 30
1
5
JUNIO 10 15 20 25
SISTEMA PROPUESTO
Panorama (Universo del Discurso)
El sistema estará diseñado para el control y conteo de votos el cual permitirá emitir información confiable, manteniendo confidencialidad y eficiencia, a través de los componentes que lo integran, limitando el acceso de los usuarios según perfil de cada uno y actividad que gestiona, como el del administrador, asistente, delegado, jurado, votante y ente regulador.
Cada uno de los perfiles del sistema de voto electrónico tiene su par respecto al sistema de voto tradicional, sin embargo, ya que estos comparten información
30
en común, estos heredarán los datos en común de la entidad “cargos”, datos tales como nombre, número de identificación, etc. Para el caso de los postulantes, estos tendrán información adicional de interés para el votante, incluyendo los votos para cada candidato, registrado de manera acumulativa por cada votante, que a su vez resultan únicos para el mismo y verificables por la auditoría.
Requerimientos funcionales: ●
Autenticar a los usuarios que tendrán acceso al sistema
●
Deberá permitir la configuración requerido por el administrador
●
El sistema permitirá el acceso a los usuarios registrados
●
Permitirá el registro de los aspirantes (candidatos).
●
Deberá aceptar exitosamente el registro del votante.
●
Debe permitir la administración de los usuarios.
●
Controlar la jornada de las consultas.
●
Permitirá administrar las mesas.
●
Permitirá ejecutar y registrar el voto.
●
Emitirá reporte de resultados.
●
Emitirá reporte parcial del conteo de votos.
●
Emitirá reporte de actividad de usuarios.
Requerimientos no funcionales: ●
El sistema debe garantizar que la actividad electoral de cada terminal se ejecutará en el puesto designado, para ello contará con los mecanismos que permitan verificar el acceso al punto de red designado.
●
El sistema tendrá soporte para la autenticación biométrica.
●
El sistema deberá tener los protocolos de seguridad reglamentarios, además de los cifrados adecuados para garantizar la confidencialidad.
●
El sistema deberá ser accesible a través de cualquier navegador moderno.
MODELOS DEL SISTEMA ● Diseño conceptual de la base de datos (Modelo Entidad Relación)
● Normalización de la base de datos Candidato Id_Candidato Nombre Apellidos Imagen Género Nacimiento Num_Lista Cod_Eleccion
Usuario Id_Usuario
Elección Votación Cod_Eleccion Fecha
Nombre Apellidos Género Fecha de nacimiento Contraseña
Fecha_Inicio Fecha_Fin Hora_Inicio Hora_Fin Estamento Activo
Hora Id_Usuario Id_Candidato Cod_Eleccion
● Diseño lógico de la base de datos
CUESTIONES DE CONTROL DE INTEGRIDAD REFERENCIAL
Cuando se da una relación entre tablas, la tabla principal es aquella que contiene un registro único que se relaciona con múltiples registros que se encuentran en la tabla secundaria. Por ejemplo: en el diseño descrito en la sección anterior se tiene una relación de uno a varios entre la tabla Elección y la tabla Candidato. Cada registro que se encuentra en la tabla Elección es único y el código de la elección jamás se repetirá por ser esta llave primaria.
Ahora en la tabla
Candidato cada registro también es único y el código del candidato jamás se repetirá por ser esta llave primaria, pero además esta tabla tiene un campo donde se relaciona el Código _Elección (llave foránea) al cual el candidato se postuló. En esta última tabla puede tener varios candidatos con el mismo código de elección.
Ahora bien, como en el diseño de esta base de datos se tienen tablas relacionadas y para mantener la integridad referencial entre los registros de estas
tablas, se definirán las siguientes reglas en los campos llaves foráneas que están en las tablas secundarias o hijas:
Actualizar en cascada: Esto indica que cuando se actualiza un registro de la tabla principal se actualizarán los registros
relacionados que se
encuentren en la tabla secundaria.
Eliminar restringida: Esto indica que a la hora de eliminar un registro de la tabla principal si este está relacionado en la tabla secundaria entonces se registren la eliminación.
DISEÑO FÍSICO DE LA BASE DE DATOS
CONSULTAS SQL Y REPORTES SEGÚN REQUERIMIENTOS DEL SISTEMA Para el desarrollo del software se usaron las siguientes consultas SQL:
Para hacer el login en la aplicación: “Select contrasena from usuario where identificacion” (Se adicionan los criterios del where por código). Para listar los candidatos por nombre y apellido: “"Select nombre, apellido from candidato” Para listar el número de candidatos: “SELECT DISTINCT from candidato” Para conocer los votos de los candidatos: “Select * from votacion”
DESCRIPCIÓN DE LOS REQUERIMIENTOS MÍNIMOS EN HARDWARE Y SOFTWARE NECESARIOS PARA EL BUEN FUNCIONAMIENTO DE LA APLICACIÓN Y LA BASE DE DATOS
Para el desarrollo de la aplicación y puesta en marcha del servidor de base de datos, se utilizo un equipo con las siguientes características:
Procesador: Intel i5 Octava Generación Memoria Ram: 8 GB Almacenamiento: 1 TB Sistema Operativo: Windows 10
SI bien con estos requerimientos la aplicación se ejecuto sin problemas al igual que el servidor de bases de datos, los requisitos mínimos de la instalación son los siguientes:
Procesador: Intel compatible Memoria Ram: 512 MB Almacenamiento: 1 GB Sistema Operativo: Windows, Linux, Mac, etc.
BIBLIOGRAFÍA ● Richard Celeste, Dick Thornburgh, and Herbert Lin, editors. ● Asking The Right Questions About Electronic Voting. The National Academic Press, Washington D.C. (2006). ● Cordero, Pamela. Implementación de un Sistema de Votación Electrónica Eficiente Para Múltiples Candidatos. Memoria (Ingeniería civil en computación). Santiago, Chile. Universidad de Chile, Facultad de Ciencias Físicas y Matemáticas. (2008) ● http://www.maestrosdelweb.com/que-son-las-bases-de-datos/ ● http://histinf.blogs.upv.es/2011/01/04/historia-de-las-bases-de-datos/
● http://indira-informatica.blogspot.com/2007/09/qu-es-un-sistema-degestin-de-base-de.html ● http://www.cavsi.com/preguntasrespuestas/que-es-un-sistema-gestorde-bases-de-datos-o-sgbd/