Aplicación monolítica
# Aplicación monolítica

En ingeniería de software, una aplicación monolítica hace referencia a una aplicación software en la que la capa de interfaz de usuario, lógica de negocios y la capa de acceso a datos están combinadas en un mismo programa y sobre una misma plataforma.

Una aplicación monolítica es autónoma, e independiente de otras aplicaciones. La filosofía de diseño es que la aplicación es responsable no sólo de una única tarea, si no que es capaz de realizar todos los pasos o tareas necesarias para completar una determinada función. Hoy en día, algunas aplicaciones de finanzas son monolíticas en el sentido que ayudan al usuario a realizar una tarea por completo, y son "silos de datos" privados en lugar de partes de un sistema de aplicaciones que trabajan conjuntamente. Algunos procesadores de texto son aplicaciones monolíticas . Estas aplicaciones a veces son asociadas con unidades centrales.

En ingeniería de software, una aplicación monolítica describe una aplicación de software qué está diseñado sin modularidad. En general, la modularidad es deseable, ya que permite reutilizar partes de lógica de una aplicación y además facilita el mantenimiento permitiendo refactorizar o sustituir partes de la misma sin necesidad de cambiar todo.

La modularidad se puede lograr de distintas maneras o enfoques. La modularidad en código permite a los desarrolladores reutilizar y arreglar partes de una aplicación, pero las herramientas de desarrollo deben estar preparadas para realizar distintas tareas de mantenimiento (por ejemplo, la aplicación puede necesitar ser recompilada). 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. (por ejemplo, los archivos 'dll' de Microsoft; los archivos "shared object" de Sun/Unix). 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".

