Como gerar diagramas UML (especialmente diagramas de sequência) a partir do código Java?

Como posso gerar diagramas UML (especialmente diagramas de sequência) a partir do código Java existente?

Author: M. Prokhorov, 2008-09-09

14 answers

Explorador UML ObjectAid

Foi o que eu usei. É fácil instalado do repositório:

Name:     ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current

E produz diagramas UML bastante bonitos:

Screenshot

Descrição no sítio web:

O ObjectAid UML Explorer é diferente de outras ferramentas UML. Usa a notação UML para mostrar uma representação gráfica do código existente isso é tão preciso e atualizado como o seu editor de texto, ao ser muito simples. Várias características únicas tornam isto possível:

  • seu código fonte e bibliotecas são o modelo que é exibido, eles não são projetados para trás em um formato diferente.
  • Se actualizar o seu código no Eclipse, o seu diagrama também é actualizado; não há necessidade de reverter o código-fonte do engenheiro.
  • O Refactoring actualiza o seu diagrama bem como o seu código-fonte. Quando muda o nome de um campo ou move uma classe, o seu diagrama simplesmente reflecte o alteracao sem ficar fora de sincronia.
  • todos os diagramas na sua área de trabalho do Eclipse são actualizados com alterações de recondicionamento, conforme apropriado. Se necessário, eles são verificados fora do seu sistema de controlo de versões.
  • Os diagramas estão totalmente integrados no IDE do Eclipse. Você pode arrastar as classes Java de qualquer outra vista para o diagrama, e relacionadas com o diagrama a informação é mostrada noutras vistas, sempre que aplicável.
 248
Author: Thomas Ahle, 2017-10-31 20:06:10

Editar: Se você é um designer, em seguida, Papiro é a sua melhor escolha é muito avançado e cheio de recursos, mas se você quiser apenas o esboço de alguns diagramas da UML e de fácil instalação, em seguida, ObjectAid é muito legal e não requer qualquer plugins acabei de instalar ele sobre Eclipse-Java EE e funciona muito bem !.


Actualizar 11 de Outubro, 2013

O meu post original foi em junho de 2012. muitas coisas mudaram.muitas ferramentas cresceram e outras não. Desde que eu estou voltando para fazer alguns modelos e também recebendo algumas respostas para o post eu decidi instalar papiro novamente e vai investigar outras possíveis soluções de modelagem UML novamente. A geração UML (com recurso de sincronização) é realmente importante não para o designer de software, mas para o desenvolvedor médio. Quem me dera que o papyrus tivesse uma forma directa de reverter as aulas de engenharia no diagrama de classes UML e seria super fixe se essa engenharia reversa tivesse uma funcionalidade de sincronização, mas... infelizmente o projeto papyrus está cheio de recursos e eu acho que os desenvolvedores já têm muito em mãos, já que também muitas ações que você faz sobre papyrus pode não lhe dar qualquer resposta e apenas nada acontece, mas isso está fora deste âmbito de perguntas de qualquer maneira.

A Resposta (11 de Outubro de 2013)

Ferramentas

  1. Telecarregamento Do Papiro
  2. Vá ajudar - > instalar um novo Software...
  3. Natrabalhar com: drop-down, seleccionar -- Tudo disponível Sites--
  4. no filtro, escreva papiro
  5. após a instalação terminar reiniciar Eclipse
  6. repita os passos 1-3 e desta vez, instale Modisco

Degraus

  1. no seu projecto java (suponha que se chama MyProject) crie uma pasta, por exemplo UML
  2. carregue com o botão direito sobre o nome do projecto -> Discovery -> Discover -> Discover Java and inventory model from java project, um ficheiro chamado Myproject_ KDM.xmi será criado. enter image description here
  3. carregue com o botão direito no ficheiro de nome do projecto --> novo --> modelo de papiro -> e chame-lhe MyProject.
  4. Move os três ficheiros gerados MyProject.di, MyProject.Notação, MyProject.uml para a pasta UML
  5. Carregue com o botão direito no Myproject_ KDM.XMI - > Discovery - > Discover - > Discover UML model from KDM code again você irá obter uma janela de propriedades configure o prop de serialização como TRUE para gerar um ficheiro chamado MyProject.uml enter image description here

  6. Mover gerado MyProject.uml que foi gerado no root, para a pasta UML, o Eclipse perguntar-lhe-á se deseja substituí-lo, Carregue em Sim. O que fizemos aqui foi substituir um modelo vazio por um gerado.

  7. ALT+W - > show view - > papyrus - > model explorer

  8. Nesse ponto de vista, você encontrará suas aulas como na foto enter image description here

  9. Na janela, carregue com o botão direito no modelo de raiz - > novo diagrama enter image description here

  10. Em seguida, começar a agarrar as aulas para o diagrama do ponto de vista

