Taller 1
- La parte más difícil de construir de un sistema software es decidir qué construir
 - Se parte de un problema/necesidad real y además propuesto por un cliente (no informático) que lo expresa en sus propios términos y necesidades, y que incluso pueden no ser realistas
 - Objetivo: Queremos obtener una solución de calidad desde el punto de vista de la Ingeniería de Requisitos
 
¿De dónde obtener los requisitos?
- De los StakeHolders
 - Del producto referencia
 
Ejemplo de funcionalidad
- El sistema debe comprobar que el valor introducido por el comprador es un entero positivo ⇐ número de unidades disponibles para el artículo que solicite
 
Normas de un requisito
- Los requisitos deben tener un identificador único
 - No es lo mismo expresar una funcionalidad que un requisito
 - El ingeniero de requisitos deberá descubrir funcionalidades no obvias y por tanto, requisitos cuya obtención no es trivial
 
Algunos atributos de calidad para los requisitos

- Completos: todos los servicios solicitados por el usuario deben estar definidos
- Se incluyen todos los requisitos significativos
 - Definen la respuesta del software a todas las posibles entradas (tanto válidas como no válidas) y en todas las situaciones posibles
 
 - No ambiguos: han de tener una única interpretación posible
 - Verificables: posibilidad de probar que el software desarrollado cumple los requisitos
 - Consistentes: los requisitos no se contradicen entre ellos y no contradicen otros documentos de obligado cumplimiento (como por ejemplo: legislación, normativa de la empresa y estándares a cumplir).
 - Trazables: cada requisito tiene que tener un identificador único
 - Concisos: expresan una sola idea o funcionalidad concreta
 - Independientes del diseño: indican el comportamiento del sistema sin detallar cómo ha de ser el diseño del sistema (como por ejemplo: detalles de las interfaces de usuario y SGBD a utilizar)
- Excepción: Si el cliente indica restricciones de diseño.
 
 - Flexibles: Los parámetros del sistema deben ser configurables sin necesidad de modificar el código. Evita el Hardcoding.
 
Taller 2
Taller 3
Taller 4
- Funcionalidad: Gestión de Monedero
 - Requisito de alto nivel:
- GM1 Ingresar dinero
 - GM2 Sacar dinero
 - GM3 Ver saldo
 - GM4 Ver histórico de movimientos
 
 
Funcionalidades de IRBet
- 
Primarias
- Gestión de Monedero
 - Registro de usuarios
 - Identificación de usuarios
 - Jugar a la primitiva
 - Jugar al joker
 - Gestión de sorteos (Ver premios, gestión de recaudación, gestionar pagos y gestión escrutinio)
 - Categorización de premios de la primitiva
 - Categorización de premios del joke
 
 - 
Secundarias
- Gestión de informes
 - Gestión de estadísticas
 
 
Taller 5
Requisitos funcionales:
(hay que completar con los datos)
- Gestionar sorteos
- Crear el sorteo
 - Modificar sorteo
 - Eliminar el sorteo
 - Generar informe de apuestas realizadas destinada a la Junta Superior de Control
 - Generar informe de dinero recaudado
 - El sistema permitirá a los usuarios empleados de SELAE añadir números agraciados al sistema
 - Hacer Escrutinio
 - Generar informe para la Junta superior de control donde se almacene la información de apuestas ganadoras por categoría de premio
 - Pagar las apuestas premiadas a los usuarios ganadores
 - Generar un informe resumen a la Agencia Tributaria
 
 - Cálculo de premios
- asignar el porcentaje destinado a premios
 - distribución de dicho porcentaje entre las diferentes categorías
 
 - Jugar a la lotería primitiva
- Cumplimentación del boleto
 - Pago del boleto
 - Generación del reintegro
 - Generación del resguardo de haber apostado
 
 - Jugar al joker (igual que la loteria)
 - Gestión del Monedero
- Meter dinero
 - Sacar dinero
 - Configuración del saldo del monedero
- Límite de 2500€
 - Cada jugador puede configurar su monedero para poner un saldo máximo diario, semanal y mensual
 
 - Ver movimientos
 - Permitir al usuario pagar una o varias apuestas (compulsar apuesta)
 
 - Registro de usuarios
- solicitar datos al usuario (no incluir la palabra formulario)
 - comprobar que el usuario no esté en la lista de ludópatas
 - guardar en la base de datos al usuario
 - el sistema envia un correo electrónico conforme a que se creo la cuenta correctamente
 - si el usuario es ludópata, el sistema envía al usuario un mensaje explicandole por que no puede jugar
 - si el sistema falla, indicarlo mediante mensaje
 
 - Identificación de usuarios
- permitir a usuario no identificado jugador iniciar sesion
 - permitir a un usuario identificado cerrar sesión
 - permitirle recuperar la contraseña
 - debe permitir a un usuario no identificado empleado de selae identificarse (tendrá que ir a una pantalla distinta que un usuario sin privilegios)
 - realizar la validacion de si el usuario es o no ludópata
 
 
Taller 6
- 
Pregunta que va a caer en el primer parcial
- Diagrama de casos de uso (habría que hacerlo)
 
 - 
usar sistema de persistencia en lugar de base de datos
 - 
para la contraseña no hay que explicar su formato
 
Taller 7
- 
Mejor decir usuario registrado jugador
 - 
Configuración Monedero. ⇐- Extends:
- Importe semanal
 - Diario
 - Mensual
 - Configuración de juego responsable
 - Configuración carga de monedero
 
 - 
NOTA: un monedero no paga el premio, pero sí lo recibirá
 
Taller 9
- Hacer los UML de las funcionalidades que faltan
 - Perspectiva de producto: el software que yo estoy haciendo como encaja en el sistema de la compañía (como encaja con el sistema antiguo)
 - Requisitos de interfaces externas: sistemas que ya son de terceros, que no forman parte del sistema de loterías
 
