Pergunta

Eu estou procurando uma ferramenta que irá engenharia reversa Java em um diagrama de sequência, mas também fornece a capacidade de filtrar chamadas para determinadas bibliotecas.

Por exemplo, o Netbeans IDE faz um trabalho fantástico deste mas inclui todas as chamadas para string ou inteiro que atravancam o diagrama ao ponto que está inutilizável.

Qualquer ajuda é muito apreciada !!!!!!!

Foi útil?

Solução

jtracert é o que você está procurando. Ele gera um diagrama de sequências de um programa Java a executar. Também, porque sua saída é uma descrição de texto do diagrama (nos formatos de várias ferramentas SD populares), você pode usar o grep para filtrar apenas as classes que você está interessado.

Outras dicas

Eu acredito que a ferramenta perfeita para resolver o seu problema é Diver: Visualizações dinâmica interativa para engenharia reversa. Ele fornece ambos os diagramas estáticos e sequência dinâmica e olhares para resolver todas as suas necessidades de sua pergunta.

É um plugin para o Eclipse e permite que você:

  • rastrear facilmente os seus programas Java
  • Visualize a funcionalidade de tempo de execução do seu programa
  • Filtre seus traços para torná-los mais compacto
  • Filtre sua IDE baseado no que ocorre em tempo de execução
  • Veja o que o código funcionou em seus editores de código fonte

Está na Github e há também uma web site do projeto

Full Disclosure: Eu sou o líder do projeto atual para Diver

Tente MaintainJ . MaintainJ gera diagramas de sequência em tempo de execução para um caso de uso. Ele fornece várias maneiras de filtrar chamadas indesejadas . Sim, filtrando as chamadas indesejadas é a característica mais importante necessária na sequência de ferramentas de geração de diagrama. Além disso, MaintainJ fornece uma interface limpa para explorar o diagrama e procurar chamadas em um caso de uso ou através casos de uso.

Verifique a vídeo de demonstração para ter uma visão geral.

Eu sou o autor de MaintainJ, pelo caminho.

JTracert é agora descontinuado. No lugar, eles recomendam http://www.jsonde.com/

Eu tenho uma ferramenta que atenda às suas necessidades exatamente. Check it out

http://sourceforge.net/projects/javacalltracer/

Além de ser uma ferramenta de engenharia reversa para Java também é muito leve. Você pode controlar o que você quer gravar a partir de seu programa de java.

Empresa arquitecto do Sparx reivindicações a ser capaz de inverter código Java engenheiro incluindo diagramas de sequência de geração - ver esta seção do guia do usuário

Parece que ele pode gravar uma sessão de depuração e, em seguida, gerar o diagrama de sequência daquele

Eu não tentei isso (embora tenha EA usado como uma ferramenta de modelagem), de modo ymmv!

Há um 30 dias de download livre da avaliação disponível

Dê uma olhada http://www.maintainj.com

Não sei, se ele pode filtrar chamadas de biblioteca, mas tem uma interface gráfica razoável e parece traçar mesmo muito grandes aplicações.

heatlamp ( http://www.jmolly.com/heatlamp/ ) foi projetado para exatamente esta finalidade.

Ele gera diagramas interativos (e imprimíveis) a execução de código Java. Você pode especificar filtros para descrever quais classes, pacotes e métodos de rastrear. Você também pode pesquisar, filtrar e invocações colapso após o diagrama é processado para reduzir ainda mais o diagrama de sequência.

Disclaimer: Eu sou o autor de heatlamp

.

MaintainJ é uma ferramenta realmente maravilhoso, recentemente eu estava começou a usar com MaintainJ com o meu aplicativo que está dando mais conforto com toda a minha uso para entender o meu sistema baseado em seqüência MaintainJ & diagramas UML.

Estou certo de que para a pergunta acima MaintainJ é a vontade de dar uma melhor ideia. Obrigado, Krishna MM

Eu só comecei a usar o recurso de gravação diagrama de sequência em Sparx Sistemas Enterprise Architect. Ele funciona muito bem para C #. Você pode criar filtros por classe e por método. Na verdade, estou tentando descobrir se é possível filtrar um pacote inteiro. Existe uma caixa de verificação para excluir automaticamente módulos externos (como o Framework) que ajuda na declutter. YMMV para Java, mas acho que seu apoio (e documentação) para Java é geralmente melhor (mais exemplos) do que para .NET.

Aqui está e add-on para a resposta de Asgeir. Aqui está o link que eu encontrei.

http://www.zanthan.com/ajm/sequencev7/sequence.jar

Executar na linha de comando ... "java -jar sequence.jar" ... esta é uma aplicação Java com uma GUI.

A seção de ajuda diz: SEQÜÊNCIA é um programa para a produção de Diagramas de Sequência de UML. Em contraste com a maioria dos programas similares você realmente não desenhar o diagrama. Em vez de escrever uma descrição textual do método chama você quer diagrama e o layout é calculado e desenhado automaticamente.

Assim, esta ferramenta não reverte engenheiro nada, mas eu posso ver como ele pode ser útil se você queria diagramar rapidamente as coisas a partir do zero. Parece que foi construído em 2002 e eu acho que há, provavelmente, melhores ferramentas para fora lá agora.

Aqui está outra ferramenta semelhante aqui: http://sdedit.sourceforge.net/example/index.html

Este parece ser uma ferramenta muito legal: http://www.architexa.com/learn-more/sequence-diagrams

Mas parece que é apenas livre por um ano, em seguida, seus US $ 250 por ano. Bummer.


Eu encontrei o ModelGoon plugins para ser útil. É um pouco limitado, porque você escolher um único método como o ponto de partida para o diagrama de sequência, e ele mostra apenas as chamadas que método faz (de modo a ir de um nível mais profundo que você precisa para gerar um outro diagrama.)

http://www.modelgoon.org/?page_id=53

JIVE (www.cse.buffalo.edu/jive) vai construir um diagrama de sequência a partir da execução de um programa Java. Tem uma capacidade de Filtro de exclusão permitirá que você excluir objetos pertencentes a classes ou pacotes designados. JIVE pode desenhar diagramas de sequência para a execução do programa Java multi-threaded. Tem também a capacidade compactos diagramas grandes, tanto na dimensão horizontal e vertical, sob a orientação do utilizador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top