Modelagem Reconciliada

A Modelagem Reconciliada, também conhecida como modelagem de Reconciliação de Arquitetura, é semelhante aos modelos conceituais de Modelagem Mista nos quais os modelos conceituais são mantidos e iterativamente estendidos em todo o processo de design. Entretanto, os elementos da semântica conceitual não são substituídos pela referência dos elementos de código quando as transformações são aplicadas.

Esta abordagem ajuda uma organização com uma forte cultura de controle a desenvolver um conjunto detalhado e semanticamente rico de modelos conceituais de UML que descrevem um sistema. Os arquitetos podem gerar e regenerar código desses modelos à medida em que são desenvolvidos. Depois que um arquiteto cria o modelo em nível de classe detalhado utilizando UML, ele pode aplicar uma transformação diretamente a este modelo conceitual para gerar a estrutura do código, ou, em muitos casos, o código de compilação real, para um aplicativo. O desenvolvedor, então, desenvolve a implementação nas diretrizes estruturais do novo modelo de código editando visualmente o código em diagramas de notação UML ou utilizando um editor de código. Se a estrutura do modelo de código precisar ser modificada ou se um desenvolvedor estiver preocupado com o design do sistema, o arquiteto poderá revisar a alteração proposta e implementá-la diretamente no modelo UML. Uma transformação reversa é aplicada no código em desenvolvimento, produzindo modelos UML temporários comparados aos, ou reconciliados, estados de desenvolvimento dos modelos UML originais. Isso permite um meio de ver prontamente quando a implementação se desvia do contrato de design e permite ao arquiteto fazer as alterações. As transformações reversas podem ocorrer muitas vezes no ciclo de desenvolvimento e fornecem um controle rigoroso no contrato de design. O modelo UML pode ser visto como o modelo principal, porque está evoluindo continuamente através do processo de desenvolvimento. Quando o arquiteto reaplica a transformação de modelo UML, o código existente é sobrescrito, e o arquiteto toma precauções para não sobrescrever o trabalho detalhado do desenvolvedor. Neste fluxo de trabalho, o arquiteto está gerando os aspectos de design de um ou mais aplicativos, deixando pouco potencial para as atividades de codificação manual restantes a fim de alterar algo arquiteturalmente significativo ou que possa violar um contrato de design.

Aplicativo

A Modelagem Reconciliada é mais bem adaptada aos aplicativos altamente críticos e onde o requisito e a documentação de conformidade são muito rigorosos. Este protocolo é mais benéfico a organizações que praticam forte controle arquitetural, em que as interfaces são extensivamente especificadas pelos arquitetos e em que os desenvolvedores aderem estritamente a essas especificações. Essa abordagem pode ser utilizada quando todos os aspectos arquiteturalmente significantes de uma implementação puderem ser derivados da especificação do modelo e quando houver um alto valor a ser obtido com o uso da transformação automatizada e, em alguns casos, padrões de design predefinidos. Este fluxo de trabalho é especialmente apropriado quando o trabalho de design está sendo desempenhado internamente, mas a implementação está sendo terceirizada, ou quando vários aplicativos destinam-se a uma estrutura arquitetural comum, como para SOAs, de forma que haja muita associação de um aplicativo, recurso ou serviço com o próximo.

Vantagens

A Modelagem Reconciliada permite que os arquitetos retenham expressões completas detalhadas de intenção arquitetural do aplicativo. A Modelagem Reconciliada fornece alguma liberdade criativa aos desenvolvedores, mas ela é atentamente monitorada pelo arquiteto para garantir que os desvios dos requisitos sejam resolvidos ou modificados rapidamente. Os arquitetos têm as ferramentas para comparar e contrastar que tanto os modelos projetados versus os construídos não são substituídos do projeto original. A Modelagem Reconciliada, como o nome implica, fornece um modelo operacional forte para o gerenciamento da alteração arquitetural.

Considerações

A Modelagem Reconciliada fornece pouca liberdade criativa aos desenvolvedores. A Modelagem Reconciliada pode ser dispendiosa ao manter os modelos e reverter o código de implementação de transformação em comparação com as metas de design estabelecidas no início. As organizações que escolhem essa abordagem devem empregar arquitetos que compreendam a semântica de UML e podem desenvolver um aplicativo completo utilizando a sintaxe de UML detalhada.


Feedback