生成操作を開始するには、ダイアグラムまたはモデル要素を右クリックして、「UPIA モデリング」メニューから以下の 2 つのコマンドのいずれかを選択します。
アーキテクチャー・モデル内のオペレーショナル・ドメインには、2 つの論理オペレーショナル・ノードの間の接続 (それぞれ対応する機能を実現するために受け渡しまたは交換される情報を表す) の概念が含まれています。 オペレーショナル・ドメインにおいて、それらの接続は「情報交換」と呼ばれます。 それぞれの交換には、1 つ以上の搬送される情報 要素があります。 また、各交換の方向により、渡される情報のプロデューサーおよびコンシューマーが特定されます。 システム・ドメインの中で、システム間で受け渡しされるデータ要素は、モデルの中ではデータ交換によって表されます。 情報交換とデータ交換は両方とも UML 情報フロー要素によってモデリングされ、渡される情報要素は情報フローの「搬送」プロパティーによって特定されます。
2 つのオペレーショナル・ノード間にある単一のニードラインの関連によって、これらのノード間の複数の情報交換を表すことができます。 同じように、同じ 2 つのシステム間にある単一のシステム・インターフェースの関連によってそれらのシステム間の複数のデータ交換を表すことができ、 また、2 つの実行者の間のリソース・フロー関連によりそれら同じ 2 つの実行者の間の複数のリソース交換を表すことができます。
統合アーキテクチャー・モデリングでは、相互 作用メッセージやアクティビティー・オブジェクト・フローなどのより具体的な UML 構成体によって、単一の交換抽象化を実現または洗練することができます。 このどちらの構成体でも、あるドメイン要素から別のドメイン要素に渡される情報またはデータを定義できます。
UPIA の生成ツールでは、モデル内の、 オペレーショナル・ノード間またはシステム間の交 換を定義するメッセージやオブジェクト・フローなど の UML 構成体をスキャンして、適切な情報交換要素ま たはデータ交換要素を作成することができます。 次に、生成操作を実行してモデル内の交換要素をスキャンし、適切なニードラインまたはシステム・インターフェース要素を作成できます。
UPIA モデルを作成する際、作業の進め方として、以下の 2 つの基本的な選択肢があります。
トップダウン・モデリング手法では、まず、論理モデル内のコミュニケーション・ニーズを表すニードラインや情報交換などの抽象構成体を定義します。 洗練プロセスの進行に合わせて、抽象交換の具体例を示すシーケンス図およびアクティビティー図を作成できます。
交換、リソース・フロー、ニードライン、およびシステム・インターフェースを手動で作成した場合、UPIA プロファイルの制約によって、ユーザーは、これらの抽象要素とそれらの実現メッセージ (タスクを呼び出す) の間の相互参照、およびこれらの抽象要素とオブジェクト・フロー (操作情報またはシステム情報を表す) の間の相互参照を定義する必要があります。 UPIA モデル用の生成ツールを使用すると、新規要素が作成された場合、または既存要素が見つかった場合に、これらの相互参照が設定されるようになります。 トップダウン手法では、生成ツールによって具象実現が探し出され、既存の抽象交換要素内の相互参照が更新されます。 生成ツールではまた、新規交換が生成されたかどうかを通知することができます。これにより、洗練プロセスを実行する前に、トップレベルのモデルが完成していない可能性があることが示されます。 同じように、生成では、交換の検出後にリソース・フロー、ニードライン、およびシステム・インターフェースを更新し、要素が欠落しているには新しい要素を作成できます。
ボトムアップ・モデリング手法では、モデリング対象のアーキテクチャー用に指定されたユースケースを詳述するアクティビティー図およびシーケンス図を作成します。 次に、これらの具体的なコミュニケーション・ニーズを交換へと抽象化し、さらにそれらをリソース・フロー、ニードライン、およびシステム・インターフェースへと抽象化します。 交換、フロー、ニードライン、またはシステム・インターフェースを手動で作成する必要はありません。 適切な生成コマンドを選択すると、これらの項目が、設定および必要な相互参照とともに自動的に作成されます。
アクティビティーでは、«Operational Information Flow» または «System Information Flow» というステレオタイプが適用された UML オブジェクト・フローによって交換が定義されます。対応するアクションは、それぞれ、オペレーショナル・タスクおよびシステム・タスクの操作呼び出しアクションです。 これらの操作呼び出しアクションの入力ピンおよび出力ピンは、そのタスクのパラメーター・タイプ (情報要素またはデータ要素) に対応します。
例えば、2 つのオペレーショナル・ノード OpNodeA および OpNodeB があり、OpNodeB に 2 つのパラメーター (InfoElementX タイプの入力パラメーターと InfoElementY タイプの戻りパラメーター) を持つ「doThis」というオペレーショナル・タスクが含まれているとします。 オペレーショナル・イベント・トレースを表す相互作用が存在する場合、そのシーケンス図には、それぞれ OpNodeA および OpNodeB に対する 2 つのライフラインがあり、OpNodeA から OpNodeB への同期タスクの呼び出しを表すメッセージは、実際には 2 つの情報交換を定義しています。 1 つ目の InfoElementX が A から B に渡され、2 つ目の InfoElementY が B から A に返されます。したがって、この単一の相互作用メッセージを使用して、2 つの情報交換を生成することができます。

