Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Índice de figuras V
1. Visión y Ámbito 1
1.1. Requisitos de negocio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Oportunidades de negocio y necesidades del cliente . . . . . . . . . 1
1.1.2. Objetivos de negocio y criterios de éxito . . . . . . . . . . . . . . . 1
1.1.3. Riesgos de negocio . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Visión de la solución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Declaración de la visión . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2. Caracterı́sticas principales . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3. Suposiciones y dependencias . . . . . . . . . . . . . . . . . . . . . . 2
2. Descripción Funcional 3
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Identificación de los Actores . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. Diagrama de Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4. Análisis de los Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4.1. Caso de uso Visualizar horario aula . . . . . . . . . . . . . . . . . . 5
2.4.2. Caso de uso Realizar encuesta . . . . . . . . . . . . . . . . . . . . . 6
2.4.3. Caso de uso Habilitar encuesta . . . . . . . . . . . . . . . . . . . . 7
2.4.4. Caso de uso Deshabilitar encuesta . . . . . . . . . . . . . . . . . . . 8
2.4.5. Caso de uso Firmar . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.6. Caso de uso Visualizar estadı́sticas asignatura . . . . . . . . . . . . 10
2.4.7. Caso de uso Login . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3. Especificación de Requisitos 13
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2. Requisitos Funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.1. Requisitos funcionales del caso de uso Visualizar horario aula . . . . 13
3.2.2. Requisitos funcionales del caso de uso Realizar encuesta . . . . . . . 13
3.2.3. Requisitos funcionales del caso de uso Habilitar encuesta . . . . . . 14
3.2.4. Requisitos funcionales del caso de uso Deshabilitar encuesta . . . . 14
3.2.5. Requisitos funcionales del caso de uso Firmar . . . . . . . . . . . . 14
i
ii ÍNDICE GENERAL
4. Modelo de Datos 17
4.1. Análisis de Entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1. Tipo de Entidad Persona . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.2. Tipo de Entidad Profesor . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.3. Tipo de Entidad Estudiante . . . . . . . . . . . . . . . . . . . . . . 19
4.1.4. Tipo de Entidad Estudiante no contratado . . . . . . . . . . . . . . 20
4.1.5. Tipo de Entidad Estudiante contratado . . . . . . . . . . . . . . . . 20
4.1.6. Tipo de Entidad Asignatura . . . . . . . . . . . . . . . . . . . . . . 20
4.1.7. Tipo de Entidad Lugar . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.8. Tipo de Entidad Asistencia . . . . . . . . . . . . . . . . . . . . . . 23
4.1.9. Tipo de Entidad Encuesta . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.10. Tipo de Entidad Estadı́stica . . . . . . . . . . . . . . . . . . . . . . 24
4.2. Diagrama Entidad-Relación . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3. Modelo Relacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5. Primer Sprint 29
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2. Estimación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2.1. Estimación de la historia Diseño y creación de la base de datos . . . 30
5.2.2. Estimación de la historia Ver horario aula . . . . . . . . . . . . . . 30
5.2.3. Estimación de la historia Firmar . . . . . . . . . . . . . . . . . . . 31
5.2.4. Estimación de la historia Habilitar encuesta . . . . . . . . . . . . . 31
5.3. Seguimiento del Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4. Burndown Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5. Estructura de ficheros resultante . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5.1. Historia 0.1 - Diseño y creación de la Base de Datos . . . . . . . . . 34
5.5.2. Historia 1.1 - Ver Horario Aula . . . . . . . . . . . . . . . . . . . . 34
5.5.3. Historia 5.1 - Firmar . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5.4. Historia 3.1 - Habilitar Encuesta . . . . . . . . . . . . . . . . . . . 35
5.6. Pruebas unitarias de las historias . . . . . . . . . . . . . . . . . . . . . . . 35
5.6.1. Pruebas unitarias de la historia visualizar horario . . . . . . . . . . 36
5.6.2. Pruebas unitarias de la historia habilitar encuesta . . . . . . . . . . 37
5.6.3. Pruebas unitarias de la historia firmar . . . . . . . . . . . . . . . . 38
6. Segundo Sprint 43
6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2. Estimación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
ÍNDICE GENERAL iii
7. Conclusiones 57
7.1. Matrices de trazabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2. Futuras mejoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Bibliografı́a 61
Índice de figuras
v
Índice de tablas
vii
Capı́tulo 1
Visión y Ámbito
1
2 1.2. VISIÓN DE LA SOLUCIÓN
RN-2: Que el sistema no se use porque los usuarios a los que va destinado des-
conozcan el funcionamiento y uso de este por no tener una aplicación de uso de
referencia.
CP-1: Poder visualizar los horarios de las asignaturas que se imparten en cada aula.
D-1: Se deberá de llevar una concordancia en la base de datos entre los datos que
se recojan de forma manual y los emitidos por el sistema.
Capı́tulo 2
Descripción Funcional
2.1. Introducción
En este capı́tulo se exponen las funcionalidades necesarias para conseguir abordar las
tres caracterı́sticas principales expuesta en el primer capı́tulo.
Para ello, se definirán los distintos roles que pueden intervenir en los procesos ası́ como
las responsabilidades y caracterı́sticas de cada uno de estos.
Posteriormente se expondrán las diferentes funcionalidades que debe presentar el siste-
ma para permitir alcanzar los objetivos fijados y los criterios de negocio, teniendo siempre
en cuenta las restricciones de tiempo del proyecto y las limitaciones tanto software como
hardware.
Profesor. Es una persona que solicita ser registrado en el sistema para poder con-
firmar su asistencia en las aulas pertinentes.
Estudiante.Es una persona que realiza las encuestas, firma su asistencia a las clases
y visualiza información sobre las aulas registradas en el sistema.
3
4 2.3. DIAGRAMA DE CASOS DE USO
ID 1
Nombre caso de uso Visualizar horario aula
Actor Persona
La persona visualiza el horario de las asignaturas
Descripción
que se imparten en el aula.
Precondicion Ninguna
Visualizar horario de un aula
Paso Acción
Secuencia Normal La persona pasa su móvil por el TAG NFC y
1 solicita al sistema la información de los
horarios para ese.
El TAG NFC devuelve una URL con la
2
información del horario para ese aula.
El sistema permite a la persona visualizar
3
la información sobre el aula.
La persona visualiza la información de los
Postcondición
horarios del aula.
La persona puede acceder a la información del
Cursos alternativos
horario del aula conociendo la URL y el id del aula.
Excepciones Ninguna.
Includes Ninguno.
Extends Ninguno.
Prioridad Alta.
Frecuencia Esperada Varias veces por persona al dı́a.
Requisitos Especiales Ninguno.
Suposicicones Ninguna.
6 2.4. ANÁLISIS DE LOS CASOS DE USO
ID 2
Nombre caso de uso Realizar Encuesta
Actor Estudiante
Descripción El estudiante rellena la encuesta obtenida.
Precondicion El estudiante tiene que estar logueado en el sistema.
Realizar Encuesta
Paso Acción
Si el estudiante no ha iniciado sesión, el
1
estudiante realiza el caso de uso login.
Secuencia Normal La persona pasa su móvil por el TAG NFC y
2
solicita al sistema la encuesta.
El TAG NFC devuelve una URL con la
3 encuesta de la asignatura que se da en
el aula.
El sistema permite al estudiante visualizar la
4
encuesta de esa asignatura.
El estudiante rellena la encuesta
proporcionada por el sistema, con su
5 información personal y la valoración
docente de cada profesor que imparte la
asignatura.
6 El estudiante envı́a la encuesta rellenada.
El sistema comprueba que el estudiante se
7
encuentre en el lugar establecido.
Postcondición Se ha realizado una encuesta para ese usuario.
Paso Acción
Cursos alternativos Si el estudiante no está matriculado en esa
asignatura, ya ha realizado la encuesta ó la
4.1 encuesta no está habilitada, el sistema
muestra un mensaje de error y no deja
enviar la encuesta
Si el estudiante no se encuentra en el lugar
7.1
establecido, no podrá rellenar la encuesta.
Excepciones Ninguna.
Includes Login.
Extends Ninguno.
Prioridad Media.
Una vez al cuatrimestre por asignatura/estudiante
Frecuencia Esperada
matriculado.
Requisitos Especiales Ninguno.
Suposicicones Ninguna.
CAPÍTULO 2. DESCRIPCIÓN FUNCIONAL 7
ID 3
Nombre caso de uso Habilitar Encuesta
Actor Estudiante contratado
Descripción El estudiante contratado habilita la encuesta.
El estudiante contratado tiene que estar logueado
Precondicion
en el sistema.
Habilitar Encuesta del sistema
Paso Acción
Si el estudiante no ha iniciado
1 sesión, el estudiante realiza el caso de uso
Secuencia Normal
login.
El estudiante contratado pasa su móvil por
2 el TAG NFC y solicita al sistema la encuesta
a gestionar.
El TAG NFC devuelve una URL con la
3
gestión de la encuesta.
El sistema muestra la información de la
4 encuesta a habilitar al estudiante
contratado.
El estudiante contratado habilita la
5
encuesta.
6 El sistema confirma la operación
Se ha habilitado una encuesta, y es visible para el
Postcondición
estudiante que solicite realizarla.
Cursos alternativos Ninguno.
E.1 La encuesta seleccionada ya está habilitada
Excepciones
Paso Acción
Si la encuesta ya está habilitada, el sistema
1 cancela la operación, a continuación este
caso de uso termina.
Includes Login.
Extends Ninguno.
Prioridad Media.
Frecuencia Esperada Una vez al año por asignatura.
Requisitos Especiales Ninguno.
Suposicicones Ninguna.
8 2.4. ANÁLISIS DE LOS CASOS DE USO
ID 4
Nombre caso de uso Deshabilitar Encuesta
Actor Estudiante Contratado
Descripción El estudiante contratado deshabilita la encuesta.
El estudiante contratado tiene que estar logueado
Precondicion
en el sistema.
Deshabilitar Encuesta del sistema
Paso Acción
Si el estudiante no ha iniciado sesión, el
1
estudiante realiza el caso de uso login.
Secuencia Normal
El estudiante contratado pasa su móvil por
2 el TAG NFC y solicita al sistema la encuesta
a gestionar.
El TAG NFC devuelve una URL con la
3
gestión de la encuesta.
El sistema permite al estudiante contratado
4
visualizar la gestion de esa asignatura.
El estudiante contratado deshabilita la
5
encuesta.
6 El sistema confirma la operación
Se ha deshabilitado una encuesta, y no es
Postcondición
accesible para los estudiantes que soliciten realizarla.
Cursos alternativos Ninguno.
E.1 La encuesta seleccionada ya está
Excepciones deshabilitada
Paso Acción
Si la encuesta ya está deshabilitada, el
1 sistema cancela la operación, a
continuación este caso de uso termina.
Includes Login.
Extends Ninguno.
Prioridad Media.
Frecuencia Esperada Una vez al año por asignatura.
Requisitos Especiales Ninguno.
Suposicicones Ninguna.
CAPÍTULO 2. DESCRIPCIÓN FUNCIONAL 9
ID 5
Nombre caso de uso Firmar
Actor Persona
Descripción La persona firma para confirmar su asistencia.
La persona tiene que ser un profesor o un
Precondicion
estudiante registrado en el sistema.
Firmar en el sistema
Paso Acción
Si la persona no ha iniciado sesión, el
Secuencia Normal
1 sistema realiza el caso de uso iniciar
sesión.
El sistema muestra la hora, aula y
2
asignatura.
3 La persona pulsa sobre el botón firmar.
En el sistema queda almacenado la
4
asistencia.
Queda registrada la asistencia tanto de la persona
Postcondición
(tanto del profesor como del alumno).
Paso Acción
Cursos Alternativos
Si la persona no se encuentra en el lugar
3.1 donde se imparte la asignatura, el sistema
no permite que firme.
Excepciones Ninguna.
Includes Login.
Extends Ninguno.
Prioridad Media.
Frecuencia Esperada 1 vez al dı́a por persona en cada asignatura.
Requisitos Especiales Ninguno.
Suposicicones Ninguna.
10 2.4. ANÁLISIS DE LOS CASOS DE USO
ID 6
Nombre caso de uso Visualizar estadı́sticas asignatura
Actor Persona
La persona visualiza las estadı́sticas de una
Descripción
asignatura.
Precondicion Ninguna.
Visualizar el horario de un aula
Paso Acción
Secuencia Normal
La persona accede a la aplicación web y
1 selecciona la asignatura de la que quiere
ver las estadı́sticas.
El sistema devuelve la información sobre
2
las estadı́sticas de esa asignatura.
La persona visualiza la información de la estadı́stica
Postcondición
seleccionada.
Paso Acción
Cursos Alternativos
Si la encuesta de esa asignatura aún no ha
2.1 sido realizada el sistema muestra un
mensaje de error.
Excepciones Ninguna.
Includes Ninguno.
Extends Ninguno.
Prioridad Baja.
Frecuencia Esperada Varias veces por persona al dı́a.
Requisitos Especiales Ninguno.
Suposicicones Ninguna.
CAPÍTULO 2. DESCRIPCIÓN FUNCIONAL 11
ID 7
Nombre caso de uso Login
Actor Persona
Descripción La persona se loguea en el sistema.
Precondicion La persona debe estar registrada en el sistema.
Iniciar Sesión en el sistema
Paso Acción
La persona, introduce en el sistema sus
1
Secuencia Normal datos.
El sistema verifica los datos introducidos por
2
la persona.
La persona pulsa sobre el botón “Iniciar
3
sesión”
4 En el sistema crea una sesión.
5 La persona se encuentra activa en sesión.
Postcondición El usuario queda logueado en el sistema.
Paso Acción
2.1 El sistema muestra un mensaje de error.
Cursos alternativos
El sistema redirige a la persona, para que
2.2
introduzca de nuevo los datos.
2.3 El sistema vuelve a verificar los datos.
Excepciones Ninguna.
Includes Ninguno.
Extends Ninguno.
Prioridad Alta.
Frecuencia Esperada Una vez por asignatura que tenga la persona al dı́a.
Requisitos Especiales Ninguno.
Suposicicones Ninguna.
Capı́tulo 3
Especificación de Requisitos
3.1. Introducción
En este capı́tulo se exponen los requisitos funcionales y no funcionales que el sistema
debe cumplir para obtener la funcionalidad de las caracterı́sticas principales y objetivos
de negocio.
Como se va a seguir la metodologı́a ágil SCRUM [2], se hará referencia a este conjunto
también como Product Backlog en capı́tulos posteriores.
Para ello, estos requisitos se expondrán en función de los casos de uso de los que
derivan, facilitando ası́ su trazabilidad y posterior prueba, mantenimiento y calidad.
13
14 3.2. REQUISITOS FUNCIONALES
RF 3.1.2.3. El sistema deberá almacenar los estudiantes que han realizado una
encuesta.
RF 3.1.4.2. El sistema deberá generar las estadı́sticas de una asignatura una vez
que esta esté deshabilitada.
RF 3.1.7.1. El sistema deberá permitir cerrar sesión a las personas cuando estas
lo deseen.
EO-1. Se ha usado un servidor de hosting gratuito [3] que tiene como caracterı́sticas
[4] soporte de PHP version PHP 7.1, MySqL versión 4.5.6, soporte FTP, WordPress
y 1000 MB de espacio en disco.
EO-2. Las pruebas sobre navegador web y el desarrollo se han realizado sobre un
dispositivo MSI con un intel core i7, 16 GB de RAM y sistema operativo Windows
10, y sobre los ordenadores de la Universidad de Córdoba.
EO-3. Las pruebas unitarias se han desarrollado sobre los dispositivos móviles Sam-
sung Galaxy A5, con 2 Gb de RAM y procesador Exynos 7580 y un dispositivo LG
G6 con 4Gb de Ram y procesador Snapdragon 821
EO-5. El sistema deberá operar en un servidor corriendo con las versiones de Ubuntu
o CentOS y Apache HTTP.
RD-4. Todos los dispositivos que usen el sistema deben contar con tecnologı́a NFC.
16 3.3. REQUISITOS NO FUNCIONALES
RNF 3.2.4.2. El sistema deberá estar disponible como mı́nimo 12 horas al dı́a, 7
dı́as a la semana, 365 dı́as al año.
RNF 3.2.4.3. El sistema deberá ser capaz de soportar, como mı́nimo, 20 peticiones
simultáneas.
Modelo de Datos
Caracterı́sticas
• correo
◦ Definición del atributo: representa el e-mail identificativo que se le asigna
a cada Persona dentro del sistema.
◦ Dominio: conjunto alfanumérico de longitud máxima 15 caracteres (inclu-
yendo ‘@’ como caracter especial).
◦ Tipo: atributo simple.
◦ Ejemplo: i42gosaa@uco.es
◦ Información adicional: es clave primaria o identificador principal del tipo
de entidad. Es de carácter obligatorio.
• password
◦ Definición del atributo: representa la contraseña asociada al correo de una
Persona.
◦ Dominio: conjunto alfanumérico de longitud máxima 8 caracteres.
17
18 4.1. ANÁLISIS DE ENTIDADES
Caracterı́sticas
• departamento
◦ Definición del atributo: representa el departamento que tiene asignado para
desarrollar su labor docente y de investigación un Profesor.
◦ Dominio: conjunto de caracteres de longitud máxima 50 caracteres.
◦ Tipo: atributo simple.
◦ Ejemplo: Informática y Análisis Numérico.
◦ Información adicional: Es de carácter no nulo.
CAPÍTULO 4. MODELO DE DATOS 19
Caracterı́sticas
• grado
◦ Definición del atributo: representa el grado o carrera universitaria que es-
tudia un Estudiante.
◦ Dominio: conjunto de caracteres de longitud máxima 50 caracteres.
◦ Tipo: atributo simple.
◦ Ejemplo: Ingenierı́a Informática.
◦ Información adicional: Es de carácter no nulo.
• curso
◦ Definición del atributo: representa el año que está cursando un Estudiante
para un grado.
◦ Dominio: conjunto numérico de longitud máxima 1 caracter.
◦ Tipo: atributo simple.
◦ Ejemplo: 3
◦ Información adicional: Es de carácter no nulo.
• contratado
◦ Definición del atributo: representa si un Estudiante está contratado o no
para supervisar las Encuestas.
◦ Dominio: conjunto numérico de longitud máxima 1.
◦ Tipo: atributo simple.
◦ Ejemplo: 0.
◦ Información adicional: El valor de este atributo valdrá ‘1’ si es un Estu-
diante contratado y ‘0’ en otro caso.
20 4.1. ANÁLISIS DE ENTIDADES
Caracterı́sticas
Caracterı́sticas
Caracterı́sticas
• id asignatura
◦ Definición del atributo: representa el número identificativo que se le asigna
a cada Asignatura dentro del sistema.
◦ Dominio: conjunto de número naturales de longitud máxima 6 cifras.
◦ Tipo: atributo simple.
◦ Ejemplo: 101412.
◦ Información adicional: es clave primaria o identificador principal del tipo
de entidad. Es de carácter obligatorio.
• nombre
◦ Definición del atributo: representa el nombre de una Asignatura.
◦ Dominio: conjunto de caracteres de longitud máxima 50.
◦ Tipo: atributo simple.
◦ Ejemplo: Arquitectura de Computadores.
◦ Información adicional: Es de carácter no nulo.
• grado
◦ Definición del atributo: Definición del atributo: representa el grado o ca-
rrera universitaria al que pertenece una Asignatura.
◦ Dominio: conjunto de caracteres de longitud máxima 50 caracteres.
◦ Tipo: atributo simple.
◦ Ejemplo: Medicina.
◦ Información adicional: Es de carácter no nulo.
• curso
◦ Definición del atributo: representa el año al que pertenece una Asignatura.
◦ Dominio: conjunto numérico de longitud máxima 1 caracter.
◦ Tipo: atributo simple.
◦ Ejemplo: 2
◦ Información adicional: Es de carácter no nulo.
22 4.1. ANÁLISIS DE ENTIDADES
Caracterı́sticas
• id lugar
◦ Definición del atributo: representa el número identificativo que se le asigna
a cada Lugar dentro del sistema.
◦ Dominio: conjunto de número naturales de longitud máxima 6 cifras.
◦ Tipo: atributo simple.
◦ Ejemplo: 000500.
◦ Información adicional: es clave primaria o identificador principal del tipo
de entidad. Es de carácter obligatorio.
• coordenadas
◦ Definición del atributo: representa las coordenadas geográficas (ubicación)
de un Lugar.
◦ Dominio: conjunto de números reales de longitud máxima 50.
◦ Tipo: atributo simple.
◦ Ejemplo: 37.915876, -4.725346.
◦ Información adicional: Es de carácter no nulo.
• aula
◦ Definición del atributo: representa el nombre del aula donde se imparte
una Asignatura.
◦ Dominio: conjunto de caracteres alfanuméricos de longitud máxima 10 ca-
racteres.
◦ Tipo: atributo simple.
◦ Ejemplo: INF3.
◦ Información adicional: Es de carácter no nulo.
• edificio
◦ Definición del atributo: representa el nombre del edificio donde se imparte
una Asignatura.
CAPÍTULO 4. MODELO DE DATOS 23
Caracterı́sticas
• fecha
◦ Definición del atributo: representa la fecha en la que se produjo una Asis-
tencia.
◦ Dominio: conjunto de caracteres con longitud máxima 10.
◦ Tipo: atributo simple.
◦ Ejemplo: 11/12/2017.
◦ Información adicional: Es de carácter obligatorio.
Caracterı́sticas
• habilitada
◦ Definición del atributo: representa si una Encuesta se encuentra habilitada
o no.
◦ Dominio: conjunto numérico con longitud máxima 1.
◦ Tipo: atributo simple.
◦ Ejemplo: 0.
◦ Información adicional: El valor de este atributo valdrá ‘1’ si la Encuesta
está habilitada y ‘0’ en otro caso. Es de carácter no nulo.
Caracterı́sticas
• id estadistica
◦ Definición del atributo: representa el número identificativo que se le asigna
a cada Estadı́stica dentro del sistema.
◦ Dominio: conjunto numérico con longitud máxima 6.
◦ Tipo: atributo simple.
◦ Ejemplo: 101398.
◦ Información adicional: es clave primaria o identificador principal del tipo
de entidad. Es de carácter obligatorio.
• est asistencia
◦ Definición del atributo: representa la asistencia a clase por parte de los
estudiantes.
◦ Dominio: conjunto numérico con longitud máxima 1.
◦ Tipo: atributo simple.
◦ Ejemplo: 4.
◦ Información adicional: El valor de este atributo podrá tomar valores com-
prendidos en el rango [1:5]. Es de carácter no nulo.
• est dificultad
CAPÍTULO 4. MODELO DE DATOS 25
Primer Sprint
5.1. Introducción
Como se comentó anteriormente, este proyecto está regido por la metodologı́a ágil
SCRUM, por lo que se abordará la especificación a más bajo nivel, el diseño y las pruebas
del product backlog expuesto en el capı́tulo 3 en dos incrementos.
Este primer incremento da comienzo el 1 de Noviembre de 2017 con la reunión de
planificación en la que se exponen las historias a abordar y la estimación del sprint y sus
tareas.
En esta reunión se toman como base las prioridades y necesidades de la aplicación, se
determinan cuáles y cómo van a ser las funcionalidades que se incorporarán al producto
en el siguiente sprint.
Los requisitos más prioritarios se han escogido en este sprint en función de su simpli-
cidad, para que el equipo sea capaz de manejar con fluidez la tecnologı́a a usar para los
siguientes sprints.
5.2. Estimación
Para este sprint, cada integrante del equipo se compromete a dedicar 1 hora al dı́a,
durante 5 dı́as a la semana sin contar las reuniones en horario lectivo, por lo que el sprint
dura un total de 50 horas realizadas durante dos semanas.
En este primer sprint ha sido necesario incluir una historia inicial para el diseño y
creación de la base de datos, además se han seleccionado las historias de ver horario aula,
firmar y habilitar encuesta.
La prioridad dentro del sprint se ha establecido del 1 al 5, siendo lo máximo 5 y lo
mı́nimo 1.
29
30 5.2. ESTIMACIÓN
ID Historia 0.1
Nombre Historia Diseño y creación de la base de datos
Prioridad 5
Estimación 15
Comprobar que se puede realizar la inserción,
Como se prueba actualización y borrado de cualquier tupla en cualquier
tabla.
0.1. Diseño de la base de datos.
Tareas
0.2. Creación e implementación de la base de datos.
ID Historia 1.1
Nombre Historia Ver horario aula
Prioridad 2
Estimación 5
Pasar el Tag NFC por la etiqueta NFC del aula. Comprobar
que los horarios de ese aula son correctos. Comprobar
Como se prueba
que, si no hay asignaturas ese dı́a en ese aula, el horario
muestre un mensaje indicándolo.
1.1.1 Diseño de la interfaz.
1.1.2 Diseño de la interfaz (index y mensaje de error).
Tareas
1.1.3. Consultas a la base de datos.
1.1.4. Pruebas unitarias.
CAPÍTULO 5. PRIMER SPRINT 31
ID Historia 5.1
Nombre Historia Firmar
Prioridad 3
Estimación 20
Pasar el Tag NFC por la etiqueta NFC del aula. Comprobar
que la persona esté en el lugar determinado por el aula.
Como se prueba
Comprobar que, si no pertenece a esa asignatura ó no se
encuentra en la localización muestre un error.
5.1.1 Diseño de la interfaz.
5.1.2. Consultas a la base de datos.
Tareas 5.1.3 Obtener API Key para geolocalización.
5.1.4. Implementar geolocalización.
5.1.5. Pruebas unitarias.
ID Historia 3.1
Nombre Historia Habilitar Encuesta
Prioridad 1
Estimación 5
Pasar el Tag NFC por la etiqueta NFC de la encuesta.
Comprobar que la persona esté en el lugar determinado
por el aula donde se va a realizar la encuesta. Comprobar
Como se prueba
que, si eres estudiante ó estudiante contratado. Si es
estudiante contratado se redirige a el menú de la encuesta,
si eres estudiante se redirige a rellenar la encuesta.
3.1.1 Diseño de la interfaz.
Tareas 3.1.2. Consultas a la base de datos.
3.1.3. Pruebas unitarias.
La siguiente tabla permite a los desarrolladores repartirse las tareas y conocer el estado
de cada una de ellas, posibilitando ası́ realizar tareas de forma paralela.
Esta tabla será actualizable por cualquier miembro del equipo, y se mantendrán reunio-
nes diarias donde cada uno expondrá lo que hizo el dı́a anterior y en lo que va a continuar
trabajando.
Además guardar esta información tiene como objetivo poder realizar mejores estima-
ciones en un futuro, conociendo la velocidad del equipo.
menuHorarios.php
Contiene la interfaz donde se permite seleccionar el Aula del que se quiere ver
el horario.
Contiene las librerias de CSS y js contenidas en la carpeta bootstrap.
error.php
verHorarioClase.php
index.php
firmar.php
menuAsistencia.php
habilitarEncuesta.php
(a) (b)
Figura 5.10: Visualización del menú tras la prueba unitaria de habilitar encuesta
CAPÍTULO 5. PRIMER SPRINT 41
Segundo Sprint
6.1. Introducción
En este segundo incremento se abordará la especificación a más bajo nivel, el diseño
y las pruebas del Product Backlog restante del primer incremento.
Este da comienzo el 16 de Noviembre de 2017, con la reunión de planificación en la
que se exponen las historias a abordar y la estimación del sprint y sus tareas.
En esta reunión se priorizan las historias restantes y necesidades de la aplicación,
determinando cuáles y cómo van a ser las funcionalidades que se incorporarán.
6.2. Estimación
Para este segundo sprint cada integrante del equipo se compromete a dedicar 1 hora
al dı́a, durante 5 dı́as a la semana sin contar las reuniones en horario lectivo, por lo que
el sprint dura un total de 75 horas realizadas durante tres semanas. En este sprint se ha
tenido en cuenta la medida en la que se cumplió la estimación del sprint anterior, guiando
este proceso de una forma más precisa.
La prioridad dentro del sprint se ha establecido del 1 al 5, siendo lo máximo 5 y lo
mı́nimo 1.
En cada estimación de las historias se ha incluido la información necesaria para apro-
ximar lo máximo posible el número de horas de su realización a la realidad.
43
44 6.2. ESTIMACIÓN
ID Historia 2.1
Nombre Historia Realizar Encuesta
Prioridad 5
Estimación 30
Pasar el Tag NFC por la etiqueta NFC de la encuesta.
Comprobar que la persona esté en el lugar determinado
Como se prueba por el aula donde se va a realizar la encuesta. Comprobar
que, el estudiante pertenece a la asignatura, sino muestra
un mensaje de error.
2.1.1 Diseño de la interfaz.
2.1.2. Consultas a la base de datos.
Tareas
2.1.3. Implementar geolocalización.
2.1.3. Pruebas unitarias.
ID Historia 4.1
Nombre Historia Deshabilitar Encuesta
Prioridad 3
Estimación 10
Pasar el Tag NFC por la etiqueta NFC de la encuesta.
Comprobar que la persona esté en el lugar determinado
por el aula donde se va a realizar la encuesta. Comprobar
Como se prueba
que, si eres estudiante ó estudiante contratado. Si es
estudiante contratado es el responsable de finalizar y
deshabilitar la encuesta.
4.1.1 Diseño de la interfaz.
4.1.2 Diseño de la interfaz del menú del estudiante contratado.
Tareas 4.1.3. Consultas a la base de datos.
4.1.4. Implementar geolocalización.
4.1.5. Pruebas unitarias.
46 6.3. SEGUIMIENTO DEL SPRINT
ID Historia 6.1
Nombre Historia Visualizar estadı́sticas encuesta
Prioridad 1
Estimación 20
Comprobar que una estadı́stica se ha realizado, si no es
ası́ te muestra un mensaje de error y si se ha realizado
Como se prueba
debe mostrar la media de las calificaciones que ha
obtenido esa encuesta.
6.1.1 Diseño de la interfaz.
Tareas 6.1.2. Consultas a la base de datos.
6.1.3. Pruebas unitarias.
ID Historia 7.1
Nombre Historia Login
Prioridad 5
Estimación 15
Se comprueba que un usuario cualquiera se puede loguear
Como se prueba en el sistema, si no es ası́ sale un mensaje de error en rojo
indicando los campos que faltan.
7.1.1 Diseño de la interfaz.
Tareas 7.1.2 Consultas a la base de datos.
7.1.3. Pruebas unitarias.
Además guardar esta información tiene como objetivo poder realizar mejores estima-
ciones en un futuro, conociendo la velocidad del equipo.
menuElegirEncuesta.php
menuEncuesta.php
Contiene la interfaz donde se le permite al Estudiante Contratado seleccionar
si quiere habilitad o deshabilitar la Encuesta de una Asignatura.
Contiene las librerias de CSS y js contenidas en la carpeta bootstrap.
formularioEncuesta.php
Contiene la interfaz donde se muestra la información referente a una Encuesta
para una Asignatura.
Contiene llamadas al fichero ajax/formularioAjax.php para asignar el evento al
pulsar en el botón y enviarlo a la base de datos.
Contiene la libreria modulos/libreria.php para la geolocalización.
Contiene las librerias de CSS y js contenidas en la carpeta bootstrap.
login.php
logout.php
Figura 6.3: Pruebas unitarias de escoger asignatura para visualizar sus estadı́sticas
Una vez pulsado “Ver Estadı́stica” nos muestra la visualización de las estadı́sticas de las
encuestas de la asignatura seleccionada previamente [11]. Indicando el grado, y varios
apartados de la encuesta solicitada a los estudiantes (nivel de asistencia, de uso de las
tutorı́as. . . , etc) como se puede observar en la Figura 6.4.
Sin embargo, si quisiéramos realizar de nuevo esta encuesta, nos mostrarı́a el siguiente
mensaje de error:
Figura 6.8: Pruebas unitarias del error para no realizar múltiples veces una encuesta
54 6.6. PRUEBAS UNITARIAS DE LAS HISTORIAS
Figura 6.9: Pruebas unitarias del mensaje de error de la historia deshabilitar encuesta
Conclusiones
A pesar de las restricción de tiempo con la que contaba el proyecto y con la poca
experiencia del equipo, tanto en la tecnologı́a utilizada como en el desarrollo de proyec-
tos con metodologı́as ágiles, se ha conseguido abarcar los 3 objetivos principales que se
expusieron en la visión y ámbito del proyecto, cubriendo ası́ las necesidades y objetivos
de negocio primarias.
Esta funcionalidad se ve reflejadas en las matrices de trazabilidad, necesarias para el
mantenimiento y seguimiento del proyecto, ası́ como guı́a para determinar que finalmente
se ha implantado toda la funcionalidad necesaria.
Sin embargo, el proyecto podrı́a aportar más información a los usuarios, mejorando
ası́ su experiencia a la hora de usar el sistema. Las posibles mejoras de este se exponen
en el apartado 7.2.
A pesar de esto, el equipo ha adquirido la destreza de poder repartir tareas para
aumentar la productividad, siguiendo el modelo de elementos y reuniones que propone
SCRUM, responsabilizando a cada miembro de las tareas que se auto-asignaba y motivan-
do un espı́ritu de equipo para poder desarrollar el sistema cumpliendo con la estimación
realizada anteriormente.
Además, la elaboración tanto de este documento como del proyecto, ha permitido
a los miembros la comparación de su experiencia previa con metodologı́as tradicionales
que se habı́an aplicado en proyectos anteriores, ampliando ası́ los conocimientos de sus
componentes para aplicarlos en un futuro laboral.
57
58 7.1. MATRICES DE TRAZABILIDAD
En primer lugar se expone la matriz de trazabilidad de los casos de uso con los requi-
sitos funcionales.
Requisitos
funcionales
CU 1 CU 2 CU 3 CU 4 CU 5 CU 6 CU 7
/ Casos de
Uso
RF 3.1.1.1 X
RF 3.1.1.2 X
RF 3.1.2.1 X
RF 3.1.2.2 X
RF 3.1.2.3 X
RF 3.1.2.4 X
RF 3.1.3.1 X
RF 3.1.3.2 X
RF 3.1.4.1 X
RF 3.1.4.2 X
RF 3.1.5.1 X
RF 3.1.5.2 X
RF 3.1.5.3 X
RF 3.1.5.4 X
RF 3.1.6.1 X
RF 3.1.6.2 X
RF 3.1.7.1 X X X X X
RF3.1.7.2 X
CAPÍTULO 7. CONCLUSIONES 59
Requisitos
funcionales H 0 H1 H2 H3 H4 H5 H6 H7
/ Historias
RF 3.1.1.1 X X
RF 3.1.1.2 X
RF 3.1.2.1 X
RF 3.1.2.2 X X
RF 3.1.2.3 X X
RF 3.1.2.4 X
RF 3.1.3.1 X
RF 3.1.3.2 X X
RF 3.1.4.1 X
RF 3.1.4.2 X X
RF 3.1.5.1 X
RF 3.1.5.2 X
RF 3.1.5.3 X X
RF 3.1.5.4 X X
RF 3.1.6.1 X
RF 3.1.6.2 X
RF 3.1.7.1 X X X X X X
RF 3.1.7.2 X
Permitir a los profesores ver las estadı́sticas de asistencia de los alumnos a las
asignaturas que imparten.
Generar eventos cuando finalicen las estadı́sticas, como mensajes a los correspon-
dientes responsables.
Crear buscadores y/o filtros para facilitar las búsquedas de los usuarios.
60 7.2. FUTURAS MEJORAS
Además, serı́a necesario una integración más precisa de todos los componentes del
sistema y sus interfaces, incluyendo mensajes de error personalizados en función de los
eventos y mejorar la navegabilidad de la interfaz para que el usuario pueda visitar el
sistema de una forma sencilla.
Bibliografı́a
61
62 BIBLIOGRAFÍA