-
Notifications
You must be signed in to change notification settings - Fork 5
Resumen ejecutivo postprocesado
Nuestro equipo usó como base para las propuestas de mejora el documento publicado en el repositorio con las posibles tareas a desarrollar. En un principio se propusieron todos los cambios incluidos para nuestro módulo en el documento, pero una vez inmersos en el proceso de desarrollo nos dimos cuenta que estos cambios eran insuficientes para llegar a la métricas mínimas exigidas en la asignatura, por lo que añadimos nuevas funcionalidades. A continuación se detallan brevemente los incrementos introducidos. Estos cambios se explican con mayor detalle en la descripción del sistema.
Para dar soporte a las votaciones por orden de preferencia diseñadas por el módulo de votaciones, nuestro equipo ha tenido que adaptar nuestro módulo para poder realizar el recuento de estas votaciones. En este tipo de preguntas, el parámetro votes
del JSON, que contiene los votos emitidos para cada opción, es una lista en vez de un número, cambio que se ha tenido que gestionar e implementar.
Para dar soporte a las votaciones con múltiples preguntas diseñadas por el módulo de votaciones, nuestro equipo ha tenido que adaptar nuestro módulo para poder realizar el recuento de estas votaciones. En este tipo de preguntas, el JSON es una lista de objetos pregunta en vez de un único objeto pregunta, cambio que se ha tenido que gestionar e implementar.
Este tipo de recuento da el mismo valor a los votos de las personas de género masculino y los votos de las personas de género femenino. Para incluir esta funcionalidad, se ha tenido que modificar el módulo de autenticación para habilitar la elección del género en los usuarios, creando un modelo de usuario personalizado.
Es un algoritmo que permite realizar recuentos a preguntas por orden de preferencia. Este tipo de recuento sólo puede ser usado en el caso de que se realice una pregunta por orden de preferencia.
Son algoritmos de recuento que asignan escaños a las opciones en base a los votos que reciben. Concretamente, los recuentos de resto mayor dividen el total de votos emitidos entre un cociente; el resultado marca el mínimo de votos necesario para obtener un escaño. Los cocientes implementados son los de Hare, Droop e Imperiali.
Son algoritmos de recuento que asignan escaños a las opciones en base a los votos que reciben. Estos son algoritmos iterativos que no reparten los escaños en base a los votos totales, sino en base al número de votos obtenidos por cada opción. Los algoritmos de promedio mayor implementados son los de Hondt y Sainte-Laguë.
Miembro del equipo | Horas | Commits | LoC | Test | Issues | Incremento |
---|---|---|---|---|---|---|
García de la Poza, Raúl | 25* | 1* | 57* | 1* | 3 | Este miembro del equipo ha incluido el recuento de Hondt al módulo de postprocesado |
Fernández de la Rosa, José Ramón | 85 | 38* | 382* | 7 | 9 | Este miembro del equipo ha incluido el recuento Imperiali al módulo de postprocesado, ha dado soporte a recuento de votaciones con múltiples preguntas y ha incluido el atributo sexo en los usuarios |
Raposo Díaz, Jorge | 67 | 15 | 569 | 10 | 8 | Este miembro del equipo ha incluido el recuento de igualdad y el recuento Droop al módulo de postprocesado, y ha realizado refactorización de código |
Ruiz-Mateos Ruiz de Lacanal, José Manuel | 45* | 1* | 46* | 1* | 4 | Este miembro del equipo ha incluido el recuento de Hare al módulo de postprocesado |
Sánchez Baleyrón, Daniel | 68 | 13* | 491 | 9 | 9 | Este miembro del equipo ha incluido el recuento Borda y el recuento Sainte-Laguë al módulo de postprocesado |
TOTAL | 290* | 64* | 1545* | 28 | 32 |
- GitHub. Se ha usado para obtener los commits y las incidencias de los miembros del equipo
- Git. Se ha empleado para obtener las líneas de código de cada uno de los miembros del equipo, usando el siguiente comando:
git log --all --numstat --pretty="%H" --author="author" --since=1.year | awk 'NF==3 {plus+=$1; minus+=$2} NF==1 {total++} END {printf("lines added: +%d\nlines deleted: -%d\ntotal commits: %d\n", plus, minus, total)}'
Este grupo forma parte del proyecto decide-full-guadalentín, del cual forman parte otros cuatro equipos. El equipo se ha integrado con el mayor nuúmero posible de grupos. Teniendo en cuenta que nuestro módulo no cuenta con frontend, no nos hemos podido integrar con el módulo de usabilidad. Esta es la integración con el resto de submódulos:
- decide-full-guadalentín-cabina: Aunque no usamos de forma directa ninguno de sus servicios, sí ha existido comunicación entre ambos módulos. Nuestra integración con el módulo de cabina ha sido conjunta con el módulo de votaciones. Concretamente, nos hemos puesto de acuerdo entre los tres equipos para definir el formato en el que se envían, encriptan, guardan, desencriptan y llegan a nuestro módulo los votos para cada una de las preguntas.
- decide-full-guadalentín-visualización: Los cambios realizados en el JSON que nos envía el módulo de votaciones también afectan al módulo de visualización, ya que el JSON que nuestro módulo les manda tiene la misma estructura. Por tanto, el módulo de visualización ha tenido que cambiar parte de su documentación para poder hacer uso de los datos que les envía nuestro módulo. También hemos tenido que adaptar nuestro módulo para aportarles algunos datos que nos han pedido (#146).
- decide-full-guadalentín-votaciones: Con este grupo se ha realizado la mayor parte de la integración. Esto es debido a que nuestro módulo es totalmente dependiente del módulo de votaciones: por ejemplo, si ellos cambian el formato del JSON que se manda al postprocesado, nuestro grupo debe encargarse de adaptar el código para poder capturar todos los parámetros del mismo. Concretamente, nos hemos puesto de acuerdo para soportar el recuento a múltiples preguntas (#71, #118 y #120), para soportar el recuento de preguntas por orden de preferencia (#74) y para soportar el recuento de preguntas con múltiple opción de respuesta. Además, el módulo de votaciones ha tenido que realizar modificaciones para soportar los diferentes algoritmos que recuento que hemos diseñado; en concreto, han diseñado una funcionalidad para seleccionar el algoritmo de recuento para cada pregunta, además de añadir un nuevo parámetro en la votación, correspondiente a los escaños que deben repartirse si el algoritmo de recuento es de tipo proporcional (#74). Algunos nombres de parámetros del JSON no eran los que nosotros esperábamos, por lo que hemos tenido que modificarlos en varias ocasiones (#268).