La programación orientada a objetos (OOP) organiza los programas en objetos que representan instancias de clases dentro de una jerarquía de herencia. Este enfoque permite la abstracción, encapsulamiento, modularidad y reutilización de código, aunque presenta desafíos como mayor complejidad en el flujo de datos. Se utilizan diversas relaciones como asociación, herencia y agregación para definir interacciones entre clases y objetos.