Esse artigo faz parte da revista SQL Magazine edição 49. Clique aqui para ler todos os artigos desta edição

dana">Desenvolvimento

Modelagem e Persistência

Criando uma aplicação passo a passo usando tecnologias Java e ferramentas open source para modelar e persistir dados

 

A fim de aumentar a produtividade na fabricação de software, os ambientes de desenvolvimento estão cada vez mais oferecendo melhores recursos para facilitar e agilizar várias etapas do processo de construção de aplicações. Isso pode ser observado desde a fase de análise e modelagem de uma aplicação até a sua implementação.

Nosso interesse neste artigo é apresentar, de forma prática, o passo-a-passo de construção de uma aplicação desenvolvida utilizando a plataforma Java e que necessite de banco de dados para o armazenamento de suas informações. Nossa intenção é enfatizar as etapas de modelagem das classes, de mapeamento dos objetos em tabelas e de armazenamento nos dados no banco. Para isso, selecionamos um conjunto de tecnologias e ferramentas open source disponíveis no mercado, a saber:

·   Java 1.5, como linguagem de programação;

·   Eclipse 3.2, como ambiente de desenvolvimento;

·   eUML2, plug-in do Eclipse para construção de diagramas UML;

·   Hibernate, tecnologia para mapeamento e persistência dos dados;

·   Hibernate Tools, plug-in do Eclipse para trabalhar com o Hibernate;

·   MySQL, banco de dados que servirá como repositório dos dados.

 

Assumiremos que o leitor já tenha alguma familiaridade com modelagem em UML, desenvolvimento em Java e com as tecnologias e ferramentas mencionadas acima (ver seção Links para mais informações). Sendo assim, nosso foco não será na estrutura da linguagem, mas sim nos passos necessários desde a modelagem da aplicação até a sua implementação utilizando um mecanismo para persistência dos dados.

A fim de organizar o código e facilitar a evolução e manutenções futuras, dentre outros benefícios, o desenvolvimento de nossa aplicação exemplo segue o conceito de multicamadas baseado no MVC (Modelo – Visão – Controle), onde cada camada tem uma função bem definida: (1) a camada de Modelo engloba as classes que representam as entidades de domínio da aplicação e mais as classes responsáveis pelo acesso aos dados armazenados no banco de dados; (2) a camada de Visão engloba as classes responsáveis pela apresentação dos dados visualizados pelo usuário da aplicação; e (3) a camada de Controle engloba as classes responsáveis pelas regras de negócios, onde são programadas, por exemplo, funções de cálculos e validação dos dados, fazendo a comunicação ente o Modelo e a Visão.

A aplicação que será gerada como exemplo implementa parte de um sistema de uma locadora de fitas. Por se tratar de um exemplo bem simples, daremos pouca ênfase às camadas de Visão e Controle. Nosso maior propósito neste artigo é enfatizar a construção da camada de Modelo, mostrando como ferramentas e tecnologias em Java podem ajudar a desenvolvê-la de uma forma mais ágil e simples, minimizando o trabalho do desenvolvedor.

Iniciando o projeto

Para começar, vamos primeiramente preparar o ambiente dentro do Elipse iniciando um novo projeto Java. Para isso, acione a opção File > New > Project... > Java Project (Figura 1). Ao apertar o botão Next, será exibida a janela de configuração do projeto (Figura 2). Entre com o nome do projeto “Locadora” e selecione a opção Create separete source and output folders para criar as pastas de saída dos códigos fonte e classes compiladas da aplicação. O padrão de nomes para estas pastas configurado em nosso ambiente foi src e classes, respectivamente (verifique a opção Configure default...). Clique no botão Finish para encerrar esta configuração.

 

Figura 1. Iniciando uma nova aplicação Java no Eclipse. 

 

Figura 2. Configurando o projeto Locadora.

 

Para fechar este passo, selecione o projeto criado na visão Navigator e crie, através da opção New > Folder do menu direito, as pastas “diagramas”, “persistencia”, “src/locadora/dao”, “src/locadora/entidade” e “src/locadora/teste” (Figura 3), que serão utilizadas ao longo dos próximos passos.

 

Figura 3. Estrutura de pastas da aplicação Locadora.

Modelando a aplicação

No nosso exemplo Locadora, o domínio de aplicação é composto por três entidades básicas: Cliente, Fita e Empréstimo. Cada empréstimo associa um cliente a uma fita, com uma data de locação e outra de devolução.

A construção do diagrama de classes será feita dentro do próprio ambiente de desenvolvimento Eclipse através do plug-in eUML2 (ver Nota 1). Para isso, selecione o projeto Locadora na visão Navigator e acione a opção do menu direito New > Other... > UML Diagrams > UML Class Diagram (Figura 4). Na janela seguinte (Figura 5), selecione o diretório e nome de gravação do diagrama, além do pacote para geração automática do código fonte Java para cada uma das entidades modeladas.

Observe na Figura 4 que este plug-in possibilita a modelagem de todos os diagramas que compõem a UML (exemplo, diagrama de atividade, estado, casos de uso, seqüência, dentre outros). Após escolhido o diagrama, o processo para construção dos modelos é semelhante ao que ocorre em outras ferramentas CASE de modelagem utilizando a UML, como Together, Poseidon, Rational Rose ou qualquer outra ferramenta. Assumiremos que o leitor já conhece o processo para construção de diferentes modelos da UML, e partiremos neste artigo do diagrama de classes já construído.

 

Figura 4. Modelo de classes da aplicação exemplo.

 

Figura 5. Criação do diagrama de classes para a aplicação Locadora.

 

Nota 1. Instalando o plug-in eUML2

Para instalar o eUML2 em seu Eclipse, acesse o site http://www.soyatec.com/euml2/installation/offline.php e baixe o arquivo zip da última versão disponível do plug-in. Feito isto, basta descompactar o zip na pasta raiz de instalação de seu Eclipse.

 

A Figura 6 ilustra o diagrama final de nossa aplicação. Observe nesta figura que nosso exemplo é bastante simples e não envolve nenhum tipo de associação diferenciada que compõe o paradigma orientado a objetos, como herança ou dependência. Nosso objetivo é demonstrar o uso de uma tecnologia de persistência de objetos em um banco de dados relacional e não em técnicas de mapeamento objeto-relacional. Por isso adotamos um exemplo simples.

 

Figura 6. Modelo de classes da aplicação exemplo.

Um resumo do código fonte Java gerado automaticamente durante a edição de cada uma das classes é descrito na Listagem 1.

 

Listagem 1. Código gerado automaticamente a partir do diagrama de classes.

...

Quer ler esse conteúdo completo? Tenha acesso completo