Lenguaje de patrón

Lenguaje de patrón
Para el libro de Christopher Alexander sobre arquitectura, véase El lenguaje de patrones.

En diseño, un lenguaje de patrón es un método estructurado para describir una serie de buenas prácticas de diseño en un área particular. Se caracteriza por:

  1. Descubrir y nombrar los problemas más comunes en el campo de interés.
  2. Describir las características principales de las soluciones efectivas para llegar al objetivo marcado.
  3. Ayudar al diseñador a moverse de un problema a otro de una forma lógica.
  4. Permitir diferentes caminos en un mismo proceso de diseño.

Los lenguajes de patrón se utilizan para formalizar los valores de decisiones cuya efectividad resulta obvia a través de la experiencia, pero que es difícil de documentar y pasar a los aprendices. También son herramientas útiles a la hora de estructurar el conocimiento y comprender sistemas complejos sin caer en la simplificación extrema. Estos procesos incluyen la organización de personas o grupos que tienen que tomar decisiones complejas, y revelan cómo interactúan las diferentes funciones como parte del total.

Contenido

Origen

Christopher Alexander acuño el término lenguaje de patrón. Lo usó para referirse a los problemas normales del diseño arquitectónico y civil. Su uso iba desde la forma de estructurar una ciudad a como debían disponerse las ventanas en una habitación. La idea se popularizó gracias a su libro A Pattern Language.

El libro de Alexander The Timeless Way of Building describe qué significa para él lenguaje de patrón y cómo se aplica al diseño de edificios y ciudades. Sin embargo, este sistema es aplicable a cualquier otro campo del diseño.

Alexander da la siguiente definición de patrón: "Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo ni siquiera dos veces de la misma forma."

Según Richard Gabriel: "Cada patrón es una regla de tres partes, la cual expresa una relación entre un cierto contexto, un conjunto de fuerzas que ocurren repetidamente en ese contexto y una cierta configuración software que permite a estas fuerzas resolverse por si mismas."

Muchos patrones forman un lenguaje

Así como las palabras deben tener una relación gramática y semántica entre ellas para crear un lenguaje oral útil, los patrones de diseño deben estar relacionados los unos con los otros para poder formar un lenguaje de patrones. En el trabajo de Alexander está implícita la idea de que los patrones deben estar organizados en estructuras lógicas o estructuras intuitivas. La estructura (jerárquica, iterativa, etc) puede variar, dependiendo del tema. Cada patrón debe indicar su relación con otros patrones y con el lenguaje en sí.

Uso

Alexander animó a la gente que usaba su sistema a expandirlo con patrones que los usuarios creasen. Para hacer esto posible, sus libros no se centran de forma estricta en arquitectura o en ingeniería civil. En los libros también habla del método general de los lenguajes de patrón. De esta forma, sus métodos se han usado para documentar el conocimiento experimental en diversos campos, como los patrones informáticos que se usan en ingeniería de software, patrones de diseño de interacción en Interacción del hombre con la computadora y patrones pedagógicos en educación. Sin embargo, las especificaciones de Alexander sobre como usar un lenguaje de patrón así como cómo crear uno nuevo siguen ejerciendo su autoridad, y sus libros son la referencia para expertos en campos muy diversos.

Es importante señalar que notaciones como UML o la colección de símbolos de los diagramas de flujo no son lenguajes de patrón (aunque podrían utilizarse para expresar un lenguaje de patrón). Una receta o cualquier otro conjunto de secuencias a seguir, con sólo un posible camino desde el inicio hasta el final, tampoco es un lenguaje de patrón. Sin embargo, el proceso de diseño de una nueva receta puede beneficiarse del uso de los lenguajes de patrón.

Cómo documentar un patrón

Siguiendo las enseñanzas de Alexander, un patrón individual debe describirse en 3 partes:

  1. "Contexto" - ¿Bajo qué condiciones resolverá esta solución el problema?
  2. "Sistema de fuerzas" - Se puede considerar como el problema o el objetivo
  3. "Solución" - Una configuración que pone las fuerzas en equilibrio o resuelve el problema presentado

Contexto -> Sistema de fuerzas -> Solución

Así, una entrada en un lenguaje de patrón debería tener un nombre sencillo, una descripción concisa del problema, una solución clara, y suficiente información para ayudar al lector a entender cuando aplicar esta solución. También debería mostrar que patrones deben tenerse en consideración de ante mano, y que patrones se deberían considerar más adelante.

Ejemplo sencillo de un patrón

Nombre: GalletaChocolateRelación

Contexto: Cocinando galletas de chocolate para tu familia y amigos

Considera estos patrones anteriormente: AzucarRelación, HarinaRelación, HuevoRelación

