StarUML逆向工程: 通过代码生成类图

在软件工程中, 通过都是先了详细设计, 然后按照详细设计来进行开发。在编写详细设计的时候,通常都会画一些类图、时序图、流程图等等UML设计, 然后通过uml类图生成代码, 这个属于正向工程生成代码, 然而在实际开发中, 很可能是先完成了代码开发, 再来补充一大堆的文档, 这是就需要通过代码来生成类图, 这个就属于逆向工程了, 下面进入主题, 如何利用staruml通过代码生成类图。(需要注意的是只有面向对象语言才会有类的概念,这里我们只考虑面向对象程序设计语言中的三大巨头:C++、Java、C#)

0x00 初始化

工欲善其事,必先利其器。首先我们下载安装 StarUML (这些优秀的开源软件值得我们学习)

0x01 新建工程

初次运行会弹出如下图所示的对话框,保持默认即可:
staruml

之后的画面是这样:
staruml

如果无法正常运行或者界面无法加载可以右键修改兼容性。

0x02 加载插件

我们需要添加相关语言的插件才能逆向出类图,StarUML 默认是全部加载了的,这里我们确认一下:
点击菜单栏【Tools】—【Add-In-Manager】,然后勾选中【Java Add-In】,然后点击【OK】就完成了对应插件的安装(默认已经全装上了):
staruml add-in manager

0x03 添加 Profile

点击菜单栏【Model】—【Profile】,此时软件会弹出协议管理对话框(Profile Manager),在弹出的对话框中选择对应 Profile,再点击Include, Profile会出现在对话框的右侧Included Profiles列表中,最后点击close:(这里以 C++ 为例)
staruml profile

0x04 逆向工程

在右侧的工程上点右键—【C++】—-【Reverse Engineer】,然后会弹出选择源码对话框,点击对话框左侧的目录,在对话框右侧会列出该目录下的C++ Source file,选中要生成的 C++ 代码文件,点击add,然后点击下一步【next】,然后选择生成到工程结构,点击下一步下一步就完成了:(注意C++文件需要是.h结尾的)
C++ Reverse Engineering

C++ Reverse Engineering

勾上喜欢的选项或者默认:
C++ Reverse Engineering

弹出这个框表示逆向完成:
C++ Reverse Engineering

结果是这样的:
C++ Reverse Engineering

StarUML(简称SU),是一种创建UML,生成和其他型的统一建模语言(UML)表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj). ● 可绘制9款UML:用例、序列、状态、活动、通信、构件、部署以及复合结构等。 ● 完全免费:StarUML是一套开放源码的软件,不仅免费自由下载,连代码都免费开放。 ● 多种格式影像文件:可导出JPG、JPEG、BMP、EMF和WMF等格式的影像文件。 ● 语法检验:StarUML遵守UML的语法规则,不支持违反语法的动作。 ● 正反向工程:StarUML可以依据的内容生成Java、C++、C#代码,也能够读取Java、C++、C#代码反向生成。反向工程有两个主要用途,其一是旧有的源码反转成之后,可以构建UML模型的方式继续将新的设计添加上去;另一项用途是想要解析源码时,可以通过反转的来理解,不再需要查看一行又一行的代码,这将节省大量的时间和精力。 ● 支持XMI:StarUML接受XMI 1.1、1.2和1.3版的导入导出。XMI是一种以XML为基础的交换格式,用以交换不同开发工具所生成的UML模型。 ● 导入Rose文件:StarUML可以读取Rational Rose生成的文件,让原先Rose的用户可以转而使用免费的StarUML。早期,Rational Rose是市场占有率最高的UML开发工具,同时也是相当昂贵的工具。由于Rational Rose非常闻名,后来让IBM给收购了。 ● 支持模式:支持23种GoF模式(Pattern),以及3种EJB模式。GoF模式出自于Erich Gamma等4人合著的Design Patterns:Elements of Reusable Object-Oriented Software一书,其内列出了23种软件模式,可解决软件设计上的特定问题。StarUML也支持3种常用的EJB模式,分别为EntityEJB、MessageDrivenEJB、SessionEJB。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值