Arquitectura de flujo de datos: Esta arquitectura se aplica cuando los datos de entrada se habrán
de transformar en datos de salida mediante una serie de componentes para el cálculo o la
manipulación. Se representa mediante una estructura de tuberías y filtros, en la que los
componentes se denominan filtros que están conectados por tuberías que transmiten datos de un
componente al siguiente. Cada filtro funciona sin tomar en cuenta el flujo de los componentes
(ascendente o descendente), está diseñado para esperar la entrada de datos con cierta forma y
producir su salida de una manera específica. No es necesario que un filtro conozca el
funcionamiento de los filtros vecinos.
Arquitectura de flujo de datos
Tuberías y Filtros
Arquitectura de llamada de retorno: Este estilo permite que un diseñador de software obtenga una
estructura de programa relativamente fácil de modificar. Existen dos sub-estilos:
Arquitectura de programa principal/subprograma: esta estructura clásica separa la función
en una jerarquía de control donde un programa “principal” invoca a varios componentes de
programa, que a su vez pueden invocar a otros componentes.
Arquitectura de llamada de procedimiento remoto: los componentes de una arquitectura de
programa principal/subprograma se distribuyen entre varias computadoras de una red.
Arquitectura de programa principal/subprograma
Arquitectura orientada a objetos: Los componentes de un sistema encapsulan los datos y las
operaciones que deben aplicarse para manipular los datos. La comunicación y coordinación entre
componentes se consigue mediante el paso de mensajes.
Arquitectura estratificada: Aquí se definen varias capas, cada una de ellas realiza operaciones que
se acercan progresivamente al conjunto 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
sirven como interfaz con el sistema operativo. Las capas intermedias proporcionan servicios de
utilería y de software de aplicaciones.
Arquitectura estratificada
Estos estilos arquitectónicos son algunos de los que se dispone para diseñar el software. El estilo
arquitectónico o la combinación de estilos se eligen dependiendo de las características y
restricciones del sistema que se habrá de construir. En muchos casos será apropiado más de un
estilo. Por ejemplo en muchas aplicaciones de base de datos se combina un estilo por capas
(apropiado para casi todos los sistemas) con una arquitectura centrada en datos.