Diseo de sistemas Arquitectura 8oftware. Qu se entiende por diseo arquitectnico? Comprende el establecimiento de un marco de trabaio estructural basico para un sistema. Alude a la estructura general del soItware y el modo en que la estructura oIrece una integridad conceptual al sistema. De modo simple. se puede considerar que esta compuesta por la estructura ierarquica de los componentes (modulos). la manera en la que dichos componentes interactuan y la estructura de datos que es utilizada por dichos componentes. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Diseo de sistemas Arquitectura 8oftware. Propiedades que deben especificarse como partes de un diseo arquitectural: Propiedades estructurales.- deIine los componentes de un sistema y la manera en la que dichos componentes se agrupan en paquetes e interaccionan entre ellos. Propiedades extra-funcionales.- debe indicar como el diseo arquitectonico alcanza los requisitos no Iuncionales como: rendimiento. capacidad. Iiabilidad. seguridad. adaptabilidad. etc. Familias de sistemas relacionados.- debe permitir reconocer su estructura en los patrones repetitivos que se encuentran de manera habitual en el diseo de sistemas similares. Debe ser capaz de reutilizar bloques de construccion arquitecturales. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Diseo de sistemas Arquitectura 8oftware. Un diseo arquitectural debe describirse utilizando diferentes tipos de modelos: Modelos estructurales.- representan la arquitectura como una coleccion organizada de componentes. Modelos Frameworks.- identiIican patrones de diseo arquitectonico repetibles que se encuentran en aplicaciones similares. Modelos dinmicos.- muestran los aspectos del comportamiento dinamico de la arquitectura. indicando como la estructura o la conIiguracion del sistema pueden cambiar en Iuncion de eventos externos. Modelos de procesos.- se enIocan en el diseo de los proceso del negocio que el sistema debe soportar. Modelos funcionales.- pueden utilizarse para representar la ierarquia Iuncional de un sistema. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Diseo de sistemas Arquitectura 8oftware. Por qu es importante su definicin? Facilita la comunicacion entre los diIerentes participantes en el desarrollo . Resalta las decisiones de diseo que pueden tener un gran impacto en todo el proceso de desarrollo posterior. Aporta una vision de como se estructura el sistema y como sus componentes trabaian iuntos. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Diseo de sistemas Arquitectura 8oftware. Estilos arquitectnicos Modelos de descomposicin de sistemas. Modelo de almacn central. Cliente/servidor. Modelos de mquinas abstractas. Modelos de control. Centralizado. Modelo de eventos. Modelos de descomposicin modular. Modelo de flujo de datos. Modelo orientado a objetos. Modelos de dominio especfico. Sommerville 2001 !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Diseo de sistemas Arquitectura 8oftware. Estilos arquitectnicos Arquitectura centrada en los datos. Arquitectura centrada en los flujos de datos. Arquitectura llamada y respuesta (call and return). Arquitectura orientada a objetos. Arquitectura en capas. Pressman 2001 Un problema puede satisIacerse mediante diIerentes estructuras a las que se llegaran posiblemente utilizando tecnicas distintas. A veces la Irontera entre dos estilos no esta muy clara. lo que provoca que haya mezclas entre ellos. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Arquitectura centrada en los datos.- Como parte central de esta arquitectura aparece un almacen de datos. el cual es accedido de manera Irecuente por otros componentes que actualizan. aaden. borran o modiIican dichos almacenes El soItware cliente accede a un repositorio central. Repositorio pasivo.- el cliente soItware accede a los datos independientemente de cualquier cambio en los datos o a las acciones de otros clientes soItware. Repositorio activo (pizarra).- el repositorio envia inIormacion a los clientes cuando los datos de su interes cambian. siendo por tanto un ente activo. Diseo de sistemas Arquitectura 8oftware. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Arquitectura centradas en datos proporcionan integridad. es decir. los componentes existentes pueden cambiar y pueden aadirse nuevos componentes a la arquitectura sin que aIecte a otros clientes. A su vez los datos pueden ser pasados entre clientes a traves de mecanismos que coordinen dicha transIerencia de inIormacion. Diseo de sistemas Arquitectura 8oftware. Componentes cliente eiecutan procesos independientemente. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Arquitectura centrada en los flujos de datos.- Se basa en el patron 'pipe and Iilter (tuberias y Iiltros). Este consta de un coniunto de componentes denominados 'Iiltros conectados entre si por 'tuberias que transmiten datos desde un componente al siguiente. Cada Iiltro trabaia de manera independiente de los componentes que se encuentran situados antes o despues de ella. Se disean de tal modo que esperan un coniunto de datos en un determinado Iormato y obtiene como resultado otros datos de salida en un Iormato especiIico. Si el Iluio degenera en una unica linea de transIormacion. se denomina secuencial batch. Diseo de sistemas Arquitectura 8oftware. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Arquitectura centrada en los flujos de datos.- Diseo de sistemas Arquitectura 8oftware. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Arquitectura llamada y respuesta (call and return).- Permite a los diseadores soItware conseguir estructuras de programas relativamente Iaciles de modiIicar y escalar. Podemos encontrar diIerentes estilos dentro de este tipo: Programa principal/subprograma.- Descompone las Iunciones en una ierarquia de control donde el programa principal invoca a los otros programas subordinados. los cuales pueden a su vez invocar otros. Llamada de procedimiento remoto.- Los componentes de la arquitectura son distribuidos entre diIerentes ordenadores de la red. Diseo de sistemas Arquitectura 8oftware. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Arquitectura llamada y respuesta (call and return).- Diseo de sistemas Arquitectura 8oftware. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Arquitectura orientada a objetos.- Los componentes del sistema encapsulan datos y operaciones que deben utilizarse para manipular dichos datos. La comunicacion y coordinacion entre componentes se realiza mediante envio de mensaies. En esencia es un sistema parecido al anterior. donde se enIatiza el empaquetamiento entre datos y operaciones que permiten manipular y acceder a dichos datos. Diseo de sistemas Arquitectura 8oftware. !ngenieria del Software !, curso 2001-2002 (EPSA UCLN) Diseo de sistemas Arquitectura 8oftware. Arquitectura en capas.- Se deIinen un coniunto de niveles o capas. cada nivel interno que se atraviesa se aproxima mas al nivel del coniunto de instrucciones maquina. Sistemas en capas puros.- cada capa solo puede comunicarse con la vecinas. Esta solucion aunque puede ser menos eIiciente en algunos casos. Iacilita la portabilidad de los diseos