Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado o Omondo EclipseUML, um plugin para o Eclipse que auxilia a construção de diagramas UML. Com este plugin é possível criar diagramas de classe, seqüência, estados, use cases, atividades, etc. Alterações no diagrama automaticamente se refletem no código-fonte e vice-versa. Outro recurso interessante é a capacidade de fazer Engenharia Reversa. Dependências Antes de instalar o EclipseUML, é necessário instalar os seguintes plugins: Draw2D: utilizado para a construção de componentes gráficos com SWT; GEF (Graphical Editing Framework): permite criar um rico editor gráfico a partir de seu modelo. O GEF utiliza o Draw2D para renderizar os componentes gráficos; EMF (Eclipse Modeling Framework): Framework de modelagem e geração de código a partir de um modelo. Fazendo o Download Para instalar o plugin EclipseUML faça os seguintes downloads: Eclipse 2.1.3: o o http://download.eclipse.org/downloads/drops/r-2.1.3-200403101828/index.php http://download.eclipse.org/downloads/drops/r-2.1.3-200403101828/eclipse-sdk- 2.1.3-win32.zip EMF 1.1.1.1 : o http://dev.eclipse.org/viewcvs/indextools.cgi/~checkout~/emfhome/downloads/dl.html o http://download.eclipse.org/tools/downloads/emf/emf_1.1.1_20031120_1149wl.zi p EclipseUML: o o http://www.omondo.com/download/free/index.jsp http://www.omondo.com/servlet/download?download=eclipseuml_1.2.1/eclipseuml _1.2.1.20030806.zip O Draw2D e GEF estão incluídos na distribuição do EclipseUML Note que não é necessário fazer o download do Draw2D e do GEF porque uma versão compatível já está incluída na instalação do plugin EclipseUML. Compatibilidade entre as versões do Eclipse e EMF Ao instalar o EclipseUML e o EMF, certifique-se que estes sejam versões compatíveis com o Eclipse instalado. http://dev.eclipse.org/viewcvs/indextools.cgi/~checkout~/emfhome/downloads/dl.html Grupo de Usuários Java Página 1
Instalação Para instalar o EMF e o EclipseUML descompacte os arquivos de instalação no diretório onde o Eclipse está instalado. Após isto, abra o Eclipse, uma janela irá aparecer pedindo para concluir a instalação, clique em finish para reiniciar. Caso esta janela não apareça, entre em Help -> Software Updates -> Pending Changes. 1. Pending Changes Para testar se a instalação foi realizada com sucesso, entre em Help-> About Eclipse Platform-> Plugin Details e verifique as seguintes entradas: Provider Eclipse.org Eclipse.org Eclipse.org Omondo Plugin name Draw2d Graphical Editing Framework (GEF) Eclipse Modeling Framework (EMF) Eclipse UML Plugin Para concluir, abra o menu File -> New -> Other -> UML Diagrams. Se estes wizards aparecerem indica que o Omondo EclipseUML foi instalado corretamente. Caso isto não aconteça, verifique se as versões do EMF e do Omondo EclipseUML são compatíveis com a versão do Eclipse. 2. Wizards do EclipseUML Grupo de Usuários Java Página 2
Criando um Diagrama de Classes Neste tutorial vamos criar um diagrama de classes bem simples para demonstrar o plugin. Crie um Java Project, um source folder e um pacote br.com.guj.automovel. Crie um diagrama de classes utilizando o wizard da figura 2 e selecione o pacote br.com.guj.automovel criado no passo anterior. Para concluir clique em Finish. Após alguns instantes, um editor aparecerá para que se possa construir o diagrama de classes. Na barra de ferramentas do editor, clique no ícone Create an interface e logo em seguida clique no editor. Um wizard irá perguntar o nome da Interface, coloque Automovel. O resultado é mostrado na figura abaixo. 3. Criação da interface Automovel Note que o plugin criou automaticamente o código da interface Automovel no pacote br.com.guj.automovel do seu Projeto. Alterações no Diagrama refletem no código-fonte As alterações realizadas nos diagramas irão se refletir no código -fonte e vice-versa. Cuidado ao apagar uma classe do diagrama, pois a classe também será excluída do projeto no Eclipse. Caso queira esconder uma classe no diagrama, clique com o botão direito e selecione Hide. Agora vamos adicionar dois métodos nesta interface, os métodos acelerar e freiar. Para isso clique com o botão direito em cima da interface Automovel, New -> Method. No campo name coloque o nome do seu método, neste caso acelerar. Clique em OK. Veja que a alteração foi refletida no código fonte (Automovel.java). Repita o processo anterior e adicione o método freiar na interface Automovel. Após isso sua interface vai ser semelhante ao mostrado na figura abaixo: 4. Adicionando métodos na interface Automovel Grupo de Usuários Java Página 3
Agora vamos criar uma classe que implementa esta interface. Para isso, clique no ícone Create a class. Coloque o nome como Chevrolet e clique em Finish. Feito isso, selecione o ícone Generalization, clique em Chevrolet e logo depois em Automovel. O resultado será a imagem abaixo: 5. Classe Chevrolet Observe que o código-fonte da classe Chevrolet foi automaticamente modificado para implementar a interface Automovel. public class Chevrolet implements Automovel { Agora vamos criar outra classe que implementa a interface Automovel. Para isso, repita o processo anterior e crie uma classe Fiat. Porém ao invés de utilizar o diagrama para informar que Fiat implementa Automovel, edite o código-fonte conforme mostrado abaixo. public class Fiat implements Automovel { Note que no diagrama ainda não foi representado que Fiat implementa Automovel (figura 6). Para isso, clique com o botão direito em Fiat -> Inheritance -> Insert supertype -> Automovel. Feito isso, o Eclipse irá desenhar a hierarquia de seu diagrama conforme a figura 7. 6. Classe Fiat 7. Inheritance Grupo de Usuários Java Página 4
Continuando o exemplo, vamos adicionar mais duas classes na hierarquia conforme a figura abaixo. 8. Diagrama de Classes Para este diagrama o Eclipse terá gerado automaticamente o código-fonte abaixo: public interface Automovel { public class Chevrolet implements Automovel { public class Fiat implements Automovel { public class Uno extends Fiat { public class Ipanema extends Chevrolet { Configurar o layout do diagrama de classes automaticamente Um recurso interessante é que o plugin pode configurar o layout do diagrama automaticamente. Para isso entre no menu Inheritance -> Layout Inheritance. Grupo de Usuários Java Página 5
Agora vamos fazer uma alteração no código-fonte de uma das classes. Em Ipanema.java adicione um atributo placa do tipo String e salve o código. public class Ipanema extends Chevrolet { private String placa; Observe que as alterações não refletiram no diagrama. Agora clique com o botão direito no diagrama em cima da classe Ipanema e entre em -> View Selector. Neste wizard é possível selecionar quais atributos e métodos devem ser exibidos no diagrama. Agora clique na guia Attributes, selecione o atributo placa e clique em OK. Agora o seu diagrama irá se parecer com a figura abaixo: 9. View Selector 10. Diagrama de Classes Para alterar o seu código-fonte e visualizar as modificações no diagrama automaticamente, é possível configurar nas preferências do Eclipse os atributos e métodos que o EclipseUML mostrará por padrão. 11. Widow Preferences Grupo de Usuários Java Página 6
Engenharia Reversa com o ElipseUML O que fizemos até agora foi utilizar o EclipseUML para gerar um diagrama de classes e a partir disto gerar o código-fonte. O contrário, gerar o diagrama a partir de código fonte, é chamado de Engenharia Reversa. Para fazer um simples teste, experimente criar uma outra classe através do método tradicional. Ao terminar, clique na classe e arraste com o mouse até o editor e solte. Veja que o EclipseUML adicionou automaticamente sua classe ao diagrama. Para testar a engenharia reversa do EclipseUML, faça o download do material que acompanha o tutorial. Feito isso importe o arquivo animal.jar no source folder do seu projeto. Ao importar o arquivo, a seguinte estrutura foi criada em seu projeto: 12. br.com.guj.animal Agora para fazer engenharia reversa a partir do código-fonte importado, clique com o botão direito do mouse no pacote br.com.guj.animal -> New -> Other -> UML Diagrams -> UML Class Diagram e clique em Finish. Uma tela vai aparecer como mostrado na figura 13, solicitando quais interfaces e classes devem aparecer no diagrama, então faça a seleção e clique em OK. O EclipseUML acabou de fazer Engenharia Reversa do diagrama de classes que acabamos de criar. 13. Wizard Class Diagram Após clicar em OK, o diagrama de classes irá abrir no editor conforme a figura abaixo: Grupo de Usuários Java Página 7
14. Engenharia Reversa Outras funcionalidades É possível configurar o tipo do diagrama a ser exibido. Entre em Window -> Preferences -> UML. Você possui três opções: Eclipse (default), Omondo e UML Standard. Na figura abaixo podemos ver o diagrama utilizando os padrões Omondo e UML Standard: Grupo de Usuários Java Página 8
UML Standard Omondo 15. UML Standard 16. Omondo Quando o diagrama estiver concluído, é possível exportá-lo para outros formatos. Faça isso clicando com o botão direito no editor em Export -> JPEG conforme a figura abaixo. 17. Exportando uma imagem para JPEG Conclusão Este tutorial mostrou como instalar o plugin EclipseUML no Eclipse. Foi abordada a criação de um diagrama de classes e posteriormente como fazer engenharia reversa a partir do código-fonte. Agora é questão de explorar as funcionalidades do plugin para começar a trabalhar. Ricardo Lecheta (ricardolecheta@terra.com.br), formado em Ciência da Computação pela PUCPR, possui certificação em Java, e atualmente trabalha desenvolvendo soluções sobre com a tecnologia Java/WebSphere. Grupo de Usuários Java Página 9