You are on page 1of 8

UNIVERSIDAD PERUANA UNION FACULTAD DE INGENIERIA E.A.

P de INGENIERIA DE SISTEMAS

PRESENTADO EN CUMPLIMIENTO DEL CURSO DE: Arquitectura de Software TRABAJO: Patrones de Arquitectura ALUMNOS: Bhrany Barboza Chimaico

AA 20 DE Abril del 2012

ndice
Los orgenes de los Patrones de Software ............................................................................ 3 Las principales corrientes filosficas (teoras) de los Patrones de Software. ................... 4 Los diferentes catlogos de Patrones (GoF, POSA, etc). .................................................. 4 Formatos de descripcin de Patrones de Software (Formato de Alexander, ................... 6 Formato Cannico, Formato GoF, Doug Lea). ...................................................................... 6

Los orgenes de los Patrones de Software

El concepto de "patrn de diseo" que tenemos en Ingeniera del Software se ha tomado prestado de la arquitectura. En 1977 se publica el libro "A Pattern Language: Towns/Building/Construction", de Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksdahl-King y Shlomo Angel, Oxford University Press. Contiene numerosos patrones con una notacin especfica de Alexander. Alexander comenta que 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. El patrn es un esquema de solucin que se aplica a un tipo de problema, esta aplicacin del patrn no es mecnica, sino que requiere de adaptacin y matices. Por ello, dice Alexander que los numerosos usos de un patrn no se repiten dos veces de la misma forma. La idea de patrones de diseo estaba "en el aire", la prueba es que numerosos diseadores se dirigieron a aplicar las ideas de Alexander a su contexto. El catlogo ms famoso de patrones se encuentra en Design Patterns: Elements of Reusable Object-Oriented Software, de Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, 1995, Addison-Wesley, tambin conocido como el libro GOF (Gang-Of-Four). Siguiendo el libro de GOF los patrones se clasifican segn el proposito para el que han sido definidos:

Creacionales: solucionan problemas de creacin de instancias. Nos ayudan a encapsular y abstraer dicha creacin. Estructurales: solucionan problemas de composicin (agregacin) de clases y objetos. De Comportamiento: soluciones respecto a la interaccin y responsabilidades entre clases y objetos, as como los algoritmos que encapsulan.

Las principales corrientes filosficas (teoras) de los Patrones de Software.

TrigveReenskaug, padre del mtodo OOram, un patrn es una descripcin en unformato fijo de cmo solucionar un cierto tipo de problemas. Brad Appleton, un patrn es una unidad de informacin instructiva con nombre que captura la estructura esencial y la comprensin de una familia de soluciones exitosas probadas para un problema recurrente que ocurre dentro de un cierto contexto y de un sistema de fuerzas. James Coplien, cada patrn es una regla constituida por tres partes, la cual expresa una relacin entre un cierto contexto, un cierto sistema de fuerzas que ocurren repetidamente en ese contexto, y una cierta configuracin software que permite a estas fuerzas resolverse as mismas. Los diferentes catlogos de Patrones (GoF, POSA, etc). Patrones segn GoF Segn el mbito se clasifican en patrones de clase y de objeto: Creacin Clase Mtodo de Fabricacin Fbrica, Constructor, Prototipo, Singleton Estructural Adaptador (clases) Adaptador (objetos), Puente, Composicin, Decorador, Fachada, Flyweight De Conducta Interprete Plantilla Cadena de Responsabilidad, Comando (orden), Iterador, Intermediario, Observador, Estado, Estrategia, Visitante, Memoria

Objeto

Segn POSA POSA Estructuracin Arquitectnicos Layers; Pipes&Filters; Blackboard Broker Pipes&Filters Microkernel MVC; PAC Microkernel, Reflection Whole-Part Master-Slave Proxy CommandProcessor View Handler PublisherSubscriber Forwarder-Receiver Client-DispatcherServer Counted Pointer Diseo Idiomas

Sistemas distribuidos Sistemas interactivos Sistemas adaptables Descomposicin estructural Organizacin del trabajo Control acceso Gestin Comunicacin

Manejo Recursos

Formatos de descripcin de Patrones de Software (Formato de Alexander, Formato Cannico, Formato GoF, Doug Lea).

Formato del GoF Seccin Nombre de patrn y clasificacin Propsito Tambin Conocido Como Motivacin Descripcin Comunica la esencia del patrn Una corta introduccin respondiendo a las preguntas siguientes: Qu es? Otros nombres para el patrn Un escenario que ilustra un problema y como las clases y los objetos se estructuran en un patrn para solucionar el problema Cules son las situaciones en las que el patrn puede aplicarse? Ejemplos de casos mal planteados en los que el patrn puede aplicarse. Cmo puede reconocerse estas situaciones? Representacin grafica de las clases en el patrn(diagrama de clases, diagramas de colaboracin) Las clases y/u objetos que participan en el patrn de diseo y sus responsabilidades. La forma en que los participantes colaboran para llevar a cabo sus responsabilidades Cmo el patrn soporta sus objetivos? Cuales son las concesiones y resultados de usar un patrn? Qu trucos o tcnicas deben tenerse en cuenta para implementar el patrn? Hay temas propios de un lenguaje especfico? Fragmentos de cdigo que ilustren como se puede implementar el patrn en C++ u otro lenguaje. Ejemplos del patrn encontrados en sistemas reales. Qu patrones estn relacionados con

Aplicabilidad

Estructura

Participantes

Colaboraciones

Consecuencias

Implementacin

Cdigo de Ejemplo

Usos Conocidos Protones relacionados

el patrn que se esta describiendo?Cuales son las principales diferencias?Con que otros patrones debe usarse?
Formato cannico Seccin Nombre Descripcin Nombre significativo. Puede ser una nica palabra o una frase corta para hacer referencia al patrn. Puede tener alias. Descripcin del problema indicando su propsito: objetivos dentro de un contexto dado Precondiciones bajo las cuales el problema y su solucin parecen recurrir, y para el cual la solucin es deseable. Describe la aplicabilidad del patrn. Descripcin de las fuerzas y restricciones relevantes y como interaccin o entran en conflicto las unas con las otras, as con los objetivos que se quieren perseguir. Las fuerzas revelan las interioridades de un problema y definen las concesiones que se deben considerar Relaciones estticas y reglas dinmicas que describen como conseguir el objetivo marcado. Puede acompaarse de imgenes, diagramas y texto para identificar la estructura del patrn, sus participantes y sus colaboradores, para mostrar como se resuelve el problema. Uno o mas ejemplos de la aplicacin del patrn El estado o la configuracin del sistema despus de haber aplicado el patrn, incluyendo las consecuencias (buenas o malas) de su aplicacin, as como otros problemas y patrones que pueden derivarse en el nuevo contexto. Describe por tanto las postcondiciones y los efectos laterales de los patrones Explicacin justificada de los pasos o reglas del patrn. Relaciones estticas y dinmicas entre el patrn que se esta describiendo y otros dentro del mismo lenguaje de patrones o dentro del mismo sistema. Descripcin de ocurrencias conocidas del patrn y su aplicacin dentro de sistemas existentes. Ayuda a validar el patrn verificando su uso en soluciones probadas para un problema recurrente.

Problema

Contexto

Fuerzas

Solucin

Ejemplos Contexto Resultante

Razonamiento Patrones Relacionados

Usos Conocidos

You might also like