5. Requisitos No Funcionales - migueltovarb/ISWREQUERIMIENTOS202502-1Santix19 GitHub Wiki

5. Requisitos No Funcionales

5.1 OBJETIVOS DE NEGOCIO

Objetivo Descripción Tiempo de cumplimiento Mejora esperada al negocio
OBJ-01 Automatizar el proceso de inscripción y recaudo para talleres educativos, eliminando validaciones manuales de transferencias bancarias. 6 meses Reducción del 80% en la carga administrativa para validación de pagos; eliminación de errores en listas de asistencia.
OBJ-02 Centralizar la distribución de materiales académicos y la entrega de certificados en una plataforma única. 6 meses Ahorro del 100% en costos de impresión física de diplomas; disponibilidad inmediata de recursos para los estudiantes.
OBJ-03 Optimizar la ocupación de aulas y recursos mediante un control estricto de cupos (aforo) en tiempo real. 6 meses Eliminación de la sobreventa de cupos (overbooking); mejora en la experiencia educativa al respetar límites pedagógicos.
OBJ-04 Facilitar la labor de los ponentes permitiéndoles gestionar sus propios contenidos y listas de clase sin intermediarios. 1 año Reducción de tiempos de espera para la publicación de materiales; mayor autonomía del personal docente.
OBJ-05 Generar inteligencia de negocio sobre las preferencias académicas de los usuarios para planificar la oferta educativa futura. 1 año Identificación clara de los temas más demandados; optimización del presupuesto para contratación de ponentes.

5.2 RESTRICCIONES DE NEGOCIO

Restricción Usuario que expresa la restricción Justificación
El sistema debe estar operativo antes del inicio del próximo periodo académico (Febrero/Agosto). Director Académico La plataforma es crítica para gestionar las inscripciones de la nueva oferta de educación continua.
El presupuesto para infraestructura en la nube está limitado a $X monto mensual. Director Financiero La institución busca minimizar costos operativos recurrentes, prefiriendo soluciones eficientes en consumo de recursos.
La pasarela de pagos debe ser la aprobada oficialmente por la institución (ej. ePayco, Stripe o Banco local). Tesorería / Contabilidad Por políticas de auditoría financiera, no se pueden utilizar cuentas o intermediarios no autorizados.
El sistema debe respetar la identidad gráfica institucional (colores, logos, tipografía) sin modificaciones arbitrarias. Departamento de Comunicaciones La plataforma es una extensión de la marca institucional y debe transmitir seriedad y coherencia.
La validación académica para la emisión de certificados debe ser realizada por el Ponente o Administrador, no automática por simple pago. Coordinador Académico Se debe garantizar que el estudiante asistió o cumplió los requisitos antes de recibir su acreditación.

5.3 RESTRICCIONES DE TECNOLOGÍA

Restricción Usuario que expresa la restricción Justificación
El Backend debe desarrollarse en Python con Django Framework. Líder Técnico / TI Aprovechamiento del conocimiento del equipo interno; robustez en seguridad y manejo de administración (Django Admin).
Base de datos relacional (PostgreSQL) para producción. Administrador de Base de Datos Necesidad de integridad referencial fuerte para manejar transacciones financieras y relaciones académicas complejas.
El sistema debe ser una aplicación web responsiva (PWA deseable), no una App nativa móvil. Gerencia de TI Facilidad de mantenimiento (un solo código base) y acceso universal para estudiantes con diferentes dispositivos.
Implementación obligatoria de HTTPS (TLS 1.3). Oficial de Seguridad Protección de datos sensibles de estudiantes y transacciones de pago en línea.
Capacidad de almacenamiento para archivos de materiales (PDF, PPTX, ZIP) de hasta 25MB por recurso. Ponentes / Docentes Los materiales académicos suelen ser pesados y se requiere flexibilidad para compartir lecturas y presentaciones.
Integración con servicio SMTP institucional o servicio de terceros (SendGrid/AWS SES) para correos masivos. Infraestructura TI Garantizar la entregabilidad de correos críticos (confirmaciones de pago, certificados) evitando la bandeja de spam.

5.4 REQUISITOS SIGNIFICATIVOS DE ARQUITECTURA

