Vous êtes sur la page 1sur 30

Arquitecturas de Software

Ingeniera del Software I Universidad Rey Juan Carlos

Csar Javier Acua cjacunia@escet.urjc.es

ARQUITECTURAS SOFTWARE ndice


Introduccin
Motivacin Definicin

Estilos Arquitectnicos
Pipes and Filters Tipos abstractos de datos y OO Invocacin Implcita Basada en Eventos Sistemas en Capas Sistemas basados en depsitos Mquina Virtual o Interprete
2 Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Introduccin


Motivacin
Incremento en el tamao y complejidad del software Necesidad de aprender de la experiencia: reutilizacin de estructuras asociadas a problemas similares Una adecuada estructura general es tan importante como las implementaciones concretas de las partes.

Definicin
La arquitectura de software de un programa o de un sistema computacional esta definida por la estructura, comprendida por los elementos de software, la propiedades visibles de esos elementos y las relaciones entre ellos.
3 Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Introduccin


Incluyendo:
la descripcin de los componentes con los cuales se construyen los sistemas las interacciones entre esos componentes patrones para guiar la composicin restricciones sobre dichos patrones

Componentes: servidores, clientes, bases de datos, filtros, capas en un sistema jerrquico, etc. Interacciones: llamadas a procedimientos, protocolos C/S, protocolos de acceso a BD, etc.

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Introduccin


De qu se ocupa?
Diseo preliminar o de alto nivel. Organizacin a alto nivel del sistema, incluyendo aspectos como la descripcin y anlisis de propiedades relativas a su estructura y control global, los protocolos de comunicacin y sincronizacin utilizados, la distribucin fsica del sistema y sus componentes, etc. Otros aspectos relacionados con el desarrollo del sistema y su evolucin y adaptacin al cambio:
composicin, reconfiguracin, reutilizacin, escalabilidad, mantenibilidad, etc.

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Introduccin


De qu no se ocupa?
Diseo detallado. Diseo de algoritmos. Diseo de estructuras de datos.

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Indican:
Los tipos de componentes y conectores involucrados. Patrones y restricciones de interconexin o composicin entre ellos: Invariantes del estilo (restricciones)

Asociados a cada estilo hay una serie de propiedades que lo caracterizan, determinando sus ventajas e inconvenientes, condicionando la eleccin de uno u otro estilo.

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Clasificacin General de los Estilos
Sistemas Basados en Flujos de Datos
Pipes and filters (tuberas y filtros) Batch Sequential

Mquinas Virtuales
Interpretes Sistemas basados en el conocimiento

Sistemas Call/Return
Sistemas Principal/subrutinas Sistemas OO Capas jerrquicas

Sistemas Centrados en Datos (repositorios)


Bases de Datos Sistemas de HiperTexto Sistemas de pizarra

Componentes Independientes
Procesos de comunicacin Sistemas de Acontecimientos
8 Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Pipes and Filters (tuberas y filtros)
Filters

Pipes

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Pipes and Filters (tuberas y filtros)
Descripcin
Cada componente tiene un conjunto de entradas y un conjunto de salidas. Cada componente lee las entradas y las transforma en salidas. Restricciones:
Los filtros deben ser independientes. No deben compartir estado con otros filtros. Los filtros realizan la labor independientemente del flujo de entrada.

Especializaciones
Pipelines Bounded pipes Typed pipes

10

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Pipes and Filters (tuberas y filtros)
Ventajas
Permite entender el sistema global en trminos de la combinacin de componentes Soporta de buena manera la reutilizacin. Los filtros son idependientes de sus vecinos Facilidad de Mantenimiento y mejora Facilidad de diagnstico (rendimiento, deadlocks) Soportan la ejecucin concurrente

Desventajas
No aconsejado para cuando se necesita interactividad Problemas de performance ya que los datos se transmiten en forma completa entre filtros Universidad Rey Juan Carlos - Ingenieria del
Software I

11

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Tipos Abstractos de Datos y OO

Obj: objetos Op:invocaciones a mtodos

12

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Tipos Abstractos de Datos y OO
Descripcin
Las representaciones de los datos y las operaciones estn encapsulados en un tipo abstracto de datos u objeto Los componentes son objetos Las invocaciones de mtodos son los conectores Restricciones:
Los objetos son responsables de la integridad de sus representaciones Dicha representacin es ocultada al resto de los objetos

Ventajas
Gracias al invariante de ocultacin es posible reemplazar la Implementacin si que afecte a los clientes
13 Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Tipos Abstractos de Datos y OO
Desventajas
Para invocar mtodos de un objeto se debe conocer su identidad Efectos colaterales

14

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Invocacin Implcita Basada en Eventos
? ! ? ! ! ! ! ! ? ! ?

Objetos o Procesos
15

Invocacin Implcita

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Invocacin Implcita Basada en Eventos
Descripcin
En lugar de invocaciones de procedimientos explicitas o directas, un componente anuncia uno o ms eventos y otros componentes registran el inters en un evento asociando un procedimiento a dicho evento. La ocurrencia de un evento causa la invocacin implicita de procedimientos en otros mdulos. Los componentes son los mdulos cuyas interfaces ofrecen un conjunto de procedimientos y de eventos Los conectores incluyen llamadas a procedimientos ? ? ! tradicionales as como el ligado de eventos ! ? con llamadas a procedimientos !
!
16 Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Invocacin Implcita Basada en Eventos
Restricciones:
Quien anuncia el evento no conoce a que componentes afecta el evento No se pueden hacer asunciones acerca del orden de procesamiento

Ventajas
Provee un robusto soporte de reusabilidad Facilita la evolucin del sistema Desventajas Perdida de control en el comportamiento del sistema ! Problemas en el intercambio de datos ! ? Es difcil asegurar la correccin global del ! sistema
17 Universidad Rey Juan Carlos - Ingenieria del Software I

