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

Más contenido relacionado

DOC
Cuadro comparativo de los modelos de proceso del software (1)
PPTX
Cuadro comparativo
PDF
Design patterns tutorials
PPTX
Cuadro comparativo Modelos de Software.
PPTX
Diagrama de dominio armando
PPTX
Sesión 3: Modelos prescriptivos de proceso
PDF
Principios diseño del software
Cuadro comparativo de los modelos de proceso del software (1)
Cuadro comparativo
Design patterns tutorials
Cuadro comparativo Modelos de Software.
Diagrama de dominio armando
Sesión 3: Modelos prescriptivos de proceso
Principios diseño del software

La actualidad más candente (20)

PPTX
Ciclo Vida del Software
PPTX
MODELO DE PROCESOS DEL SOFTWARE
PPTX
Herramientas case
PDF
Preguntas sobre metodología RUP
DOC
Plan de pruebas
PPTX
Estilos arquitectónicos
PPTX
Diagrama paquetes, colaboracion y componetes
PPTX
Prototipo evolutivo
PPTX
Presentacion Modelo Espiral Prototipo
PPT
Rup disciplinas
PDF
Principios del RUP
PPTX
Diagrama de clases
PPT
Bridge pattern
PPTX
Vistas Arquitectonicas Ingenieria de Software
PPTX
Modelos o Ciclos de vida de software
PPTX
Ingenieria de requerimientos 1
PDF
Cuadro comparativo
DOCX
RUP - Fase de Elaboración
PPTX
Diagramas de paquetes
PPTX
Prototipado
Ciclo Vida del Software
MODELO DE PROCESOS DEL SOFTWARE
Herramientas case
Preguntas sobre metodología RUP
Plan de pruebas
Estilos arquitectónicos
Diagrama paquetes, colaboracion y componetes
Prototipo evolutivo
Presentacion Modelo Espiral Prototipo
Rup disciplinas
Principios del RUP
Diagrama de clases
Bridge pattern
Vistas Arquitectonicas Ingenieria de Software
Modelos o Ciclos de vida de software
Ingenieria de requerimientos 1
Cuadro comparativo
RUP - Fase de Elaboración
Diagramas de paquetes
Prototipado
Publicidad

Destacado (20)

PDF
Patrones de diseño de software
PPTX
Introducción a los Patrones de diseño de software
PDF
Patrones de diseño
PPT
Patrones de diseño I
PDF
Patrones estructurales
PDF
Patrones diseño de software
PDF
Patrones de diseño de GoF
PDF
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
PPSX
Presentacion Patrones Creacionales
PPTX
Emprendimiento Tecnológico
PPTX
Mada metodología ágil de desarrollo de apis
PPTX
Definición de apis con swagger
DOCX
Analisis ¿No es eso para personas poco inteligentes?
PPTX
Conceptos introductorios al diseño de Servicios SOA
PPT
Patrones de diseño en POO
PDF
Patrones de Diseño y Frameworks
ODP
Artesanos de software: El uso e implementación de patrones de diseño en siste...
DOCX
Orquestación de Servicios y SOA
PDF
PPT
Patrones Creacionales
Patrones de diseño de software
Introducción a los Patrones de diseño de software
Patrones de diseño
Patrones de diseño I
Patrones estructurales
Patrones diseño de software
Patrones de diseño de GoF
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
Presentacion Patrones Creacionales
Emprendimiento Tecnológico
Mada metodología ágil de desarrollo de apis
Definición de apis con swagger
Analisis ¿No es eso para personas poco inteligentes?
Conceptos introductorios al diseño de Servicios SOA
Patrones de diseño en POO
Patrones de Diseño y Frameworks
Artesanos de software: El uso e implementación de patrones de diseño en siste...
Orquestación de Servicios y SOA
Patrones Creacionales
Publicidad

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

PPTX
Desarrollo basado en patrones
PPTX
Patrones diseño y arquitectura
PPTX
Patrones de Diseño
PPT
6070_TRECALDE_00288.ppt
PPTX
U5.pptx
PPT
patronesdiseño2009.ppt
PDF
Semana 1 Patrones de Diseño
PDF
Construcción de Software (Patrones)
PDF
S07_s1 -h Patrones de Diseño-páginas.pdf
PPT
PDF
Patrones de Diseño de Software
PDF
06 patrones
PPTX
Catalogo de patrones 0
PPT
Patrones de diseño - Andrés Dorado
PDF
Patrones de diseño I
PPT
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
PPT
Patrones de diseño - Henry Vallejo
PPTX
Introducción a DDD
Desarrollo basado en patrones
Patrones diseño y arquitectura
Patrones de Diseño
6070_TRECALDE_00288.ppt
U5.pptx
patronesdiseño2009.ppt
Semana 1 Patrones de Diseño
Construcción de Software (Patrones)
S07_s1 -h Patrones de Diseño-páginas.pdf
Patrones de Diseño de Software
06 patrones
Catalogo de patrones 0
Patrones de diseño - Andrés Dorado
Patrones de diseño I
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
Patrones de diseño - Henry Vallejo
Introducción a DDD

Más de Germania Rodriguez (20)

PDF
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
PDF
Gestión de proyectos PMBok
PDF
Introducción gestión de proyectos informáticos
PDF
Tecnologías sociales para OCW
PDF
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
PDF
Gestión de ti arquitectura empresarial
PDF
Gestión de ti introduccion cobit itil pmi
PPTX
Presentación Open Day Oportunidad UTPL
PPTX
Presentación ddi 2012 proyecto cepra
PDF
Automatas y compiladores analisis sintactico
PDF
Automatas y compiladores tablas de transición análisis léxico
PDF
Automatas y compiladores clase4
PDF
Automatas y compiladores clase3
PDF
Automatas y compiladores clase2
PDF
Arquitectura aplicaciones clase3
PDF
Arquitectura aplicaciones clase2
PDF
Automatas y compiladores clase1
PPTX
Si nueva economia junio 2010
PPT
Sociedad de información evolucion ti
PPT
IntroduccióN Sociedad De InformacióN
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Gestión de proyectos PMBok
Introducción gestión de proyectos informáticos
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
Gestión de ti introduccion cobit itil pmi
Presentación Open Day Oportunidad UTPL
Presentación ddi 2012 proyecto cepra
Automatas y compiladores analisis sintactico
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores clase4
Automatas y compiladores clase3
Automatas y compiladores clase2
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase2
Automatas y compiladores clase1
Si nueva economia junio 2010
Sociedad de información evolucion ti
IntroduccióN Sociedad De InformacióN

Último (20)

PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
PDF
informe tipos de Informatica perfiles profesionales _pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
IPERC...................................
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
Modelo Educativo SUB 2023versión final.pdf
PPTX
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
PPTX
Historia-Clinica-de-Emergencia-Obstetrica 1.10.pptx
PDF
CURRICULAR DE PRIMARIA santa ursula..pdf
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PDF
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
informe tipos de Informatica perfiles profesionales _pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
IPERC...................................
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Modelo Educativo SUB 2023versión final.pdf
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PLANES DE área ciencias naturales y aplicadas
Historia-Clinica-de-Emergencia-Obstetrica 1.10.pptx
CURRICULAR DE PRIMARIA santa ursula..pdf
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA

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