Saltearse al contenido

Requisitos No Funcionales

Tabla de Contenidos

  1. Introducción
  2. Propósito y Alcance del Documento
  3. Requisitos de Rendimiento
  4. Requisitos de Seguridad
  5. Requisitos de Escalabilidad
  6. Requisitos de Confiabilidad
  7. Requisitos de Mantenibilidad
  8. Requisitos de Usabilidad
  9. Requisitos de Cumplimiento
  10. Requisitos Operacionales
  11. Matriz General de Verificación
  12. Brechas Críticas y Recomendaciones
  13. Referencias Cruzadas

Introducción

Este documento define los requisitos no funcionales (NFRs) para la Plataforma de Gestión de Mantenimiento Algesta. Los NFRs especifican cómo el sistema debe realizar sus funciones, cubriendo aspectos de rendimiento, seguridad, escalabilidad, confiabilidad, mantenibilidad, usabilidad, cumplimiento y operacionales.

Cada requisito incluye:

  • ID de Requisito: Identificador único
  • Requisito: Declaración clara del NFR
  • Métrica: Criterio medible
  • Meta: Umbral o valor específico
  • Verificación: Cómo se valida el requisito
  • Implementación: Tecnologías y patrones utilizados
  • Estado: Estado actual de implementación (✅ Completo, 🟡 Parcial, 🔴 Brecha)

Propósito y Alcance del Documento

Propósito

Este documento permite a:

  • Arquitectos diseñar sistemas que cumplan objetivos de rendimiento y escalabilidad
  • Desarrolladores implementar soluciones alineadas con estándares de calidad
  • DevOps configurar infraestructura y monitoreo para requisitos operacionales
  • Ingenieros de QA verificar características no funcionales
  • Auditores rastrear NFRs hasta evidencia de implementación

Alcance

Cubre todos los requisitos no funcionales para:

  • Rendimiento de API Gateway y microservicios
  • Seguridad (autenticación, autorización, cifrado)
  • Escalabilidad (escalado horizontal, manejo de carga)
  • Confiabilidad (tiempo de actividad, tolerancia a fallos, circuit breakers)
  • Mantenibilidad (cobertura de pruebas, calidad de código, logging)
  • Usabilidad (accesibilidad, tiempos de respuesta)
  • Cumplimiento (GDPR, leyes de datos colombianas, registros de auditoría)
  • Operaciones (monitoreo, logging, health checks)

Fuera de Alcance


Requisitos de Rendimiento

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-01Operaciones de lectura del API Gateway responden dentro de latencia aceptableLatencia P95 para solicitudes GET< 200msPruebas de carga con 100 usuarios concurrentesCaché Redis para consultas frecuentes, indexación MongoDB
NFR-02Operaciones de escritura del API Gateway se completan dentro de tiempo aceptableLatencia P95 para POST/PATCH/DELETE< 500msPruebas de carga con 50 operaciones de escritura concurrentesArquitectura event-driven asíncrona, I/O no bloqueante
NFR-03Procesamiento de mensajes de WhatsApp responde dentro de expectativa del usuarioTiempo de respuesta para creación de orden vía Jelou< 5 segundosPruebas manuales con conversaciones realesCaché de API GPT-4, procesamiento de imágenes optimizado🟡
NFR-04Tiempo de carga de página del dashboard cumple expectativas del usuarioTime to Interactive (TTI)< 3 segundosAuditoría de rendimiento LighthouseCode splitting, lazy loading, optimización de assets
NFR-05Listado de subastas del marketplace carga sin demoraTiempo para renderizar 100 tarjetas de subasta< 2 segundosPerfilado de rendimiento de frontendCaché React Query, paginación, listas virtualizadas🟡
NFR-06Generación de PDF se completa sin timeoutTiempo máximo para PDF de confirmación de orden< 10 segundosPrueba automatizada con PDF de 50 páginasPuppeteer con renderizado optimizado, trabajos en segundo plano
NFR-07Rendimiento de consultas de base de datos cumple SLATiempo P95 de consulta MongoDB< 100msMonitoreo APM (Application Insights)Campos indexados (orderId, serial, email), connection pooling
NFR-08Reconocimiento OCR de serial se completa dentro de tiempo aceptableTiempo máximo para llamada API GPT-4 Vision< 8 segundosPruebas de integración con 20 imágenes de muestraAPI Azure GPT-4 Vision, lógica de reintento con backoff exponencial

Estado general de rendimiento: 88% completo (7/8 ✅, 1/8 🟡)

