掲示板一覧 - トピック一覧 Enterprise Architect 全般
シーケンス図で実行仕様とメッセージグループ |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | トピック |
|---|---|
| 未登録ゲスト | 投稿日時: 2007-10-30 18:33 |
シーケンス図で実行仕様とメッセージグループ1)
シーケンス図で次のようなシーケンスを表現したいのですが、 実行仕様を続けることと、メッセージグループを新規にすることを両立させることができずに困っています。 (番号は振りたいメッセージ番号です) 1.0 Object1からObject2に同期メッセージが飛ぶ 1.1 Object2からObject3に同期メッセージが飛ぶ 2.0 Object3からObject2に同期メッセージが飛ぶ このとき、1.Xの実行仕様は生きたまま(Object2は1.1の応答待ちになります) 2.1 Object2からObject4に同期メッセージが飛ぶ (以下略) 2.0にするため「新規メッセージグループの開始」を行うと実行仕様は切断されてしまいます。2.0にしたメッセージの「送信元の実行仕様を上に延長」しても同じです。 また、意味的にはObject3にて2.X系のメッセージの実行仕様は1.X系の実行仕様の上に重なって欲しいのですが、それも実現する方法が見つかりません。 2) 同じように、以下のシーケンスで実行仕様が切断されて困っています。 2.6 2.0(同期メッセージ)の戻りメッセージがObject3からObject2に飛ぶ 2.7 Object2からObject3に非同期メッセージが飛ぶ この非同期メッセージは2.6のACKになるので実行仕様はここまで同一にしたい 何か設定等見落としていますでしょうか? |
|
| tkouno | 投稿日時: 2007-10-31 10:01 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: シーケンス図で実行仕様とメッセージグループ頂きましたご質問に回答させていただきます。
まず、シーケンス図の番号についてですが Enterprise Architectでは、番号が増えるということは 新しい処理になるという前提があり、同じ処理内で 番号が変わる(今回は1.xから2.xに変わる)ことは 想定していませんでした。 そのため、番号が変わる前後では強制的に実行仕様を 切断しています。この点は、投稿の中にある方法では 対応することはできないと思います。 この点はご要望に沿えず申し訳ございません。 それ以外の点について、意識あわせのために シーケンス図を作成してみました。 お手数をおかけし申し訳ございませんが、この内容について ご希望の点との相違をお知らせください。 (シーケンス番号は、上記のようにEnterprise Architectの機能では ご希望を満たすことはできませんので、メッセージの名前として 手作業で入力しています。) |
| 未登録ゲスト | 投稿日時: 2007-10-31 11:38 |
Re: シーケンス図で実行仕様とメッセージグループまず1点、お詫びいたします。投稿した2.7の向きが逆でした。
申し訳ありませんでした。 メッセージ番号の件は理解しました。 今回やろうとしたことは、 ・ある処理A中(Object1とObject2が関係する)に、 ・別の処理Bが起動する(Object2とObject3,4が関係する) ・処理Bは処理Aより優先度が高いため処理Aがサスペンドになる という状況を記述しようとしました。 このような状況は想定していない、という理解です。 今後もこのような状況には対応しない、ということであってますでしょうか? 次に作成していただいた図との相違点ですが ・(前述のとおり)2.7の向きが逆 ・2.6の後にある番号なしメッセージ(Object2←Object3)は存在しない ・Object1←Object2の番号なしメッセージは2.7のメッセージの後 ・2.6と2.7のメッセージは同じ実行仕様にのせたい 以上です。 わざわざ図を作成していただいてありがとうございます。 もう少し、ご面倒をおかけいたします。 |
|
| tkouno | 投稿日時: 2007-10-31 13:09 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: シーケンス図で実行仕様とメッセージグループまず1点誤解されているかもしれない点について
念のため補足いたします。 mamoさんが想定されているような割り込みの処理自体は (特に組込みの機器において)一般的なものであり 例外的なものではないと思います。 Enterprise Architectが想定していないのは、番号の振り方の ルールについて、です。今回の場合であれば、EAの持つ自動で番号を振る機能を 利用することはできないということになります。 この点について、誤解されているかもしれないと文面から感じましたので 補足いたします。 なお、このような複雑なシーケンスをどのように表現するか、という点については 明確・一意なルールはありません。UMLは表現記法なので、 ある状況をどのように表現するか、については 一意に定まらない場合もあります。 例えば、今回の例で言えば、1.1の処理中に割り込みで 2.0の処理が発生するということになり 1.1の実行がサスペンドするということでした。 この場合、1.1の処理がサスペンドしているわけですから 実行仕様が切れる(処理が行われていない)と表現することも 可能かと思いますし、ご希望のような2段構成で 実行仕様を表現する(切れないことで、実行が完全に終了している わけではなく、継続していることを暗に示す)ことも ありえると思います。 UML仕様書の14.3.19章には「メソッドの活動を表現するため、 生存線の線を覆ううすい灰色か白の矩形を使用する」 (日本語訳※より引用:655ページ)とありますので、この内容を 文字通り解釈すると、サスペンドしている部分は 実行仕様が存在しないという表現が可能と考えました。 (サスペンド=活動していない、という解釈です。) ※:「UML2.0仕様書 2.1対応」 オーム社 |
| 未登録ゲスト | 投稿日時: 2007-10-31 15:04 |
Re: シーケンス図で実行仕様とメッセージグループ度々ありがとうございます。
一般的には仰るとおりの書き方が正しいのかもしれません。 ただ、自分が書いているダイアログの場合のは、サスペンドは「活動していない」のではなく「待機している」というニュアンスが適切なので、質問させていただきました。 添付された図のような書き方では、1.0のメッセージに付随する生存期間が正しく表現できていない、という指摘をドキュメントの受領側から受けているため、何とか上手く表現したいと思っています。 # とりあえず、今回はダイアログをイメージ保存しPaintでいじってしまおうと思います(^^; |
|
| tkouno | 投稿日時: 2007-10-31 15:17 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: シーケンス図で実行仕様とメッセージグループお力になれず申し訳ございません。
その後もいろいろと試していたのですが 現時点では、ご要望の結果となるような描画は不可能と思われます。 (実行仕様を2階層にするには、自分へのメッセージを 送信した人へメッセージを送信するしかない制約があります。) この点に限らず、もう少し柔軟なシーケンス図の作成については 機能強化要望として検討いたします。 (現在のような、意味を考慮した制約をなくし、どのような 状況においてもEnterprise Architectが持つ調整機能を 呼び出せるようなオプションの追加になるのでしょうか) 技術的(内部的)に可能かどうか現時点では判断できませんが ご提示のような割り込みが多い場合には役に立つモードかと 思われます。 このたびはご要望に沿うことができず 申し訳ございません。 今後ともよろしくお願いします。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




