シーケンス図リバースエンジニアリング
-
01-07-2019 - |
質問
Java をリバース エンジニアリングしてシーケンス図に変換するツールを探していますが、特定のライブラリへの呼び出しをフィルタリングして除外する機能も備えています。
たとえば、Netbeans IDE はこれに関して素晴らしい仕事をしますが、String または Integer への呼び出しがすべて含まれており、図が使用できなくなるほど乱雑になります。
ご協力をよろしくお願いいたします!!!!!!!
解決
私は思う jtracert あなたが探しているものです。実行中の Java プログラムからシーケンス図を生成します。また、その出力はダイアグラムのテキスト説明 (いくつかの一般的な SD ツールの形式) であるため、grep を使用して、関心のあるクラスのみをフィルターすることができます。
他のヒント
あなたの問題を解決するのに最適なツールは Diver だと思います。リバースエンジニアリングのための動的インタラクティブビュー。静的シーケンス図と動的シーケンス図の両方を提供し、質問からすべての要件を解決します。
これは Eclipse のプラグインであり、次のことが可能です。
- Java プログラムを簡単にトレースする
- プログラムのランタイム機能を視覚化する
- トレースをフィルタリングしてよりコンパクトにします
- 実行時に何が起こるかに基づいて IDE をフィルタリングする
- ソースコードエディタでどのコードが実行されたかを確認する
オンです ギットハブ そしてまたあります プロジェクトのウェブサイト
完全な開示:私は現在の Diver のプロジェクト リーダーです
試す 維持J. 。MaintainJ は、実行時にユースケースのシーケンス図を生成します。それは提供します 不要な通話をフィルタリングする複数の方法. 。はい、不要な呼び出しをフィルタリングすることは、シーケンス図生成ツールに必要な最も重要な機能です。さらに、MaintainJ は、ダイアグラムを探索し、1 つのユース ケースまたはユース ケース全体で呼び出しを検索するための優れたインターフェイスを提供します。
チェックしてください デモビデオ 概要を簡単に把握します。
ちなみに、私は MaintainJ の作者です。
JTracert は現在廃止されています。その代わりに、彼らが推奨するのは、 http://www.jsonde.com/
あなたの要件を正確に満たすツールがあります。それをチェックしてください
http://sourceforge.net/projects/javacalltracer/
Java のリバース エンジニアリング ツールであることに加えて、非常に軽量でもあります。Java プログラムから記録する内容を制御できます。
を見てみましょう http://www.maintainj.com
ライブラリ呼び出しをフィルタリングできるかどうかはわかりませんが、合理的なグラフィカル フロントエンドを備えており、非常に大規模なアプリケーションでもトレースできるようです。
ヒートランプ (http://www.jmolly.com/heatlamp/) はまさにこの目的のために設計されました。
実行中の Java コードから対話型 (および印刷可能な) 図を生成します。トレースするクラス、パッケージ、メソッドを記述するフィルターを指定できます。また、シーケンス図をさらに縮小するために、図のレンダリング後に呼び出しを検索、フィルタリング、および折りたたむこともできます。
免責事項:私は『ヒートランプ』の作者です。
MaintainJ は本当に素晴らしいツールです。最近、アプリケーションで MaintainJ を使用し始めました。これにより、Maintainj シーケンスと UML 図に基づいてシステムを理解することが全体的により快適になりました。
上記の質問については、MaintainJ がより良いアイデアを与えると確信しています。ありがとう、クリシュナmm
Sparx Systems Enterprise Architect のシーケンス図記録機能を使い始めたところです。C# では非常にうまく機能します。クラス別およびメソッド別にフィルターを作成できます。実際、パッケージ全体をフィルターで除外できるかどうかを調べようとしています。外部モジュール (.NET Framework など) を自動的に除外するチェックボックスがあり、整理整頓に役立ちます。Java 用の YMMV ですが、一般的に Java のサポート (およびドキュメント) は .NET よりも優れている (例が多い) と思います。
これが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
これは本当に素晴らしいツールのようです:http://www.architexa.com/learn-more/sequence-diagrams
ただし、無料なのは 1 年間だけのようで、その後は 1 年あたり 250 ドルになります。残念だ。
ModelGoon プラグインが役立つことがわかりました。シーケンス図の開始点として 1 つのメソッドを選択し、そのメソッドが行う呼び出しのみを表示するため、少し制限があります (したがって、さらに深いレベルに進むには、別の図を生成する必要があります)。
JIVE (www.cse.buffalo.edu/jive) は、Java プログラムの実行からシーケンス図を構築します。除外フィルター機能があり、指定したクラスまたはパッケージに属するオブジェクトを除外できます。JIVE は、マルチスレッド Java プログラム実行のシーケンス図を描画できます。また、ユーザーの指導に従って、大きな図を水平方向と垂直方向の両方でコンパクトにする機能もあります。