Los primeros patrones, que fueron los utilizados en Arquitectura, eran pequeños documentos que explicaban la manera correcta de hacer detalles pequeños. Por ejemplo, ¿cómo debería ser el lugar para almorzar en una casa? ¿cuál es la forma correcta de separar espacios de trabajo en un lugar pequeño? ¿cómo hay que orientar una casa dependiendo del comportamiento de la luz emitida por el sol? Obviamente son factores importantes, que juntos nos podrían ofrecer pautas muy valiosas para diseñar una casa, pero que son lo suficientemente sencillos como para entenderlos como una sola unidad funcional.
Con el tiempo, y con la incorporación de profesionales en otras áreas, en particular de la Informática, el formato original de estos patrones se hizo más conciso y tiende a mantenerse en un conjunto levemente pequeño de características.
Por lo tanto, el patrón, siendo un concepto abstracto, puede
poseer una representación concreta.
Erich Gamma et al [Gamma95], describe unos patrones de diseño mediante un formato consistente que ha comenzado a utilizarse como la norma; existen variantes a esta norma, pero por lo general son tratadas como eso, como variantes.
Según Gamma, hay que crear un documento por patrón que ofrezca la siguiente información:
Si el texto del patrón estuviera inmerso dentro de un texto de biología en forma de prosa, es casi seguro que nadie que no fuera un biólogo entendería lo que está ocurriendo. Sin embargo, el patrón mantiene una estructura que es más o menos semejante a la que ofrece Gamma95. Es cierto que Gamma no habla de Fuerzas, Problema o Soluciones, pero sí habla de Motivación, Participantes, Colaboraciones, Consecuencias, Implementación... el material sigue una tónica semejante, y el patrón podría, sin mucha dificultad, ser reescrito en la plantilla que recomienda Gamma.
La estandarización es importante, tanto como lo es la flexibilidad. La única forma de comunicarnos bajo un mismo idioma, es siguiendo algunas reglas, pero estas reglas deben ser flexibles para que motiven la creatividad.
Les presento la traducción de un patrón sobre Biología que apareció hace poco en un foro de discusión sobre patrones. No pretendo que entiendan todo lo que dice el patrón (de hecho, lo traduje lo mejor que pude, pero como no soy biólogo, pude haber cometido algunas fallas). Lo que quiero es que observen que un problema específico puede ser descrito de una manera clara mediante un documento muy bien estructurado.
El ejemplo, las consecuencias y los patrones relacionados están en blanco, ya que el patrón no está terminado.
Probablemente en la sección del ejemplo el autor pondría algunas células que interactuaran desde el punto de vista proteínico, con algunos diagramas, cuadros estadísticos, etc. Las consecuencias hablarían de lo que ocurre normalmente con las células, la energía y las proteínas en diversos episodios, unos buenos y otros malos, y los patrones relacionados nos mostrarían la interacción que este detalle descrito como patrón, tiene con otros detalles también descritos como patrones.
Hay muchos patrones, algunos hablan de seguridad, otros de redes, aspectos financieros, cuestiones sociales, etc. Como son orientados a problemas particulares, su formulación muestra detalles del área en la que nacen, pero si fueran un poco más abstractos podrían servir para cualquier área.
Este patrón, en particular, habla sobre la necesidad de cuidar la energía vital cuando se realizan operaciones que son ajenas al trabajo normal. Esto es una verdad universal, tan solo que el escritor del patrón lo documentó desde el punto de vista biológico... nosotros podríamos documentarlo desde un punto de vista bancario.
Luego incluiré otros patrones que irán ilustrando algunos
aspectos particulares conforme se vayan trabajando en el curso.
El escritor del original en inglés es de Ben Lieberman, un Arquitecto de Sistemas que trabaja en Jones Cyber Solutions (blieberman@jonescyber.com)
El proceso de creación de proteína involucra muchos pasos y han evolucionado varios puntos de "pausa" en los cuales el proceso puede ser detenido para reducir costos innecesarios de energía a la célula. Esos puntos de control incluyen la inicialización de transcripción (creación de moléculas de ARN a partir de una plantilla de ADN), el procesamiento de nuevas cadenas de ARN (combinación intron/exon), la traducción de códigos de ARN en cadenas de proteína, la modificación translacional posterior de proteína (separación de proteína), y finalmente el pliege y transporte de la proteína hacia su área de acción.
Las señales ambientales pueden variar en intensidad (e.g. respuesta a situaciones de alta intensidad "stressful") y proximidad celular (e.g. inicio de la reproducción). La célula debe ser capaz de escalar sus respuestas tan cercanamente como sea posible a sus necesidades inmediatas.
La combinación de esos factores en el sitio de la transcripción es dictada de manera usual por un reconocimiento de secuencia basado en el ADN (enlace ADN), o por enlaces con factores que son en tal caso, ligados al ADN.
Ben Lieberman
[Gamma95] Gamma, Erich et al. Design Patters, Elements
of Reusable Object-Oriented Software. Addison-Wesley, Reading, Massachusetts
1995. ISBN 0-201-63361-2.