Patrones de Arquitectura



Patrones de diseño


Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Un patrón es una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reusable, lo que significa que es aplicable a diferentes problemas de diseño en circunstancias parecidas.
Estableciendo patrones de diseño, se hace más fácil construir soluciones específicas que tienen determinadas estructuras o piezas en común, reutilizando al mismo tiempo experiencias adquiridas.

Objetivos de los patrones

Los patrones de diseño 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".

Categorías generales de patrones

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 diseño: Aquéllos que expresan esquemas para definir estructuras de diseño (o sus relaciones) con las que construir sistemas de software.
  • Dialectos: Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto.

Antipatrón de diseño

Además, también es importante reseñar el concepto de "antipatrón de diseño", que con forma semejante a la de un patrón, intenta prevenir contra errores comunes de diseño en el software.
La idea de los antipatrones es dar a conocer los problemas que acarrean ciertos diseños muy frecuentes, para intentar evitar que diferentes sistemas acaben una y otra vez en el mismo callejón sin salida por haber cometido los mismos errores.

Patrones de arquitectura

Los patrones de arquitectura están orientados a representar los diferentes elementos que componen una solución de software y las relaciones entre ellos. A diferencia de los patrones de diseño de software que están orientados a objetos y clases (patrones creacionales, estructurales, de comportamiento, de interacción, etc.), los patrones de arquitectura están a un mayor nivel de abstracción.
Los patrones de arquitectura forman parte de la llamada Arquitectura de Software (arquitectura lógica de un sistema), que de forma resumida comprende:
  • El diseño de más alto nivel de la estructura del sistema
  • Los patrones y abstracciones necesarios para guiar la construcción del software de un sistema
  • Los fundamentos para que analistas, diseñadores, programadores, beta testers, etc. trabajen en una línea común que permita cubrir restricciones y alcanzar los objetivos del sistema
  • Los objetivos del sistema, no solamente funcionales, sino de mantenimiento, auditoría, flexibilidad e interacción con otros sistemas
  • Las restricciones que limitan la construcción del sistema acorde a las tecnologías disponibles para su implementación
La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de proceso de información, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué ordenador tendrá asignada cada tarea.
Existen al menos tres vistas absolutamente fundamentales en cualquier arquitectura:
  • La visión estática: describe qué componentes tiene la arquitectura
  • La visión funcional: describe qué hace cada componente
  • La visión dinámica: describe cómo se comportan los componentes a lo largo del tiempo y como interactúan entre sí
El patrón de arquitectura debe contener de alguna manera, información para que estas tres vistas fundamentales estén presentes y puedan servir para la implementación de soluciones basadas en él.

Descripción de un patrón

Los siguientes tópicos describen las secciones de un patrón de arquitectura.
Sección
Descripción
Nombre
Nombre descriptivo que identifica al patrón
Clasificación
Clasificación del patrón que permita focalizar su orientación a la solución de una determinada área de problemas
Intención
Breve descripción del objetivo para el cuál se crea el patrón (problema que pretende resolver)
También conocido como
Otros nombres por los cuáles se conoce al patrón
Motivación
Escenario de ejemplo de uso del patrón
Aplicabilidad
Usos comunes y criterio de aplicabilidad del patrón
Estructura
Representación gráfica del patrón: todos sus componentes y las relaciones entre ellos
Componentes (Participantes)
Lista de componentes o recursos que intervienen en el patrón y sus roles en el diseño así como los enlaces a sus respectivas documentaciones en el caso que sean componentes de arquitectura en uso
Colaboraciones
Descripción de las interacciones entre los diversos componentes del patrón
Consecuencias
Descripción de los resultados, efectos colaterales o compensaciones causadas por el uso del patrón (consecuencias positivas y negativas de su uso)
Implementación
Descripción de la implementación del patrón (técnicas y comentarios oportunos para poder llevarlo a la realidad)
Código de ejemplo
Código fuente asociado a la implementación del patrón
Usos conocidos
Lista de casos reales de implementación del patrón
Patrones relacionados
Otros patrones que tienen relación con el patrón así como diferencias con patrones similares

Bibliografía


posted under |

0 comentarios:

Publicar un comentario

Entrada más reciente Página principal