La modularidad se puede lograr de distintas maneras o enfoques.
La modularidad basada en código objeto permite que una aplicación sea distribuida como múltiples archivos ejecutables independientes que pueden ser mantenidos y sustituidos sin necesidad de redistribuir toda la aplicación por completo.
Algunos protocolos o estándares permiten que aplicaciones basadas en objetos puedan ser distribuidas en múltiples ordenadores (por ejemplo, Microsoft COM+) Por último, las arquitecturas orientadas a servicios utilizan estándares o protocolos para la comunicación entre módulos.
En su uso original, el término "monolítico" hacía referencia grandes aplicaciones que no podían ser usadas de forma modular.
Esto – junto con el rápido aumento en capacidad de cómputo y por tanto el rápido aumento en la complejidad de los problemas que podían ser resueltos mediante software – dieron como resultado sistemas inmantenibles y la "crisis del software".