Especificación de Requerimientos de Software
Especificación de Requerimientos de Software
Especificación de Requerimientos de Software
1. Introducción.
1
Propuesta Requerimientos de Software.
2. Descripción General.
3. Requerimientos específicos.
2
Propuesta Requerimientos de Software.
1. Introducción.
1.1. Propósito.
3
Propuesta Requerimientos de Software.
Identificación de Stakeholders.
Equipo de trabajo.
● Alejandro Lorenzo Pioquinto.
● Jazmin Lizeth Caxantheje Ortiz.
● Osmar Viorato Lozada.
Directores.
● Benjamin Cruz Torres.
● Jose Felix Serrano Talamantes.
Sinodales.
● Sandra Luz Morales Guitron.
● Daniel Aguilar Velazquez.
● Jośe Asunción Enriquez Zarate.
Profesor de Seguimiento.
4
Propuesta Requerimientos de Software.
1.4. Referencias.
“Ofrece una vista general del contenido de la ERS, lo que ayuda a los lectores a
comprender rápidamente el alcance y el contenido del documento.”
Esta ERS tiene como objetivo brindar una comprensión clara y completa del
proyecto y sentar las bases para un desarrollo exitoso, asegurando que todos los
aspectos clave estén debidamente documentados y respaldados por la normativa y
las mejores prácticas en ingeniería de software.
5
Propuesta Requerimientos de Software.
2. Descripción General.
Base de Datos de Usuarios: El sistema accederá a una base de datos interna que
almacena perfiles de usuarios y sus imágenes actuales. Esto permitirá la
identificación precisa de las personas cuya apariencia se proyectará.
Base de Datos de Referencia: Además, el sistema podría interactuar con una base
de datos de referencia externa para mejorar la precisión de las proyecciones faciales
utilizando datos históricos.
Navegadores Web: Los navegadores web de los usuarios actuarán como clientes
para acceder a la interfaz de usuario y recibir los resultados de proyección facial.
6
Propuesta Requerimientos de Software.
Procesamiento de Imágenes: Una vez que los usuarios hayan cargado sus
imágenes, el sistema utilizará algoritmos de reconocimiento facial y análisis de
imágenes para procesarlas. Esto incluye la identificación de características faciales,
como la forma de los ojos, la nariz, la boca, y la estructura general del rostro.
Usuarios Finales: Los usuarios finales son individuos que utilizan el sistema para
cargar sus imágenes faciales actuales y obtener proyecciones de su apariencia
futura. Estos usuarios pueden ser personas de todas las edades y géneros
interesadas en visualizar cambios futuros en su apariencia.
7
Propuesta Requerimientos de Software.
2.4. Restricciones.
Restricciones Técnicas:
Restricciones Operativas:
Restricciones de Diseño:
8
Propuesta Requerimientos de Software.
9
Propuesta Requerimientos de Software.
3. Requerimientos específicos.
10
Propuesta Requerimientos de Software.
Requerimientos de Usuario.
“Establecen las funciones y características específicas que los usuarios desean que
el software tenga.”
Requerimientos de Usuario.
Los usuarios deben poder registrarse en el sistema
Registro de Usuario. proporcionando información básica, como nombre, dirección de
correo electrónico y contraseña.
Debe existir un mecanismo seguro de inicio de sesión para que
Inicio de Sesión.
los usuarios accedan a sus cuentas.
Los usuarios deben poder cargar imágenes faciales desde sus
Carga de Imágenes. dispositivos, ya sea desde una computadora o un dispositivo
móvil.
Los usuarios deben poder seleccionar una imagen y generar
Proyección de Imagen.
una proyección de su apariencia futura.
Visualización de Debe haber una función que permita a los usuarios ver y
Proyecciones Anteriores. comparar las proyecciones anteriores que han generado.
Los usuarios deben poder descargar las proyecciones faciales
Descarga de Proyecciones.
resultantes en formato de imagen.
Los usuarios deben tener opciones para configurar la privacidad
Configuración de
de sus datos y proyecciones, incluyendo la posibilidad de hacer
privacidad.
proyecciones privadas o compartirlas públicamente.
Debe haber una sección de ayuda y soporte que proporcione a
Ayuda y Soporte. los usuarios información sobre cómo utilizar la plataforma y
cómo resolver problemas comunes.
Los usuarios deben poder acceder a un historial de su actividad
Historial de Actividad. en el sistema, incluyendo las imágenes cargadas y las
proyecciones realizadas.
Debe existir la opción para que los usuarios eliminen sus
Eliminación de Cuenta.
cuentas y todos los datos asociados en cualquier momento.
11
Propuesta Requerimientos de Software.
“Definen cómo debe ser la interfaz de usuario, incluidos elementos como botones,
menús y pantallas.”
Compatibilidad con La interfaz debe ser compatible con los navegadores web más
Navegadores utilizados, como Google Chrome, Mozilla Firefox, Safari y
Microsoft Edge.
Si la aplicación se ejecutará en dispositivos móviles, se debe
Compatibilidad con
asegurar la compatibilidad con sistemas operativos como
Dispositivos
Android e iOS.
12
Propuesta Requerimientos de Software.
Requerimientos de Seguridad.
Requerimientos de Seguridad.
El sistema debe proporcionar un mecanismo sólido de
Autenticación de Usuario. autenticación de usuarios, como contraseñas seguras,
autenticación de dos factores o biometría, según sea necesario.
Establecer políticas de autorización que definan quiénes pueden
Autorización de Acceso.
acceder a qué recursos y funciones del sistema.
Garantizar que los datos sensibles se almacenen y transmitan
Protección de Datos
de manera segura utilizando cifrado y prácticas de seguridad de
Sensibles.
datos adecuadas.
Establecer un plan de respaldo y recuperación de datos para
Respaldo y Recuperación. proteger contra pérdidas de datos y garantizar la continuidad del
negocio.
Establecer políticas y procedimientos para la eliminación segura
Eliminación Segura.
de datos y hardware obsoleto.
Asegurarse de que el sistema cumpla con las normativas y
Conformidad con
regulaciones de seguridad relevantes, como GDPR, HIPAA, ISO
Normativas.
27001, etc.
Si se utiliza un entorno de nube, aplicar prácticas de seguridad
Seguridad en la Nube. en la nube, como la gestión de identidades y accesos en la nube
y la configuración segura de servicios en la nube.
13
Propuesta Requerimientos de Software.
Requerimientos de Rendimiento.
Requerimientos de Rendimiento.
Especifica el tiempo máximo permitido para que el sistema
Tiempo de Respuesta. responda a las solicitudes del usuario. Por ejemplo, "El tiempo
de respuesta promedio no debe superar los 2 segundos."
Define la cantidad máxima de usuarios que el sistema debe
Capacidad de Usuarios
admitir simultáneamente sin degradación significativa del
Concurrentes.
rendimiento.
Establece la carga máxima que el sistema debe manejar, como
Carga Máxima. el número máximo de transacciones por minuto o la cantidad
máxima de datos que puede procesar en un intervalo de tiempo.
Especifica cómo el sistema debe escalar para manejar un
Escalabilidad. aumento en la carga. Esto puede incluir agregar servidores
adicionales o ajustar recursos de manera dinámica.
Define el nivel de disponibilidad requerido del sistema,
Disponibilidad. expresado como un porcentaje de tiempo de funcionamiento
(por ejemplo, 99.99% de disponibilidad).
Establece cómo el sistema debe manejar las fallas, incluyendo
Tolerancia a fallos. la capacidad de recuperación y la minimización de
interrupciones del servicio.
Describe los límites de consumo de recursos, como el uso
Consumo de Recursos.
máximo de CPU, memoria o ancho de banda de red.
Si el sistema utiliza una base de datos, especifica los tiempos
Rendimiento de Consultas.
máximos de respuesta para consultas específicas.
Especifica cómo se comporta el sistema bajo cargas de trabajo
Rendimiento de Carga.
pesadas, como durante eventos de alto tráfico.
14
Propuesta Requerimientos de Software.
Requerimientos de Usabilidad.
Requerimientos de Usabilidad.
El sistema debe proporcionar una navegación intuitiva y
Facilidad de Navegación. sencilla para que los usuarios puedan encontrar rápidamente la
información o las funciones que necesitan.
El sistema debe ser compatible con diferentes dispositivos y
Diseño Responsivo. tamaños de pantalla, asegurando una experiencia consistente
en computadoras de escritorio, tabletas y teléfonos móviles.
Los textos y elementos visuales deben ser legibles y
Legibilidad y visibilidad. claramente visibles, incluso para personas con discapacidades
visuales o en condiciones de iluminación adversas.
Se debe mantener una consistencia en el diseño de la interfaz
Consistencia de diseño. de usuario en todo el sistema, utilizando patrones de diseño
coherentes.
El sistema debe proporcionar retroalimentación visual
Retroalimentación Visual. inmediata cuando los usuarios realicen acciones, como enviar
formularios o hacer clic en botones.
Si es necesario, el sistema debe incluir ayudas contextuales y
Ayuda y documentación. documentación fácilmente accesible para guiar a los usuarios
en su interacción con la aplicación.
Se debe minimizar la cantidad de pasos o clics necesarios para
Eficiencia de tareas. completar tareas comunes, mejorando así la eficiencia del
usuario.
Debe incluirse la realización de pruebas de usabilidad con
Pruebas de Usabilidad. usuarios reales para evaluar la experiencia y realizar mejoras
según los comentarios.
Si el sistema requiere que los usuarios realicen acciones
Instrucciones claras. específicas, las instrucciones deben ser claras y
comprensibles.
Los tiempos de carga de las páginas o pantallas deben ser
Tiempos de Carga. razonables para que los usuarios no experimenten retrasos
excesivos.
El sistema debe ser compatible con los navegadores web más
Compatibilidad con
utilizados para garantizar que funcione correctamente en
navegadores.
diferentes entornos.
Los formularios deben ser fáciles de completar y no requerir
Formularios amigables.
información innecesaria.
15
Propuesta Requerimientos de Software.
Requerimientos de Fiabilidad.
Requerimientos de Fiabilidad.
El sistema debe estar disponible para su uso durante un alto
Disponibilidad. porcentaje del tiempo, por ejemplo, un mínimo del 99% de
disponibilidad mensual.
El sistema debe ser capaz de tolerar fallos inesperados, como
Tolerancia a fallos. caídas del servidor, y recuperarse automáticamente sin afectar
significativamente la experiencia del usuario.
Se deben realizar copias de seguridad periódicas de los datos
Respaldo de Datos. críticos del sistema para evitar la pérdida de información en
caso de fallos.
Si un usuario tiene una sesión activa y ocurre un error, el
Reanudación de Sesiones. sistema debe permitir que el usuario retome su actividad
desde donde la dejó después de solucionar el problema.
16
Propuesta Requerimientos de Software.
Requerimientos de Mantenibilidad.
Requerimientos de Mantenibilidad.
Debe existir documentación detallada y actualizada que
Documentación Clara. describa la arquitectura del sistema, su funcionamiento, los
componentes clave y los procedimientos de mantenimiento.
El sistema debe estar dividido en módulos o componentes
Modularidad. independientes que puedan actualizarse por separado sin
afectar al sistema en su conjunto.
El código fuente debe seguir buenas prácticas de
Mantenibilidad del Código. programación y estar bien comentado para facilitar su
mantenimiento.
Se debe recopilar retroalimentación de los usuarios sobre
Retroalimentación de
problemas y áreas de mejora, y utilizarla para informar las
Usuarios.
actualizaciones.
El sistema debe ser diseñado de manera que pueda escalarse
Escalabilidad Futura. y actualizarse para acomodar futuras expansiones y
necesidades.
17
Propuesta Requerimientos de Software.
Requerimientos de Compatibilidad.
Requerimientos de compatibilidad.
Especificar los sistemas operativos en los que el software o
Sistemas Operativos
sistema debe ser compatible, como Windows, macOS, Linux,
Compatibles.
iOS, Android, etc.
Si el sistema tiene una interfaz web, definir los navegadores
Navegadores Web
web y sus versiones compatibles, como Chrome, Firefox,
Compatibles.
Safari, Edge, etc.
18
Propuesta Requerimientos de Software.
Requerimientos de Almacenamiento.
“Definen cómo se deben almacenar y gestionar los datos, incluidas las bases de
datos y su estructura.”
Requerimientos de Almacenamiento.
Especificar la cantidad de espacio de almacenamiento
Capacidad de
necesario para el sistema, ya sea en términos de gigabytes
Almacenamiento.
(GB), terabytes (TB) u otra unidad de medida.
Definir si el sistema debe ser escalable en términos de
Escalabilidad. almacenamiento, es decir, si debe poder manejar un aumento
en la cantidad de datos sin degradar el rendimiento.
Determinar qué tipos de almacenamiento se utilizarán, como
Tipos de Almacenamiento. bases de datos relacionales, sistemas de archivos distribuidos,
almacenamiento en la nube u otros.
Especificar cuánto tiempo se deben retener los datos y cuándo
Política de Retención de
deben eliminarse o archivarse de acuerdo con las regulaciones
Datos.
y políticas aplicables.
Establecer políticas y procedimientos para realizar copias de
Copia de Seguridad y
seguridad de datos de forma regular y garantizar la capacidad
Recuperación.
de recuperación en caso de pérdida de datos.
Si es necesario, definir si se deben comprimir los datos para
Compresión de Datos.
ahorrar espacio de almacenamiento y mejorar la eficiencia.
Especificar medidas de seguridad para proteger los datos
Seguridad de Datos. almacenados, incluido el cifrado de datos y el control de
acceso.
Determinar si se deben crear índices para mejorar el
Índices y Optimización de
rendimiento de las consultas y cómo se optimizarán las bases
Bases de Datos.
de datos.
Evaluar y estimar los costos asociados con las soluciones de
Costos de Almacenamiento. almacenamiento propuestas, incluidos los costos de hardware,
software y almacenamiento en la nube.
19
Propuesta Requerimientos de Software.
20
Propuesta Requerimientos de Software.
21
Propuesta Requerimientos de Software.
22
Propuesta Requerimientos de Software.
23
Propuesta Requerimientos de Software.
Requerimientos de Pruebas.
Requerimientos de Pruebas.
Describe los casos de uso específicos que se probarán,
Escenarios de Prueba. incluyendo entradas, acciones del usuario y resultados
esperados. Esto puede incluir escenarios positivos y negativos.
Específica las herramientas de software o hardware que se
Herramientas de Prueba. utilizarán para llevar a cabo las pruebas, como suites de
pruebas automatizadas, simuladores, emuladores, etc.
Proporciona conjuntos de datos de prueba específicos que se
Datos de Prueba. utilizarán durante las pruebas. Esto puede incluir datos de
prueba realistas que reflejen situaciones del mundo real.
Detalla los pasos específicos que deben seguirse durante las
Procedimientos de Prueba. pruebas, incluyendo instrucciones para los probadores,
interacciones del usuario, etc.
Establece un cronograma detallado que muestra cuándo se
Cronograma de Pruebas. llevarán a cabo las pruebas, incluyendo fechas de inicio y
finalización.
Describe la estrategia general de pruebas, incluyendo enfoques
Estrategia de Pruebas. como pruebas funcionales, pruebas de rendimiento, pruebas de
seguridad, etc.
Si el proyecto maneja datos sensibles, especifica las pruebas
Pruebas de Seguridad. de seguridad que se llevarán a cabo para identificar y mitigar
posibles vulnerabilidades.
Documenta todos los resultados de las pruebas, incluyendo
Documentación de Pruebas. informes detallados de errores, problemas resueltos y
resultados de pruebas de rendimiento.
Establece un proceso de revisión y aprobación de las pruebas
Aprobación de pruebas. por parte de las partes interesadas antes de continuar con la
implementación o el lanzamiento.
Define cuándo y cómo se realizarán pruebas adicionales
Retesting. después de la corrección de errores para verificar que los
problemas se han solucionado correctamente.
24
Propuesta Requerimientos de Software.
“Se refieren a regulaciones específicas que el software debe seguir, como leyes de
privacidad de datos.”
25
Propuesta Requerimientos de Software.
26
Propuesta Requerimientos de Software.
Requerimientos de autenticación.
Requerimientos de autenticación.
Los usuarios deben autenticarse mediante un inicio de sesión
Inicio de Sesión Seguro. seguro que incluya un nombre de usuario y una contraseña
seguros.
Autenticación de Dos Se debe proporcionar la opción de habilitar la autenticación de
Factores (2FA). dos factores para una mayor seguridad de la cuenta.
Los usuarios deben registrarse proporcionando información
Registro de Usuarios.
verificable y un correo electrónico válido.
Se debe enviar un enlace de verificación por correo electrónico
Verificación de Correo
a los usuarios después del registro para confirmar su dirección
Electrónico.
de correo electrónico.
Debe existir un proceso seguro para restablecer la contraseña
Restablecimiento de
en caso de olvido, que incluya la verificación de la identidad del
contraseña Seguro.
usuario.
27
Propuesta Requerimientos de Software.
Requerimientos de Autorización.
Requerimientos de Autorización.
Deben definirse diferentes roles de usuario, como
Roles de Usuario. administrador, usuario estándar, etc., con diferentes niveles de
acceso y permisos.
El sistema debe implementar un control de acceso basado en
Control de Acceso Basado
roles que restrinja las funciones y datos a las que puede
en Roles.
acceder cada usuario según su rol.
Ciertas funcionalidades o acciones dentro del sistema deben
Autorización para
requerir autorización específica por parte de un administrador
Funcionalidades Específicas
o supervisor.
El acceso a los datos biométricos y las imágenes faciales debe
Autorización de Datos
estar restringido y requerir autorización explícita de los
Biométricos.
usuarios.
28
Propuesta Requerimientos de Software.
29