stringtranslate.com

Patrón arquitectónico

Un patrón arquitectónico es una solución general y reutilizable para un problema que ocurre comúnmente en la arquitectura de software dentro de un contexto determinado. [1] Los patrones arquitectónicos abordan diversas cuestiones de la ingeniería de software , como las limitaciones de rendimiento del hardware informático , la alta disponibilidad y la minimización de un riesgo empresarial . Algunos patrones arquitectónicos se han implementado dentro de los marcos de software . Hay dos categorías principales de patrones arquitectónicos: monolíticos y distribuidos . [2]

El uso de la palabra "patrón" en la industria del software estuvo influenciado por conceptos similares expresados ​​en la arquitectura tradicional , como A Pattern Language (1977) de Christopher Alexander , que analizó la práctica en términos de establecer un léxico de patrones , lo que impulsó a los profesionales de la informática a contemplar su propio léxico de diseño.

El uso de esta metáfora dentro de la profesión de ingeniería de software se volvió común después de la publicación de Design Patterns (1994) de Erich Gamma , Richard Helm , Ralph Johnson y John Vlissides —ahora comúnmente conocidos como la "Banda de los Cuatro"—, coincidiendo con los primeros años de la Internet pública , marcando el inicio de sistemas de software complejos que "se devoraban el mundo" [3] y la correspondiente necesidad de codificar el mundo en rápida expansión del desarrollo de software en el nivel más profundo posible, sin dejar de ser flexible y adaptable.

Los patrones arquitectónicos son similares a los patrones de diseño de software pero tienen un alcance más amplio.

Definición

Aunque un patrón arquitectónico transmite una imagen de un sistema, no es una arquitectura. Un patrón arquitectónico es un concepto que resuelve y delinea algunos elementos cohesivos esenciales de una arquitectura de software. Innumerables arquitecturas diferentes pueden implementar el mismo patrón y compartir las características relacionadas. Los patrones suelen definirse como "estrictamente descritos y comúnmente disponibles". [4] [5]

Estilo arquitectónico

Siguiendo la arquitectura de construcción tradicional, un estilo arquitectónico de software es un método específico de construcción, caracterizado por las características que lo hacen notable.

Un estilo arquitectónico define: una familia de sistemas en términos de un patrón de organización estructural; un vocabulario de componentes y conectores, con restricciones sobre cómo pueden combinarse. [6]

Un estilo arquitectónico es una colección de decisiones de diseño arquitectónico que (1) son aplicables en un contexto de desarrollo determinado, (2) restringen las decisiones de diseño arquitectónico que son específicas de un sistema particular dentro de ese contexto y (3) generan cualidades beneficiosas en cada sistema resultante. [1]

Algunos tratan los patrones arquitectónicos y los estilos arquitectónicos como si fueran lo mismo, [7] otros tratan los estilos como especializaciones de los patrones. Lo que tienen en común es que tanto los patrones como los estilos son expresiones idiomáticas que utilizan los arquitectos, "ofrecen un lenguaje común" [7] o "vocabulario" [6] con el que describir clases de sistemas.

La principal diferencia es que un patrón puede verse como una solución a un problema, mientras que un estilo es más general y no requiere de un problema a resolver para su aparición.

Análisis

El software se gestiona en función de su espacio de problemas en el que se pueden aplicar soluciones. La siguiente tabla muestra cómo se considera el software en varios espacios de problemas, definidos por un subdominio y abordados con los patrones de diseño de software y patrones de solución correspondientes . Los subdominios se pueden incorporar al análisis de otros subdominios; por ejemplo, la solución de un problema de inteligencia artificial se aborda primero como un problema de arquitectura de datos.

Ejemplos

Algunos ejemplos de patrones arquitectónicos:

Véase también

Referencias

  1. ^ ab Taylor, RN; Medvidović, N.; Dashofy, EM (2009). Arquitectura de software: fundamentos, teoría y práctica. Wiley. ISBN 9780470167748.
  2. ^ abcde Fundamentos de la arquitectura de software: un enfoque de ingeniería . O'Reilly Media. 2020. ISBN 978-1492043454.
  3. ^ Andreessen, Marc (20 de agosto de 2011). "Why Software Is Eating The World" (Por qué el software se está comiendo al mundo). The Wall Street Journal . Consultado el 25 de abril de 2020 .
  4. ^ Chang, Chih-Hung; Lu, Chih-Wei; Lin, Chih-Hao; Yang, Ming-Feng; Tsai, Ching-Fu (junio de 2008). "Una experiencia de aplicación de un marco de software basado en patrones para mejorar la calidad del desarrollo de software: 4. El diseño y la implementación de OS2F". Journal of Software Engineering Studies, vol. 2, n.º 6. Tercera Conferencia de Taiwán sobre Ingeniería de Software (TCSE07). págs. 185–194. Archivado desde el original el 22 de septiembre de 2011. Consultado el 16 de mayo de 2012. Además , los patrones suelen definirse como algo "estrictamente descrito y comúnmente disponible". Por ejemplo, la arquitectura en capas es un estilo de llamada y retorno, cuando define un estilo general para interactuar.
  5. ^ "Patrones arquitectónicos: definición". AAHN INFOTECH (INDIA) PVT. LTD. Archivado desde el original el 23 de junio de 2012. Consultado el 16 de mayo de 2012. Aunque un patrón arquitectónico transmite una imagen de un sistema, no es una arquitectura como tal. Un patrón arquitectónico es más bien un concepto que resuelve y delinea algunos elementos cohesivos esenciales de una arquitectura de software. Innumerables arquitecturas diferentes pueden implementar el mismo patrón y, por lo tanto, compartir las características relacionadas. Además, los patrones a menudo se definen como algo "estrictamente descrito y comúnmente disponible".
  6. ^ ab Shaw, M.; Garlan, D. (1996). Arquitectura de software: perspectivas sobre una disciplina emergente . Prentice Hall. ISBN 9780131829572.
  7. ^ ab "Cap. 3: Patrones y estilos arquitectónicos". Guía de arquitectura de aplicaciones de Microsoft (2.ª edición). Microsoft Press. Octubre de 2009. ISBN 9780735627109.

Bibliografía