Descargar

Desarrollo de Aplicaciones basado en Componentes y Frameworks (página 2)

Enviado por Pablo Turmero


Partes: 1, 2, 3, 4
edu.red 11 (Gp:) Emisor

(Gp:) Receptor

(Gp:) Buffer

Arquitectura Productor/Consumidor

edu.red 12 Objetivos de la AS Comprender y manejar la estructura de las aplicaciones complejas Reutilizar dicha estructura (o parte de ella) Planificar la evolución de la aplicación Analizar la corrección de la aplicación y su grado de cumplimiento frente a los requisitos iniciales Permitir el estudio de propiedades específicas

edu.red 13 Ventajas de las A.S. Resaltan aquellos aspectos estucturalmente importantes, tanto funcionales como no funcionales Eliminan muchos riesgos y errores de diseño, desarrollo e implantación Permiten un desarrollo paralelo, aumentando la productividad

edu.red 14 El “territorio” de las AS

edu.red 15 Modelo, Vista y Punto de Vista Modelo (model) Una descripción completa de un sistema a un determinado nivel de abstracción Vista (view) Una proyección de un modelo desde una perspectiva Omite las entidades y elementos que no son relevantes Punto de vista (viewpoint) La definición (o descripción) de una vista Prescribe su contenido, significado y representación

edu.red 16 Niveles de Abstracción Estilos arquitectónicos familias de sistemas que siguen el mismo patrón estructural Modelos y arquitecturas de referencia particularizan un estilo y definen los conceptos asociados Marcos de Trabajo arquitectura reutilizable en aplicaciones de un mismo dominio Familias y líneas de productos arquitectura de una aplicación con diferentes configuraciones Instancias arquitectura de una aplicación concreta

edu.red 17 Estilos Arquitectónicos Componentes unidades computacionales y de datos Conectores mecanismos de interacción entre componentes Patrones y restricciones de interconexión invariantes del estilo Mecanismos de control coordinación entre componentes Propiedades ventajas e inconvenientes

edu.red 18 Clasificación de estilos Sistemas de flujo de datos Sistemas basados en llamada y retorno Sistemas de componentes independientes Sistemas centrados en los datos Máquinas virtuales Sistemas heterogéneos

edu.red 19 Estilos y subestilos (I) Sistemas de flujo de datos Sucesión de transformaciones de los datos de entrada Subestilos: pipe & filter y procesamiento por lotes Sistemas basados en llamada y retorno Reflejan la estructura del lenguaje de programación Subestilos: programa principal-subrutina, OO, capas Sistemas de componentes independientes Componentes distribuidos que se comunican por paso de mensajes Subestilos: sistemas cliente/servidor y de eventos

edu.red 20 Estilos y subestilos (II) Sistemas centrados en los datos Acceso compartido a un banco de datos central Subestilos: repositorio y pizarras (blackboards) Máquinas virtuales Simulan una funcionalidad no nativa del entorno Subestilos: intérpretes y sistemas basados en reglas Sistemas heterogéneos Localmente, jerárquicamente o simultáneamente heterogéneos

edu.red 21 Descripción de Arquitecturas Diagramas informales de cajas y líneas Imprecisos, ambiguos y no analizables Lenguajes de programación modular Mezclan aspectos de programación y estructurales El análisis se basa en emparejamiento de nombres Lenguajes de interconexión de módulos (MILs o IDLs) Implican un determinado mecanismo de interacción UML como notación arquitectónica Lenguajes de Descripción de Arquitectura (LDAs)

edu.red 22 Lenguajes de Descripción de Arquitecturas (LDAs) Un LDA es un lenguaje o notación para describir una arquitectura software: Descripción de componentes, conectores y enlaces entre ellos. Herramientas para la verificación de la arquitectura y el prototipado rápido. Existen LDAs de propósito general y otros de dominio específico (DSLs)

edu.red 23 (Gp:) Sender (Gp:) Receiver (Gp:) Buffer (Gp:) Arquitectura Productor/Consumidor

(Gp:) Enlaces puertos/roles ¿ analizables ?

(Gp:) Puertos: describen el comportamiento de las componentes

(Gp:) writer (Gp:) storage (Gp:) reader (Gp:) retrieval

(Gp:) Roles: describen el comportamiento de los conectores

edu.red 24 Requisitos de un ADL Composición Debe describir el sistema como una composición de partes Configuración Debe describir la arquitectura independientemente de los componentes Abstracción Debe describir los roles abstractos que juegan los componentes Reutilización Debe permitir reutilizar componentes, conectores, y arquitecturas Heterogeneidad Debe permitir combinar descripciones heterogéneas Análisis Debe permitir diversas formas de análisis de la arquitectura

edu.red 25 Ejemplos de LDAs Ejemplos: UNICON (Shaw et al. 1995) Rapide (Luckham et al. 1995) Darwin (Magee y Kramer, 1996; 1999) Wright (Allen y Garlan, 1997; 1998) Executable Connectors (Ducasse y Richner, 1997) Problema: No cubren todo el ciclo de vida de las aplicaciones software (sólo diseño preliminar), no llegan a la implementación

edu.red 26 Ejemplos de LDAs : UNICON Una pipe de Unix

connector Unix-pipe protocol is type pipe role source is Source MaxConns(1) end source role sink is Sink MaxConns(1) end sink end protocol

… implementation is builtin end implementation end Unix-Pipe

edu.red 27 Ejemplos de LDAs : Wright Una pipe de Unix connector Pipe = role WRITER = write ? WRITER ? close ? ? role READER = let ExitOnly = close ?? in let DoRead = (read ? READER ? readEoF ? ExitOnly in DoRead ? ExitOnly glue = let ReadOnly = READER.read ? readOnly ? READER.readEoF ? READER.close ?? ? READER.close ?? in let WriteOnly = WRITER.write ? WriteOnly ? WRITER.close?? in WRITER.write ? glue ? READER.read ? glue ? WRITE.close ? ReadOnly ? READER.close ? WriteOnly

edu.red 28 Ejemplos de LDAs : RAPIDE type Application is interface extern action Receive(p:params); // evento de entrada public action Results(p:params); // evento de salida behaviour (?M in String) Receive(?M) => Results(?M); // transición de eventos end Application;

architecture DistrApp(Num: Integer) return InterfaceDistrApp is P : array(Integer) of Application; Q: array(Integer) of Resource; //Dual of Application connect for i:Integer in 1..Num generate (?M in String) P(i). Receive(?M) to Q(i).Results(?M); P(i).Results(?M) to Q(i). Receive(?M); end generate; end DistrApp;

edu.red 29 Ejemplos de LDAs : Darwin (Gp:) entrada (Gp:) cabeza : Filtro (Gp:) ant (Gp:) salida (Gp:) salida (Gp:) : Pipeline (Gp:) entrada (Gp:) salida (Gp:) cauce : Pipeline (Gp:) sig

edu.red 30 LDAs del grupo GISUM LDC + LDS (Fuentes y Troya, 1998) Modelo de componentes pasivos y conectores reactivos Formalismo de especificación de comportamiento de conectores (TDFs, ?-cálculo, etc.) LEDA (Canal, Pimentel y Troya, 2000) Basado en el álgebra de procesos ?-cálculo Permite especificar arquitecturas dinámicas

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente