SlideShare a Scribd company logo
1 of 17
Download to read offline
Arquitectura de Aplicaciones

         Germania Rodríguez
        grrodriguez@utpl.edu.ec
Patrones de Diseño
•  Introducción
  – La construcción de software – tarea
    complicada
  – Depende de la experiencia de las personas
    - desarrolladores
  – El 80% de los aportes viene del 20% del
    personal
  – El 80% del esfuerzo está en el 20% del
    código desarrollado
Patrones de Diseño


Objetivo REUTILIZACIÓN
Patrones de Diseño

•  Mecanismos de reutilización
  – Componentes
  – Frameworks
  – Objetos distribuidos
  – PATRONES DE DISEÑO
Patrones de Diseño

“Cada patrón describe un problema que
  ocurre una y otra vez en nuestro entorno,
  para describir después el núcleo de la
  solución a ese problema, de tal manera
  que esa solución pueda ser usada más de
  un millón de veces sin hacerlo siquiera dos
  veces de la misma forma” - Christopher
  Alexander
Patrones de Diseño
•  Objetivo: crear un lenguaje común a
   una comunidad de desarrolladores para
   comunicar experiencia sobre los
   problemas y sus soluciones
Patrones de Diseño
•  Características
  –  Solucionar un problema
  –  Ser un concepto probado
  –  La solución no es obvia
  –  Describe participantes y sus relaciones
Patrones de Diseño
•  Elementos
  1.    El nombre del patrón
  2.    El problema
  3.    La solución
  4.    Las consecuencias - resultados
Patrones de Diseño
•  Clasificación
                                           Propósito
Ámbito
                 Patrones de               Patrones         Patrones de
                  Creación               estructurales    Comportamiento
 Clase      •     Factory Method    •    Adapter (de     •    Interpreter
                                         clases)         •    Template Method

 Objeto    •     Abstract Factory   •    Adapter (de     •  Chain of
           •     Builder                 objetos)        Responsibility
           •     Prototype          •    Bridge          •  Command
           •     Singleton          •    Composite       •  Iterator
                                    •    Decorator       •  Mediator
                                    •    Facade          •  Memento
                                    •    Flyweight       •  Observer
                                    •    Proxy           •  State
                                                         •  Strategy
                                                         •  Visitor
Patrones de Diseño
                     PATRONES DE CREACIÓN
Su propósito principal es abstraer el proceso de creación de instancias.
Ayudan a hacer un sistema independiente de cómo se crean, se componen y
se representan sus objetos - Un patrón de clases usa la herencia para cambiar
la clase de la instancia a crear, mientras que un patrón de objetos delega la
creación de la instancia en otro objeto. Éstos a su vez se clasifican en:
     Fabrica Abstracta (Abstract Factory)
          Proporciona una interfaz para crear familias de objetos o que
          dependen entre sí, sin especificar sus clases concretas.
     Constructor (Builder)
          Separa la construcción de un objeto de su representación.
     Método de Fábrica (Factory Method)
          Define una interfaz para crear un objeto.
     Prototipo (Prototype)
          Especifica los tipos de objetos a crear por medio de una instancia
          prototípica y crea nuevos objetos copiando dicho prototipo.
     Instancia única (Singleton)
          Garantiza que una clase solo tenga una instancia
Patrones de Diseño
                    PATRONES ESTRUCTURALES
Se ocupan de cómo se combinan las clases y los objetos para formar estructuras
más grandes - Los patrones estructurales de clases hacen uso de la herencia para
componer interfaces o implementaciones. En éste tipo de patrones se encuentran:
    Adaptador (Adapter)
         Convierte la interfaz de una clase en otra interfaz que es la que esperan
         los clientes.
    Puente (Bridge)
         Desacopla una abstracción de su implementación
    Compuesto (Composite)
         Compone objetos en estructuras de árbol para representar jerarquías de
         parte-todo.
    Decorador (Decorator)
         Asigna responsabilidades adicionales a un objeto dinámicamente
    Fachada (Facade)
         Proporciona una interfaz unificada para un conjunto de interfaces de un
         subsistema.
    Peso ligero (Flyweight)
         Una instancia de grano fino usada para compartir eficientemente
    Apoderado (Proxy)
         Un objeto representando otro objeto
Patrones de Diseño
                 PATRONES DE COMPORTAMIENTO
Tienen que ver con algoritmos y con la asignación de responsabilidades a objetos.
Describen no solo patrones de clases y objetos, sino también patrones de
comunicación entre ellos.
     Cadena de responsabilidad (Chain of responsibility)
          Encadena los objetos receptores y pasa la petición a través de la cadena
          hasta que es procesada por algún objeto.
     Orden (Command)
          Encapsula una petición orden como un objeto.
     Interprete (Interpreter)
           Define una forma para incluir elementos de lenguaje en un programa
     Iterador (Iterator)
          Proporciona un modo secuencial para acceder a los elementos de una
          colección
     Mediador (Mediator)
          Define comunicación simplificada entre clases
     Recuerdo (Memento)
          Captura y restaura el estado interno de un objeto.
Patrones de Diseño
            PATRONES DE COMPORTAMIENTO
Observador (Observer)
     Define una dependencia de uno a muchos entre objetos
Estado (State)
     Permite que un objeto modifique su comportamiento cada vez que
     cambie su estado interno.
Estrategia (Strategy)
     Define una familia de algoritmos, encapsula cada uno de ellos y los hace
     intercambiables.
Método Plantilla (Template method)
     Define en una operación el esqueleto de un algoritmo, delegando en las
     subclases algunos de sus pasos.
Visitante (Visitor)
     Representa una operación sobre los elementos de una estructura de
     objetos.
Patrones de Diseño
•  ¿Cómo seleccionar un patrón de
   diseño?
 •    Tipo de problema a resolver
 •    Que tipos de problemas solucionan un patrón determinado
 •    Observar las interrelaciones de los patrones
 •    Visión sistémica (todo)
 •    Piense que debería ser variable en su diseño.
Patrones de Diseño
•  ¿Cómo usar un patrón de diseño?
  •  Familiarizarse con el Patrón: estructura, participantes y
     colaboraciones.
  •  Examine algunos ejemplos de su codificación
  •  Elija nombres significativos en el contexto de la aplicación
  •  Defina las clases
  •  Defina nombres especificos de la aplicación para las
     operaciones del patrón
  •  Implemente las operaciones para llevar a cabo las
     responsabilidades y colaboraciones del patrón.
Patrones de Diseño
•  Patrones y Frameworks
  – L o s p a t r o n e s d e d i s e ñ o s o n m á s
    abstractos que los frameworks
  – Los patrones de diseño son elementos
    arquitectónicos más pequeños que los
    frameworks
  – Los patrones están menos especializados
    que los framework
Bibliografía
•  Gamma E., Helm R., Johnson R., Vlissides J., Patrones de
   diseño: Elementos de software orientado a objetos reutilizable,
   Pearson Education S.A., Madrid 2003.
•  C a l d e r o n J . , S i s t e m a s I V , h t t p : / / w w w. s l i d e s h a r e . n e t /
   videoconferencias/sistemas-iv, UTPL 2007

More Related Content

What's hot

Análisis y diseño de sistemas sesion 15 - casos de estudio
Análisis y diseño de sistemas   sesion 15 - casos de estudioAnálisis y diseño de sistemas   sesion 15 - casos de estudio
Análisis y diseño de sistemas sesion 15 - casos de estudioGianfrancoEduardoBra
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de softwareGuillermo Lemus
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de softwareWilfredo Mogollón
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
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
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRequisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRene Guaman-Quinche
 

What's hot (20)

Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Diseño a Nivel de Componentes
Diseño a Nivel de ComponentesDiseño a Nivel de Componentes
Diseño a Nivel de Componentes
 
