Estilos arquitectónicos

De EcuRed
Estilos arquitectónicos

Cada estilo arquitectónico describe una categoría del sistema que contiene: un conjunto de componentes, que realiza una función requerida por el sistema, un conjunto de conectores que posibilitan la comunicación, la coordinación y la cooperación entre los componentes; restricciones que definen como se puede integrar los componentes que forman el sistema; y modelos semánticos que permiten al diseñador entender las propiedades globales de un sistema para analizar las propiedades conocidas de sus partes constituyentes.

Contenido

Utilización de los estilos arquitectónicos

Arquitectura Centrada en Datos

Un almacén de datos se encuentra en el centro de esta arquitectura , otro componente tiene acceso a él y cuentan con la opción de gestionar los datos de ese almacén. El software cliente tiene acceso a un almacén central, en algunos casos este es pasivo, el software cliente accede a los datos independientemente de cualquier cambio hecho en los datos o las acciones de otro software cliente. Una variación de este enfoque transforma el depósito en un pizarrón que envía notificaciones al software cliente cuando cambian datos de interés para el cliente.

Características

Promueve la capacidad de integración, es decir, que es posible cambiar componentes existentes y agregar nuevos componentes a la arquitectura sin preocuparse por otros clientes, además es posible pasar datos entre clientes empleando el mecanismo del pizarrón. Los componentes clientes ejecutan los procesos de manera independiente.

Arquitectura de Flujo de Datos

Es una arquitectura de computadores que contrasta directamente con la tradicional Arquitectura de von Neumann o de estructuras de control.

Características

Las arquitecturas de flujo de datos no se basan en un contador de programa (al menos conceptualmente) en tanto en cuanto la posibilidad de ejecución de las instrucciones solamente viene determinada por la disponibilidad de los argumentos de entrada de las instrucciones.

Ventajas

La ejecución fuera de orden se ha convertido en el paradigma computacional por excelencia desde los años 90. Es una forma de flujo de datos restringido. Este paradigma introdujo la idea de ventana de ejecución, que sigue el orden secuencial de la arquitectura de von Neumann; sin embargo, dentro de la ventana se permite que las instrucciones sean completadas en el orden de las dependencias de datos.

Desventajas

La complejidad lógica de mantener el rastro de las dependencias de datos de forma dinámica restringe a los procesadores basados en ejecución fuera de orden a un reducido número de ejecuciones (de 2 a 6) y limita el tamaño de la ventana de ejecución de 32 a 200 instrucciones, mucho menor que las utilizadas en las máquinas puras de flujo de datos.

Arquitectura de Llamada y retorno

Estilo clásico desde los años 1960. Descomposición jerárquica en subrutinas (componentes) que solucionan una tarea o función definida. Los datos son pasados como parámetros y el manejador principal proporciona un ciclo de control sobre las subrutinas. Reflejan la estructura del lenguaje de programación. Permite al diseñador del software construir una estructura de programa relativamente fácil de modificar y ajustar a escala. Se basan en la bien conocida abstracción de procedimientos/funciones/métodos.

Características

Ventajas

Desventajas

Arquitectura Orientada a Objetos

Los componentes de un sistema encapsulan los datos y las operaciones que se deben realizar para manipular los datos. La comunicación y la coordinación entre componentes se consiguen a través del paso de mensaje. La representación de los datos y sus operaciones primitivas asociadas son encapsuladas en un tipo de dato abstracto u objeto.

Características

Aspectos importantes

Ventajas

Desventajas

Arquitectura Estratificada

Se crean diferentes capas y cada una realiza operaciones que progresivamente se aproximan más al cuadro de instrucciones de la máquina. En la capa externa, los componentes sirven a las operaciones de interfaz de usuario. En la capa interna, los componentes realizan operaciones de interfaz del sistema. Las capas intermedias proporcionan servicios de utilidad y funciones de software de aplicaciones.

Características

Aplicabilidad

Grandes sistemas caracterizados por una mezcla de elementos de alto y bajo nivel, donde los elementos de alto nivel dependen de los de bajo nivel.

Componentes

  1. Niveles bajos: funciones simples ligadas al hardware o al entorno.
  2. Niveles altos: funciones más abstractas.

Mecanismos de interacción entre componentes

Invariantes/restricciones

Aplicación

Ventajas

Desventajas

Fuente