因为在平时工作中一直用Rational Rose或者EA等UML建模工具来实现UML图的设计绘制,当然它们也支持正向及逆向工程。但一直感觉使用起来不能和Visual Studio很好的结合起来。直到今天我在微软官网发现了一个拓展即:Visual Studio 2010的可视化和建模工具包。
自己小试了一下发现这是个非常强大,使用也很便捷的拓展,下面具体说明一下本人是怎么使用该拓展的。
首先,需要安装VS2010 Ultimate(下载)。
然后,下载(Visual Studio 2010的可视化和建模工具包)。
Visual Studio 2010的可视化和建模工具包下载完成后是2个.vsix拓展文件,一个是建模工具包,一个是运行时,如下图:
双击直接安装即可,安装后开启VS2010,在新建项目对话框中会多了一项“建模项目”如下图:
其中包括:
Layer Designer Command Extension——即向层关系图添加命令和特定动作,具体请参见:向层关系图添加命令和特点动作
Layer Designer Gesture Extension——即在图层图表中加入命令和轨迹,具体请参见:在图层图表中加入命令和轨迹
Layer Designer Validation Extension——即向层关系图添加自定义体系结构验证,具体请参见:向层关系图添加自定义体系结构验证
建模项目——今天我们主要讨论该模板。
选中“建模项目”模板,设置名称为“TestModelingProject”及设置存储路径,点击【确定】按钮。
这样我们就创建了一个建模项目,在VS2010中的解决方案资源管理器中会看到如下图:
选中TestModelingProject建模项目,然后点击IDE菜单栏中的【体系结构】菜单项然后选择【新建关系图】
弹出关系图选择页面
目前共有如下几种关系图类别,我们以UML类图为例,来建立我们自己的程序UML。
设置名称及添加到建模项目后点击【确定】按钮。会自动在IDE中生成类关系图。
点击IDE左侧的“工具箱”DockPanel,在工具箱中会出现类图中常用的图形,如
我们先建立一个Demo,即向画布中拖拽一个接口及两个类,分别命名为:IDemo,Demo1,Demo2,在接口中有一个方法约定即:int GetMaxValue(List<Int> list),两个类分别实现该接口,如
这里介绍一下接口或类型图中该如何添加“特性”及“操作”,如添加一个操作即一个方法,首先选中“操作”行右键点击【添加】-》【操作】
然后再属性DockPanel中设置相关参数及返回值类型等
设置参数点击“Parameters”属性中右边的浏览按钮“”,弹出操作参数集合编辑器窗口,对参数进行设置
这样我们的方法就建立成功了,“特性”的创建和方法类图,这里就不再一一介绍,这样我们接口和类就创建成功了。
下面我们来将建好的UML类图导出来,如何操作呢?如下:
Ctrl+A选中接口和类图,右键点击【GenerateCode】
这时会提示选择类模板对话框
点击【确定】按钮,开始创建工程
最终我们的UML类图被正向工程导出为如下图的类库
最终会输出一些日志信息提供查看
这样我们的一个正向工程就完成了,在下章中我们会讨论逆向工程的相关细节。
昨天我介绍了使用VS2010建模拓展的正向工程示例代码,介绍了如何建模及如何导出工程文件,今天我们将来讨论如何从已有代码中逆向工程出UML设计类图。
首先,我们先来创建我们将要逆向工程的项目文件,项目很简单为了演示全面,我们分别建立了3个工程项目(类库),如图:
该项目主要实现数据的加减乘除4种简单计算操作,主要为了演示怎样逆向工程及如何导出依赖项。
下面分别介绍一下这3个类库的功能:
ZY.TestModeling.InterfaceDefine——该类库主要功能为接口声明。
ZY.TestModeling.Implement——该类库主要负责功能实现(这里使用了策略模式对算法进行封装)。
ZY.TestModeling.UI——顾名思义该类库为用户接口UI界面主要负责UI程序与用户交互。
这样我们项目结构清晰了,下面来看如何使用VS2010拓展进行逆向工程。
首先、我们应该创建我们所需用的类图文件,如何操作呢?即我们右键点击解决方案,然后选择【添加】-》【新建项目】
然后再新建项目对话框中选择【建模项目】设置项目名称及存储位置后点击【确定】
这样在解决方案下将自动生成建模项目
然后选中该项目点击Visual Studio 2010中的菜单栏【体系结构】-》【新建关系图】
然后弹出新建关系图对话框,选择“UML类图”设置名称及添加到的建模项目后点击【确定】
将在建模项目下生成一个.classdiagram文件,该文件即类图项目文件,双击打开生成的类图文件。
然后、在Visual studio 2010的菜单栏中选择【体系结构】-》【窗口】-》【体系结构管理器】,如图:
这样会出现”体系结构资源管理器窗口”
这里主要有两种视图方式,分别为“解决方案视图”及“类视图”
解决方案视图即按解决方案中的层次项目目录进行体系结构展示
类视图即按类的层次项目目录进行体系结构展示
这里我们使用“解决方案视图”方式进行体系结构展示,在子项目窗口中选中将要逆向工程的项目,这样在右边将出现“文件”浮动窗口,在该窗口中将展示出被选中的3个项目的所有文件,选中所有文件后将出现”类型”浮动窗口
按住鼠标左键将选中类型拖动到类图文件中松开鼠标左键,这样我们的逆向工程类图就生成了。怎么样简单吧!
最终结果为
这里还有一个不得不提的地方就是,在生成的类图中可以选中某个类右键点击【View Code】,这样就可以直接调转到类图的具体实现文件了,开可以双击类图中的某个“特性”或者“操作“都可以直接定位到实现代码,这种操作确实很实用也很便利!
同时还可以生成依赖项关系图,我觉得这个功能也很强大,它可以将项目中所依赖的DLL全部以图形化方式展示出来,并将依赖关系展现出来,甚至可以定位到具体的依赖函数。
如何使用呢?
点击Visual Studio 2010菜单栏中的【体系结构】-》【生成依赖项关系图】
具体用5个子项可供选择,
按程序集,
按命名空间,
按类,
By Include File,
自定义
自己可以根据自己需要进行依赖项关系图的生成
这里我们选用”按程序集“生成
生成后
点击【】按钮,即可以将内部细节展现出来,支持子项继续展开,不能不说微软确实很强大
同样双击图中的方法可以直接定位到具体的代码实现。
这样我们的逆向工程就完成了。
希望大家热烈 讨论,共同研究。以后有时间我还会写一些高级的应用,希望与大家一同探讨!