Algumas características

  • Para mostrar os elementos da classe (variáveis, funções, etc), carregue com o botão direito em qualquer classe -> filtros -> mostrar/esconder o conteúdo voilá !!

  • Você pode ter a configuração de cores amigáveis por omissão Da Janela - > pereferences - > papyrus - > Diagrama de classes

  • Uma configuração muito importante é organizar quando você largar as classes, elas ficam apertadas com o botão direito em qualquer espaço vazio num diagrama de classes. e clique em organizar tudo

  • Setas na vista model explorer podem ser agarradas ao diagrama para mostrar generalização, realização etc

  • Depois de tudo isso suas configurações irão mostrar diagramas como enter image description here

  • A sincronização não está disponível tanto quanto eu sei que você vai precisar de importar manualmente quaisquer novas classes.

Isso é tudo,e não compre produtos comerciais a menos que você realmente precisa, papiro é realmente grande e sofisticado em vez disso, doar ou algo assim. Disclaimer: eu não tenho nenhuma relação com o povo do papiro, na verdade, eu não gostava de papiro no início até que eu fiz muita pesquisa e experimentei com alguma paciência. E vai voltar para este post novamente quando eu tentar outras ferramentas livres.
 63
Author: Ismail Marmoush, 2018-07-27 15:10:53
Qual é a tua base de dados? Java ou C++?

Texto Em Alt http://www.soyatec.com/euml2/images/product_euml2_110x80.png

EUML2 para Java é um poderoso modelador UML projetado para Java developper no Eclipse. A edição gratuita pode ser usada para uso comercial. Ele suporta as seguintes características:
  • CVS e apoio à equipa
  • concebido para um grande projecto com vista de modelos múltiplas e personalizáveis
  • Helios Compatível
  • código em tempo Real/sincronização do Modelo
  • Em conformidade com UML2.1 e suporte da OMG XMI
  • Suporte
  • JDK 1, 4 e 1, 5
  • A edição comercial fornece:

  • Engenharia avançada invertida

  • uma poderosa dependência verdadeira analisa as ferramentas
  • perfil UML e MDD
  • ferramentas de Base de Dados
  • suporte personalizado de modelos
 42
Author: prakash, 2011-11-02 17:05:19

Que tal PlantUML? Não é para engenharia reversa!!! É para a engenharia antes de programares.

 8
Author: Zamel, 2010-10-24 08:38:27

Desenvolvi um plugin maven que pode Ambos, ser executado a partir do CLI como um objectivo de 'plugin', ou importar como dependência e usar programaticamente o analisador, @see Main#main() para ter a ideia de como.

It torna PlantUML o código src dos pacotes desejados recursivamente que poderá editar manualmente se necessário (Esperemos que não o faça). Em seguida, colando o código na página plantUML, ou baixando o jar do plant você pode desenhar o diagrama UML como uma imagem png.

Olha para isto. https://github.com/juanmf/Java2PlantUML

Diagrama de saída de exemplo: enter image description here