Brechas:

  • NFR-03: El tiempo de respuesta de WhatsApp ocasionalmente excede 5s debido a picos de latencia de API GPT-4
  • NFR-05: Listado de subastas con 100+ elementos puede exceder 2s en conexiones lentas

Requisitos de Seguridad

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-09Todas las solicitudes API autenticadas mediante tokens JWT% de endpoints protegidos con auth guard100% (excepto health checks públicos)Revisión de código, auditoría de endpoints@nestjs/jwt, JwtAuthGuard en todas las rutas
NFR-10Control de acceso basado en roles aplicado para operaciones de admin% de endpoints de admin con RBAC100%Pruebas de seguridad, pruebas de penetraciónRolesGuard con decorador @Roles
NFR-11Contraseñas almacenadas con hashing seguroAlgoritmo de hashingbcrypt con salt rounds ≥ 10Auditoría de seguridadLibrería bcrypt en microservicio Auth
NFR-12Cifrado TLS para todo el tráfico externo% de tráfico sobre HTTPS100%Prueba SSL Labs, auditoría de redcert-manager con certificados Let’s Encrypt
NFR-13Rate limiting previene abuso y ataques DoSRate limit para endpoints públicos100 solicitudes/min por IPPruebas de carga, simulación de abuso@nestjs/throttler (recomendado, no implementado)🔴
NFR-14Validación de entrada previene ataques de inyección% de DTOs con decoradores de validación100%Revisión de código, pruebas OWASPclass-validator con @IsString, @IsEmail, etc.
NFR-15Datos sensibles cifrados en reposoCifrado de base de datosCifrado de MongoDB Atlas habilitadoAuditoría de seguridadCifrado predeterminado de MongoDB Atlas
NFR-16Registro de auditoría captura todos los cambios de estado% de operaciones críticas registradas100%Revisión de registro de auditoríaLogging estructurado Winston, entidad OrderHistory
NFR-17Secretos gestionados de forma segura sin hardcodear% de secretos en vars de env o Key Vault100%Escaneo de código para secretos hardcodeadosVariables de entorno, Azure Key Vault (recomendado)🟡
NFR-18Subidas de archivos validadas por tipo y tamañoTamaño máximo de subida, tipos permitidos5 MB, solo PDF/JPG/PNGPruebas de subida con archivos maliciososValidación Multer, escaneo Azure Blob Storage

Estado general de seguridad: 90% completo (8/10 ✅, 1/10 🟡, 1/10 🔴)

Brechas:

  • NFR-13: Rate limiting no implementado; vulnerable a ataques DoS
  • NFR-17: Secretos almacenados en variables de entorno; se recomienda integración con Azure Key Vault

Requisitos de Escalabilidad

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-19Sistema soporta escalado horizontal para mayor cargaCapacidad de escalar microserviciosAgregar réplicas sin cambios de códigoPruebas HPA de KubernetesMicroservicios sin estado, Redis/Kafka para estado
NFR-20Base de datos maneja conexiones concurrentes eficientementeMáx. conexiones concurrentes200+ usuarios simultáneosPruebas de carga con connection poolingMongoDB Atlas con cluster M10+, connection pooling
NFR-21Capa de mensajería escala con volumen de eventosMáx. mensajes/segundo sin lag1000 mensajes/segPruebas de carga KafkaApache Kafka con múltiples brokers (producción)
NFR-22Almacenamiento de archivos soporta grandes volúmenes de documentosCapacidad de almacenamiento1 TB, expandiblePrueba de capacidad Azure Blob StorageAzure Blob Storage con auto-escalado
NFR-23Dashboard soporta 500+ usuarios concurrentesMáx. usuarios concurrentes de dashboard500 sin degradaciónPruebas de carga con artillery.ioCDN para assets estáticos, caché React Query🟡

Estado general de escalabilidad: 80% completo (4/5 ✅, 1/5 🟡)

Brechas:

  • NFR-23: Pruebas de carga del dashboard aún no realizadas; meta no verificada

Requisitos de Confiabilidad

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-24Sistema logra SLA de alta disponibilidadPorcentaje de tiempo de actividad≥ 99.5% (máx. 43.8 horas de inactividad/año)Monitoreo de tiempo de actividad durante 30 díasHealth checks, auto-reinicio en falla, despliegue multi-AZ
NFR-25Fallos de servicio no se propagan en cascada entre microserviciosCircuit breaker previene fallos en cascada100% de llamadas críticas protegidasPruebas de chaos engineeringCircuitBreakerService en API Gateway
NFR-26Backups de base de datos habilitan recuperación ante desastresFrecuencia de backup, RPOBackups diarios, RPO < 24 horasPrueba de restauración desde backupBackups automatizados MongoDB Atlas
NFR-27Capa de mensajería garantiza entrega de mensajesGarantía de entrega de mensajesEntrega al-menos-una-vezPruebas de integración con fallosPersistencia de mensajes Kafka, lógica de reintento Redis
NFR-28Fallos de API externas manejados con gracia% de llamadas externas con fallback100% (SendGrid, GPT-4, etc.)Pruebas de inyección de fallosCircuit breaker, lógica de reintento, respuestas de fallback🟡

