Consiste en crear módulos capaces de funcionar de manera independiente del resto de los módulos que forma parte de una solución .
Cuanto más independientes sean entre sí más fácil y flexiblemente se trabajará con ellos , esto implica que para desarrollar un módulo no es necesario conocer detalles internos de otros módulos , permitiendo así reutilizar dichos módulos en otras soluciones