振る舞いをUMLで表現する − アクティビティ図ここから始めるオブジェクト指向(最終回)

» 2003年05月31日 12時00分 公開
[河合昭男(有)オブジェクトデザイン研究所 ]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 UMLの2種類の動的モデルについて「振る舞いをUMLで表現する」というテーマで、「第6回 振る舞いをUMLで表現する−相互作用図」は2つの相互作用図(シーケンス図とコラボレーション図)、「第7回 振る舞いをUMLで表現する−ステートチャート図」はステートチャート図の説明をしました。今回はアクティビティ図について説明します。相互作用図やステートチャート図を描くにはオブジェクトが必要ですが、アクティビティ図を描くのにクラスやオブジェクトは不要です。

 前回宿題として挙げておきました「弁当作成」の第3のモデルを考える前に、UMLのアクティビティ図について弁当作成の例題で説明します。

アクティビティ図

 アクティビティ図は処理の流れを表現するのに使用し、フローチャート図と似ています。お母さんが弁当を作成する手順は大きくは、「(1)材料を準備する」「(2)弁当を作る」という2つのステップからなります。アクティビティ図で表現すると図1のようになります。黒丸で表された開始点からスタートし、(1)、(2)のアクティビティを順番に実行して終了します。アクティビティは何かの処理を行っている状態です。処理が終了すると次のアクティビティに遷移します。

ALT 図1 アクティビティ図

並行処理

 アクティビティ図がフローチャートと異なる特徴は、並行処理が記述できることです。「(1)材料を準備する」には次の2つの作業が含まれます。

  • a ご飯を準備する
  • b 卵焼きを準備する

 この2つは並行処理が可能です。実際は1人で行うので同時並行ではないですが、どちらを先に行っても構いません。並行処理を表す「同期バー」を用いて図1図2のように表現することができます。

ALT 図2 並行処理

 同期バーには並行処理を開始する“fork”と、並行処理を終了する“join”があり、どちらも太線で表します。“join”につながるすべてのアクティビティが終了すると次のアクティビティに遷移します。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