Está en la página 1de 6

Los patrones arquitectnicos, o patrones de arquitectura, son patrones de diseo de software que ofrecen soluciones a problemas de arquitectura de software

en ingeniera de software. Dan una descripcin de los elementos y el tipo de relacin que tienen junto con un conjunto de restricciones sobre cmo pueden ser usados. Un patrn arquitectnico expresa un esquema de organizacin estructural esencial para un sistema de software, que consta de subsistemas, sus responsabilidades e interrelaciones. En comparacin con los patrones de diseo, los patrones arquitectnicos tienen una nivel de abstraccin mayor .Un patrn es una solucin a un problema de diseo no trivial que es: Efectiva: ha sido vlido para resolver el problema en diseos pasados. Reusable: la solucin es la misma para problemas similares. Un catlogo de patrones es un medio para comunicar la experiencia de forma efectiva, reduciendo lo que se conoce como curva de aprendizaje del diseo. Coleccin de patrones organizados que incluye: Descripcin completa de cada uno de los patrones Modos de acceso a la coleccin de patrones. Correspondencia entre un problema real y un patrn (o conjunto de patrones).Noviembre 2008 Introduccin al Diseo con Patrones 6 Introduccin (4) Eric Gamma, Richard Helm, Ralph Johnson y John Vlissides publicaron el primer catlogo de patrones en el mbito del software en 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Tambin conocido como GoF (Gang of Four). Y desde entonces, se han publicado muchos otros catlogos. Fue la primera vez que se document el conocimiento que usaban los expertos para resolver problemas de diseo. Se inspiraron en el trabajo de Christopher Alexander, que haba documentado patrones en el mbito de la arquitectura. Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno, para describir despus el ncleo de la solucin a ese problema, de tal manera que esa solucin pueda ser usada ms de un milln de veces sin hacerlo siquiera dos veces de la misma forma. Christopher Alexander Noviembre 2008 Introduccin al Diseo con Patrones 7

Introduccin (y 5) Esencia: establecer parejas Problema Solucin. El contexto explica bajo qu circunstancias la solucin es aplicable al problema. El contexto resalta una serie de factores que deben ser abordados por una solucin til al problema. Ventajas del diseo con patrones: Permiten reusar soluciones probadas. Facilitan la comunicacin entre diseadores. Establecen un marco de referencia: terminologa, justificacin. Los patrones tienen nombres estndar. Facilitan el aprendizaje al diseador inexperto. Problema Contexto SolucinNoviembre 2008 Introduccin al Diseo con Patrones 8 Aportaciones de los Patrones de Diseo Permiten identificar a los objetos apropiados de una manera mucho ms sencilla. En la programacin orientada a objetos resulta complicado descomponer el sistema en objetos (encapsulacin, granularidad, dependencias, flexibilidad, reusabilidad, etc.). Permiten determinar la granularidad de los objetos. Ayudan a especificar las interfaces, identificando los elementos clave en las interfaces y las relaciones existentes entre distintas interfaces. Facilitan la especificacin de las implementaciones. Ayudan a reutilizar cdigo, facilitando la decisin entre "herencia o composicin" (favorece la composicin sobre la herencia y hace uso de la delegacin). Relacionan estructuras en tiempo de compilacin y en tiempo de ejecucin. Permiten hacer un diseo preparado para el cambio.Noviembre 2008 Introduccin al Diseo con Patrones 9 Tipos de patrones

