SlideShare una empresa de Scribd logo
1 de 18
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
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
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
Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter




                                                    Teoría




                                               4
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
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
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
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
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
Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter




                                                    Proyecto




                                              10
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
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
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
Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter


                                                    PipeControlador
                                                  -entrada: Entrada
                                            -alfanumerico: Alfanumerico
                                               -generador: Generador
                                              -codificador: Codificador
                                              -pipe: Pipe = new Pipe()
                                                    -salida: Salida
                                                    -m: String = ""
                                                +PipeControlador(s:String)
                                                 +GuardarArchivo(): void
                                                 +main(args:String[]): void




                                        Diagrama de Paquete




                                                                                                      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
                                                           pipe1
                                                                                                                                             pipe5

                                                                                                pipe3                       pipe4
                           pipe                                             pipe2

                        Entrada                                                          Insertadores
                                                                                                                                    Generador                        Codificador                              Salida
                    -Direccion: String                  Alfanumerico                      -Longitud: int
                -pipe1: Pipe = new Pipe()                                               -Lista: LinkedList                     -Lista1: LinkedList                  -Cadena: String                     -Nombre: String = ""
            -L: LinkedList = new LinkedList()            -Vector: int[]             -pipe3: Pipe = new Pipe()                   -Lista: LinkedList                  -lista: LinkedList                    -Dato: String = ""
                                                         -num: int = 0                                                               -cant: int
                        +Entrada()                                                    +Insertadores(p:Pipe)                                                            -Longitud: int                     -Data: String = ""
                                                       -Lista: LinkedList
               +leerArchivoTexto(): String                                               +Insertar(): void                    +Generador(p:Pipe)                  +Codificador(p:Pipe)                       +Salida()
           +setDireccion(direccion:String): void    +Alfanumerico(p:Pipe)                +Ordenar(): void                       +Generar(): void                   +Codificar(): void       +guardarTexto(fname:String, data:String): void
                  +getDireccion(): String            +Caracteres(): void            +DevolverMensaje(): Pipe                +DevolverMensaje(): Pipe            +DevolverMensaje(): Pipe   +guardarArchivo(fname:String, cad:String): void
                +DevolverMensaje(): Pipe           +DevolverMensaje(): Pipe              +Mostrar(): void                                                                                            +main(args:String[]): void
                                                                                    +main(args:String[]): void

                                                                    alfanumerico                                 generador
                                                                                         Insertador                                 codificador
                                                        entrada
                                                                                                                                                       salida
                                                                                     PipeControlador
                                                                                      -entrada: Entrada
                                                                               -alfanumerico: Alfanumerico
                                                                                   -generador: Generador
                                                                                 -codificador: Codificador
                                                                                  -pipe: Pipe = new Pipe()
                                                                                        -salida: Salida
                                                                                        -m: String = ""
                                                                                 -Insertador: Insertadores
                                                                                +PipeControlador(s:String)   14
                                                                                 +GuardarArchivo(): void
                                                                                 +main(args:String[]): void
Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter




                     Diagrama de Clase




                                              15
Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter




                     Diagrama de Secuencia
                          o Diagrama de Secuencia :Controlador




                                              16
Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter




4. Bibliografía

                                              17
