sábado, 22 de noviembre de 2008

Patrones de Diseño UML (I)

Inmersos como estamos en la fase de Diseño, vamos a hablar un poco sobre algunas técnicas que se pueden emplear para optimizar esta actividad, dando así al desarrollador un esquema mucho mejor de cara a la implementación del sistema.

En este post vamos a comenzar a hablar sobre los Patrones de Diseño UML, algo que todos ya conoceréis y que, a pesar de que su uso conlleva un leve trabajo extra conceptual, facilitan notablemente esta tarea.

Según el libro de Erich Gamma, Design Patterns: Elements of Reusable Object-Oriented Software, un Patrón de Diseño es "una solución simple y elegante a un problema específico y común del Diseño Orientado a Objetos (DOO)". Así mismo, se apostilla que "son soluciones basadas en la experiencia y cuya fiabilidad está demostrada".

Este paradigma viene dado por detección de la repetición constante de problemas en los distintos diseños de Sistemas de Información, lo que conlleva que se defina una colección de patrones que reflejen las soluciones óptimas para cada uno de esos problemas. No es un concepto trivial de entender, requiere un proceso de estudio previo y asimilación, pero una vez que se supera dicho ciclo, los diseños creados en base a patrones presentan un mayor grado de flexibilidad, modularidad y reutilización.

Los patrones se dividen en tres grupos generales:
  • Patrones de estructura: describen como las objetos pueden ser combinados formando estructuras complejas y nuevas funcionalidades. A su vez se dividen, en un segundo nivel en:
  1. Estructural de la clase: Proporcionan interfaces más útiles mediante herencia.
  2. Estructural del objeto: Creación de objetos complejos mediante objetos individuales para formar grandes estructuras.

  • Patrones de creación: tratan de la forma de instanciar los objetos.
  1. Creacional de la clase: Instanciación de la clase mediante herencia.
  2. Creacional del objeto: Patrones más escalables y dinámicos.

  • Patrones de comportamiento: definen la comunicación entre los objetos.
  1. Comportamiento de la clase: distribuyen el comportamiento entre clases mediante herencia.
  2. Comportamiento del objeto: analizan la comunicación entre objetos interconectados.

A continuación, se ve el diagrama con los distintos patrones y cómo interactúan entre ellos.



En otro post comentaremos brevemente la funcionalidad de cada uno de los patrones así como un pequeño ejemplo de uso de uno de ellos.

No hay comentarios: