SlideShare una empresa de Scribd logo
1 de 35
CONTEXTO
                     ANALISTAS Y DISEÑADORES




     PROGRAMADORES
javiergs@acm.org                     2
ANTECEDENTES




javiergs@acm.org   3
EXPECTACTIVAS


                   ¿Qué esperas aprender en este taller ?




javiergs@acm.org                                            4
OBJETIVO
  Conocer el concepto de patrón de software y las tres dimensiones del software
utilizando patrones: el producto, el usuario y el ambiente. Haciéndolo consciente de
la necesidad del uso de patrones de software en la aplicación de metodologías
de desarrollo ágil.

  Familiarizarse con el vocabulario de patrones y aplicarlos como una forma de
comunicación compartida por la empresa y los expertos; entender que los patrones
nos ayudan a expresar y comunicar conocimiento.

   Responder a la pregunta genérica ¿cómo fabricar software de manera
correcta?

  Ser capaz de aplicar los patrones en el proceso de creación de software




javiergs@acm.org                                                      5
AGENDA
  1. Principios de patrones de software: arquitectura, diseño, codificación y gestión de proyectos.

  2. Creación de objetos con patrones: Abstract Factory, Factory Method, Builder, Prototype,
     Singleton.


  3. Estructura de objetos con patrones. Adapter, Bridge, Composite, Decorator, Facade.

  4. Comportamiento de objetos con patrones. Chain of Responsabilities, Memento, Observer,
     Strategy, Visitor.


  5. Patrones de Patrones, combinando conceptos: Blackboard, MVC, Layers, Pipes & Filter.

  6. Patrones en la Gestión del proyecto. Nuevos horizontes en la conceptualización de buenas
     prácticas.


  7. Patrones en la vida real. Casos de estudio: patrones en proyectos de su empresa.



javiergs@acm.org                                                                     6
CALENDARIO


                    Sábado 06 de Diciembre de 9:00 a 13:00 hrs.

                    Sábado 13 de Diciembre de 9:00 a 13:00 hrs.

                    Sábado 20 de Diciembre de 9:00 a 13:00 hrs.

                   Sábado 10 de Enero (2009) de 9:00 a 13:00 hrs.




javiergs@acm.org                                                    7
1.1.
Principios de patrones de software:
conceptos
CONTEXTO
                     ANALISTAS Y DISEÑADORES




     PROGRAMADORES
javiergs@acm.org                     9
OOSE
                                                          UML
                                                                         Cada modelos es examinado o
               Construir modelos que representan al                 manipulado por un grupo de stakeholders
                             sistema

                                           Objetos, tipos, clases

                                                               sistemático
                                                                                    código
                              cambiante
    informal                                                                                                  modelo

                  Problema                                                                   sistema
                     real
                                                        OO-SE
    complejo



                        Requerimientos – Analisis – Diseño - Implementacion -- Pruebas
                        abstracto       -          iteraciones      -         concreto


javiergs@acm.org                                                                                   10
CONCEPTO

     "Cada patrón describe un problema que ocurre infinidad de veces en
     nuestro entorno, así como la solución al mismo, de tal modo que
     podemos utilizar esta solución un millón de veces más adelante sin
     tener que volver a pensarla otra vez.“

     – Christopher Alexander (arquitecto) :: 1979



     23 Patrones de diseño GoF

     – Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides) :: 1990




javiergs@acm.org                                                    11
BENEFICIOS

     Formalizar un vocabulario común.

     Estandarizar el modo en que se realiza el diseño.

     Facilitar el aprendizaje condensando conocimiento ya existente




javiergs@acm.org                                               12
El modelo LEGO

    La “creatividad” es positiva …




                                     … componentes

javiergs@acm.org                             13
La vida REAL




javiergs@acm.org   14
1.2.
Principios de patrones de software:
en práctica
De monitos a CÓDIGO

                                                    lista
Clases                          tesorería

Métodos

Variables

Relaciones          profesor

Complejidad

Tiempo

Costo
                       alumno
                                            grupo
 javiergs@acm.org                                      16
