決定ノード

条件に関係なく、あるアクションから次のアクションに移す場合、遷移リンクが必要です。ただし、一連の条件に基づいて複数のアクションに分岐させる場合は、決定ノードを組み込む必要があります。 最も一般的な使用法では、決定ノードはアクションを可能性のあるすべての結果 (他のアクション、サブダイアグラム、終了シンボルを含む) に接続します。決定ノードは、アクション・ノード、サブダイアグラム・ノード、およびイテレーター・ノードと共に使用できます。開始シンボルの後に直接決定ノードを配置しないでください。

一般に決定ノードには最低 2 つの分岐があります。分岐は最大 7 つまで指定可能です。各分岐にはそれに関連する条件があり、その条件によって分岐を採用するかどうかが決定します。
要確認

決定ノードを実装するときには、常に 1 つの条件だけが true として評価されるように条件を定義してください。決定ノードの条件すべてが true にならない場合には、実行時エラーが発生します。

決定ノードの分岐には、以下の 3 つのタイプがあります。

これらの分岐を定義し、その条件を設定するには、図 36 に示す「Decision Properties」ダイアログ・ボックスを使用します。

図 36. 「Decision Properties」ダイアログ・ボックス


決定ノードの各定義済み分岐には、ノードを関連する結果 (アクション・ノードや終了シンボルなど) に接続する遷移リンクを 1 つ設定する必要があります。

図 37 に、決定ノードを使用するアクティビティー・ダイアグラムの例を示します。この例で、決定ノードには 3 つの分岐があります。標準分岐は、条件が true と評価されるとアクション 2 にフローを移します。例外分岐は、JavaException 例外がスローされると終了障害にフローを移します。デフォルト分岐は、標準分岐の条件が false と評価され、JavaException がスローされない場合に、アクション 3 にフローを移します。

図 37. 決定ノードを使用するアクティビティー・ダイアグラム


決定ノードをアクティビティー・ダイアグラムに追加する手順は、以下のとおりです。

  1. ダイアグラム・エディターが開いていることと、決定ノードへフローするシンボルをすでに配置していることを確認します。決定ノードは、アクション、サブダイアグラム、またはイテレーター・ノードにより使用できます。
  2. シンボル・ツールバーの「決定ノード」ボタンをクリックします。
  3. ダイアグラムで、決定ノードを使用するシンボルの下にカーソルを置いてクリックします。ノードがダイアグラムに配置されます。
  4. 決定ノードとそれを呼び出すシンボルの間に遷移リンクを作成します。遷移リンクの作成についての詳細は、遷移リンクの作成を参照してください。

標準分岐の定義

各標準分岐には条件が必要です。これらの条件は、ユーザーがコラボレーション・テンプレートまたはシナリオで定義した変数を使用して作成します。標準分岐を作成するには、まず条件に必要な変数を定義する必要があります。詳細については、テンプレート変数の宣言と編集 (「宣言」タブ)およびシナリオ変数の定義を参照してください。

決定ノードで標準分岐を定義する手順は、以下のとおりです。

  1. Activity Editor で、決定ノード・シンボルをダブルクリックします。「Decision Properties」ダイアログ・ボックスが表示されます。
  2. 作成中の分岐の行で、「タイプ」列のテーブル・セルをクリックし、分岐タイプのドロップダウン・リストから「標準」を選択します。
  3. 「条件」列のテーブル・セルを右マウス・ボタンでクリックし、コンテキスト・メニューから「条件ビルダー」を選択します。
    注:
    「条件エディター」を使用せずに、条件を直接「条件」テーブル・セルに入力することもできます。
    「条件エディター」ダイアログ・ボックスが表示されます。

    図 38. 条件エディター


  4. 「変数名」フィールドで、ドロップダウン・リストを使用して、条件を評価する変数を選択します。このリストには、シナリオで定義済みのコラボレーション変数がすべて含まれています。

    変数を選択すると「データ型」フィールドが自動的に更新されて、変数の型が表示されます (例えば Boolean や String)。

  5. 「演算子」フィールドで、ドロップダウン・リストを使用して、変数の評価に使用する演算子を選択します。リストには、ユーザーが使用している変数の型でサポートされる演算子のみが含まれます。
  6. 「条件」フィールドで、条件に使用する値を入力します。(例えば、hasValue という名前の Boolean 変数を使用している場合、条件を true または false に設定できます。)
  7. 「OK」をクリックして「条件エディター」を閉じ、「Decision Properties」ダイアログ・ボックスに戻ります。
  8. オプションで、「分岐ラベル」テーブル・セルに分岐のラベルを入力します。分岐にラベルを付けると、アクティビティー・ダイアグラムが読みやすくなります。
  9. オプションで、「コメント」テーブル・セルに分岐の説明を入力します。
  10. 「適用」をクリックして、決定ノードに分岐を追加します。アクティビティー・ダイアグラムの決定ノードには、作成したばかりの標準分岐を示す青色の四角が含まれているはずです。

