Está en la página 1de 14

13.Diseño basado en Patrones.

Link a la presentación Prof. Ramiro Estigarribia Canese


Introducción a Patrones.
➔ Muchas hemos encontrado un problema y pensamos si
alguien ya ha desarrollado esto. La respuesta casi
siempre es sí.
➔ El problema es encontrar la solución, y luego, estar
seguro de que en verdad se ajusta al problema, entender
las limitaciones que restringen su aplicación y, por último,
traducir la solución propuesta al ambiente de diseño.
¿Qué es el Diseño basado en Patrones?
➔ Consiste en crear una aplicación nueva, a partir de un conjunto
de soluciones probadas para el conjunto de problemas.
➔ Cada problema y su solución está descrito por un patrón de
diseño catalogado y analizado por otros ingenieros de
software que han encontrado la solución cuando diseñaban
otras aplicaciones.
➔ Cada patrón de diseño provee un enfoque demostrado para el
problema que debe resolverse.
¿Por qué es importante?
¿Ha escuchado la frase "reinventar la rueda"?
➔ Eso pasa todo el tiempo en el desarrollo de software y
representa una pérdida de tiempo y energía.
➔ Al utilizar patrones de diseño existentes, se adquiere
una solución probada para un problema específico.
➔ A medida que se aplica cada patrón, las soluciones se
integran y la aplicación que se va a elaborar se acerca
más al diseño final.
Muchas soluciones posibles
➔ Es razonable afirmar que la mayoría de problemas tienen
muchas soluciones, pero sólo es eficaz aquella que resulta
apropiada en el contexto del problema existente.
➔ El objetivo es proporcionar la solución que satisfaga mejor.
➔ Por último, toda solución tiene consecuencias que afectan
otros aspectos del software y que se vuelven parte del
sistema de fuerzas de otros problemas por resolver en el
sistema mayor.
Proceso de identificación de un patrón
➔ Comienza con el reconocimiento de patrones de la aplicación
que va a construir, continúa con una búsqueda para determinar
si otros han usado el patrón y termina con la aplicación del
patrón apropiado.
➔ Es frecuente que la segunda sea la tarea más difícil.
¿Cómo encontrar patrones que se ajustan a las necesidades?
➔ Una respuesta a esta pregunta debe basarse en la
comunicación eficaz del problema.
Lenguajes y repositorios de patrones
➔ El lenguaje tiene una sintaxis y semántica que se utiliza para
comunicar ideas en forma eficaz.
➔ Cuando se emplea el término lenguaje en el contexto de los
patrones de diseño, adopta un significado un poco distinto.
➔ Un lenguaje de patrón agrupa un conjunto de patrones, cada
uno de los cuales se describe con el uso de un formato
estandarizado para mostrar cómo colaboran los patrones para
resolver problemas.
Diseño de Software basado en Patrones
Los mejores diseñadores en cualquier campo tienen una
habilidad extraña para reconocer patrones que caracterizan un
problema, y asociarlos a una solución.

Un ingeniero del software debe observar cada oportunidad en


la que puedan reutilizar patrones de diseño existentes, en vez
de crear otros nuevos.
Patrones y Evolución
➔ Una de las razones por las que los ingenieros de software
están interesados (e intrigados) por los patrones de
diseño es que los seres humanos son inherentemente
buenos para reconocer patrones en general.
➔ Si no fuera así, estaríamos congelados en el tiempo y el
espacio: seríamos incapaces de aprender de nuestras
experiencias.
➔ Es la base de la evolución.
Ejemplo: Cuello de Botella
Imagine que va camino al trabajo por una avenida y le
avisan que ocurrió un accidente a 1 km.
Se encuentra a 1 km del accidente, pero ya vio que el tráfico
se hace lento. El patrón Cuello_de_Botella produce
resultados predecibles (embotellamiento), pero no hace
nada más que describir un fenómeno.
Se le llama patrón no generativo debido a que describe un
problema, pero no ofrece ninguna solución.
Estructuras de implementación
➔ Los patrones podrían no ser suficientes para desarrollar
un sistema completo.
➔ En ciertos casos, es necesario crear una estructura para
la implementación.
➔ Una estructura es un esqueleto con varios puntos de
conexión que permiten adaptar distintos patrones a un
dominio de problema específico.
Patrones de Diseño de WebApps
Cuando se considera construir una webapp, es bueno
considerar los siguiente patrones:
Patrones de arquitectura de la información: se relacionan
con la estructura general del espacio de información y con
las formas en las que los usuarios interactúan con ésta.
Patrones de Diseño de WebApps
Patrones de navegación: definen estructuras de los vínculos de
navegación, tales como jerarquías, anillos, recorridos, etcétera.
Patrones de interacción: contribuyen al diseño de la interfaz de
usuario.
Patrones de presentación: ayudan a presentar el contenido al
usuario a través de la interfaz.
Patrones funcionales: definen los flujos de trabajo,
comportamientos, procesamiento, comunicación y otros
elementos algorítmicos dentro de una webapp.
Resumen y Conclusiones
➔ Los patrones permiten describir problemas y su solución en
forma tal que permiten que la comunidad de ingeniería de
software diseñe el conocimiento para que sea reutilizado.
➔ Un patrón describe un problema, indica el contexto y permite
que el usuario entienda el ambiente en el que sucede el
problema, y finalmente y el modo en el que se aplica la
solución.

Cuestionario

También podría gustarte