De monitos a CÓDIGO

                    Un profesor puede estudiar en la escuela (ser alumno).


                    En la universidad existe una tesorería única donde se
                   concentran todos los pagos.


                    Un grupo es un conjunto de alumnos que reciben el mismo trato


                    Cada profesor cuenta con una lista donde registra asistencias y
                   calificaciones de sus alumnos.


                     Cuando un alumno no realiza su pago mensual es sacado de su
                   grupo.


javiergs@acm.org                                                            17
Hablando de Relaciones


    a) Ser               a) Observar

    b) Usar              b) Encubrir a…

    c) Tener             c) Decorar a…

                         d) Soy único

                         e) Yo construyo a…

                         f)   Trabajar con …

                         g) Soy parte de …



javiergs@acm.org                               18
El modelo LEGO


                   a) Relaciones

                   b) Mini-componentes incluyentes

                   c) Autonomía

                   d) Estándar

                   e) El “cambio” es mi amigo

                   f)   Creatividad

                   g) Producto predecible



javiergs@acm.org                            19
EJEMPLO DE DISEÑO

                                              Problema:
                    Restringir la creación de objetos
                    pertenecientes a una clase o el
                    valor de un tipo a un único objeto.


                                             Solución :
                    Garantizar que una clase sólo tenga
                    una instancia y proporcionar un
                    punto de acceso global a ella.


                                                 Patrón :




javiergs@acm.org                            20
EJEMPLO EN CÓDIGO

 public class Tesoreria {

   private static Tesoreria TESORERIA = null;

   private Tesoreria() {
   }

   public static Tesoreria getTesoreria() {
    if (TESORERIA == null)
     TESORERIA = new Tesoreria();
    return INSTANCE;
   }

   // El resto de la clase va aquí

 }




javiergs@acm.org                                21
Y más…
        composición                decorador
                                                        observador




                                                        fabrica
                               estrategia



                   singleton
                                            decorador
javiergs@acm.org                                          22
Elementos UML




javiergs@acm.org   23
1.3.
Principios de patrones de software:
adopción
Arquitectura… y de software…




javiergs@acm.org               25
Fundamentos

      Necesidad
                                     Notación
      requerimientos




         modelos       Proceso
       (diagramas)     metodología         Herramientas


      Producto

javiergs@acm.org                                26
METODOLOGÍA




javiergs@acm.org   27
El arquitecto
  Arquitectura de software

     NO IMPLICA DETALLES DE IMPLEMENTACION

  Arquitecto

     Obtener Información del problema y diseñar solución que
     satisfaga requerimiento (funcionales, no funcionales)

  PERO

     Apoyándose en patrones, modelos y Framework

  ADEMAS DE

     Participar activamente en el desarrollo. PERO no es un desarrollador
     Generar lineamientos GENERALES a considerarse en la creación de
     FAMILIAS de productos.
javiergs@acm.org                                                      28
Arquitectura y Patrones
                                 Aplicación o
                   física                          Datos
                                  negocio


                                  Clase o tipo


                                     Estilos
                                 arquitectónicos


                                 arquitectura




                            componente             patrón




javiergs@acm.org                                            29
Cualidades del Software
     Estáticas:
     Modificabilidad,
     Portabilidad,
     Reusabilidad,
     Integrabilidad,
     Verificabilidad.

                        Dinámicas:
                        Desempeño,
                        Disponibilidad,
                        Funcionalidad,
                        Usabilidad.

                                          Arquitectónicas:
                                          Integridad Conceptual,
                                          Correctitud,
                                          Completitud,
                                          Factibilidad económica
javiergs@acm.org                                                   30
Modelo de Aplicación




javiergs@acm.org       31
1.4.
Principios de patrones de software:
clasificación
Clasificación
ANTI - PATRONES
                                                            • Java
                                             Código         • .Net
                                                            • PHP



                                                               • Creación
                                                   Diseño      • Estructura
                                                               • Comportamiento




                   Pruebas                 Arquitectura
                                                                      PATRONES
                             Gestión del
                              Proyecto



javiergs@acm.org                                                 33
Cierre del Día 1




javiergs@acm.org   34
Javier González Sánchez


                      javiergs@acm.org

                            / in / javiergs




javiergs@acm.org                              35

Más contenido relacionado

La actualidad más candente

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ijjegonzalezf
 
