Está en la página 1de 30

DISEO BASADO EN Haga clic para modificar el estilo de subttulo del patrn PATRONES

Que es?
Un patrn de diseo no es ms que una solucin general a un problema. Los patrones de diseo utilizan un conjunto de buenas prcticas, que permiten que la comunidad de la ingeniera de software aborde el conocimiento de diseo en forma tal para crear sistemas reutilizables y fciles de mantener.

Quien lo hace?

Un ingeniero de software estudia cada problema hallado para una nueva aplicacin y despus trata de encontrar una solucin relevante, buscando de un deposito de patrones

Porque es importante?
Al utilizar diseos de patrones existentes, se adquiere una solucin probada para un problema especifico. A medida que se aplica cada patrn, las soluciones se integran y la aplicacin que se va elaborar se acerca mas al diseo final

Cual es el Producto final ?

Se desarrolla un modelo del diseo que ilustra la arquitectura de software, la interfaz de usuario y los detalles en el nivel de componentes.

Patrones de diseo
De manera simple, un buen patrn de diseo incorpora el conocimiento de diseo pragmtico, ganado con dificultad, en una forma que permite que otros lo reutilicen. un milln de veces sin elaborarla dos veces de la misma forma, si se usa con eficacia, los patrones de diseo invariablemente harn del lector un buen diseador de software.

Clases de patrones
Los patrones de diseo abarcan un amplio espectro de abstraccin y aplicaciones, los principales son:

Creacionales Conductuales Estructurales

creacionales: se centran en la creacin, composicin y representacin de objetos.


1. 2. 3. 4. 5.

Patrn de fabrica abstracta Patrn de mtodo de fabricacin Patrn constructor Patrn de Prototipo De instancia nica

Patrones estructurales: se centrar en problemas y soluciones asociados con la manera en la que se organiza en integran las clases y objetos para construir una estructura mas grande. En esencia ayuda a establecer relaciones entre entidades en un sistemas
1. 2. 3. 4. 5. 6. 7.

Patrn adaptador Patrn agregado Patrn de puente Patrn compuesto Patrn contenedor Patrn de proximidad Tubos y filtros

Patrones conductuales: se enfocan a problemas asociados con la asignacin de responsabilidad entre los objetos y la manera en la que se efecta la comunicacin entre ellos
1. 2. 3. 4. 5. 6. 7. 8. 9.

Cadena de patrones de responsabilidad Patrn de comando Escucha de eventos patrn interprete Patrn iterador Patrn mediador Patrn visitante Patrn visitante de un solo servicio Patrn visitante jerrquico

Estructuras
Una estructura no es un patrn arquitectnico sino un esqueleto con varios puntos de conexin (tambin llamados ganchos o ranuras) que permiten adaptarlo un dominio de problemas especifico Diferencias entre los patrones de diseos y las estructuras
1.

2.

3.

Los patrones de diseo son mas abstractos que las estructuras Los patrones de diseo son elementos arquitectnicos mas pequeos que las estructuras Los patrones de diseo estn menos especializados que las estructuras

Descripcin de un patrn
El diseo basado en patrones comienza con el reconocimiento de patrones en la aplicacin que se trata de construir, continua con una bsqueda para determinar si otros han usado el patrn y termina con la aplicacin de un patrn apropiado para el problema de que se trate.

Lenguajes y repositorios de patrones

Un lenguaje de patrn agrupa un conjunto de patrones, cada uno de los cuales se describe con el uso de un formato estandarizado e interrelacionado para mostrar como colabora los patrones para resolver problemas en un dominio de aplicacin.

Diseo de software basado en patrones


La aplicacin del diseo basado en patrn al desarrollo del software promete a este los mismos beneficios que tiene la tecnologa industrial: Ser predecible, disminuir el riesgo y aumentar la productividad.

DISEO BASADO EN PATRONES EN CONTEXTO

Pensar en patrones
SHALLOWAY Y TROTT sugieren el siguiente enfoque, que permite que un diseador piense en patrones:
1. 2. 3. 4. 5.

6.

