Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Programación Orientada a Objetos

OOP Avanzado

Calidad de diseño, verificación y evolución del código

Universidad Nacional de Rio Negro - Sede Andina

Cómo usar esta parte

En las partes anteriores se construyeron los fundamentos del paradigma orientado a objetos, las relaciones entre objetos, la sintaxis de clases en Java y la herencia con polimorfismo (Fundamentos de la Programación Orientada a Objetos, Encapsulamiento y Relaciones entre Objetos, Herencia y Polimorfismo Conceptual y Herencia y Polimorfismo en Java).

Esta parte cambia el foco: ya no alcanza con que el programa “funcione”. Ahora importa que el diseño sea mantenible, testeable, extensible y robusto frente al cambio.

Orden sugerido de lectura

OrdenCapítuloRol en la progresión
1Refactoring y Code SmellsInstala vocabulario de diagnóstico y mejora segura
2SOLIDAgrega criterios para evaluar cohesión, acoplamiento y extensibilidad
3Testing OOPLleva la verificación desde métodos aislados a colaboraciones y jerarquías
4Anti-patrones y Code SmellsFunciona como contraste y catálogo de errores frecuentes
5Diseño por ContratosCierra la parte formalizando responsabilidades y reglas de sustitución

Capítulos nucleares

Estos capítulos conviene trabajarlos en secuencia, porque arman el hilo principal de la parte:

CapítuloPor qué es nuclear
Refactoring y Code SmellsDefine el vocabulario para detectar problemas y priorizar mejoras
SOLIDDa criterios de diseño para justificar refactorizaciones y evaluar decisiones
Testing OOPAporta la red de seguridad necesaria para cambiar diseño sin romper comportamiento

Repaso y ampliación

Estos capítulos funcionan mejor como contraste, consolidación o cierre formal del recorrido:

CapítuloTipoUso sugerido
Anti-patrones y Code SmellsContraste y diagnósticoLeer después de refactoring y SOLID para reconocer decisiones de diseño pobres
Diseño por ContratosFormalización y cierreUsar para cerrar la parte conectando Liskov, testing y robustez contractual

Ejes conceptuales

Calidad interna del diseño

Un sistema puede compilar, pasar tests e igual estar mal diseñado. En esta parte se trabajan criterios para reconocer cuándo un diseño se vuelve rígido, frágil o difícil de extender.

Cambio seguro

Refactorizar sin romper comportamiento exige una combinación de criterio de diseño y red de seguridad. Por eso esta parte articula constantemente refactoring, testing y contratos.

Detección temprana de problemas

Los anti-patrones y code smells no son errores de sintaxis: son señales de deuda técnica, complejidad innecesaria o mala distribución de responsabilidades.

Conexiones con otras partes


Refactoring y Code Smells

SOLID

Testing OOP

Anti-patrones y Code Smells

Diseño por Contratos