Patrones bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puenteMario Cabrera
 
Presentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFPresentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFjuansoto86
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patronesMarvin Zumbado
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creaciónAutentia
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamientoJuan Camilo
 
Introducción a los patrones de diseño
Introducción a los patrones de diseñoIntroducción a los patrones de diseño
Introducción a los patrones de diseñoMario Solarte
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño IIjjegonzalezf
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetoskarlalopezbello
 
Patrones diseno software
Patrones diseno softwarePatrones diseno software
Patrones diseno softwarejjegonzalezf
 

La actualidad más candente (20)

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patrones bridge puente
Patrones bridge puentePatrones bridge puente
Patrones bridge puente
 
Patrones Creacionales
Patrones CreacionalesPatrones Creacionales
Patrones Creacionales
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Presentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFPresentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoF
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creación
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamiento
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
06 patrones
06 patrones06 patrones
06 patrones
 
Introducción a los patrones de diseño
Introducción a los patrones de diseñoIntroducción a los patrones de diseño
Introducción a los patrones de diseño
 
Patrones de Diseño: Prototype
Patrones de Diseño: PrototypePatrones de Diseño: Prototype
Patrones de Diseño: Prototype
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetos
 
Patrones diseno software
Patrones diseno softwarePatrones diseno software
Patrones diseno software
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 

Destacado

Proyecto: Las Tics como herramieta para motivar a los alumnos
Proyecto: Las Tics como herramieta para motivar a los alumnosProyecto: Las Tics como herramieta para motivar a los alumnos
Proyecto: Las Tics como herramieta para motivar a los alumnosDorafregoso02
 
Estrategias didácticas con tic
Estrategias didácticas con ticEstrategias didácticas con tic
Estrategias didácticas con ticDesirée Jiménez
 
Estrategias de las TICs en el aula
Estrategias de las TICs en el aulaEstrategias de las TICs en el aula
Estrategias de las TICs en el aulamfalminati
 
Estrategias Didacticas para la Enseñanza en Entornos Virtuales
Estrategias Didacticas para la Enseñanza en Entornos VirtualesEstrategias Didacticas para la Enseñanza en Entornos Virtuales
Estrategias Didacticas para la Enseñanza en Entornos VirtualesRaymond Marquina
 
CHFA Presentation
CHFA PresentationCHFA Presentation
CHFA Presentationkristinalee
 
Estrategias didácticas con TIC
Estrategias didácticas con TICEstrategias didácticas con TIC
Estrategias didácticas con TICCarmary Acosta
 
ESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJE
ESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJEESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJE
ESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJELeonardo Sanchez
 

Destacado (14)

200405 - Aplicaciones Web
200405 - Aplicaciones Web200405 - Aplicaciones Web
200405 - Aplicaciones Web
 
Paving the Way
Paving the WayPaving the Way
Paving the Way
 
Proyecto: Las Tics como herramieta para motivar a los alumnos
Proyecto: Las Tics como herramieta para motivar a los alumnosProyecto: Las Tics como herramieta para motivar a los alumnos
Proyecto: Las Tics como herramieta para motivar a los alumnos
 
200508 - Bases de Datos
200508 - Bases de Datos200508 - Bases de Datos
200508 - Bases de Datos
 
Motivación del estudiante mediante las tic
Motivación del estudiante mediante las ticMotivación del estudiante mediante las tic
Motivación del estudiante mediante las tic
 
Estrategias didácticas con tic
Estrategias didácticas con ticEstrategias didácticas con tic
Estrategias didácticas con tic
 
Estrategias de las TICs en el aula
Estrategias de las TICs en el aulaEstrategias de las TICs en el aula
Estrategias de las TICs en el aula
 
ESTRATEGIAS DIDÁCTICAS APOYADAS EN TECNOLOGÍA
ESTRATEGIAS DIDÁCTICAS APOYADAS EN TECNOLOGÍAESTRATEGIAS DIDÁCTICAS APOYADAS EN TECNOLOGÍA
ESTRATEGIAS DIDÁCTICAS APOYADAS EN TECNOLOGÍA
 
