From: http://www.sudu.cn/info/html/website/20080508/307109.html

摘要: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 工件,以指定、构造软件项目并使软件项目形象化和文档化。

  

使用Visio 2000逆向工程将代码转换为UML图表相关推荐

  1. 使用 rose 将 c++代码转换为 uml 类图

    From: http://www.cppblog.com/prayer/archive/2009/12/24/103954.html 阅读本文章,你需要对 uml 有简单的了解,懂得以下术语: 类图( ...

  2. matlab生成vhdl程序,使用HDL Workflow Advisor将matlab代码转换为vhdl

    我制作了一个Matlab程序,用于检测2个圆形是否相互交叉并输出交点的坐标.现在,我试图将代码转换为vhdl来实现FPGA. 我的代码中HDL Workflow Advisor中仍然存在错误的函数之一 ...

  3. utf-8转换gbk代码_将代码转换为现金-如何以Web开发人员的身份赚钱并讲述故事。...

    utf-8转换gbk代码 by Kurt 由库尔特 将代码转换为现金-如何以Web开发人员的身份赚钱并讲述故事. (Turning code to cash - How to make money a ...

  4. fortran转换 matlab代码,将Fortran77代码转换为Matlab代码以查找特征值/向量

    我将Fortran 77中的书面代码转换为Matlab代码.该函数使用QL算法计算矩阵的特征值和特征向量.由于某些原因,我不能在matlab中使用eig函数的结果.这种方法得到的特征值与eig函数得到 ...

  5. Matlab 生成vhdl,matlab - 使用HDL Workflow Advisor将Matlab代码转换为vhdl - 堆栈内存溢出...

    我制作了一个Matlab程序,它可以检测2个圆是否相交,并输出相交的坐标. 现在,我正在尝试将代码转换为vhdl以进行FPGA实现. 我的代码中在HDL Workflow Advisor中仍然存在错误 ...

  6. [.NET] 怎样使用 async await 一步步将同步代码转换为异步编程

    怎样使用 async & await 一步步将同步代码转换为异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6079707.html  ...

  7. 使用p4c将P4 14代码转换为16代码

    参考: [Question] How to make conversion between P4 14 and P4 16? 使用p4c将P4 14代码转换为16代码: $ p4test --p4v ...

  8. 将python代码转换为flowchart代码

    将python代码转换为flowchart代码 慢慢来,报错莫着急 将python代码转换为flowchart代码 问题描述及原因明细 提示:这里除了遇到的问题还有解决方案 报错:UnicodeDec ...

  9. 将HTML代码转换为图片

    数据库已经存在的数据 (表格)PW_Achievement (字段)UserID, EligibleTypeID, AchievementID, ExamNumber, Achievement, St ...

最新文章

  1. 英国电价与光伏容量占比关系分析
  2. linux, configure --prefix=/有什么用
  3. 设计 Redis Key
  4. 13 Tensorflow机制(翻译)
  5. 4邻接、8邻接、m邻接
  6. 使用delegate类型设计自定义事件
  7. 资源共享型智能指针实现方式
  8. 禅道类似软件_软件测试工程师都在用哪些测试工具
  9. ES6学习笔记六(新增数据结构)
  10. 代码管理学:正确理解工作,并不是你想的那样容易
  11. GBase 8c V3.0.0数据类型——备份控制函数
  12. 如何破解终端算力困局?PRCV这篇论文让机器人“算有余力”
  13. Elasticsearch 7 Failed to parse value [analyzed] as only [true] or [false] are allowed.
  14. CRISPR最新:新CRISPR技术靶向更复杂的人类基因组代码
  15. MAC下微信双开(一键命令)
  16. ThinkPad E450 Fn键设置为传统方式
  17. 实验一 利用ffmpeg进行视音频信息提取 |音视频技术
  18. 2022.7.19 防火墙知识点
  19. 月二 周5 (前半写于周2)
  20. 微信小程序学习笔记--测颜值

热门文章

  1. 对数据仓库进行数据建模_确定是否可以对您的数据进行建模
  2. 深度学习数据集中数据差异大_使用差异隐私来利用大数据并保留隐私
  3. 在FAANG面试中破解堆算法
  4. ios android 交互 区别,很多人不承认:iOS的返回交互,对比Android就是反人类。
  5. leetcode 304. 二维区域和检索 - 矩阵不可变(前缀和)
  6. 在PHP服务器上使用JavaScript进行缓慢的Loris攻击[及其预防措施!]
  7. 数据科学家数据分析师_站出来! 分析人员,数据科学家和其他所有人的领导和沟通技巧...
  8. 超详细windows安装mongo数据库、注册为服务并添加环境变量
  9. 巨蟒python全栈开发-第6天 is==
  10. 【CSS】css特殊性-优先级-权重