Análisis y diseño de sistemas sesion 15 - casos de estudio
Análisis y diseño de sistemas   sesion 15 - casos de estudioAnálisis y diseño de sistemas   sesion 15 - casos de estudio
Análisis y diseño de sistemas sesion 15 - casos de estudio
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Principios del RUP
Principios del RUPPrincipios del RUP
Principios del RUP
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Modelo Cascada!!
Modelo Cascada!!Modelo Cascada!!
Modelo Cascada!!
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de software
 
Metodología rup
Metodología rupMetodología rup
Metodología rup
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
MVC
MVCMVC
MVC
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
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
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRequisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 

Viewers also liked

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
Introducción a los Patrones de diseño de software
Introducción a los Patrones de diseño de softwareIntroducción a los Patrones de diseño de software
Introducción a los Patrones de diseño de softwareYazmin RuBo
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesJuan Camilo
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Emprendimiento Tecnológico
Emprendimiento TecnológicoEmprendimiento Tecnológico
Emprendimiento TecnológicoArturo Garrido
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apisCloudAppi
 
Definición de apis con swagger
Definición de apis con swaggerDefinición de apis con swagger
Definición de apis con swaggerj_copete
 
Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?Abimael Desales López
 
Conceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOAConceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOAAbimael Desales López
 
Patrones de diseño en POO
Patrones de diseño en POOPatrones de diseño en POO
Patrones de diseño en POOEl Taller Web
 
Patrones de Diseño y Frameworks
Patrones de Diseño y FrameworksPatrones de Diseño y Frameworks
Patrones de Diseño y FrameworksDaniel Cam Urquizo
 
Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...Software Guru
 
patrones de diseño web.
  patrones de diseño web.   patrones de diseño web.
patrones de diseño web. Diana Luna
 

Viewers also liked (20)

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Introducción a los Patrones de diseño de software
Introducción a los Patrones de diseño de softwareIntroducción a los Patrones de diseño de software
Introducción a los Patrones de diseño de software
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Emprendimiento Tecnológico
Emprendimiento TecnológicoEmprendimiento Tecnológico
Emprendimiento Tecnológico
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apis
 
Definición de apis con swagger
Definición de apis con swaggerDefinición de apis con swagger
Definición de apis con swagger
 
Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?
 
Conceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOAConceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOA
 
Patrones de diseño en POO
Patrones de diseño en POOPatrones de diseño en POO
Patrones de diseño en POO
 
Patrones de Diseño y Frameworks
Patrones de Diseño y FrameworksPatrones de Diseño y Frameworks
Patrones de Diseño y Frameworks
 
Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...
 
Orquestación de Servicios y SOA
Orquestación de Servicios y SOAOrquestación de Servicios y SOA
Orquestación de Servicios y SOA
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Patrones Creacionales
Patrones CreacionalesPatrones Creacionales
Patrones Creacionales
 
patrones de diseño web.
  patrones de diseño web.   patrones de diseño web.
patrones de diseño web.
 

Similar to Arquitectura aplicaciones Patrones de diseño

Similar to Arquitectura aplicaciones Patrones de diseño (20)

Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
 
6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt
 
U5.pptx
U5.pptxU5.pptx
U5.pptx
 
patronesdiseño2009.ppt
patronesdiseño2009.pptpatronesdiseño2009.ppt
patronesdiseño2009.ppt
 
Semana 1 Patrones de Diseño
Semana 1   Patrones de DiseñoSemana 1   Patrones de Diseño
Semana 1 Patrones de Diseño
 
chuy
chuy chuy
chuy
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)
 
Astema3
Astema3Astema3
Astema3
 
Patrones de Diseño de Software
Patrones de Diseño de SoftwarePatrones de Diseño de Software
Patrones de Diseño de Software
 
06 patrones
06 patrones06 patrones
06 patrones
 
Catalogo de patrones 0
Catalogo de patrones 0Catalogo de patrones 0
Catalogo de patrones 0
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptCC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
Buider Patron de Diseño
Buider Patron de DiseñoBuider Patron de Diseño
Buider Patron de Diseño
 

More from Germania Rodriguez

Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...Germania Rodriguez
 
Introducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticosIntroducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticosGermania Rodriguez
 
Tecnologías sociales para OCW
Tecnologías sociales para OCWTecnologías sociales para OCW
Tecnologías sociales para OCWGermania Rodriguez
 
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Germania Rodriguez
 
Gestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGermania Rodriguez
 
Gestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmiGestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmiGermania Rodriguez
 
Presentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPLPresentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPLGermania Rodriguez
 
Presentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepraPresentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepraGermania Rodriguez
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoGermania Rodriguez
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoGermania Rodriguez
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4Germania Rodriguez
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3Germania Rodriguez
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2Germania Rodriguez
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Germania Rodriguez
 
Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Germania Rodriguez
 
Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1Germania Rodriguez
 
Sociedad de información evolucion ti
Sociedad de información evolucion tiSociedad de información evolucion ti
Sociedad de información evolucion tiGermania Rodriguez
 
IntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNIntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNGermania Rodriguez
 

More from Germania Rodriguez (20)

Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
 
Gestión de proyectos PMBok
Gestión de proyectos PMBokGestión de proyectos PMBok
Gestión de proyectos PMBok
 
Introducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticosIntroducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticos
 
Tecnologías sociales para OCW
Tecnologías sociales para OCWTecnologías sociales para OCW
Tecnologías sociales para OCW
 
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
 
Gestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarial
 
Gestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmiGestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmi
 
Presentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPLPresentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPL
 
Presentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepraPresentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepra
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxico
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
 
Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2
 
Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1
 
Si nueva economia junio 2010
Si nueva economia junio 2010Si nueva economia junio 2010
Si nueva economia junio 2010
 
Sociedad de información evolucion ti
Sociedad de información evolucion tiSociedad de información evolucion ti
Sociedad de información evolucion ti
 
IntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNIntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióN
 

Recently uploaded

2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 

Recently uploaded (20)

Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 

