SlideShare uma empresa Scribd logo
1 de 13
Investigación en Patrones de
              Arquitectura

•   ¿Es posible formalizar esta comunicación para poder
    reusar el conocimiento experto?
•   Premisas:
    – existen problemas recurrentes en el diseño de
      software,
    – las soluciones a estos problemas tienen ciertas
      propiedades invariantes (solución abstracta),
    – pueden capturarse los problemas y las soluciones.
Patrones de Arquitectura de
                  Software
•   Los patrones en general, y en particular los de
    arquitectura, son un intento de formalizar la
    comunicación y el reuso de la experiencia de diseño,
•   capturan la experiencia probada de diseño de software,
•   describen problemas recurrentes que surgen en
    determinados contextos,
•   describen esquemas de soluciones probados,
•   Son una herramienta para los no expertos,
•   Ofrecen un paso más hacia la ingeniería de software:
    – permite que gente común haga cosas que antes requerían
      virtuosismo.
Patrones: el Reuso de la Experiencia

•   Los diseñadores expertos manejan patrones recurrentes
    de clases y colaboraciones útiles ante determinados
    problemas.
•   Los patrones resuelven problemas concretos y crean
    diseños más elegantes, flexibles y reutilizables.

    Permiten la reutilización de la experiencia en Diseño
¿Qué es un Patrón?

Un patrón de arquitectura de software es
un esquema genérico probado para
solucionar un problema particular, el cual
es recurrente dentro de un cierto
contexto. Este esquema se especifica
describiendo los componentes, con sus
responsabilidades y relaciones.
Características de los Patrones
•   Atacan problemas recurrentes que ocurren en situaciones
    específicas y dan una solución.


•   Documentan experiencias de diseño existentes y bien
    probadas.


•   Identifican y especifican abstracciones de alto nivel.


•   Proveen un vocabulario común y comprensible.
Más Características de los Patrones

•   Son una forma de documentar la arquitectura del
    software.
•   Facilitan la construcción de software con
    propiedades definidas (propiedades particulares).
    – Interfaces intercambiables y modelo reutilizable.
•   Ayudan a construir arquitecturas heterogéneas y
    complejas.
Patrones en la Ingeniería de Software
•   Pueden verse como bloques de construcción
    mentales, para tratar con distintos aspectos del
    diseño de software.
•   Hay patrones de arquitectura, patrones de diseño,
    patrones de procesos, patrones de interfaces,
    “idioms”.
•   No existen paradigmas o lenguajes específicos
    para implementar patrones de arquitectura, pero
    algunos proveen elementos útiles (orientación a
    objetos, polimorfismo, herencia, etc.).
¿Cómo se especifica un patrón?

Patrón: Nombre del Patrón
     Contexto
          Situación de diseño que da lugar al problema.
     Problema
           Conjunto de fuerzas que surgen del contexto.
     Solución
           Configuración para balancear las fuerzas
                 Componentes y relaciones (estructura)
                 Comportamiento dinámico
Contexto
•   Extiende la dicotomía problema-solución.
•   Describe el escenario donde se da el problema.
•   La descripción del contexto puede ser bastante general o
    muy específica. Por ejemplo:
    – “desarrollar software con una interfaz humano-
      computador”.
    – “implementar el mecanismo de cambio-propagación
      en MVC”.
•   Es muy difícil definir completamente el contexto.
•   Listar todas las situaciones en que el problema surge
    puede ser una alternativa.
Problema
•   Describe el problema genérico que surge en el
    contexto especificado.
•   Esencia: ¿cuál aspecto del problema debemos
    resolver?
    – El problema generalmente varía, pero la escencia se
      mantiene.
•   Las fuerzas describen aspectos más específicos del
    problema con distintos puntos de vista, y hasta
    pueden contradecirse. Pueden ser:
    – requisitos de la solución
    – restricciones
    – propiedades deseables/indeseables
Solución
•   Es la forma de balancear las fuerzas para resolver el
    problema.
•   Dos aspectos o componentes de la solución:
    – Estructura estática - componentes y relaciones.
    – Comportamiento dinámico - forma de organización y
      colaboración entre las componentes.
