シーケンス図

仕事で、既存アプリのデバッグをすることになったが。

スレッド間の同期とか、画面更新のタイミングとかが良くなくて、動きが変。

フラグと待機オブジェクトで状態管理してるけどドキュメントがないため良くわからなく。

シーケンス図を起こすことにしたが、ソース43Kあるので、手で作るのはキツイ。

VisualStudio2010だけど、Ultimate版にはシーケンス図作る機能があるので、とりま体験版でさわってみた。

イベントハンドラのコード位置で右クリックすると、

seq001

シーケンス図の生成メニューを選ぶと、生成方法のダイアログがでる。

MONI7-000006

OKで生成される。

seq002

下に長い図の場合、ライフライン名が半透明の見出しで表示される。

seq003

ちなみに、このソースはC#だけどVCでは使えないようだ。

seq004

VCソースだとイベントで右クリックしても生成のメニューが出てない。

結構よくできてる。見慣れれば、解析に役立ちそうだが。

一番見たいフラグの変化が表現されてない・・・

そもそもシーケンス図の役割じゃないのか?

たとえば、

seq005

mFlgの変化するタイミングがみたいけど、図に出てこない。。

プロパティにセットじゃなくて、関数でやらせれば図に出るのかな?

mFlgはSystem.Threading.Monitorでロックしてるんだけど、それも表現されてない。

コメントであとから手で書く?

seq006

これじゃわからんな。

フラグのライフライン追加してそこに書くか?

seq007

まぁ、これでいいか・・・

手で全体図作るよりはるかに楽だしな・・・

やっぱり、状態遷移図も別に必要だろうな。

よく見たら、Invokeでフォームのデリゲート呼んでるとこもForm1まで線が出てないな。

ダメだダメだ・・・

 

%d人のブロガーが「いいね」をつけました。