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

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

    Explorador de UML do ObjectAid

    É o que eu usei. É facilmente instalado a partir do repository:

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

    E produz diagramas UML bastante agradáveis:

    Screenshot

    Descrição do site:

    O UML Explorer do ObjectAid é diferente de outras ferramentas UML. Ele usa a notação UML para mostrar uma representação gráfica do código existente que é tão preciso e atualizado quanto o seu editor de texto, além de ser muito fácil de usar. Vários resources exclusivos tornam isso possível:

    • Seu código fonte e bibliotecas são o modelo que é exibido, eles não são submetidos a engenharia reversa em um formato diferente.
    • Se você atualizar seu código no Eclipse, seu diagrama também será atualizado; não há necessidade de reverter o código-fonte.
    • A refatoração atualiza seu diagrama, assim como seu código-fonte. Quando você renomeia um campo ou move uma class, seu diagrama simplesmente reflete as alterações sem sair de sincronia.
    • Todos os diagramas em sua área de trabalho do Eclipse são atualizados com as alterações de refatoração conforme apropriado. Se necessário, eles são retirados do seu sistema de version control.
    • Os diagramas são totalmente integrados ao IDE do Eclipse. Você pode arrastar classs Java de qualquer outra visualização para o diagrama e as informações relacionadas ao diagrama são mostradas em outras exibições, onde aplicável.

    EDIT: Se você é um designer, em seguida, Papyrus é sua melhor escolha, é muito avançado e cheio de resources, mas se você quiser apenas esboçar alguns diagramas UML e fácil instalação, então ObjectAid é muito legal e não requer nenhum plugins I acabou de instalá-lo sobre o Eclipse-Java EE e funciona muito bem!


    ATUALIZAÇÃO 11 de outubro de 2013

    Meu post original foi em junho de 2012, muitas coisas mudaram, muitas ferramentas cresceram e outras não. Como estou voltando para fazer algumas modelagens e também obtendo algumas respostas para o post, decidi instalar o papiro novamente e investigarei outras possíveis soluções de modelagem UML novamente. A geração de UML (com recurso de synchronization) é realmente importante não para o designer de software, mas para o desenvolvedor médio.

    Eu gostaria que o papiro tivesse uma maneira direta de fazer engenharia reversa no diagrama de classs da UML e seria super legal se a engenharia reversa tivesse um recurso de synchronization, mas infelizmente o projeto de papiro é cheio de resources e eu acho que desenvolvedores já têm muito à mão ações que você faz sobre papiro podem não lhe dar nenhuma resposta e nada acontece, mas isso está fora do escopo desta questão.

    A resposta (11 de outubro de 2013)

    Ferramentas

    1. Download Papiro
    2. Vá para Ajuda -> Instalar Novo Software …
    3. Na lista suspensa Trabalhar com :, selecione –Todos os sites disponíveis–
    4. No filtro, digite Papyrus
    5. Após a conclusão da instalação, reinicie o Eclipse
    6. Repita as etapas de 1 a 3 e, desta vez, instale o Modisco

    Passos

    1. Em seu projeto java (suponha que ele seja chamado de MyProject) crie uma pasta, por exemplo, UML
    2. Clique com o botão direito do mouse sobre o nome do projeto -> Discovery -> Discoverer -> Discover Java e o modelo de inventário do projeto java, um arquivo chamado MyProject_kdm.xmi será gerado. insira a descrição da imagem aqui
    3. Clique com o botão direito do mouse no arquivo de nome do projeto -> new -> papyrus model -> e chame de MyProject.
    4. Mova os três arquivos gerados MyProject.di, MyProject.notation, MyProject.uml para a pasta UML
    5. Clique com o botão direito do mouse em MyProject_kdm.xmi -> Discovery -> Discoverer -> Descoberta do modelo UML a partir do código KDM, novamente você obterá um diálogo de propriedades configurando o prop de serialização como TRUE para gerar um arquivo chamado MyProject.uml insira a descrição da imagem aqui

    6. Mova o MyProject.uml gerado que foi gerado na raiz, para a pasta UML, o Eclipse perguntará se você queria substituí-lo, clique em yes. O que fizemos aqui foi que substituímos um modelo vazio por um gerado.

    7. ALT + W -> exibição de exibição -> papiro -> model explorer

    8. Nessa visão, você encontrará suas aulas como na foto insira a descrição da imagem aqui

    9. Na visualização Clique com o botão direito do mouse em modelo raiz -> Novo diagrama insira a descrição da imagem aqui

    10. Então comece a pegar as classs no diagrama a partir da visão

    Algumas funcionalidades

    • Para mostrar os elementos da class (variables, funções etc) Clique com o botão direito do mouse em qualquer class -> Filtros -> mostrar / ocultar o conteúdo Voila !!

    • Você pode ter configurações de colors amigáveis ​​padrão de Janela -> pereferences -> papiro -> diagrama de classs

    • Uma configuração muito importante é Organizar quando você soltar as classs, eles recebem um clique direito apertado em qualquer espaço vazio em um diagrama de class e clique em Organizar todos

    • As setas na vista de exploração do modelo podem ser capturadas no diagrama para mostrar a generalização, a realização, etc.

    • Depois de tudo isso, suas configurações mostrarão diagramas como insira a descrição da imagem aqui

    • A synchronization não está disponível, tanto quanto eu sei que você precisará importar manualmente as novas classs.

    Isso é tudo, e não compre produtos comerciais, a menos que você realmente precise, o papiro é realmente ótimo e sofisticado em vez de doar ou algo assim.

    Disclaimer: Eu não tenho nenhuma relação com as pessoas de papiro, na verdade, eu não gostava de papiro no começo até que eu fiz muita pesquisa e experimentei com alguma paciência. E voltarei a este post novamente quando eu tentar outras ferramentas gratuitas.

    Qual é o seu código? Java ou C ++?

    texto alternativo http://www.soyatec.com/euml2/images/product_euml2_110x80.png

    O eUML2 for Java é um poderoso modelador UML projetado para o desenvolvedor Java no Eclipse. A edição gratuita pode ser usada para uso comercial. Suporta os seguintes resources:

    • Suporte de equipe e CVS
    • Projetado para projetos grandes com visualizações de modelos múltiplas e personalizáveis
    • Helios Compliant
    • Sincronização de código / modelo em tempo real
    • Compatível com UML2.1 e suporte de OMG XMI
    • Suporte ao JDK 1.4 e 1.5
    • A edição comercial fornece:

    • Engenharia reversa avançada

    • Poderosas ferramentas de análise de dependência verdadeira
    • Perfil UML e MDD
    • Ferramentas de database
    • Suporte de modelo personalizável

    Como cerca de PlantUML ? Não é para engenharia reversa !!! É para engenharia antes de codificar.

    Eu recomendaria o EclipseUML do Omondo para uso geral, embora eu tenha tido alguns problemas alguns meses atrás, com meus projetos da web. Eles tiveram uma edição gratuita em um ponto no tempo, mas isso supostamente não é mais promovido.

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

    No que diz respeito aos projetos do Eclipse , o projeto Eclipse UML2 Tools pode suportar engenharia reversa, embora eu nunca tenha visto seu uso na prática.

    O projeto MoDisco (Model Discovery) do Eclipse GMT parece ser mais claro para alcançar seu objective. A lista de ferramentas específicas de tecnologia seria um bom lugar para começar.

    Eu desenvolvi um plugin maven que pode tanto ser executado a partir do CLI como um objective de plugin, ou importar como dependência e usar programaticamente o analisador, @see Main#main() para obter a idéia de como.

    Ele processa o código src PlantUML dos pacotes desejados de forma recursiva, que você pode editar manualmente, se necessário (esperamos que você não o faça). Em seguida, colando o código na página da plantaUML ou baixando o jar do centro, você pode renderizar o diagrama UML como uma imagem png.

    Confira aqui https://github.com/juanmf/Java2PlantUML

    Exemplo de diagrama de saída: insira a descrição da imagem aqui

    Qualquer contribuição é mais que bem-vinda. Ele tem um conjunto de filtros que personalizam a saída, mas eu não os expus ainda nos parâmetros CLI do plug-in.

    É importante observar que ele não está limitado aos seus arquivos * .java, ele pode renderizar os diagramas UML src de suas dependencies também. Isso é muito útil para entender as bibliotecas das quais você depende. Na verdade, ele inspeciona classs compiladas com reflection, portanto, nenhuma fonte é necessária

    Seja o primeiro a estrelar no GitHub: P

    Eu encontrei Green plugin muito simples de usar e gerar diagrama de classs a partir do código-fonte. De uma chance :). Basta copiar o plugin para o diretório do seu plugin.

    Você também pode experimentar o modelador UML netbeans. Eu usei para gerar javacode que eu usei em meus projetos de eclipse. Você pode até importar projetos de eclipse no netbeans e manter as configurações do eclipse sincronizadas com as configurações do projeto netbeans.

    Eu tentei vários modeladores UML para eclipse e não estava satisfeito com eles. Eles eram instáveis, complicados ou simplesmente feios. 😉

    Usando o IntelliJ IDEA. Para gerar o pacote de seleção do diagrama de classs e pressione Ctrl + Alt + U : insira a descrição da imagem aqui

    Por padrão, ele exibe apenas nomes de classs e nem todas as dependencies. Para alterá-lo: clique com o botão direito -> Mostrar categorias … e Mostrar dependencies: insira a descrição da imagem aqui

    Para gerar o diagrama de dependencies (diagrama de implementação da UML) e usar o maven go Ver -> Ferramentas Windows -> Projetos Maven e pressione Ctrl + Alt + U : insira a descrição da imagem aqui

    O resultado: insira a descrição da imagem aqui

    Também é possível gerar mais outros diagramas. Veja a documentação .

    É possível usar a construção de avaliação de 30 dias do EclipseUML para Eclipse 3.5: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip Essa não é a compilation mais recente do 3.6, mas é muito boa e não exija que você compre para testes e engenharia reversa.

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

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

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

    Algo muito semelhante foi perguntado antes .

    De longe a melhor ferramenta que usei para engenharia reversa, e round tripping java -> UML é o Together da Borland . É baseado no Eclipse (não apenas em um único plugin) e realmente funciona bem.

    http://www.zenuml.com não gera diagramas UML diretamente do código Java, mas seu DSL é semelhante a Java. BTW eu criei zenuml 🙂 insira a descrição da imagem aqui

    Eu sugiro PlantUML. esta ferramenta é muito útil e fácil de usar. PlantUML tem um plugin para o Netbeans que você pode criar um diagrama UML a partir do seu código java.

    você pode instalar o plugin PlantUML no netbeans por este método:

    Menu Netbeans -> Ferramentas -> Plugin

    Agora selecione Plugins disponíveis, encontre PlantUML e instale-o.

    Para mais informações, acesse o site: http://www.plantuml.com