asegurarse de entender el panorama estudiar el panorama comenzar el diseo con patrones del panorama trabajar dentro del contexto repetir los pasos uno a cuatro hasta que el diseo este completo mejorar el diseo

Tareas de diseo
Se llevan a cabo las primeras tareas:
1. Examinar el modelo de requerimientos y desarrollar una jerarqua del problema
2. determinar si se ha desarrollado un lenguaje del patrn confiable para el dominio del problema 3. A partir de un problema amplio determinar si para el mismo se dispone de uno o mas patrones arquitectnicos 4. con el uso de colaboraciones provistas para el patrn arquitectnico, deben estudiarse los problemas en el nivel del subsistema o componentes y buscar los patrones apropiados para enfrentarnos 5. repetir los pasos dos a cinco hasta que se hayan resuelto todos los problemas amplios 6. si los problemas de diseo de la interfaz de usuario han sido aislados ( este es el caso casi siempre), buscar los muchos depsitos de patrones de diseo de la interfaz de usuario para encontrar patrones apropiados 7. sin importar su nivel de abstraccin, si resulta promisorio un lenguaje de patrn o un deposito de patrones o un patrn individual, hay que comparar el problema por resolver con el patrn o patrones presentados 8. asegurarse de retirar el diseo a medida que se obtiene de los patrones, con el empleo de criterios de calidad como gua

Construccin de una tabla para organizar el patrn


A medida que avanza el diseo basado en patrones, quiz se encuentre problemas para organizar y clasificar candidatos que surjan de mltiples lenguajes y repositorios de patrones . Para ayudar a organizar la evaluacin de los patrones candidatos, Microsoft sugiere crear una tabla de organizacin de patrones que tenga la forma general que se ilustra:

Errores comunes en el diseo


El diseo basado en patrones lo har un mejor diseador de software, pero no es una solucin completa, igual que todos los mtodos de diseo debe comenzarse con los principios, con el nfasis en los fundamentos de calidad del software y el aseguramiento de que el diseo si satisface las necesidades expresadas por el modelo de requerimientos. Cuando se emplea el diseo basado en patrones, suelen ocurrir errores comunes. Una vez seleccionado el patrn equivocado se es renuente a reconocer el error y se fuerza el patrn para que se ajuste. En otros casos el problema tiene fuerzas que no son consideradas

Patrones arquitectnicos
Los patrones arquitectnicos para el software definen el enfoque especifico para el manejo de algunas caractersticas del sistema. Algunos ejemplos representativos: Control de acceso: El acceso a ciertas partes de la arquitectura del software debe controlarse de manera rigurosa definiendo el acceso a usuarios finales especficos.

Concurrencia: Es la manera en que una aplicacin maneja mltiples tareas simulando el paralelismo, hay distintas formas en la que una aplicacin maneja la concurrencia dependiendo el patrn arquitectnico como por ejemplo: Administrador de procesos del sistema operativo y programador de tareas.

Distribucin: Es la manera en que un sistema o los componentes se comunican entre si en un ambiente distribuido. Se toman en cuenta dos subproblemas: la forma en la que se conectan las entidades. la naturaleza de la comunicacin.

1. 2.

Para solucionar estos problemas se usar el Negociador. El cual se encarga de mediar entre el cliente y servidor. Persistencia: Los datos persistentes son los que sobreviven a la ejecucin del proceso que los creo para su respectivo almacenamiento ya sea en una base de datos o un archivo. En general se emplean dos patrones arquitectnicos para lograrla:
1. 2.

Sistema de administracin de base de datos Persistencia a nivel de aplicacin

Patrones de diseo en el nivel de componentes


Brindan soluciones comprobadas que se abocan a uno o mas subproblemas extrados del modelo de requerimientos. En muchos casos, estos patrones de diseo se centran en un requerimiento funcional de un sistema. Ejemplo Subproblema: Como pueden obtenerse especificaciones del producto e informacin acerca de cualquier dispositivo del sistema? Solucin: Buscando en un repositorio de patrones se encuentran algunos con la descripcin del problema que resuelve cada uno:

