Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El Camino
Qu es un Patrn de Diseo (PD) Qu no es un PD
Qu es un Patrn de Diseo
Qu es el diseo?Qu es un patrn? Qu es un patrn de diseo? El diseo es una actividad
El cmo frente al qu Hacerlo correcto frente a hacer lo correcto Asignar responsabilidades a las clases
Qu es un Patrn de Diseo
Algunas propiedades no funcionales Reutilizacin Facilidad de modificacin Facilidad de comprensin Robustez Eficiencia Facilidad de uso En ocasiones es ms importante el aspecto de la calidad que el aspecto funcional Las tcnicas para conseguir la calidad estn menos desarrolladas que las utilizadas para conseguir la funcionalidad
Qu es un Patrn de Diseo
Caminos posibles durante el desarrollo de un proyecto software
Aspectos no funcionales
Deseable
Previsin de entregas
Habitual
Aspectos funcionales
Qu es un Patrn de Diseo
Por lo tanto el diseador debe
Encontrar una solucin que consiga el equilibrio ptimo entre las propiedades no funcionales
Si damos el mismo documento de requisitos a 10 diseadores, obtendremos 10 diseos diferentes
Qu es un Patrn de Diseo
Orgenes de los PP.DD Definiciones Clasificacin Ejemplo: PD Singleton
Qu es un Patrn de Diseo
Orgenes de los PP.DD Definiciones Clasificacin Ejemplo: PD Singleton
Qu es un PD
1977 1979
Qu es un PD
Ward Cunnighan
Kent Beck
OOPSLA 87
1. 2. 3. 4. 5.
Window per Task Few Panes Standard Panes Nouns and Verbs Short Menus
Qu es un PD
Orgenes de los PP.DD 1990. Erich Gamma asiste a una charla de Bruce Andersen en un taller del OOPSLA, titulada Architecture Handbook. Esta realizando su tesis doctoral y necesita desarrollar un Framework C++ para aplicaciones grficas multiplataforma (ET++)
Richard Helm
Ralph Johnson
John Vlissides
Qu es un PD
Orgenes de los PP.DD 1993. Beck y Booch sufragan un retiro en las montaas de colorado. Nace el HillSide
1994. Hillside organiza la primera edicin del PLOP (Patterns Languages of Program Design). La banda de los cuatro venden ms de 750 ejemplares de su libro (10 veces ms que cualquier libro hasta entonces)
Qu es un PD
Orgenes de los PP.DD Lecciones aprendidas Los PP.DD han surgido tomando ideas de otras disciplinas (la arquitectura las toma a su vez de la Biologa) Los PP.DD han tenido su origen en la Academia y no en la industria (es de los pocos ejemplos) Las tesis doctorales sirven para algo El mundo anglosajn suele hacer un uso intensivo de los grupos de presin en todos los mbitos
Qu es un PD
Orgenes de los PP.DD Definiciones Clasificacin Ejemplo: PD Singleton
Qu es un PD
Definiciones
De manera general
Patrn: Modelo que sirve de muestra para sacar otra cosa igual (RAE)
Patrn de diseo: Una solucin general a un problema general que puede adaptarse a un problema concreto
http://www.textile-creation-club.com/esp/patrones.htm
Qu es un PD
Definiciones
En Arquitectura
Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno. Tambin describe el ncleo de la solucin al problema, de forma que puede utilizarse un milln de veces sin hacer dos veces lo mismo
Tcnica de descripcin Par problema-solucin Recurrente Slo el ncleo, no es una solucin completa Reutilizable
Qu es un PD
Definiciones
Qu es un PD
Definiciones
Qu es un PD
Orgenes de los PP.DD Definiciones Clasificacin Ejemplo: PD Singleton
Clasificacin
Clasificacin
Catlogo de la GoF
Creacional
Estructural
De Comportamiento
Cadena de Responsabilidad, Comando, Iterador, Mediador, Memento, Observador, Estado, Estrategia, Visitante, Mtodo Plantilla
Clasificacin
Clasificacin
Catlogo de Grand
Qu es un PD
Orgenes de los PP.DD Definiciones Clasificacin Ejemplo: PD Singleton
6. Estructura:
Singleton -instance : Singleton = null -Singleton() +getInstance() : Singleton if (instance == null) instance= new Singleton(); return instance;
El Camino
Qu es un Patrn de Diseo (PD) Qu no es un PD
El camino
Bibliotecas Frameworks Idioms Antipatrones Refactorizaciones
Bibliotecas (Toolkits)
Tambin conocidas como libreras y Toolkits Conjunto de clases diseado para ser reutilizados: TADs, manejo de perifricos, grficos, gestin de documentos XML. Pueden verse como el equivalente en OO de las bibliotecas de subrutinas Influencia baja en el diseo de la aplicacin cliente Una cuestin clave de su diseo reside en conseguir facilidad de uso para el mximo nmero de escenarios sin complicar la interfaz ni reducir el rendimiento Bibliotecas vs PP.DD
Son comparables?
Qu contienen? Cul es su tamao medio?
El Camino
Bibliotecas Frameworks Idioms Antipatrones Refactorizaciones
Constituan un marco de trabajo para el desarrollo de aplicaciones Visual Basic populariz el concepto en la industria
Qu es un framework hoy
Conjunto de clases parcialmente funcional para un dominio de aplicacin Slo les falta aquello que es propio del problema Ejemplos: AWT, Swing, Struts, Junit, Compact Framework, James (genuinamente andaluz) Gran influencia baja en el diseo de la aplicacin cliente Frameworks vs PP.DD
Son comparables?
Qu contienen? Cul es su tamao medio?
El principio de Hollywood
El principio de Hollywood
Ventajas e inconvenientes
Experiencia del diseador Es difcil usar ms de un framework al mismo del framework tiempo Costes de produccin Son difciles de construir y reducidos de aprender a usar
El camino
Bibliotecas Frameworks Idioms Antipatrones Refactorizaciones
Idioms
Una forma caracterstica de utilizar un LP [Fiadeiro] Patrn de bajo nivel especfico de un LP. Describen soluciones a problemas de implementacin de un determinado LP [Buschmann] gestin de memoria en C++ Idiom K-R: while (*dest++=*src++) Para algunos, el Singleton no es un patrn de diseo Una coleccin de idioms conforman un estilo Las diferencias entre PP.DD e idioms son difusas Algunos PP.DD de hoy sern idioms maana
Iterator, singleton [Gamma] interface [Grand]
El camino
Bibliotecas Frameworks Idioms Antipatrones Refactorizaciones
Antipatrones
Se aprende ms de los errores que de los aciertos Intentan reutilizar conocimiento de modo similar a los PP.DD Capturan experiencia The blob Poltergeists Cut and paste Spaguetti code .
El camino
Bibliotecas Frameworks Idioms Antipatrones Refactorizaciones
Refactorizaciones
M. Fowler las ha popularizado No siempre se consigue un diseo adecuado qu hacer en tales situaciones? Nada. En ocasiones es lo ms rentable Refactorizar en las sucesivas operaciones de mantenimiento La refactorizacin mantiene invariable la funcionalidad Estan organizadas en catlogos Muchas de ellas estn muy relacionadas con PP.DD Pull-up. Muy relacionada con el PD Template Method
!Gracias!
Podemos mejorar esta leccin?
Mndanos un email a aruiz@us.es Visite la web de la asignatura www.lsi.us.es