演習 2.3: PiggyBank ドメイン・モデル図の作成

この演習では、口座処理機能領域と PiggyBank ドメイン・モデル図を作成します。ドメイン・モデル図は、システム内のメイン・クラスを示すクラス図を使用することによって、PiggyBank システムのドメインを表します。

分析モデルは、モジュール 1 で識別した口座処理機能領域を基礎としています。口座処理パッケージには残高表示、振込、小切手換金ユースケースの実現に加えて、口座処理分析要素サブパッケージが含まれています。口座処理分析要素サブパッケージには、モデルの静的構造をモデル化するときに作成する Rational Unified Process® (RUP®) 分析要素が含まれています。また、このパッケージには口座処理分析要素図も含まれ、これはドメイン・レベル図を作成するためのワークスペースとして使用されます。

ドメイン図はクラス図の一種であり、PiggyBank オンライン・バンキング・システムのメイン・クラスを示します。シンプル・クラス図は、直前の演習で識別したメイン・クラス、クラスの属性、およびクラス間の関係を示します。ドメイン・モデルはシステムのドメインのみを表し、アプリケーション自体の詳細は表しません。ドメイン・モデルは、システムのエンティティー・クラスとそれらの関係のみをモデル化することによって、このような特性を実現しています。ドメイン図はシステムの構造のみをモデル化するため、静的であるといえます。この演習では、エンティティー・クラスを作成し、その属性をモデル化します。ユースケースごとにシーケンス図を作成する場合は、エンティティーごとにその操作を識別してモデル化します。

モデル化は反復プロセスです。モデル化しているシステムについての情報を発見するにつれて、ドメイン・モデルが変更されます。このチュートリアルでは、基本的なドメイン図のアウトラインを作成し、エンティティーごとにすべての属性をモデル化します。

機能領域の作成

分析モデルはユースケース・モデルを基礎としているため、口座処理機能領域は、PiggyBank 分析要素とユースケースの実現を保管します。 新規の口座処理機能領域をモデルのルートに作成する必要があります。

口座処理機能領域を作成するには、以下のようにします。
  1. 「モデル・エクスプローラー」ビューで、「分析モデル」「«ModelLibrary» 分析ビルディング・ブロック」を展開し、「${functional.area}」パッケージを右クリックしてから、「コピー」をクリックします。
  2. ルート「分析モデル」 パッケージを右クリックしてから、「貼り付け」をクリックします。
  3. 「${functional.area}」を右クリックしてから、「検索/置換」をクリックします。
  4. 「検索する文字列」フィールドに、${functional.area} と入力し、「置換」をクリックします。
  5. 「置換後の文字列」フィールドに、Account Operations と入力し、「OK」をクリックします。

差引金額表示ユースケースの実現を口座処理機能領域に追加するには、以下のようにします。
  1. 「モデル・エクスプローラー」ビューで、「分析モデル」「«ModelLibrary» 分析ビルディング・ブロック」を展開し、「${use.case}」パッケージを右クリックしてから、「コピー」をクリックします。
  2. 「口座処理 (Account Operations)」パッケージを右クリックしてから、「貼り付け」をクリックします。
  3. 「${use.case}」を右クリックしてから、「検索/置換」をクリックします。
  4. 「検索する文字列」フィールドに、${use.case} と入力し、「置換」をクリックします。
  5. 「置換後の文字列」フィールドに、Display Balance と入力し、「OK」をクリックします。
振込ユースケースの実現を口座処理機能領域に追加するには、以下のようにします。
  1. 「モデル・エクスプローラー」ビューで、「分析モデル」「«ModelLibrary» 分析ビルディング・ブロック」を展開し、「${use.case}」パッケージを右クリックしてから、「コピー」をクリックします。
  2. 「口座処理 (Account Operations)」パッケージを右クリックしてから、「貼り付け」をクリックします。
  3. 「${use.case}」を右クリックしてから、「検索/置換」をクリックします。
  4. 「検索する文字列」フィールドに、${use.case} と入力し、「置換」をクリックします。
  5. 「置換後の文字列」フィールドに、Transfer Money と入力し、「OK」をクリックします。
