Introdução

Conceitualmente a engenharia reversa é um estudo do processo de funcionamento de um objeto, podendo ser um sistema mecânico ou software ou um banco de dados, através da análise de sua estrutura, função e operação.

No Cronapp, a funcionalidade engenharia reversa gera um diagrama de dados a partir de um banco de dados externo cadastrado no sistema. As novas classes, atributos e relacionamentos do diagrama serão geradas a partir das tabelas, campos e chaves estrangeiras do banco de dados externo.

Esse procedimento é muito útil caso queira gerar toda a estrutura básica (camadas entity, dao e view) de um sistema legado no Cronapp.

Pré-requisitos

  • Banco de dados relacional externo

Figura 1 - Exemplo de banco de dados externo

Adicionando o banco de dados na nuvem

No ícone de menu se encontra a opção banco de dados e ao clicá-lo, será exibida na área de trabalho da IDE os bancos de dados existentes e que estão vinculados ao projeto, onde você poderá gerencia-los (Figura 2). Para adicionar um novo banco seleciono novo, no canto inferior direito da janela.

Figura 2 - Tela de Gerenciamento de Banco de Dados

  1. Editar a Conexão;
  2. Excluir Conexão;
  3. Manipular Dados: essa opção abre a tela do SGBD, onde pode aplicar scripts de DML (SELECT, INSERT, UPDATE e DELETE) e de DDL (CREATE, ALTER e DROP). 

 

Após criar um novo, uma janela de configuração será aberta (Figura 3).

Figura 3 - Novo banco de dados


Você poderá alterar o banco de dados de local para outro banco externo, mas ele tem que estar vinculado a sua conta.

Caso não queira usar um banco de dados na nuvem, pode informar os dados de uma conexão de um banco existente. No entanto, é preciso informar os dados de conexão desse banco.


Terminada a configuração do novo banco, salve clicando no botão OK para retornar a janela context e a nova conexão de banco de dados será apresentada na área (Figura 4).


Figura 4 - Bancos do projeto

Criar novo diagrama

Para fazer a engenharia reversa é preciso criar um novo diagrama já que no diagrama inicial não é possível faze-lo. Então, na árvore de arquivos do seu projeto, clique com botão direito em Diagramas de Dados e em seguida novo > diagrama de dados, defina um nome para o mesmo. 

Figura 5 - Novo diagrama

Seleção do banco de dados no diagrama

Na janela do novo diagrama estará habilitado o botão gerar diagrama a partir do banco de dados (2) que fará a engenharia reserva do banco de dados selecionado. Defina qual banco irá gerar o novo diagrama na caixa de seleção (2), indicado na figura 6.

Figura 6 - Alterar banco do diagrama

Gerando o diagrama a partir do banco de dados

Agora que todas as configurações relacionadas ao banco de dados foram feitas, vamos iniciar a engenharia reversa para gerar o novo diagrama. Clique no botão gerar diagrama a partir do banco de dados e selecione as tabelas que farão parte do diagrama.

Em estratégia de chaves você terá duas opções na hora de gerar a "Primary Key" das tabelas, que são:

  • Auto: gera as tabelas sem configurar o campo tipo de PK (auto completar identity ou UUID), necessário selecionar manualmente em cada tabela depois;
  • Forçar auto geração: gera as tabelas com o campo tipo de PK configurado para identity quando a PK for inteiro ou UUID quando o PK for varchar.

Figura 7 - Selecionar tabelas


É possível escolher os campos de cada tabela (Figura 8), ou seja, caso não queira gerar todo o conteúdo, é possível filtrar apenas os campos necessários clicando no botão "..." (Figura 7) ao lado da tabela correspondente. 

Figura 8 - Escolher campos para serem gerados

 

Pronto, tudo já foi configurado, agora clique em coletar e uma mensagem aparecerá informando que a engenharia reversa foi concluída com sucesso.

Figura 9 - Diagrama gerado via banco de dados

Copiar classes entre diagramas

Para unir todas as tabelas em um único diagrama, selecione as tabelas do diagrama que foi gerado a partir da engenharia reversa, copie e depois cole no diagrama principal, como mostra as imagens abaixo. Após isso será possível gerar as camadas de persistência e CRUD dessas novas tabelas.

Figura 10 - Seleção de classes para serem copiadas

 

Figura 11 - Classes coladas em outro diagrama

 

É possível separar as tabelas do diagrama por funcionalidade do sistema, facilitando a visualização. Veja mais em Visão do Diagrama de Dados.