代码可视化工具调研统计对比

由于业务需要对市面上比较常见的代码可视化工具进行了调研,根据调研体验做了对比统计。本调研评价侧重对java大型项目的可视化效果,仅供参考。

可视化工具参考:

12 个最适合开发人员的代码可视化工具(2024 年) - HashDork

www.zhihu.com/question/61...

调研对比分析

推荐:scitools understand、Graph Buddy

工具 使用体验 支持语言 是否开源 功能列表 备注
Visustin 1. 仅支持windows系统 2. 除基本逻辑语句(if、while等)外,对于业务逻辑代码可解释性差 3. 不支持函数调用嵌套识别 4. 流程图可编辑,对于无法解释的复杂意图可编辑优化 支持49种编程语言(包括python、java、shell、SQL) 闭源且收费(有破解版) 1. 支持文件导入 2. 一键绘制流程图 3. 流程图可编辑(拖动、编辑内容) 1. 比较适用于简单的算法讲解以及文档编写课程图绘制 2. 可能对于简单工程适应性比较好,不便于应用于多模块的复杂工程(不同模块之间的联系需要自己建立)
Sourcetrail 未成功 支持C、C++、Java 和 Python 免费且开源github.com/CoatiSoftwa... 未成功 github.com/CoatiSoftwa... 根据git ISSUE, mac中解析java项目仍存在bug
Embold 1. 有IDEA插件,产品较为全面 2. 有使用文档:Installation and Backup Guide -- Code Quality Docs 3. 主要用于检查代码缺陷,不能生成代码流程图,快速了解工程 支 C/C++、C#、Objective C 和 Java等 有免费版但未开源 1. 自动分析单个文件的代码缺陷 2. 扫描全部文件的代码缺陷 3. AUTODOC自动生成注释文档 1. 主要用于检查代码缺陷,不能生成代码流程图 2. 生成的注释过于简单,作用有限
Scitools understand 1. 评价最好的代码可视化软件 2. 试用版只能用demo工程,不可自己导入工程 支持C++、Java、Jovial、Pascal、ADA、.NET等 收费试用需申请 1. 支持工程项目导入 2. 支持函数级别流程图绘制 3. 支持函数内部流程图绘制 1. 兼备函数调用关系的梳理和函数内部代码逻辑的数据 2. 同时可对于类文件的调用关系进行梳理
Graph Buddy 1. 有IDEA插件,产品全面 2. 支持嵌套、最小单元为函数 3. 可自动生成流程图4. 流程图可编辑性较差(仅可拖动) java、scala 免费且开源github.com/VirtusLab/g... 1. 自动生成流程图 2. 自定义绘图 3. 流程图梳理工具(筛选、查询、关系查询) 4. 流程图保存 1. 侧重函数层面的调用关系梳理,而且对于多文件间函数调用识别准确率一般 2. 对于多层嵌套复杂工程,自动生成流程图体验一般,需进行筛选梳理 3. 对于自定义绘制流程图体验较好 4. 相当于一个便捷的内嵌代码流程图绘制工具
code2flow 1. 根据伪代码生成流程图 2. 不支持函数调用嵌套识别 3. 流程不可编辑 4. 界面交互性更强,可点击代码对应行会在图中又响应 未特殊指定 收费,但有试用期 1. 实时根据代码绘制流程图 2. 可共享、共同协作 1. 与Visustin体验类似 2. 与Visustin不同在于,code2flow是一行一个流程框, Visustin仅在逻辑语句前后划分流程框
Source insight 1. 仅支持windows系统 2. 提供的功能IDEA基本全部支持 3. 相当于一个源码阅读辅助器,无绘图功能 支持C、C++、Java 和 Python等 收费,但有试用期 1. 查看函数调用上下文窗口 2. 查看函数关联调用 1. IDEA已支持其核心功能 2. 对于大型JAVA工程,IDEA支持性更好

可视化工具使用测试截图

Visustin使用测试

函数调用

简单的for语句

简单while语句

长if语句

for循环嵌套if

Sourcetrail使用测试

加载java环境的bug

问题解决参考:github.com/CoatiSoftwa...

虽然解决不了

EMBOLD

自动扫描单个文件

扫描全部文件

自动生成注释文档

Scitools understand

函数逻辑流程解析

调用流程图

数据流转图

Graph Buddy

一键生成流程图后筛选函数

手动点击代码生成流程图

保存流程图功能

code2flow

函数调用

简单for语句

3. 简单while语句

Source insight

上下文窗口

查看关联调用

Pytutor

嵌套函数调用

For 循环

大型嵌套函数

相关推荐
帅次3 天前
重塑在线软件开发新纪元:集成高效安全特性,深度解析与评估支持浏览器在线编程的系统架构设计
性能优化·重构·软件工程·软件构建·个人开发·代码规范·规格说明书
长安er4 天前
编译原理/软件工程核心概念-问题理解
java·开发语言·软件工程·编译·指针·敏捷开发·瀑布模型
神奇椰子6 天前
Ubuntu 常用指令和作用解析
linux·运维·ubuntu·centos·云计算·代码规范·浪浪云
帅次8 天前
2018年系统架构师案例分析试题五
系统架构·软件工程·软件构建·代码规范·面向服务架构·企业服务总线
神奇椰子8 天前
CentOS 常用指令及作用解析
linux·ubuntu·docker·centos·云计算·代码规范·浪浪云
Deeper52010 天前
前端代码规范- Commit 提交规范
前端·学习·微信小程序·生活·代码规范·去水印·脑筋急转弯
哆啦B梦_10 天前
Leangoo敏捷工具在缺陷跟踪(BUG)管理中的高效应用
bug·敏捷开发·scrum工具·敏捷研发·敏捷管理·敏捷缺陷管理·scrum敏捷
程序猿进阶13 天前
Stream 流式编程
java·数据库·面试·职场和发展·性能优化·系统架构·代码规范
数造科技16 天前
数造科技荣登“科创杯”领奖台,开启数据驱动新篇章!
大数据·运维·科技·创业创新·敏捷开发
当归102419 天前
Sora 代码规范之Refactor this method to not always return the same value.(目的性问题)
java·开发语言·代码规范