stringtranslate.com

patrón arquitectónico

Un patrón arquitectónico es una resolución general y reutilizable de un problema que ocurre comúnmente en la arquitectura de software dentro de un contexto determinado. [1] Los patrones arquitectónicos abordan diversas cuestiones en 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 marcos de software .

El uso de la palabra "patrón" en la industria del software estuvo influenciado por conceptos similares a los expresados ​​en la arquitectura tradicional , como A Pattern Language (1977) de Christopher Alexander, que discutió la práctica en términos de establecer un léxico de patrones , incitando a los profesionales. de la informática para 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) por Erich Gamma , Richard Helm , Ralph Johnson y John Vlissides (ahora comúnmente conocida como la "Banda de los Cuatro"), coincidiendo con los primeros años. de la Internet pública , lo que marca el inicio de sistemas de software complejos que "se comen el mundo" [2] y la correspondiente necesidad de codificar el mundo en rápida expansión del desarrollo de software al 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 la imagen de un sistema, no es una arquitectura. Un patrón arquitectónico es un concepto que resuelve y delimita 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 a menudo se definen como "estrictamente descritos y comúnmente disponibles". [3] [4]

Estilo arquitectónico

Siguiendo la arquitectura de construcción tradicional, un estilo arquitectónico software es un método de construcción específico, 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 se pueden combinar. [5]

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

Algunos tratan los patrones arquitectónicos y los estilos arquitectónicos como lo mismo, [6] algunos tratan los estilos como especializaciones de patrones. Lo que tienen en común es que tanto los patrones como los estilos son modismos que pueden utilizar los arquitectos, "proporcionan un lenguaje común" [6] o "vocabulario" [5] 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 un problema que resolver para su apariencia.

Análisis

El software se gestiona por 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 correspondientes patrones de diseño de software y patrones de solución . Los subdominios se pueden incorporar al análisis de otros subdominios, por ejemplo, la resolución de un problema de Inteligencia Artificial se aborda primero como un problema de Arquitectura de Datos.

Ejemplos

Algunos ejemplos de patrones arquitectónicos:

Ver también

Referencias

  1. ^ ab Taylor, enfermera registrada; Medvidović, N.; Dashofy, EM (2009). Arquitectura de software: fundamentos, teoría y práctica. Wiley. ISBN 9780470167748.
  2. ^ Andreessen, Marc (20 de agosto de 2011). "Por qué el software se está comiendo el mundo". El periodico de Wall Street . Consultado el 25 de abril de 2020 .
  3. ^ Chang, Chih-Hung; Lu, Chih-Wei; Lin, Chih-Hao; Yang, Ming-Feng; Tsai, Ching-Fu (junio de 2008). "Una experiencia en la 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". Revista de estudios de ingeniería de software, vol. 2, núm. 6 . la 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 a menudo se definen como algo "estrictamente descrito y comúnmente disponible". Por ejemplo, la arquitectura en capas es un estilo de llamada y devolución, cuando define un estilo general para interactuar.
  4. ^ "Patrones arquitectónicos: definición". AAHN INFOTECH (INDIA) PVT. LIMITADO. Archivado desde el original el 23 de junio de 2012 . Consultado el 16 de mayo de 2012 . Aunque un patrón arquitectónico transmite la 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".
  5. ^ ab Shaw, M.; Garlan, D. (1996). Arquitectura de software: perspectivas sobre una disciplina emergente . Prentice Hall. ISBN 9780131829572.
  6. ^ ab "Capítulo 3: Patrones y estilos arquitectónicos". Guía de arquitectura de aplicaciones de Microsoft (2ª ed.). Prensa de Microsoft. Octubre de 2009. ISBN 9780735627109.

Bibliografía