Saltar a contenido

08. System Requirements Specification (SRS) & RTM

Fase: 03 — Ingeniería de Requisitos
Entregable: 08 de 09
Proyecto: NoteVault (PC Windows, macOS, Linux, Android, iOS / iPhone)
Estándar Normativo: ISO/IEC/IEEE 29148:2018 (Systems and Software Engineering — Life Cycle Processes — Requirements Engineering)
Estado: Formalizado y Certificado


1. Especificación Canónica de Requisitos del Sistema (ISO 29148)

El presente documento constituye el Libro Blanco de Requisitos del Sistema (SRS) de NoteVault. Consolida la arquitectura funcional de los 15 módulos, los atributos de calidad no funcionales y la trazabilidad bidireccional de extremo a extremo que rige el diseño, construcción y certificación del producto.

1.1 Propósito y Filosofía del Producto

NoteVault es un entorno de productividad personal y aceleración del aprendizaje construido bajo los principios de soberanía de datos Local-First, arquitectura sin servidor central (Zero-Backend) y paridad multi-dispositivo (Desktop & Mobile Symmetry). Todos los módulos operan sobre el sistema de archivos local mediante formatos abiertos (.md, .canvas, .json).


2. Matriz de Trazabilidad de Requisitos (RTM)

La siguiente Requirements Traceability Matrix (RTM) mapea cada Requerimiento Funcional y No Funcional a su origen en la elicitación (CR), su módulo responsable, el artefacto de diseño técnico y su test de verificación automatizada:

