UML モデリング: Java アプリケーションのリバースエンジニアリング
最終更新日: 2007 年 4 月 3 日
このチュートリアルは、NetBeans[tm] 5.5 統合開発環境 (IDE) および NetBeans 5.5, UML モデリングモジュール用です。
このチュートリアルでは、既存の Java アプリケーションのソースコードを UML モデリングプロジェクトにリバースエンジニアリングする方法を学びます。UML プロジェクトでは、すべてのクラスおよびその他のアプリケーション要素は「プロジェクト」ウィンドウで UML プロジェクトノードの下に表示され、元の Java コードは元の状態で残ります。このチュートリアルでは、「目次」に示した項目の順に、基本的な作業を行います。
NetBeans IDE の使用方法の詳細については、NetBeans の Web サイトのドキュメントページを参照してください。
注 :
アイコンが表示されているところでは、それをクリックすると、チュートリアル内で説明している手順について、対話形式の詳細なデモを参照できます。
前提条件
このチュートリアルを使用するには、IDE がシステムにインストールされている必要があります。また、IDE の基本要素に関する知識が必要です。Java プログラミング言語および UML モデリングの基礎知識も必要です。IDE の基礎については、オンラインヘルプで IDE の基礎に関する項目を参照してください。公式の UML リソースページ (http://www.uml.org/) で、UML モデリング手法と理論に関する優れたリソースを得ることができます。
システム要件
このチュートリアルは、ご使用のシステムが NetBeans IDE 5.5, UML モデリングモジュール リリースノートに明記されている要件を満たしていることを前提としています。
チュートリアルに必要なソフトウェア
開始する前に、ご使用のコンピュータに次のソフトウェアをインストールしてください。
目次
ページの先頭へ
Java プロジェクトを開く
この節では、このチュートリアルに付属する Java アプリケーション BankApp を IDE でプロジェクトとして開きます。
- ファイルシステムに UMLTut というディレクトリを作成し、そのディレクトリに BankApp.zip ファイルを展開します。
- IDE のメインメニューから、「ファイル」>「プロジェクトを開く」を選択します。
- 作成した UMLTut ディレクトリに移動し、BankApp プロジェクトを選択します。
- 「主プロジェクトとして開く」チェックボックスが選択されている状態で、「プロジェクトフォルダを開く」をクリックします。
進行状況を示すダイアログが表示され、次に「プロジェクト」ウィンドウに BankApp プロジェクトのノードが表示されます。
デモを表示
ページの先頭へ
リバースエンジニアリングによる UML プロジェクトの作成
ここでは、前の節で開いた Java プロジェクト BankApp のリバースエンジニアリングを行うことで、新しい UML プロジェクトを作成します。
- メインメニューから「ファイル」>「新規プロジェクト」を選択し、「新規プロジェクト」ウィザードで次の操作を行います。
- 「カテゴリ」で「UML」を選択します。
- 「プロジェクト」で「Java プロジェクトのリバースエンジニアリング」を選択します。
- 「次へ」をクリックします。
- 「プロジェクト名」フィールドに「UMLProject」と入力します。
- 「プロジェクトの場所」フィールドで「ブラウズ」をクリックして、UMLTut フォルダへ移動します。
- 「プロジェクトの場所を選択」ダイアログで、UMLTut フォルダを選択し、「開く」をクリックします。
- 「Java プロジェクト」フィールドで、ドロップダウンリストから BankApp を選択します。
- 「リバースエンジニアリング」列のチェックボックスは選択したままにします。
- 「完了」をクリックします。
「プロジェクトを開きます」ダイアログに進行状況が表示されます。
「プロジェクト」ウィンドウに UMLProject プロジェクトが表示されます。
デモを表示
ページの先頭へ
クラス図の生成
この節では、前の節でインポートした BankApp アプリケーションのクラス図を生成します。
- 「プロジェクト」ウィンドウで、「UMLProject」ノードの下の「モデル」ノードと、その下の「bankpack」ノードを展開します。
- 「bankpack」フォルダを選択し、Shift キーと Ctrl キーを押しながら「bankpack」フォルダ内の要素をすべて選択します。
- 選択した要素を右クリックし、ポップアップメニューから「選択した要素から図を作成」を選択します。
「図を新規作成」ウィザードが表示されます。
- 「図の種類」リストから「クラス図」を選択します。
- 「図名」フィールドに「BankClassDiagram」と入力し、「名前空間」フィールドは「UMLProject」のままにして、「完了」をクリックします。
IDE では次のことが行われます。
- 「モデル」ノードの下に「BankClassDiagram」ノードが作成されます。
- 図エディタに新しい図が表示されます。
- モデリングパレットが開きます。
注: 新しい BankClassDiagram 図には、手順 2 で選択したすべての要素が含まれます。
デモを表示
ページの先頭へ
「プロジェクト」ウィンドウでの UML プロジェクトの操作
この節では、「プロジェクト」ウィンドウのさまざまな機能を使用して、BankApp アプリケーションの各要素を操作する方法を示します。
- 「プロジェクト」ウィンドウで、「UMLProject」>「モデル」>「bankpack」ノードを展開します。
- 「BankAccount」ノードと、その「属性」ノードを展開します。
このノードには、BankAccount クラスのすべての属性が含まれています。属性の数が 3 つ未満の場合は、「属性」ノードは作成されず、クラスノードの下に属性が表示されます。
- 「private double balance」という属性ノード
を選択します。
「プロパティ」ウィンドウに属性の名前とそのプロパティが表示されます。
- 「プロジェクト」ウィンドウで、BankAccount クラスのノードの下の「操作」ノード
を展開します。
このノードの下に、BankAccount クラスのすべての操作が表示されます。
- BankAccount クラスの下にある「関係」ノード
を展開します。
「特化」、「集約」、および「実装」の 3 種類の関係のノードが表示されます。
- 「特化」ノード
を展開し、3 つの汎化ノードを展開します。
汎化のリンクは、BankAccount クラスとその他の要素 (Checking、Platinum、および Saving の各クラス) の関係を示しています。
- (任意) 次の節に進む前に、BankAccount クラスの下で展開されているノードをすべて閉じてください。
デモを表示
ページの先頭へ
図エディタの操作
この節では、図ツールバーのボタンを使用して、アプリケーションを図エディタでさまざまな UML レイアウトで表示します。
- 図エディタの上部にある「BankClassDiagram」タブをダブルクリックします。
この操作によってクラスの図エディタが拡大され、IDE ウィンドウの領域全体に表示されます。
注: この操作は相互切り替えで、逆の操作を行う場合はもう一度「BankClassDiagram」タブをダブルクリックします。
- 図エディタを拡大したままの状態で、図ツールバーの「ウィンドウに合わせる」ボタン
をクリックして、図エディタ全体に図を表示します。
注: 図ツールバーには、ズームレベルのパーセント値を示すフィールドがあります。このフィールドに別の数値を入力すると、サイズを変更できます。
- 図ツールバーの「対称型レイアウト」ボタン
を選択し、レイアウトの警告ダイアログで「はい」をクリックします。
BankClassDiagram 図のレイアウトが対称型レイアウトに変更されます。
- 図ツールバーの「階層型レイアウト」ボタン
を選択し、レイアウトの警告ダイアログで「はい」をクリックします。
BankClassDiagram 図のレイアウトが階層型レイアウトに変更され、すべての要素が bankpack パッケージの下に表示されます。
- 図ツールバーの「直交型レイアウト」ボタン
を選択し、レイアウトの警告ダイアログで「はい」をクリックします。
BankClassDiagram 図のレイアウトが直交型レイアウトに変更されます。
デモを表示
ページの先頭へ
「概要」ウィンドウの使用
ここでは、「概要」ウィンドウの機能を使用して、図エディタ内での図の表示を拡大縮小します。
- 拡大した図エディタの上部にある「BankClassDiagram」タブをダブルクリックします。
IDE が複数ウィンドウ表示に戻ります。
- 図ツールバーの「ズーム」ドロップダウンリストから「50%」を選択し、「ウィンドウに合わせる」ボタン
をクリックします。
「ウィンドウに合わせる」ボタンを使用すると、ラベルを読み取れるように、図のサイズが 50% から調整されます。
- 図ツールバーの「概要ウィンドウ」ボタン
をクリックして、「概要」ウィンドウを開きます。
図全体を表す拡大縮小可能な小さなウィンドウが表示されます。このウィンドウ内の青いボックスは、図エディタの表示内容を示しています。
注 :青いボックスを表示するには、「概要」ウィンドウを拡大するか、「ズーム」ドロップダウンリストでズーム率を上げる必要がある場合があります。
- BankAccount 要素の上に青いボックスをドラッグします。
この操作によって、BankAccount 要素が図エディタの中心に表示されます。
- 要素にズームインするには、青いボックスの角のハンドルのいずれかをクリックし、ボックスのサイズを小さくします。ボックスの位置を調整し、図の特定の部分にズームインします。
- ズームアウトするには、青いボックスのハンドルのいずれかをクリックし、ボックスのサイズを大きくします。
図がズームアウトされます。
- 「概要」ウィンドウを閉じるには、ウィンドウの右上隅にある「X」をクリックするか、「概要ウィンドウ」ボタンをクリックします。
- 図ツールバーの「ウィンドウに合わせる」ボタン
をもう一度クリックします。
デモを表示
ページの先頭へ
クラスの依存図の生成
ここでは、BankApp アプリケーションの 1 つのクラスの依存図を生成します。
- 「BankClassDiagram」タブをダブルクリックして、図を全面表示に切り替えます。
- 図エディタで BankAccount クラスを右クリックし、ポップアップメニューから「依存図を生成」を選択します。
依存図が作成され、図エディタの「BankAccount依存図」タブに新しい図が表示されます。現在は、BankAccount依存図が表示されている図エディタのタブにフォーカスがあります。BankAccount依存図は、次の依存関係のリンクを示します。
- Account インタフェースとの実装関係
- History クラスへのナビゲート可能な集約のリンク
注: このオプションを使用すると、任意のオブジェクトのすべての依存関係を示す図を作成できます。
- 「BankClassDiagram」タブをもう一度ダブルクリックして、IDE を複数ウィンドウ表示に切り替えます。
- 「プロジェクト」ウィンドウで、「UMLProject」>「モデル」>「bankpack」フォルダの下の BankAccount クラスノードを展開します。
作成した依存図を表す「BankAccount依存」ノード
が追加されています。
デモを表示
ページの先頭へ
操作のシーケンス図の生成
ここでは、アプリケーションの withdraw 操作のシーケンス図を生成します。操作がどのように図で表されるのか、また UML プロジェクトの要素として「プロジェクト」ウィンドウにどのように表示されるのかを確認します。
- 図エディタで「BankAccountDependencies」タブをクリックします。
- BankAccount 要素を選択し、操作のラベルを読み取れるようにズーム率を調整します。
- 図エディタで withdraw 操作を右クリックし、ポップアップメニューから「操作をリバースエンジニアリング」を選択します。
「図を新規作成」ダイアログが表示されます。
- 「図の種類」リストから「シーケンス図」を選択します。
- 「図名」フィールドに「withdrawSD」と入力します。
- 「名前空間」フィールドのデフォルト値は変更しないで、「完了」をクリックします。
図エディタにシーケンス図が表示されます。
- 図エディタを拡大し、新しいシーケンス図が見やすいようにズームレベルを操作します。
シーケンス図は、制御フロー、動作のシーケンス、および並行プロセスと活性化を示します。
- 「プロジェクト」ウィンドウで、「BankAccount」クラスノードの下の「操作」ノードを展開し、「public void withdraw」操作ノードを展開します。
新しいシーケンス図の「withdraw」ノード
が表示されます。
- 「withdraw」ノードを展開して、シーケンス図の要素が「プロジェクト」ウィンドウに表示されることを確認します。
デモを表示
ページの先頭へ
まとめ
このチュートリアルでは、UML モデルにデータをインポートすることによって Java アプリケーションをリバースエンジニアリングする方法を学びました。具体的には、次の作業を実行する方法を学びました。
- インポートした Java アプリケーションからクラス図を生成する
- アプリケーションの要素を表示する「プロジェクト」ウィンドウの機能を操作する
- 図ツールバーのボタンを使用して、さまざまな UML レイアウトでアプリケーションを表示する
- 「概要」ウィンドウを表示ツールとして使用する
- アプリケーションのクラスの依存図を生成する
- 操作のシーケンス図を生成し、操作がどのように図で表されるのか、また UML プロジェクトの要素として、「プロジェクト」ウィンドウにどのように表示されるのかを確認する
ページの先頭へ