Você está na página 1de 3

Patrones de diseo

Los patrones de diseo son la base para la bsqueda de soluciones a problemas comunes en el
desarrollo de software y otros mbitos referentes al diseo de interaccin o interfaces.
Un patrn es una solucin a un problema de diseo. Para que una solucin sea considerada un
patrn debe poseer ciertas caractersticas. Una de ellas es que debe haber comprobado
su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe
ser reusable, lo que significa que es aplicable a diferentes problemas de diseo en circunstancias
parecidas.
Estableciendo patrones de diseo, se hace ms fcil construir soluciones especficas que tienen
determinadas estructuras o piezas en comn, reutilizando al mismo tiempo experiencias
adquiridas.
Objetivos de los patrones
Los patrones de diseo pretenden:
Proporcionar catlogos de elementos reusables en el diseo de sistemas software.
Evitar la reiteracin en la bsqueda de soluciones a problemas ya conocidos y
solucionados anteriormente.
Formalizar un vocabulario comn entre diseadores.
Estandarizar el modo en que se realiza el diseo.
Facilitar el aprendizaje de las nuevas generaciones de diseadores condensando
conocimiento ya existente.
Asimismo, no pretenden:
Imponer ciertas alternativas de diseo frente a otras.
Eliminar la creatividad inherente al proceso de diseo.
No es obligatorio utilizar los patrones, solo es aconsejable en el caso de tener el mismo problema o
similar que soluciona el patrn, siempre teniendo en cuenta que en un caso particular puede no ser
aplicable. "Abusar o forzar el uso de los patrones puede ser un error".
Categoras generales de patrones
Segn la escala o nivel de abstraccin:
Patrones de arquitectura: Aqullos que expresan un esquema organizativo estructural
fundamental para sistemas de software.
Patrones de diseo: Aqullos que expresan esquemas para definir estructuras de diseo
(o sus relaciones) con las que construir sistemas de software.
Dialectos: Patrones de bajo nivel especficos para un lenguaje de programacin o entorno
concreto.
Antipatrn de diseo
Adems, tambin es importante resear el concepto de "antipatrn de diseo", que con forma
semejante a la de un patrn, intenta prevenir contra errores comunes de diseo en el software.
La idea de los antipatrones es dar a conocer los problemas que acarrean ciertos diseos muy
frecuentes, para intentar evitar que diferentes sistemas acaben una y otra vez en el mismo callejn
sin salida por haber cometido los mismos errores.
Patrones de arquitectura
Los patrones de arquitectura estn orientados a representar los diferentes elementos que
componen una solucin de software y las relaciones entre ellos. A diferencia de los patrones de
diseo de software que estn orientados a objetos y clases (patrones creacionales, estructurales,
de comportamiento, de interaccin, etc.), los patrones de arquitectura estn a un mayor nivel de
abstraccin.
Los patrones de arquitectura forman parte de la llamada Arquitectura de Software (arquitectura
lgica de un sistema), que de forma resumida comprende:
El diseo de ms alto nivel de la estructura del sistema
Los patrones y abstracciones necesarios para guiar la construccin del software de un
sistema
Los fundamentos para que analistas, diseadores, programadores, beta testers, etc.
trabajen en una lnea comn que permita cubrir restricciones y alcanzar los objetivos del
sistema
Los objetivos del sistema, no solamente funcionales, sino de mantenimiento, auditora,
flexibilidad e interaccin con otros sistemas
Las restricciones que limitan la construccin del sistema acorde a las tecnologas
disponibles para su implementacin
La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo
alguna tarea de proceso de informacin, sus interfaces y la comunicacin entre ellos. Toda
arquitectura debe ser implementable en una arquitectura fsica, que consiste simplemente en
determinar qu ordenador tendr asignada cada tarea.
Existen al menos tres vistas absolutamente fundamentales en cualquier arquitectura:
La visin esttica: describe qu componentes tiene la arquitectura
La visin funcional: describe qu hace cada componente
La visin dinmica: describe cmo se comportan los componentes a lo largo del tiempo y
como interactan entre s
El patrn de arquitectura debe contener de alguna manera, informacin para que estas tres vistas
fundamentales estn presentes y puedan servir para la implementacin de soluciones basadas en
l.
Descripcin de un patrn
Los siguientes tpicos describen las secciones de un patrn de arquitectura.
Seccin Descripcin
Nombre Nombre descriptivo que identifica al patrn
Clasificacin Clasificacin del patrn que permita focalizar su
orientacin a la solucin de una determinada rea de
problemas
Intencin Breve descripcin del objetivo para el cul se crea el
patrn (problema que pretende resolver)
Tambin conocido
como
Otros nombres por los cules se conoce al patrn
Motivacin Escenario de ejemplo de uso del patrn
Aplicabilidad Usos comunes y criterio de aplicabilidad del patrn
Estructura Representacin grfica del patrn: todos sus
componentes y las relaciones entre ellos
Componentes
(Participantes)
Lista de componentes o recursos que intervienen en el
patrn y sus roles en el diseo as como los enlaces a
sus respectivas documentaciones en el caso que sean
componentes de arquitectura en uso
Colaboraciones Descripcin de las interacciones entre los diversos
componentes del patrn
Consecuencias Descripcin de los resultados, efectos colaterales o
compensaciones causadas por el uso del patrn
(consecuencias positivas y negativas de su uso)
Implementacin Descripcin de la implementacin del patrn (tcnicas y
comentarios oportunos para poder llevarlo a la realidad)
Cdigo de ejemplo Cdigo fuente asociado a la implementacin del patrn
Usos conocidos Lista de casos reales de implementacin del patrn
Patrones
relacionados
Otros patrones que tienen relacin con el patrn as como
diferencias con patrones similares