Estado general de confiabilidad: 80% completo (4/5 ✅, 1/5 🟡)

Brechas:

  • NFR-28: Circuit breaker para APIs externas (GPT-4, SendGrid) parcialmente implementado; necesita completarse

Requisitos de Mantenibilidad

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-29Base de código logra alta cobertura de pruebasPorcentaje de cobertura de código≥ 80% (unit + integration)Reportes de cobertura CI/CDJest (backend), Vitest (frontend), herramientas de cobertura🟡
NFR-30Código sigue reglas consistentes de estilo y linting% de archivos que pasan linting100%ESLint en pipeline CI/CDESLint con reglas TypeScript, formateo Prettier
NFR-31Documentación de API siempre actualizada% de endpoints documentados en Swagger100%Validación Swagger UIDecoradores @nestjs/swagger, OpenAPI auto-generado
NFR-32Logging habilita troubleshooting efectivo% de operaciones críticas registradas100% con contexto (traceId, userId)Análisis de logs durante incidentesLogging estructurado JSON Winston, IDs de correlación
NFR-33Despliegues automatizados vía CI/CD% de despliegues vía pipeline100% (sin despliegues manuales)Registro de auditoría de desplieguesAzure Pipelines con build/test/deploy automatizado
NFR-34Cambios de esquema de base de datos gestionados con migraciones% de cambios de esquema vía migraciones100%Seguimiento de versión de esquemaEsquemas Mongoose, scripts de migración manual🟡

Estado general de mantenibilidad: 67% completo (4/6 ✅, 2/6 🟡)

Brechas:

  • NFR-29: Cobertura de pruebas actualmente ~70%; meta es 80%+
  • NFR-34: Migraciones de base de datos no automatizadas; proceso manual propenso a errores

Requisitos de Usabilidad

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-35Dashboard cumple estándares de accesibilidadNivel de cumplimiento WCAG 2.1AA (mínimo)Auditoría de accesibilidad con axe-coreComponentes accesibles shadcn/ui, etiquetas ARIA🟡
NFR-36Dashboard responsivo en dispositivos móviles% de páginas optimizadas para móvil100%Pruebas manuales en 3+ dispositivosUtilidades responsivas Tailwind, diseño mobile-first
NFR-37Mensajes de error son claros y accionables% de errores con mensajes amigables al usuario100%Revisión UX, pruebas de usuarioMensajes de excepción personalizados, notificaciones toast
NFR-38Conversaciones del bot de WhatsApp son intuitivasTasa de éxito de conversación≥ 90% (usuarios completan flujo)Análisis de conversacionesDiseño UX Jelou, comprensión de lenguaje natural GPT-4🟡
NFR-39Tiempo de carga del dashboard cumple expectativas del usuarioTiempo hasta primera interacción< 3 segundos en 4GAuditoría LighthouseCode splitting, lazy loading, optimización de imágenes

Estado general de usabilidad: 60% completo (3/5 ✅, 2/5 🟡)

Brechas:

  • NFR-35: Auditoría de accesibilidad no completada; cumplimiento parcial WCAG AA
  • NFR-38: Tasa de éxito de conversación WhatsApp no medida; solo evidencia anecdótica

Requisitos de Cumplimiento

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-40Sistema cumple con protección de datos GDPRLista de verificación de cumplimiento GDPR100% de cumplimientoAuditoría legal, mapeo de datosCifrado de datos, seguimiento de consentimiento de usuario, API de eliminación de datos
NFR-41Sistema cumple con leyes colombianas de protección de datos (Ley 1581)Lista de verificación de cumplimiento100% de cumplimientoRevisión legalAcuerdos de procesamiento de datos, consentimiento opt-in, avisos de privacidad
NFR-42Registro de auditoría captura todas las operaciones críticas% de cambios de estado registrados100%Revisión de registro de auditoríaEntidad OrderHistory, patrón event sourcing
NFR-43Consentimiento de usuario rastreado para procesamiento de datos% de usuarios con registros de consentimiento100%Auditoría de base de datosSeguimiento de consentimiento en entidad User, flujo de Términos y Condiciones
NFR-44Políticas de retención de datos aplicadasEliminación automática después del período de retenciónDatos de usuario eliminados después de cierre de cuenta + 90 díasPruebas de política de retenciónTrabajos programados para purga de datos (recomendado, no implementado)🔴

