マルチスレッド アプリの動作をモデル化したい。多くの同期があります (ManualResetEvents など)。シーケンス図を使用しようとしましたが、便利な同期の視覚化がないようです。では、そのような種類のタスクでどのような図を使用する必要があるのでしょうか?
3 に答える
UML アクティビティ図とこの記事の図の両方を使用しています。
編集
少しの経験を共有するために、これらの図がマルチスレッドに関するすべての設計上の問題を解決するとは思わないでください。マルチスレッド システムの単体テストが難しいのと同じ理由で、図を描くことも困難です。たとえば、6.45.Vapuru の回答で言及されている図を見てください。はい、レイヤーの同時実行を示しています。これは、潜在的なエラーを特定するのに役立ちますが、Web サイトの複数の同時クライアントを表示しようとすると、この図がどのように見えるかを視覚化してみてください。それは非常にすぐに混乱します。できないと言っているわけではありませんが、考えられるバリエーションの数が非常に多いため、正しく行うには多くの労力が必要です。
これは、マルチスレッド化が難しい理由を理解するのに役立つ良い例です。絵が描けなければ、おそらくその複雑さを完全には把握できず、テストすることもできず、何かを忘れてしまったというしつこい感覚を常に持っているでしょう。
だからこそ、私はプラットフォームと言語にこれらの問題を取り除くことを望んでいますが、まだそこには達していません.
重要なオブジェクトがタイミングの制約で相互にメッセージをやり取りしている間に、これらの状態の変化を調べたい場合は、UML 2タイミング図を使用できます。
http://www.uml-diagrams.org/timing-diagrams-examples.htmlサイトで簡単なタイミング図の例を確認できます[ Web サイトのレイテンシ ]