ObjectSquare [1999 年 8 月号]

[オブジェクト指向モデリング言語 UML]
   - 情報処理 VOL.40 NO.1, NO.3より -


UMLダイアグラム

システム要求定義のためのダイアグラム

(1)ユースケース図(Use Case Diagram)

ユースケースとは,システムの利用のしかたをシステム外部の視点から記述したもので,システムの利用者のタイプ(すなわちアクタ)と併せて記述する.システムに対する要求を,ユースケースという単位でカプセル化し,ユースケースと分析モデル,設計モデルをトレースすることで,システム要求から分析,設計,実装,テストといった一連の作業を関連付けて管理できる.したがって,ユースケースは,要求フェイズのみならずシステム開発の全行程で利用できる.

アクタを人型シンボルで,1つのユースケースを実線の楕円形で表す.

ステレオタイプが,ユースケース間の関係の分類にも適用されており,3種類のユースケース間の関係が一般の関係のサブカテゴリとして定義され,それぞれ次のようなキーワードラベルで区別される.

・《communicates》:アクタとユースケースとの相互作用を示す.

・《uses》:ユースケースの内部で別のユースケースのインスタンスを呼び出して使用する関係を示す.サブルーチン呼出しのように,利用する側のユースケースから共通ユースケースに白抜きの三角矢印を引く.ただし,この関係に汎化と同じ記号を使うことに以前から批判があるが,UMLの次の版では改められる予定.

《extends》:一般的なユースケースとそのバリエーションや例外を与えるユースケースとの関係を示す.特殊なケースのユースケースから汎用のユースケースに汎化の白抜きの三角矢印を引く.

図-8 ユースケースの例

(2)アクティビティ図(Activity Diagram)

アクティビティ図は, Odellらのイベントスキーマ図とオブジェクトフロー図に影響を受けてUML1.0から新たに導入されたもので,ワークフローを表現するために用いる.アクティビティ図は,ひとまとまりの業務や処理を表すために関連する複数のアクティビティを時間的に順序だてて表現する.アクティビティは業務や処理を構成する1単位に相当し,状態の1種と見なされる.アクティビティの粒度は相対的である.人間のタスクにも,システムの1機能(つまり1ユースケース)にも,1メソッドの実行にも対応する.アクティビティ図を特定業務や組織のビジネスフローの記述に使うこともできれば,あるシステムの1つのユースケースに対応する処理フローの記述や,あるオブジェクトのもつ1メソッド内部のアルゴリズム記述に使うこともできる.

ラウンドボックスでアクティビティを表し,その中にアクティビティの名前を記し,アクティビティ間を矢印で繋ぐことで作業の順序を表す.ある条件を満たさないと次のアクティビティに移行できない場合は,矢印にガード条件を付け,条件判断は特殊なアクティビティと見なすことができ,ひし形図形で表わす.また太いバーによってそこに入力するすべての遷移の同期を表現し,そこから複数の遷移が出力される場合,それらの並行性を表す.

図-9 アクティビティ図の例

アクティビティ図は状態図の特殊形である.すべての状態にアクションが張り付き,前の状態におけるアクションの終了がトリガとなって状態遷移が起こるような特殊な状態図だと考えればよい.したがって,始状態,終状態には状態図と同じ記号が使われる.

アクティビティ図に「レーン」を設定することができ,これによって,各アクティビティの実行責任主体を明示できる.さらに各アクティビティ間での成果物つまりオブジェクトのやりとり(オブジェクトフローと呼ぶ)も明示できる.したがって,アクティビティとオブジェクトフローを使って,DFD(データフロー図)の代用が可能である.

また,アクティビティ図内で明示的にシグナル送信とシグナル受信を記述することができ,どちらもアクティビティ間の遷移に割り付けられた送信シンボル(片側に三角形が突き出た記号),受信シンボル(片側が三角にくぼんだ記号)で表す.シグナルの流れそのものは送信シンボルから受信シンボルへの破線矢印で表現する.

このようにアクティビティ図は,フローチャートやデータフロー図の流れをくんだ,どちらかというと手続き指向のダイアグラムである.適切な利用を心掛けないとオブジェクト指向との整合性で問題が出る可能性がある.典型的な利用例は,ビジネスやシステムの大局的なワークフローの記述,および複雑な手続き的アルゴリズムの記述あたりだろう.


© 1999 OGIS-RI Co., Ltd.

Prev.

Index

Next