小切手換金ユースケースの実現を口座処理機能領域に追加するには、以下のようにします。
  1. 「モデル・エクスプローラー」ビューで、「分析モデル」「«ModelLibrary» 分析ビルディング・ブロック」を展開し、「${use.case}」パッケージを右クリックしてから、「コピー」をクリックします。
  2. 「口座処理 (Account Operations)」パッケージを右クリックしてから、「貼り付け」をクリックします。
  3. 「${use.case}」を右クリックしてから、「検索/置換」をクリックします。
  4. 「検索する文字列」フィールドに、${use.case} と入力し、「置換」をクリックします。
  5. 「置換後の文字列」フィールドに、Cash Check と入力し、「OK」をクリックします。

口座処理機能領域には、PiggyBank 分析モデル用のユースケースの実現と分析要素が含まれています。口座処理分析要素サブパッケージには、プロジェクトのすべての分析要素が含まれています。口座処理分析クラスのクラス図をワークスペースとして使用して、PiggyBank ドメイン図を構築できます。

ドメイン・モデル図の作成

口座処理機能領域内にドメイン・モデル図を作成し、次に、視覚化されたモデル要素を分析モデル・テンプレートの «perspective» 概要パッケージにコピーします。 口座処理分析クラス図は図を作成するためのワークスペースですが、«perspective» 概要パッケージには図の最終コピーのみが含まれ、クラスは含まれません。

ドメイン図を作成するには、以下のようにします。
  1. 「モデル・エクスプローラー」ビューで、「分析モデル」を展開して、「口座処理 (Account Operations)」を展開します。
  2. 「口座処理分析要素 (Account Operations Analysis Elements)」パッケージで、「口座処理分析クラス (Account Operations Analysis Classes)」をダブルクリックします。

PiggyBank 分析要素図を作成しました。この図は、機能領域の構造内のクラスを作成し視覚化できるワークスペースです。このパッケージ内にドメイン・レベル・クラス図を作成し、次に、完成図を «perspective» 概要パッケージ内にドラッグしてモデル化を完了する必要があります。

口座クラスの作成

口座クラスは、PiggyBank ユーザー・アカウントを表します。口座クラスは、getBalance や findForCustomer などの口座クラスに関連した機能タスクを記述します。

口座クラスをモデル化するには、以下のようにします。
  1. パレットで、「クラス」をダブルクリックし、クラスに Account という名前を付けます。
  2. ダイアグラム・エディターで、Account クラスをクリックし、「プロパティー」ビュー内の「ステレオタイプ」ページで、「ステレオタイプの追加」をクリックします。
  3. 「ステレオタイプの適用」ウィンドウで、「エンティティー」チェック・ボックスを選択し、「OK」をクリックします。
  4. ダイアグラム・エディターで、Account クラスを右クリックし、次に、「UML の追加」>「属性」をクリックし、属性に差引金額 (balance) という名前を付けます。
  5. ダイアグラム・エディター内の Account クラス内で、「差引金額 (balance)」 属性をクリックし、「プロパティー」ビューの「一般 」ページで、「タイプの選択」をクリックします。
  6. 「要素の選択」ウィンドウで、「UML2」を展開し、「整数」をクリックして「OK」をクリックします。
  7. ダイアグラム・エディターで、Account クラスを右クリックし、次に、「UML の追加」>「属性」をクリックし、属性に番号 (number) という名前を付けます。
  8. ダイアグラム・エディター内の Account クラス内で、「番号 (number)」 属性をクリックします。
  9. 「プロパティー」ビュー内の「一般」ページで、「タイプの選択」をクリックします。
  10. 「要素の選択」ウィンドウで、「UML2」を展開し、「文字列」をクリックして「OK」をクリックします。
Account クラスのモデル化が完了しました。
注意: 分析モデル・テンプレートには、RUP 分析要素ステレオタイプを使用してステレオタイプ化された空のクラスが含まれています。新規クラスを作成してそれらにステレオタイプを適用する代わりに、分析要素を機能領域にコピーしてそれらを名前変更できます。既存の RUP 分析要素を使用するには、「モデル・エクスプローラー」ビュー内の「«ModelLibrary» ビルディング・ブロック («ModelLibrary» building Blocks)」パッケージ内で分析要素を右クリックしてから、「コピー」をクリックします。機能領域を右クリックしてから、「貼り付け」をクリックします。

振込クラスの作成

振込クラスは、顧客がある口座から他の口座へお金を振り込むときに発生する取り引きを表します。振込クラスには、口座クラスとの関連が 2 つあります。

