Grupo de Usuários Java
 http://www.guj.com.br



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 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 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~/emf-
home/downloads/dl.html



                             Grupo de Usuários Java – http://www.guj.com.br – Página 1
Grupo de Usuários Java
 http://www.guj.com.br


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-> 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 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 – http://www.guj.com.br – Página 2
Grupo de Usuários Java
 http://www.guj.com.br


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 – http://www.guj.com.br – Página 3
Grupo de Usuários Java
 http://www.guj.com.br


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.

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. Porém ao invés de utilizar o diagrama para informar que Fiat implementa
Automovel, edite o código-fonte conforme mostrado abaixo.

package br.com.guj.automovel;

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 – http://www.guj.com.br – Página 4
Grupo de Usuários Java
 http://www.guj.com.br


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:


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 Usuários Java – http://www.guj.com.br – Página 5
Grupo de Usuários Java
 http://www.guj.com.br


    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.


package br.com.guj.automovel;

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 – http://www.guj.com.br – Página 6
Grupo de Usuários Java
 http://www.guj.com.br


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 – http://www.guj.com.br – Página 7
Grupo de Usuários Java
 http://www.guj.com.br




                                            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 – http://www.guj.com.br – Página 8
Grupo de Usuários Java
 http://www.guj.com.br




                     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 – http://www.guj.com.br – Página 9

Eclipse uml

  • 1.
    Grupo de UsuáriosJava http://www.guj.com.br 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 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 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~/emf- home/downloads/dl.html Grupo de Usuários Java – http://www.guj.com.br – Página 1
  • 2.
    Grupo de UsuáriosJava http://www.guj.com.br 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-> 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 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 – http://www.guj.com.br – Página 2
  • 3.
    Grupo de UsuáriosJava http://www.guj.com.br 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 – http://www.guj.com.br – Página 3
  • 4.
    Grupo de UsuáriosJava http://www.guj.com.br 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. 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. Porém ao invés de utilizar o diagrama para informar que Fiat implementa Automovel, edite o código-fonte conforme mostrado abaixo. package br.com.guj.automovel; 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 – http://www.guj.com.br – Página 4
  • 5.
    Grupo de UsuáriosJava http://www.guj.com.br 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: 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 Usuários Java – http://www.guj.com.br – Página 5
  • 6.
    Grupo de UsuáriosJava http://www.guj.com.br 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. package br.com.guj.automovel; 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 – http://www.guj.com.br – Página 6
  • 7.
    Grupo de UsuáriosJava http://www.guj.com.br 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 – http://www.guj.com.br – Página 7
  • 8.
    Grupo de UsuáriosJava http://www.guj.com.br 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 – http://www.guj.com.br – Página 8
  • 9.
    Grupo de UsuáriosJava http://www.guj.com.br 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 – http://www.guj.com.br – Página 9