Skip to content

06. Requerimientos No Funcionales (ISO 25010)

Fase: 03 — Ingeniería de Requisitos
Entregable: 06 de 09
Proyecto: NoteVault (PC Windows, macOS, Linux, Android, iOS / iPhone)
Estado: Formalizado y Certificado


1. Catálogo Cuantitativo de Requisitos No Funcionales (NFR)

Los requisitos no funcionales de NoteVault se definen bajo el estándar internacional ISO/IEC 25010 (Modelo de Calidad del Producto de Software), asignando a cada dimensión métricas cuantitativas, verificables y vinculantes para la arquitectura del sistema:

Código NFR Dimensión ISO 25010 Subcaracterística Declaración del Requisito No Funcional Métrica Cuantitativa Verificable Método de Auditoría
NFR-01 Eficiencia de Desempeño Comportamiento Temporal Latencia de Apertura de Nota: Lectura de archivo desde disco y montaje visual en el DOM. < 30 ms en archivos de hasta 10,000 líneas de Markdown. Benchmark automatizado Vitest con archivos sintéticos.
NFR-02 Eficiencia de Desempeño Comportamiento Temporal Búsqueda Global en Bóveda: Búsqueda difusa (fuzzy search) en texto completo sobre notas indexadas. < 120 ms con tope seguro de MAX_SCAN_NOTES = 4000. Prueba de estrés con índice poblado con 4,000 notas reales.
NFR-03 Eficiencia de Desempeño Utilización de Recursos Consumo de Memoria en Reposo (Idle): Huella de memoria RAM en cliente de escritorio Electron. < 180 MB en reposo con bóveda abierta de tamaño medio (500 notas). Medición con Administrador de Tareas / process.memoryUsage().
NFR-04 Eficiencia de Desempeño Fluidez de Interfaz Tasa de Refresco Visual: Animaciones, paneo de canvas y arrastre en tableros Kanban. ≥ 60 FPS estables (tiempo de cuadro < 16.6 ms). Chrome DevTools Performance Timeline / FPS Meter.
NFR-05 Seguridad Confidencialidad e Integridad Aislamiento en Electron: Mitigación de Remote Code Execution (RCE) y ataques de inyección. contextIsolation: true, nodeIntegration: false, sandbox: true. Script de validación automatizada de opciones de ventana en CI.
NFR-06 Seguridad Integridad de Datos Sanitización HTML contra XSS: Neutralización de vectores maliciosos en Markdown y webview. 100% de contenido renderizado procesado con DOMPurify.sanitize(). Batería de pruebas de seguridad con payloads XSS conocidos.
NFR-07 Seguridad Control de Acceso Local Confinamiento de Rutas (Path Traversal): Prohibición de escape fuera del directorio de la bóveda. Cero acceso a rutas con secuencias .. o llamadas fuera de vault_path. Test unitario de auditoría de seguridad sobre appState.resolve().
NFR-08 Confiabilidad Tolerancia a Fallos Cero Corrupción de Archivos: Atomicidad estricta en cada operación de guardado a disco. Protocolo de escritura en temporal .tmp + reemplazo atómico fs.rename. Test de corte abrupto de hilo (kill -9) durante guardado masivo.
NFR-09 Confiabilidad Disponibilidad Operatividad 100% Offline (Local-First): Funcionamiento pleno sin conexión a internet ni dependencias de nube. 100% de funciones disponibles en modo avión sin caídas ni advertencias bloqueantes. Suite de pruebas E2E ejecutadas con interfaz de red desactivada.
NFR-10 Confiabilidad Recuperabilidad Detección de Conflictos de Sincronización: Prevención de sobreescritura ciega por herramientas P2P (Syncthing/Git). Comparación de mtime antes de escribir; bloqueo de sobreescritura si mtime_disco > mtime_memoria. Test de concurrencia simulando edición simultánea externa.
NFR-11 Portabilidad Adaptabilidad y Coexistencia Simetría Multiplataforma (PC y Móvil): Paridad de formato de bóveda entre clientes de PC y Móvil. 100% de compatibilidad byte a byte en formato VAULT_FORMAT.md v4. Validación cruzada con la suite de pruebas del cliente Flutter.
NFR-12 Mantenibilidad Modularidad Desacoplamiento Modular: Ausencia de dependencias circulares entre los 15 módulos del sistema. 0 ciclos de importación en análisis estático de dependencias. madge --circular frontend/src/ con resultado 0 ciclos.
NFR-13 Accesibilidad Cumplimiento Normativo Contraste y Navegación Universal: Estándares de diseño inclusivo para personas con discapacidad visual o motriz. WCAG 2.1 Nivel AA (ratio de contraste ≥ 4.5:1, soporte total de teclado). Auditoría automatizada con axe-core y styles.contrast.test.ts.
NFR-14 Usabilidad Capacidad de Aprendizaje Tiempo de Adopción (Day 1 Onboarding): Curva de aprendizaje para crear la primera nota o rutina. < 60 segundos desde la primera apertura de la aplicación. Prueba de usuario con cronómetro sobre usuarios no familiarizados.

2. Marco Conceptual: Requerimiento No Funcional Cuantitativo

1. **Entidad principal e independiente.** 2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que fija un umbral numérico inmutable de calidad arquitectónica (`nfr_metric_id`: `NFR-01-PERF-LATENCY`), consultado en auditorías técnicas y pipelines de CI/CD. 3. **Existe por sí misma en el catálogo de calidad sin depender de funcionalidades específicas**, y es la única responsable de fijar los límites infranqueables de rendimiento, seguridad, resiliencia y accesibilidad del sistema. 4. **Punto de entrada y límite de consistencia:** Una regresión que viole un umbral NFR (ej. latencia > 30 ms o falla en sanitización XSS) bloquea automáticamente la compilación y el pase a producción.