Christopher
Alexander ( Viena, Austria) es un arquitecto, reconocido por sus diseños destacados
de edificios en California, Japón y México.
Partiendo de la premisa de que los usuarios de los espacios arquitectónicos saben más que los arquitectos sobre el tipo de edificios que necesitan, creó y validó (junto a Sarah Ishikawa y Murray Silverstein) el término lenguaje de patrón, un método estructurado que pone la arquitectura al alcance de personas no especializadas profesionalmente en la materia, y que popularizó en su libro A Pattern Language.
Su uso iba desde la forma de estructurar una ciudad a como debían disponerse las ventanas en una habitación.
Partiendo de la premisa de que los usuarios de los espacios arquitectónicos saben más que los arquitectos sobre el tipo de edificios que necesitan, creó y validó (junto a Sarah Ishikawa y Murray Silverstein) el término lenguaje de patrón, un método estructurado que pone la arquitectura al alcance de personas no especializadas profesionalmente en la materia, y que popularizó en su libro A Pattern Language.
Su uso iba desde la forma de estructurar una ciudad a como debían disponerse las ventanas en una habitación.
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.
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."
"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."
El autor, animó a la gente que usaba su
sistema a expandirlo con patrones que los usuarios creasen, por ello sus libros
no se centran de forma estricta en arquitectura o en ingeniería civil. 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.
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.
El su libro 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.
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:
Se caracteriza por:
- Descubrir y nombrar los problemas más comunes en
el campo de interés.
- Describir las características principales de las
soluciones efectivas para llegar al objetivo marcado.
- Ayudar al diseñador a moverse de un problema a
otro de una forma lógica.
- Permitir diferentes caminos en un mismo proceso
de diseño.
Resumiendo, los patrones de diseño son aquellos que expresan esquemas para definir estructuras de diseño (o sus
relaciones) con las que construir sistemas de software.
Ahora bien, ¿cómo establecer estos patrones?
De acuerdo con el Alexander, un patrón individual debe describirse en 3 partes:
- "Contexto" - ¿Bajo qué condiciones
resolverá el problema esta solución?
- "Sistema de fuerzas" - Se puede
considerar como el problema o el objetivo
- "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 qué patrones deben tenerse en consideración de ante mano, y que patrones se deberían considerar más adelante.
También debería mostrar qué patrones deben tenerse en consideración de ante mano, y que patrones se deberían considerar más adelante.
Para que una solución sea considerada un
patrón debe poseer ciertas características:
- Debe haber comprobado su efectividad resolviendo
problemas similares en ocasiones anteriores.
- Debe ser reutilizable, lo que significa que es
aplicable a diferentes problemas de diseño en distintas circunstancias.
¿Cuáles son los objetivos de los patrones,
o de su aplicación?
- Proporcionar catálogos de elementos reusables en
el diseño de sistemas software.
- Evitar la reiteración en la búsqueda de
soluciones a problemas ya conocidos y solucionados anteriormente.
- Formalizar un vocabulario común entre
diseñadores.
- Estandarizar el modo en que se realiza el diseño.
- Facilitar el aprendizaje de las nuevas generaciones
de diseñadores condensando conocimiento ya existente.
Pero, hay que tener criterio, ya que los
patrones no pretenden (ni deberían) imponer ciertas alternativas de diseño
frente a otras o eliminar la creatividad inherente al proceso de diseño.
Abusar o forzar el uso de los patrones
puede ser un error.
Para describir un patrón se usan plantillas más o menos estandarizadas, de forma que se expresen uniformemente y puedan constituir efectivamente un medio de comunicación uniforme entre diseñadores, en esta área se han propuesto plantillas ligeramente distintas, si bien la mayoría definen los mismos conceptos básicos.
La plantilla más común es la utilizada por el GoF y consta de los siguientes apartados:
- Nombre del patrón: nombre estándar del patrón por el cual será reconocido en la comunidad (normalmente se expresan en inglés).
- Clasificación del patrón: creacional, estructural o de comportamiento.
- Intención: ¿Qué problema pretende resolver el patrón?
- También conocido como: Otros nombres de uso común para el patrón.
- Motivación: Escenario de ejemplo para la aplicación del patrón.
- Aplicabilidad: Usos comunes y criterios de aplicabilidad del patrón.
- Estructura: Diagramas de clases oportunos para describir las clases que intervienen en el patrón.
- Participantes: Enumeración y descripción de las entidades abstractas (y sus roles) que participan en el patrón.
- Colaboraciones: Explicación de las interrelaciones que se dan entre los participantes.
- Consecuencias: Consecuencias positivas y negativas en el diseño derivadas de la aplicación del patrón.
- Implementación: Técnicas o comentarios oportunos de cara a la implementación del patrón.
- Código de ejemplo: Código fuente ejemplo de implementación del patrón.
- Usos conocidos: Ejemplos de sistemas reales que usan el patrón.
- Patrones relacionados: Referencias cruzadas con otros patrones.
Patrones de interacción
El primer intento por aplicar este concepto en el diseño de las interfaces de usuario se dio por Ward Cummingham y Kent Beck quienes adaptaron la propuesta de C. Alexander y crearon cinco patrones de interfaz:
- ventana por tarea
- pocos paneles
- paneles standard
- Los sustantivos y verbos
- Menú Corto
En años más recientes investigadores como Martin Van Welie, Jennifer Tidwell han desarrollado colecciones de patrones de interacción para la World Wide Web.
Los patrones de interacción buscan la reutilización de interfaces eficaces y un manejo óptimo de los recursos de las páginas web, haciendo más eficaz el consumo de tiempo en el diseño del sitio web y permitiendo a los programadores novatos adquirir más experiencia.
Los patrones de interacción buscan la reutilización de interfaces eficaces y un manejo óptimo de los recursos de las páginas web, haciendo más eficaz el consumo de tiempo en el diseño del sitio web y permitiendo a los programadores novatos adquirir más experiencia.
Este texto de Pedro J. Molina, proporciona un análisis de un caso de estudio, que es aunque en ciertos puntos relativamente técnico, muy ilustrativo.
Fuentes: Wikipedia, Smashing Magazine, Pedro J. Molina


No hay comentarios.:
Publicar un comentario