Arquitectura de Software
Estilos de Arquitectura de Software Piper &Filter


    Libros:
    Booch,    Grady.     Object-Oriented     Analysis   and   Design.   Second   Edition.
    Benjamin/Cummings, Redwood: 1994
    Kruchten, Philippe. "Architectural Blueprints--The 4+1 View Model of Software
    Architecture". IEEE Software, Institute of Electrical and Electronics Engineers.
    November 1995, pp. 42-50.
    Zapata Sanchez, Andres felipe. Arquitectura de Software www.fi.uba.ar
    www:
    http://es.wikipedia.org/wiki/Arquitectura_en_pipeline_%28inform%C3%A1tica%2
    9
    http://www.willydev.net/InsiteCreation/v1.0/descargas/prev/estiloypatron.pdf
    http://www.fing.edu.uy/inco/cursos/tsi/TSI1/2010/teorico/01-Arquitectura-de-
    software.pdf
    http://www.fing.edu.uy/inco/cursos/eci/proy/sastre_etcheverry.pdf
    http://www.google.com.bo/search?client=firefox-a&rls=org.mozilla%3Aes-
    ES%3Aofficial&channel=s&hl=es&source=hp&q=estilo+de+arquitectura+pipeline
    &meta=&btnG=Buscar+con+Google
    http://jgarzas.googlepages.com/JGarzas_Arquitecturas_Software.pdf
    http://www.lcc.uma.es/~av/misConfs/ASyMT-CIII.ppt
    http://www.indicart.com.ar/~sase/Procesadores%20-
    %20Arquitecturas%20y%20Tecnologias.pdf
    http://www.fing.edu.uy/inco/cursos/tsi/TSI1/2010/teorico/01-Arquitectura-de-
    software.pdf
    http://www.lcc.uma.es/~av/misConfs/p1-arquitecturas.ppt
    http://kuainasi.ciens.ucv.ve/ingenieria_software2/download/IS-Clase6-
    Arquitectura%20de%20sw.ppt
    http://carlosreynoso.com.ar/workshop-de-arquitectura-de-software




                                              18

Más contenido relacionado

La actualidad más candente

herramientas case
herramientas caseherramientas case
herramientas casetomaspetto
 
Cuadro comparativo analisis estructurado y orientado a objeto
Cuadro comparativo analisis estructurado y orientado a objeto Cuadro comparativo analisis estructurado y orientado a objeto
Cuadro comparativo analisis estructurado y orientado a objeto Freddy Rosales
 
Proceso del software
Proceso del softwareProceso del software
Proceso del softwareTensor
 
Sem 8 Modelo De Analisis
Sem 8 Modelo De AnalisisSem 8 Modelo De Analisis
Sem 8 Modelo De Analisisguest0a6e49
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9Ian Sommerville
 
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...TestingUy
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 
Funciones de la Administración de Redes
Funciones de la Administración de RedesFunciones de la Administración de Redes
Funciones de la Administración de RedesJose Manuel Acosta
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
Metodología de desarrollo de software (45 Preguntas)
Metodología de desarrollo de software (45 Preguntas)Metodología de desarrollo de software (45 Preguntas)
Metodología de desarrollo de software (45 Preguntas)LeonardoAguantaRodrg
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosZuleima
 
Análisisde requerimientos
Análisisde requerimientosAnálisisde requerimientos
Análisisde requerimientosmayrapeg
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
Análisis y diseño de sistemas estructurado
Análisis y diseño de sistemas estructuradoAnálisis y diseño de sistemas estructurado
Análisis y diseño de sistemas estructuradojr_palaciosg
 
Ejercicio de Análisis de Sistemas
Ejercicio de Análisis de SistemasEjercicio de Análisis de Sistemas
Ejercicio de Análisis de SistemasVictor Escamilla
 

La actualidad más candente (20)

herramientas case
herramientas caseherramientas case
herramientas case
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Cuadro comparativo analisis estructurado y orientado a objeto
Cuadro comparativo analisis estructurado y orientado a objeto Cuadro comparativo analisis estructurado y orientado a objeto
Cuadro comparativo analisis estructurado y orientado a objeto
 
Tolerancia a fallos
Tolerancia a fallosTolerancia a fallos
Tolerancia a fallos
 
Proceso del software
Proceso del softwareProceso del software
Proceso del software
 
Dfd
DfdDfd
Dfd
 
