Introducción
En la actualidad, el uso de las tecnologías de la información en los aspectos de la vida cotidiana está regido por sistemas de información, los cuales se encargan de automatizar los procesos que anteriormente se hacían manualmente. De ahí que desde hace algunas décadas, y gracias al rápido crecimiento de las tecnologías de la información, el voto electrónico, que se desarrolla con el uso de sistemas de información llamados sistemas de voto electrónico, sea una alternativa aplicable para automatizar el proceso de voto convencional.
Para que este tipo de sistemas puedan ser utilizados por el usuario final y desde el punto de vista de la ingeniería de software, deben recorrer un ciclo de vida de desarrollo repartido en cinco fases: análisis, diseño, codificación, pruebas y mantenimiento (RALPH, y WAND, 2009; SOMMERVILLE, 2011). Éstas deben ser debidamente documentadas mediante modelos, es decir, representaciones gráficas que ayuden a construir un sistema inexistente, para validarlo con el usuario final o para proporcionar el mantenimiento necesario del mismo.
Sin embargo, la mayoría de las aportaciones hechas hasta la fecha en términos de sistemas de voto electrónico recaen en la seguridad criptográfica que dicta el uso de este tipo de sistemas de información (GALLEGOS,
et al, 2009; ALAM, 2008) y estudios de máquinas de votación (LAVANYA, 2011; WKOHNO, 2004). Con esto se deja de lado el enfoque que da la perspectiva de la ingeniería de software, por medio de la cual se define una metodología para modelar sistemas de voto electrónico. Esto, tomando como base el éxito que han tenido sistemas informáticos administrativos vistos desde dicho enfoque.
Con base en lo anterior, en este artículo se propone una metodología de modelado de requisitos para la fase de análisis del sistema, la cual recae en definir un conjunto de procedimientos que permiten obtener modelos que dictan el comportamiento estático que deben tener este tipo de sistemas.
El resto del artículo está organizado de la siguiente manera: la Sección 2 introduce al lector en el contexto en el que se define la metodología. La Sección 3 detalla la metodología propuesta dividiéndola en 2 subsecciones: Modelado del comportamiento y Modelado de la Presentación. La Sección 4 describe los resultados obtenidos. La Sección 5 aporta las conclusiones obtenidas a los largo de este trabajo y hace referencia al posible trabajo a futuro.
Modelado de un sistema de voto electrónico
La metodología propuesta corresponde a la tarea de análisis del ciclo de vida de un sistema de voto electrónico correspondiente a la clasificación de presencial. Se enfoca en el modelado de los requisitos, que es la base que permite generar el modelo de análisis. La metodología aborda a su vez dos modelados, el modelado del comportamiento, definido por casos de uso, y el modelado de la presentación, que se basa en plantillas de definición.
Modelado de requisitos de un sistema de voto electrónico
El modelo de los requisitos es el primero en desarrollarse y tiene como objetivo delimitar el sistema y capturar la funcionalidad que ofrecerá desde la perspectiva del usuario. Consta de dos modelos principales: comportamiento y presentación (WEITZENFELD, 2004).
El modelo del comportamiento se basa en los casos de uso, que especifican los requisitos de funcionalidad que ofrece el sistema desde el punto de vista del usuario. Utiliza dos conceptos clave: actores y casos de uso. Los actores representan los distintos papeles que los usuarios finales desempeñan con el sistema, y los casos de uso, lo que pueden hacer los actores con respecto a éste. El modelo de presentación o modelo de interfaces especifica como interactúa el sistema con los actores al momento de ejecutar el caso de uso.
Modelado del comportamiento de un sistema de voto electrónico
Para dar inicio con el modelado del comportamiento del sistema de voto electrónico, se debe proporcionar la descripción funcional del mismo. Para esto es necesaria la elaboración de un resumen de sus requisitos funcionales.
a. Descripción funcional del sistema de voto electrónico
Este sistema debe permitir registrar usuarios, autenticar a los usuarios registrados, emitir votos y contar los votos emitidos, en el orden que lo ilustra la Figura 1.
Figura 1. Fases que debe integrar el sistema de voto electrónico.
En el registro se deben solicitar datos personales del candidato, votante y escrutador. Por ejemplo, el nombre, apellido paterno, apellido materno y parámetro que utilizará como contraseña, todo esto debe hacer referencia a información sobre su persona y ser almacenado en la base de datos, de tal forma que en ella quede un antecedente de quienes son los usuarios que se han registrado para participar en el proceso de votación.
En la autenticación, sólo los usuarios que se hayan registrado deben poder tener la oportunidad de comprobar que son auténticos, para lo cual deben ingresar al sistema todos o algunos de los datos personales que se proporcionaron durante el registro. Es importante mencionar que, a diferencia de la fase de registro, en esta fase sólo se proporciona la información solicitada para poder comprobar si el usuario es verdaderamente quien dice ser. De esta forma, durante esta fase se puede hacer una comparación entre los datos que se están proporcionando al momento de ejecutarla, en contra de los datos que se almacenaron durante la fase de registro.
Posteriormente, sólo los usuarios que hayan pasado satisfactoriamente la autenticación, acceden a la votación. Aquí, los usuarios previamente registrados, autenticados y ahora votantes auténticos, tienen derecho a seleccionar una de las diferentes opciones que proporcione el sistema para elegir a un candidato, de tal forma que cada votante sólo pueda emitir su voto una sola vez, de manera secreta y con la característica de que ninguna otra entidad debe poder ligar al votante con su voto.
Durante el conteo, el escrutador debe activar el conteo de los votos y publicar los resultados del proceso de votación. Así es como el resto de los participantes podrán verificar su participación dentro del proceso.
Adicionalmente a las acciones que debe ejecutar el sistema, cabe destacar que también tiene que permitir que sólo los usuarios autorizados previamente sean capaces de modificar, insertar o eliminar información. Por último, es importante resaltar que el desarrollo del proceso de inicio a fin no debe depender del uso de una red pública, como lo es Internet.
b. Modelos de casos de uso
El modelo de los casos de uso ilustra gráficamente la descripción funcional del sistema, desde el punto de vista del usuario final, también llamado actor. Es decir, muestra el comportamiento estático del mismo. Además, especifica la interacción entre un actor y el sistema, de tal modo que puedan ser entendidos por una persona sin conocimientos técnicos.
Para identificar a los actores del sistema, se deben de identificar los usuarios físicos y lógicos que interactúan con él mediante de las acciones descritas en la descripción funcional del Sistema de Voto Electrónico. Por su parte, las acciones del sistema, permiten identificar sus respectivos casos de uso. En este sentido, la Figura 2 ilustra los casos de uso y los actores identificados en la descripción funcional del sistema de voto electrónico, los cuales se describen a continuación.
Figura 2. Diagrama de los cuatro casos de uso y actores del sistema de voto electrónico.
Administrador. Actor físico que se encarga de otorgar los permisos de escritura para el votante y de lectura para el escrutador. Además, es el encargado de ayudar a generar los parámetros secretos que permitan asegurar el voto emitido por cada votante.
Usuario. Es el actor físico que debe registrarse como candidato o como votante. En caso de registrarse como candidato, la interfaz gráfica del caso de uso
Votar se debe mostrar a este actor como una opción a elegir. Si se registra como votante, tiene derecho a ejecutar los casos de uso
Autenticar y
Votar.
Votante. Es el actor físico que interactúa en dos de los cuatro casos de uso del sistema, ya que debe autenticarse y después emitir un solo voto.
Escrutador. La función de este actor físico es activar el conteo automático de los votos y publicar los resultados correspondientes a cada candidato que haya participado.
Base de datos. Actor lógico que almacena información durante todo el proceso de votación. De ahí que interactúa durante todos los casos de uso del sistema:
Registrar, Autenticar, Votar y
Contar.
Registrar. Caso de uso que solicita datos referentes a su persona como por ejemplo, el nombre, apellido paterno, apellido materno y contraseña de los actores candidato, votante y escrutador. Dichos datos hacen referencia a información sobre su persona y son almacenados en el actor lógico llamado Base de Datos.
Autenticar. En este caso de uso, sólo los actores físicos que se hayan registrado tienen la oportunidad de comprobar que son actores auténticos, para lo cual deben ingresar al sistema todos o algunos de los datos personales ingresados durante el caso de uso
Registrar. Esto, con la finalidad de hacer una comparación entre los datos que se están proporcionando al momento de ejecutar este caso de uso, en contra de los datos que se almacenaron durante la ejecución del caso de uso
Registrar.
Votar. Los actores que hayan pasado satisfactoriamente el caso de uso
Autenticar, acceden al caso de uso
Votar. En este caso de uso, los actores autenticados tienen derecho a seleccionar una de las diferentes opciones que proporcione el sistema.
Contar. Durante este caso de uso, el actor escrutador activa el conteo de los votos y publica los resultados del proceso de votación.
Figura 3. La plantilla de definición del sistema debe considerar imágenes representativas y botones de acción.
Modelado de presentación de un sistema de voto electrónico
Este modelo detalla la presentación de la información entre los actores y el sistema cuando se ejecuta cada uno de los casos de uso. El componente principal de este modelado son las plantillas de definición, las cuales detallan los elementos que están contenidos en cada pantalla del proceso de voto, debido a que son una abstracción gráfica de la interfaz de los actores (WEITZENFELD, 2004). Para llegar a su definición (BRAUDE, 2003), es importante considerar lo que se detalla a continuación:
- Conocer al votante. Es muy importante tener clara la naturaleza del tipo de proceso de votación que se va a llevar a cabo. De ahí que un votante con menor nivel educativo y menores aptitudes en el uso previo de sistemas de información, necesitará una interfaz gráfica más sencilla y auto-explicativa, tal y como la que se muestra en la Figura 3. En ella se puede ver que la plantilla contiene un título y figuras representativas, las cuales son alusivas al tipo de proceso que se va a llevar a cabo.
- Seleccionar los controles adecuados basados en pantalla. Los controles basados en pantalla son elementos que aparecen en la interfaz grafica del usuario, mediante los cuales el usuario notifica su intervención. Esto incluye: íconos, cajas de texto, botones de acción y cuadros de activación. La Figura 3 muestra en la parte inferior derecha un ejemplo de los botones de acción que debe haber en una plantilla de definición.
- Elegir colores adecuados. El uso de colores dentro del sistema debe hacer que la presentación del sistema sea útil y atractiva, parámetros que no se obtienen de manera automática, por lo que son fáciles de empeorar. Para ello, se debe ser muy conservador y reservado, empezando por introducir colores sobrios como el gris, blanco y negro, después el azul, amarillo y en menor proporción, el verde.
Figura 4. Plantilla de definición resultante para el caso de uso
Registrar dentro del caso práctico.
Resultados
Al llevar a cabo la metodología propuesta dentro del caso práctico, consistente en el desarrollo de un sistema de voto electrónico, se observó en su fase de análisis que, desde el punto de vista del modelado de requisitos, se obtuvieron plantillas de definición como la que se ilustra con la Figura 4. También se observó que el tiempo de desarrollo del sistema de voto electrónico disminuyó considerablemente, dado que se desarrolló un sistema de voto electrónico universitario (MOLINA y RUIZ, 2010), en el cual 2 desarrolladores tuvieron que dedicar 4 horas durante 5 días por 6 meses para las tareas de análisis y diseño, y otras 4 horas durante 5 días por 6 meses para las de codificación y pruebas. Sin embargo, el tiempo que se dedicó a la tarea de codificación, tomando como base esta metodología, se redujo a 4 horas durante 5 días por 3 meses, dado que se tomaron los modelos obtenidos a nivel de ejemplo y se complementaron para cubrir las necesidades del caso práctico. En todo momento se siguió la metodología aquí detallada. Dicha disminución se ilustra con la Figura 5.
Figura 5. Horas de trabajo dedicadas al ciclo de vida de desarrollo de un sistema de voto electrónico.
Con esto se demuestra la importancia de la metodología, que permite contar con toda una serie de procedimientos que indican los pasos a seguir para modelar el comportamiento estático de un sistema de voto electrónico. Además, con ella se puede aumentar la productividad y el trabajo de los desarrolladores del sistema, dado que les suministra las bases para construir un sistema de voto electrónico de forma eficiente. Esto es porque facilita el control del resto de las fases del ciclo de vida de desarrollo. Así, en un futuro ayudará a su mantenimiento, dado que el uso de la metodología permite apreciar su funcionamiento detalladamente modelado.
Conclusiones
Para comenzar a concluir, se debe resaltar que el voto electrónico es una expresión que comprende la automatización de un proceso, con lo cual, el uso de diferentes tecnologías, acelera las fases que comprenden un proceso de votación.
En este artículo se presentó una metodología de modelado para sistemas de voto electrónico (que no consideran el uso de la red Internet) la cual dicta los procedimientos a seguir para modelar casos de uso y la presentación de la información. Por medio de estos se detalla gráficamente el comportamiento estático de un sistema inexistente, que se basa en el Lenguaje de Modelado Unificado pero se especializa en la fase de análisis para el desarrollo de sistemas de voto electrónico. Gracias a la metodología se define de manera detallada un procedimiento macro, del cual son modelados que posteriormente se pueden traducir en lenguajes de programación. Así se realiza esta última tarea en menor tiempo, en comparación con empezar desde cero el ciclo de vida del desarrollo de un sistema de este tipo.
Esta metodología sintetiza, con el modelado de casos de uso y con el modelado de la presentación de la información, la fase de análisis, correspondiente al ciclo de vida del desarrollo de un sistema de voto electrónico. Su uso dentro de escenarios bajo continua observación, además, permite resaltar un aumento en la productividad y el trabajo de los desarrolladores, dado que suministra las bases necesarias para construir un sistema de voto electrónico inexistente de una forma eficiente.
Cabe destacar también que al poner en marcha la metodología de modelado propuesta dentro de un caso práctico, facilita el control del resto de las tareas del ciclo de vida de desarrollo correspondiente al sistema, lo cual da la oportunidad de obtener uno de calidad y en menor tiempo, ya que permite dedicar más horas de trabajo para afinar los detalles correspondientes a la traducción, de los modelos obtenidos con la metodología, hacia un lenguaje de programación. Con base en ello, existe una disminución de los tiempos dedicados al ciclo de vida de desarrollo de un sistema de voto electrónico.
Como posibles trabajos a futuro se pueden distinguir dos vertientes. En la primera se deja la ampliación de esta metodología para incluir el modelado dinámico de un sistema de voto electrónico debido a que es una representación conceptual correspondiente al modelado de requisitos en términos de las clases de objetos. En una segunda vertiente, se deja abierta la posibilidad de implementar la metodología de modelado presentada, utilizando otro tipo de algoritmos criptográficos dentro de la codificación de los métodos correspondientes a cada caso de uso. Esto, con la finalidad de robustecer la seguridad de la información del sistema modelado.
Bibliografía
ALAM, M.R. et al. “Design and implementation of microprocessor based electronic voting system”. En Proceedings 11th International Conference on Computer and Information Technology, ICCIT, 2008, pp. 264 – 269.
BRAUDE Eric J. Ingeniería de Software. Una perspectiva orientada a objetos, Ed. Alfaomega, 2003, pp: 151 – 157.
CHUNLAI Song. “A Practical Electronic Voting Protocol Based upon Oblivious Signature Scheme”. En Proceedings International Conference on Computational Intelligence and Security, CIS’08. 2009, pp. 381 - 384.
FONTANELA, Carlos. UML. Modelado de software para profesionales. 1era Edición. Ed. Alfaomega. 2011, pp: 65 – 85.
GALLEGOS, G. et al. “A New and Secure Electronic Voting Protocol Based on
Bilinear Pairings”. en Proceedings 21st International Conference on Electrical, Communications, and Computers. CONIELECOMP, 2009, pp. 203 - 212.
HASAN, M.S.; Mahmood, A.A.; Farhan, Q. “A Roadmap Towards the Implementation of an Efficient Online Voting System in Bangladesh”, En Proceedings International Conference on Computational Intelligence and Software Engineering, CiSE, 2010, 2010, pp. 1 – 4.
KUMAR, D.A. Begum, T.U.S. “Electronic voting machine - A review”, En Proceedings International Conference on Pattern Recognition, Informatics and Medical Engineering, PRIME, 2012, pp. 41 – 48.
LAVANYA, S. “Trusted secure electronic voting machine”. En Proceedings International Conference on Nano Science, Engineering and Technology, ICONSET, 2011, pp. 505 – 507.
MOLINA SILVA, Adriana; RUIZ VENEGAS, Verónica Karina. Diseño e Implementación de un Sistema de Votación Electrónica, Tesis de Licenciatura. 2010.
RALPH, P.; Wand, Y. “A Proposal for a Formal Definition of the Design Concept”. En LYYTINEN, K., et al, (eds.). Design Requirements Engineering: A Ten-Year Perspective: Springer-Verlag, 2009, pp. 103-136.
ROSSLER, T. Leitold, H. Posch, R. “E-Voting: A Scalable Approach using XML and Hardware Security Modules”. En Proceedings IEEE International Conference on e-Technology, e-Commerce and e-Service. 2005, pp: 480-485.
SOMMERVILLE, Ian. Software Engineering, Addison Wesley, 9th edition. 2011, pp. 6, 290.
THAMMAWAJA, S.; Lertwatechakul, M. “Design a Secure Electronic Voting System for Thailand’s Election”. En Proceedings International Symposium on Communications and Information Technologies, ISCIT, 2008, pp. 40 – 45.
WEITZENFELD Alfredo. Ingeniería de Software orientada a Objetos con UML, Java e Internet. Ed. Thomson, 2004, pp.: 193 – 235.
WKOHNO, Tadayoshi, et al. “Analysis of an Electronic Voting System”, En Proceedings IEEE Symposium on Security and Privacy. 2004, pp: 27 – 40.