私は、多くのタスクと多くのタスク間メッセージを含むシステムを設計中です。システムは基本的にCで開発されます。
私のデザインでは、UML 表現を使用して、タスク間で渡されるメッセージを表示しようとしています。しかし、意思決定などを表現することは難しくなっています。
多くのメッセージを使用するタスクベースのシステムのフローチャートを作成するための定義済みの方法はありますか?
UML である必要はありません。この設計に使用できる他の標準的な方法はありますか?
メッセージ フローを文書化するために、ステート マシンとシーケンス図にはそれぞれの役割があることがわかりました。ステート マシンは、システムの状態を変更する決定を記述するのに適しています。シーケンス図は、プロトコルの特定の要素を実装するメッセージを記述するのに適しています。
とにかく内部文書化にDoxygenを使用するのが好きで、 GraphViz ツール dotを使用してコール グラフやその他の図を描画するのが好きなので、状態マシンの文書化に dot を使い始めました。Doxygen にはドット言語をソース コードに直接含めるための構文があるため (さらに、図面内の要素から生成されたドキュメントの他のページへのハイパーリンクを許可することもできます)、これは非常に便利です。最近、Doxygen はmscgenで表現されるシーケンス図を明示的にサポートするようになり、両方のスタイルの図を使用できるようになりました。
ソース コード内で適度に自然な方法で図を直接表現することで、Visio やその他の描画ツールで外部から描画した場合よりも、図を維持する可能性が高くなります。
UML でデザインを表現する場合は、Umbrello というソフトウェアを試してください。これにより、デザインを表現する上で多くの柔軟性が得られます
リアルタイムオペレーティングシステムで作業していることに気付いたので、MARTE(リアルタイム組み込みシステムのモデリングと分析のためのUMLプロファイル)注釈付きのシーケンス図またはステートマシン図を使用します