web-dev-qa-db-ja.com

シーケンス図リバースエンジニアリング

Javaをシーケンス図にリバースエンジニアリングするツールを探していますが、特定のライブラリへの呼び出しを除外する機能も提供しています。

たとえば、Netbeans IDEはこれをうまく処理しますが、文字列または整数へのすべての呼び出しが含まれているため、ダイアグラムが使用できなくなるまで混乱します。

どんな助けでも大歓迎です!!!!!!!

27

jtracert があなたが探しているものだと思います。実行中のJavaプログラムからシーケンス図を生成します。また、出力は図のテキスト記述(いくつかの一般的なSDツールの形式)であるため、grepを使用してフィルタリングできます。興味のあるクラスのみ。

9
Steve Hanov

MaintainJ を試してください。 MaintainJは、ユースケースの実行時にシーケンス図を生成します。 不要な呼び出しを除外する複数の方法 を提供します。はい、不要な呼び出しを除外することは、シーケンス図生成ツールに必要な最も重要な機能です。さらに、MaintainJは、ダイアグラムを探索し、1つのユースケースまたはユースケース全体で呼び出しを検索するための優れたインターフェイスを提供します。

デモビデオ をチェックして、概要を確認してください。

ちなみに、私はMaintainJの作者です。

10

問題を解決するのに最適なツールは、Diver:リバースエンジニアリングのための動的インタラクティブビューだと思います。静的および動的シーケンス図の両方を提供し、質問からすべての要件を解決するように見えます。

これはEclipseのプラグインであり、次のことができます。

  • Javaプログラムを簡単にトレースする
  • プログラムのランタイム機能を視覚化する
  • トレースをフィルタリングして、よりコンパクトにします
  • 実行時に発生する内容に基づいてIDE
  • ソースコードエディタで実行されたコードを確認する

Github にあり、 プロジェクトのWebサイト もあります。

完全開示:私はDiverの現在のプロジェクトリーダーです

10
Sean

JTracertは廃止されました。代わりに、彼らはお勧めします http://www.jsonde.com/

6
RAbraham

私はあなたの要件を正確に満たすツールを持っています。見てみな

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

Javaのリバースエンジニアリングツールであることに加えて、非常に軽量です。Javaプログラムから記録する内容を制御できます。

3
Ali Naqvi

ヒートランプ( http://www.jmolly.com/heatlamp/ )は、まさにこの目的のために設計されました。

Javaコードを実行することで、インタラクティブな(および印刷可能な)図を生成します。トレースするクラス、パッケージ、およびメソッドを記述するフィルターを指定できます。シーケンス図をさらに縮小するために、図がレンダリングされます。

免責事項:私はヒートランプの作者です。

1
aaron

Sparx のエンタープライズアーキテクトは、リバースエンジニアリングが可能であると主張していますJavaシーケンス図の生成を含むコード ユーザーガイド のこのセクションを参照してください

デバッグセッションを記録できるようで、そこからシーケンス図を生成します

私はそれを試していません(モデリングツールとしてEAを使用しましたが)ので、ymmv!

30日間の無料評価ダウンロードが利用可能です

1
Richard

見てください http://www.maintainj.com

ライブラリ呼び出しをフィルタリングできるかどうかはわかりませんが、適切なグラフィカルフロントエンドがあり、非常に大規模なアプリケーションでもトレースできるようです。

1
ralf

MaintainJは本当に素晴らしいツールです。最近、アプリケーションでMaintainJを使い始めました。これにより、MaintainjシーケンスとUMLダイアグラムに基づいて、システム全体をより快適に理解できるようになりました。

上記の質問については、MaintainJがより良いアイデアを提供すると確信しています。ありがとう、クリシュナMM

1
Krishna MM

これがAsgeirの答えへのアドオンです。これが私が見つけたリンクです。

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

コマンドラインから実行します... "Java -jar sequence.jar" ...これはGUIを備えたJavaアプリケーションです。

ヘルプセクションには次のように書かれています。SEQUENCEはUMLシーケンス図を作成するためのプログラムです。ほとんどの同様のプログラムとは対照的に、実際には図を描きません。代わりに、図を作成するメソッド呼び出しのテキストによる説明を記述すると、レイアウトが自動的に計算および描画されます。

したがって、このツールは何もリバースエンジニアリングしませんが、最初からすばやく図を作成したい場合にどのように役立つかがわかります。 2002年に構築されたように見えますが、おそらく今はもっと優れたツールがあると思います。

ここに別の同様のツールがあります: http://sdedit.sourceforge.net/example/index.html

0
matt1616

JIVE(www.cse.buffalo.edu/jive)は、Javaプログラムの実行からシーケンス図を作成します。除外フィルター機能を備えているため、指定されたクラスに属するオブジェクトを除外できます。 JIVEは、マルチスレッドJavaプログラム実行のシーケンス図を描画できます。また、ユーザーの指導の下で、水平方向と垂直方向の両方で大きな図をコンパクトにする機能もあります。

0

これは本当に素晴らしいツールのように見えます: http://www.architexa.com/learn-more/sequence-diagrams

しかし、それは1年間だけ無料で、その後は年間250ドルのようです。バマー。


ModelGoonプラグインが役立つことがわかりました。シーケンス図の開始点として単一のメソッドを選択し、そのメソッドが行う呼び出しのみを表示するため、少し制限があります(したがって、レベルを深くするには、別の図を生成する必要があります)。

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

0
matt1616

Sparx Systems EnterpriseArchitectのシーケンス図記録機能を使い始めたところです。 C#では非常にうまく機能します。クラス別およびメソッド別にフィルターを作成できます。私は実際に、パッケージ全体を除外できるかどうかを調べようとしています。整理に役立つ外部モジュール(.NET Frameworkなど)を自動的に除外するためのチェックボックスがあります。 YMMV for Javaですが、Javaのサポート(およびドキュメント)は、.NETよりも一般的に優れています(例が多い)。

0
Michael Waddell