
UML no Eclipse com o plug-in Omondo
Saiba como construir diagramas UML diretamente no Eclipse de forma a manter seus modelos atualizados e integrados com o código fonte
Algumas etapas do desenvolvimento de software, como a modelagem, são importantes para garantir a qualidade do produto final bem como facilitar futuras manutenções. Uma das ferramentas de modelagem já consagradas no desenvolvimento de aplicações orientadas a objetos é a linguagem UML (Unified Modeling Language), utilizada para especificar, visualizar, construir e documentar as partes de um sistema OO. Mas para usar UML você não precisa de uma ferramenta CASE especializada, complexa, e possivelmente cara. Neste artigo, vamos conhecer o Omondo, um plug-in para o Eclipse que torna a modelagem UML mais fácil.
Com o Omondo é possível construir vários dos diagramas propostos pela UML, tais como Diagrama de Casos de Uso, Diagrama de Classes, Diagrama de Seqüência, Diagrama de Colaboração, Diagrama de Atividades, Diagrama de Componentes e Diagrama de Distribuição.
Além de permitir a construção dos diagramas citados anteriormente, o Omondo cria automaticamente as classes em Java, com os atributos e os métodos definidos a partir do diagrama de classes. Outra funcionalidade do plug-in é a engenharia reversa, ou seja, a possibilidade de se gerar os diagramas a partir do código fonte Java. E devido à alta integração com o IDE, seu uso é bem mais fácil do que sistemas CASE externos, mesmo os que possuam as mesmas capacidades.
Instalando o Plug-in
A instalação do Omondo é bastante simples. Pode-se fazer o download do arquivo .jar no site oficial e, depois disto, executá-lo com um duplo-clique. Uma janela de instalação se abre como pode ser visto na Figura 1.
Figura 1. Janela de instalação
Nesta janela, deve-se escolher o idioma desejado para o procedimento de instalação e clicar sobre o botão Ok. Para que a instalação ocorra com sucesso deve-se clicar em Próximo até que a opção Selecione o Caminho para a instalação apareça. Neste ponto, deve-se indicar onde o Eclipse está instalado.
Para verificar se o plug-in foi corretamente instalado, pode-se clicar no menu Help>Software Updates>Manage Configuration e verificar a presença do mesmo.
Criando o projeto
Para demonstrar as funcionalidades do plug-in, este artigo apresenta a modelagem de um fragmento de um sistema de livraria, utilizando o Eclipse Europa 3.3, contendo as classes: Pessoa, Cliente, Livro, Pedido e ItemPedido. Este exemplo não tem o intuito de ser uma aplicação completa, e sim demonstrar as funcionalidades do plug-in expondo suas principais características.
Comece criando um novo projeto através do menu File>New>Project. Crie um Java>Java Project, com Project name = “Java_Magazine”. Uma vez criado o projeto Java vazio, vá no folder src e crie um package chamado modelo, que irá conter as classes do domínio da aplicação.
Além dos pacotes criados dentro do diretório src, deve-se criar um novo diretório onde serão armazenados os diagramas gerados pelo Omondo. Clique com o botão direito sobre o projeto e acesse o menu File>New>Folder. Preencha Folder Name = “Diagramas” e clique em Finish. Dentro deste diretório, para uma maior organização, deve-se criar os subdiretórios casoUso, classe, estados e sequencia. O Project Explorer do eclipse deve ficar semelhante à Figura 2.
Figura 2. Estrutura do sistema
Diagrama de Caso de Uso
O primeiro diagrama a ser criado será o diagrama de Caso de Uso. Este diagrama demonstra como o sistema irá interagir com os usuários e outros elementos do ambiente. O diagrama de caso de uso é criado acessando o menu File>New>Other. Uma janela semelhante à Figura 3 é exibida.
Figura 3. Criação do diagrama de Caso de Uso
Deve-se escolher a opção UML Diagrams / UML Use Case Diagram e clicar Next. Uma nova janela como a da Figura 4 é exibida, onde é possível escolher em qual diretório o diagrama será salvo e o nome do diagrama. Escolha o diretório Diagramas / casoUso, preencha File name = “casoUso” e clique em Finish.
Cada tipo de diagrama no Omondo possui uma extensão diferente para o arquivo que irá armazenar o diagrama, definida por default pelo plug-in. O Diagrama de Caso de Uso possui a extensão .uud que é sigla para UML Use Case Diagram.
Figura 4. Criação do diagrama de Caso de Uso
Após estes procedimentos, é exibida uma área onde se podem inserir objetos do diagrama de Caso de Uso, como pode ser visto na Figura 5.
Figura 5. Diagrama de Caso de Uso
Para inserir um ator, clica-se sobre o botão Create an actor
Após ter criado o ator executando os passos anteriores, deve-se criar o caso de uso. Para isto, clique no botão Create a Use Case
Neste momento, existe um ator e um caso de uso. Porém, nenhuma ligação entre estes elementos. Deve-se definir uma associação entre o ator e o caso de uso. Essa associação define que quem executa o caso de uso “cadastrarLivro” é o ator “Funcionario”. Clique no botão Add an association
Partindo do principio que um cliente é quem faz o pedido, deve-se repetir esses procedimentos para criar o ator “Cliente” e o caso de uso “fazerPedido” e a associação entre eles. Após executado, deve-se obter um diagrama de caso de uso semelhante à Figura 5.
É importante comentar que o plug-in permite que ligações entre casos de usos sejam feitas utilizando estereótipos. Para fazer as ligações entre os casos de usos podem ser utilizados os estereótipos <<include>> e <<extend>>.
O <<include>> é utilizado quando se deseja que um caso de uso utilize o outro de forma obrigatória. Por exemplo, poderia existir um caso de uso chamado “identificarCliente” ligado ao caso de uso “fazerPedido” no exemplo demonstrado no artigo.
O estereótipo <<extend>> também é utilizado quando se deseja que um caso de uso utilize o outro. Porém, neste caso a utilização não é obrigatória, sendo um caso de uso uma extensão do outro, ou uma possibilidade de uso de forma opcional.
No exemplo demonstrado no artigo poderia existir um caso de uso chamado “solicitarEntrega” que poderia ser chamado através do caso de uso “fazerPedido”. Neste caso, “solicitarEntrega” seria executado apenas se o cliente escolhesse que o produto fosse entregue em domicílio.
...