! ?

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Sistemas en Capas

Aplicaciones Utilidad bsica Nivel Ncleo

Llamadas a Procedimientos

Usuarios

18

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Sistemas en Capas
Descripcin
Organizado jerrquicamente en capas, donde cada capa provee servicios a la capa superior y es servido por la capa inferior Los componentes son cada una de las capas Los conectores son los protocolos de interaccin entre las capas Restricciones:
La interaccin est limitada a las capas adyacentes
Aplicaciones

Ventajas
Facilita la descomposicin del problema en varios niveles de abstraccin.
19 Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Sistemas en Capas
Soporta la mejora, los cambios solo afectan a las capas vecinas Se pueden cambiar las implementaciones respetando las interfaces con las capas adyacentes.

Desventajas
No todos los sistemas pueden estructurarse en capas. Es difcil encontrar la separacin en capas adecuada
Aplicaciones

20

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Sistemas basados en depsitos
ks1 ks2 Procesamiento

ks8

ks3

Pizarra (datos Compartidos)


ks7 ks4

Memoria Accesos Directos


21

ks6

ks5

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Sistemas basados en depsitos
Descripcin
Existen dos tipos de componentes
Una estructura central de datos (representa el estado del proceso) Componentes independientes (operan en funcin del depsito de datos)

Las interacciones entre el repositorio y los dems componentes es variable:


La entrada de los datos es seleccionada por los componentes ks2 El estado de los datos del repositorio selecciona ks1 el proceso a ejecutar (pizarra)
ks8 ks7
22 Universidad Rey Juan Carlos - Ingenieria del Software I
Pizarra (datos Compartidos)

ks3 ks4

ks6

ks5

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Sistemas basados en depsitos
Ventajas
Posibilita la integracin de agentes. Adecuado para la resolucin de problemas no deterministas. Se puede resumir el estado de conocimiento en cada momento del proceso

Desventajas
Estructura de datos comn a todos los agentes Problemas de carga a la hora de chequear y vigilar el estado ks2 de la pizarra. ks1
ks8 ks7
23 Universidad Rey Juan Carlos - Ingenieria del Software I
Pizarra (datos Compartidos)

ks3 ks4 ks6 ks5

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Mquina virtual o intrprete

Entradas

Datos (Estado del programa)

Programa siendo interpretado

Salidas

Mquina de Interpretacin simulada

Instruccin seleccionada Datos seleccionados

Estado Interno Del Interprete

24

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Mquina virtual o intrprete
Descripcin
Formado por cuatro componentes
Un motor de simulacin o interpretacin Una memoria que contiene el cdigo a interpretar Una representacin del estado de la interpretacin Una representacin del estado del programa que se esta simulando

Ventajas
Solucin software a problemas hardware.

Desventajas
No siempre es aplicable Reducido a lenguajes de programacin
25 Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE Estilos Arquitectnicos


Otros Estilos
Procesos distribuidos
Sistemas cliente/servidor Sistemas en 3 capas

Programa Principal/Subrutinas
Tpica de lenguajes procedurales Un programa principal gestiona el control de ejecucin de las subrutinas

Transicin de Estados Arquitecturas Heterogneas


Se da por la mezcla de estilos Existen diferentes maneras de combinar
26 Universidad Rey Juan Carlos - Ingenieria del Software I

Lenguajes de Descripcin de Arquitecturas (LDAs) Un LDA es un lenguaje o notacin para describir una arquitectura software:
Descripcin de componentes, conectores y enlaces entre ellos. Herramientas para la verificacin de la arquitectura y el prototipado rpido.

ARQUITECTURAS SOFTWARE

Existen LDAs de propsito general y otros de dominio especfico (DSLs) Requisitos


Composicin
Debe describir el sistema como una composicin de partes
27 Universidad Rey Juan Carlos - Ingenieria del Software I

Lenguajes de Descripcin de Arquitecturas (LDAs)


Configuracin
Debe describir la arquitectura independientemente de los componentes

ARQUITECTURAS SOFTWARE

Abstraccin
Debe describir los roles abstractos que juegan los componentes

Reutilizacin
Debe permitir reutilizar componentes, conectores, y arquitecturas

Heterogeneidad
Debe permitir combinar descripciones heterogneas

Anlisis
Debe permitir diversas formas de anlisis de la arquitectura

28

Universidad Rey Juan Carlos - Ingenieria del Software I

Lenguajes de Descripcin de Arquitecturas (LDAs) Ejemplos


Lenguaje Unificado de Modelado (UML) Lenguajes de interconexin de mdulos y de descripcin de interfaz (CORBA-IDL) Lenguajes de descripcin de arquitectura:
Unicon (Mary Shaw y colaboradores - CMU) Wright (Allen y Garlan) Darwin (Magee y Kramer - IC) Rapide (Luckham) C2 (Medvidovic) LEDA (U. Mlaga)

ARQUITECTURAS SOFTWARE

29

Universidad Rey Juan Carlos - Ingenieria del Software I

ARQUITECTURAS SOFTWARE
Bibliografa
Software Architecture Perspective on an Emerging discipline M. Shaw, D. Garlan Ed. Prentice Hall. Software Architecture in Practice (2nd Edition) L. Bass, P. Clements, R. Kazman Ed. Addison Wesley Arquitecturas de SW: http://lml.ls.fi.upm.es/~jjmoreno/sbc/arquitecturas_sw.ppt Servicios Avanzados Multimedia Basados en Componentes: http://www.lcc.uma.es/~av/misConfs/p1arquitecturas.ppt

30

Universidad Rey Juan Carlos - Ingenieria del Software I

Vous aimerez peut-être aussi