444

既存の Java コードから UML 図 (特にシーケンス図) を生成するにはどうすればよいですか?

4

16 に答える 16

261

ObjectAid UML エクスプローラー

私が使用したものです。リポジトリから簡単にインストールできます。

Name:     ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current

非常に優れた UML ダイアグラムを生成します。

スクリーンショット

ウェブサイトからの説明:

ObjectAid UML エクスプローラーは、他の UML ツールとは異なります。UML 表記を使用して、非常に使いやすく、テキスト エディターと同じくらい正確で最新の既存のコードをグラフィカルに表示します。これを可能にする独自の機能がいくつかあります。

  • ソース コードとライブラリは表示されるモデルであり、別の形式にリバース エンジニアリングされることはありません。
  • Eclipse でコードを更新すると、ダイアグラムも更新されます。ソース コードをリバース エンジニアリングする必要はありません。
  • リファクタリングにより、ダイアグラムとソース コードが更新されます。フィールドの名前を変更したり、クラスを移動したりすると、ダイアグラムは同期を失うことなく変更を反映するだけです。
  • Eclipse ワークスペース内のすべての図は、必要に応じてリファクタリングの変更で更新されます。必要に応じて、バージョン管理システムからチェックアウトされます。
  • ダイアグラムは、Eclipse IDE に完全に統合されています。Java クラスを他のビューからダイアグラムにドラッグすると、ダイアグラム関連の情報が他のビューに表示されます。
于 2012-01-05T23:04:28.887 に答える
64

編集: あなたがデザイナーなら、非常に高度で機能が豊富なPapyrusが最良の選択ですが、UML ダイアグラムをスケッチして簡単にインストールしたいだけなら、ObjectAid はかなりクールで、プラグインは必要ありません。 Eclipse-Java EEにインストールしただけで、うまく機能します!.


2013 年 10 月 11 日更新

私の最初の投稿は 2012 年 6 月でした。多くのことが変更され、多くのツールが成長し、他のツールは成長しませんでした。モデリングをやり直し、投稿への返信も得ているので、パピルスを再度インストールすることにし、他の可能な UML モデリング ソリューションを再度調査することにしました。UML 生成 (同期機能付き) は、ソフトウェア設計者にとってではなく、平均的な開発者にとって非常に重要です。

パピルスにクラスを UML クラス図にリバース エンジニアリングする簡単な方法があればいいのにと思います。そのリバース エンジニアリングに同期機能があれば最高ですが、残念ながらパピルス プロジェクトには機能がいっぱいです。あなたがパピルスに対して行ったアクションは、何の反応も示さず、何も起こらないかもしれませんが、とにかくそれはこの質問の範囲外です.

答え(2013 年 10 月 11 日)

ツール

  1. パピルスをダウンロード
  2. ヘルプに移動 -> 新しいソフトウェアのインストール...
  3. [作業対象:]ドロップダウンで、[利用可能なすべてのサイト] を選択します。
  4. フィルターにPapyrusと入力します
  5. インストールが完了したら、Eclipse を再起動します。
  6. 手順 1 ~ 3 を繰り返し、今度はModiscoをインストールします。

手順

  1. Java プロジェクト (MyProject という名前を想定) で、UML などのフォルダーを作成します。
  2. プロジェクト名を右クリック -> Discovery -> Discoverer -> Java プロジェクトから Java とインベントリ モデルを検出すると、MyProject_kdm.xmi というファイルが生成されます。 ここに画像の説明を入力
  3. プロジェクト名ファイルを右クリック --> 新規 --> パピルス モデル -> MyProject と呼びます。
  4. 生成された 3 つのファイル MyProject.di 、 MyProject.notation 、 MyProject.uml を UML フォルダーに移動します。
  5. MyProject_kdm.xmi -> Discovery -> Discoverer -> Discover UML model from KDM code を再度右クリックすると、シリアル化プロップを TRUE に設定するプロパティ ダイアログが表示され、MyProject.uml という名前のファイルが生成されます。 ここに画像の説明を入力

  6. ルートで生成された生成された MyProject.uml を UML フォルダーに移動します。Eclipse は、置換するかどうかを尋ねてきます。[はい] をクリックします。ここで行ったことは、空のモデルを生成されたモデルに置き換えたことです。

  7. ALT+W -> ビューを表示 -> パピルス -> モデル エクスプローラー

  8. そのビューでは、写真のようなクラスが見つかります ここに画像の説明を入力

  9. ビューでルートモデルを右クリック -> 新しいダイアグラムここに画像の説明を入力

  10. 次に、ビューからダイアグラムへのクラスのグラブを開始します

いくつかの機能

  • クラス要素 (変数、関数など) を表示するには、任意のクラスを右クリック -> フィルター -> コンテンツの表示/非表示 出来上がり !!

  • Window -> pereferences -> papyrus -> class diagram からデフォルトのわかりやすい色設定を行うことができます

  • 非常に重要な設定の 1 つは配置です。クラスをドロップすると、クラス ダイアグラムの空白スペースを右クリックし、[すべて配置] をクリックすると窮屈になります。

  • モデル エクスプローラー ビューの矢印をダイアグラムにグラブして、一般化、実現などを示すことができます

  • その後、設定には次のような図が表示されます ここに画像の説明を入力

  • 新しいクラスを手動でインポートする必要があることがわかっている限り、同期は利用できません。

