技术开发 频道

深度探索:VS 2010 Ultimate架构代码

  打开架构浏览器窗口,单击左上角的“Create a new graph”图标,显示类关系视图,如图7所示。

  图7 类关系视图

  外,解决方案视图(Solution View):从项目角度出发到程序、类等。选择文件(Select Files):可以选择多个程序文件,如.exe、.dll等,此将由实体程序展

  开到类、方法等。当没有原始代码时,可以用此功能来分析动态链接库。

  (3)类图(Class Diagram)

  VS.Net类图不同于UML Class Diagram,它提供了图形与程序代码双向实时同步功能,若修改程序代码,视图会自动更新。可在Solution Explorer下选择目标项目,

  单击工具栏的“View Class Diagram”按钮,即可自动生成.Net Class Diagram,如图8所示。

  图8 类关系图

  2.动态逆向工程(Dynamic Reverse Engineering)

  VSTS 2010新增架构工具支持动态逆向工程,主要有两个工具:依赖图(Dependency Graph)和Sequence Diagram(时序图)。以前的程序开发人员,当分析程序代码

  完全没有头绪时,需要从程序代码中直接理解程序流程是一件很困难且痛苦的事,新增的两个工具会大大提高代码分析的效率。

  应用&实践

  动态逆向工程—Web应用代码分析范例

  (1)依赖图(Dependency Graph)

  依赖图可以协助理解程序代码的结构与关系,可以透过架构浏览器(Architecture Explore)来生成依赖图。

  首先在Architecture Explorer中选择“Class View”|“WebApplication1”|“_Default”|“Button1_Click1”,按“Ctrl+”包含的所有方法键,并选择其所包含所有方法,然后单击“Create a new graph…”按钮,即可将刚才类(Class)阶层与方法(Method)关系绘制成依赖图(Dependency Graph),如图9所示。

  图9 展现依赖图

  (2)顺序图(Sequence Diagram)

  顺序图是用来表现程序流程的图像工具,在VSTS 2010中也用于对象导入系统的设计,可以手工直接绘制Sequence Diagram功能,也能通过

  逆向工程选择代码段自动生成图形。

  ①在VS 2010中,打开Default.cs程序文件,找到Button1_Click1()方法,单击鼠标右键,在弹出菜单中选择“Generate Sequence Diagram”命令。

  设置顺序图,如图10所示。

  图10 设置生成顺序图

  l Maximum call depth:决定扫描程序调用层数来产生顺序图,默认值为3,意指超过3层的呼叫不纳入Sequence Diagram。

  l Include calls in:决定哪些范围的方法调用要纳入顺序图,默认值为当前解决方案(Current solution)。

  l Exclude calls to:决定哪些方法调用要略过,不纳入顺序图。

  ②单击“OK”按钮,生成顺序图,将可以帮助分析了解程序流程,如图11所示。

  图11 从程序代码生成顺序图

  对于生成后的顺序图可以手工修改方法名称,但它不会反映到程序代码中(它只是时间点的快照(Snapshot)。不支持图形与程序代码双向互动。

  (3)分组生命线(Lifeline Grouping)

  在VSTS 2010中,顺序图具有合并功能,可以通过Group功能把Lifeline合并起来,按“Ctrl”键选择多个Lifeline后,用鼠标右键单击选择“Collapse”,

  即可合并成LifelineGroup。例如,可以将两个Class1合并起来,若要展开,用鼠标右键单击选择“Expand”即可,如图12所示。

  图12 合并分组生命线顺序图

0
相关文章