academia/docs/entregables/01-analisis/requisitos/AN-001-requisitos-funcional...

209 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AN-001: Análisis de Requisitos Funcionales
**Proyecto:** Sistema de Registro de Estudiantes - Inter Rapidísimo
**Rol:** Analista de Sistemas
**Fecha:** 2026-01-07
---
## 1. Resumen Ejecutivo
Sistema web para gestión de inscripciones estudiantiles con programa de créditos académicos. Permite CRUD de estudiantes, inscripción en materias con restricciones de negocio, y visualización de compañeros de clase.
---
## 2. Requisitos Funcionales Identificados
### RF-001: Registro de Estudiantes (CRUD)
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-001 |
| **Nombre** | Gestión CRUD de Estudiantes |
| **Descripción** | El sistema debe permitir crear, leer, actualizar y eliminar registros de estudiantes |
| **Prioridad** | Alta |
| **Fuente** | Enunciado punto 1 |
**Criterios de Aceptación:**
- [ ] CA-001.1: Usuario puede crear estudiante con nombre y email válido
- [ ] CA-001.2: Usuario puede consultar lista de estudiantes registrados
- [ ] CA-001.3: Usuario puede actualizar datos de un estudiante existente
- [ ] CA-001.4: Usuario puede eliminar un estudiante (cascade con inscripciones)
- [ ] CA-001.5: Email debe ser único en el sistema
---
### RF-002: Programa de Créditos
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-002 |
| **Nombre** | Adhesión a Programa de Créditos |
| **Descripción** | Los estudiantes se inscriben en un programa basado en créditos académicos |
| **Prioridad** | Alta |
| **Fuente** | Enunciado punto 2 |
**Criterios de Aceptación:**
- [ ] CA-002.1: Sistema muestra créditos totales del estudiante
- [ ] CA-002.2: Créditos se calculan automáticamente según materias inscritas
- [ ] CA-002.3: Máximo 9 créditos por estudiante (3 materias × 3 créditos)
---
### RF-003: Catálogo de Materias
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-003 |
| **Nombre** | Gestión de 10 Materias |
| **Descripción** | El sistema debe gestionar un catálogo fijo de 10 materias académicas |
| **Prioridad** | Alta |
| **Fuente** | Enunciado punto 3 |
**Criterios de Aceptación:**
- [ ] CA-003.1: Sistema contiene exactamente 10 materias predefinidas
- [ ] CA-003.2: Usuario puede consultar catálogo completo de materias
- [ ] CA-003.3: Cada materia muestra nombre, créditos y profesor asignado
---
### RF-004: Valor de Créditos por Materia
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-004 |
| **Nombre** | Asignación de 3 Créditos por Materia |
| **Descripción** | Cada materia del catálogo equivale a exactamente 3 créditos |
| **Prioridad** | Alta |
| **Fuente** | Enunciado punto 4 |
**Criterios de Aceptación:**
- [ ] CA-004.1: Todas las materias tienen valor fijo de 3 créditos
- [ ] CA-004.2: Sistema muestra créditos en detalle de cada materia
---
### RF-005: Límite de Materias por Estudiante
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-005 |
| **Nombre** | Máximo 3 Materias por Estudiante |
| **Descripción** | Un estudiante solo puede inscribirse en máximo 3 materias |
| **Prioridad** | Alta |
| **Fuente** | Enunciado punto 5 |
**Criterios de Aceptación:**
- [ ] CA-005.1: Sistema impide inscripción si estudiante ya tiene 3 materias
- [ ] CA-005.2: Sistema muestra contador de materias inscritas
- [ ] CA-005.3: Mensaje de error claro al intentar exceder límite
---
### RF-006: Asignación Profesores-Materias
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-006 |
| **Nombre** | 5 Profesores con 2 Materias c/u |
| **Descripción** | El sistema tiene 5 profesores, cada uno dicta exactamente 2 materias |
| **Prioridad** | Alta |
| **Fuente** | Enunciado punto 6 |
**Criterios de Aceptación:**
- [ ] CA-006.1: Sistema contiene exactamente 5 profesores predefinidos
- [ ] CA-006.2: Cada profesor tiene asignadas exactamente 2 materias
- [ ] CA-006.3: Usuario puede ver qué profesor dicta cada materia
---
### RF-007: Restricción de Profesor Único
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-007 |
| **Nombre** | Prohibición de Mismo Profesor |
| **Descripción** | Un estudiante no puede inscribirse en dos materias del mismo profesor |
| **Prioridad** | Crítica |
| **Fuente** | Enunciado punto 7 |
**Criterios de Aceptación:**
- [ ] CA-007.1: Sistema valida profesor al momento de inscripción
- [ ] CA-007.2: Materias no disponibles se muestran deshabilitadas con razón
- [ ] CA-007.3: Mensaje de error específico: "Ya tienes una materia con este profesor"
---
### RF-008: Visualización de Registros
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-008 |
| **Nombre** | Consulta de Otros Estudiantes |
| **Descripción** | Cada estudiante puede ver en línea los registros de otros estudiantes |
| **Prioridad** | Media |
| **Fuente** | Enunciado punto 8 |
**Criterios de Aceptación:**
- [ ] CA-008.1: Usuario puede ver lista de todos los estudiantes registrados
- [ ] CA-008.2: Información visible: nombre (según restricciones de privacidad)
---
### RF-009: Compañeros de Clase
| Atributo | Descripción |
|----------|-------------|
| **ID** | RF-009 |
| **Nombre** | Ver Nombres de Compañeros por Materia |
| **Descripción** | El estudiante puede ver solo el nombre de alumnos con quienes compartirá clase |
| **Prioridad** | Media |
| **Fuente** | Enunciado punto 9 |
**Criterios de Aceptación:**
- [ ] CA-009.1: Sistema muestra compañeros agrupados por materia
- [ ] CA-009.2: Solo se muestra el nombre (no email ni otros datos)
- [ ] CA-009.3: Solo muestra compañeros de materias donde está inscrito
---
## 3. Matriz de Trazabilidad
| Requisito | Historia | Componente Backend | Componente Frontend |
|-----------|----------|-------------------|---------------------|
| RF-001 | US-001 | StudentController, StudentService | StudentFormComponent |
| RF-002 | US-002 | EnrollmentService | DashboardComponent |
| RF-003 | US-003 | SubjectController | SubjectListComponent |
| RF-004 | US-003 | Subject Entity | SubjectCardComponent |
| RF-005 | US-004 | EnrollmentValidator | EnrollmentComponent |
| RF-006 | US-003 | Professor Entity | ProfessorListComponent |
| RF-007 | US-005 | EnrollmentDomainService | EnrollmentComponent |
| RF-008 | US-006 | StudentQuery | StudentListComponent |
| RF-009 | US-007 | ClassmatesQuery | ClassmatesComponent |
---
## 4. Dependencias entre Requisitos
```
RF-001 (Estudiantes)
RF-002 (Programa Créditos) ← RF-004 (3 créditos/materia)
RF-005 (Max 3 materias) ← RF-003 (10 materias)
↓ ↓
RF-007 (Restricción profesor) ← RF-006 (5 profesores)
RF-008/RF-009 (Visualización)
```
---
## 5. Aprobación
| Rol | Nombre | Fecha | Firma |
|-----|--------|-------|-------|
| Analista | Sistema | 2026-01-07 | ✓ |
| Product Owner | Pendiente | - | - |
| Líder Técnico | Pendiente | - | - |