Pages Menu
Categories Menu

Posted by on Ago 28, 2014 in General | 2 comments

¿Qué tipos de patrones hay?

Hace tiempo te dejé una presentación powerpoint de introducción a los patrones, tiempo atrás hablamos de dónde viene la palabra patrón aplicada al mundo del software. Después de más de 20 años de patrones (cómo te comentaba también), el tema he evolucionado mucho y hay mucho qué contar, en esta ocasión quiero tocar el tema de nuevo y aclarar algo que genera confusión: los tipos de patrones que hay.

Si bien los patrones nacieron principalmente en niveles de abstracción bajos (implementación y diseño), con el tiempo su evolución extendió a casi todas las áreas relacionadas con la creación de software.

Entrando en el tema, los patrones se clasifican generalmente en función de su nivel de abstracción. Y la clasificación más popular es la de Buschmann (1996), que define tres niveles de abstracción:

  • Patrones Arquitectónicos: Se centran en la estructura del sistema, en la definición de subsistemas, sus responsabilidades y reglas sobre las relaciones entre ellos. Proporcionan un conjunto predefinido de subsistemas, sus responsabilidades y las líneas guía para organizar sus relaciones. Existen trabajos muy conocidos y prestigiosos, como los de Buschmann (1996) o Shaw y Garlan (1996).

 

  • Patrones de Diseño: Esquemas para refinar los subsistemas o componentes de sistema software o sus relaciones. Describen una estructura recurrente y común que resuelve un problema de diseño dentro de un contexto, como los descritos por Gamma (1995). También los patrones GRASP estarían en esta categoría.

 

  • Patrones de Codificación o Idiomas (Idioms): Patrones que ayudan a implementar aspectos particulares del diseño en un lenguaje de programación específico, como los descritos por Coplien (1991).

 

Si bien la anterior clasificación es la más conocida sería recomenable añadir a la anterior los…

 

 

No obstante, aparte de la clasificación por niveles de abstracción, no podemos olvidar otras categorías, como, por ejemplo:

 

  • Anti-patrones (Antipatterns), si un patrón es “una buena práctica” un antipatrón es una “lección aprendida”. Fueron inicialmente propuestos por Koenig (1995) en la mítica revista JOOP. Por lo general, existen dos variedades: los que describen una mala solución a un problema y los que describen cómo salir de una mala situación y cómo llegar a una buena.

 

  • Patrones para dominios y tecnologías específicas, aplicables sólo en dominios concretos, centrados en entornos web, tiempo real y sistemas embebidos, requisitos, gestión de configuración (el libro de Berczuk y Appleton, 2002, que en ocasiones hemos aquí comentado), relacionados con la tecnología Java (por ejemplo, los de Marinescu, 2002; los de Grand, etc.), gestión del conocimiento, computación ubicua (los de Landay y Borriello, 2003), etc.

 

  • Patrones organizacionales, metodologías y de procesos, para la planificación de proyectos a gran escala, gestión, etc. Ejemplo de esta categoría son los patrones Scrum. 

 

Javier Garzás

Javier Garzás

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.
Javier Garzás

2 Comments

Post a Reply

Tu dirección de correo electrónico no será publicada.

Share This