5. Requerimientos no funcionales - migueltovarb/ISWREQUERIMIENTOS202502-1danielchauxcampusucceduco GitHub Wiki

Esta sección define los requisitos de calidad, rendimiento, seguridad y reglas de negocio que el sistema debe cumplir para garantizar una operación efectiva y confiable.


5.1 Requisitos de Rendimiento

El sistema debe gestionar eficientemente los recursos para asegurar tiempos de respuesta óptimos bajo condiciones de carga esperadas.

  • Tiempo de Carga de Página: El sistema debe cargar cualquier página de la interfaz de usuario en menos de 3 segundos bajo condiciones normales de red.

  • Tiempo de Procesamiento de Transacciones: Las operaciones críticas, específicamente el proceso de inscripción de un participante, deben completarse en menos de 2 segundos.

  • Generación de Documentos: El sistema debe ser capaz de generar y permitir la descarga de certificados en formato PDF en un tiempo no mayor a 5 segundos.

  • Concurrencia: El sistema debe soportar el acceso simultáneo y operaciones concurrentes de al menos 500 usuarios sin degradación del rendimiento por debajo de los umbrales establecidos.


5.2 Requisitos de Seguridad/ Fiabilidad de Datos

El sistema debe ecargarse de la correcta protección contra pérdidas de datos accidentales y la capacidad de recuperación ante fallos.

  • Copias de Seguridad (Backups): El sistema debe realizar respaldos automáticos diarios de la base de datos completa para prevenir la pérdida de información histórica y transaccional.

  • Recuperación ante Desastres: En caso de falla crítica del sistema o corrupción de datos, el sistema debe tener la capacidad de ser restaurado y estar operativo nuevamente en un tiempo menor a 4 horas.

  • Integridad de Datos: El sistema debe garantizar la consistencia de las transacciones (propiedades API), asegurando que no se generen inscripciones huérfanas o registros de asistencia incompletos en caso de interrupción del servicio.


5.3 Requisitos de Seguridad lógica

El sistema debe ralizar medidas para proteger el sistema contra accesos no autorizados, ataques maliciosos y privacidad de la información.

  • Protocolo de Comunicación: Todas las comunicaciones entre el cliente y el servidor deben estar encriptadas utilizando HTTPS (TLS 1.2 o superior).

  • Gestión de Contraseñas: Las contraseñas de los usuarios deben almacenarse encriptadas utilizando algoritmos de hashing robustos como bcrypt.

  • Protección contra Vulnerabilidades Web: El sistema debe implementar medidas de saneamiento de entradas y tokens de seguridad para protegerse contra ataques comunes, específicamente SQL Injection, XSS (Cross-Site Scripting) y CSRF (Cross-Site Request Forgery).

  • Políticas de Bloqueo: Para prevenir ataques de fuerza bruta, el sistema debe bloquear temporalmente una cuenta de usuario después de 5 intentos fallidos de inicio de sesión consecutivos.

  • Protección de Datos Financieros: El sistema nunca debe almacenar datos sensibles de tarjetas de crédito o débito en sus bases de datos; el procesamiento debe delegarse totalmente a la pasarela de pagos segura.

  • Privacidad de Datos: El sistema debe cumplir estrictamente con la Ley 1581 de 2012 (Habeas Data) de la República de Colombia respecto al tratamiento y protección de datos personales.


5.4 Atributos de Calidad del Software

Características que definen la calidad operativa y experiencia del usuario.

5.4.1 Disponibilidad

  • Uptime: El sistema debe garantizar una disponibilidad operativa del 99.5% mensual, asegurando el acceso continuo 24/7 para usuarios y administradores.

5.4.2 Usabilidad y Accesibilidad

  • Diseño Responsivo: La interfaz debe adaptarse fluidamente a diferentes tamaños de pantalla, siendo completamente funcional en computadoras de escritorio (desktop), tabletas y teléfonos inteligentes (smartphones).

  • Compatibilidad de Navegadores: El sistema debe funcionar correctamente y mantener su consistencia visual en los navegadores modernos principales: Google Chrome, Mozilla Firefox, Safari y Microsoft Edge.

  • Accesibilidad Web: El sistema debe cumplir con las pautas de accesibilidad WCAG 2.1 nivel AA, asegurando el acceso a personas con discapacidades.

  • Experiencia de Usuario: El sistema debe proporcionar mensajes de error claros y comprensibles para el usuario final (evitando códigos de error técnicos) y ofrecer ayuda contextual (tooltips o guías breves) en formularios complejos.

  • Identidad Visual: La interfaz gráfica debe respetar y reflejar la identidad visual institucional (colores, tipografías y logos definidos en el Style Tile).

5.4.3 Escalabilidad

  • Crecimiento de Usuarios: La arquitectura del sistema debe ser capaz de escalar vertical u horizontalmente para soportar un crecimiento hasta 2000 usuarios activos mensuales sin requerir cambios significativos en el código o la estructura base.

5.5 Reglas de Negocio

Restricciones operativas derivadas de políticas institucionales que afectan el comportamiento del sistema.

  • Retención de Datos: El sistema debe tener la capacidad técnica y de almacenamiento para manejar y retener el historial de datos (inscripciones, asistencias, certificados) durante un periodo mínimo de 5 años.

  • Política de Certificación: El sistema no debe permitir la generación de certificados para participantes que no hayan cumplido con el porcentaje de asistencia mínimo configurado (ej. 80%) ni haber completado la evaluación obligatoria.

  • Política de Cancelación: El sistema debe impedir la cancelación de inscripciones y el reembolso automático si la solicitud se realiza dentro de las 24 horas previas al inicio del evento.