Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Arquitectura de software orientada a patrones
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

Patrones Arquitecturales: Pipes & Filters

Download to read offline

Presentación sobre el patrón arquitectural de software "Pipes & Filters" realizado para la materia Ingeniería de Software de la Universidad Nacional de Rio Cuarto, Cordoba, Argentina (Año 2015)

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Patrones Arquitecturales: Pipes & Filters

  1. 1. Pipes & FiltersPipes & Filters Ingeniería de Software (3304)Ingeniería de Software (3304) Patrones ArquitecturalesPatrones Arquitecturales Integrantes:Integrantes: ●● Bongiovanni, IgnacioBongiovanni, Ignacio ●● Bentolila, FernandoBentolila, Fernando ●● Dúcculi, LucasDúcculi, Lucas
  2. 2. 2 Definición “El patrón de arquitectura Pipes and Filter provee una estructura para los sistemas que procesan un flujo de datos. Cada paso de procesamiento se encapsula en un componente de filtro. Los datos pasan a través de tuberías entre filtros adyacentes. Recombinar filtros permite construir familias de filtros relacionados”. [Buschmann]
  3. 3. 3 Problema Sistema: Debe ser construido por varios desarrolladores. Se descompone naturalmente en varias etapas independientes de procesamiento. Podría surgir cambios en sus requerimientos. El diseño de los componentes y sus interconexiones debería contemplar lo siguiente: Flexibilidad por la posibilidad de reordenar las diferentes etapas de procesamiento. Pequeñas etapas de procesamiento facilitan su reusabilidad. Si dos etapas no son adyacentes, entonces ellas no comparten información. La ejecución en paralelo de las etapas debería ser posible.
  4. 4. 4 Solución Dividir la tarea en una secuencia de etapas de procesamiento. Cada etapa sera implementada por un programa filtro que consume por su entrada y produce datos en su salida de manera incremental. Conectar la salida de una etapa (Filter) como la entrada de su etapa sucesora por medio de una tuberia (Pipe). Permitir que los filtros se ejecuten de manera concurrente. Conectar la entrada de la secuencia a alguna fuente de datos (Data Source), como un archivo. Conectar la salida de la secuencia a algun sumidero de datos (Data Sink), como un archivo o una pantalla.
  5. 5. 5 Estructura Pipes Filters Data Source Data Sink Representación gráfica de los componentes
  6. 6. 6 Estructura Filter Unidades de procesamiento Responsabilidades Características ● Recibir datos de entrada ● Ejecutar una función sobre dichos datos ● Proporcionar datos de salida ● Enriquecen, refinan o transforman los datos ● Pueden ser pasivos o activos Colaboradores ● Pipe Pipe Conexiones entre dos componentes Responsabilidades Colaboradores ● Transferir datos ● Almacena datos temporalmente ● Sincroniza los vecinos activos ● Filter ● Data Source ● Data Sink
  7. 7. 7 Estructura Data Source Responsabilidades Colaboradores ● Proporciona los datos de entrada a la linea de procesamiento ● Pipe Variantes Ejemplos -Pasivas (proveen datos al ser solicitados) -Activas (constantemente entregan información) ● Archivos de texto plano ● Sensores externos ● Entrada estándar (stdin) Data Sink Responsabilidades Colaboradores ● Almacenar los datos de salida de la linea de procesamiento ● Pipe Variantes Pasivas y activas
  8. 8. 8 Ejemplo Compilador portable Mocha Mocha (Modular Object Computation with Hypothetical Algorithms). AuLait (Another Universal Language for Intermediate Translation) corre en una máquina virtual CUP (Concurent Uniform Processor) Intel SPARC IntérpreteMIPS Análisis Lexicográfico/ Scanner Análisis Sintáctico/Parser Análisis Semántico Generación de Código Intermedio Optimización texto ASCII (programa) secuencia de tokens árbol sintáctico abstracto árbol sintáctico abstracto aumentado programa AuLait programa AuLait optimizado
  9. 9. 9 Scanner token yylex() Parser bool yyparse() Analizador Semántico Generador de Código writeCodeByte() tubo UNIX read write Intérprete AuLait int getchar() call getchar call yylex call semantic check call codgen write pipe read pipe Input int getchar()
  10. 10. 10 Los sucesivos filtros comparten un cierto estado: la tabla de símbolos. No es una arquitectura Tubos y Filtros estricta. La implementación es un único programa. Analizador Lexicográfico/Scanner Analizador Sintáctico/Parser Analizador Semántico Generador de Código Intermedio TabladeSímbolos

Presentación sobre el patrón arquitectural de software "Pipes & Filters" realizado para la materia Ingeniería de Software de la Universidad Nacional de Rio Cuarto, Cordoba, Argentina (Año 2015)

Views

Total views

3,150

On Slideshare

0

From embeds

0

Number of embeds

2

Actions

Downloads

23

Shares

0

Comments

0

Likes

0

×