在软件工程中, 通过都是先了详细设计, 然后按照详细设计来进行开发。在编写详细设计的时候,通常都会画一些类图、时序图、流程图等等UML设计, 然后通过uml类图生成代码, 这个属于正向工程生成代码, 然而在实际开发中, 很可能是先完成了代码开发, 再来补充一大堆的文档, 这是就需要通过代码来生成类图, 这个就属于逆向工程了, 下面进入主题, 如何利用staruml通过代码生成类图。(需要注意的是只有面向对象语言才会有类的概念,这里我们只考虑面向对象程序设计语言中的三大巨头:C++、Java、C#)
0x00 初始化
工欲善其事,必先利其器。首先我们下载安装 StarUML (这些优秀的开源软件值得我们学习)
0x01 新建工程
初次运行会弹出如下图所示的对话框,保持默认即可:
之后的画面是这样:
如果无法正常运行或者界面无法加载可以右键修改兼容性。
0x02 加载插件
我们需要添加相关语言的插件才能逆向出类图,StarUML 默认是全部加载了的,这里我们确认一下:
点击菜单栏【Tools】—【Add-In-Manager】,然后勾选中【Java Add-In】,然后点击【OK】就完成了对应插件的安装(默认已经全装上了):
0x03 添加 Profile
点击菜单栏【Model】—【Profile】,此时软件会弹出协议管理对话框(Profile Manager),在弹出的对话框中选择对应 Profile,再点击Include, Profile会出现在对话框的右侧Included Profiles列表中,最后点击close:(这里以 C++ 为例)
0x04 逆向工程
在右侧的工程上点右键—【C++】—-【Reverse Engineer】,然后会弹出选择源码对话框,点击对话框左侧的目录,在对话框右侧会列出该目录下的C++ Source file,选中要生成的 C++ 代码文件,点击add,然后点击下一步【next】,然后选择生成到工程结构,点击下一步下一步就完成了:(注意C++文件需要是.h结尾的)