1. UNIVERSIDAD AUTÓNOMA
GABRIEL RENE MORENO
F A C U L T A D D E C I E N C I A S E X A C T A S Y T E C N O L O G Í A
C A R R E R A I N G E N I E R I A E N S I S T E M A S
ETILO DE ARQUITECTURA DE SOFTWARE
PIPER & FILTER
ESTUDIANTE:
Deiby Wilson Pereyra Durán
200314688
MATERIA:
Arquitectura de Software
DOCENTE:
Ing. Josué Veizaga O.
Santa Cruz de la Sierra - Bolivia
2010
2. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
INDICE
INTRODUCCION ____________________________________________________________ 3
Teoría ______________________________________________________________________ 4
1. ARQUITECTURA DE SOFTWARE________________________________________ 5
1.1. CONCEPTO ________________________________________________________ 5
2. ESTILO DE ARQUITECTURA____________________________________________ 6
2.1. ARQUITECTURA DE FLUJO DE DATOS ______________________________ 6
2.1.1. SECUENCIAL POR LOTES ______________________________________ 7
2.1.2. TUBOS & FILTROS _____________________________________________ 7
2.1.3. EJEMPLO______________________________________________________ 9
Proyecto ___________________________________________________________________ 10
3. CONVERTIDOR DE CADENA EN CÓDIGO _______________________________ 11
Pipe_________________________________________________________________ 12
Filtro ________________________________________________________________ 12
Controlador __________________________________________________________ 13
Diagrama de Paquete __________________________________________________ 14
Diagrama de Clase ____________________________________________________ 15
Diagrama de Secuencia ________________________________________________ 16
o Diagrama de Secuencia :Controlador __________________________________ 16
4. Bibliografía ____________________________________________________________ 17
TABLA DE CONTENIDO
Grafico 1 Arquitectura de Software .............................................................................................. 6
Grafico 2 Estilo Secuencial por Lotes ........................................................................................... 7
Grafico 3 Estilo Tubos & Filtros ................................................................................................... 7
Grafico 4 Compilador Moncha ...................................................................................................... 9
Grafico 5 Descripción del Estilo Piper & Filter .......................................................................... 11
2
3. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
INTRODUCCION
En este articulo vamos a recordar breves conceptos sobre Arquitectura de
Software ,también se va tomar en cuenta los diferentes Estilos de
Arquitectura con mas énfasis en el Estilo de Arquitectura de Flujo de
Datos , donde se encuentra el Estilo de Arquitectura Piper & Filter .
3
5. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
1. ARQUITECTURA DE SOFTWARE
1.1. CONCEPTO
Arquitectura es todo lo que necesitas conocer acerca de un sistema que no esta
en el código (G. Booch)
La arquitectura de software, tiene que ver con el diseño y la implementación de
estructuras de software de alto nivel. Es el resultado de ensamblar un cierto
número de elementos arquitectónicos de forma adecuada para satisfacer la
mayor funcionalidad y requerimientos de desempeño de un sistema, así como
requerimientos no funcionales, como la confiabilidad, escalabilidad,
portabilidad, y disponibilidad.( Kruchten, Philippe)
La Arquitectura del Software es el diseño de más alto nivel de la estructura de
un sistema
La Arquitectura de Software establece los fundamentos para que analistas,
diseñadores, programadores, etc. trabajen en una línea común que permita
alcanzar los objetivos del sistema de información, cubriendo todas las
necesidades(Grafico1)
Una Arquitectura de Software, también denominada Arquitectura lógica,
consiste en un conjunto de patrones y abstracciones coherentes que
proporcionan el marco de referencia necesario para guiar la construcción del
software para un sistema de información.
5
6. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
Grafico 1 Arquitectura de Software
2. ESTILO DE ARQUITECTURA
Generalmente, no es necesario inventar una nueva arquitectura de software para
cada sistema de información. Lo habitual es adoptar una arquitectura conocida en
función de sus ventajas e inconvenientes para cada caso en concreto. Así, las
arquitecturas más universales son:
• Arquitecturas de flujo de datos
• Arquitecturas centradas en datos
• Arquitecturas de llamada-retorno
• Arquitecturas de componentes independientes
• Estilos heterogéneos
2.1. ARQUITECTURA DE FLUJO DE DATOS
La Arquitectura de Flujo de Datos se percibe como una sucesión de
transformaciones que sufre una serie de datos de entrada a través del sistema.
Los datos ingresan al sistema y fluyen a través de las componentes una a una
hasta que se asignan a un destino final: salida o almacenamiento
La Arquitectura de Software tiene dos sub-estilos:
Secuencial por Lotes
Tubos & Filtros
6
7. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
2.1.1. SECUENCIAL POR LOTES
Es la estructura típica de un sistema de procesamiento de datos tradicional
por lotes (batch).
Cada proceso se ejecuta completamente antes de comenzar la ejecución del
siguiente. (Grafico2)
Grafico 2 Estilo Secuencial por Lotes
2.1.2. TUBOS & FILTROS
Enfatiza la transformación incremental de los datos a través de las sucesivas
componentes.
Esta asociado a flujos de datos I/O refinamientos sucesivos(Grafico 3).
Una componente obtiene datos de sus entradas y produce flujos de datos de
salida.
Los conectores (pipes) sirven de conducto entre componentes (filtros).
Grafico 3 Estilo Tubos & Filtros
7
8. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
Filtros
Son entidades independientes, no comparten estados con otros filtros
,cada actividad es un filtro ,una actividad es la transformación de uno o
mas flujo de datos de entrada en uno o en mas flujos de salida en forma
incremental ,solamente se pueden comunicar a través de tuberías.
Pipe
Conexiones entre filtros. Sincroniza componentes activas ,la conexión la
realizan de manera : conectan origen-filtro, filtro-filtro, filtro-destino
Orígenes de Datos
Es la Entrada del sistema, brinda una serie de datos al Sistema
ejemplos: Archivo de Líneas o Sensor
Salida de Datos
Son los resultados que nos da el procesamiento del sistema
Implementación
Dividir las tareas en una secuencias de pasos de procesamiento
ordenados, definiendo el formato de los datos que van ser transmitido a
través de los pipe.
Ventajas
o Reutilización de los Filtro
o Fácil mantenimiento
o Independencia entre Filtro
Desventaja
o Inadecuados para aplicaciones Interactivas
o Compartir información es cara (consume mucho recurso)
o Ineficiencia en la conversión de los datos
8
9. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
Aplicación
o Compiladores
o Procesado de Señales
o Procesamiento de datos
2.1.3. EJEMPLO
Compilador Mocha
o Los sucesivos filtros comparten un cierto estado: la tabla de
símbolos.
o No es una arquitectura Tubos y Filtros estricta.
o La implementación es un único programa
Grafico 4 Compilador Moncha
9
11. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
3. CONVERTIDOR DE CADENA EN CÓDIGO
Para implementar este proyecto tome en cuenta el Estilo de Arquitectura de
Software Pipe And Filter, por lo que este Estilo podía hacerse extremadamente
simple y quedar muy útil para lo que pretendía hacer .
Lo primero es entender el patrón Pipe and Filter. Este patrón se refiere a una cadena
de filtros por los cuales pasa un mensaje (Contexto), desde el inicio al final. Cada
uno de los filtros tiene acceso al contexto tanto de lectura como de escritura. Quien
controla el armado y ejecución del Pipe es un Controlador. Este controlador lee de
la configuración cuales son los filtros y su orden, los carga y le pasa el contexto al
primero. Cuando el primero ejecuta le regresa el control al Controlador para que
tome el Contexto y se lo pase al siguiente filtro.(Grafico 5 )
Entrada Salida
Grafico 5 Descripción del Estilo Piper & Filter
11
12. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
Pipe
El pipe es lo que se comparte entre los filtros. Los filtros tienen que
compartir los pipe a los pipe lo ejecuta el Controlador para que el
filtro se active. Pipe
-l: LinkedList = new LinkedList()
-Desarrollo: String = ""
-dato: char = ' '
-frecuencia: int = 0
-codigo: String = ""
-Cadena: String = ""
+Pipe()
+setL(l:LinkedList): void
+getL(): LinkedList
+setDesarrollo(desarrollo:String): void
+getDesarrollo(): String
+setDato(dato:char): void
+getDato(): char
+setFrecuencia(frecuencia:int): void
+getFrecuencia(): int
+setCodigo(codigo:String): void
+getCodigo(): String
+setCadena(cadena:String): void
+getCadena(): String
Filtro
Los filtros componen el Pipe. Los filtros son los que se ponen a
trabajar y cuando terminen de ejecutar regresan el mensaje al
Controlador del Pipe.
Entrada
-Direccion: String
-pipe1: Pipe = new Pipe()
-L: LinkedList = new LinkedList()
+Entrada()
+leerArchivoTexto(): String
+setDireccion(direccion:String): void
+getDireccion(): String
+DevolverMensaje(): Pipe
12
13. Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter
Alfanumerico
-Vector: int[]
-num: int = 0
-Lista: LinkedList
+Alfanumerico(p:Pipe)
+Caracteres(): void
+DevolverMensaje(): Pipe
Insertadores
-Longitud: int
-Lista: LinkedList
-pipe3: Pipe = new Pipe()
+Insertadores(p:Pipe)
+Insertar(): void
+Ordenar(): void
+DevolverMensaje(): Pipe
+Mostrar(): void
+main(args:String[]): void
Generador
-Lista1: LinkedList
-Lista: LinkedList
-cant: int
+Generador(p:Pipe)
+Generar(): void
+DevolverMensaje(): Pipe
Codificador
-Cadena: String
-lista: LinkedList
-Longitud: int
+Codificador(p:Pipe)
+Codificar(): void
+DevolverMensaje(): Pipe
Controlador
El controlador es el director de orquesta de este patrón, toma desde
la configuración cuales son los filtros que debe cargar y en qué
orden. Cuando inicia empieza en el primer filtro ejecutando sus
método y así sucesivamente pasa al siguiente hasta terminar
13