Sem 8 Modelo De Analisis
Sem 8 Modelo De AnalisisSem 8 Modelo De Analisis
Sem 8 Modelo De Analisis
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9
 
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Funciones de la Administración de Redes
Funciones de la Administración de RedesFunciones de la Administración de Redes
Funciones de la Administración de Redes
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Metodología de desarrollo de software (45 Preguntas)
Metodología de desarrollo de software (45 Preguntas)Metodología de desarrollo de software (45 Preguntas)
Metodología de desarrollo de software (45 Preguntas)
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Base de datos
Base de datosBase de datos
Base de datos
 
Análisisde requerimientos
Análisisde requerimientosAnálisisde requerimientos
Análisisde requerimientos
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
Análisis y diseño de sistemas estructurado
Análisis y diseño de sistemas estructuradoAnálisis y diseño de sistemas estructurado
Análisis y diseño de sistemas estructurado
 
Ejercicio de Análisis de Sistemas
Ejercicio de Análisis de SistemasEjercicio de Análisis de Sistemas
Ejercicio de Análisis de Sistemas
 

Similar a Proyecto piper filter

Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemasMirna Lozano
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de SoftwareMaricela Ramirez
 
Significado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemasSignificado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemasJuan Pablo Bustos Thames
 
Significado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemasSignificado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemasJuan Pablo Bustos Thames
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de softwareDiaxz Salgado
 
Fundamentos del software
Fundamentos del softwareFundamentos del software
Fundamentos del softwaremrquaife
 
Fundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas IIFundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas IIJimmyWilfredMassVerd
 
Diseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezDiseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezGabrielGonzalez463
 
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-IntroducciónLuis Fernando Aguas Bucheli
 
Diseño orientado al flujo de datos.pptx
Diseño orientado al flujo de datos.pptxDiseño orientado al flujo de datos.pptx
Diseño orientado al flujo de datos.pptxMarioColmenarez1
 
presentacion hebelyn
presentacion hebelynpresentacion hebelyn
presentacion hebelynHebelynBravo
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareGerardo Valera
 
software
softwaresoftware
softwarealkosto
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1preciadoag
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemasAlan9126
 

Similar a Proyecto piper filter (20)

Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Significado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemasSignificado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemas
 
Significado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemasSignificado dentro del ciclo de vida de desarrollo de sistemas
Significado dentro del ciclo de vida de desarrollo de sistemas
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Fundamentos del software
Fundamentos del softwareFundamentos del software
Fundamentos del software
 
Fundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas IIFundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas II
 
Diseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezDiseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalez
 
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
 
Diseño orientado al flujo de datos.pptx
Diseño orientado al flujo de datos.pptxDiseño orientado al flujo de datos.pptx
Diseño orientado al flujo de datos.pptx
 
presentacion hebelyn
presentacion hebelynpresentacion hebelyn
presentacion hebelyn
 
Presentacion
PresentacionPresentacion
Presentacion
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de software
 
Diapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napaDiapositivas-Ing-SW-napa
Diapositivas-Ing-SW-napa
 
software
softwaresoftware
software
 
Conceptos
ConceptosConceptos
Conceptos
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Georgy jose sanchez
Georgy jose sanchezGeorgy jose sanchez
Georgy jose sanchez
 

