Vous êtes sur la page 1sur 27

Alexander Cristopher., Ishikawa S., Silverstein M. 1977. Un Lenguaje de Patrones. Editorial Gustavo Gili, Barcelona.

Un acercamiento ms directo, a la vez cientfico y emprico, a la dimensin social se da con Alexander y otros (1977), quienes exploran patrones de diseo basados en el uso del espacio.
Contiene 253 patrones, con un formato especfico propuesto por Alexander, en los que se describe la planificacin de ciudades y la construccin de edificios. Christopher Alexander crea que muchos procesos implicados en el diseo de estructuras fsicas eran variables, pero que exista un invariante comn, que defina los principios generales del diseo y construccin. Su mtodo de capturar el conocimiento fue innovador, y reflejaba un conocimiento prctico hasta entonces solo adquirible mediante aos de experiencia. Sugiere una herramienta importante en la metodologa y reconocimiento de las piezas conformadoras de una construccin en donde se busca encontrar a partir de un anlisis, el nivel de adaptacin y su efectividad en ofrecer soluciones optimas para los actores que se desenvuelven en un medio fsico y social determinado. El descubrimiento de las invariantes aplicables al diseo de software es hoy el objetivo de los desarrolladores de software, pues proporcionan un marco comn de conocimiento y soluciones.

Introduccin a los Patrones (Diseo y Arquitectura)

Clases 12 y 13 Otoo del 2005

Prof. Sergio Ochoa

Estructura de la Presentacin

Generalidades Estructura de los Patrones Categoras de Patrones Arquitectnicos Patrones Arquitectnicos para Sistemas Simples

Patrones Arquitectnicos para Sistemas Interactivos


Patrones Arquitectnicos para Sistemas Adaptables

Conclusiones

Qu son los patrones?

Son una forma de comunicar diseos !!!

Para Qu Comunicar el Diseo?



No reinventar soluciones a problemas conocidos. Reusar el conocimiento experto relativo a un diseo. Beneficios:

inexpertos pueden disear como expertos, menos errores debido al uso de diseos ya probados,

los diseos probados son ms fcilmente mantenibles,


el software puede disearse para tener ciertas propiedades.

Es esta comunicacin exitosa?

slo entre virtuosos, por qu?

Una historia que cambi la forma de ver el diseo.

The Spirit of Patterns: The Re-design of Manteo


Diseador: Randolph T. Hester El Proyecto:

Revitalizar el centro (downtown) de Manteo, North Carolina.


Los desafos:

Revitalizar el centro sin destruir sus aspectos caractersticos. Detectar y potenciar las caractersticas que eran importantes
para los habitantes de Manteo.

Establecer lineamientos o caractersticas (patrones) que

deberan respetar las nuevas construcciones/remodelaciones.

The Spirit of Patterns: The Re-design of Manteo


El mapa de la Estructura Sagrada

Jules Park
The Dutchess restaurant A gravel parking lot The post office The marshes (pantanos) Locally made street signs Fearings soda shop

The church
The cemetery ... Etc.

Ejemplo de Estos Patrones

Ejemplo de Estos Patrones

The Theory of Patterns: A Pattern

Language

Objetivo: Especificar calidad sin un nombre. . conocimiento reusable.


Se obtuvieron 253 patrones. que tratan de conectar el comportamiento individual y social, a las caractersticas del lugar. . que tratan de rescatar los patrones de los lugares que son importantes para esta gente.

Investigacin en Patrones de Arquitectura



Es posible formalizar esta comunicacin para poder reusar el conocimiento experto? Premisas:

existen problemas recurrentes en el diseo de


software,

las soluciones a estos problemas tienen ciertas


propiedades invariantes (solucin abstracta),

pueden capturarse los problemas y las soluciones.

Patrones de Arquitectura de Software

Los patrones en general, y en particular los de arquitectura, son un intento de formalizar la comunicacin y el reuso de la experiencia de diseo,

capturan la experiencia probada de diseo de software,


describen problemas recurrentes que surgen en determinados contextos,

describen esquemas de soluciones probados,


Son una herramienta para los no expertos, Ofrecen un paso ms hacia la ingeniera de software:

permite que gente comn haga cosas que antes requeran


virtuosismo.

Patrones: el Reuso de la Experiencia



Los diseadores expertos manejan patrones recurrentes de clases y colaboraciones tiles ante determinados problemas. Los patrones resuelven problemas concretos y crean diseos ms elegantes, flexibles y reutilizables.

Permiten la reutilizacin de la experiencia en Diseo

Qu es un Patrn?
Un patrn de arquitectura de software es un esquema genrico probado para solucionar un problema particular, el cual es recurrente dentro de un cierto contexto. Este esquema se especifica describiendo los componentes, con sus responsabilidades y relaciones.

Caractersticas de los Patrones

Atacan problemas recurrentes que ocurren en situaciones especficas y dan una solucin.

Variabilidad de las interfaces.

Documentan experiencias de diseo existentes y bien probadas.