Código Categoría Descripción
RNF001 Usabilidad El proceso de inscripción y pago debe completarse en menos de 4 pasos (Selección -> Datos -> Pago -> Confirmación) para reducir la tasa de abandono.
RNF002 Seguridad Las contraseñas de usuarios deben almacenarse con hash seguro (Argon2 o PBKDF2); nunca en texto plano.
RNF003 Seguridad Sistema estricto de Control de Acceso Basado en Roles (RBAC): Asistente (ver/comprar), Ponente (gestionar curso), Administrador (total).
RNF004 Rendimiento El sistema debe soportar picos de concurrencia de al menos 300 usuarios simultáneos durante fechas de apertura de inscripciones sin caerse.
RNF005 Disponibilidad Garantizar un uptime del 99.5% durante periodos de inscripción activa y fechas de eventos.
RNF006 Portabilidad La interfaz debe ser completamente funcional en navegadores móviles (Chrome Mobile, Safari iOS), permitiendo mostrar el Código QR de entrada.
RNF007 Seguridad No se deben almacenar datos sensibles de tarjetas de crédito en la BD local; se debe usar tokenización provista por la pasarela de pagos.
RNF008 Compatibilidad El módulo de generación de certificados debe producir archivos PDF/A estandarizados, no editables y válidos para impresión.
RNF009 Mantenibilidad El código debe seguir el estándar PEP 8 (para Python) y estar documentado para facilitar el traspaso a futuros desarrolladores.
RNF010 Adecuación El sistema debe permitir la configuración de listas de espera automáticas cuando un taller agota sus cupos.
RNF011 Auditoría Registro inmutable (logs) de todas las operaciones financieras (pagos, reembolsos) y cambios de notas/asistencia.

5.5 ESCENARIOS DE CALIDAD

5.5.1 Eficiencia de Desempeño (Rendimiento)

ID Fuente Estímulo Artefacto Ambiente Respuesta Medida
EC-001 Asistente Solicitud de carga del catálogo de talleres disponibles. Frontend / API Conexión 4G estándar. El sistema muestra el listado de cursos con imágenes y precios. Tiempo de renderizado < 2 segundos.
EC-002 Múltiples Asistentes 200 usuarios intentan inscribirse al mismo taller popular en el mismo minuto. Base de Datos / Gestor de Cupos Pico de carga. El sistema bloquea la sobreventa, procesa los primeros 200 pagos y pone al resto en espera/rechazo controlado. Integridad de cupos 100%; Tiempo de respuesta < 4s.
EC-003 Administrador Generación de reporte financiero mensual de todos los talleres. Módulo de Reportes BD con >10,000 transacciones. El sistema genera y descarga el archivo Excel/PDF con el consolidado. Tiempo de generación < 10 segundos.

5.5.2 Fiabilidad

ID Fuente Estímulo Artefacto Ambiente Respuesta Medida
EC-004 Pasarela de Pagos Fallo en la comunicación con el banco durante un pago (timeout). Módulo de Pagos Transacción en curso. El sistema detecta el fallo, no crea la inscripción, e informa al usuario que intente nuevamente sin duplicar cobros. Manejo de error controlado; mensaje claro al usuario.
EC-005 Servidor Caída del servicio de correo electrónico externo. Cola de Tareas (Celery/Redis) Operación normal. El sistema reintenta el envío de correos (confirmaciones) automáticamente cuando el servicio se restablece. 0 correos perdidos; reintentos configurados (Backoff exponencial).

5.5.3 Seguridad

ID Fuente Estímulo Artefacto Ambiente Respuesta Medida
EC-006 Asistente Malicioso Intento de modificar la URL para descargar el certificado de otro usuario (Insecure Direct Object Reference). Backend / API Usuario autenticado. El sistema valida que el ID del certificado corresponda al usuario en sesión y deniega el acceso (403 Forbidden). 100% de bloqueos a accesos cruzados no autorizados.
EC-007 Atacante Intento de fuerza bruta en el login de Administrador. Módulo de Autenticación Internet pública. El sistema bloquea temporalmente la IP o cuenta tras 5 intentos fallidos. Bloqueo efectivo tras N intentos configurados.

5.5.4 Usabilidad

ID Fuente Estímulo Artefacto Ambiente Respuesta Medida
EC-008 Asistente Nuevo Usuario ingresa por primera vez para comprar un curso. Flujo de Inscripción Dispositivo Móvil. El usuario logra registrarse, seleccionar y pagar sin requerir ayuda de soporte. Tasa de éxito > 90%; Tiempo total < 5 minutos.
EC-009 Ponente Carga de material de clase (PDF). Gestor de Archivos Laptop docente. El sistema permite arrastrar y soltar (drag & drop) y muestra barra de progreso. Feedback visual claro durante la carga.

5.5.5 Compatibilidad

ID Fuente Estímulo Artefacto Ambiente Respuesta Medida
EC-010 Asistente Descarga de Certificado de Asistencia. Generador PDF PC o Móvil. El PDF generado se visualiza correctamente con fuentes, logos y firma, independientemente del visor PDF usado. Formato PDF/A válido; diseño consistente.
EC-011 Sistema Externo Notificación de pago aprobado (Webhook) desde la pasarela. API Endpoint Servidor Backend. El sistema recibe el JSON, valida la firma de seguridad y actualiza el estado de la inscripción a "Pagado". Procesamiento correcto del 100% de webhooks válidos.