SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
13.Diseño basado en Patrones.
Prof. Ramiro Estigarribia Canese
Link a la presentación
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 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.
Patrones de Diseño de WebApps
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

Más contenido relacionado

La actualidad más candente

ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBFerjani Bassem
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
 
Security Concepts - Linux
Security Concepts - LinuxSecurity Concepts - Linux
Security Concepts - LinuxHenry Osborne
 
Richard Matthew Stallman - A Brief Biography
Richard Matthew Stallman - A Brief BiographyRichard Matthew Stallman - A Brief Biography
Richard Matthew Stallman - A Brief BiographyHackerEarth
 
Introduction to the linux command line.pdf
Introduction to the linux command line.pdfIntroduction to the linux command line.pdf
Introduction to the linux command line.pdfCesleySCruz
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónTensor
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 
Linux command ppt
Linux command pptLinux command ppt
Linux command pptkalyanineve
 
Metodología diseño físico de bases de datos
Metodología diseño físico de bases de datosMetodología diseño físico de bases de datos
Metodología diseño físico de bases de datosUTPL UTPL
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane FidelixCris Fidelix
 
2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)ninguna
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scriptingvceder
 

La actualidad más candente (20)

Metodologia crystal
Metodologia crystalMetodologia crystal
Metodologia crystal
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Security Concepts - Linux
Security Concepts - LinuxSecurity Concepts - Linux
Security Concepts - Linux
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Richard Matthew Stallman - A Brief Biography
Richard Matthew Stallman - A Brief BiographyRichard Matthew Stallman - A Brief Biography
Richard Matthew Stallman - A Brief Biography
 
Introduction to the linux command line.pdf
Introduction to the linux command line.pdfIntroduction to the linux command line.pdf
Introduction to the linux command line.pdf
 
Users and groups
Users and groupsUsers and groups
Users and groups
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Linux command ppt
Linux command pptLinux command ppt
Linux command ppt
 
Requisitos de software
Requisitos de softwareRequisitos de software
Requisitos de software
 
Metodología diseño físico de bases de datos
Metodología diseño físico de bases de datosMetodología diseño físico de bases de datos
Metodología diseño físico de bases de datos
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
 
2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)2.estructuras de sistemas operativos (1)
2.estructuras de sistemas operativos (1)
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
Vi editor
Vi editorVi editor
Vi editor
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scripting
 
Metodología ICONIX
Metodología ICONIXMetodología ICONIX
Metodología ICONIX
 

Similar a Diseño basado en patrones (20)

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
 
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
 
chuy
chuy chuy
chuy
 
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
 
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptCC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
 
2.modelos del proceso
2.modelos del proceso2.modelos del proceso
2.modelos del proceso
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
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
Patrones de  diseñoPatrones de  diseño
Patrones de diseño
 
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
 
Introducción Patrones de Diseño
Introducción Patrones de DiseñoIntroducción Patrones de Diseño
Introducción Patrones de Diseño
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii patrones de diseño
 
U5.pptx
U5.pptxU5.pptx
U5.pptx
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
patronesdiseño2009.ppt
patronesdiseño2009.pptpatronesdiseño2009.ppt
patronesdiseño2009.ppt
 

Más de Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdfRamiro Estigarribia Canese
 

Más de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 
Comprensión de los requerimientos
Comprensión de los requerimientosComprensión de los requerimientos
Comprensión de los requerimientos
 
CSS Hoja de estilo en cascada
CSS   Hoja de estilo en cascadaCSS   Hoja de estilo en cascada
CSS Hoja de estilo en cascada
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
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
 
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
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
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
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
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)
 
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
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
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
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Diseño basado en patrones

  • 1. 13.Diseño basado en Patrones. Prof. Ramiro Estigarribia Canese Link a la presentación
  • 2. 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.
  • 3. ¿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.
  • 4. ¿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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13. 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. Patrones de Diseño de WebApps
  • 14. 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