SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
12.Diseño basado en Patrones.
Ramiro Estigarribia Canese
Introducción.
➔ 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 en
cuestión, 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 el
problema e implantado su 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, aun cuando éstas sean
contradictorias.
➔ 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 en la
aplicación que se trata de construir, continúa con
una búsqueda para determinar si otros han usado
el patrón y termina con la aplicación de un patrón
apropiado.
➔ Es frecuente que la segunda sea la tarea más
difícil. ¿Cómo se encuentran patrones que se
ajusten 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 o instrucciones de procedimiento
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 e interrelacionado para mostrar
cómo colaboran los patrones para resolver problemas
en un dominio de aplicación.
Dominio del Problema.
➔ El dominio del problema primero se describe de
manera jerárquica, comenzando con problemas de
diseño amplio asociados con el dominio, y luego se
refina cada uno de ellos en niveles de abstracción
más bajos.
➔ En un contexto de software, los problemas de
diseño amplio tienden a ser de naturaleza
arquitectónica y se abocan a la estructura general
de la aplicación y a los datos o contenido que le
dan servicio.
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: Patrón
“Cuello de Botella”.
Imagine que va camino al trabajo por Mcal.Lopez,
cuando le avisan que ocurrió un serio accidente.
Se encuentra a 3 km del accidente, pero ya vio que el
tráfico se hace lento.
El patrón CuellodeBotella 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 contexto y un problema, pero no ofrece
ninguna solución clara.
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 no es un patrón arquitectónico, sino
un esqueleto con varios “puntos de conexión”
(también llamados ganchos o ranuras) que
permiten adaptar distintos patrones a un dominio
de problema específico.
Patrones Arquitectónicos
Los patrones arquitectónicos para el software definen un
enfoque específico para el manejo de algunas
características del sistema:
Control de acceso. Hay situaciones en las que el acceso
a datos está limitado a usuarios finales definidos
específicamente.
Desde un punto de vista arquitectónico, el acceso a
cierta parte de la arquitectura del software debe
controlarse de manera rigurosa.
Concurrencia. Muchas aplicaciones deben manejar
tareas múltiples de manera que simule paralelismo.
Patrones de Diseño de
WebApps.
Cuando se consideran los problemas de diseño que
deben resolverse para construir una webapp, es
bueno considerar categorías de patrones en dos
dimensiones: centrarse en el diseño del patrón y en el
nivel de detalles.
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 de diseño dan un mecanismo
codificado para 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 enlista un sistema de
fuerzas que indican cómo puede interpretarse el
problema en su contexto, y el modo en el que se
aplica la solución.

Más contenido relacionado

La actualidad más candente

Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASEdavidsande
 
Ingeniería de requisitos y de requerimientos
Ingeniería de requisitos y de requerimientosIngeniería de requisitos y de requerimientos
Ingeniería de requisitos y de requerimientosunrated999
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rupmireya2022
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
Modelo de desarrollo de software espiral
Modelo de desarrollo de software espiralModelo de desarrollo de software espiral
Modelo de desarrollo de software espiralMarco Tinajero
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Cuadro comparativo s.o
Cuadro  comparativo s.oCuadro  comparativo s.o
Cuadro comparativo s.oriosofelia
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareRenny Batista
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrolloHermes Romero
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incrementalnoriver
 

La actualidad más candente (20)

Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASE
 
Ingeniería de requisitos y de requerimientos
Ingeniería de requisitos y de requerimientosIngeniería de requisitos y de requerimientos
Ingeniería de requisitos y de requerimientos
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Modelo de desarrollo de software espiral
Modelo de desarrollo de software espiralModelo de desarrollo de software espiral
Modelo de desarrollo de software espiral
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Cuadro comparativo s.o
Cuadro  comparativo s.oCuadro  comparativo s.o
Cuadro comparativo s.o
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrollo
 
Metodologia elicitacion
Metodologia elicitacionMetodologia elicitacion
Metodologia elicitacion
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incremental
 

Similar a 12.diseño basado en patrones

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.pptxGonzaloMartinezSilve
 
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ñolandeta_p
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
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-learningJosé Miguel Ruiz
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseñoNii Caytuiro
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseñoNii Caytuiro
 
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptCC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptBayronHernandez12
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosWilfredo Mogollón
 
Fundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo DeltaFundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo DeltaNicola Pizzi Castro
 

Similar a 12.diseño basado en patrones (20)

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
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
chuy
chuy chuy
chuy
 
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
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
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
 
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
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii 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
 
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
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptCC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetos
 
Fundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo DeltaFundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo Delta
 

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

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
 
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
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
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
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
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
 

Último (20)

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
 
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
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
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...
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.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
 

12.diseño basado en patrones

  • 1. 12.Diseño basado en Patrones. Ramiro Estigarribia Canese
  • 2. Introducción. ➔ 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 en cuestión, 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 el problema e implantado su 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, aun cuando éstas sean contradictorias. ➔ 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 en la aplicación que se trata de construir, continúa con una búsqueda para determinar si otros han usado el patrón y termina con la aplicación de un patrón apropiado. ➔ Es frecuente que la segunda sea la tarea más difícil. ¿Cómo se encuentran patrones que se ajusten 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 o instrucciones de procedimiento 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 e interrelacionado para mostrar cómo colaboran los patrones para resolver problemas en un dominio de aplicación.
  • 8. Dominio del Problema. ➔ El dominio del problema primero se describe de manera jerárquica, comenzando con problemas de diseño amplio asociados con el dominio, y luego se refina cada uno de ellos en niveles de abstracción más bajos. ➔ En un contexto de software, los problemas de diseño amplio tienden a ser de naturaleza arquitectónica y se abocan a la estructura general de la aplicación y a los datos o contenido que le dan servicio.
  • 9. 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.
  • 10. 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.
  • 11. Ejemplo: Patrón “Cuello de Botella”. Imagine que va camino al trabajo por Mcal.Lopez, cuando le avisan que ocurrió un serio accidente. Se encuentra a 3 km del accidente, pero ya vio que el tráfico se hace lento. El patrón CuellodeBotella 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 contexto y un problema, pero no ofrece ninguna solución clara.
  • 12. 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 no es un patrón arquitectónico, sino un esqueleto con varios “puntos de conexión” (también llamados ganchos o ranuras) que permiten adaptar distintos patrones a un dominio de problema específico.
  • 13. Patrones Arquitectónicos Los patrones arquitectónicos para el software definen un enfoque específico para el manejo de algunas características del sistema: Control de acceso. Hay situaciones en las que el acceso a datos está limitado a usuarios finales definidos específicamente. Desde un punto de vista arquitectónico, el acceso a cierta parte de la arquitectura del software debe controlarse de manera rigurosa. Concurrencia. Muchas aplicaciones deben manejar tareas múltiples de manera que simule paralelismo.
  • 14. Patrones de Diseño de WebApps. Cuando se consideran los problemas de diseño que deben resolverse para construir una webapp, es bueno considerar categorías de patrones en dos dimensiones: centrarse en el diseño del patrón y en el nivel de detalles. 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.
  • 15. 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.
  • 16. Resumen y Conclusiones ➔ Los patrones de diseño dan un mecanismo codificado para 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 enlista un sistema de fuerzas que indican cómo puede interpretarse el problema en su contexto, y el modo en el que se aplica la solución.