Upload
antonio-acosta-murillo
View
159
Download
10
Embed Size (px)
Citation preview
Introducción a la Arquitectura de
Software
ARSO
¿Qué es la arquitectura de software?
De acuerdo a Bass, Clements y Kazman (2003) la
arquitectura de software de un programa o sistema de
cómputo es la estructura o estructuras del sistema, lo
que comprende a los componentes del software, sus
propiedades externas visibles y las relaciones entre ellos.
¿Qué es la
arquitectura de
software?
Es la estructura de los
datos y de los componentes
del programa que se
requiere para construir un
sistema basado en
computadora (Pressman, R.
2010).
Cita:
«La arquitectura de un
sistema es un marco
general que describe su
forma y estructura: sus
componentes y la manera
en la que ajustan entre sí».
Jerrold Grochow
¿Por qué es importante la arquitectura de
software?
En un libro dedicado a la arquitectura de software, Bass et al. Identifican tres razones claves:
Las representaciones de la arquitectura de software permiten la comunicación entre todas las partes interesadas en el desarrollo de un sistema.
Resalta las principales decisiones que tendrán un efecto profundo en toda el trabajo de la ingeniería de software.
La arquitectura constituye un modelo relativamente pequeño y asequible por la vía intelectual sobre cómo está estructurado el sistema y la forma en la que sus componentes trabajan juntos.
Estilos arquitectónicos
Un estilo arquitectónico es una transformación que se
impone al diseño de todo el sistema.
El objetivo es establecer una estructura para todos los
componentes del sistema.
Breve taxonomía de estilos de arquitectura
La gran mayoría se clasifica en un número relativamente
pequeño de estilos de arquitectura:
Arquitectura centradas en los datos
Arquitectura de flujos de datos
Arquitectura de llamar y regresar
Arquitectura orientada a objetos
Arquitectura en capas
Arquitectura centradas en los datos
En el centro de esta arquitectura se halla una almacenamiento de datos al que
acceden con frecuencia otros componentes que actualizan, agregan, eliminan, o
modifican de cierto modo dentro del almacenamiento
Arquitectura de flujos de datos
Esta arquitectura se aplica cuando datos de entrada van a
transformarse en datos de salida a través de una serie de
componentes computacionales o manipuladores.
Tubo y filtro
Un patrón tubo y filtro, tiene un conjunto de componentes,
llamados filtros, conectados por tubos que transmiten datos de
un componente al siguiente.
Arquitectura de llamar y regresar
Este estilo arquitectónico permite obtener una estructura
de programa que es relativamente fácil de modificar y
escalar. Dentro de esta arquitectura existen varios
subestilos (Bass at al. 2003):
Arquitectura de programa principal/subprograma
Arquitectura de llamada de procedimiento remoto
Arquitectura de programa
principal/subprograma
Esta estructura clásica de programa descompone una
función en una jerarquía de control en la que un
programa «principal» invoca cierto número de
componentes de programa que a su vez invoca a otros.
Arquitectura de llamada de procedimiento
remoto
Los componentes de una arquitectura de programa
principal/subprograma están distribuidos a través de
computadoras múltiples en una red.
Arquitectura orientadas a objetos
Los componentes de un sistema incluyen datos y las
operaciones que deben aplicarse para manipularlos. La
comunicación y coordinación entre los componentes se
consiguen mediante la transmisión de mensajes.
Arquitecturas en capa
Se define un número de capas diferentes; cada una ejecuta
operaciones que se aproximan progresivamente al
conjunto de instrucciones de máquina.
Arquitecturas en capa
Ventajas y desventajas de los estilos
arquitectónicos
Bibliografía
1. Bass, L., P. Clements y R. Kazman, Software Architecture
in Practice, 2ª. Ed., Addison-Wesley, 2003.
2. Pressman Roger S. Ingeniería del Software, un enfoque
práctico, 7/E. Mc Graw Hill. 2010.
3. Fairbanks G., y Garlan D., Just Enough Software
Architecture: A Risk-Driven Approach, 1ª. Ed., Marshall
& Brainerd, 2010.
¡Gracias!
Antonio Acosta Murillo