我试过 Umbrello 和 ArgoUML;并且两者都无法从现有的 c++ 代码库生成代码。尽管它们在这些领域的能力有限,但它们在导入包含 std、boost、SDL 和本地包含的文件时都失败了。FOSS 世界中是否有任何东西可以对相当复杂的 c++ 代码进行建模。UML 部分是可选的,生成连贯且准确的代码可视化是最重要的。
注意:像 gprof2dot 和 doxygen 这样的工具可以处理源代码,但是它们的输出非常复杂,以至于与原始代码一样难以掌握。
注2:由于不能再询问关于 SO 的工具,让我重新表述这个问题:
给定一个庞大、陈旧、复杂和笨拙的 c++ 代码库,如何快速有效地执行重大重构。所谓专业,我的意思是:
- 从现有的源/标头对中提取整个结构/枚举/类到它们自己的文件中
- 添加/删除命名空间
- 改变函数签名
- 等等
grep 和 sed 可以处理一些事情;但是,发现和管理包含依赖项可能会让人不知所措。我目前坚持使用“更改和修复”方法 - 尝试重构某些内容并迭代构建和修复编译器指出的错误。对于广泛使用的对象,这很慢。什么是正确的方法?