Concepto: Mecanismos de análisis
Un mecanismo de análisis representa un patrón que constituye una solución común a problema común. Los mecanismos de análisis pueden mostrar patrones de estructura, patrones de comportamiento o ambos.
Relaciones
Descripción principal

Introducción a mecanismos de análisis

Un mecanismo de análisis representa un patrón que constituye una solución común a problema común. Los mecanismos de análisis pueden mostrar patrones de estructura, patrones de comportamiento o ambos. Los mecanismos se utilizan durante el análisis para reducir su complejidad y aumentar la coherencia proporcionando a los diseñadores una representación taquigrafiada del comportamiento complejo. Estos mecanismos permiten que el esfuerzo de análisis se centre en la conversión de los requisitos funcionales en conceptos de software sin atascarse en la especificación de comportamientos relativamente complejos que son necesarios para para dar soporte a la función, pero no esenciales. Los mecanismos de análisis suelen ser el resultado de la creación de instancias de uno o varios patrones arquitectónicos o de análisis. 

Los mecanismos de análisis se utilizan principalmente para representar 'marcadores de posición' para tecnología compleja en las capas inferiores o del medio de la arquitectura. Al utilizar los mecanismos como 'marcadores de posición' en la arquitectura, disminuye la posibilidad de que el esfuerzo arquitectónico se entretenga en los detalles de comportamiento del mecanismo. Por ejemplo, la necesidad de tener casos de uso de distribución de ciclos de vida de objetos, ciclos de vida de procesos o la conclusión y el inicio del sistema define la necesidad de permanencia del objeto. La permanencia es un mecanismo especialmente complejo, por lo que no es recomendable que, durante el análisis, nos entretengamos en los detalles de cómo vamos a conseguir la permanencia. Esto da lugar a un mecanismo de análisis de la 'permanencia' que nos permite hablar de objetos permanentes y capturar los requisitos que nos encontraremos en el mecanismo de permanencia, sin tener que preocuparnos de qué va a hacer exactamente el mecanismo de permanencia y cómo funcionará.

Normalmente, aunque no necesariamente, los mecanismos de análisis no están relacionados con el dominio del problema, sino que son conceptos "informáticos"; por lo tanto, suelen ocupar las capas inferiores o del medio de la arquitectura. Proporcionan comportamientos específicos de la clase o subsistema relacionado con el dominio, o equivalen a la implementación de la cooperación entre clases y/o subsistemas. Los mecanismos pueden implementarse como una infraestructura. Entre los ejemplos se encuentran mecanismos para manejar la permanencia, la comunicación entre procesos, los errores, las notificaciones, la mensajería, etc. 

Sin embargo, a medida que se establecen más patrones de análisis en varios dominios, la creación de instancias parciales o completas de estos mecanismos de análisis hará que estos mecanismos aparezcan en las capas superiores de la arquitectura.

Ejemplos de mecanismos de análisis

  • Permanencia

    Para todas las clases cuyas instancias pueden convertirse en permanentes, debemos identificar:
    • Granularidad: rango de tamaño de los objetos que deben ser permanentes
    • Volumen: número de objetos que deben ser permanentes
    • Duración: durante cuánto tiempo hay que mantener el objeto normalmente
    • Mecanismo de recuperación: cómo se identifica exclusivamente y se recupera un objeto dado
    • Frecuencia de actualización: ¿los objetos son más o menos constantes; se actualizan permanentemente?
    • Fiabilidad: ¿los objetos deben sobrevivir a un bloqueo del proceso, del procesador o de todo el sistema?

  • Comunicación entre procesos

    Para todos los elementos de modelo que deben comunicarse con componentes o servicios que se ejecutan en otros procesos o hebras, debemos identificar:
    • Latencia: ¿con qué velocidad deben comunicarse los procesos entre sí?
    • Sincronización: comunicación asíncrona
    • Tamaño del mensaje: es más adecuado un espectro que un solo número.
    • Protocolo, control de flujos, almacenamiento intermedio, etc.

Otros mecanismos típicos son:

  • Direccionamiento de mensajes
  • Sincronización y control de procesos
  • Gestión de transacciones
  • Intercambio de información
  • Seguridad
  • Redundancia
  • Notificación de errores
  • Conversión de formato

Descripción de mecanismos de análisis

El proceso para describir los mecanismos de análisis es:

  1. Recopile todo los mecanismos de análisis en una lista

    El mismo mecanismo de análisis puede aparecer con varios nombres diferentes en realizaciones de casos de uso diferentes, o diseñadores diferentes. Por ejemplo, almacenamiento, permanencia, base de datos y depósito pueden referirse a un mecanismo de permanencia. Comunicación entre procesos, paso de mensajes o invocación remota pueden referirse a un mecanismo de comunicación entre procesos.

  2. Establezca una correlación entre las clases de cliente y los mecanismos de análisis
  3. Diagrama descrito en el contenido.

    Las clases y los subsistemas identificados deben correlacionarse con los mecanismos de análisis identificados: las flechas indican que la clase utiliza el mecanismo. Es frecuente que una clase de cliente requiera los servicios de varios mecanismos.

  4. Identifique las características de los mecanismos de análisis

    Para discriminar en un rango de diseños potenciales, identifique las características clave que se utilizan para calificar los mecanismos de análisis. Estas características incluyen una parte de funcionalidad y otra parte de tamaño y rendimiento.

  5. Modele utilizando las colaboraciones

    Una vez que haya identificado y nombrado los mecanismos de análisis, deben, en última instancia, modelarse a través de la colaboración de una 'sociedad de clases' (consulte [BOO98]); algunas de estas clases no proporcionan directamente funciones de la aplicación, sólo existen para dar soporte. Muy a menudo, estas 'clases de soporte' se ubican en las capas inferiores o del medio de una arquitectura en capas; de esta manera, proporcionan un servicio de soporte común a todas las clases del nivel de aplicación.

    Si el mecanismo identificado es bastante común, es posible que existan patrones desde los que se puedan crear instancias del mecanismo, mediante la vinculación de clases existentes y la implementación de clases nuevas, según requiera el patrón. Un mecanismo de análisis producido de esta esta manera será abstracto y requerirá un mayor perfeccionamiento mediante el diseño y la implementación.

Los mecanismos de análisis se documentan en el apartado Producto de trabajo: Documento de arquitectura de software. A medida que el software madura, el apartado Producto de trabajo: Documento de arquitectura de software incluye una relación (o correlación) de mecanismos de análisis con mecanismos de diseño y mecanismos de implementación, y el fundamento asociado de estas elecciones.