Metapatrones

Solo disponible en BuenasTareas
  • Páginas : 7 (1561 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de junio de 2011
Leer documento completo
Vista previa del texto
Meta-Patrones:
Una nueva aproximación
a los patrones de diseño.






Moisés Daniel Díaz Toledano.
Email : moises@moisesdaniel.com
WebSite : http://www.moisesdaniel.com



1.0.- Patrones de diseño.
La noción de 'patrón de diseño' existía con mucha anterioridad a su uso común en la comunidad informática. Como muestra de ello, existen numerosos trabajos que así lodemuestran [6]. Sin embargo es comúnmente aceptado que el trabajo que dió origen a esta disciplina tal y como hoy la entendemos es el GOF [8][3].
Existen numerosas definiciones de ‘patrón’. Una de ellas es la acuñada por Richard Gabriel [1][7] y que dice lo siguiente: "Cada patrón es una regla con 3 partes, la cual expresa la relación entre un contexto concreto, un sistema de fuerzas que ocurrenrepetidamente en dicho contexto, y una configuración software específica que permite que estas fuerzas se resuelvas por ellas mismas ". También podemos aceptar la siguiente: "Un patrón es la representación abstracta de una buena solución a un problema concreto y generalmente frecuente que ocurre en uno o más contextos".
Por lo general, los patrones se estructuran en ‘Lenguajes de Patrones’, pudiéndosedefinir éstos como: "La especificación de una serie de roles (patrones) y sus relaciones (patrones) que nos permiten describir buenas soluciones a los diferentes problemas que aparecen en un contexto específico".
El objetivo de los patrones de diseño es el de capturar buenas prácticas que nos permitan mejorar la calidad del diseño de un sistema, determinando objetos que soporten roles útiles endicho contexto, encapsulando complejidad, y haciéndolo más flexible
Podemos observar que la estructura de estas soluciones (patrones) se repite, utilizando una serie de mecanismos básicos (incluso en diferentes niveles de abstracción) para producir los mismos efectos en el sistema. Conocer estos mecanismos comunes nos permite tener una visión más clara y con cierta perspectiva sobre los patrones quese nos van presentando, así como tener la capacidad de generarlos.

2.0.- Meta-Patrones.
Todos queremos construir software correcto, robusto, extensible y reusable. Debemos ser conscientes que este conjunto de factores externos de calidad guarda una relación directa con la calidad interna del mismo, es decir con su corrección, flexibilidad, etc. Sin embargo...
¿Cómo conseguimos corrección?Uno de los mecanismos fundamentales consiste en reducir la complejidad inherente al problema, encapsulando abstracciones así como normalizando y uniformando.
¿Cómo conseguimos flexibilidad? Básicamente añadiendo indirección (desacoplando abstracciones). ¿Dónde añadimos esta indirección? En el lugar en el que se espere la evolución del sistema o ya es necesitada.

2.1.- DiagramaObjetivo-Mecanismo.
Podemos visualizar todo esto en un diagrama de texto al que llamaremos Diagrama Objetivo-Mecanismo y que representa varios niveles de abstracción:
Diagrama:
- Software correcto.
• Divido lo complejo (hago las cosas simples).
o Encapsulo, abstraigo: Funciones, clases, componentes, aplicaciones, sistemas (básicamente estructural). ¿Cómo conseguimos la simplicidad en ....?
 Funciones:Unicidad funcional, mismo nivel semántico en su discurso.
 Clases: unicidad identificativa, evitar desnivel semántico (métodos que traten abstracciones similares, relaciones de nivel abstracto similar).
 ......
o Uniformo – normalizo (básicamente funcional es funcional).
 Código: Notación, mecanismos de validación (o blindaje), mecanismos de inicialización, mecanismos de tratamiento deerrores, sangrado.
 Niveles de abstracción uniforme en los discursos (programación), interfaces.
 Mecanismos de Interacción (también visualización).
 Mecanismos de comunicación entre entidades de similares niveles de abstracción . Uso los mismos ‘métodos’ para hacer las mismas cosas (componentes, etc).
- Software flexible-reutilizable.
• Añado Indirección (desacoplo).
o Creo un...
tracking img