Estrategias Didacticas para la Enseñanza en Entornos Virtuales
Estrategias Didacticas para la Enseñanza en Entornos VirtualesEstrategias Didacticas para la Enseñanza en Entornos Virtuales
Estrategias Didacticas para la Enseñanza en Entornos Virtuales
 
CHFA Presentation
CHFA PresentationCHFA Presentation
CHFA Presentation
 
201505 - CSE340 Lecture 01
201505 - CSE340 Lecture 01201505 - CSE340 Lecture 01
201505 - CSE340 Lecture 01
 
201500 Cognitive Informatics
201500 Cognitive Informatics201500 Cognitive Informatics
201500 Cognitive Informatics
 
Estrategias didácticas con TIC
Estrategias didácticas con TICEstrategias didácticas con TIC
Estrategias didácticas con TIC
 
ESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJE
ESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJEESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJE
ESTRATEGIAS DIDÁCTICAS CREATIVAS EN ENTORNOS VIRTUALES PARA EL APRENDIZAJE
 

Similar a 200812 - Patrones de Diseño de Software (parte 1/4)

Similar a 200812 - Patrones de Diseño de Software (parte 1/4) (20)

chuy
chuy chuy
chuy
 
Astema3
Astema3Astema3
Astema3
 
201205 Arquitectura de Software
201205 Arquitectura de Software201205 Arquitectura de Software
201205 Arquitectura de Software
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
 
Diapositivas inge soft 2
Diapositivas inge soft 2Diapositivas inge soft 2
Diapositivas inge soft 2
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
U5.pptx
U5.pptxU5.pptx
U5.pptx
 
CLASIFICACIÓN DE LAS METODOLOGÍAS DE DESARROLLO DE SOFTWARE
CLASIFICACIÓN DE LAS METODOLOGÍAS DE DESARROLLO DE SOFTWARECLASIFICACIÓN DE LAS METODOLOGÍAS DE DESARROLLO DE SOFTWARE
CLASIFICACIÓN DE LAS METODOLOGÍAS DE DESARROLLO DE SOFTWARE
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
patronesdiseño2009.ppt
patronesdiseño2009.pptpatronesdiseño2009.ppt
patronesdiseño2009.ppt
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii 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
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
 
Introducción Patrones de Diseño
Introducción Patrones de DiseñoIntroducción Patrones de Diseño
Introducción Patrones de Diseño
 
DiseñO De Sitemas
DiseñO De SitemasDiseñO De Sitemas
DiseñO De Sitemas
 
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 en e-learning
Patrones de Diseño en e-learningPatrones de Diseño en e-learning
Patrones de Diseño en e-learning
 
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
 

Más de Javier Gonzalez-Sanchez (20)

201804 SER332 Lecture 01
201804 SER332 Lecture 01201804 SER332 Lecture 01
201804 SER332 Lecture 01
 
201801 SER332 Lecture 03
201801 SER332 Lecture 03201801 SER332 Lecture 03
201801 SER332 Lecture 03
 
201801 SER332 Lecture 04
201801 SER332 Lecture 04201801 SER332 Lecture 04
201801 SER332 Lecture 04
 
201801 SER332 Lecture 02
201801 SER332 Lecture 02201801 SER332 Lecture 02
201801 SER332 Lecture 02
 
201801 CSE240 Lecture 26
201801 CSE240 Lecture 26201801 CSE240 Lecture 26
201801 CSE240 Lecture 26
 
201801 CSE240 Lecture 25
201801 CSE240 Lecture 25201801 CSE240 Lecture 25
201801 CSE240 Lecture 25
 
201801 CSE240 Lecture 24
201801 CSE240 Lecture 24201801 CSE240 Lecture 24
201801 CSE240 Lecture 24
 
201801 CSE240 Lecture 23
201801 CSE240 Lecture 23201801 CSE240 Lecture 23
201801 CSE240 Lecture 23
 
201801 CSE240 Lecture 22
201801 CSE240 Lecture 22201801 CSE240 Lecture 22
201801 CSE240 Lecture 22
 
201801 CSE240 Lecture 21
201801 CSE240 Lecture 21201801 CSE240 Lecture 21
201801 CSE240 Lecture 21
 
