Técnica de desarrollo de software que implica dividir un programa en módulos más pequeños, cada uno con una función específica y bien definida. Esto hace que el código sea más fácil de escribir, entender, probar y mantener.
Descomposición: Divide un programa grande en módulos más pequeños y manejables, cada uno con una función específica.
Encapsulamiento: Cada módulo tiene sus datos y funciones encapsulados, reduciendo la interacción innecesaria con otros módulos.
Reutilización: Los módulos pueden ser reutilizados en diferentes partes del mismo programa o en distintos programas.
Interfaz Bien Definida: Los módulos se comunican entre sí a través de interfaces bien definidas, por lo que diferentes programadores pueden trabajar en módulos distintos de forma simultánea.
Mantenibilidad: Es más fácil actualizar, corregir o mejorar módulos individuales sin afectar el resto del programa.
Abstracción: Oculta los detalles internos del módulo, presentando solo la información necesaria para usarlo. No hay interferencias entre módulos.