振込クラスをモデル化するには、以下のようにします。
  1. パレットで、「クラス」をダブルクリックし、クラスに Transfer という名前を付けます。
  2. ダイアグラム・エディターで、Transfer クラスをクリックし、「プロパティー」ビュー内の「ステレオタイプ」ページで、「ステレオタイプの追加」をクリックします。
  3. 「ステレオタイプの適用」ウィンドウで、「エンティティー」チェック・ボックスを選択し、「OK」をクリックします。
  4. ダイアグラム・エディターで、Transfer クラスを右クリックし、次に、「UML の追加」>「属性」をクリックし、属性に金額 (amount) という名前を付けます。
  5. ダイアグラム・エディター内の Transfer クラス内で、「金額 (amount)」 属性をクリックします。
  6. 「プロパティー」ビュー内の「一般」ページで、「タイプの選択」をクリックします。
  7. 「要素の選択」ウィンドウで、「UML2」を展開し、「整数」をクリックして「OK」をクリックします。

振込クラスのモデル化が完了しました。

振込 - 口座関係のモデル化

振込クラスは、口座クラスに依存します。

振込 - 口座関係をモデル化するには、以下のようにします。
  1. パレット内の「依存」の横で、下矢印をクリックし、「使用」をクリックします。
  2. ダイアグラム・エディターで、カーソルを Transfer クラス上に移動し、これを Account クラスへドラッグします。

振込クラスの関係のモデル化が完了しました。作成した図は次のようになります。

口座と振込の関係

小切手クラスの作成

小切手クラスは、PiggyBank で現金化される小切手を表します。

小切手クラスをモデル化するには、以下のようにします。
  1. パレットで、「クラス」をダブルクリックし、クラスに Check という名前を付けます。
  2. ダイアグラム・エディターで、Check クラスをクリックします。
  3. 「プロパティー」ビュー内の「ステレオタイプ」ページで、「ステレオタイプの追加」をクリックします。
  4. 「ステレオタイプの適用」ウィンドウで、「エンティティー」チェック・ボックスを選択し、「OK」をクリックします。
  5. ダイアグラム・エディターで、Check クラスを右クリックし、次に、「UML の追加」>「属性」をクリックし、属性に金額 (amount) という名前を付けます。
  6. ダイアグラム・エディター内の Check クラス内で、「金額 (amount)」 属性をクリックします。
  7. 「プロパティー」ビュー内の「一般」ページで、「タイプの選択」をクリックします。
  8. 「要素の選択」ウィンドウで、「UML2」を展開し、「整数」をクリックして「OK」をクリックします。
  9. ダイアグラム・エディター内の Check クラス内で、「金額 (amount)」 属性をクリックします。
  10. 「プロパティー」ビュー内の「一般」ページで、「可視性」の横の「public」をクリックします。
  11. ダイアグラム・エディターで、Check クラスを右クリックし、次に、「UML の追加」>「属性」をクリックし、属性に照会 (reference) という名前を付けます。
  12. ダイアグラム・エディター内の Check クラス内で、「照会 (reference)」 属性をクリックします。
  13. 「プロパティー」ビュー内の「一般」ページで、「タイプの選択」をクリックします。
  14. 「要素の選択」ウィンドウで、「UML2」を展開し、「文字列」をクリックして「OK」をクリックします。
  15. ダイアグラム・エディター内の Check クラス内で、「照会 (reference)」 属性をクリックします。
  16. 「プロパティー」ビュー内の「一般」ページで、「可視性」の横の「public」をクリックします。

小切手クラスのモデル化が完了しました。作成した図は次のようになります。

金額 (amount) と照会 (reference) の 2 つの属性を示す小切手クラス

小切手 - 口座関係のモデル化

小切手クラスは口座クラスに依存します。

小切手 - 口座関係をモデル化するには、以下のようにします。
  1. パレットで、「使用」をクリックします。
  2. ダイアグラム・エディターで、カーソルを Check クラス上に移動し、これを Account クラスへドラッグします。

小切手クラスの関係のモデル化が完了しました。

カスタマー・クラスの作成

カスタマー・クラスは、PiggyBank 顧客を表します。

