掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     アクティビティ図のフォークに関する記述方法


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
sugimoto
投稿日時: 2007-3-20 10:36
EA Administrator
投稿: 1895

アクティビティ図のフォークに関する記述方法

○ご質問

アクティビティ図について教えて下さい。

2レーンに、同期待ち部とスレッド部を定義しています。
スレッド部処理にはイベント発火による待機側解除への矢印と後処理への
矢印の2つを書きたいと考えています。
しかし、2つの矢印をフォークから引こうとすると、待機解除へは引けないので、
直接イベント発火から2本矢印を引きました。

1) UML2.0記述法で、アクティビティから複数の矢印を引いた場合は
 フォーク機能と理解してよいのでしょうか。
 
2) フォーク/ジョインからは、イベント処理系(発火、待機)へは
 直接矢印は引いてはいけないのでしょうか。
  

○回答

まず言葉の認識が間違っている可能性がありますので、確認させてください。

「イベント発火」とは送信イベントを指していますでしょうか?
また「待機側解除」は受信イベントを指していますでしょうか?

上記と仮定して回答させていただきます。

1)
UML2.0において明確な記述はされていないようですが、フォークから
複数の矢印を引いた場合は、「同時並行的」に処理が行われることを
示しますので、アクティビティからの場合は、同時並行的であることが
示せなくなると思います。

2)
UML2.0によると、フォークやジョインはアクティビティの並行性をサポート
するために導入され、入力および出力はオブジェクトフローまたはコント
ロールフローのどちらかでなければならないとありますが、送信イベント
や受信イベントへの接続は禁止されてはいないようです。

EAでは、現状、クイックリンクによりフォークから送信イベントへ
コントロールフローやオブジェクトフローを引くことはできませんが、
ツールボックスでコントロールフローやオブジェクトフローを選択した
場合は、引くことができます。

クイックリンクの動作につきましては、確認いたします。
未登録ゲスト
投稿日時: 2007-3-21 12:37

Re: アクティビティ図のフォークに関する記述方法

1) について誤解されているようです。

アクション→フロー(n個)と、アクション→フォーク→フロー(n個)は同義です。
UML2.0 Superstructure versionのActionのSemanticsにも書かれています。
# 手元に仕様書がないので原本から引用します。
When completed, an action execution offers object tokens on all its output pins and control tokens on all its outgoing control edges (implicit fork),

質問の例であれば、「イベント発火」シグナル送信アクション?から「待機側解除」イベント受領アクション?と「後処理」アクション?への制御フローを記述しても、フォークを使っていることと同じ意味になります。

ちなみに、周りの人にはフォークやジョインを使わずにアクションとフローだけで書くように薦めしています。
アクションとフローは読み手に意味を説明しなくても両方とも処理するものと解釈してもらえます。
しかし、フォークやジョインは読み手に説明して理解してもらえないだけでなく、これらが邪魔して本来説明したかったことが目立たない図になってしまいます。
フォークやジョインを使うのは、並行処理や同期を強調したい場合や使わないと表現できないことがある場合に限るといいかもしれません。
sugimoto
投稿日時: 2007-3-22 10:58
EA Administrator
投稿: 1895

Re: アクティビティ図のフォークに関する記述方法

ご指摘いただきましてありがとうございます。

UML仕様書を再度確認しました。ご指摘どおり、アクションは暗黙的なフォークの
意味合いがあり、アクション→フロー(n個)と、アクション→フォーク→フロー(n個)は
同じということですね。

また、フォークやジョインにつきましても、設計の現場での事情を盛り込んで
説明していただき、お薦めの使用方法について納得しました。


今回のようなツールの使い方以外のご質問につきましては、サポート外と
言い切ってしまわず、弊社でのできる限りの対応をしていきたいと考えております。
ただ、今回のように明確な回答ができていない場合もありますので、ご指摘いただきますととても助かります。

どうもありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