Proyecto piper filter

  • 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
  • 4. Arquitectura de Software Estilos de Arquitectura de Software Piper &Filter Teoría 4
  • 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
  • 10. Arquitectura de Software Estilos de Arquitectura de Software Piper &Filter Proyecto 10
  • 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
  • 14. Arquitectura de Software Estilos de Arquitectura de Software Piper &Filter PipeControlador -entrada: Entrada -alfanumerico: Alfanumerico -generador: Generador -codificador: Codificador -pipe: Pipe = new Pipe() -salida: Salida -m: String = "" +PipeControlador(s:String) +GuardarArchivo(): void +main(args:String[]): void Diagrama de Paquete 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 pipe1 pipe5 pipe3 pipe4 pipe pipe2 Entrada Insertadores Generador Codificador Salida -Direccion: String Alfanumerico -Longitud: int -pipe1: Pipe = new Pipe() -Lista: LinkedList -Lista1: LinkedList -Cadena: String -Nombre: String = "" -L: LinkedList = new LinkedList() -Vector: int[] -pipe3: Pipe = new Pipe() -Lista: LinkedList -lista: LinkedList -Dato: String = "" -num: int = 0 -cant: int +Entrada() +Insertadores(p:Pipe) -Longitud: int -Data: String = "" -Lista: LinkedList +leerArchivoTexto(): String +Insertar(): void +Generador(p:Pipe) +Codificador(p:Pipe) +Salida() +setDireccion(direccion:String): void +Alfanumerico(p:Pipe) +Ordenar(): void +Generar(): void +Codificar(): void +guardarTexto(fname:String, data:String): void +getDireccion(): String +Caracteres(): void +DevolverMensaje(): Pipe +DevolverMensaje(): Pipe +DevolverMensaje(): Pipe +guardarArchivo(fname:String, cad:String): void +DevolverMensaje(): Pipe +DevolverMensaje(): Pipe +Mostrar(): void +main(args:String[]): void +main(args:String[]): void alfanumerico generador Insertador codificador entrada salida PipeControlador -entrada: Entrada -alfanumerico: Alfanumerico -generador: Generador -codificador: Codificador -pipe: Pipe = new Pipe() -salida: Salida -m: String = "" -Insertador: Insertadores +PipeControlador(s:String) 14 +GuardarArchivo(): void +main(args:String[]): void
  • 15. Arquitectura de Software Estilos de Arquitectura de Software Piper &Filter Diagrama de Clase 15
  • 16. Arquitectura de Software Estilos de Arquitectura de Software Piper &Filter Diagrama de Secuencia o Diagrama de Secuencia :Controlador 16
  • 17. Arquitectura de Software Estilos de Arquitectura de Software Piper &Filter 4. Bibliografía 17
  • 18. Arquitectura de Software Estilos de Arquitectura de Software Piper &Filter Libros: Booch, Grady. Object-Oriented Analysis and Design. Second Edition. Benjamin/Cummings, Redwood: 1994 Kruchten, Philippe. "Architectural Blueprints--The 4+1 View Model of Software Architecture". IEEE Software, Institute of Electrical and Electronics Engineers. November 1995, pp. 42-50. Zapata Sanchez, Andres felipe. Arquitectura de Software www.fi.uba.ar www: http://es.wikipedia.org/wiki/Arquitectura_en_pipeline_%28inform%C3%A1tica%2 9 http://www.willydev.net/InsiteCreation/v1.0/descargas/prev/estiloypatron.pdf http://www.fing.edu.uy/inco/cursos/tsi/TSI1/2010/teorico/01-Arquitectura-de- software.pdf http://www.fing.edu.uy/inco/cursos/eci/proy/sastre_etcheverry.pdf http://www.google.com.bo/search?client=firefox-a&rls=org.mozilla%3Aes- ES%3Aofficial&channel=s&hl=es&source=hp&q=estilo+de+arquitectura+pipeline &meta=&btnG=Buscar+con+Google http://jgarzas.googlepages.com/JGarzas_Arquitecturas_Software.pdf http://www.lcc.uma.es/~av/misConfs/ASyMT-CIII.ppt http://www.indicart.com.ar/~sase/Procesadores%20- %20Arquitecturas%20y%20Tecnologias.pdf http://www.fing.edu.uy/inco/cursos/tsi/TSI1/2010/teorico/01-Arquitectura-de- software.pdf http://www.lcc.uma.es/~av/misConfs/p1-arquitecturas.ppt http://kuainasi.ciens.ucv.ve/ingenieria_software2/download/IS-Clase6- Arquitectura%20de%20sw.ppt http://carlosreynoso.com.ar/workshop-de-arquitectura-de-software 18