Modularidad
Es una propiedad que permite dividir la aplicación en partes más pequeñas a las que llamamos módulos; mismos que deben estar tan independientes entre sí , como sea posible, es decir débilmente acoplados pero altamente cohesivos.
El hecho de dividir un programa en componentes individuales reduce su complejidad, con lo que nos facilitará a los desarrolladores crear fronteras, elaborar una buena documentación y sobre todo tener el control y comprensión del programa en general.


Frecuentemente un conjunto de abstracciones forma una jerarquía, y la identificación de esas jerarquías en el diseño simplifica en gran medida la comprensión del problema que se va a implementar.

Cabe mencionar que los objetos no son intercambiables en el caso de que sean de tipos distintos, por ejemplo no se pueden intercambiar el objeto AUTOS con el objeto LIBROS.

Fuente: Apuntes de Informática V de la FCA de la UNAM