演習 2.2: クラスの識別

この演習では、PiggyBank オンライン・バンキング・システムを構成するメイン・オブジェクトを識別します。UML クラスには、オブジェクトの属性と関係の記述に便利なテンプレートが用意されているため、これらのオブジェクトをクラスとして記述できます。プロジェクト要件文書を分析し、すべての名詞を強調表示することによって、メイン PiggyBank オブジェクトを発見できます。共通名詞を 1 つのリストにグループ化して、それらをエンティティー、コントローラー、または境界タイプ・クラスとして識別できます。これらのクラスはドメイン図を作成し、このドメイン図は設計モデルの基礎を形成します。

分析モデルの重要な出力は、ドメイン・モデルです。ドメイン・モデルは、機能タスクに関与するメイン・アクターとエンティティーをモデル化することによって、アプリケーションの静的構造をモデル化しようと試みます。ドメイン・モデルは、クラスの名前を記述する 1 つ以上の基本クラス図と、その振る舞いを記述する 1 つまたは 2 つのメイン属性で構成されます。ドメイン図は、システムの大まかな青図面です。

ドメイン図を作成する前に、プロジェクト・ユースケース文書に記述された PiggyBank オンライン・バンキング・システムのメイン・クラスを識別する必要があります。システムの各部分の相互作用を理解する前に、適正なシステム構造を識別しモデル化することは困難であるため、一般にこのステップは繰り返し実行することになります。ユースケース文書の分析受け渡しの間にオブジェクトのリストを作成し、次に、システムの動的モデルを構築するときに、クラスを追加、除去、または再編成することによってリストを変更します。このチュートリアルでは、要件文書に記述されたメイン・クラスは、ユーザーに応じて識別されます。

メイン PiggyBank オブジェクトを識別するには、まず、ユースケース文書を分析し、存在するすべての名詞をリストする必要があります。このリストは、ドメイン図を構成するエンティティー、コントローラー、および境界要素の基礎を提供します。次のリストには、PiggyBank ユースケース文書に記述されたすべての名詞が含まれています。

  • 顧客
  • 口座
  • 所有者
  • カスタマー ID
  • 口座番号
  • 勘定残高
  • 貸方口座番号
  • 借方口座番号
  • 金額
  • 小切手
  • 小切手照会
  • 小切手額
  • 貸方額
  • CityBank 口座
  • 振込

オブジェクトのインスタンス、他のオブジェクトの属性であるオブジェクト、複製または関連オブジェクト、およびシステムの重要でないパートを示すその他のオブジェクトを表す名詞を除去することによって、リストを絞り込むことができます。これは反復プロセスであることに注意してください。現実的な状況では、ドメイン・モデルを完成させ、さらに分析モデルの動的要素をモデル化し始めるときに、このリストを絞り込むことになります。このチュートリアルにおいて、候補クラスの絞り込まれたリストを以下に示します。

  • 顧客
  • 口座
  • 小切手
  • 振込

これらの 4 つのクラスは、ドメイン・モデルの基礎を形成します。エンティティー・クラスは発見が最も容易であることが多いため、この絞り込まれたオブジェクトのリストがエンティティー・クラスを表すと考えられます。残りのクラスは、これらのクラスのインスタンスか属性のいずれかであり、メイン・クラスの詳細を記述し、メイン・クラス間に存在する関係についての情報を提供します。

クラスへの RUP ステレオタイプの適用

クラスのリストを識別すると、ステレオタイプを適用することによって、クラスをその振る舞いに応じて編成できます。ステレオタイプは、類似した特性や機能に応じてオブジェクトを編成することによって、それらを一般化します。RUP® 分析ステレオタイプは、クラスをエンティティー、境界、コントローラーの 3 つのステレオタイプの中の 1 つに分類することによって、クラスの振る舞いを記述します。これらのステレオタイプ・クラスを使用して、システムに合うようにドメイン図を作成できます。次の表で、RUP 分析要素を説明します。

要素 説明
RUP 分析要素: 境界クラス

境界クラスは、システムとアクターとのインターフェースを表します。アクターが人間であれば、境界クラスは多くの場合、システムにアクセスするソフトウェア・インターフェースまたはハードウェア・インターフェースを表します。アクターがコンピューターやその他のソフトウェア・アプリケーションなどのシステムであれば、境界クラスは多くの場合、API などのソフトウェア・インターフェースを表します。

RUP 分析要素: コントロール・クラス

コントロール・クラスには、ビジネス・ルールとロジックの実装が含まれています。コントロール・クラスはユーザーから意図的に抽出され、境界クラスによってのみアクセスされます。コントロール・クラスは、1 つ以上のエンティティー・クラスと相互作用します。

RUP 分析要素: エンティティー・クラス

エンティティー・クラスはシステム内のデータをキャプチャーします。

これらの基本ステレオタイプをクラスのリストに適用すると、システムの構造と機能についてさらに理解できます。クラスをその機能に従って編成すると、システムのドメインと実装の詳細との差別化を開始できます。これらのステレオタイプを使用して、次の演習でドメイン図とシーケンス図を作成できます。

継続する場合は、『演習 2.3: PiggyBank ドメイン・モデル図の作成』に進みます。

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