既存の Java コードから UML 図 (特にシーケンス図) を生成するにはどうすればよいですか?
16 に答える
ObjectAid UML エクスプローラー
私が使用したものです。リポジトリから簡単にインストールできます。
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
非常に優れた UML ダイアグラムを生成します。
ウェブサイトからの説明:
ObjectAid UML エクスプローラーは、他の UML ツールとは異なります。UML 表記を使用して、非常に使いやすく、テキスト エディターと同じくらい正確で最新の既存のコードをグラフィカルに表示します。これを可能にする独自の機能がいくつかあります。
- ソース コードとライブラリは表示されるモデルであり、別の形式にリバース エンジニアリングされることはありません。
- Eclipse でコードを更新すると、ダイアグラムも更新されます。ソース コードをリバース エンジニアリングする必要はありません。
- リファクタリングにより、ダイアグラムとソース コードが更新されます。フィールドの名前を変更したり、クラスを移動したりすると、ダイアグラムは同期を失うことなく変更を反映するだけです。
- Eclipse ワークスペース内のすべての図は、必要に応じてリファクタリングの変更で更新されます。必要に応じて、バージョン管理システムからチェックアウトされます。
- ダイアグラムは、Eclipse IDE に完全に統合されています。Java クラスを他のビューからダイアグラムにドラッグすると、ダイアグラム関連の情報が他のビューに表示されます。
編集: あなたがデザイナーなら、非常に高度で機能が豊富なPapyrusが最良の選択ですが、UML ダイアグラムをスケッチして簡単にインストールしたいだけなら、ObjectAid はかなりクールで、プラグインは必要ありません。 Eclipse-Java EEにインストールしただけで、うまく機能します!.
2013 年 10 月 11 日更新
私の最初の投稿は 2012 年 6 月でした。多くのことが変更され、多くのツールが成長し、他のツールは成長しませんでした。モデリングをやり直し、投稿への返信も得ているので、パピルスを再度インストールすることにし、他の可能な UML モデリング ソリューションを再度調査することにしました。UML 生成 (同期機能付き) は、ソフトウェア設計者にとってではなく、平均的な開発者にとって非常に重要です。
パピルスにクラスを UML クラス図にリバース エンジニアリングする簡単な方法があればいいのにと思います。そのリバース エンジニアリングに同期機能があれば最高ですが、残念ながらパピルス プロジェクトには機能がいっぱいです。あなたがパピルスに対して行ったアクションは、何の反応も示さず、何も起こらないかもしれませんが、とにかくそれはこの質問の範囲外です.
答え(2013 年 10 月 11 日)
ツール
- パピルスをダウンロード
- ヘルプに移動 -> 新しいソフトウェアのインストール...
- [作業対象:]ドロップダウンで、[利用可能なすべてのサイト] を選択します。
- フィルターにPapyrusと入力します
- インストールが完了したら、Eclipse を再起動します。
- 手順 1 ~ 3 を繰り返し、今度はModiscoをインストールします。
手順
- Java プロジェクト (MyProject という名前を想定) で、UML などのフォルダーを作成します。
- プロジェクト名を右クリック -> Discovery -> Discoverer -> Java プロジェクトから Java とインベントリ モデルを検出すると、MyProject_kdm.xmi というファイルが生成されます。
- プロジェクト名ファイルを右クリック --> 新規 --> パピルス モデル -> MyProject と呼びます。
- 生成された 3 つのファイル MyProject.di 、 MyProject.notation 、 MyProject.uml を UML フォルダーに移動します。
MyProject_kdm.xmi -> Discovery -> Discoverer -> Discover UML model from KDM code を再度右クリックすると、シリアル化プロップを TRUE に設定するプロパティ ダイアログが表示され、MyProject.uml という名前のファイルが生成されます。
ルートで生成された生成された MyProject.uml を UML フォルダーに移動します。Eclipse は、置換するかどうかを尋ねてきます。[はい] をクリックします。ここで行ったことは、空のモデルを生成されたモデルに置き換えたことです。
ALT+W -> ビューを表示 -> パピルス -> モデル エクスプローラー
そのビューでは、写真のようなクラスが見つかります
ビューでルートモデルを右クリック -> 新しいダイアグラム
次に、ビューからダイアグラムへのクラスのグラブを開始します
いくつかの機能
クラス要素 (変数、関数など) を表示するには、任意のクラスを右クリック -> フィルター -> コンテンツの表示/非表示 出来上がり !!
Window -> pereferences -> papyrus -> class diagram からデフォルトのわかりやすい色設定を行うことができます
非常に重要な設定の 1 つは配置です。クラスをドロップすると、クラス ダイアグラムの空白スペースを右クリックし、[すべて配置] をクリックすると窮屈になります。
モデル エクスプローラー ビューの矢印をダイアグラムにグラブして、一般化、実現などを示すことができます
その後、設定には次のような図が表示されます
新しいクラスを手動でインポートする必要があることがわかっている限り、同期は利用できません。
本当に必要な場合を除き、商用製品を購入しないでください。
免責事項: 私はパピルスの人々とは何の関係もありません。実際、最初はパピルスが好きではありませんでしたが、多くの調査を行い、忍耐強く経験しました。他の無料ツールを試したらまたこの記事に戻ってきます。
あなたのコードベースは何ですか? Java または C++?
eUML2 for Java は、Eclipse の Java 開発者向けに設計された強力な UML モデラーです。無料版は商用利用可能です。次の機能をサポートしています。
- CVS とチームのサポート
- 複数のカスタマイズ可能なモデル ビューを備えた大規模なプロジェクト向けに設計されています
- ヘリオス準拠
- リアルタイムのコード/モデル同期
- UML2.1 準拠および OMG XMI のサポート
- JDK 1.4 および 1.5 のサポート
商用版は以下を提供します。
高度なリバース エンジニアリング
- 強力な真の依存関係分析ツール
- UML プロファイルと MDD
- データベース ツール
- カスタマイズ可能なテンプレートのサポート
PlantUMLはどうですか?リバースエンジニアリング用ではありません!!! コーディングする前のエンジニアリング用です。
CLIからプラグインの目標として実行するか、依存関係としてインポートしてプログラムでパーサーを使用して、その方法を理解することができるmavenプラグインを開発しました@see Main#main()
。
必要に応じて手動で編集できる、必要なパッケージのPlantUML src コードを再帰的にレンダリングします (そうしないことを願っています)。次に、コードを plantUML ページに貼り付けるか、plant の jar をダウンロードすることで、UML 図を png 画像としてレンダリングできます。
ここでチェックしてくださいhttps://github.com/juanmf/Java2PlantUML
どんな貢献も大歓迎です。出力をカスタマイズする一連のフィルターがありますが、プラグイン CLI パラメーターでこれらをまだ公開していません。
*.java ファイルに限らず、maven の依存関係から UML ダイアグラム src をレンダリングできることに注意することが重要です。これは、依存するライブラリを理解するのに非常に便利です。コンパイルされたクラスをリフレクションで実際に検査するため、ソースは必要ありません
GitHub で最初にスターを付けてください:P
一般的な使用には Omondo のEclipseUMLをお勧めしますが、数か月前に自分の Web プロジェクトでいくつかの問題が発生しました。彼らはある時点で無料版を持っていましたが、それはおそらくもはや宣伝されていません.
ソース コードからシーケンス図をリバース エンジニアリングすることに本当に熱心な場合は、jTracertをお勧めします。
Eclipse プロジェクト自体に関する限り、Eclipse UML2 Toolsプロジェクトはリバース エンジニアリングをサポートしている可能性がありますが、実際に使用されたことはありません。
MoDisco (Model Discovery) プロジェクトの Eclipse GMT プロジェクトは、目的を達成する上でより明確なようです。テクノロジー固有のツールのリストは、開始するのに適した場所です。
Greenプラグインは非常に使いやすく、ソースコードからクラス図を生成できることがわかりました。試してみる :)。プラグインをプラグインディレクトリにコピーするだけです。
netbeans UML モデラーを試してみることもできます。これを使用して、Eclipse プロジェクトで使用した Javacode を生成しました。eclipse プロジェクトを netbeans にインポートして、eclipse 設定を netbeans プロジェクト設定と同期させることもできます。
Eclipse 用にいくつかの UML モデラーを試しましたが、満足できませんでした。それらは不安定で、複雑で、単に醜いものでした。;-)
Eclipse 3.5 用の EclipseUML の 30 日間の評価ビルドを使用でき ます。テストやリバース エンジニアリングのために購入する必要はありません。
リバース エンジニアリング: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html
ライブ フラッシュ デモ: http://www.ejb3.org/reverse.swf
EclipseUML Omondo は、世界で最高の Java 用ツールです。このライブ Java 同期市場では eUML だけが競合しているようですが、eUML はコードにモデル タグを追加します。
私がリバースエンジニアリングに使用したツールの中で群を抜いて最高であり、ラウンドトリップJava->UMLはBorland'sTogetherです。これはEclipse(単一のプラグインだけでなく)に基づいており、実際にうまく機能します。
PlantUML をお勧めします。このツールは非常に便利で使いやすいです。PlantUML には、Java コードから UML ダイアグラムを作成できる Netbeans 用のプラグインがあります。
次の方法で、NetBeans に PlantUML プラグインをインストールできます。
Netbeans メニュー -> ツール -> プラグイン
Available Plugins を選択し、PlantUML を見つけてインストールします。
詳細については、ウェブサイトをご覧ください: www.plantuml.com