標準分岐を追加したら、遷移リンクを使用してそれを関連する結果に接続する必要があります。

例外分岐の定義

決定ノードで例外分岐を定義する手順は、以下のとおりです。

  1. Activity Editor で、決定ノード・シンボルをダブルクリックします。「Decision Properties」ダイアログ・ボックスが表示されます。
  2. 作成中の分岐の行で、「タイプ」列のテーブル・セルをクリックし、分岐タイプのドロップダウン・リストから「例外」を選択します。
  3. 「条件」列のテーブル・セルをクリックし、例外タイプのドロップダウン・リストから例外のタイプを選択します。
  4. オプションで、「分岐ラベル」テーブル・セルに分岐のラベルを入力します。分岐にラベルを付けると、アクティビティー・ダイアグラムが読みやすくなります。
  5. オプションで、「コメント」テーブル・セルに分岐の説明を入力します。
  6. 「適用」をクリックして、決定ノードに分岐を追加します。アクティビティー・ダイアグラムの決定ノードには、作成したばかりの例外分岐を示す赤色の四角が含まれているはずです。

例外分岐を追加したら、遷移リンクを使用してそれを関連する結果に接続する必要があります。

デフォルト分岐の定義

各決定ノードにはデフォルト分岐を 1 つのみ追加できます。デフォルト分岐の追加はオプションです。

デフォルト分岐を決定ノードに追加する手順は、以下のとおりです。

  1. Activity Editor で、決定ノード・シンボルをダブルクリックします。「Decision Properties」ダイアログ・ボックスが表示されます。
  2. 作成中の分岐の行で、「タイプ」列のテーブル・セルをクリックし、分岐タイプのドロップダウン・リストから「デフォルト」を選択します。
  3. オプションで、「分岐ラベル」テーブル・セルに分岐のラベルを入力します。分岐にラベルを付けると、アクティビティー・ダイアグラムが読みやすくなります。
  4. オプションで、「コメント」テーブル・セルに分岐の説明を入力します。
  5. 「適用」をクリックして、決定ノードに分岐を追加します。アクティビティー・ダイアグラムの決定ノードには、作成したばかりのデフォルト分岐を示す黒色の四角が含まれているはずです。

デフォルト分岐には、条件を指定できません。デフォルト分岐の条件は暗黙的であり、他の分岐に関連するすべての条件が false と評価される場合に true と評価されます。

デフォルト分岐を追加したら、遷移リンクを使用してそれを関連する結果に接続する必要があります。

分岐ロジックにおける例外と条件の結合

分岐は標準分岐または例外分岐のいずれかです。1 つの分岐に両方を設定することはできません。ただし場合によっては、例外が発生し、別の条件が true であるという 2 つの条件が同時に成立する状況にとる実行経路を指定する必要があります。

この組み合わせは、条件式で AND 演算子を使用するのと同じです。

例えば、以下の 2 つの条件をモデル化したいとします。

Exception == JavaException && hasValue == false
 Exception == JavaException && hasValue == true 
 

このような構成をモデル化するには、以下に示すように 2 つのレベルの決定ノードを作成し、これらノードの間にアクション・ノードを作成します。

図 39. 分岐ロジックにおける例外と条件の結合


Copyright IBM Corp. 2004