web-dev-qa-db-fra.com

Diagramme de séquence Ingénierie inverse

Je recherche un outil qui permette de désosser Java dans un diagramme de séquence, MAIS également la possibilité de filtrer les appels vers certaines bibliothèques. 

Par exemple, Netbeans IDE fait un travail fantastique, mais il inclut tous les appels à String ou Integer qui encombrent le diagramme au point de le rendre inutilisable. 

Toute aide est grandement appréciée!!!!!!!

27
Keith Fitzgerald

Je pense que jtracert est ce que vous recherchez. Il génère un diagramme de séquence à partir d'un programme Java en cours d'exécution. De plus, comme son résultat est une description textuelle du diagramme (dans les formats de plusieurs outils SD populaires), vous pouvez utiliser grep pour filtrer uniquement les classes qui vous intéressent.

9
Steve Hanov

Je crois que l’outil idéal pour résoudre votre problème est Diver: Vues interactives dynamiques pour l’ingénierie inverse. Il fournit des diagrammes de séquence statiques et dynamiques et cherche à résoudre tous vos besoins à partir de votre question. 

C'est un plugin pour Eclipse et vous permet de:

  • Tracez facilement vos programmes Java
  • Visualisez la fonctionnalité d'exécution de votre programme
  • Filtrez vos traces pour les rendre plus compactes
  • Filtrez votre IDE en fonction de ce qui se passe au moment de l'exécution
  • Voir quel code a été exécuté dans vos éditeurs de code source

C'est sur Github et il y a aussi un site web du projet

Divulgation complète: Je suis le chef de projet actuel de Diver

10
Sean

Essayez MaintainJ . MaintainJ génère des diagrammes de séquence au moment de l'exécution pour un cas d'utilisation. Il fournit plusieurs moyens de filtrer les appels indésirables }. Oui, le filtrage des appels non désirés est la fonctionnalité la plus importante des outils de génération de diagrammes de séquence. De plus, MaintainJ fournit une interface soignée pour explorer le diagramme et rechercher des appels dans un cas d'utilisation ou dans plusieurs cas d'utilisation. 

Consultez la vidéo de démonstration pour obtenir un aperçu rapide. 

Je suis l'auteur de MaintainJ, au fait. 

9
Choudary Kothapalli

JTracert est maintenant arrêté. En lieu et place, ils recommandent http://www.jsonde.com/

5
RAbraham

J'ai un outil qui répond exactement à vos exigences. Vérifiez-le

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

En plus d'être un outil de reverse engineering pour Java, il est également très léger. Vous pouvez contrôler ce que vous voulez enregistrer depuis votre programme Java.

3
Ali Naqvi

Heatlamp ( http://www.jmolly.com/heatlamp/ ) a été conçu dans ce but précis.

Il génère des diagrammes interactifs (et imprimables) à partir du code Java en cours d'exécution. Vous pouvez spécifier des filtres pour décrire les classes, les packages et les méthodes à suivre. Vous pouvez également rechercher, filtrer et réduire les appels après le rendu du diagramme afin de réduire davantage le diagramme de séquence.

Disclaimer: Je suis l'auteur de Heatlamp.

1
aaron

L'architecte d'entreprise de Sparx prétend pouvoir procéder à l'ingénierie inverse du code Java, y compris la génération de diagrammes de séquence - voir cette section du guide de l'utilisateur

On dirait qu’il peut enregistrer une session de débogage et générer le diagramme de séquence à partir de celui-ci.

Je ne l'ai pas essayée (bien que j'aie utilisé EA comme outil de modélisation) alors ymmv!

Il y a un téléchargement d'évaluation gratuit de 30 jours disponible

1
Richard

Jetez un oeil à http://www.maintainj.com

Il ne sait pas s'il peut filtrer les appels à la bibliothèque, mais il a un front-end graphique raisonnable et semble suivre les applications même les plus volumineuses.

1
ralf

MaintainJ est vraiment un outil formidable. Récemment, j'ai commencé à utiliser MaintainJ avec mon application, ce qui me permet de mieux comprendre tout mon utilisation pour comprendre mon système en fonction des diagrammes Maintainj en séquence et UML. 

Je suis sûr que pour la question ci-dessus, MaintainJ sera donnera une meilleure idée. Merci, Krishna MM.

1
Krishna MM

Voici un ajout à la réponse d'Asgeir. Voici le lien que j'ai trouvé.

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

Exécuter à partir de la ligne de commande ... "Java -jar sequence.jar" ... il s'agit d'une application Java avec une interface graphique.

La section d'aide indique: SEQUENCE est un programme permettant de générer des diagrammes de séquence UML. Contrairement à la plupart des programmes similaires, vous ne dessinez pas réellement le diagramme. Au lieu de cela, vous écrivez une description textuelle des appels de méthode que vous souhaitez schématiser et la présentation est calculée et dessinée automatiquement.

Cet outil ne permet donc pas de procéder à une ingénierie inverse, mais je vois à quel point il peut être utile de représenter rapidement un diagramme à partir de zéro. On dirait qu'il a été construit en 2002 et je pense qu'il existe probablement de meilleurs outils actuellement.

Voici un autre outil similaire ici: http://sdedit.sourceforge.net/example/index.html

0
matt1616

JIVE (www.cse.buffalo.edu/jive) construira un diagramme de séquence à partir de l'exécution d'un programme Java. Il possède une fonction de filtre d'exclusion qui vous permettra d'exclure des objets appartenant à des classes ou des packages désignés. JIVE peut dessiner des diagrammes de séquence pour l'exécution de programmes Java multithreads. Il a également la capacité de grands diagrammes compacts dans les dimensions horizontale et verticale, sous la supervision de l'utilisateur.

0
Bharat Jayaraman

Cela ressemble à un outil vraiment agréable: http://www.architexa.com/learn-more/sequence-diagrams

Mais il semblerait que ce ne soit gratuit que pendant un an, puis 250 $ par an. Bummer.


J'ai trouvé le plugin ModelGoon utile. C'est un peu limité parce que vous choisissez une seule méthode comme point de départ pour le diagramme de séquence et qu'elle montre uniquement les appels effectués par cette méthode (vous devez donc générer un autre diagramme pour aller plus loin.)

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

0
matt1616

Je viens de commencer à utiliser la fonctionnalité d'enregistrement de diagramme de séquence dans Sparx Systems Enterprise Architect. Cela fonctionne très bien pour C #. Vous pouvez créer des filtres par classe et par méthode. J'essaie en fait de savoir s'il est possible de filtrer un paquet entier. Il existe une case à cocher pour exclure automatiquement les modules externes (comme le .NET Framework), ce qui facilite le désencombrement. YMMV pour Java, mais je pense que leur support (et leur documentation) pour Java est généralement meilleur (plus d’exemples) que pour .NET.

0
Michael Waddell