Problema: Determinar la relación optima entre trozos de chocolate y masa de galleta

Solución: Observe que la mayoría de la gente considera los trozos de chocolate como lo mejor de la galleta. También observe que demasiado chocolate haría que la galleta no se mantuviese junta, disminuyendo su atractivo. Como se están cocinando pocas galletas, el coste no es un gran problema. Así, utilice tanto chocolate como pueda manteniendo la galleta compacta.

A considerar ahora: NuecesRelación o TiempoCocción o MetodoCongelación.


Lenguajes de patrón y wikis

Ward Cunningham creó la Wiki original, el Portland Pattern Repository, como una forma de expresar los lenguajes de patrón de forma efectiva. En la actualidad tiene cientos de patrones de diferentes campos, incluyendo muchos sobre programación extrema.

Trucos para crear un lenguaje de patrón

Los siguientes pasos asumen el uso de una aplicación informática de hipertexto, como una wiki.

  • Piense sobre la situación como una jerarquía de ideas, como un fractal, desde lo general al detalle.
  • Ponga cada idea en una página diferente, nombrándola con el título que describe la idea en pocas palabras.
  • En un índice, ordena las ideas desde las más grandes a los detalles. Esto permitirá al lenguaje de patrón ser lineal y facilmente imprimible, si es necesario. Este paso incrementa de forma amplia la usabilidad del sistema si (casi) todas las páginas se mencionan en la gran lista.
  • Para cada patrón, escriba una descripción del problema, la solución y un ejemplo. Mientras lo escribe, conéctelo con los patrones con los que se relacione
  • Los gráficos son de gran ayuda.
  • Si hay varias personas editando el lenguaje de patrón, firme su trabajo. Además de la razón más obvia, permite conseguir un lista de las páginas usando enlace recíprocos en cada página.
  • Muestra referencias donde sea apropiado
  • Ponga un enlace al índice al final de cada patrón
  • Probablemente necesita una ventana para escribir su página, y al menos una más para saltar atrás y adelante con las referencias.

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Mira otros diccionarios:

  • Patrón de diseño — Saltar a navegación, búsqueda Los patrones de diseño (design patterns) son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Un patrón de… …   Wikipedia Español

  • Patrón — Saltar a navegación, búsqueda El término patrón puede referirse a: un patrón de medida es un objeto o substancia que se emplea como muestra para medir alguna magnitud o para replicarla. el patrón oro y el patrón plata, el respaldo monetario de… …   Wikipedia Español

  • Patrón ActiveRecord — Saltar a navegación, búsqueda En ingeniería informática, el patrón active record es un patrón de diseño que se suele dar en las aplicaciones empresariales. Active Record es un enfoque al problema de acceder a los datos de una base de datos. Una… …   Wikipedia Español

  • Lenguaje honorífico japonés — El idioma japonés posee numerosas expresiones de respeto o también denominado lenguaje honorífico, que está formado por elementos del lenguaje que permiten mostrar respeto, y cuyo uso es obligatorio en numerosas circunstancias sociales. Las… …   Wikipedia Español

  • Lenguaje visual — El Lenguaje visual: es un lenguaje que es através de los ojos ( visualmente ) Contenido 1 Forma 2 Color 3 Textura 4 Iluminación …   Wikipedia Español

  • Lenguaje ensamblador — El lenguaje ensamblador o código simbólico (en inglés Assembly language) es una notación del lenguaje de máquina que es legible por personas y es específica de cada arquitectura de computadoras. El lenguaje de máquina, un simple patrón de bits,… …   Enciclopedia Universal

  • El lenguaje de patrones — Saltar a navegación, búsqueda Para otros usos de este término, véase Lenguaje de patrón. El lenguaje de patrones ( A Pattern Language ), es un libro sobre arquitectura, escrito en 1977 por Christopher Alexander, Sara Ishikawa y Murray Silverstein …   Wikipedia Español

  • Observer (patrón de diseño) — El patrón Observador (en inglés: Observer) también conocido como spider define una dependencia del tipo uno a muchos entre objetos, de manera que cuando uno de los objetos cambia su estado, el observador se encarga de notificar este cambio a… …   Wikipedia Español

  • Interpreter (patrón de diseño) — El interpreter es un patrón de diseño que, dado un lenguaje, define una representación para su gramática junto con un intérprete del lenguaje. Se usa para definir un lenguaje para representar expresiones regulares que representen cadenas a buscar …   Wikipedia Español

  • Prototype (patrón de diseño) — Saltar a navegación, búsqueda Contenido 1 Propósito 2 Motivación 3 Solución 4 Implementación …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”