[建模]使用Visio 2000逆向工程将代码转换为UML图表

摘要:Microsoft Visio 2000 Professional Edition 和 Enterprise Edition 包含通过逆向工程将 Microsoft Visual C++、Microsoft Visual Basic 和 Microsoft Visual J++ 代码转换为统一建模语言 (UML) 类图表模型的技术。本文将讨论从每种语言实施逆向工程的步骤。
目录
简介
概述
步骤 1:自定义开发环境
步骤 2:打开代码项目以实施逆向工程
步骤 3:选择“逆向工程”(Reverse Engineer) 按钮
步骤 4:在 Visio UML 模型图表解决方案中创建您的 UML 图表
简介
Microsoft Visio 2000 Enterprise Edition 和 Professional Edition 都包含通过逆向工程将代码转换为 UML 静态结构图表的解决方案。该解决方案支持三种语言:Microsoft Visual C++ 6.0、Microsoft Visual Basic 6.0 和 Microsoft Visual J++ 6.0。Visio UML 模型图表解决方案所采用的 UML 标准为 1.2 版。
每种语言使用的逆向工程技术各不相同。对于 J++ 和 Visual Basic,该解决方案使用开发环境的对象模型来收集静态结构信息。对于 C++,该解决方案将浏览信息文件 (.BSC) 用作结构信息的来源。虽然 Visual Basic 和 J++ 逆向工程都使用开发环境的对象模型,但 J++ 对象模型提供了更完整的信息,因此可得到更完整的逆向工程 UML 模型。C++ 中的浏览信息文件包含最少的信息;因此,它所生成的 UML 模型不如 J++ 和 Visual Basic 逆向工程得到的 UML 模型那么完整。
本文将介绍通过逆向工程转换到 Visio UML 模型图表解决方案所需的步骤。
注意:Visio UML 模型图表解决方案只支持 Microsoft Visual C++ 6.0、Microsoft Visual J++ 6.0 和 Microsoft Visual Basic 6.0 的逆向工程。要使用 Visio UML 外接程序,必须安装 Service Pack 3.0 for Microsoft? Visual Studio?。
概述
要通过逆向工程将您的代码转换到 Visio UML 模型图表解决方案,应执行以下主要步骤:
自定义 Visual Studio 开发环境

在 Visual Studio 中打开项目以实施逆向工程

从“Visio UML 外接程序”(Visio UML Add-In) 工具栏中选择“逆向工程”(Reverse Engineer) 按钮

在 Visio UML 模型图表解决方案中创建 UML 类图表
本文的其余部分提供了每个步骤的详细指导,并包括特定于编程语言的信息。例如,在自定义开发环境部分,Visual C++、Visual Basic 和 Visual J++ 都有其相应的章节。
步骤 1:自定义开发环境
为了实施逆向工程,第一步应通过添加“Visio UML 外接程序”(Visio UML Add-In) 工具栏来自定义开发环境。以下指导显示了如何将该工具栏添加到 Visual C++、Visual Basic 和 Visual J++ 的不同环境中。
自定义 Microsoft Visual C++ 6.0
在 Visual C++ 中,选择 Tools 菜单上的 Customize。

在 Customize 对话框中,选择 Add-ins and Macro Files 选项卡。
在 Add-ins and Macro Files 列表中,选择外接程序和宏文件列表中的 Visio UML Add-in。确保旁边的复选框被选中,然后单击 Close。


 
出现浮动的 Visio UML Add-in 工具栏,其中包含五个按钮。


 
提示:如果希望该工具栏在每次打开 Microsoft Visual Studio 时都可用,可通过拖动将该工具栏靠接到工具栏区。
自定义 Microsoft Visual Basic 6.0
在 Visual Basic 中,从“外接程序”菜单中选择“外接程序管理器”。


 
在“外接程序管理器”对话框中,选择“可用的外接程序”列表中的“Visio UML Add-in”。对于“加载行为”,选择“加载/卸载”和“在启动中加载”,然后单击“确定”。


 
出现带有四个按钮的“Visio UML 外接程序”工具栏。


 
提示:Visio UML 外接程序在创建工具栏时,还会向“工具”菜单中添加命令。您可以通过从“Visio UML 解决方案”中选择“工具”来找到这些命令。
自定义 Microsoft Visual J++ 6.0
在 Visual J++ 中,选择 Tools 菜单上的 Add-In Manager。


 
在 Add-In Manager 对话框中,选择 Available Add-Ins 列表中的 Visio UML Solution。对于 Load Behavior,选中 Loaded/Unloaded 和 Load On Startup,然后单击 OK。


 
出现带有四个按钮的 Visio UML Add-in 工具栏。


 
提示:Visio UML Add-in 在创建工具栏时,还会向 Tools 菜单中添加命令。您可以通过从 Tools 菜单选择 Visio UML Solution 来找到这些命令。
步骤 2:打开代码项目以实施逆向工程
逆向工程过程从所有这三种语言的开发环境中开始。当通过添加“Visio UML 外接程序”(Visio UML Add-in) 自定义环境后,下一步是打开要实施逆向工程的项目。
Visual C++ 6.0 的附加步骤
对于 Visual C++,在开始逆向工程之前,还必须执行几个附加步骤。第一步是生成项目的浏览信息文件 (.BSC)。以下提供了生成浏览文件的指导。第二步是确定逆向工程中要包含的代码库。设置这些选项的指导将在浏览文件指导之后提供。最后,应在实施逆向工程之前构建项目。
生成 Visual C++ 6.0 的浏览信息文件
在 Visual C++ 中,选择 Project 菜单上的 Settings。

