0% encontró este documento útil (0 votos)
113 vistas6 páginas

Estilos Arquitectonicos Santiago Maldonado

El documento describe varios estilos arquitectónicos de software, incluyendo arquitectura centrada en datos, arquitectura de flujo de datos, arquitectura de llamada y retorno, arquitectura orientada a objetos y arquitectura estratificada. Cada estilo describe los componentes, conectores y restricciones que definen la estructura global del sistema. Los estilos sirven para sintetizar soluciones y evaluar arquitecturas alternativas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
113 vistas6 páginas

Estilos Arquitectonicos Santiago Maldonado

El documento describe varios estilos arquitectónicos de software, incluyendo arquitectura centrada en datos, arquitectura de flujo de datos, arquitectura de llamada y retorno, arquitectura orientada a objetos y arquitectura estratificada. Cada estilo describe los componentes, conectores y restricciones que definen la estructura global del sistema. Los estilos sirven para sintetizar soluciones y evaluar arquitecturas alternativas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

República Bolivariana de Venezuela

Ministerio del Poder Popular Para la Educación


UNEFA Núcleo Táchira

Estilos arquitectónicos

Integrante:
Santiago Maldonado
Ci: V-29699795
ING De Sistemas Semestre VII

San Cristóbal, mayo del 2021


En los inicios de la informática, la programación se consideraba un arte y se
desarrollaba como tal debido a la dificultad que entrañaba para la mayoría de las
personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guías
generales, con base a las cuales se puedan resolver los problemas. A estas, se les ha
denominado arquitectura de software, porque, a semejanza de los planos de un edificio
o construcción, estas indican la estructura, funcionamiento e interacción entre las
partes del software. En el libro "An introduction to Software Architecture", David Garlan
y Mary Shaw definen que la arquitectura es un nivel de diseño que hace foco en
aspectos "más allá de los algoritmos y estructuras de datos de la computación; el
diseño y especificación de la estructura global del sistema es un nuevo tipo de
problema".
La arquitectura del software comprende varios tipos de 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. Estos estilos sirven para sintetizar
estructuras de soluciones, pocos estilos abstractos encapsulan una enorme variedad
de configuraciones concretas, permiten definir los patrones posibles de las aplicaciones
yevaluar arquitecturas alternativas con ventajas y desventajas conocidas ante
diferentes conjuntos de requerimientos no funcionales. Dentro de los estilos
arquitectónicos de software se encuentran:

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. 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, este se basa en la conocida abstracción de procedimientos, funciones
y métodos.
Características
- Hilo de control simple soportado por los lenguajes de programación.

- Usa una estructura implícita de subsistemas.

- Razonamiento jerárquico, cambios en una subrutina implican cambios en las


subrutinas que hacen la invocación.

- Pretenden incrementar el desempeño distribuyendo el trabajo en múltiples


procesadores.
Ventajas
- Utilizados en grandes sistemas de software.

- La descomposición en módulos disminuye la complejidad.

- Persiguen escalabilidad y modificabilidad.

Desventajas
- Dependencia y acoplamiento entre módulos.

- La reutilización y el mantenimiento son difíciles

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. En este estilo los componentes son los objetos, o instancias de tipos
de datos abstractos. Estos objetos son de un tipo de componente denominado
manager porque es responsable por preservar la integridad de un recurso. Los objetos
interactúan a través de invocaciones a procedimientos y funciones.

Aspectos importantes
- Un objeto es responsable de preservar la integridad de su representación
(usualmente manteniendo algún invariante).

- La representación se oculta a otros objetos.

Ventajas
Como un objeto oculta su representación a sus clientes, es posible cambiar su
implementación sin modificar los clientes: modificabilidad.
La integración de un conjunto de rutinas de acceso con los datos que manipulan
permite a los diseñadores descomponer los problemas en colecciones de agentes que
interactúan.

Desventajas
Para que un objeto interactúe con otro (mediante la invocación a un
procedimiento) debe conocer la identidad del otro objeto. Luego, cuando la identidad de
un objeto cambie es necesario modificar todas las invocaciones a tal objeto.
Se pueden presentar efectos laterales: si los objetos A y C usan al objeto B,
entonces los efectos de C en B lucen como efectos laterales no esperados en A, y
viceversa.

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
- Organización jerárquica, cada capa proporciona servicios a la capa superior y
actúa como cliente de la capa inferior.

- Los componentes se organizan en capas.

- Los conectores son definidos por los protocolos que determinan como
interactúan las capas.

- Restricciones topológicas incluyen limitar las interacciones a capas adyacentes.

- 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
- Grupos de subtareas que implementan una "máquina virtual" en alguna capa en
la jerarquía.

- Pueden implementarse como objetos o como procedimientos.

- Cada nivel tiene asociada una funcionalidad:


- Niveles bajos: funciones simples ligadas al hardware o al entorno.

- Niveles altos: funciones más abstractas.

Mecanismos de interacción entre componentes


- Llamadas a procedimientos.
- Llamadas a métodos.
Invariantes/restricciones
- Únicamente llamadas de niveles superiores e inferiores.
- Únicamente llamadas entre niveles adyacentes.
Aplicación
- Pilas de protocolos de comunicación.
- Sistemas operativos.
- Compiladores.
- Máquinas virtuales.
Ventajas
Facilita la migración: El acoplamiento con el entorno está localizado en las capas
inferiores. Estas son las únicas a reimplementar en caso de transporte a un entorno
diferente.
Reutilización: como cada nivel implementa unas interfaces claras y lógicas pueden
intercambiarse.
Mantenimiento: los cambios en una capa apenas afectan a la superior e inferior.
Permite trabajar en varios niveles de abstracción. Para implementar los niveles
superiores no se requiere conocer el entorno subyacente, basta con las interfaces que
proporcionan los niveles inferiores.

Desventajas
- No todos los sistemas se pueden estructurar fácilmente como capas.
- Rendimiento: la comunicación a través de las diferentes capas, puede hacer
ineficiente al sistema.

También podría gustarte