Clique aqui para ler esse artigo em PDF.
Clique aqui para ler todos os artigos desta edição
Desenvolvendo projetos com ferramentas livres para UML – Parte 2
Marcio Junior Vieira
Leitura obrigatória: SQL Magazine 19, Desenvolvendo projetos com ferramentas livres para UML
A diferença entre os conceitos da orientação a objetos e bases de dados relacionais provoca uma necessidade de alterar a modelagem quando vamos criar nossa base de dados a partir de diagramas de classe. Neste artigo vamos produzir scripts SQL e código fonte a partir de nosso projeto e veremos como podemos fazer alguns ajustes em nossos diagramas de classes para deixá-los adequados à geração dos scripts.
Umbrello UML Modeller na geração de código Java e scripts SQL
Os exemplos que veremos aqui para geração de código Java e SQL se baseiam no projeto “Pedido de Vendas” apresentado no diagrama de classes da Figura 1. Como podemos perceber na Figura 2, fizemos uma remodelagem, usando o Umbrello UML Modeller, para tratar os atributos do nosso projeto especificamente para a geração de código fonte Java. Foram alterados os atributos do tipo Date e atributos do tipo String para java.util.Date e java.lang.String respectivamente, pois o Umbrello não faz o tratamento para as referências da bibliotecas de objetos Java.
Na Figura 3 remodelamos o diagrama de classes para torná-lo mais próximo de um diagrama de entidade e relacionamento. Os atributos alterados passaram de String para Char(50) e Boolean para Char(1). Estas alterações não são obrigatórias para a geração do código fonte ou dos comandos SQL, nada impede que estas alterações sejam feitas diretamente nos códigos fontes ou nos scripts SQL gerados com o diagrama original.
Figura 1. Diagrama de classe de um mini-projeto de Pedido de Venda.
Figura 2. Diagrama de classe modelado para linguagem Java.
Figura 3. Diagrama de classe modelado para SQL.
Para gerar o código basta ir ao menu Código ? Linguagem ativa, e selecionar a linguagem de programação desejada. As opções disponíveis são: Java, PHP, JavaScript, ActionScript, C++, SQL, Ada, IDL, XMLSchema, Python ou Perl. O Umbrello ainda permite que sejam feitas algumas configurações para geração de código fonte que também são válidas para geração de scripts SQL a partir do menu Configurações ? Configurar Modelador UML Umbrello... Na opção geração de código (ver Figura 4), podemos informar o local padrão para geração do código, a política de sobrescrita, detalhes de formatação como tipo de endentação, tamanho, como será gerada a documentação e algumas opções especificas de linguagem como tipo de barra de comentários.
Figura 4. Configurando a geração de código no Umbrello UML Modeller.
O Umbrello possui um recurso para geração de cabeçalhos de código personalizados. Podem ser alterados os arquivos headings onde podem ser acrescentadas suas informações de licença do software, data e hora de geração, autor e nome do arquivo gerado. Para fazer isso, basta editar os arquivos que estão no sub-diretório headings da instalação do Umbrello. Neste diretório existe um arquivo para cada linguagem disponível na ferramenta (heading.java, heading.sql, etc).
Feitas estas configurações, basta ir ao menu em Código ? Gerar todo Código ou utilizar o “Assistente de geração de código...” que interage com usuário para que ele selecione as classes que serão geradas, possibilitando que sejam alteradas as configurações padrões definidas anteriormente. Na Figura 5 visualizamos o primeiro passo a ser realizado: selecione as classes que deseja gerar o código do lado direito da lista e, após a seleção, clique no botão próximo. Na Figura 6 visualizamos o segundo passo do assistente do Umbrello, que disponibiliza a mesma tela de configuração de geração de código (onde demonstramos agora as opções de formatação). O último passo pode ser visualizado na Figura 7, onde é solicitada uma confirmação das classes que serão geradas.
Figura 5. Selecionando as classes para geração de código fonte.
Figura 6. Configurando a geração de código no Umbrello UML Modeller através do assistente.
Figura 7. Estado da geração de código fonte.
Após realizadas todas configurações na ferramenta e estar com um diagrama de classe modelado, existem algumas dificuldades se quisermos adequar nossos diagramas para atender ao mesmo tempo tanto a geração de código SQL como de código Java. Se o foco for apenas a geração de código para uma das situações ótimo, caso contrário, a ferramenta na sua versão estável ainda não possui um recurso para personalização diferenciada para base de dados e código fonte ao mesmo tempo. Na Figura 8 demonstramos a classe pedido modelada especialmente para tecnologia Java e outro exemplo da mesma classe modelada para criação de nossa base de dados que terá o MySQL como SGBD. Vemos que a principal dificuldade é a diferença entre tipos de dados. Outra opção, talvez não tão agradável, é gerar o código SQL e Java, e fazer seus devidos ajustes diretamente no fonte ou script SQL. Na ...