V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Ayahuasec
V2EX  ›  问与答

求推荐软件,用于方便的绘制详细的数据流图

  •  
  •   Ayahuasec · 2023-07-30 14:05:48 +08:00 · 711 次点击
    这是一个创建于 461 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近参与一个稍微大一点的 C++工程,里面涉及很多模块之间的连接和数据传输,需要整理清楚。我之前一直是写 VHDL 的,用的设计软件有原理图功能,所以可以比较容易弄懂数据的连接和流通,便于调整和修改设计。但是其他语言的工程好像不太有现成的软件可以直接生成数据流图了,现有的数据流图画图工具感觉画出来的图都比较简易,不太容易画出那种能精确到每个单独数据的名称和类型的具体的图,也就是类似下面 Quartus 原理图的这种:

    https://www.researchgate.net/figure/QUARTUS-schematic-bloc-of-the-INC-Fuz-command_fig11_337004268

    大概总结一下需求,其实就是可以比较方便地把模块画成一个方框,方框上显示模块名和配置参数之类的信息,然后输入输出变成方框上的端口,输入输出的名字、类型也一起标注在端口边上。然后模块和模块之间的数据传递就是图里面的连接线,并可以标注箭头说明方向。周围可以插入一些附注做笔记。另外连接线的颜色可以修改,便于交叉比较多的时候用作区分。并且模块的信号名称、数量可以比较方便地调整。

    如果能有 Highlighting 的功能就更好了,就是可以选中一个连接线网络并将其高亮的,或者类似 Cadence 原理图这样的:

    https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/35225/net-highliting-with-bindkey

    目前我是用 Visio 在画这样的数据流图,能画清楚并且画出满足需求的图。因为工程文档里只有总体设计文档和简易框图,和没画数据流图之前比起来,和其他人交流具体设计或者要做需求变更的时候确实方便了很多,节省了很多沟通时间成本,做实现的时候也有了一个比较具体的参考。

    但是感觉 Visio 操作起来比较繁琐,就理清几个模块和画图就花了一下午时间,感觉节省的沟通时间成本和设计实现中的时间成本全变成画图时间成本了。而且 Visio 的连接线的高亮选中不是很明显,线连多了以后就密密麻麻的不容易看清楚,所以想找找其他方便一些的软件,节省画图的时间。但是找了一圈实在没找到合适的,所以来问问 V 友有没有用过类似的值得推荐的软件,开源的、免费的、收费的都可以。
    4 条回复    2023-07-31 19:03:23 +08:00
    dioxide
        1
    dioxide  
       2023-07-30 22:24:33 +08:00   ❤️ 1
    StarUML ?
    Num6
        2
    Num6  
       2023-07-31 11:13:27 +08:00   ❤️ 1
    Ayahuasec
        3
    Ayahuasec  
    OP
       2023-07-31 19:01:46 +08:00 via Android
    @dioxide 多谢推荐,看了一下这个软件功能比较多,我抽空学习一下看能不能方便地做我这种需求的图
    Ayahuasec
        4
    Ayahuasec  
    OP
       2023-07-31 19:03:23 +08:00 via Android
    @Num6 多谢推荐。我大概看了下,好像这几个都是前端设计用的库?我没写过前端,要用起来可能还得学一下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   986 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:19 · PVG 04:19 · LAX 13:19 · JFK 16:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.