Modelo Canônico – Estudo de caso

Faz um ano que escrevi o ultimo post sobre este assunto, mas ainda existe muita confusão neste tema. Como os três primeiros a abordagem foi muito teórica, vou tentar dar um exemplo mais prático:

Considere que três sistemas legados possuem informações de cliente, o sistema de conta corrente possui informações básicas como código, cpf e nome, além das informações de movimentação da conta corrente; o sistema de crédito possui as informações básicas e o histórico de empréstimos do cliente; o sistema de cadastro de clientes, por sua vêz, possui as demais informações pessoais do cliente. Segue abaixo um diagrama com a representação do cliente nos três sistemas:

Modelo de dados dos sistemas legado

Os três sistemas são semanticamente incompatíveis, o modelo canônico simplifica a comunicação entre eles definido uma representação agnóstica das informações de cliente conforme diagrama abaixo:

Diagrama de Classe da entidade Cliente

Note que apenas 3 propriedades foram modeladas, isso ocorre pois as entidades devem ser modeladas de forma incremental, mapeando apenas as informações necessárias naquele momento.

Apesar de a primeira vista parecer um exemplo simples, é bem complicado modelar a entidade cliente. Normalmente é uma das entidades que está mais fragmentada e replicada entre os sistemas de uma empresa. Por este motivo, é um dos principais candidatos para iniciativas MDM (Master Data Management), mas isso seria assunto para outra série de posts.