ScholarGate
Asistente

Estilos de arquitectura de software

Los estilos de arquitectura de software son esquemas organizativos con nombre y reutilizables que definen los tipos de componentes y conectores que utiliza un sistema y las restricciones sobre cómo se pueden combinar.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Un estilo arquitectónico es una familia de arquitecturas caracterizada por un vocabulario de tipos de componentes y conectores y un conjunto de restricciones sobre cómo se pueden configurar las instancias de esos tipos.

Scope

Este tema abarca estilos clásicos como el de capas, cliente-servidor, tubería y filtro, repositorio (centrado en datos), basado en eventos y publicación-suscripción, microkernel, y arquitecturas orientadas a servicios y de microservicios; el estilo arquitectónico REST para sistemas en red; y las compensaciones de atributos de calidad que motivan la selección de un estilo sobre otro.

Core questions

  • ¿Qué vocabulario de componentes y conectores define cada estilo?
  • ¿Qué atributos de calidad promueve o inhibe un estilo dado?
  • ¿Cómo se combinan los estilos dentro de un mismo sistema?
  • ¿En qué se diferencian los estilos en red y distribuidos, como REST y los microservicios, de los clásicos?

Key theories

Estilos como vocabularios de componentes-conectores
Shaw y Garlan caracterizaron las arquitecturas mediante patrones recurrentes de componentes y conectores con restricciones asociadas, proporcionando al campo un vocabulario de estilos como tubería y filtro, capas y repositorio.
Estilo arquitectónico REST
Fielding derivó REST como un conjunto de restricciones —ausencia de estado, interfaz uniforme, capacidad de caché, sistema en capas— que explican la escalabilidad y la capacidad de evolución de la web y guían el diseño de servicios basados en la red.

Clinical relevance

Elegir un estilo apropiado en una etapa temprana alinea la estructura del sistema con sus requisitos de calidad dominantes; una mala adecuación entre el estilo y las necesidades es difícil y costosa de corregir una vez que el desarrollo está en marcha.

Evidence & guidelines

ISO/IEC/IEEE 42010 enmarca la descripción de la arquitectura en términos de puntos de vista y vistas, dentro de los cuales se documentan y analizan los estilos.

History

La catalogación de estilos arquitectónicos comenzó con Shaw y Garlan a mediados de la década de 1990, a medida que la arquitectura de software se convertía en una disciplina reconocida; la tesis doctoral de Fielding de 2000 formalizó REST, y la década de 2010 vio el auge de los estilos de microservicios y basados en eventos para sistemas a escala de la nube.

Key figures

  • Mary Shaw
  • David Garlan
  • Roy Fielding
  • Len Bass

Related topics

Seminal works

  • shaw1996
  • fielding2000
  • bass2012

Frequently asked questions

¿Cuál es la diferencia entre un estilo arquitectónico y un patrón de diseño?
Un estilo arquitectónico describe la organización de todo el sistema —los tipos de componentes y conectores y las reglas para combinarlos—, mientras que un patrón de diseño resuelve un problema de diseño más localizado dentro de los componentes; los estilos operan a un nivel de granularidad superior.
¿Puede un sistema utilizar más de un estilo?
Sí. Los sistemas reales suelen ser heterogéneos, combinando estilos —por ejemplo, una arquitectura en capas cuya capa de presentación está basada en eventos y cuyos servicios se comunican a través de REST—, aplicando cada estilo donde sus compensaciones se ajustan mejor.

Methods for this concept

Related concepts