同様に、OpNodeA に InfoElementX タイプの出力パラメーターを持つ「doThat」というオペレーショナル・タスクがある場合は、オペレーショナル・アクティビティー図でも情報交換を定義できます。 この場合、アクティビティー図には、OpNodeA::doThat と OpNodeB::doThis という 2 つの操作呼び出しアクションが含まれます。 OpNodeA アクション上の InfoElementX 出力ピンから OpNodeB アクション上の対応する入力ピンへのオペレーショナル情報フロー・コネクターを表す UML オブジェクト・フローでも、OpNodeA と OpNodeB の間の情報交換が定義されます。

生成ツールでは、タスク呼び出しを表すメッセージ、およびオペレーショナル情報フローを表すアクティビティー・オブジェクト・フローを検索して、対応する情報交換を生成します。
情報交換、データ交換、またはリソース交換の生成時、ステレオタイプが適用された UML 要素のさまざまなプロパティーが設定され、交換される対象や交換の実現が指定されます。 情報交換とデータ交換は、いずれも、あらゆるタイプの交換に共通の複数のプロパティーを定義するリソース交換を特殊化したものです。 同じように、ニードラインとシステム・インターフェースは、リソース・フローを特殊化したものです。
以下の表に、交換生成の実行時に変更が加えられる UML 情報フロー要素の交換プロパティーおよび «Resource Exchange» ステレオタイプ・プロパティーを示します。
| プロパティー | 説明 |
|---|---|
| ソース | 交換されるデータのプロデューサーに対応する要素が含まれます。 |
| ターゲット | 交換されるデータのコンシューマーに対応する要素が含まれます。 |
| 搬送 | 交換のターゲット要素からそのソース要素に渡された情報要素またはデータ要素のリストが含まれます。 |
| 実現メッセージ (RealizingMessage) | この交換に対応するすべてのタスク呼び出しメッセージに対して設定されます。 |
| 実現アクティビティー・エッジ (RealizingActivityEdge) | この交換に対応するすべてのオペレーショナル情報フローまたはシステム情報フロー (UML オブジェクト・フロー) に対して設定されます。 |
| 実現 | 2 つの同じ要素の間のこの交換および類似の交換を表すリソース・フロー、ニードライン、またはシステム・インターフェース関連に設定されます。 |
| ConsumingTask (リソース交換) | 相互作用メッセージまたはアクティビティー・オブジェクト・フローから交換が作成される場合、ターゲット操作は、その交換の消費タスクです。 |
| ProducingTask (リソース交換) | 相互作用メッセージまたはアクティビティー・オブジェクト・フローから交換が作成される場合、ソース操作は、その交換の生成タスクです。 相互作用メッセージの場合、ソース操作は、そのメッセージを開始したソース・ライフラインに対する実行ブロックに基づいて決定されます。 場合によって、この生成タスクを決定できないこともあります。 |
リソース・フロー (関連) 生成が実行されると、各リソース・フローの Exchanges プロパティーは、そのリソース・フロー、ニードライン、またはシステム・インターフェースが作成される原因となった、対応するリソース交換、情報交換、またはデータ交換に設定されます。 フロー関連が既に存在している場合、Exchanges プロパティーは、それに応じて更新されます。
2 つのオペレーショナル・ノード (OpNodeA および OpNodeB) を含む UPIA モデルがあり、OpNodeB に 2 つのパラメーター (InfoElementX タイプの入力パラメーターと InfoElementY タイプの戻りパラメーター) を持つ「doThis」というオペレーショナル・タスクが含まれているとします。 オペレーショナル・イベント・トレースを表す相互作用が存在する場合、そのシーケンス図には、それぞれ OpNodeA および OpNodeB に対する 2 つのライフラインがあり、OpNodeA から OpNodeB への同期タスクの呼び出しを表すメッセージは、実際には 2 つの情報交換 (一方では A から B に InfoElementX が渡され、もう一方では B から A に InfoElementY が返されます) を定義しています。
このモデルに対して情報交換が生成されると、シーケンス図がスキャンされ、以下の要約出力が生成されます。
交換が生成された場合、ソース要素とターゲット要素が同じで、かつ、搬送される要素のリストが同じである場合には、その同じ交換が使用されます。 上の例で、OpNodeB に 2 つのオペレーショナル・タスクがあり、一方の操作には InfoElementX タイプの入力パラメーター、もう一方の操作には 2 つの入力パラメーター (InfoElementX タイプと InfoElementY タイプ) があるとします。 OpNodeA から OpNodeB に 2 つのタスクが呼び出されると、B の各オペレーショナル・タスクに対して 1 つの呼び出しが実行され、A から B に 2 つの別々の交換 (InfoElementX を渡す交換と、InfoElementX と InfoElementY を渡す交換) が作成されます。 これらの交換は、一方では単一の情報のみが必要であり、もう一方では 2 つの情報が必要であるため、異なっています。
この例における情報交換の生成のほか、生成ツールでは、既存の情報交換に基づいたニードラインを生成することもできます。 これが生成された場合、2 つの同じオペレーショナル・ノード間におけるすべての交換は、単一のニードラインの関連で表されます。 すべての交換の方向が同じである場合、ニードラインは有向関連になります。 交換が双方向に行われる場合、生成されるニードラインは双方向関連になります。 また、オペレーショナル・ノード・パーツ間に «Needline» というステレオタイプが適用されたコネクターがある場合、対応するオペレーショナル・ノード間に双方向ニードライン関連が作成されます。
リソース・フローとシステム・インターフェースは、常に双方向関連として作成されます。