Código Requisito Origen (CR) Descripción Funcional y de Calidad Módulo Responsable Componente de Diseño / Código Fuente Prueba de Verificación
RF-NOTES-01 CR-01 Edición WYSIWYG Markdown y CommonMark/GFM MOD-NOTES frontend/src/components/notes/NotesModule.tsx Vitest: appNotes.test.ts
RF-NOTES-02 CR-01 Renderizado KaTeX en línea y bloque MOD-NOTES frontend/src/components/notes/KaTeXRenderer.tsx Vitest: renderizado SVG/HTML
RF-NOTES-03 CR-01 Resolución de wikilinks [[...]] MOD-NOTES frontend/src/components/notes/WikiLinks.tsx Vitest: navegación y enlaces
RF-NOTES-05 CR-18 Guardado atómico con detección de mtime MOD-NOTES notevault_app/core/storage.py & bridge Vitest: appFixes.test.ts
RF-HOME-01 CR-02 Daily Hub con saludo, tareas y hábitos de hoy MOD-HOME frontend/src/components/home/HomeModule.tsx E2E: montaje en < 25 ms
RF-CANVAS-01 CR-03 Canvas 2D infinito compatible con Obsidian MOD-CANVAS frontend/src/components/canvas/CanvasView.tsx Vitest: canvas.test.ts
RF-CANVAS-03 CR-03 Generador de canvas por spec Fullstack MOD-CANVAS notevault_app/core/deliverable_canvas.py Pytest: test_deliverable_canvas.py
RF-CAL-01 CR-04 Calendario mensual agregando tarjetas SRS MOD-CALENDAR frontend/src/components/calendar/CalendarModule.tsx Vitest: calendar.test.ts
RF-CAL-03 CR-04 Reprogramación de tareas por arrastre MOD-CALENDAR frontend/src/components/calendar/DragSchedule.tsx Vitest: mutación fecha due
RF-HAB-01 CR-05 CRUD de hábitos con cue, routine y reward MOD-HABITS frontend/src/components/habits/HabitsModule.tsx Vitest: habits.test.ts
RF-HAB-02 CR-05 Cálculo determinista de rachas continuas MOD-HABITS frontend/src/store/habits.ts Vitest: tests de cambio de año
RF-GYM-01 CR-06 Registro de series de pesas con peso y reps MOD-EXERCISE frontend/src/components/exercise/ExerciseModule.tsx Vitest: exercise.test.ts
RF-GYM-02 CR-06 Temporizador de descanso automático MOD-EXERCISE frontend/src/store/restTimer.ts Vitest: restTimer.test.ts
RF-GYM-03 CR-06 Cálculo de 1RM con fórmula de Epley MOD-EXERCISE frontend/src/store/exerciseCoach.ts Vitest: exerciseCoach.test.ts
RF-NUT-01 CR-07 Registro de alimentos y macronutrientes P,C,G MOD-NUTRITION frontend/src/components/nutrition/NutritionModule.tsx Vitest: nutrition.test.ts
RF-NUT-05 CR-07 Contador de consumo de agua acumulado MOD-NUTRITION frontend/src/store/nutrition.ts Vitest: incremento en ml
RF-TSK-01 CR-08 Tareas atómicas con prioridades P1-P4 MOD-TASKS frontend/src/components/tasks/TasksModule.tsx Vitest: tasks.test.ts
RF-TSK-04 CR-08 Regeneración de tareas recurrentes al completar MOD-TASKS frontend/src/store/tasks.ts Vitest: recurrencia semanal/mensual
RF-PRJ-01 CR-09 Tablero Kanban gobernando 12 fases SDLC MOD-PROJECTS frontend/src/components/projects/ProjectsModule.tsx Vitest: projects.test.ts
RF-GOL-01 CR-10 Sistema de OKRs estratégicos anual/trimestral MOD-GOALS frontend/src/components/goals/GoalsModule.tsx Vitest: goals.test.ts
RF-FIN-01 CR-11 Transacciones de ingresos, gastos y cuentas MOD-FINANCE frontend/src/components/finance/FinanceModule.tsx Vitest: finance.test.ts
RF-FIN-03 CR-11 Presupuestos por categoría y semáforo visual MOD-FINANCE frontend/src/store/financeCoach.ts Vitest: financeCoach.test.ts
RF-STU-01 CR-12 Motor SRS basado en SuperMemo SM-2 MOD-STUDY frontend/src/components/study/ReviewCalendar.tsx Vitest: progresión de intervalos
RF-STU-03 CR-12 Tríada canónica de matemáticas (c., t., e.) MOD-STUDY docs/knowledge_base/SYLLABUS_MATH.md Python: check_kb_notes.py (0 err)
RF-ENG-01 CR-13 Reproductor de audio/video con subtítulos MOD-ENGLISH frontend/src/components/english/EnglishPlayer.tsx Vitest: player.test.ts
RF-ENG-03 CR-13 Bucle de repetición de frase (Shadowing) MOD-ENGLISH frontend/src/store/player.ts Vitest: repetición de timestamps
RF-ENG-05 CR-13 Mini-Player flotante persistente MOD-ENGLISH frontend/src/components/english/MiniPlayer.tsx Vitest: miniPlayer.ts
RF-MEN-01 CR-14 Generador curricular (together/phased) MOD-MENTOR frontend/src/components/mentor/MentorModule.tsx Vitest: mentor.ts
RF-MEN-02 CR-14 Temporizador Pomodoro en barra superior MOD-MENTOR frontend/src/components/TopBarPomodoro.tsx Vitest: TopBarPomodoro.test.tsx
RF-MEN-03 CR-14 Modal de evaluación post-pomodoro MOD-MENTOR frontend/src/components/mentor/PomodoroAssessmentModal.tsx Vitest: persistencia de sesión
RF-WEB-01 CR-15 Navegador en partición aislada persist:nvweb MOD-WEB frontend/src/components/web/WebModule.tsx E2E: aislamiento de cookies
RF-WEB-02 CR-15 Bloqueo de distracciones en modo estudio MOD-WEB frontend/src/store/webPages.ts Vitest: webPages.test.ts
RF-WEB-03 CR-15 Recortador de artículos a Markdown MOD-WEB frontend/src/lib/webClipper.ts Vitest: extracción Readability
NFR-01 CR-20 Latencia de carga de notas < 30 ms Transversal Motor de renderizado CodeMirror 6 Benchmark automatizado
NFR-05 CR-24 Seguridad Electron (contextIsolation, no node) Transversal frontend/electron/main.ts Auditoría de opciones de ventana
NFR-06 CR-25 Sanitización HTML contra XSS con DOMPurify Transversal frontend/src/lib/sanitize.ts Test de penetración XSS
NFR-08 CR-18 Cero corrupción de archivos (guardado atómico) Transversal Protocolo I/O .tmp + fs.rename Test de corte abrupto de hilo
NFR-11 CR-22 Simetría multiplataforma PC y Móvil Transversal Formato de bóveda VAULT_FORMAT.md v4 Conformidad a nivel de bytes
NFR-13 CR-16 Accesibilidad WCAG 2.1 AA Transversal Tokens CSS y soporte de teclado styles.contrast.test.ts

3. Marco Conceptual: Matriz de Trazabilidad de Requisitos (RTM)

1. **Entidad principal e independiente.** 2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que mapea cada necesidad de usuario a su implementación física (`rtm_trace_id`: `RTM-NOTEVAULT-CANONICAL-V4`), consultado en auditorías de certificación y revisiones de arquitectura. 3. **Existe por sí misma en el registro de ingeniería sin depender del código fuente compilado**, y es la única responsable de garantizar que no existan requisitos huérfanos sin código ni código superfluo sin requisito (*Zero Feature Gap / Zero Gold-Plating*). 4. **Punto de entrada y límite de consistencia:** Sella formalmente la compuerta Gate 3 hacia la Fase 4 (Modelado del Sistema).