FeaturesPluginsDocs & SupportCommunityPartners

UML: アプリケーションの開発

このチュートリアルでは、IDE の UML 機能を使用して、簡単な UML クラス図を作成する方法を学びます。そのあとで、コード生成機能とリバースエンジニアリング機能を使用して、簡単な銀行業務アプリケーションを開発します。このアプリケーションは、テストクラスを実行することでテストできます。この銀行業務アプリケーションはかなり単純化されています。現実には、この種のアプリケーションでは、さらに複雑なモデリングが必要になります。このチュートリアルの目的は、UML の概念や Java プログラミング言語について説明することではなく、IDE の UML 機能をいくつか紹介することです。

予想される所要時間: 25

チュートリアルの要件

次に進む前に、この節の要件を確認してください。

前提条件

このチュートリアルを使用するには、IDE がシステムにインストールされている必要があります。また、IDE の基本要素に関する知識が必要です。Java プログラミング言語および UML の基本的なところも知っていた方がいいでしょう。IDE の基礎については、オンラインヘルプで IDE の基礎に関する項目を参照してください。公式の UML リソースページ (http://www.uml.org/) で、UML 手法と理論に関する優れたリソースを得ることができます。

システム要件

このチュートリアルでは、ユーザーのシステムが、『NetBeans 6.0 リリースノート』の「システム要件」の節で指定された要件を満たしていることを想定しています。

このチュートリアルに必要なソフトウェア

開始する前に、次のソフトウェアをダウンロードしてインストールします。

  • NetBeans 6.0

    ダウンロードオプション「すべて」を選択します。

ページの先頭へ

アプリケーション用の Java プロジェクトの作成

この節では、このチュートリアルで開発する Java アプリケーション用に新しい Java プロジェクトを作成します。

  1. メインメニューから「ファイル」>「新規プロジェクト」を選択し、「新規プロジェクト」ウィザードで次の操作を行います。
    1. 「カテゴリ」から「Java」を選択します。
    2. 「プロジェクト」で「Java アプリケーション」を選択します。
    3. 「次へ」をクリックします。
  2. 「プロジェクト名」フィールドに「 JavaPrj 」と入力します。
  3. 「プロジェクトの場所」フィールドで、「参照」をクリックし、コンピュータ上の任意のディレクトリに移動します。「開く」をクリックし、「MyPrj」と入力します。
  4. 「主プロジェクトとして設定」チェックボックスと「主クラスを作成」チェックボックスの選択を解除します。
  5. 「完了」をクリックします。
    進行状況を示すダイアログが表示されます。
    新しい JavaPrj プロジェクトが作成されると、「プロジェクト」ウィンドウに表示されます。

デモを表示

ページの先頭へ


UML プロジェクトとクラス図の作成

この節では、アプリケーションの UML プロジェクトとクラス図を作成します。UML プロジェクトは、UML モデルのファイルを保存および管理するためのメカニズムです。UML モデルには、モデルの図、図に関連付けられている要素、および UML モデルに関連するメタデータがすべて含まれます。

  1. UML プロジェクトを作成するには、「ファイル」>「新規プロジェクト」を選択し、次の操作を行います。
    1. 「カテゴリ」で「UML」を選択します。
    2. 「プロジェクト」で「Java プラットフォームモデル」を選択します。
    3. 「次へ」をクリックします。
    「新規 Java プラットフォームモデル」ダイアログが開きます。
  2. 「プロジェクト名」フィールドに「 UMLPrj 」と入力します。
    プロジェクト名を入力すると、プロジェクトフォルダ名も自動的にこの名前になります。
  3. プロジェクトの場所が MyPrj であることを確認します。
  4. 「完了」をクリックします。
    IDE によって UML プロジェクトが作成され、「図を新規作成」ダイアログが表示されます。
  5. 「図の種類」リストから「クラス図」を選択します。
  6. 「図名」フィールドに「 BankClassDiagram 」と入力します。
  7. 「名前空間」フィールドの「 UMLPrj 」は変更しないで、「完了」をクリックします。
    IDE が次の処理を行います。
    • 「プロジェクト」ウィンドウに、 UMLPrj ノードが追加されます。
    • モデル」ノードの下に「BankClassDiagram」ノードが作成されます。
    • 図エディタに新しい図が表示されます (この時点で図は空です)。
    • モデリングパレットが開きます。

デモを表示

ページの先頭へ

クラス要素の追加と定義

ここで、Java アプリケーションを形成するクラス要素を追加して定義します。クラス要素を作成するには、モデリングパレットから「クラス (Class)」アイコンを使用します。

  1. モデリングパレットの基本区画で、「クラス (Class)」アイコン 「クラス (Class)」アイコン を選択し、図エディタ内をクリックします。
    この操作によって、クラス要素が図エディタに配置されます。
  2. 図エディタ内の任意の場所を右クリックして「クラス (Class)」アイコンを選択解除します。
  3. 新しく追加したクラス要素を選択し、「 BankAccount 」と入力して Enter キーを押します。
    IDE が次の処理を行います。
    • BankAccount 要素にラベルが付けられます。
    • BankAccount() という public 操作が作成されます。
    • 「プロパティ」ウィンドウに BankAccount クラスのプロパティが表示されます。
  4. 図エディタで BankAccount クラス要素が選択されている状態で、「属性」を右クリックし、ポップアップメニューから「属性を挿入」を選択します。
    次の情報を含む 1 行エディタが開きます。
    可視性 型 名前 [範囲]=初期値{名前=値}
  5. balance 」と入力し、Enter キーを押します。
    BankAccount クラスに int 型の balance という private 属性が現れます。クラスに、次の操作が作成されます。
    • public int getBalance()
    • public void setBalance(int val)
  6. 図エディタで BankAccount クラスが選択されている状態で、「操作」を右クリックし、ポップアップメニューから「操作を挿入」を選択します。
    次の情報を含む 1 行エディタが開きます。
    可視性 戻り値の型 名前 (パラメータ) {プロパティ...}
  7. withdraw」と入力し、キーボードの右矢印キーを使用してカーソルを括弧内に移動します。次に、「int amount」と入力し、Enter キーを押します。
    IDE によって、次のように新しい操作がクラス要素に追加されます。
    public void withdraw(int amount)

デモを表示

ページの先頭へ

図への要素の追加

この節では、モデリングパレットのほかの UML アイコンを使用してインタフェース、パッケージ、属性、および操作をアプリケーションに追加します。

  1. モデリングパレットの基本区画で、「パッケージ (Package)」アイコン 「パッケージ (Package)」アイコン を選択します。

    注: 必要なモデリングアイコンが表示されていない場合は、下にスクロールします。
  2. 図エディタ内をクリックして、パッケージ要素をクラス図に追加します。
  3. 図エディタ内の任意の場所を右クリックして「パッケージ (Package)」アイコンを選択解除します。

    注: モデリング要素を図に追加するときは、図エディタ内で各要素を選択して新しい場所まで移動することで、図を見やすくすることができます。右クリックするときは注意が必要です。右クリックする場所によっては、図エディタのポップアップメニューが表示されます。図エディタのコンテキストメニューが表示された場合は、図エディタ内の白い領域をクリックしてください。
  4. パッケージ要素が選択されている状態で、「 bankpack 」と入力し、Enter キーを押します。
  5. モデリングパレットの基本区画で、「インタフェース (Interface)」アイコン 「インタフェース (Interface)」アイコン を選択し、図エディタ内をクリックします。
  6. 図エディタ内の任意の場所を右クリックして「インタフェース (Interface)」アイコンを選択解除します。
  7. インタフェース要素が選択されている状態で、「 Bank 」と入力し、Enter キーを押します。
  8. Bank インタフェースに deposit 操作を追加します。
    インタフェースに操作を追加する方法は、クラスに操作を追加する方法と同じです ( 前の節の手順 6 を参照)。この操作は、次のように定義します。
    public void deposit(int amount)
  9. モデリングパレットから、「クラス (Class)」アイコン 「クラス (Class)」アイコン を選択し、図エディタ内を 2 回クリックします。
  10. 図エディタ内の任意の場所を右クリックして「クラス (Class)」アイコンを選択解除します。

    注: 必要数を超えるクラス要素を描画した場合は、「クラス (Class)」アイコンを選択解除し、削除するクラス要素を右クリックして、「編集」>「削除」を選択します。
  11. クラス要素にそれぞれ「Checking」、「AccountTest」という名前を付け、必要に応じてサイズを変更します。

デモを表示

ページの先頭へ


要素間の関連の指定

ここでは、モデリングパレットの UML アイコンを使用して、クラス要素間の関係を指定します。

  1. モデリングパレットの基本区画で、「実装 (Implementation)」アイコン 「実装 (Implementation)」アイコン を選択し、 BankAccount クラス要素内をクリックします。
  2. Bank インタフェース要素内をクリックし、図エディタ内の任意の場所を右クリックして「実装 (Implementation)」アイコンを選択解除します。
    クラスとインタフェース要素の間に実装リンクが表示されます。実装リンクは、クラスとインタフェース間の関係を表します。
  3. モデリングパレットの基本区画で、「汎化 (Generalization)」アイコン 「汎化 (Generalization)」 を選択します。
  4. Checking クラス要素 (サブクラス) 内をクリックし、BankAccount クラス要素 (スーパークラス) 内をクリックします。
    「再定義するメソッドを選択」ダイアログが表示されます。
  5. withdraw メソッドを選択し、「了解」をクリックします。
    IDE が次の処理を行います。
    • ダイアログが閉じます。
    • Checking クラスに、 withdraw メソッドが追加されます。
    • 2 つの関連するクラス要素の間に汎化リンクが追加されます。
    汎化リンクは、サブクラスとそのスーパークラスの関係を表します。サブクラスは、スーパークラスからの派生版であり、このことはスーパークラスから機能 (属性および操作) を継承できることを意味します。
  6. 図エディタの任意の空白の領域を右クリックして「汎化 (Generalization)」アイコンを選択解除します。
  7. モデリングパレットの基本区画で、「入れ子リンク (Nested Link)」アイコン 「入れ子リンク (Nested Link)」アイコン を選択し、BankAccount 要素内をクリックして、 bankpack パッケージ要素内をクリックします。
  8. 前の手順で説明した「入れ子リンク (Nested Link)」アイコンを使用して、CheckingAccountTest、および Bank·の各要素を·bankpack·パッケージに接続します。
  9. 「入れ子リンク (Nested Link)」を選択解除します。
    入れ子リンクは、要素のグループ分けを表します。この場合は、すべてのクラス要素を bankpack パッケージ内の 1 つのグループにまとめました。
  10. 図エディタ内の任意の場所で Ctrl-S キーを押し、モデルへの変更内容を保存します。

デモを表示

ページの先頭へ


Java ソースコードの生成

この節では、UML のコード生成機能を使用して、前の節で作成した UML モデルに対応する Java ソースコードを生成します。

  1. 「プロジェクト」ウィンドウで、「UMLPrj」ノードを右クリックし、ポップアップメニューから「コードを生成」を選択します。
    「コードを生成」ダイアログが表示されます。次に、ターゲットプロジェクトを指定します。
  2. 「コードを生成」ダイアログで、デフォルトのチェックボックスの設定をそのまま使用します。
  3. 「閉じる」をクリックします。
    IDE によってコードが生成され、「出力」ウィンドウにコード生成処理の進行状況が表示されます。

デモを表示

ページの先頭へ

リバースエンジニアリングを使用して開発を継続

この節では、生成されたソースコードをソースエディタで変更し、リバースエンジニアリング機能を使用してアプリケーションの UML モデルを更新して、アプリケーションの開発を続けます。

  1. 「プロジェクト」ウィンドウで、「UMLPrj」>「モデル」>「bankpack」ノードを展開します。
  2. BankAccount 」ノードを右クリックし、ポップアップメニューから「ソースにナビゲート」を選択します。
  3. ソースエディタで deposit メソッドに次のコードを追加します。
    setBalance(getBalance() + amount);
  4. 「プロジェクト」ウィンドウの「UMLPrj」>「モデル」>「bankpack」ノードの下で、「AccountTest」ノードを右クリックし、ポップアップメニューから「ソースにナビゲート」を選択します。
  5. ソースエディタで次のコードを入力 (またはコピー & ペースト) します。
    public static void main(String[] args) {
    Checking myChecking = new Checking();
    myChecking.deposit(100);
    System.out.println("Checking Balance is: " +
    myChecking.getBalance() );
    }
    このコードは、新しい Checking オブジェクトを作成し、100 ドルの預金を指示して、その結果を出力します。
  6. ソースエディタ内を右クリックし、「コードを整形」を選択します。
  7. ソースエディタ内の任意の場所で Ctrl-S キーを押し、 AccountTest.java のソースファイルへの変更内容を保存します。
  8. ソースエディタ内をもう一度右クリックし、ポップアップメニューから「リバースエンジニアリング」を選択します。
    「リバースエンジニアリング」ダイアログが表示されます。
  9. 「リバースエンジニアリング」ダイアログで「既存の UML プロジェクトを使用」を選択し、ターゲットプロジェクトとして「 UMLPrj 」を選択します。
  10. 「了解」をクリックしてリバースエンジニアリングの処理を開始します。
  11. AccountTest モデル要素を上書きすることの確認を求める、「モデル要素の上書きの許可」ダイアログがポップアップで表示されます。「はい」または「すべて、はい」をクリックします。
  12. 「BankClassDiagram」タブをクリックします。
    新しく入力した main メソッドが、クラス図の AccountTest クラス要素内に表示されます。
    リバースエンジニアリング機能を使用することで、Java ソースプロジェクトの変更内容を、対応する UML モデルプロジェクトに反映できます。

デモを表示

ページの先頭へ

成果のテスト

ここでは、プロジェクトを構築して実行します。

  1. 「プロジェクト」ウィンドウで、「JavaPrj」ノードを右クリックし、ポップアップメニューから「構築」を選択します。
  2. 「プロジェクト」ウィンドウで、「JavaPrj」ノードを右クリックし、ポップアップメニューから「実行」を選択します。
    「プロジェクトの実行」ダイアログが表示されます。
  3. 「プロジェクトの実行」ダイアログで、「了解」をクリックし、主クラスとして bankpack.AccountTest を選択します。
    アプリケーションが実行され、「出力」ウィンドウに次の出力が表示されます。
    Checking Balance is: 100

これで、アプリケーションが完成しました。

デモを表示

ページの先頭へ

まとめ

このチュートリアルでは、簡単な銀行業務アプリケーションのクラス図を設計しました。具体的には、次の作業を実行する方法を学びました。

  • UML プロジェクトを作成する
  • モデリングパレットの UML アイコンを使用して、クラス、インタフェース、パッケージ、属性、および操作を作成する
  • UML の関連を使用してクラス同士をリンクする
  • 図エディタで UML プロジェクトに作成した要素を「プロジェクト」ウィンドウで確認する
  • 図エディタで UML プロジェクトに作成した要素のソースコードを生成し、生成されたソースをソースエディタで表示する
  • コード生成機能とリバースエンジニアリング機能を使用してモデリングと、ソースエディタでのコードの開発を切り替える
  • ソースエディタからクラスをコンパイルおよび実行する

ページの先頭へ

次の手順


  • UML 機能をさらに学ぶには、リバースエンジニアリングのチュートリアルを実行します。

  • メーリングリストに登録することによって、NetBeans IDE J2EE 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。



ページの先頭へ

>> その他の UML モデリングドキュメント

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by