Está en la página 1de 34

*Qu es?

*Quin lo hace?
*Por qu es importante?
*Cules son los pasos?
*Cul es el producto final?
*Cmo me aseguro de que lo hice bien?
*Resuelve un problema
*Es un concepto probado
*La solucin no es obvia
*Describe una relacin
*El patrn tiene un componente
humano significativo
*Patrones creacionales
* Patrn de fbrica abstracta
* Patrn de mtodo de fabricacin
* Patrn constructor
*Patrones estructurales
* Patrn adaptador
* Patrn agregado
* Patrn de puente
*Patrones conductuales
* Patrn de comando
* Patrn iterador
* Patrn mediador
Una estructura es una miniarquitectura
reutilizable que sirve como base, desde la que se
pueden aplicar otros patrones de diseo.
Diferencias entre estructura y patrn de diseo
* Lospatrones de diseo son ms abstractos que las
estructuras.
* Los patrones de diseo son elementos arquitectnicos
ms pequeos que las estructuras
* Lospatrones de diseo estn menos especializados
que las estructuras.
*Nombre del patrn: describe la esencia del patrn con un
nombre corto pero expresivo
*Problema: describe el problema al que se dirige el patrn
*Motivacin: proporciona un ejemplo del problema
*Contexto: describe el ambiente en el que reside el problema,
incluido el dominio de aplicacin
*Fuerzas: lista el sistema de fuerzas que afectan la manera en
la que debe resolverse el problema.
*Solucin: hace la descripcin detallada de la solucin
propuesta para el problema
*Objetivo: describe el patrn y lo que hace
*Colaboraciones: describe la manera en la que otros patrones
contribuyen a la solucin
*Consecuencias: describe los intercambios
potenciales que deben de ser considerados cuando
se implementa el patrn.
*Implementacin: identifica los aspectos especiales
que deben considerarse cuando se implemente el
patrn
*Usos conocidos: da ejemplos de usos reales del
patrn de diseo en aplicaciones reales
*Patrones relacionados: menciona referencias de
patrones de diseo relacionados
Un lenguaje de patrones es anlogo a un manual de
instrucciones de hipertexto para resolver problemas en un
dominio especfico de aplicaciones. El dominio del problema en
cuestin primero se describe de manera jerrquica, comenzando
con problemas de diseo amplio asociados con el dominio, y
luego se refina cada uno de ellos en niveles de abstraccin ms
bajos.
Se han propuesto decenas de lenguajes de patrones para
el diseo de software . En la mayor parte de casos, los patrones
de diseo que forman parte de un lenguaje de patrones se
almacenan en un repositorio de patrones accesible a travs de la
web . El repositorio proporciona un ndice de todos los patrones
de diseo y contiene vnculos de hipermedios que permiten al
usuario entender las colaboraciones entre patrones
* El diseo basado en patrones, en contexto
*Pensar en patrones
1. Asegurarse de entender el panorama: el contexto en el que
se encuentra el software que se va a elaborar. El modelo de
requerimientos debe transmitir esa comprensin.
2. Estudiar el panorama, identificar los patrones presentes en
ese nivel de abstraccin.
3. Comenzar el diseo con patrones del panorama que
establezcan un contexto o esqueleto para el trabajo de diseo
adicional.
4. Trabajar dentro del contexto en busca de patrones en
niveles ms bajos de abstraccin que contribuyan a la solucin
del diseo.
5. Repetir los pasos 1 a 4 hasta que el diseo est completo.
6. Mejorar el diseo, adaptando cada patrn a las
especificidades del software que se trata de elaborar
*Tareas de diseo
Examinar el modelo de requerimientos y desarrollar una
jerarqua del problema
Determinar si se ha desarrollado un lenguaje del patrn
confiable para el dominio del problema
A partir de un problema amplio, determinar si para el
mismo se dispone de uno o ms patrones arquitectnicos
Con el uso de colaboraciones provistas para el patrn
arquitectnico, deben estudiarse los problemas en el
nivel de subsistema o componente, y buscar los patrones
ms apropiados para enfrentarlos
Repetir los pasos 2 a 5 hasta que se hayan resuelto
todos los problemas amplios.
Si los problemas de diseo de la interfaz de usuario han
sido aislados (ste es el caso casi siempre), buscar los
muchos depsitos de patrones de diseo de la interfaz de
usuario para encontrar patrones apropiados
Sin importar su nivel de abstraccin, si resulta promisorio
un lenguaje de patrn o un depsito de patrones o un
patrn individual, hay que comparar el problema por
resolver con el patrn o patrones presentados.
Asegurarse de refinar 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

Una tabla organizadora de patrones puede


implementarse como modelo de hoja de clculo con el uso
del formato de la figura. La columna de la izquierda
(sombreada) est organizada por datos/contenido,
arquitectura, nivel de componentes y aspectos de la
interfaz de usuario. En el rengln superior se enlistan
cuatro tipos de patrn: base de datos, aplicacin,
implementacin e infraestructura. En las celdas de la tabla
se anotan los nombres de los patrones que son candidatos
* Errores comunes en el diseo

Cuando se emplea el diseo basado en


patrones, suelen ocurrir varios errores comunes. En
ciertos casos, no se dedica el tiempo suficiente a
entender el problema subyacente, su contexto y
fuerzas, y en consecuencia se elige un patrn que
parece correcto, pero es inapropiado para llegar a la
solucin que se requiere
Los patrones arquitectnicos para el software
definen un enfoque especfico para el manejo de algunas
caractersticas del sistema.