•   La solución no siempre toma en cuenta todas las
    fuerzas.
•   Hay que establecer prioridades, si las fuerzas son
    contradictorias.
•   Se debe establecer un esquema de soluciones y no algo
    completamente definido (demasiado especificado, y
    por ende, restrictivo).
Relación entre Patrones

•   “Cada patrón depende de los patrones más
    pequeños que contiene y de los más grandes
    donde está contenido.”
•   Distintos aspectos de un sistema pueden
    resolverse con distintos patrones.
•   Existen variantes de ciertos patrones para
    situaciones especiales.
Descripción de Patrones
•   Una descripción apropiada permite la comprensión, el
    análisis y la discusión del patrón.
•   La definición del Contexto-Problema-Solución es un
    buen punto de partida.
•   Los buenos nombres se convierten en jerga o
    modismos.
•   Ejemplos, diagramas, escenarios y guías para la
    implementación también pueden formar parte de la
    definición de un patrón.
•   Discusión de beneficios y debilidades ayudan a tomar
    mejores decisión respecto a su uso.

Mais conteúdo relacionado

Destaque

Winston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NC
Winston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NCWinston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NC
Winston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NCFrank Myers Auto Maxx
 
C.6 ningu no compren ningu
C.6 ningu no compren ninguC.6 ningu no compren ningu
C.6 ningu no compren ninguadriaaa9
 
Eu decido me organizar financeiramete
Eu decido me organizar financeirameteEu decido me organizar financeiramete
Eu decido me organizar financeirameteEid Marques
 
La voz 2005 07 20 - envidia
La voz   2005 07 20 - envidiaLa voz   2005 07 20 - envidia
La voz 2005 07 20 - envidiaCarlos Espino
 
Deber de dibujo tecnico giovanni
Deber de dibujo tecnico giovanniDeber de dibujo tecnico giovanni
Deber de dibujo tecnico giovannigiovanny
 
Ana catarina; ana rita 9ºa
Ana catarina; ana rita 9ºaAna catarina; ana rita 9ºa
Ana catarina; ana rita 9ºaanacarreira2
 
Comprendemos y analizamos textos literarios
Comprendemos y analizamos textos literariosComprendemos y analizamos textos literarios
Comprendemos y analizamos textos literariosfabiotm
 
Mate mayo 20 2010
Mate   mayo  20     2010Mate   mayo  20     2010
Mate mayo 20 2010kako1950
 
Annonce musee des arts forains.vf
Annonce musee des arts forains.vfAnnonce musee des arts forains.vf
Annonce musee des arts forains.vfICFFrance
 
Practica 1 excel.pptx de duvan zuluaga yeison duque mauricio duque
Practica 1 excel.pptx   de  duvan zuluaga yeison duque  mauricio duquePractica 1 excel.pptx   de  duvan zuluaga yeison duque  mauricio duque
Practica 1 excel.pptx de duvan zuluaga yeison duque mauricio duqueIE Simona Duque
 
Identificación de la empresa
Identificación de la empresaIdentificación de la empresa
Identificación de la empresaMonica Andrea
 
4 leticia apresent_2_tibagi_seminario_bituruna
4 leticia apresent_2_tibagi_seminario_bituruna4 leticia apresent_2_tibagi_seminario_bituruna
4 leticia apresent_2_tibagi_seminario_biturunaLorena Correia
 
Guía práctica de sistemas de pago por clic y publicidad contextual – IAB España
Guía práctica de sistemas de pago por clic y publicidad contextual – IAB EspañaGuía práctica de sistemas de pago por clic y publicidad contextual – IAB España
Guía práctica de sistemas de pago por clic y publicidad contextual – IAB EspañaJuan Carlos Mejía Llano
 

Destaque (20)

Winston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NC
Winston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NCWinston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NC
Winston-Salem Used Car Dealer Named One Of Top 30 Small Businesses In NC
 
Mkt digital02
Mkt digital02Mkt digital02
Mkt digital02
 
C.6 ningu no compren ningu
C.6 ningu no compren ninguC.6 ningu no compren ningu
C.6 ningu no compren ningu
 
Eu decido me organizar financeiramete
Eu decido me organizar financeirameteEu decido me organizar financeiramete
Eu decido me organizar financeiramete
 