Existen patrones para las distintas actividades que hay que realizar en un proyecto (anlisis, diseo, implementacin, etc.) Existen patrones independientes del dominio y otros especficos a un dominio concreto. Ej.: Los patrones del GoF son independientes del dominio. Ej.: Los patrones publicados en http://java.sun.com/blueprints/patterns/index.htmlson aplicables al desarrollo de aplicaciones empresariales (persistencia, tecnologas Web, etc.) con Java EE (la plataforma empresarial de Java)Noviembre 2008 Introduccin al Diseo con Patrones 10 Tipos de patrones (2) Pattern-Oriented Software Architecture: A System of Patterns(F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, 1996). Tambin conocido como The POSA Book. Fue el primer libro en hacer una clasificacin de patrones: Patrones arquitectnicos *Diseo+. Patrones de diseo *Diseo+. Idiomas *Implementacin+. Patrones arquitectnicos: Aconsejan la arquitectura global que debe seguir una aplicacin. Ej.: El patrn Model-View-Controller (MVC) aconseja la arquitectura global que debe tener una aplicacin interactiva.Noviembre 2008 Introduccin al Diseo con Patrones 11 Tipos de patrones (y 3) Patrones de diseo: Explican cmo resolver un problema concreto de diseo. El patrn Data Access Object (DAO) permite abstraer y encapsular los accesos a un repositorio de datos (ej.: BD relacional, BD orientada a objetos, ficheros planos, etc.) Idiomas: Explican cmo resolver un problema particular de implementacin con una tecnologa concreta.

Ej.: Cmo comparar objetos correctamente en Java? Correcta redefinicin de equals() y hashCode().Noviembre 2008 Introduccin al Diseo con Patrones 12 Descripcin de patrones Cada catlogo de patrones utiliza una plantilla para describir sus patrones. No existen plantillas estndar. Ejemplo: plantilla para patrones de diseo *GoF+ Nombre y clasificacin. Creacin, estructura o comportamiento. Intencin. Descripcin de lo que se pretende conseguir con el patrn. Tambin Conocido Como. Otros nombres del mismo patrn. Motivacin. Escenario que presenta un problema de diseo. Solucin para el escenario utilizando el patrn. Aplicabilidad. Situaciones en las cuales se puede aplicar el patrn.Noviembre 2008 Introduccin al Diseo con Patrones 13 Descripcin de Patrones Estructura. Descripcin grfica de los comportamientos, acciones y relaciones de los objetos que participan en el patrn Diagrama de clases. Diagrama de colaboracin. Participantes. Clases y objetos participantes que componen el patrn. Responsabilidades. Colaboraciones entre participantes. Relaciones e interacciones entre los participantes de un patrn.

Consecuencias. Ventajas e inconvenientes que pueden derivarse del uso del patrn. Implementacin. Tcnicas y peligros que pueden presentarse al implementar el patrn.Noviembre 2008 Introduccin al Diseo con Patrones 14 Descripcin de Patrones (y 3) Cdigo de ejemplo. Planteamiento de cdigo prctico referido a un ejemplo (o ejemplos) Suficientemente representativo del uso del patrn. Usos conocidos. Ejemplos del patrn en sistemas reales. Patrones relacionados. Referencias a otros patrones que bien son directamente utilizados por el descrito o bien representan soluciones complementarias o Suplementarias del mismo.Noviembre 2008 Introduccin al Diseo con Patrones 15 Clasificacin de Patrones (GoF 1) Clasificacin de los patrones de diseo segn su propsito. Patrones de creacin: Abstraen la forma en la que se crean los objetos, permitiendo tratar las clases a crear de forma genrica, dejando para ms tarde la decisin de qu clases crear o cmo crearlas. Prototype, Singleton, Factory Method, Abstract Factory, ... Patrones estructurales: Se ocupan de cmo se utilizan clases y objetos para componer estructuras de mayor tamao. Lo fundamental son las relaciones de uso entre los objetos, y, stas estn determinadas por las interfaces que soportan los objetos. Estudian cmo se relacionan los objetos en tiempo de ejecucin y sirven para disear las interconexiones entre los objetos. Composite, Proxy, Facade, Decorator, ...Noviembre 2008 Introduccin al Diseo con Patrones 16 Clasificacin de Patrones (GoF y 2) Clasificacin de los patrones de diseo segn su propsito. Patrones de comportamiento:

Se refieren a los algoritmos y a la asignacin de responsabilidades entre objetos. Los patrones de comportamiento estudian las relaciones entre llamadas entre los diferentes objetos, normalmente ligados con la dimensin temporal. Chain of Responsability, State, Strategy, Visitor, Observer, Template Method, Memento, ...

También podría gustarte