http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 1
Omondo EclipseUML
Ricardo Rodrigues Lecheta
Aprenda como instalar o plugin EclipseUML no Eclipse e como utiliz-lo para fazer engenharia
reversa de seu cdigo-fonte.
Introduo
Neste tutorial ser apresentado o Omondo EclipseUML, um plugin para o Eclipse que auxilia a
construo de diagramas UML. Com este plugin possvel criar diagramas de classe,
seqncia, estados, use cases, atividades, etc. Alteraes no diagrama automaticamente se
refletem no cdigo-fonte e vice-versa. Outro recurso interessante a capacidade de fazer
Engenharia Reversa.
Dependncias
Antes de instalar o EclipseUML, necessrio instalar os seguintes plugins:
Draw2D: utilizado para a construo de componentes grficos com SWT;
GEF (Graphical Editing Framework): permite criar um rico editor grfico a partir de seu modelo. O
GEF utiliza o Draw2D para renderizar os componentes grficos;
EMF (Eclipse Modeling Framework): Framework de modelagem e gerao de cdigo a partir de
um modelo.
Fazendo o Download
Para instalar o plugin EclipseUML faa os seguintes downloads:
Eclipse 2.1.3:
o http://download.eclipse.org/downloads/drops/R-2.1.3-200403101828/index.php
o 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~/emf-
home/downloads/dl.html
o http://download.eclipse.org/tools/downloads/emf/emf_1.1.1_20031120_1149WL.zi
p
EclipseUML:
o http://www.omondo.com/download/free/index.jsp
o http://www.omondo.com/servlet/download?download=eclipseuml_1.2.1/eclipseuml
_1.2.1.20030806.zip
O Draw2D e GEF esto includos na distribuio do EclipseUML
Note que no necessrio fazer o download do Draw2D e do GEF porque uma verso
compatvel j est includa na instalao do plugin EclipseUML.
Compatibilidade entre as verses do Eclipse e EMF
Ao instalar o EclipseUML e o EMF, certifique-se que estes sejam verses compatveis
com o Eclipse instalado. http://dev.eclipse.org/viewcvs/indextools.cgi/~checkout~/emf-
home/downloads/dl.html
Grupo de Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 2
Instalao
Para instalar o EMF e o EclipseUML descompacte os arquivos de instalao no diretrio onde o Eclipse
est instalado.
Aps isto, abra o Eclipse, uma janela ir aparecer pedindo para concluir a instalao, clique em finish
para reiniciar. Caso esta janela no aparea, entre em Help -> Software Updates -> Pending Changes.
1. Pending Changes
Para testar se a instalao foi realizada com sucesso, entre em Help-> About Eclipse Platform-> Plug-
in Details e verifique as seguintes entradas:
Provider Plugin name
Eclipse.org Draw2d
Eclipse.org Graphical Editing Framework (GEF)
Eclipse.org Eclipse Modeling Framework (EMF)
Omondo 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 no acontea, verifique se as
verses do EMF e do Omondo EclipseUML so compatveis com a verso do Eclipse.
2. Wizards do EclipseUML
Grupo de Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 3
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. Aps 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. Criao da interface Automovel
Note que o plugin criou automaticamente o cdigo da interface Automovel no pacote
br.com.guj.automovel do seu Projeto.
Alteraes no Diagrama refletem no cdigo-fonte
As alteraes realizadas nos diagramas iro se refletir no cdigo-fonte e vice-versa.
Cuidado ao apagar uma classe do diagrama, pois a classe tambm ser excluda do
projeto no Eclipse. Caso queira esconder uma classe no diagrama, clique com o boto
direito e selecione Hide.
Agora vamos adicionar dois mtodos nesta interface, os mtodos acelerar e freiar. Para isso clique
com o boto direito em cima da interface Automovel, New -> Method. No campo name coloque o
nome do seu mtodo, neste caso acelerar. Clique em OK. Veja que a alterao foi refletida no cdigo
fonte (Automovel.java).
Repita o processo anterior e adicione o mtodo freiar na interface Automovel. Aps isso sua
interface vai ser semelhante ao mostrado na figura abaixo:
4. Adicionando mtodos na interface Automovel
Grupo de Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 4
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 cdigo-fonte da classe Chevrolet foi automaticamente modificado para implementar a
interface Automovel.
package br.com.guj.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. Porm ao invs de utilizar o diagrama para informar que Fiat implementa
Automovel, edite o cdigo-fonte conforme mostrado abaixo.
package br.com.guj.automovel;
public class Fiat implements Automovel {
}
Note que no diagrama ainda no foi representado que Fiat implementa Automovel (figura 6). Para
isso, clique com o boto direito em Fiat -> Inheritance -> I nsert supertype -> Automovel. Feito isso,
o Eclipse ir desenhar a hierarquia de seu diagrama conforme a figura 7.
6. Classe Fiat
7. Inheritance
Grupo de Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 5
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 cdigo-fonte abaixo:
package br.com.guj.automovel;
public interface Automovel {
}
package br.com.guj.automovel;
public class Chevrolet implements Automovel {
}
package br.com.guj.automovel;
public class Fiat implements Automovel {
}
package br.com.guj.automovel;
public class Uno extends Fiat {
}
package br.com.guj.automovel;
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 Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 6
Agora vamos fazer uma alterao no cdigo-fonte de uma das classes. Em Ipanema.java adicione um
atributo placa do tipo String e salve o cdigo.
package br.com.guj.automovel;
public class Ipanema extends Chevrolet {
private String placa;
}
Observe que as alteraes no refletiram no diagrama. Agora clique com o boto direito no diagrama
em cima da classe Ipanema e entre em -> View Selector . Neste wizard possvel selecionar quais
atributos e mtodos 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 cdigo-fonte e visualizar as modificaes no diagrama automaticamente, possvel
configurar nas preferncias do Eclipse os atributos e mtodos que o EclipseUML mostrar por padro.
11. Widow Preferences
Grupo de Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 7
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 cdigo-fonte. O contrrio, gerar o diagrama a partir de cdigo fonte, chamado de Engenharia
Reversa.
Para fazer um simples teste, experimente criar uma outra classe atravs do mtodo 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, faa 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 cdigo-fonte importado, clique com o boto 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, ento faa a seleo e clique em OK. O EclipseUML acabou de fazer Engenharia
Reversa do diagrama de classes que acabamos de criar.
13. Wizard Class Diagram
Aps clicar em OK, o diagrama de classes ir abrir no editor conforme a figura abaixo:
Grupo de Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 8
14. Engenharia Reversa
Outras funcionalidades
possvel configurar o tipo do diagrama a ser exibido. Entre em Window -> Preferences -> UML.
Voc possui trs opes: Eclipse (default), Omondo e UML Standard. Na figura abaixo podemos
ver o diagrama utilizando os padres Omondo e UML Standard:
Grupo de Usurios Java
http://www.guj.com.br
Grupo de Usurios Java http://www.guj.com.br Pgina 9
UML Standard
Omondo
15. UML Standard
16. Omondo
Quando o diagrama estiver concludo, possvel export-lo para outros formatos. Faa isso clicando com
o boto direito no editor em Export -> JPEG conforme a figura abaixo.
17. Exportando uma imagem para JPEG
Concluso
Este tutorial mostrou como instalar o plugin EclipseUML no Eclipse. Foi abordada a criao de um
diagrama de classes e posteriormente como fazer engenharia reversa a partir do cdigo-fonte. Agora
questo de explorar as funcionalidades do plugin para comear a trabalhar.
Ricardo Lecheta (ricardolecheta@terra.com.br), formado em Cincia da Computao pela PUCPR, possui certificao
em Java, e atualmente trabalha desenvolvendo solues sobre com a tecnologia Java/WebSphere.