2.5. ¿DÓNDE HAN SIDO UTILIZADOS?: DOMINIIOS DE APLICACIÓN

Después del rotundo éxito de los patrones de diseño en el área de la orientación a objetos, otras áreas de la ingeniería del software aplicaron dicho concepto para capturar sus mejores prácticas de diseño. Posteriormente, otros dominios software relacionados, como son la hipermedia o web y la interacción persona-ordenador, dieron también el salto a los patrones con sus propios matices. En la actualidad, los patrones se han utilizado como forma de documentación interna en compañías o como introducción a nuevos dominios emergentes, recibiendo estos patrones el nombre de pre-patrones puesto que los dominios de diseño a los que pertenecen no están suficientemente establecidos y, en consecuencia, no existe suficiente experiencia, por lo que los patrones están en realidad basados en el uso del sentido común y de la reutilización de conocimiento de otras disciplinas.

A continuación, se detallan cada uno de estos campos de forma más detallada.  

2.5.1. Ingeniería del software

Los investigadores y profesionales se vieron atraídos por el potencial de los patrones para hacer explícito aquello que el experto hace muchas veces implícitamente, cuando emplea procedimientos en un nivel muy abstracto para dar solución a problemas que aparecen recurrentemente, de tal manera que otros diseñadores o desarrolladores no tan expertos puedan beneficiarse de ese conocimiento y aplicarlo en otro dominio.

En los años siguientes a la publicación del GoF(1) se ha producido un auge en la investigación de patrones, extendiéndose a otras áreas del desarrollo software, incluyendo:

  • patrones de análisis: conjunto de reglas que permiten modelar un sistema de forma satisfactoria (Fowler, 1997),
  • patrones de procesos: serie de acciones para desarrollar software (Ambler, 1998),
  • patrones de arquitectura: formas de descomponer, conectar y relacionar sistemas (Buschmann et al., 2001) y
  • patrones de programación: patrones de bajo nivel en un lenguaje de programación concreto (Alur et al., 2003).

A medida que ha aumentado el uso de los patrones se ha tenido certeza de que éstos pueden mejorar la productividad y calidad de las soluciones software gracias a las  siguientes cualidades (Chambers et al., 2000):

  • Promueven la reutilización del diseño. Los patrones de diseño capturan experiencias en la resolución de problemas de diseño cuya utilidad o necesidad se ha evidenciado repetidamente en diferentes proyectos. Por lo tanto, la aplicación de un patrón lleva implícita la reutilización de esos diseños.
  • Forman un vocabulario común de diseño. Los nombres de los patrones pueden ayudar a los diseñadores a comunicarse de una manera más eficiente, extendiendo su vocabulario y siendo capaces de transmitir el problema y la solución como un todo comprensible mediante el nombre del patrón.
  • Mejoran la documentación. La utilización de un patrón en el desarrollo de un sistema permite conocer qué solución se ha aplicado y por qué, puesto que el patrón no es una idea del programador sino una solución probada y reconocida en una comunidad de desarrollo.

Otras muchas áreas relacionadas con el software también han registrado su conocimiento con patrones, como por ejemplo los sistemas distribuidos, concurrentes o paralelos (Schmidt, 2006), la interacción persona-ordenador (Tidwell, 2008), el comercio electrónico (Adams et al., 2001), o la inteligencia artificial (Peters, 2003). Además, el modelo descriptivo de los patrones ha demostrado también su efectividad en otras áreas no relacionadas con el software, como la organización de grupos humanos (Keidel, 1995).

Un ejemplo de patrón de diseño del área de la orientación a objetos es el patrón Singleton (Gamma et al., 1994). Este patrón asegura que una clase tiene una única instancia, y proporciona un punto de acceso global a esa instancia. Utilizando un ejemplo no software, el cargo del presidente de los Estados Unidos es un Singleton. En un determinado momento, sólo hay un presidente en activo. A pesar de la identidad personal del presidente en activo, el título "Presidente de los Estados Unidos" es un acceso global que identifica a la persona en el cargo.

Figura 2.5.1.a. Diagrama de Objetos para el patrón Singleton usando el ejemplo de la presidencia (Duell, 1997).

Ejemplo del patrón utilizando el escudo de la presidencia de los Estados Unidos.

(1)Gang of Four, nombre con el que se conoce familiarmente al libro “Design Patterns, Elements of Reusable Object-Oriented Software”.


retroceder avanzar