掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     相互呼び出しで活性区間が発生しない


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2005-7-19 14:35

相互呼び出しで活性区間が発生しない

 本日、EA Proを購入しました。コストパフォーマンスが高い製品だと感じています。
 シーケンス図でオブジェクト間の相互呼び出しの記述でお尋ねします。Object1のメッセージAを処理中にObject2のメッセージBを呼び出し、さらにその最中にObject1のメッセージCを呼び出す場合に、メッセージCの活性区間はメッセージAの右側に追加されることを期待したのですが、活性区間が発生しません。
 メッセージC実行中にさらに別のメッセージ呼び出したとき、出来上がった図を見ると、そのメッセージはCを実行中に呼ばれるのに、C,Bが終了してAに戻ってから呼ばれるように見えてしまいます。
 上記の場合にメッセージCの活性区間を発生させるにはどのようにすればよいでしょうか。
 UML2.0を使用しています。
tkouno
投稿日時: 2005-7-20 16:07
EA Administrator
投稿: 3939

Re: 相互呼び出しで活性区間が発生しない

ご質問の件、大変申し訳ございませんが
現在は表現することができません。

技術的な点で問題があり、開発元と可能かどうか検討させていただきます。
(Enterprise Architectではある程度自動で活性区間の表示を
行っており、その点の変更が可能か、検討いたします。)

高いご評価を頂いているにも関わらず
ご要望にお応えすることができず、申し訳ございません。

今後ともよろしくお願いします。
未登録ゲスト
投稿日時: 2005-7-20 18:06

Re: 相互呼び出しで活性区間が発生しない

 ご回答ありがとうございます。
 自己呼び出しが表現できるので、相互呼び出しも表現できるのではないかと思っていたのですが。とりあえずNoteで対応します。
 自動で活性区間を表示するという仕様は納得できるものです。もし今後、相互呼び出しの活性区間の表示が実現するなら、トポロジー的には活性区間は必ず発生するので、自動表示の枠組みを崩さないで良いような気がします。
 Judeと比較してみるとカバーする範囲がまったく異なりますしUML2.0対応になっているのがよいですね。今のプロジェクトではDelphiを使用していますが、リバース・フォワード機能は重宝します。図を描いて設計(→フォワード)→コーディング→リバースという感じで使っています。
未登録ゲスト
投稿日時: 2005-7-20 21:38

Re: 相互呼び出しで活性区間が発生しない

 別の場合として、メッセージを2つ以上連続して送る場合を試してみました。
 Object3からObject4にむかって、同期メッセージD,Eと連続して送った場合、Object4上の活性区間はDとEの2つが発生するはずですが、EAでは戻りメッセージをつけない限り2つの活性区間がくっついてしまいます。この場合は別に困ることがないのですが、このあたりの仕様が、相互呼び出し時の活性区間の発生を難しくしているのかなと思いました。
 シーケンス図というモデルのとらえ方の問題でしょうか。
tkouno
投稿日時: 2005-7-22 14:12
EA Administrator
投稿: 3939

Re: 相互呼び出しで活性区間が発生しない

ご指摘ありがとうございました。

Enterprise Architectは活性区間を自動的に計算しているので
現在のところ自由度が低いのは事実かと思います。

このあたりの改善も5.1に盛り込めるかどうか、今からだと
間に合うかどうかわかりませんが、ちょっと掛け合ってみます。


なお、上記の件につきましては、ローカルオプションダイアログの
「戻りメッセージの推測」にチェックを入れることで改善できますので
ぜひお試しください。

(この部分でヘルプファイルの内容が間違っているのを見つけました。
修正いたします。)

未登録ゲスト
投稿日時: 2005-7-22 20:30

Re: 相互呼び出しで活性区間が発生しない

 「戻りメッセージの推測」で活性区間が分かれました。ありがとうございました。でも非同期・シグナルにしても分かれてしまいますね。
 編集機能はJudeに比べて操作操作しやすいと思いました。Judeの場合は出来上がったシーケンス図を編集するのが大変でしたので。
tkouno
投稿日時: 2005-7-28 16:36
EA Administrator
投稿: 3939

Re: 相互呼び出しで活性区間が発生しない

現在のところ、非同期メッセージかどうかというのは
内部の処理には影響していません。

もちろん、さまざまな条件を考えて最適に構成できると
うれしいのですが、自動レイアウト機能と同じく
本当に人間が求めているものを生成するのは難しいと思います。

ただ、このあたりも可能な限り改善したいと思っていますので、
「この場合は必ずこうなる」という表現があれば、ぜひ
ご教授いただけると助かります。

よろしくお願いします。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