| Guia | |
|---|---|
| Áreas | Ingeniería de software |
| Sub Áreas | Desarrollo de software |
| Estado | Disponible |
Tyger es un sistema de tipos para Python desarrollado en el DCC. A diferencia de herramientas como mypy, Tyger se basa en los principios de sound gradual typing y puede insertar automáticamente casts en los programas con el objetivo de preservar garantías de seguridad de tipos durante su ejecución.
El sistema ha sido desarrollado y extendido progresivamente por distintos estudiantes, incorporando nuevas funcionalidades, reglas de tipado y mecanismos de transformación de programas. Como consecuencia de este crecimiento incremental, existen oportunidades para mejorar su estructura interna, uniformar criterios de implementación y facilitar su evolución futura.
El objetivo de esta memoria es realizar una revisión sistemática de la arquitectura y la base de código de Tyger, identificando problemas de modularización, duplicación de código, responsabilidades mal ubicadas entre las distintas fases del sistema y falta de estándares comunes de desarrollo. A partir de este diagnóstico, se propone refactorizar componentes relevantes, definir convenciones y buenas prácticas, mejorar la separación entre las fases de análisis, tipado, elaboración e inserción de casts, y fortalecer la infraestructura de pruebas.
El trabajo también contempla analizar y mejorar la cobertura de pruebas, establecer criterios para evaluar la calidad interna del sistema y documentar las decisiones arquitectónicas adoptadas. El resultado esperado es una versión de Tyger más modular, consistente, testeable y mantenible, junto con un conjunto de lineamientos que orienten sus futuras extensiones y reduzcan el costo de incorporación de nuevos desarrolladores al proyecto.