本当に必要な場合を除き、商用製品を購入しないでください。

免責事項: 私はパピルスの人々とは何の関係もありません。実際、最初はパピルスが好きではありませんでしたが、多くの調査を行い、忍耐強く経験しました。他の無料ツールを試したらまたこの記事に戻ってきます。

于 2012-06-10T04:06:18.013 に答える
42

あなたのコードベースは何ですか? Java または C++?

代替テキスト

eUML2 for Java は、Eclipse の Java 開発者向けに設計された強力な UML モデラーです。無料版は商用利用可能です。次の機能をサポートしています。

  • CVS とチームのサポート
  • 複数のカスタマイズ可能なモデル ビューを備えた大規模なプロジェクト向けに設計されています
  • ヘリオス準拠
  • リアルタイムのコード/モデル同期
  • UML2.1 準拠および OMG XMI のサポート
  • JDK 1.4 および 1.5 のサポート
  • 商用版は以下を提供します。

  • 高度なリバース エンジニアリング

  • 強力な真の依存関係分析ツール
  • UML プロファイルと MDD
  • データベース ツール
  • カスタマイズ可能なテンプレートのサポート
于 2008-09-09T13:23:22.723 に答える
7

PlantUMLはどうですか?リバースエンジニアリング用ではありません!!! コーディングする前のエンジニアリング用です。

于 2010-10-24T08:38:27.267 に答える
7

CLIからプラグインの目標として実行するか、依存関係としてインポートしてプログラムでパーサーを使用して、その方法を理解することができるmavenプラグインを開発しました@see Main#main()

必要に応じて手動で編集できる、必要なパッケージのPlantUML src コードを再帰的レンダリングします (そうしないことを願っています)。次に、コードを plantUML ページに貼り付けるか、plant の jar をダウンロードすることで、UML 図を png 画像としてレンダリングできます。

ここでチェックしてくださいhttps://github.com/juanmf/Java2PlantUML

出力図の例: ここに画像の説明を入力

どんな貢献も大歓迎です。出力をカスタマイズする一連のフィルターがありますが、プラグイン CLI パラメーターでこれらをまだ公開していません。

*.java ファイルに限らず、maven の依存関係から UML ダイアグラム src をレンダリングできることに注意することが重要です。これは、依存するライブラリを理解するのに非常に便利です。コンパイルされたクラスをリフレクションで実際に検査するため、ソースは必要ありません

GitHub で最初にスターを付けてください:P

于 2016-08-18T12:21:44.633 に答える
4

一般的な使用には Omondo のEclipseUMLをお勧めしますが、数か月前に自分の Web プロジェクトでいくつかの問題が発生しました。彼らはある時点で無料版を持っていましたが、それはおそらくもはや宣伝されていません.

ソース コードからシーケンス図をリバース エンジニアリングすることに本当に熱心な場合は、jTracertをお勧めします。

Eclipse プロジェクト自体に関する限り、Eclipse UML2 Toolsプロジェクトはリバース エンジニアリングをサポートしている可能性がありますが、実際に使用されたことはありません。

MoDisco (Model Discovery) プロジェクトの Eclipse GMT プロジェクトは、目的を達成する上でより明確なようですテクノロジー固有のツールのリストは、開始するのに適した場所です。

于 2009-04-08T23:14:59.167 に答える
3

Greenプラグインは非常に使いやすく、ソースコードからクラス図を生成できることがわかりました。試してみる :)。プラグインをプラグインディレクトリにコピーするだけです。

于 2011-04-28T12:42:18.217 に答える
3

netbeans UML モデラーを試してみることもできます。これを使用して、Eclipse プロジェクトで使用した Javacode を生成しました。eclipse プロジェクトを netbeans にインポートして、eclipse 設定を netbeans プロジェクト設定と同期させることもできます。

Eclipse 用にいくつかの UML モデラーを試しましたが、満足できませんでした。それらは不安定で、複雑で、単に醜いものでした。;-)

于 2009-05-05T10:14:15.733 に答える
2

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 はコードにモデル タグを追加します。

于 2011-02-03T10:08:39.093 に答える
1

私がリバースエンジニアリングに使用したツールの中で群を抜いて最高であり、ラウンドトリップJava->UMLはBorland'sTogetherです。これはEclipse(単一のプラグインだけでなく)に基づいており、実際にうまく機能します。

于 2008-09-22T11:53:00.840 に答える
0

PlantUML をお勧めします。このツールは非常に便利で使いやすいです。PlantUML には、Java コードから UML ダイアグラムを作成できる Netbeans 用のプラグインがあります。

次の方法で、NetBeans に PlantUML プラグインをインストールできます。

Netbeans メニュー -> ツール -> プラグイン

Available Plugins を選択し、PlantUML を見つけてインストールします。

詳細については、ウェブサイトをご覧ください: www.plantuml.com

于 2015-08-03T06:39:36.073 に答える