Gaby
GabyGaby
Gaby
 
La voz 2005 07 20 - envidia
La voz   2005 07 20 - envidiaLa voz   2005 07 20 - envidia
La voz 2005 07 20 - envidia
 
Deber de dibujo tecnico giovanni
Deber de dibujo tecnico giovanniDeber de dibujo tecnico giovanni
Deber de dibujo tecnico giovanni
 
Practica 17
Practica 17Practica 17
Practica 17
 
Ana catarina; ana rita 9ºa
Ana catarina; ana rita 9ºaAna catarina; ana rita 9ºa
Ana catarina; ana rita 9ºa
 
Comprendemos y analizamos textos literarios
Comprendemos y analizamos textos literariosComprendemos y analizamos textos literarios
Comprendemos y analizamos textos literarios
 
Mate mayo 20 2010
Mate   mayo  20     2010Mate   mayo  20     2010
Mate mayo 20 2010
 
Annonce musee des arts forains.vf
Annonce musee des arts forains.vfAnnonce musee des arts forains.vf
Annonce musee des arts forains.vf
 
Autodescubrirse
AutodescubrirseAutodescubrirse
Autodescubrirse
 
Practica 1 excel.pptx de duvan zuluaga yeison duque mauricio duque
Practica 1 excel.pptx   de  duvan zuluaga yeison duque  mauricio duquePractica 1 excel.pptx   de  duvan zuluaga yeison duque  mauricio duque
Practica 1 excel.pptx de duvan zuluaga yeison duque mauricio duque
 
Identificación de la empresa
Identificación de la empresaIdentificación de la empresa
Identificación de la empresa
 
Las medusas sonia
Las medusas soniaLas medusas sonia
Las medusas sonia
 
Samuel.b medusas
Samuel.b        medusasSamuel.b        medusas
Samuel.b medusas
 
Practica 2 flash
Practica 2 flashPractica 2 flash
Practica 2 flash
 
4 leticia apresent_2_tibagi_seminario_bituruna
4 leticia apresent_2_tibagi_seminario_bituruna4 leticia apresent_2_tibagi_seminario_bituruna
4 leticia apresent_2_tibagi_seminario_bituruna
 
Guía práctica de sistemas de pago por clic y publicidad contextual – IAB España
Guía práctica de sistemas de pago por clic y publicidad contextual – IAB EspañaGuía práctica de sistemas de pago por clic y publicidad contextual – IAB España
Guía práctica de sistemas de pago por clic y publicidad contextual – IAB España
 

Semelhante a Patrones

Semelhante a Patrones (20)

CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptCC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
 
patronesdiseño2009.ppt
patronesdiseño2009.pptpatronesdiseño2009.ppt
patronesdiseño2009.ppt
 
chuy
chuy chuy
chuy
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patrones de Diseño en e-learning
Patrones de Diseño en e-learningPatrones de Diseño en e-learning
Patrones de Diseño en e-learning
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
U5.pptx
U5.pptxU5.pptx
U5.pptx
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
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
 
Patrones de diseño.pptx
Patrones de diseño.pptxPatrones de diseño.pptx
Patrones de diseño.pptx
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii patrones de diseño
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
Introducción Patrones de Diseño
Introducción Patrones de DiseñoIntroducción Patrones de Diseño
Introducción Patrones de Diseño
 
2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptx2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptx
 
6 arquitectura desoftware
6 arquitectura desoftware6 arquitectura desoftware
6 arquitectura desoftware
 
Patrones GRASP
Patrones GRASPPatrones GRASP
Patrones GRASP
 

