Saltearse al contenido

Relación de Entidades (El Ejercicio)

Cuando analizamos la arquitectura OAS desde la perspectiva del desarrollo web tradicional (donde solemos tener “Exámenes”, “Preguntas” y “Componentes UI”), los nombres de las entidades pueden parecer un poco confusos al principio.

Esta nomenclatura existe porque OAS fusiona los estándares de interoperabilidad educativa (IMS QTI) con los patrones de arquitectura Cloud-Native (Assessment as Code).

A continuación explicamos las tres entidades fundamentales que componen un instrumento de evaluación interactivo.

Diagrama de Relaciones

graph TD
    subgraph "Nivel Documento (El Examen)"
        ES[ExerciseSpec]
    end

    subgraph "Nivel Atómico (Los Datos de la Pregunta)"
        AI1[AssessmentItem 1]
        AI2[AssessmentItem 2]
        AI3[AssessmentItem N]
    end

    subgraph "Nivel UI (El Widget Frontend)"
        ET_MC[ExerciseType: multiple_choice]
        ET_FT[ExerciseType: free_text]
    end

    ES -- Contiene N --> AI1
    ES -- Contiene N --> AI2
    ES -- Contiene N --> AI3
    
    AI1 -- Usa un --> ET_MC
    AI2 -- Usa un --> ET_FT
    AI3 -- Usa un --> ET_MC
    
    style ES fill:#f9f,stroke:#333,stroke-width:2px
    style AI1 fill:#bbf,stroke:#333,stroke-width:1px
    style AI2 fill:#bbf,stroke:#333,stroke-width:1px
    style AI3 fill:#bbf,stroke:#333,stroke-width:1px
    style ET_MC fill:#bfb,stroke:#333,stroke-width:1px
    style ET_FT fill:#bfb,stroke:#333,stroke-width:1px

1. ExerciseSpec (El Agrupador / El Documento)

Equivalente tradicional: ExamDocument, QuizContainer o Worksheet

La palabra “Spec” (Specification) proviene de la arquitectura inspirada en Kubernetes. En OAS, todo se define mediante archivos YAML que declaran un “estado deseado”. Un ExerciseSpec es el documento maestro o “cuadernillo” completo. Define el contexto general (por ejemplo, un texto de lectura o un caso de estudio) y agrupa la lista de preguntas que los estudiantes deben responder basándose en ese contexto.

2. AssessmentItem (La Instancia de Datos)

Equivalente tradicional: QuestionInstanceData

Este nombre se hereda directamente del estándar global IMS QTI (Question and Test Interoperability). En QTI, la unidad atómica de evaluación (la pregunta en sí, sus opciones, su rúbrica y la respuesta esperada) se llama “Assessment Item”. En OAS, un AssessmentItem es puramente un payload de datos. No contiene información sobre estilos, colores o interactividad; simplemente almacena el qué de la pregunta.

3. ExerciseType (El Componente Visual)

Equivalente tradicional: QuestionUIWidget o FrontendComponent

Dado que AssessmentItem es agnóstico a la presentación visual (podría imprimirse en papel o enviarse por SMS), introducimos el ExerciseType. Esta entidad actúa como el puente hacia el frontend. El ExerciseType define estrictamente la interfaz gráfica de usuario (UI), como un widget de arrastrar y soltar (drag_and_drop), una caja de texto libre (free_text), o botones de opción múltiple (multiple_choice).

¿Por qué separarlo? Esta separación permite una reutilización masiva. Puedes tener 10.000 AssessmentItems distintos sobre historia, geografía o biología, y todos utilizarán la misma lógica visual de un único ExerciseType (como multiple_choice). Si decides rediseñar tus botones de opción múltiple, solo modificas el código de ese ExerciseType una vez, y automáticamente actualizará la apariencia de las 10.000 preguntas.