¿Qué es?

Es un enfoque de arquitectura de software que consta de cuatro niveles que pueden describirse de la siguiente manera:

  • El “contexto del sistema” es el nivel superior, que representa todo el sistema.
  • El contexto del sistema comprende varios “contenedores”, que son unidades desplegables como un sitio web, un servicio web, una base de datos, etc.
  • Cada contenedor, a su vez, comprende varios “componentes”, que son los principales bloques estructurales en el código.
  • Finalmente, cada componente comprende varias “clases” (o en una arquitectura funcional, “módulos”) que contienen un conjunto de métodos o funciones de bajo nivel.

Uno de los objetivos de una buena arquitectura es definir los distintos límites entre contenedores, componentes y módulos, de modo que, cuando surjan nuevos requisitos, como inevitablemente ocurrirá, el “costo del cambio” se minimice.