Experiencia en el desarrollo de sistemas interactivos.


Identifican y especifican abstracciones de alto nivel.

La trada MVC es la que resuelve el problema.


Proveen un vocabulario comn y comprensible.

Todos entendemos cuando nos dicen arquitectura MVC.

Ms Caractersticas de los Patrones

Son una forma de documentar la arquitectura del software. Facilitan la construccin de software con propiedades definidas (propiedades particulares).

Interfaces intercambiables y modelo reutilizable.


Ayudan a construir arquitecturas heterogneas y complejas.

Patrones en la Ingeniera de Software

Pueden verse como bloques de construccin mentales, para tratar con distintos aspectos del diseo de software.

Hay patrones de arquitectura, patrones de diseo, patrones de procesos, patrones de interfaces, idioms.
No existen paradigmas o lenguajes especficos para implementar patrones de arquitectura, pero algunos proveen elementos tiles (orientacin a objetos, polimorfismo, herencia, etc.).

Cmo se especifica un patrn?


Patrn: Nombre del Patrn
Contexto Situacin de diseo que da lugar al problema. Problema Conjunto de fuerzas que surgen del contexto. Solucin Configuracin para balancear las fuerzas
Componentes y relaciones (estructura) Comportamiento dinmico

Contexto

Extiende la dicotoma problema-solucin. Describe el escenario donde se da el problema. La descripcin del contexto puede ser bastante general o muy especfica. Por ejemplo:

desarrollar software con una interfaz humanocomputador. MVC.

implementar el mecanismo de cambio-propagacin en

Es muy difcil definir completamente el contexto.

Listar todas las situaciones en que el problema surge puede ser una alternativa.

Problema

Describe el problema genrico que surge en el contexto especificado. Esencia: cul aspecto del problema debemos resolver?

El problema generalmente vara, pero la escencia se


mantiene.

Las fuerzas describen aspectos ms especficos del problema con distintos puntos de vista, y hasta pueden contradecirse. Pueden ser:

requisitos de la solucin restricciones propiedades deseables/indeseables

Solucin

Es la forma de balancear las fuerzas para resolver el problema. Dos aspectos o componentes de la solucin:

Estructura esttica - componentes y relaciones. Comportamiento dinmico - forma de organizacin y


colaboracin entre las componentes.

La solucin no siempre toma en cuenta todas las fuerzas. Hay que establecer prioridades, si las fuerzas son contradictorias.

Se debe establecer un esquema de soluciones y no algo completamente definido (demasiado especificado, y por ende, restrictivo).

Relacin entre Patrones

Cada patrn depende de los patrones ms pequeos que contiene y de los ms grandes donde est contenido. Distintos aspectos de un sistema pueden resolverse con distintos patrones. Existen variantes de ciertos patrones para situaciones especiales.

Descripcin de Patrones

Una descripcin apropiada permite la comprensin, el anlisis y la discusin del patrn. La definicin del Contexto-Problema-Solucin es un buen punto de partida. Los buenos nombres se convierten en jerga o modismos.

Ejemplos, diagramas, escenarios y guas para la implementacin tambin pueden formar parte de la definicin de un patrn. Discusin de beneficios y debilidades ayudan a tomar mejores decisin respecto a su uso.

Descripcin Completa de un Patrn


Ejemplo Nombre Contexto Problema Solucin Estructura Dinmica Implementacin Resolucin del ejemplo Variantes Usos conocidos Consecuencias Ejemplo conocido de la literatura Nombre descriptivo Situacin en que surge el problema Fuerzas que surgen en el contexto Configuracin que balancea las fuerzas Diagramas que describen la configuracin Descripcin del comportamiento. Escenarios Gua para implementar el patrn Aplicacin del patrn al ejemplo Alternativas para resolver el ejemplo Descripcin de problemas donde se aplica Beneficios y perjuicios

Categoras de Patrones Arquitectnicos



Patrones Simples

Layers, Tubos-y-Filtros, Pizarrn, Repositorio


Sistemas Distribuidos

Broker (Microkernel, Pipes-y-Filtros), CAGS, ClienteServidor Sistemas Interactivos

Modelo-View-Controlador, Presentacin-AbstraccinControl Patrones Adaptables

MicroKernel, Reflexion

Patrones Arquitectnicos Simples

Patrones Simples
Layers: Ayuda a estructurar aplicaciones que pueden ser
descompuestas en grupos de subtareas con distintos niveles de abstraccin (granularidad).

Tubos-y-Filtros: Provee una estructura para sistemas

que procesan datos de entrada. El procesamiento puede estar encapsulado en uno o ms procesos (filtros).
solucin conocida. Generalmente provee aproximaciones a la solucin final. los datos, hacindolos ms flexibles y adaptables.

Pizarrn: til en problemas para los cuales no hay una

Repositorio: Ayuda a estructurar sistemas centrados en


.... Estos son modelos generales, que requieren instanciaciones especficas.

Vous aimerez peut-être aussi