Ejemplos representativos:
Control de acceso.
Concurrencia.
Distribucin.
Persistencia.
Los patrones de diseo en el nivel de componentes
brindan soluciones comprobadas que se abocan a uno o ms
subproblemas extrados del modelo de requerimientos. En
muchos casos, los patrones de diseo de este tipo se centran
en algn elemento funcional de un sistema.
Ejemplos
* AdvancedSearch. Los usuarios deben encontrar un objeto
especfico en una gran coleccin de ellos.
* SearchTips. Los usuarios requieren saber cmo controlar el
motor de bsqueda.
* SearchResults. Los usuarios tienen que procesar una lista de
resultados de una bsqued
* SearchBox. Los usuarios tienen que encontrar un objeto o
informacin especficosa.
* Whole UI. Proporciona una gua para disear la estructura y
navegacin de alto nivel a travs de toda la interfaz.
* Distribucin de la pgina. Se aboca a la organizacin general de
pginas (para sitios web) o de distintas pantallas (para
aplicaciones interactivas).
* Formatos y entrada. Considera varias tcnicas de diseo para
llenar las entradas en el nivel de formato.
* Tablas.Dan una gua para el diseo a fin de crear y manipular
datos tabulares de todo tipo.
* Manipulacin directa de los datos. Se aboca a la edicin,
modificacin y transformacin de los datos.
* Navegacin. Ayuda al usuario a navegar a travs de mens
jerrquicos, pginas web y pantallas interactivas.
*Bsqueda. Permite hacer bsquedas de contenido especfico
a travs de informacin conservada en un sitio web o que
est contenida en almacenamientos persistentes de datos
accesibles a travs de una aplicacin interactiva.
*Elementos de pgina. Implanta elementos especficos de
una pgina web o de una pantalla del monitor.
*Comercio electrnico. Especficos para sitios web, estos
patrones implementan elementos recurrentes de las
aplicaciones de comercio electrnico.
*Varios. Son patrones que no se ajustan fcilmente a ninguna
de las categoras anteriores. En ciertos casos, dependen del
dominio u ocurren slo para clases especficas de usuarios
* Centrarse en el diseo
Los patrones para el diseo de webapps se desarrollen
para distintos niveles de atencin, de modo que se aborden los
problemas (y sus soluciones) nicos que se encuentren en cada
nivel. Los patrones de webapps se clasifican con el empleo de
los siguientes niveles de atencin en el diseo:
Patrones de arquitectura de la informacin
Patrones de navegacin
Patrones de interaccin
Patrones de presentacin
Patrones funcionales
* Granularidad del diseo
La granularidad determina el nivel de abstraccin que
se considera (el patrn se aplica a toda la webapp, a una
sola pgina web, a un subsistema o a un componente
individual de la webapp?). En trminos del nivel de
granularidad, los patrones se describen en los niveles
siguientes:

Patrones arquitectnicos
Patrones de diseo
Patrones de componentes.
*Qu es?
*Quin lo hace?
*Por qu es importante?
*Cules son los pasos?
*Cul es el producto final?
*Cmo me aseguro de que lo hice
bien?
*Simplicidad
*Consistencia
*Identidad
*Robustez.
*Navegabilidad.
*Atractivo visual
*Compatibilidad.
*

Mens de navegacin: contienen palabras clave


(organizadas en forma vertical u horizontal) que enlistan
contenido o funciones clave. Estos mens se implementan
de modo que el usuario pueda elegir entre una jerarqua
de subtemas que se despliegan al seleccionar la opcin
principal en el men.
Iconos grficos: botones, interruptores y otras imgenes
similares que permiten que el usuario seleccione alguna
propiedad o que especifique una decisin.
Imgenes: cierta representacin grfica que el usuario
selecciona para establecer un vnculo hacia un objeto de
contenido o funcin de la webapp.
*

*Aspectos de la distribucin
*No tema al espacio en blanco
*Hacer nfasis en el contenido.
*Organizar los elementos con una distribucin
*Agrupar la navegacin, el contenido y la funcin
en forma geogrfica
*No aumente la superficie con la barra de
desplazamiento
*Aspectos del diseo grfico
*

* Objetos de contenido
Un objeto de contenido tiene atributos que
incluyen informacin de contenido especfico
(normalmente definido durante el modelado de los
requerimientos de la webapp) y atributos de
implementacin especfica que se establecen como
parte del diseo.
*
*Arquitectura del contenido
Lineal
Malla
Jerrquica
telaraa
*Arquitectura de las webapps
La arquitectura de controlador de la vista del
modelo (CVM) es uno de varios modelos sugeridos para
la infraestructura de webapps
*

Semntica de la navegacin
Describe los requerimientos de navegacin para cada
caso de uso. En esencia, muestra la forma en la que un actor
avanza entre los objetos de contenido o entre las funciones
de una webapp.
Sintaxis de navegacin
Define la mecnica de la navegacin
Vnculo de navegacin individual
Barra de navegacin horizontal
Columna de navegacin vertical
Pestaas
Mapas del sitio
*
Los mtodos de diseo estudiados se aplican a
los componentes de las webapps con poca, o ninguna,
modificacin. El ambiente de implementacin, los
lenguajes de programacin, los patrones de diseo,
estructuras y software, tal vez varen un poco, pero el
enfoque general del diseo es el mismo

También podría gustarte