1. Principales estilos arquitectónicos
Ref. Estilo Arquitectónico Descripción
EA1 Cliente/Servidor El estilo cliente/servidor define una relación entre dos aplicaciones en las
cuales una de ellas (cliente) envía peticiones a la otra (servidor fuente de
datos).
EA2 Basado en Componentes El estilo basado en componentes describe un acercamiento al diseño de
sistemas como un conjunto de componentes que exponen interfaces bien
definidas y que colaborar entre sí para resolver un problema.
EA3 En Capas (N-Layer) El estilo arquitectural en capas se basa en una distribución jerárquica de los
roles y las responsabilidades para proporcionar una división efectiva de los
problemas a resolver. Los roles indican el tipo y la forma de la interacción
con otras capas y las responsabilidades la funcionalidad que implementan.
EA4 Presentación Desacoplada El estilo de presentación desacoplada indica cómo debe realizarse el
manejo de las acciones del usuario, la manipulación de la interfaz y los
datos de la aplicación. Este estilo separa los componentes de la interfaz del
flujo de datos y de la manipulación.
EA5 En Niveles (N-Tier) El estilo arquitectural de N-Niveles define la separación de la funcionalidad
en segmentos/niveles físicos separados, similar al estilo en n-capas pero
sitúa cada segmento en una máquina distinta. En este caso hablamos de
niveles físicos (Tiers).
EA6 Orientado al Dominio DDD (Domain Driven Design) no es solo un estilo arquitectónico, es también
una forma de afrontar los proyectos a nivel de trabajo del equipo de
desarrollo, Ciclo de vida del proyecto, identificación del “Lenguaje Ubicuo” a
utilizar con los Expertos en el negocio, etc. Sin embargo, DDD también
identifica una serie de patrones de diseño y estilo de Arquitectura en
concreto. DDD es también, por lo tanto, una aproximación concreta para
diseñar software basándonos sobre todo en la importancia del Dominio del
Negocio, sus elementos y comportamientos y las relaciones entre ellos.
2. EA7 Orientado a Objetos El estilo orientado a objetos es un estilo que define el sistema como un
conjunto de objetos que cooperan entre sí en lugar de como un conjunto de
procedimientos. Los objetos son discretos, independientes y poco
acoplados, se comunican mediante interfaces y permiten enviar y recibir
mensajes.
EA8 Orientación a Servicios El estilo orientado a servicios permite a una aplicación ofrecer su
funcionalidad como un conjunto de servicios para que sean consumidos. Los
servicios usan interfaces estándares que pueden ser invocadas, publicadas
y descubiertas. Se centran en proporcionar un esquema basado en
mensajes con operaciones a nivel de aplicación y no de componente o de
objeto.
EA9 Bus de Servicios El estilo arquitectural bus de mensajes define un sistema software que
puede enviar y recibir mensajes usando uno o más canales de forma que las
aplicaciones pueden interactuar sin conocer detalles específicos la una de la
otra.
Referencias: [18,35,36,38,39,40]
[18] Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal, Pattern Oriented - Software
Architecture. Germany: JOHN WILEY & SONS, 1996.
[35] Paul Clements, Rick Kazman Len Bass, Software Architecture in practice. USA: Addison-Wesley, 2002.
[36] Mary Shaw & David Garlan, Software Architecture: Perspectives on an Emerging Discipline.: Prentice Hall, 1996.
[38] Microsoft. (2010) Guía Arquitectura N-Capas DDD.
[39] Larman Craig, UML y Patrones, Introducción al análisis orientado a objetos.: Prentice Hall.
[40] Ian Sommerville, Ingeniería de Software, 7th ed.: Pearson Addison Wesley, 2005.
Referencias WEB:
Architectural styles (according to CMU’s SEI). http://www.softwareresearch.net/fileadmin/src/docs/teaching/SS05/SE2/02_ArchStyles.pdf
3. An Introduction to Software Architecture. http://sunner.cn/courses/SA/intro_softarch.pdf
Software Architecture: An Executive Overview. http://www.sei.cmu.edu/reports/96tr003.pdf
Autor:
Juan José González Faúndez
Magister en Ingeniería Informática mención Ingeniería de Software
Universidad Andrés Bello, Campus República
Santiago, Chile
Juanjo.gonzalez@uandresbello.edu
jjegonzalezf@gmail.com