カスタマー・クラスをモデル化するには、以下のようにします。
  1. パレットで、「クラス」をダブルクリックし、クラスに Customer という名前を付けます。
  2. ダイアグラム・エディターで、Customer クラスをクリックします。
  3. 「プロパティー」ビュー内の「ステレオタイプ」ページで、「ステレオタイプの追加」をクリックします。
  4. 「ステレオタイプの適用」ウィンドウで、「エンティティー」チェック・ボックスを選択し、「OK」をクリックします。
  5. ダイアグラム・エディターで、Customer クラスを右クリックし、次に、「UML の追加」>「属性」をクリックし、属性にログイン ID (loginId) という名前を付けます。
  6. ダイアグラム・エディター内の Customer クラスで、「ログイン ID (loginId)」 属性をクリックします。
  7. 「プロパティー」ビュー内の「一般」ページで、「タイプの選択」をクリックします。
  8. 「要素の選択」ウィンドウで、「UML2」を展開し、「文字列」をクリックして「OK」をクリックします。
  9. ダイアグラム・エディター内の Check クラスで、「ログイン ID (loginId)」 属性をクリックします。
  10. 「プロパティー」ビュー内の「一般」ページで、「可視性」の横の「public」をクリックします。
  11. ダイアグラム・エディターで、Check クラスを右クリックし、次に、「UML の追加」>「属性」をクリックし、属性に名前 (name) という名前を付けます。
  12. ダイアグラム・エディター内の Check クラスで、「名前 (name)」 属性をクリックします。
  13. 「プロパティー」ビュー内の「一般」ページで、「タイプの選択」をクリックします。
  14. 「要素の選択」ウィンドウで、「UML2」を展開し、「文字列」をクリックして「OK」をクリックします。
  15. ダイアグラム・エディター内の Check クラスで、「名前 (name)」 属性をクリックします。
  16. 「プロパティー」ビュー内の「一般」ページで、「可視性」の横の「public」をクリックします。

カスタマー・クラスのモデル化が完了しました。

口座 - 顧客関係のモデル化

口座クラスは、カスタマー・クラスに依存します。

口座 - 顧客関係をモデル化するには、以下のようにします。
  1. パレットで、「使用」をクリックします。
  2. ダイアグラム・エディターで、カーソルを Account クラス上に移動し、これを Customer クラスへドラッグします。

カスタマー・クラスの関係のモデル化が完了しました。さらに、ドメイン図の基本アウトラインが完成しました。作成した図は次のようになります。

PiggyBank ドメイン図の基本アウトライン

この図は、システムのメイン・クラスの構造と、それらの間に存在する関係を表すことによって、システムの基本ドメインをモデル化します。例えば、固有のログイン ID と名前によって識別された顧客が、複数の口座を所有することがありますが、1 つの口座が複数の顧客に属することはありません。

ドメイン・モデル概要ダイアグラムの作成

ここでは、«perspective» 概要パッケージ内に PiggyBank ドメイン・モデル図を作成します。これは、概要とナビゲーション情報を提供する図の最終バージョンです。

PiggyBank ドメイン概要ダイアグラムを作成するには、以下のようにします。
  1. 「モデル・エクスプローラー」ビューで、「分析モデル」「«perspective» 概要」を展開し、「${project} ドメイン・モデル (${project} Domain Model)」を右クリックしてから、「検索/置換」をクリックします。
  2. 「検索する文字列」フィールドに、${project} と入力し、「置換」をクリックします。
  3. 「置換後の文字列」フィールドに、PiggyBank と入力し、「OK」をクリックします。
  4. 「PiggyBank ドメイン・モデル (PiggyBank Domain Model)」図をダブルクリックします。
  5. 「モデル・エクスプローラー」ビューで、「口座処理 (Account Operations)」を展開して、「口座処理分析要素 (Account Operations Analysis Elements)」を展開します。
  6. 「モデル・エクスプローラー」ビューで、「顧客 (Customer)」分析要素をクリックして図にドラッグします。
  7. 「モデル・エクスプローラー」ビューで、「口座 (Account)」分析要素をクリックして図にドラッグします。
  8. 「モデル・エクスプローラー」ビューで、「振込 (Transfer)」分析要素をクリックして図にドラッグします。
  9. 「モデル・エクスプローラー」ビューで、「小切手 (Check)」分析要素をクリックして図にドラッグします。

«perspective» 概要パッケージ内に PiggyBank ドメイン・モデル図を作成しました。 これが図の最終バージョンとなります。口座処理分析クラスのクラス図を大まかなワークスペースとして使用して、ユースケース参加プログラム図を作成できます。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.