Patrones de Diseño

Tipos de Patrones

Patrones de Diseño de Software

Contexto

Los patrones de diseño software son el esqueleto de las soluciones a problemas comunes en el desarrollo de software. En otras palabras, brindan una solución ya probada y documentada a problemas de desarrollo de software que están sujetos a contextos similares.

Podríamos clasificar los patrones en tres grandes grupos según la escala o nivel de abstracción:

  • Patrones de arquitectura: Aquéllos que expresan un esquema organizativo estructural fundamental para sistemas de software.
  • Patrones de dialectos: Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto.
  • Patrones de interacción: Son patrones que nos permiten el diseño de interfaces web.
  • Patrones de diseño: Aquéllos que expresan esquemas para definir estructuras de diseño (o sus relaciones) con las que construir sistemas de software.

Los patrones de diseño software pretenden:

  • - 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.

Asimismo, no pretenden:

  • - Imponer ciertas alternativas de diseño frente a otras.
  • - Eliminar la creatividad inherente al proceso de diseño.
  • - No es obligatorio utilizar los patrones, solo es aconsejable en el caso de tener el mismo problema o similar que soluciona el patrón, siempre teniendo en cuenta que en un caso particular puede no ser aplicable. Abusar o forzar el uso de los patrones puede ser un error.

Por otro lado, según la publicación del GoF (Hang of Four), guía de referencia en el campo del estudio de los patrones de diseño software (la cuál seguimos en esta página), los patrones se clasificarían según el proposito para el que han sido definidos:

  • Patrones de Creación: patrones de diseño software que solucionan problemas de creación de instancias. Nos ayudan a encapsular y abstraer dicha creación.
  • Patrones Estructurales: patrones de diseño software que solucionan problemas de composición (agregación) de clases y objetos.
  • Patrones De Comportamiento: patrones de diseño software que ofrecen soluciones respecto a la interacción y responsabilidades entre clases y objetos, así como los algoritmos que encapsulan.

Además de su aplicación directa en la construcción de software en general, y derivado precisamente del gran éxito que han tenido, los patrones de diseño software han sido aplicados a múltiples ámbitos concretos produciéndose "lenguajes de patrones" y extensos "catálogos" de la mano de diversos autores.En particular son notorios los esfuerzos en los siguientes ámbitos:

  • - Patrones de interfaces de usuario, esto es, aquellos que intentan definir las mejores formas de construir interfaces hombre-máquina.
  • - Patrones para la construcción de sistemas empresariales, en donde se requieren especiales esfuerzos en infraestructuras de software y un nivel de abstracción importante para maximizar factores como la escalabilidad o el mantenimiento del sistema.
  • - Patrones para la integración de sistemas, es decir, para la intercomunicación y coordinación de sistemas heterogéneos.
  • - Patrones de flujos de trabajo, esto es para la definición, construcción e integración de sistemas abstractos de gestión de flujos de trabajo y procesos con sistemas empresariales.

Por último, hacer mención a una cuarta sección incluida en la web que hace referencia al Modelado Estructural en sí, en la que intentaremos aclarar todas las claves del mismo.





Obtén acceso a nuestros contenidos por RSS:RSS