是否有可以创建的工具:源代码中的


UML结构图。
Binary在arm / x86系统上执行的UML行为图。
源代码在C&/ C ++&/ Python中。 (了解现有软件并对其进行修改。)在Linux平台上。

评论

Klocwork很久以前就拥有一个工具,我相信只有Java

#1 楼

我有时会做一些关于C程序建模的工作,我以本文为起点,

http://www.drdobbs.com/uml-for-c-programmers/184401948

然后评估了很少的内容,发现EA最合适,IBM RSA也为C程序建模提供了良好的支持。

但是,您需要做的是,提出一种在UML中建模C程序然后遵循它的方法,这是因为C不是一种面向对象的语言,而UML本质上是面向对象的,

希望这对C,C ++ EA和RSA的逆向工程工作很有帮助,并且对C来说不需要很多工作。

评论


您应该回答或接受伴侣提出的问题的答案。


2014年3月19日在11:02

#2 楼


用于Java或.NET的Sparx Systems Enterprise Architect
用于C ++编译二进制文件的IDA Pro RTTI插件
用于C,Java和其他语言源代码的doxygen


#3 楼

几乎所有主要工具都将获取源文件/目录,并产生名称空间(一个Package),类和接口定义,属性,属性和操作签名。对于多种语言。

但是,由于未解析操作定义主体,因此不会发现所有依赖关系或类之间的所有关系,因此无法导出操作的活动模型(也不可以导出其活动图) 。

Microsoft在Visual Studio 2010(我相信到2015年)中都包括了一个“操作到序列图”生成器,用于在编辑器中选择的任何操作。此后已被删除,可能是因为它仅限于托管语言。

要导出状态机模型/图,还必须要认识到最初在源中采用的编码约定才有意义。也许这是机器学习可能会产生影响的领域。

从UML中删除了协作图。供应商,EA,MagicDraw,甚至不是Java的Eclipse Papyrus。

希望有帮助,
问候