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. |