Arquitectura aplicaciones Patrones de diseño

  • 1. Arquitectura de Aplicaciones Germania Rodríguez grrodriguez@utpl.edu.ec
  • 2. Patrones de Diseño •  Introducción – La construcción de software – tarea complicada – Depende de la experiencia de las personas - desarrolladores – El 80% de los aportes viene del 20% del personal – El 80% del esfuerzo está en el 20% del código desarrollado
  • 4. Patrones de Diseño •  Mecanismos de reutilización – Componentes – Frameworks – Objetos distribuidos – PATRONES DE DISEÑO
  • 5. Patrones de Diseño “Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo siquiera dos veces de la misma forma” - Christopher Alexander
  • 6. Patrones de Diseño •  Objetivo: crear un lenguaje común a una comunidad de desarrolladores para comunicar experiencia sobre los problemas y sus soluciones
  • 7. Patrones de Diseño •  Características –  Solucionar un problema –  Ser un concepto probado –  La solución no es obvia –  Describe participantes y sus relaciones
  • 8. Patrones de Diseño •  Elementos 1.  El nombre del patrón 2.  El problema 3.  La solución 4.  Las consecuencias - resultados
  • 9. Patrones de Diseño •  Clasificación Propósito Ámbito Patrones de Patrones Patrones de Creación estructurales Comportamiento Clase •  Factory Method •  Adapter (de •  Interpreter clases) •  Template Method Objeto •  Abstract Factory •  Adapter (de •  Chain of •  Builder objetos) Responsibility •  Prototype •  Bridge •  Command •  Singleton •  Composite •  Iterator •  Decorator •  Mediator •  Facade •  Memento •  Flyweight •  Observer •  Proxy •  State •  Strategy •  Visitor
  • 10. Patrones de Diseño PATRONES DE CREACIÓN Su propósito principal es abstraer el proceso de creación de instancias. Ayudan a hacer un sistema independiente de cómo se crean, se componen y se representan sus objetos - Un patrón de clases usa la herencia para cambiar la clase de la instancia a crear, mientras que un patrón de objetos delega la creación de la instancia en otro objeto. Éstos a su vez se clasifican en: Fabrica Abstracta (Abstract Factory) Proporciona una interfaz para crear familias de objetos o que dependen entre sí, sin especificar sus clases concretas. Constructor (Builder) Separa la construcción de un objeto de su representación. Método de Fábrica (Factory Method) Define una interfaz para crear un objeto. Prototipo (Prototype) Especifica los tipos de objetos a crear por medio de una instancia prototípica y crea nuevos objetos copiando dicho prototipo. Instancia única (Singleton) Garantiza que una clase solo tenga una instancia
  • 11. Patrones de Diseño PATRONES ESTRUCTURALES Se ocupan de cómo se combinan las clases y los objetos para formar estructuras más grandes - Los patrones estructurales de clases hacen uso de la herencia para componer interfaces o implementaciones. En éste tipo de patrones se encuentran: Adaptador (Adapter) Convierte la interfaz de una clase en otra interfaz que es la que esperan los clientes. Puente (Bridge) Desacopla una abstracción de su implementación Compuesto (Composite) Compone objetos en estructuras de árbol para representar jerarquías de parte-todo. Decorador (Decorator) Asigna responsabilidades adicionales a un objeto dinámicamente Fachada (Facade) Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema. Peso ligero (Flyweight) Una instancia de grano fino usada para compartir eficientemente Apoderado (Proxy) Un objeto representando otro objeto
  • 12. Patrones de Diseño PATRONES DE COMPORTAMIENTO Tienen que ver con algoritmos y con la asignación de responsabilidades a objetos. Describen no solo patrones de clases y objetos, sino también patrones de comunicación entre ellos. Cadena de responsabilidad (Chain of responsibility) Encadena los objetos receptores y pasa la petición a través de la cadena hasta que es procesada por algún objeto. Orden (Command) Encapsula una petición orden como un objeto. Interprete (Interpreter) Define una forma para incluir elementos de lenguaje en un programa Iterador (Iterator) Proporciona un modo secuencial para acceder a los elementos de una colección Mediador (Mediator) Define comunicación simplificada entre clases Recuerdo (Memento) Captura y restaura el estado interno de un objeto.
  • 13. Patrones de Diseño PATRONES DE COMPORTAMIENTO Observador (Observer) Define una dependencia de uno a muchos entre objetos Estado (State) Permite que un objeto modifique su comportamiento cada vez que cambie su estado interno. Estrategia (Strategy) Define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables. Método Plantilla (Template method) Define en una operación el esqueleto de un algoritmo, delegando en las subclases algunos de sus pasos. Visitante (Visitor) Representa una operación sobre los elementos de una estructura de objetos.
  • 14. Patrones de Diseño •  ¿Cómo seleccionar un patrón de diseño? •  Tipo de problema a resolver •  Que tipos de problemas solucionan un patrón determinado •  Observar las interrelaciones de los patrones •  Visión sistémica (todo) •  Piense que debería ser variable en su diseño.
  • 15. Patrones de Diseño •  ¿Cómo usar un patrón de diseño? •  Familiarizarse con el Patrón: estructura, participantes y colaboraciones. •  Examine algunos ejemplos de su codificación •  Elija nombres significativos en el contexto de la aplicación •  Defina las clases •  Defina nombres especificos de la aplicación para las operaciones del patrón •  Implemente las operaciones para llevar a cabo las responsabilidades y colaboraciones del patrón.
  • 16. Patrones de Diseño •  Patrones y Frameworks – L o s p a t r o n e s d e d i s e ñ o s o n m á s abstractos que los frameworks – Los patrones de diseño son elementos arquitectónicos más pequeños que los frameworks – Los patrones están menos especializados que los framework
  • 17. Bibliografía •  Gamma E., Helm R., Johnson R., Vlissides J., Patrones de diseño: Elementos de software orientado a objetos reutilizable, Pearson Education S.A., Madrid 2003. •  C a l d e r o n J . , S i s t e m a s I V , h t t p : / / w w w. s l i d e s h a r e . n e t / videoconferencias/sistemas-iv, UTPL 2007