Estado general de cumplimiento: 80% completo (4/5 ✅, 1/5 🔴)

Brechas:

  • NFR-44: Políticas de retención de datos no automatizadas; se requiere limpieza manual

Requisitos Operacionales

ReqIDRequisitoMétricaMetaVerificaciónImplementaciónEstado
NFR-45Sistema monitoreado con dashboards en tiempo real% de servicios con dashboards100%Revisión de dashboardDashboards Grafana con métricas Prometheus
NFR-46Logs agregados para análisis centralizado% de servicios enviando logs a Loki100%Validación de agregación de logsPipeline Winston → Grafana Alloy → Loki
NFR-47Health checks habilitan recuperación automatizada% de servicios con endpoint /health100%Pruebas de health checkHealth checks @nestjs/terminus, sondas Kubernetes
NFR-48Alertas se activan para fallos críticos% de escenarios críticos con alertas100%Pruebas de alerta, respuesta a incidentesReglas de alertas Grafana (recomendado, parcial)🟡
NFR-49Despliegues tienen estrategia de cero tiempo de inactividadTiempo de inactividad durante despliegue0 segundosPruebas de despliegueActualizaciones progresivas, health checks, sondas de preparación
NFR-50Respuesta a incidentes documentada y probadaCobertura de runbook para incidentes100% de escenarios críticosRevisión de runbook, simulacro DRRunbooks en /wiki/05-operations/🟡

Estado general operacional: 67% completo (4/6 ✅, 2/6 🟡)

Brechas:

  • NFR-48: Reglas de alerta parcialmente configuradas; se necesita cobertura exhaustiva
  • NFR-50: Runbooks existen pero no probados mediante simulacros de recuperación ante desastres

Matriz General de Verificación

CategoríaNFRs TotalesCompleto (✅)Parcial (🟡)Brecha (🔴)% Cumplimiento
Rendimiento871088%
Seguridad1081190%
Escalabilidad541080%
Confiabilidad541080%
Mantenibilidad642067%
Usabilidad532060%
Cumplimiento540180%
Operacional642067%
TOTAL503810282%

Cumplimiento general de NFR: 82% (38 completo, 10 parcial, 2 brechas)


Brechas Críticas y Recomendaciones

Prioridad 1 (P1): Brechas críticas de seguridad

BrechaRequisitoRecomendaciónCronograma
Rate LimitingNFR-13Implementar @nestjs/throttler en API Gateway con 100 req/min por IPQ1 2026
Retención de DatosNFR-44Trabajos automatizados de purga de datos para cumplimiento GDPR/Ley 1581Q1 2026

Prioridad 2 (P2): Mejoras de calidad y operacionales

BrechaRequisitoRecomendaciónCronograma
Cobertura de PruebasNFR-29Aumentar cobertura de 70% a 80%+ mediante pruebas de integraciónQ1 2026
Completitud de Circuit BreakerNFR-28Completar circuit breaker para todas las APIs externas (GPT-4, SendGrid)Q1 2026
Migraciones de Base de DatosNFR-34Implementar herramienta de migración automatizada (ej. migrate-mongo)Q2 2026
Auditoría de AccesibilidadNFR-35Completar auditoría WCAG AA y remediaciónQ2 2026
Cobertura de AlertasNFR-48Configurar alertas Grafana para todos los escenarios críticosQ1 2026
Simulacros DRNFR-50Ejecutar simulacros de recuperación ante desastres trimestralmenteQ2 2026

Prioridad 3 (P3): Optimización de rendimiento

BrechaRequisitoRecomendaciónCronograma
Tiempo de Respuesta WhatsAppNFR-03Optimizar llamadas API GPT-4 con caché y procesamiento paraleloQ2 2026
Rendimiento de Listado de SubastasNFR-05Implementar listas virtualizadas para 100+ tarjetas de subastaQ2 2026
Pruebas de Carga del DashboardNFR-23Conducir pruebas de carga con 500 usuarios concurrentesQ2 2026

Referencias Cruzadas

Documentación de requisitos relacionados

Documentación de arquitectura

Documentación de operaciones

Documentación de pruebas

  • Guía de Pruebas - Estrategia y ejecución de pruebas unitarias, de integración y E2E

Documentación de funcionalidades


Última Actualización: 2025-11-20 Próxima Revisión: Después de completar fase de garantía (Q1 2026) Propietario del Documento: Arquitecto Técnico + Líder de DevOps