Vous êtes sur la page 1sur 3

Paso 3: Introduccin a los patrones de diseo Orgenes de los patrones

Los patrones de diseo de software Orientados a Objetos tienen su origen en el campo de la Arquitectura gracias a los trabajos de investigacin y publicaciones del arquitecto Christopher Alexander a finales de los aos 70. A travs de los siglos se han seguido diferentes tcnicas para soportar las bvedas en la parte ms alta de las Catedrales:

las bvedas de caon de las Catedrales Romnicas ejercen una fuerza no slo vertical sino transversal que tiene que ser contrarestada con otras naves laterales o por la presencia en el exterior de gruesos y potentes muros de piedra maciza mientras que las bvedas de crucera de las Catedrales Gticas liberan de casi todo el peso a los muros perimetrales localizando el peso de la bveda en dos arcos cruceros diagonales

Christopher Alexander detect que para un mismo problema, en este caso encumbrar una bveda en una Catedral, se le han dado diferentes soluciones dependiendo del patrn arquitectnico utilizado

as de esta forma el patrn trata de extraer la esencia de ese diseo, para que pueda ser reutilizada por otros arquitectos cuando se enfrentan a problemas parecidos que dicho diseo ya ha resuelto con anterioridad

Christopher Alexander intent resolver problemas arquitectnicos utilizando los patrones. Para ello trat de extraer la parte comn de los buenos diseos, con el objetivo de reutilizarlos en otros diseos. Y realiz la siguiente definicin:

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 ni siquiera dos veces de la misma forma

El hecho de que en diferentes zonas del mundo se construya de forma diferente nos demuestra que la esencia del diseo en cada una de estas zonas se ha copiado de una construccin a otra. Podemos decir que existen una serie de patrones que se han aplicado a diferentes zonas para dar una solucin efectiva a los problemas de construccin de dichas zonas.

Evolucin de los patrones de diseo


Los patrones de diseo son pues una disciplina de problema-solucin que est en constate evolucin entre los diseadores y desarrolladores que trabajamos con lenguajes Orientados a Objetos. En 1987, Ward Cunningham y Kent Beck disearon interfaces de usuario con el lenguaje de programacion Smaltalk y se basaron en los trabajos de Christopher Alexander. Entonces publicaron un libro titulado Using Pattern Languages for Object-Oriented Programs.

y de aqu sali el patrn de diseo MVC (Modelo-Vista-Controlador) inspirador de los Frameworks Struts y JSF (Java Server Faces)

Pero no fue hasta el ao 1994 cuando Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, ms conocidos como the Gang of Four (la Banda de los Cuatro, GoF), publicaron el bestseller Diseo de patrones: Elementos de reutilizacin de Software Orientado a Objetos que los patrones de diseo se convierten en imprescindibles para todos los diseadores y desrrolladores de software Orientado a Objetos.

ellos fueron los creadores de los patrones Singleton, Fachada, Adapter, Proxy, Composite, Abstract Factrory, Factory methid y Observer / Publicar-Suscribir entre otros.

En el ao 1997 Craig Larman edit la primera edicin del libro UML y Patrones. Una introduccin al anlisis y diseo orientado a objetos que se convirti en una lectura inexcusable para toda persona que se quisiera introducir en el mundo del A/DOO (Anlisis y diseo orientado a objetos). En el ao 2001 Craig Larman se super a si mismo con la segunda edicin del libro esta vez titulado UML y Patrones. Una introduccin al anlisis y diseo orientado a objetos y al proceso unificado. En el ao 2005 Craig Larman se volvi a superar a si mismo con la tercera edicin del libro esta vez titulado Applying UML and Patterns. An introduction to Object-Oriented Analysis and Design and Iterative Development.

aqu se dan a conocer los patrones GRASP (General Responsibility Assignment Software Patterns (patrones generales de software para asignar responsabilidades) . GRASP incluye los patrones Experto en informacin, Creador, Alta Cohesin, Bajo Acoplamiento y Controlador.

Tambin en el ao 2001 Deepak Alur, John Crupi y Dan Malks publicaron el libro Core J2EE Patterns. Best Practices and Design Strategies que se ha convertido en un estndar de referencia para cualquier Arquitecto de aplicaciones Java Enterprise Edition.

entre los patrones J2EE destacan Intercepting Filter, Front Controller, View Helper, Composite View, Service Locator y Data Access Object.

Definiciones de patrones de diseo


Las metodologas orientadas a objetos tienen como su mxima el hecho de no reinventar la rueda en cada nuevo proyecto. Por tanto los patrones se convierten en esenciales para la reutilizacin del software. El objetivo principal que persiguen los patrones es crear un lenguaje comn entre los Diseadores y Desarrolladores para comunicar experiencias sobre los problemas y sus soluciones. Estas son diferentes definiciones dadas por diferentes autores en los ltimos aos

Un patrn es o la abstraccin de una forma concreta que puede repetirse en contextos especficos

una informacin que captura la estructura esencial y la perspicacia de una familia de soluciones probadas con xito para un problema repetitivo que surge en un cierto contexto y sistema una unidad de informacin nombrada, instructiva e intuitiva que captura la esencia de una familia exitosa de soluciones probadas a un problema recurrente dentro de un cierto contexto

Descubrimiento de los patrones de diseo por parte de los expertos

Los expertos o identifican partes de su problema como problemas que han tenido en el pasado o recuerdan la solucin que aplicaron a algn problema pasado y la generalizan o finalmente adaptan la solucin general al contexto de su problema actual Para poder dominar cualquier tcnica se siguen los siguientes procesos o los expertos aprenden por un proceso de ensayo y error y por transmisin de conocimientos a otros expertos o se crea una ciencia alrededor de la tarea o se desarrollan las tcnicas o se logra un conocimiento comn sobre cmo aplicar las tcnicas

esto conlleva a un metalenguaje comn entre los expertos

Vous aimerez peut-être aussi