Patrones

  • 1. Investigación en Patrones de Arquitectura • ¿Es posible formalizar esta comunicación para poder reusar el conocimiento experto? • Premisas: – existen problemas recurrentes en el diseño de software, – las soluciones a estos problemas tienen ciertas propiedades invariantes (solución abstracta), – pueden capturarse los problemas y las soluciones.
  • 2. Patrones de Arquitectura de Software • Los patrones en general, y en particular los de arquitectura, son un intento de formalizar la comunicación y el reuso de la experiencia de diseño, • capturan la experiencia probada de diseño de software, • describen problemas recurrentes que surgen en determinados contextos, • describen esquemas de soluciones probados, • Son una herramienta para los no expertos, • Ofrecen un paso más hacia la ingeniería de software: – permite que gente común haga cosas que antes requerían virtuosismo.
  • 3. Patrones: el Reuso de la Experiencia • Los diseñadores expertos manejan patrones recurrentes de clases y colaboraciones útiles ante determinados problemas. • Los patrones resuelven problemas concretos y crean diseños más elegantes, flexibles y reutilizables. Permiten la reutilización de la experiencia en Diseño
  • 4. ¿Qué es un Patrón? Un patrón de arquitectura de software es un esquema genérico probado para solucionar un problema particular, el cual es recurrente dentro de un cierto contexto. Este esquema se especifica describiendo los componentes, con sus responsabilidades y relaciones.
  • 5. Características de los Patrones • Atacan problemas recurrentes que ocurren en situaciones específicas y dan una solución. • Documentan experiencias de diseño existentes y bien probadas. • Identifican y especifican abstracciones de alto nivel. • Proveen un vocabulario común y comprensible.
  • 6. Más Características de los Patrones • Son una forma de documentar la arquitectura del software. • Facilitan la construcción de software con propiedades definidas (propiedades particulares). – Interfaces intercambiables y modelo reutilizable. • Ayudan a construir arquitecturas heterogéneas y complejas.
  • 7. Patrones en la Ingeniería de Software • Pueden verse como bloques de construcción mentales, para tratar con distintos aspectos del diseño de software. • Hay patrones de arquitectura, patrones de diseño, patrones de procesos, patrones de interfaces, “idioms”. • No existen paradigmas o lenguajes específicos para implementar patrones de arquitectura, pero algunos proveen elementos útiles (orientación a objetos, polimorfismo, herencia, etc.).
  • 8. ¿Cómo se especifica un patrón? Patrón: Nombre del Patrón Contexto Situación de diseño que da lugar al problema. Problema Conjunto de fuerzas que surgen del contexto. Solución Configuración para balancear las fuerzas Componentes y relaciones (estructura) Comportamiento dinámico
  • 9. Contexto • Extiende la dicotomía problema-solución. • Describe el escenario donde se da el problema. • La descripción del contexto puede ser bastante general o muy específica. Por ejemplo: – “desarrollar software con una interfaz humano- computador”. – “implementar el mecanismo de cambio-propagación en MVC”. • Es muy difícil definir completamente el contexto. • Listar todas las situaciones en que el problema surge puede ser una alternativa.
  • 10. Problema • Describe el problema genérico que surge en el contexto especificado. • Esencia: ¿cuál aspecto del problema debemos resolver? – El problema generalmente varía, pero la escencia se mantiene. • Las fuerzas describen aspectos más específicos del problema con distintos puntos de vista, y hasta pueden contradecirse. Pueden ser: – requisitos de la solución – restricciones – propiedades deseables/indeseables
  • 11. Solución • Es la forma de balancear las fuerzas para resolver el problema. • Dos aspectos o componentes de la solución: – Estructura estática - componentes y relaciones. – Comportamiento dinámico - forma de organización y colaboración entre las componentes. • La solución no siempre toma en cuenta todas las fuerzas. • Hay que establecer prioridades, si las fuerzas son contradictorias. • Se debe establecer un esquema de soluciones y no algo completamente definido (demasiado especificado, y por ende, restrictivo).
  • 12. Relación entre Patrones • “Cada patrón depende de los patrones más pequeños que contiene y de los más grandes donde está contenido.” • Distintos aspectos de un sistema pueden resolverse con distintos patrones. • Existen variantes de ciertos patrones para situaciones especiales.
  • 13. Descripción de Patrones • Una descripción apropiada permite la comprensión, el análisis y la discusión del patrón. • La definición del Contexto-Problema-Solución es un buen punto de partida. • Los buenos nombres se convierten en jerga o modismos. • Ejemplos, diagramas, escenarios y guías para la implementación también pueden formar parte de la definición de un patrón. • Discusión de beneficios y debilidades ayudan a tomar mejores decisión respecto a su uso.