Patrones de diseño
Patrones
• En las distintas actividades de la vida diaria
se reconocen patrones:
– Trabajo
– Vida familiar
– Hobbies
2
Hardware
habitualmente
Hardware
Software
Poder rehusar componentes y
lograr un mantenimiento fácil.
Lograr un software flexible
Problema
Solución
Patrones de diseño
Patrones de diseño
• Los patrones de diseño son elesqueleto de las
soluciones a problemas comunes en el desarrollo
de software.
• En otras palabras, brindan una solución ya
probada y documentada a problemas de desarrollo
de software que están sujetos a contextos
similares. Se debe tener presente los siguientes
elementos de un patrón: su nombre, el problema
(cuando aplicar un patrón), la solución
(descripción abstracta del problema) ylas
consecuencias (costos y beneficios).
Patrones de diseño
Los principales objetivos de los patrones de
diseños son estandarizar o esquematizar la
forma en como hoy en día se realiza el diseño,
facilitar el aprendizaje de generaciones
venideras, presentar catálogos de elementos
que pueden volver a ser utilizados en los
sistemas de software, crear un vocabulario o
una manera decomunicación entre los
diseñadores, evitar la búsqueda de soluciones
a problemas resueltos anteriormente.
Patrones de diseño (definición)
• “Son descripciones de clases y objetos
relacionados que están adaptados para
resolver un problema de diseño general en
un contexto determinado”.
Erich Gamma, Richard Helm, John Vlissides
y Ralph Johnson
Patrones de diseño
Ingeniero
Resuelveproblemas
Aplicando estándares
Las buenas soluciones permanecen, las malas se rechazan.
.
Los ingenieros deben conocer y saber aplicar los estándares conocidos
Patrones de diseño
• Se definen con un alto nivel de abstracción.
• Son independientes de los lenguajes de
programación y de los detalles de
implementación.
• Los patrones promueven y facilitan la
reutilización de arquitecturas ydiseños de
software que han demostrado su validez en
muchas aplicaciones.
Arquitectura
1. Define la forma y la estructura de la
aplicación de software.
2. Relacionada al propósito de la aplicación.
3. Arquitectura de módulos y sus
interconexiones
Patrones de diseño
Paquetes,
componentes,
clases
11
Evidencias de diseño erróneo
• Rigidez: problemas para insertar algún cambio.• Fragilidad: el software falla en muchos lugares al
insertar un cambio.
• Inmovilidad: no se pueden rehusar partes del
proyecto.
• Viscosidad:
» De diseño: cuando se deben hacer cambios,
es más fácil hacer cosas mal, que bien.
» De entorno: entorno de desarrollo ineficiente
12
Cambios de requerimientos
• Los cambios en un diseño de software, si no
fueron cambios previstos en eldiseño original,
degradan el mismo. Incluyen dependencias.
• Generalmente lo hacen ingenieros que no estaban
relacionados con la filosofía de diseño original.
13
Patrones de diseño
• Erich Gamma, Richard
Vlissides y Ralph Johnson
• Design Patterns.
• 1994
Helm,
John
Patrones de diseño
• Describe una estructura dentro de la cual
catalogar y describir patrones
• Cataloga23 patrones
• Destaca estrategias y aproximaciones
basadas en el diseño de patrones
Patrones de diseño
• No crearon los patrones descriptos en el
libro.
• Los descubrieron como existentes dentro
de la comunidad del software
Patrones de diseño
Porque estudiar patrones de diseño
• Reuso de soluciones de diseño.
• Establecer terminología común.
• Dan una perspectiva de alto nivelsobre el
análisis y diseño.
Que resuelve un patrón de
diseño?
• Patrón de diseño: proporciona un esquema
para refinar los subsistemas o componentes
de un sistema de software, o las relaciones
entre ellos. Describe estructuras repetitivas
de comunicación de componentes que
resuelven un problema de diseño en un
contexto particular
Patrones de diseño
•Programe para
implementación....
Regístrate para leer el documento completo.