201801 CSE240 Lecture 20
201801 CSE240 Lecture 20201801 CSE240 Lecture 20
201801 CSE240 Lecture 20
 
201801 CSE240 Lecture 19
201801 CSE240 Lecture 19201801 CSE240 Lecture 19
201801 CSE240 Lecture 19
 
201801 CSE240 Lecture 18
201801 CSE240 Lecture 18201801 CSE240 Lecture 18
201801 CSE240 Lecture 18
 
201801 CSE240 Lecture 17
201801 CSE240 Lecture 17201801 CSE240 Lecture 17
201801 CSE240 Lecture 17
 
201801 CSE240 Lecture 16
201801 CSE240 Lecture 16201801 CSE240 Lecture 16
201801 CSE240 Lecture 16
 
201801 CSE240 Lecture 15
201801 CSE240 Lecture 15201801 CSE240 Lecture 15
201801 CSE240 Lecture 15
 
201801 CSE240 Lecture 14
201801 CSE240 Lecture 14201801 CSE240 Lecture 14
201801 CSE240 Lecture 14
 
201801 CSE240 Lecture 13
201801 CSE240 Lecture 13201801 CSE240 Lecture 13
201801 CSE240 Lecture 13
 
201801 CSE240 Lecture 12
201801 CSE240 Lecture 12201801 CSE240 Lecture 12
201801 CSE240 Lecture 12
 
201801 CSE240 Lecture 11
201801 CSE240 Lecture 11201801 CSE240 Lecture 11
201801 CSE240 Lecture 11
 

Último

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (20)

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