{[2] qualquer contribuição é mais do que bem-vinda. Ele tem um conjunto de filtros que personalizam a saída, mas eu não expô-los ainda no plugin CLI params.

É importante notar que não se limita ao seu *.arquivos java, ele pode renderizar diagramas UML src a partir de suas dependências maven também. Isto é muito útil para entender as bibliotecas de que você depende. Na verdade, inspeciona compilados classes com reflexão de modo que não é necessária nenhuma Fonte

Seja o primeiro a estrelar em GitHub: P

 5
Author: juanmf, 2018-07-27 16:40:41

Eu recomendaria EclipseUML de Omondo para uso geral, embora tenha tido alguns problemas há alguns meses, com os meus projectos web. Eles tiveram uma edição gratuita em determinado momento, mas isso supostamente já não é promovido.

Se você está realmente interessado em diagramas de sequência de engenharia reversa do código fonte, eu recomendaria jTracert .

No que diz respeito aos projectos Eclipse propriamente ditos, o projecto Eclipse UML2 Ferramentas pode suporte engenharia reversa, embora eu nunca vi seu uso na prática.

O projecto MoDisco {[[14]} (Model Discovery) Eclipse project GMT parece ser mais claro na consecução do seu objectivo. A lista de ferramentas específicas para a tecnologia seria um bom ponto de partida.

 4
Author: Vineet Reynolds, 2009-04-08 23:14:59

Encontrei o 'plugin' Verde muito simples de usar e gerar Diagrama de classes a partir do código-fonte. Dê-lhe uma tentativa:). Basta copiar o plugin para o seu plugin dir.

 3
Author: pcmind, 2011-04-28 12:42:18

Você também poderia dar ao modeller netbeans UML Uma tentativa. Eu usei-o para gerar javacode que eu usei em meus projetos eclipse. Você pode até importar projetos eclipse em netbeans e manter a configuração do eclipse sincronizada com a configuração do projeto netbeans.

Tentei vários modellers UML para o eclipse e não fiquei satisfeito com eles. Ou eram instáveis, complicados ou simplesmente feios. ;-)
 3
Author: Patrick Cornelissen, 2018-07-28 18:29:06

Usando a ideia do Intelij. Para gerar diagrama de classe selecionar o pacote e pressione Ctrl + Alt + U:enter image description here

Por omissão, mostra apenas os nomes das classes e não todas as dependências. Para alterá-lo: carregue com o botão direito - > mostrar as Categorias... e mostrar as dependências: enter image description here

Para genarizar o diagrama de dependências (Diagrama de implantação de UML) e você usa a janela do maven go - > janelas de ferramentas - > Projectos do Maven e carregue em Ctrl + Alt + U : enter image description here

O resultado: enter image description here

Também é possível gerar mais diagramas. Ver documentação.

 2
Author: Igor Rybak, 2017-07-18 12:11:07

Pode usar a avaliação de 30 dias do EclipseUML para o Eclipse 3.5: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip Este não é o último 3.6 build, mas é muito bom e não exige que você comprá-lo para testes e engenharia reversa.

Engenharia Reversa : http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html

Demonstração ao vivo do flash: http://www.ejb3.org/reverse.swf

EclipseUML Omondo é a melhor ferramenta do mundo para Java. Apenas eUML parece competir com ele neste mercado de sincronização java ao vivo, mas eUML adiciona tags modelo no código que é realmente muito ruim e um definitivo não ir para mim.

 2
Author: UML GURU, 2018-07-27 16:37:59

Algo muito simillar foi perguntado antes de.

De longe a melhor ferramenta que já usei para engenharia reversa, e tropeçar em java -> UML é Borland's Together. Ele é baseado no Eclipse (não apenas um único plugin) e realmente funciona bem.

 1
Author: serg10, 2017-05-23 11:54:37

Http://www.zenuml.com não gera diagramas UML directamente do código Java, mas o seu DSL é semelhante ao Java. BTW I criou zenuml :)enter image description here

 1
Author: Xiao Peng - ZenUML.com, 2017-07-21 13:43:30
Eu sugiro PlantUML. estas ferramentas são muito úteis e fáceis de usar. PlantUML tem um plugin para Netbeans que você pode criar diagrama UML a partir de seu código java.

Pode instalar o 'plugin' do PlantUML no netbeans por este método:

Menu Netbeans - > Ferramentas - > Plugin

Agora seleccione os Plugins disponíveis e depois encontre o PlantUML e instale-o.

Para mais informações, consulte o sítio web: www.plantuml.com

 0
Author: Masood, 2015-08-03 06:39:36

Http://uml-plugins.blogspot.com/ é aqui que podemos encontrar diferenças entre as ferramentas de modelagem UML, para um arranque rápido !! Além desses, eu notei SequenceDiagram plugin para Intellij também é uma boa opção, por favor leia esse post para rapidamente ficar a saber sobre livre vs comerciais e melhores opções.

 0
Author: srinivas y, 2018-10-05 16:32:51