在 Project Settings 对话框中选择所需构建配置的类型,单击 C/C++ 选项卡,然后选中 Generate browse info。


 
单击 Browse Info 选项卡,指定浏览信息文件的名称和位置,选中 Build browse info file,然后单击 OK。


 
选择 Visual C++ 6.0 逆向工程所包含的库
单击 UML Add-in 工具栏上的 Visio UML Options 按钮,设置 Visual C++ 逆向工程所包含的库。


 
此时显示 Visio UML Options 屏幕。如果希望在逆向工程中包含 MFC Classes、ATL Classes 或 Standard Include Files 的信息,只需选中所需选项旁边的复选框,然后单击 OK。


 
步骤 3:从“Visio UML 外接程序”(Visio UML Add-In) 工具栏选择“逆向工程”(Reverse Engineer) 按钮


 
逆向工程的下一步是从“UML 外接程序”(Visio UML Add-In) 工具栏选择“逆向工程”(Reverse Engineer) 按钮。
对于 Visual Basic 和 Visual J++,此操作将在 Visio 2000 中打开 UML 模型图表解决方案,其中会显示通过逆向工程转换为模型的信息。此时 UML 模型图表解决方案打开,并在“UML 导航器”中显示一个空白的静态结构图表和一个树视图,其中包含从项目中收集的模型信息。
对于 Visual C++,在 Visio 2000 打开并显示通过逆向工程转换到 UML 模型图表解决方案的项目信息之前,可能会显示另外两个屏幕。如果 Visual C++ 工作区中存在多个项目,可在 Select Project 对话框中选择要实施逆向工程的项目,然后单击 OK。
如果项目层次结构中显示了多个浏览文件,可在“选择浏览文件”(Select Browse File) 对话框中选择一个浏览文件,然后单击“确定”(OK)。
步骤 4:在 Visio UML 模型图表解决方案中创建您的 UML 图表
现在,Visio 2000 应该显示您的项目信息。要创建 UML 类图表,请将模型元素从“UML 导航器”(UML Navigator) 拖放到“静态结构”(Static Structure) 图表上。类关系(泛化、实现、绑定)将会自动显示。利用 Visio UML 模型图表解决方案,您可以生成其他 UML 工件,以指定、构造软件项目并使软件项目形象化和文档化。

 
逆向工程(又名反向工程,Reverse Engineering-RE)是对产品设计过程的一种描述。 通俗解释: 对于软件项目的逆向工程就如同盖楼一样,一栋大楼摆在面前,在不知道大楼纸(纸其实就是程序的架构)的前提下,仿照现有的大楼结构(发布好的项目结构)盖出相同的大楼。 1、在eclipse中建立maven项目(单击链接查看教程) 2、打开建立的该项目所在文件夹:项目右击->Properties 3、找到该文件夹所在位置,并找到src目录 4、还原webapp文件夹(前台页面内容)中的内容:将放在服务器tomcat中的webapps文件夹下的.war文件拷贝出来解压将解压的内容放到原webapp文件夹中 5、还原resources文件夹(配置文件信息)中的内容:依然在解压的.war文件中找:WEB-INF->classes中的内容(除了com该文件,这个文件其实是本项目命名的存放java类的文件;其它项目有可能不同) 6、还原java文件夹(项目中的类包)内容:将5中的com文件夹中的内容直接打开任意一个最下面的子文件,将其拖到我们之前下载好的反编译软件中 7、通过eclipse重新加载该项目,将反编译出来的每一个类按照相应的结构、命名在原项目中建立 8、引入相关的jar包:jar包文件在解压的.war文件中:WEB-INF->lib文件夹下;项目右击->build path->Configure build path->Libraries->Add External JARs.. 选择jar包所在的文件也就是上面的lib文件夹位置 9、更新项目,并在eclipse中添加tomcat(点击链接查看教程) 10、解决项目中的问题,小编遇到的最多的问题是因为继承关系用到了泛型,所以在反编译的时候丢失了List或者set返回值类型,找到错误上面定义的地方,将对应的类型添加到上面就ok了! 11、appserver端代码搭建的时候,用到了hadoop技术,可能编译的时候会出现本地没有hadoop的错误(单击链接查看解决方法) 注:反编译完成之后,在测试功能的时候,发现导出excel中的逻辑有所错误,这方面还没有搞懂是当时人为问题还是反编译过程中的问题,不过最后跟了代码也解决了! 【总结】 以上是小编在研究完成之后属于教程性的东西,将其中小编实践以及思考的部分过程省略了。 活儿干完之后,得到经理和领导的大大赞扬是少不了的,另外吃肉也是少不了的。 但是更多的是,小编在解决这个大问题的时候的思考过程,其中困难部分: 1、研究生成war包之后,对应的文件的结构 2、研究java类的打包形式,对应的jar包的存放位置 3、对于该项目框架的梳理过程 4、整合过程,对于每一步操作细心的要求 5、整合完成,解决编译报错的过程 虽然活儿干完了,项目也跑了起来,但是对于里面的技术点自己还是得深入到代码中去研究,去感受,还有其中业务逻辑的梳理,以及设计思想的升华都需要去了解去学习。 只要相信自己,并付出与行动,终究会取得胜利的桂冠,加油O(∩_∩)O~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值