Modelado reconciliado

El Modelado reconciliado, al que también se hace referencia como modelado de Reconciliación de arquitectura, es similar a los modelos conceptuales del Modelado mixto, en el que los modelos conceptuales se mantienen y se amplían de forma iterativa por todo el proceso de diseño. No obstante, los elementos semánticos conceptuales no se sustituyen por referencias a elementos de código cuando se aplican transformaciones.

Este enfoque ayuda a una organización con una cultura de control fuerte a desarrollar un conjunto de modelos conceptuales UML detallados y ricos semánticamente que describen un sistema.

Los arquitectos pueden generar código a partir de estos modelos y volver a generar a medida que evoluciona el modelo. Después de crear el modelo detallado a nivel de clase utilizando UML, el arquitecto puede aplicar una transformación directamente a este modelo conceptual para generar la estructura de código, o en muchos casos el código de compilación en sí, para una aplicación.

El desarrollador desarrolla entonces la implementación dentro de las directrices estructurales del nuevo modelo de código editando visualmente el código en diagramas de notación UML, o utilizando un editor de código. Si es necesario modificar la estructura del modelo de código, o si un desarrollador tiene un problema en el diseño de alto nivel del sistema, el arquitecto puede revisar el cambio propuesto e implementarlo directamente en el modelo UML.

Se aplica una transformación hacia atrás al código en evolución, generando modelos UML temporales que se comparan con los estados en evolución de los modelos UML originales. Esta comparación también se denomina reconciliación. Este enfoque proporciona un medio para ver cuándo se desvía la implementación del contrato de diseño y ofrece al arquitecto una oportunidad para realizar cambios.

Las transformaciones hacia atrás pueden producirse muchas veces en el ciclo de desarrollo y proporcionan un control estricto sobre el contrato de diseño. El modelo UML puede verse como el modelo maestro ya que está en continua evolución durante el proceso de desarrollo.

Cuando el arquitecto vuelve a aplicar la transformación del modelo UML, se sobrescribe el código existente, tomando precauciones el arquitecto para no sobrescribir el trabajo detallado del desarrollador. En este flujo de trabajo, el arquitecto está generando los aspectos de diseño de una o más aplicaciones, dejando poco potencial para las actividades de codificación manual restantes para alterar algo que sea significativo en la arquitectura o que pudiera violar un contrato de diseño.

Aplicación

El Modelado reconciliado es adecuado para aplicaciones vitales y donde la documentación de requisitos y conformidad sea muy estricta. Este protocolo ofrece las mayores ventajas a las organizaciones que practican un potente control arquitectónico, donde los arquitectos especifican interfaces ampliamente, y donde los desarrolladores se adhieren a esas especificaciones de manera estricta.

Este enfoque puede utilizarse cuando todos los aspectos significativos de la arquitectura de una implementación pueden derivarse de la especificación de modelo y cuando se gana calidad mediante el uso de la transformación automatizada y, en algunos casos, patrones de diseño predefinidos. Este flujo de trabajo es especialmente adecuado cuando el trabajo de diseño se realiza in situ pero la implementación se subcontrata, o donde varias aplicaciones tienen como objetivo una infraestructura de arquitectura común, por ejemplo los proyectos de arquitectura orientada a servicios (SOA), para que haya muchos puntos comunes de una aplicación, característica o servicio al siguiente.

Ventajas

Con el Modelado reconciliado, los arquitectos pueden retener expresiones detalladas y completas del propósito arquitectónico de la aplicación. El Modelado reconciliado proporciona una cierta libertad creativa a los desarrolladores, pero está supervisado de cerca por el arquitecto para asegurar que los desvíos de los requisitos se resuelven o de modifican rápidamente. Los arquitectos tienen las herramientas para comparar y contrastar el diseño con el código, ya que los modelos no se sustituyen del diseño original. El Modelado reconciliado, como el nombre implica, proporciona un modelo operativo potente para gestionar los cambios arquitectónicos.

Consideraciones

El Modelado reconciliado proporciona poca libertad creativa a los desarrolladores. En el Modelado reconciliado, el mantenimiento de los modelos puede ser costoso. Las transformaciones hacia atrás del código de implementación para comparar el código con los objetivos de diseño establecidos al principio también pueden resultar costosas. Las organizaciones que elijan este enfoque deben emplear arquitectos que comprendan la semántica de UML y que puedan diseñar una aplicación completa utilizando sintaxis de UML detallada.


Comentarios