Siete patrones arquitectónicos de software que debe conocer, según los ingenieros de software.

En esta entrada del blog describiré un resumen de los siete patrones arquitectónicos de software más populares que he encontrado en la literatura (Sommerville, 2011), algunos de ellos los utilicé en proyectos de desarrollo web y de escritorio en los que en un tiempo participé. Estos, según los expertos, se considera que son los que debemos conocer. Si bien es cierto que especializarse en uno no es lo recomendado, pues el implementar tal o cual dependerá de los requerimientos de tu proyecto, si es necesario al menos conocerlos y saber qué es lo que son. A continuación describiré  lo que es 1) arquitectura dirigida por eventos, 2) arquitectura en capas,  3) arquitectura monolítica, 4) arquitectura de microservicios, 5) modelo-vista-controlador, 6) arquitectura master-slave y 7) arquitectura dirigida por modelos.

  1. Arquitectura dirigida por eventos: se basa en componentes desacoplados y con una comunicación asíncrona. En la literatura se propone como ideal para sistemas donde los eventos desencadenan acciones, fomentando la escalabilidad y la capacidad de respuesta.
  2. Arquitectura en capas: es una estructura jerárquica con capas distintas (Presentación, Lógica de Negocio, Datos). Esta arquitectura es común en aplicaciones empresariales, mejorando la mantenibilidad a través de la compartimentación y el desarrollo modular.
  3. Arquitectura monolítica: utiliza un código base unificado y unidad de despliegue, es adecuada, según los expertos, para aplicaciones más pequeñas o instancias centradas en la simplicidad. Agiliza el desarrollo y el despliegue con posibles problemas de escalabilidad.
  4. Arquitectura de microservicios: básicamente es un sistema distribuido con servicios independientes e interoperables, suele ser recomendada para sistemas grandes e intrincados, mejorando la escalabilidad, el aislamiento de fallos y permitiendo el desarrollo de servicios independientes, así como la reutilización de código.
  5. Modelo-Vista-Controlador (MVC): es una muy popular, pero antigua, data desde los años 70s, consiste en la segregación de las preocupaciones (los famosos concerns) en componentes de modelo, vista y controlador. Es común utilizarla en aplicaciones web, mejora la organización y el mantenimiento del código al separar la lógica compleja de la interfaz de usuario. En esta entrada del blog explico más a detalle lo que es el MVC.
  6. Arquitectura maestro-esclavo: maneja un control centralizado (maestro) con múltiples nodos de trabajo (esclavos). De gran utilidad en la informática distribuida, optimizando el procesamiento paralelo y el equilibrio de carga.
  7. Arquitectura dirigida por modelos: surge a inicios del año 2000, es estándar del Object Management Group. Básicamente, consiste en tres capas, en las cuales, especificas todo con modelos, lo que puedes transformar para generar los modelos de la capa independiente de computación (capa 1) a la capa independiente de la plataforma (capa 2) y a su vez de esta obtienes modelos específicos de la plataforma (capa 3), de los cuales obtienes el código fuente. Repito, la idea es no escribir código, casi nada, solo modelar y transformar modelos. Ejemplo en imagen (tomada de Betari 2018).


Recuerda, es importante conocer lo que son, para que, cuando estemos participando en un proyecto tener la idea de cual nos podría ser de utilidad para nuestro desarrollo.

Es cuánto.

Referencias:
  • Betari, Oualid & Filali, Saida & Azzaoui, Amine & Boubnad, Mohamed. (2018). Applying a model driven architecture approach: Transforming CIM to PIM using UML. International Journal of Online Engineering (iJOE). 14. 170. 10.3991/ijoe.v14i09.9137. 
  • Sommerville, I. (2011). Software engineering (ed.). America: Pearson Education Inc.

Si quieres citar este artículo en tu texto, documento, etc. puedes hacerlo de la siguiente forma:

Aguilar-Calderón, J. A. (15 de enero de 2024). Siete patrones arquitectónicos de software que debemos conocer, según los ingenieros de software. ANOVA LAB MX. https://anovalabmx.blogspot.com/2024/01/siete-patrones-arquitectonicos-de.html

Comentarios

Mi foto
José Alfonso Aguilar
Mazatlán, Sinaloa, Mexico
Me gusta aprender y escribir sobre tecnología y desarrollo. Soy Ingeniero en Sistemas Computacionales, trabajo como Profesor-Investigador en la Facultad de Informática Mazatlán, de la Universidad Autónoma de Sinaloa. México. Me gusta combinar la docencia-investigación con el giro profesional del desarrollo de software y gestión de proyectos de innovación.

Entradas más populares de este blog

Historia y versiones de HTML (HyperText Markup Language)

Todo lo que debes saber sobre el Model-View Controller (MVC) para Aplicaciones Web

Conceptos Básicos de la Arquitectura REST (REpresentational State Transfer)