連載第3回-1
UMLの基礎と応用
(株)NTTデータ 技術開発本部 副本部長
山本修一郎
■ユースケースの適用例
統一モデリング言語UML(Unified Modeling Language)には、全部で9種類の図式がある[1][2][3]。その中でも最も多くの担当者や工程で利用される図式がユースケース(Use Case)図である。またユースケース図式は1992年のヤコブソンの本で初めて登場した新しい図式でもある。今回は日本ラショナルソフトウェア(株)が販売しているUML(Unified Modeling Language)をサポートしたビジュアルモデリングツール『Rational Rose(ラショナル・ローズ)2000e』[4]を使ってユースケースを作成してみながら、ユースケースについて、具体的な適用例とユースケース作成上の留意点などを解説する。
■Rational Rose 2000e
今回、筆者が紹介するのはUMLの作図だけを提供するRationalRose2000e Modeler Editionである。使用するOSはWindows 2000である。Rose2000eにはコード生成やリバースエンジニアリングに対応するProfessional EditionやRDBMSのコード生成やリバースエンジニアリングに対応するData Modeler Editionなどがある。コード生成では、UMLの設計モデルにもとづいてプログラムのスケルトンを生成する。逆に、リバースエンジニアリングではプログラムコードからUMLの設計モデルを作成する。Enterprise Editionはすべての機能を提供している。
UMLの作図機能はどのEditionにも共通である。
Rose 2000eの図式編集に関する特徴は次の2点だろう。
・統一モデリング言語(UML)をサポート
UML以外にもOMT法、Booch法の表記法に基づく図式編集を提供している。また、これら3種類の表記法で記述された図式を相互に変換できる。
・優れた操作性
モデルの定義内容をツリー表示可能にするモデルブラウザ上のドラッグ&ドロップ操作でモデル要素を移動できるので、図式への追加等の編集操作が効率化できる。たとえば、ユースケース図間でアクタやユースケースを移動するときに便利である。
■UMLモデル編集機能
Rose2000eの基本的な図式編集操作は、通常のエディタとほとんど同じである。図1にWindows版でのRose2000eのウィンドウ構成例を示す。Rose
2000eのウィンドウには、モデルブラウザ、定義ウィンドウ、図式編集ウィンドウ、ツールボックス、仕様ウィンドウなどがある。ここでは、架空の学会論文誌の編集委員会支援システムに対するユースケースを例として示している。ユースケースビュウには4個のユースケース図のパッケージがある。これらのパッケージはモデルブラウザでは、ユースケースビュウの下のフォルダとして表示されている。図1では編集委員会パッケージに対応するユースケース図を示している。
図1 Rational Rose2000eのウィンドウ構成
ツールボックスにはどのビュウを編集するかにより、選択したビュウで利用するエンティティが提示される。ユースケースビュウの場合は、パッケージ、アクタ、ユースケース、関係を表す線、ノート、テキストなどがツールボックスで選択できる。たとえば、ツールボックスでアクタをクリックして、マウスをユースケース図の中に移動して、もう一度、クリックすれば、そこにアクタが配置される。このとき、自動的にNewClassという名前が付与されるので、その場で名前を変更することもできるし、あとで、このアクタを選択してアイコンをダブルクリックしてやると、仕様ウィンドウがポップアップするので、そこで、変更することもできる。ユースケ-スも同様である。アクタとユースケースを関係付けるときには、線をツールボックスから選んで、アクタとユースケースをクリックすればいい。このようにユースケース図を作成するのは非常に簡単でマニュアルは必要ない。
モデルブラウザには、このようにして作成されたモデルにおけるビュウとビュウ要素の階層的な構造が表示されている。さらにモデルブラウザ上でビュウの中のエンティティを選択して別の位置に移動することができる。
たとえば、モデルブラウザでユースケースを選択してマウスの右ボタンをクリックすると、削除や名前の変更、仕様ウィンドウの選択などの操作ができる。また、ユースケース図の下にあるユースケースやアクタをドラッグして、別のユースケース図を選択することにより、ユースケースやアクタを移動できる。定義ウィンドウはビュウで選択したモデル要素や図式に関する定義内容を記述する。ここでアクタやユースケースに対して記述した内容は、仕様ウィンドウに含まれている『アイテムの定義』サブウィンドウの内容にコピーされるし、逆にアイテムの定義で記述した内容はそのまま定義ウィンドウの内容になっていて、両者は同期編集できるようになっている。ユースケーステキストを、ユースケース図の中での関係をみながら簡単に記述できるので便利だと思われる。
また、図式編集ウィンドウには、複数の図式の編集ウィンドウが配置される。たとえば、ユースケースビュウ/Mainで、パッケージを選択してダブルクリックすると対応するユースケース図が表示される。このようにユースケースビュウ/Mainの下にパッケージを置くことによりユースケース図を階層的に構成できるようになっている。ユースケース図の中にパッケージとアクタやユースケースを混在して記述できる。しかし、パッケージだけをまとめて描いておく方がソフトウェアのモデルとしては整理されているように思われるがどうであろうか。ただし、最初から整理された階層的なユースケース図をトップダウンで作成できるわけではないから、ユースケース図の反復的な編集過程では、パッケージとユースケースを混在して描けることが必要になる。仕様ウィンドウは図式編集ウィンドウの中で図式要素をダブルクリックしたときに、1個だけポップアップ表示され、図式要素に関する仕様を提示する。同時に複数のモデル要素に対する仕様ウィンドウは表示できないようである。
■ユースケース作成手順
ユースケースを簡単に作成する手順を説明すると次のようになる。
(1)アクタを抽出する
(2)アクタ間の相互作用に着目してユースケースを作成する
(3)必要があれば、パッケージを用いてユースケース図を階層化する
(4)ユースケーステキストを作成する
図1で示した学会論文誌の編集委員会支援システムに対するユースケース図の作成では、はじめに編集長、編集委員、査読委員、編集係、論文投稿者をアクタとして抽出した。次いで、アクタごとにまず主要な業務を洗い出し、ユースケースを抽出した。このとき、業務名を、次の形式で抽出しておくとアクタとの関係やアクティビティを明確にする上で役に立つ。
[形式]
『アクタ』が『対象』を『動作』する
たとえば、次のような業務がある。
・編集長が編集委員を依頼する
・編集委員が査読委員を依頼する
・投稿者が論文を投稿する
・編集係が論文を受け付ける
・査読委員が論文を査読する
また、次のような例外的な業務についても必要があれば追加する。
・査読結果に対して投稿者がクレームを提出する
・編集委員がクレームへの回答を提案する
学会論文誌の編集委員会支援システムのような比較的、小規模な課題であっても、この段階でユースケースの数は20個になる。さすがにユースケースの数が10個を越えると1枚のユースケース図で管理するのは難しいと思われる。このような場合には、UMLではパッケージを用いてユースケースをまとめて階層化すればよい。