200812 - Patrones de Diseño de Software (parte 1/4)

  • 1.
  • 2. CONTEXTO ANALISTAS Y DISEÑADORES PROGRAMADORES javiergs@acm.org 2
  • 4. EXPECTACTIVAS ¿Qué esperas aprender en este taller ? javiergs@acm.org 4
  • 5. OBJETIVO Conocer el concepto de patrón de software y las tres dimensiones del software utilizando patrones: el producto, el usuario y el ambiente. Haciéndolo consciente de la necesidad del uso de patrones de software en la aplicación de metodologías de desarrollo ágil. Familiarizarse con el vocabulario de patrones y aplicarlos como una forma de comunicación compartida por la empresa y los expertos; entender que los patrones nos ayudan a expresar y comunicar conocimiento. Responder a la pregunta genérica ¿cómo fabricar software de manera correcta? Ser capaz de aplicar los patrones en el proceso de creación de software javiergs@acm.org 5
  • 6. AGENDA 1. Principios de patrones de software: arquitectura, diseño, codificación y gestión de proyectos. 2. Creación de objetos con patrones: Abstract Factory, Factory Method, Builder, Prototype, Singleton. 3. Estructura de objetos con patrones. Adapter, Bridge, Composite, Decorator, Facade. 4. Comportamiento de objetos con patrones. Chain of Responsabilities, Memento, Observer, Strategy, Visitor. 5. Patrones de Patrones, combinando conceptos: Blackboard, MVC, Layers, Pipes & Filter. 6. Patrones en la Gestión del proyecto. Nuevos horizontes en la conceptualización de buenas prácticas. 7. Patrones en la vida real. Casos de estudio: patrones en proyectos de su empresa. javiergs@acm.org 6
  • 7. CALENDARIO Sábado 06 de Diciembre de 9:00 a 13:00 hrs. Sábado 13 de Diciembre de 9:00 a 13:00 hrs. Sábado 20 de Diciembre de 9:00 a 13:00 hrs. Sábado 10 de Enero (2009) de 9:00 a 13:00 hrs. javiergs@acm.org 7
  • 8. 1.1. Principios de patrones de software: conceptos
  • 9. CONTEXTO ANALISTAS Y DISEÑADORES PROGRAMADORES javiergs@acm.org 9
  • 10. OOSE UML Cada modelos es examinado o Construir modelos que representan al manipulado por un grupo de stakeholders sistema Objetos, tipos, clases sistemático código cambiante informal modelo Problema sistema real OO-SE complejo Requerimientos – Analisis – Diseño - Implementacion -- Pruebas abstracto - iteraciones - concreto javiergs@acm.org 10
  • 11. CONCEPTO "Cada patrón describe un problema que ocurre infinidad de veces en nuestro entorno, así como la solución al mismo, de tal modo que podemos utilizar esta solución un millón de veces más adelante sin tener que volver a pensarla otra vez.“ – Christopher Alexander (arquitecto) :: 1979 23 Patrones de diseño GoF – Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides) :: 1990 javiergs@acm.org 11
  • 12. BENEFICIOS Formalizar un vocabulario común. Estandarizar el modo en que se realiza el diseño. Facilitar el aprendizaje condensando conocimiento ya existente javiergs@acm.org 12
  • 13. El modelo LEGO La “creatividad” es positiva … … componentes javiergs@acm.org 13
  • 15. 1.2. Principios de patrones de software: en práctica
  • 16. De monitos a CÓDIGO lista Clases tesorería Métodos Variables Relaciones profesor Complejidad Tiempo Costo alumno grupo javiergs@acm.org 16
  • 17. De monitos a CÓDIGO Un profesor puede estudiar en la escuela (ser alumno). En la universidad existe una tesorería única donde se concentran todos los pagos. Un grupo es un conjunto de alumnos que reciben el mismo trato Cada profesor cuenta con una lista donde registra asistencias y calificaciones de sus alumnos. Cuando un alumno no realiza su pago mensual es sacado de su grupo. javiergs@acm.org 17
  • 18. Hablando de Relaciones a) Ser a) Observar b) Usar b) Encubrir a… c) Tener c) Decorar a… d) Soy único e) Yo construyo a… f) Trabajar con … g) Soy parte de … javiergs@acm.org 18
  • 19. El modelo LEGO a) Relaciones b) Mini-componentes incluyentes c) Autonomía d) Estándar e) El “cambio” es mi amigo f) Creatividad g) Producto predecible javiergs@acm.org 19
  • 20. EJEMPLO DE DISEÑO Problema: Restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Solución : Garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella. Patrón : javiergs@acm.org 20
  • 21. EJEMPLO EN CÓDIGO public class Tesoreria { private static Tesoreria TESORERIA = null; private Tesoreria() { } public static Tesoreria getTesoreria() { if (TESORERIA == null) TESORERIA = new Tesoreria(); return INSTANCE; } // El resto de la clase va aquí } javiergs@acm.org 21
  • 22. Y más… composición decorador observador fabrica estrategia singleton decorador javiergs@acm.org 22
  • 24. 1.3. Principios de patrones de software: adopción
  • 25. Arquitectura… y de software… javiergs@acm.org 25
  • 26. Fundamentos Necesidad Notación requerimientos modelos Proceso (diagramas) metodología Herramientas Producto javiergs@acm.org 26
  • 28. El arquitecto Arquitectura de software NO IMPLICA DETALLES DE IMPLEMENTACION Arquitecto Obtener Información del problema y diseñar solución que satisfaga requerimiento (funcionales, no funcionales) PERO Apoyándose en patrones, modelos y Framework ADEMAS DE Participar activamente en el desarrollo. PERO no es un desarrollador Generar lineamientos GENERALES a considerarse en la creación de FAMILIAS de productos. javiergs@acm.org 28
  • 29. Arquitectura y Patrones Aplicación o física Datos negocio Clase o tipo Estilos arquitectónicos arquitectura componente patrón javiergs@acm.org 29
  • 30. Cualidades del Software Estáticas: Modificabilidad, Portabilidad, Reusabilidad, Integrabilidad, Verificabilidad. Dinámicas: Desempeño, Disponibilidad, Funcionalidad, Usabilidad. Arquitectónicas: Integridad Conceptual, Correctitud, Completitud, Factibilidad económica javiergs@acm.org 30
  • 32. 1.4. Principios de patrones de software: clasificación
  • 33. Clasificación ANTI - PATRONES • Java Código • .Net • PHP • Creación Diseño • Estructura • Comportamiento Pruebas Arquitectura PATRONES Gestión del Proyecto javiergs@acm.org 33
  • 34. Cierre del Día 1 javiergs@acm.org 34
  • 35. Javier González Sánchez javiergs@acm.org / in / javiergs javiergs@acm.org 35