Reemplaza el README.md tecnico por un apunte de clase pedagogico
dirigido a alumnos del curso SAP-TFI-2026.
Contenido nuevo:
1. Introduccion al repositorio como material de apoyo para el TP:
- Que es y que no es
- Como esta organizado
- Como usarlo paso a paso
2. Ejemplos de diagramas ICONIX para casos core de ERP:
- Ejemplo 1: Diagrama de CU (D-CU-GEN-002)
- Actores, CU principales, 5 includes, 5 extends
- Leccion para el alumno
- Ejemplo 2: Diagrama de Robustez (D-ROB-VEN-001)
- Boundary/control/entity
- Flujo principal en voz activa
- Leccion para el alumno
- Ejemplo 3: Diagrama de Secuencia (D-SEC-VEN-004)
- Lifelines, mensajes numerados, SQL queries
- Leccion para el alumno
- Ejemplo 4: Diagrama de Clases Tecnico (D-CLA-INT-001)
- Modelos Odoo reales, relaciones
- Leccion para el alumno
- Ejemplo 5: Diagrama de Arquitectura Estratificada (D-ARQ-TECH-001)
- 4 capas del stack
- Leccion para el alumno
- Ejemplo 6: Patron Composite aplicado a BoM (D-PAT-COMPOSITE-001)
- Component/Leaf/Composite
- Leccion para el alumno
3. Recursos adicionales:
- Material pedagogico (docs/10_material_estudio/)
- Validacion (docs/11_validacion/)
- Patrones de diseno (docs/12_patrones_diseno/)
- Evidencias (evidence/)
4. Recomendaciones para el TP:
- No copiar directamente
- Verificar contra codigo real
- Usar checklists antes de entregar
- Compilar los .puml
- Mantener trazabilidad
5. Contacto, soporte y licencia.
SAP-TFI-2026 — Apunte de Clase
Material de apoyo para la resolución del Trabajo Práctico de la sección técnica del curso SAP-TFI-2026. Facultad de Ciencias Exactas, Ingeniería y Agrimensura — Universidad Nacional de Rosario (o la institución que corresponda). Última actualización: 2026-06-18.
¿Qué es este repositorio?
Este repositorio es material de apoyo para que los alumnos del curso SAP-TFI-2026 puedan resolver el Trabajo Práctico (TP) de la sección técnica. Contiene:
- Diagramas ICONIX (PlantUML) de los casos de uso core del dominio ERP (Ventas, Facturación, Entregas, Inventario).
- Documentación explicativa de cada artefacto siguiendo la metodología ICONIX.
- Casos de uso modelo (CU-VEN-001, CU-VEN-004, CU-ENT-002, CU-ENT-004, CU-FAC-001, CU-FAC-002, CU-FAC-003) que sirven como referencia para el TP.
- Material pedagógico en
docs/10_material_estudio/con guías paso a paso. - Checklists de calidad en
docs/11_validacion/para auto-evaluación de los diagramas.
¿Qué NO es este repositorio?
- No es la solución del TP. Cada alumno debe producir su propia versión.
- No es código fuente que el alumno deba ejecutar. Es documentación.
- No es opcional. El alumno debe usar este repositorio como punto de partida para entender la metodología ICONIX aplicada al dominio ERP.
¿Cómo está organizado?
sap_tfi_2026/
├── README.md ← este archivo
├── docs/
│ ├── 00_plan/ ← plan del proyecto
│ ├── 01_contexto/ ← contexto de Odoo 19.0
│ ├── 02_casos_uso/ ← 7 CU modelo (referencia para el TP)
│ ├── 03_dominio/ ← modelo de dominio
│ ├── 04_arquitectura/ ← arquitectura general
│ ├── 05_prototipos/ ← prototipos de UI
│ ├── 09_trazabilidad/ ← matriz de trazabilidad
│ ├── 10_material_estudio/ ← material pedagógico
│ ├── 11_validacion/ ← checklists ICONIX
│ └── 12_patrones_diseno/ ← patrones de diseño aplicados
├── diagrams/
│ ├── plantuml/ ← código fuente .puml
│ ├── png/ ← versiones PNG
│ ├── svg/ ← versiones SVG
│ └── pdf/ ← versiones PDF
├── evidence/
│ └── index.md ← catálogo de evidencias
└── .gitignore
Cómo usar este repositorio para el TP
Paso 1: Entender la metodología ICONIX
Antes de hacer cualquier diagrama, leé:
docs/10_material_estudio/01_que_es_iconix.md— qué es ICONIX.docs/10_material_estudio/02_aplicacion_a_odoo.md— cómo se adaptó a Odoo.
Paso 2: Estudiar los casos de uso modelo
Los 7 CU modelo están en docs/02_casos_uso/. Cada uno tiene la estructura completa:
- Nombre, objetivo, pre/post-condición
- Pasos trascendentes (en voz activa)
- Caminos alternativos
- Excepciones, reglas de negocio
- Diagramas asociados (robustez, secuencia, clases)
Sugerencia: empezá por cu_ven_001_crear_presupuesto.md (es el más simple) y avanzá progresivamente.
Paso 3: Estudiar los diagramas
Los diagramas están en diagrams/plantuml/ (código fuente) y diagrams/pdf/ (versión renderizada).
Para visualizar:
- Abrí los PDFs directamente.
- Para regenerar: instalá PlantUML (
apt-get install plantumlo descargá el jar). - Para modificar: editá los
.pumly regenerá.
Paso 4: Aplicar ICONIX a tu TP
Para cada CU que debas documentar:
- Identificá los actores.
- Escribí la especificación del CU (usá
docs/02_casos_uso/cu_ven_001_crear_presupuesto.mdcomo plantilla). - Generá el diagrama de robustez (
diagrams/plantuml/d_rob_*.pumlcomo plantilla). - Generá el diagrama de secuencia (
diagrams/plantuml/d_sec_*.pumlcomo plantilla). - Generá el diagrama de clases técnico (
diagrams/plantuml/d_cla_int_*.pumlcomo plantilla). - Aplicá el checklist (
docs/11_validacion/checklists_iconix.md).
Paso 5: Validar
Antes de entregar tu TP:
- Aplicá los checklists de
docs/11_validacion/checklists_iconix.md. - Verificá que cada CU tenga su diagrama de robustez, secuencia y clases.
- Verificá que la matriz de trazabilidad esté completa.
Ejemplos de diagramas ICONIX para casos de uso core de ERP
A continuación se muestran los diagramas principales del repositorio. Cada uno corresponde a un caso de uso core del dominio ERP.
Ejemplo 1: Diagrama de Casos de Uso (D-CU-GEN-002)
El diagrama de CU muestra los casos de uso principales del flujo comercial, con relaciones <<include>> (sub-flujos obligatorios) y <<extend>> (sub-flujos opcionales).
Actores:
- Vendedor (crea presupuestos, confirma pedidos)
- Operario de Almacén (reserva productos, valida entregas)
- Facturador (crea, publica y registra pagos de facturas)
- Sistema (autentica)
Casos de uso principales:
CU-VEN-001Crear presupuestoCU-VEN-004Confirmar pedido de ventaCU-ENT-002Reservar productos en almacénCU-ENT-004Validar entrega de productosCU-FAC-001Crear factura desde pedidoCU-FAC-002Publicar facturaCU-FAC-003Registrar pago
5 relaciones <> (sub-flujos obligatorios):
CU-AUTH-001Validar sesión de usuario (incluido por CU-VEN-001 y CU-VEN-004)CU-CALC-001Calcular totales con impuestos (incluido por CU-VEN-001)CU-GENPICK-001Generar picking de entrega (incluido por CU-VEN-004)CU-VALLIN-001Validar líneas pendientes (incluido por CU-FAC-001)CU-GENJOUR-001Crear asiento contable (incluido por CU-FAC-002)
5 relaciones <> (sub-flujos opcionales/condicionales):
CU-VEN-001-EMAILEnviar presupuesto por email (opcional)CU-VEN-001-DISCAplicar descuento (opcional)CU-ENT-002-MTOGenerar orden de compra (MTO) (opcional)CU-ENT-004-BACKCrear backorder de entrega parcial (opcional)CU-FAC-002-VALValidar asiento anormal (opcional)
Diagrama: diagrams/plantuml/d_cu_gen_002_casos_uso_extend_include.puml
Lección para el alumno: en ICONIX, las relaciones <<include>> se usan para sub-flujos obligatorios (siempre se ejecutan), mientras que <<extend>> se usa para sub-flujos opcionales (solo se ejecutan bajo ciertas condiciones). El diagrama de CU debe mostrar ambos tipos cuando apliquen.
Ejemplo 2: Diagrama de Robustez (D-ROB-VEN-001)
El diagrama de robustez muestra qué objetos intervienen en un CU, clasificándolos en boundary (vista), control (coordinador) y entity (objeto persistente).
Para el CU-VEN-001 (Crear Presupuesto):
- Actor: Vendedor
- Boundary:
Boton Nuevo,Form (view_sale_order_form) - Control:
SaleOrder (action_quotation_send),Mail Compose (mail.compose.message) - Entity:
sale.order (draft),mail.mail
Flujo principal (pasos en voz activa):
- Vendedor presiona "Nuevo" → Botón Nuevo crea sale.order en draft → abre form.
- Vendedor completa cliente y líneas → form actualiza sale.order → recalcula totales.
- (Opcional) Vendedor presiona "Enviar" → action_quotation_send invoca → marca enviado → Mail Compose crea mail.mail → envía email.
Lección para el alumno: el diagrama de robustez usa exactamente 3 tipos de elementos (boundary/control/entity). Los mensajes entre elementos son verbos en voz activa que después se traducen 1:1 a los pasos del CU. Si un verbo no aparece en el diagrama de robustez, no puede aparecer en la especificación del CU.
Ejemplo 3: Diagrama de Secuencia (D-SEC-VEN-004)
El diagrama de secuencia muestra las interacciones en el tiempo entre los lifelines (actor, vistas, controles, entidades, base de datos).
Para el CU-VEN-004 (Confirmar Pedido):
- Lifelines: Vendedor, Form, SaleOrder, Validator, Conf. Values, Stock Layer, Invoice Layer, PostgreSQL
- Mensajes numerados (orden temporal estricto)
- Activate/deactivate para cada llamada
- Alt/else/opt para flujos alternativos
- SQL queries explícitos (SELECT, INSERT, UPDATE)
Lección para el alumno: el diagrama de secuencia debe mostrar la base de datos explícitamente y los SQL queries como mensajes. Esto permite que un DBA o un desarrollador verifiquen la implementación sin tener que leer código.
Ejemplo 4: Diagrama de Clases Técnico (D-CLA-INT-001)
El diagrama de clases técnico muestra las clases reales de Odoo con sus _name, _inherit, campos y métodos.
Para la integración venta/stock/contabilidad:
<sale.order>(modelo_name = 'sale.order',_inherit = ['mail.thread', ...])<sale.order.line>(líneas de pedido)<stock.picking>(entregas)<stock.move>(movimientos)<account.move>(facturas)<account.move.line>(líneas de factura)
Relaciones:
- SO "1" -- "" SOL : order_line (One2many)
- SO "1" -- "" AM : invoice_ids
- SP "*" --> "1" SO : sale_id
- AM "*" --> "1" SOL : invoice_line_ids
Lección para el alumno: el diagrama de clases técnico refleja el código real de Odoo, no el modelo conceptual. Cada clase tiene _name (nombre técnico) y los campos tienen tipo (Many2one, One2many, Float, etc.). Las relaciones muestran cómo se conectan los modelos vía foreign keys.
Ejemplo 5: Diagrama de Arquitectura Estratificada (D-ARQ-TECH-001)
El diagrama de arquitectura muestra las capas del stack tecnológico de Odoo:
- Capa 1: Cliente (navegador, JS runtime)
- Capa 2: Servidor de aplicación (4 subcapas: Presentación, Web, Logic, Addons)
- Capa 3: Persistencia (PostgreSQL, Filestore)
- Capa 4: Integración externa (REST API, SMTP, Payment, Webhooks)
Lección para el alumno: el diagrama de arquitectura debe mostrar TODAS las capas relevantes del stack, no solo la capa de aplicación. Esto permite entender dónde corre cada componente y cómo se comunican entre capas.
Ejemplo 6: Patrón Composite aplicado a BoM (D-PAT-COMPOSITE-001)
El diagrama del patrón Composite muestra cómo Odoo implementa la Lista de Materiales (Bill of Materials) usando el patrón Composite de GoF:
- Component (interfaz abstracta) →
BomComponent - Leaf (producto simple) →
product.product - Composite (producto con BoM) →
mrp.bom - children (lista de hijos) → campo
bom_line_ids(One2many) - Operation → método
explode(product, quantity)
Lección para el alumno: Odoo usa patrones de diseño estándar (GoF). Identificar el patrón aplicado a cada subsistema es clave para entender cómo está estructurado el código. La documentación del patrón debe seguir el estándar de la FCEIA-UNR (Cristia, 2015).
Recursos adicionales
Material pedagógico
docs/10_material_estudio/README.md— índice del material de estudio.docs/10_material_estudio/01_que_es_iconix.md— qué es ICONIX.docs/10_material_estudio/02_aplicacion_a_odoo.md— cómo se aplicó a Odoo.docs/10_material_estudio/03_como_leer_los_cu.md— cómo leer las CU.docs/10_material_estudio/04_ejercicios_practicos.md— ejercicios prácticos.
Validación
docs/11_validacion/checklists_iconix.md— checklists por tipo de diagrama, con aplicación a los 12 diagramas existentes.
Patrones de diseño
docs/12_patrones_diseno/composite_bom.md— patrón Composite aplicado a BoM, con documentación siguiendo estándar UNR.
Evidencias
evidence/index.md— catálogo de 30 EV-COD y 8 EV-INF verificables contra código real de Odoo 19.0.
Recomendaciones para el TP
-
No copies directamente. Los CU modelo son para entender la metodología, no para copiar. Cada alumno debe producir su propia versión adaptada a su contexto.
-
Verificá contra código real. Cada afirmación sobre Odoo debe tener una evidencia EV-COD con ruta exacta del archivo y línea. Esto distingue la ingeniería inversa seria de la invención.
-
Usá los checklists antes de entregar. Aplicá los checklists de
docs/11_validacion/checklists_iconix.mdantes de entregar el TP. Un diagrama que no pasa el checklist no debe ser entregado. -
Compilá los .puml. Un .puml que no compila no sirve. Antes de entregar, regenerá todos los PDFs y verificá que se ven bien.
-
Mantené la trazabilidad. Cada CU debe tener su diagrama de robustez, secuencia y clases. La matriz de trazabilidad debe estar completa.
Contacto y soporte
- Operador del repositorio: Ale Sartorio
- Issues: usar el sistema de issues del repositorio en GitHub
- Email: (según corresponda al curso)
Licencia
Este material se distribuye bajo la licencia Creative Commons BY-SA 4.0. Podés usarlo, modificarlo y redistribuirlo libremente, citando la fuente.