Gerar diagrama de classes UML a partir do projeto Java [fechado]

200

Existe uma boa ferramenta que pode ajudar a fazer engenharia reversa de classes Java para UML que mostrará uma visão geral de como minhas classes estão relacionadas entre si? Ele não precisa descompilar do arquivo JAR porque eu tenho as fontes. Eu sei que existem muitos por aí, mas a maioria deles só pode gerar classe individual. Espero que exista uma ferramenta que possa gerar um diagrama de classes que mostre uma visão geral de como todas as minhas classes e pacotes atuais funcionam juntos, para que eu possa analisar meu projeto de arquitetura atual. Obviamente, analisar é uma coisa. O outro é para fins de documentação.

Eu sei de alguns até agora. Mas eles não podem fazer um diagrama de classes de visão geral. Aqui está uma lista da ferramenta Java UML que eu tentei e é capaz de executar engenharia reversa, mas não pode fazer um diagrama de classes de visão geral de todo o meu projeto:

  • StarUML (realmente boa ferramenta UML de código aberto, mas não pode gerar um diagrama de classes que não é geral)
  • ArgoUML (é lento, lento e continua travando)
  • UModel (Este é um software comercial. Eu usei antes há algum tempo, mas achei difícil de usar)
  • MS Visio (não suporta engenharia reversa Java UML. Somente para VB)

Existem outras recomendações para adicionar a esta lista? E, esperançosamente, pode gerar uma visão geral do diagrama de classes Java. Estou usando o Eclipse, a propósito.

Carven
fonte
1
Só para adicionar mais algumas possibilidades, no Eclipse, existe o Papyrus. Mas o plug-in de geração de código, infelizmente, não funcionou para mim. Tem muitas dependências para instalar. Eu usei o eUML2 no final.
Carven 29/05
Você pode conferir o UML Lab - é comercial -, mas possui engenharia reversa muito sofisticada e personalizável (e ida e volta).
Christian
Existe uma ferramenta gratuita chamada JGrasp que pode ajudar.
HRJ
Eu tenho usado este método: youtube.com/watch?v=HwBep8DmBVw única desvantagem é: não é gratuito, mas você pode ter uma avaliação de 30 dias, o que foi suficiente no meu caso. OBSERVAÇÃO: não é o meu vídeo, eu o encontrei enquanto pesquisava no Google.
dazito 22/09
@Carven, por favor, deixe-me saber qual plugin você usou? Atualmente, estou procurando gerar diagramas de sequência automaticamente na execução de junit / test.
usar o seguinte código

Respostas:

46

Eu uso o plugin eUML2 da Soyatec, no Eclipse, e funciona bem para a geração de UML, fornecendo o código-fonte. Essa ferramenta é útil até o Eclipse 4.4.x

Heisenbug
fonte
A edição gratuita possui esse recurso?
Carven
sim. Eu uso edição gratuita.
Heisenbug 29/05
1
Obrigado! ;) Não tentei porque sempre achei que a versão gratuita não possui código para a geração UML.
Carven
38
Isso é péssimo. Difícil. As instruções desejam que os usuários prefixem todas as propriedades com um caractere 'f' para detectá-las. Também é destrutivo e adiciona vários comentários próprios a TODOS os arquivos de classe. Além disso, as instruções não são intuitivas. Se alguém puder refutar minha experiência (com base na versão atual do Kepler), faça-o. E, apenas três semanas de julgamento. Desinstalando agora.
ingyhere 17/05
1
Eu não gostei. Não é compatível com a versão mais recente do eclipse / oxigênio.
Tayfun Yaşar
109

Escrevi o Class Visualizer , o que faz. É uma ferramenta gratuita que possui todas as funcionalidades mencionadas - eu pessoalmente as uso para os mesmos fins, conforme descrito neste post. Para cada classe pesquisada, ele mostra 2 diagramas de classe gerados instantaneamente: relações de classe e visualização UML de classe. O diagrama de relações de classe permite percorrer toda a estrutura. Possui suporte completo para anotações e genéricos, além de suporte especial para entidades JPA. Funciona muito bem com grandes projetos (milhares de classes).

Jonatan Kaźmierczak
fonte
8
O programa é realmente bom. Obrigado por criá-lo e pelo link.
Igor Rodriguez
17
Jonatan, como um ato de uma cortesia poderia / deveria adicionar um aviso para a resposta ao sugerir produtos, serviços etc alguém está envolvido em.
dbm
2
Isso é muito legal. Dado nosso projeto muito complexo e com décadas de existência - grande parte do código é do JDK 1.1 vintage - isso fornece uma ótima visão geral de como as coisas estão conectadas. Como um complemento ao código-fonte e ao Javadoc, ele oferece um valor tremendo a um preço incrível.
21316 Gerardw
2
O Class Visualizer é uma ferramenta útil inacreditável de destaque? SIM, ELE É. Como pagamos por isso? É grátis para download! Como aprendemos a usá-lo? Passamos 10 minutos assistindo ao vídeo!
Martin Meeser
2
Eu tenho uma classe que chama um método de outra classe no mesmo projeto / pasta, mas essa outra classe não está aparecendo. Eu adicionei todas as dependências possíveis, incluindo todos os frascos jdk8. Perdi alguma coisa?
Poder de Aquário
2

Que tal o plug- in Omondo para Eclipse. Eu usei e acho que é bastante útil. Embora se você esteja gerando diagramas para grandes fontes, talvez seja necessário iniciar o Eclipse com mais memória.

Swaranga Sarma
fonte
O link não está funcionando
Blip
2

Eu diria que o MoDisco é de longe o mais poderoso (embora provavelmente não seja o mais fácil de se trabalhar).

O MoDisco é uma estrutura genérica de engenharia reversa (para que você possa personalizar seu projeto de engenharia reversa, com o MoDisco você pode até fazer engenharia reversa do comportamento dos métodos java, não apenas a estrutura e as assinaturas), mas também inclui alguns recursos predefinidos, como a geração de classe diagramas a partir do código Java que você precisa.

Jordi Cabot
fonte