AdvancedSearch: Los usuarios deben encontrar un objeto especifico en una gran coleccin de ellos. SearchTips: Los usuarios requieren saber como controlar el motor de bsqueda. SearchResults: Los usuarios tienen que procesar una lista de resultados de una bsqueda.

Patrones de diseo de la interfaz de usuario


En los ltimos aos, se han propuesto cientos de patrones de interfaz de usuario (IU). La mayora se ubican en una de las siguientes 10 categoras.

Whole UI: Da un men de alto nivel, acoplado con frecuencia un logotipo o grafico identificador que permite la navegacin directa de cualquiera de las funciones principales del sistema. Distribucin de la pagina: Se utiliza cuando deben seleccionarse aleatoriamente cierto numero de subfunciones o categoras de contenido especificas relacionadas con una caracterstica o funcin. Formatos y entrada: permite introducir datos alfanumricos en un cuatro de texto. Tablas: Despliega una lista larga de registros que pueden

Manipulacin de datos: Brinda una ruta completa de navegacin cuando el usuario trabaja con una jerarqua compleja de paginas o pantallas. Navegacin: Brinda capacidades de edicin de texto sencillo para ciertos tipos de contenido en la ubicacin que se muestra en pantalla. Bsqueda: Da la capacidad de buscar un sitio web o fuente persistente de datos para un concepto simple de datos descritos por una cadena alfanumrica. Elementos de pagina: Lleva al usuario paso a paso a travs de una tarea compleja y lo gua para que la termine por medio de ventanas sencillas de pantalla. Comercio electrnico: Da una lista de artculos seleccionados para compra. Varios: Proporciona una indicacin de avance cuando una operacin dura mas de n segundos.

Patrones de diseo de WEBAPP


Cuando se consideran problemas de diseo que deben resolverse para construir un webApp, comnmente se consideran categoras de patrones en dos dimensiones:

Centrarse en el diseo ( arquitectura de informacin, navegacin e interaccin) Granularidad del diseo ( nivel de abstraccin: aplica a toda una pagina web, subsistema o componente individual? )

Centrarse en el diseo
Los patrones de webapps se clasifican con el empleo de los siguientes niveles de atencin en el diseo:

Patrones Patrones Patrones Patrones Patrones

de arquitectura de la informacin de navegacin de interaccin de presentacin funcionales

Granularidad del diseo


En trminos de nivel de granularidad, los patrones se describen en los niveles de:

Patrones arquitectnicos Patrones de diseo Patrones de componentes

PREGUNTAS

1) Cuales son las principales clases de patrones? A. puente, agregado y compuesto B. creacionales, conductuales y estructurales C. mediador, visitante y interprete D. prototipo, constructor y contenedor

2) Una __________ no es un patrn arquitectnico sino un esqueleto con varios puntos de conexin (tambin llamados ganchos o ranuras) que permiten adaptarlo un dominio de problemas especifico Repuesta: estructura 3) Los patrones de diseo son mas abstractos que las estructuras V_ o F_ Respuesta : V 4) Cual de las siguientes opciones pertenece a la clase Patrn Conductual: A. Patrn prototipo B. Patrn agregado C. Patrn de distribucin

5) Relacione la categora de cada Patrn de diseo de IU con su respectivo concepto. A) Formatos y entradaC Lleva al usuario paso a paso a travs de
una tarea compleja y lo gua para que la termine por medio de ventanas sencillas de pantalla F Brinda capacidades de edicin de texto sencillo para ciertos tipos de contenido en la ubicacin que se muestra en pantalla E Despliega una lista larga de registros que pueden ordenarse por medio de un mecanismo de cambio para cualquier etiqueta de columna A permite introducir datos alfanumricos en un cuatro de texto D Da una lista de artculos seleccionados para compra B Da un men de alto nivel, acoplado con frecuencia un logotipo o grafico identificador que permite la navegacin directa de cualquiera de las funciones

B)

Whole UI

C)

Elementos de pagina

D) E) F)

Comercio electrnico Tablas Navegacin

GRACIAS POR SU ATENCION

TERMINAMOS!!!

También podría gustarte