我正在设计具有许多任务和许多任务间消息的系统。该系统将基本上用C语言开发。
在我的设计中,我尝试使用 UML 表示来显示在任务之间传递的消息。但是,代表决策等事情变得越来越困难。
他们是否有任何预定义的方法来为使用大量消息的基于任务的系统创建流程图?
不必是UML,他们还有什么其他标准方法可以用于这个设计吗?
对于记录消息流,我发现状态机和序列图各有其用处。状态机更擅长描述改变系统状态的决策。序列图更擅长描述实现协议特定元素的消息。
因为无论如何我都喜欢使用Doxygen进行内部文档,并且它喜欢使用GraphViz 工具 dot绘制调用图和其他图形,所以我开始使用 dot 来记录我的状态机。由于 Doxygen 的语法可以直接在源代码中包含点语言(甚至允许从绘图中的元素到生成的文档的其他页面的超链接),这非常方便。最近,Doxygen 增加了对用mscgen表示的序列图的明确支持,允许使用两种样式的图。
与在 Visio 或其他绘图工具中外部绘制的情况相比,直接在源代码中以合理自然的方式表达图形使它们更有可能被维护。
如果您在 UML 中表示您的设计,请尝试使用名为 Umbrello 的软件。这为您提供了很大的灵活性来表示您的设计
使用带有 MARTE 的序列图或状态机图(用于实时嵌入式系统建模和分析的 UML 配置文件)注释,因为我注意到您正在使用实时操作系统