技术开发 频道

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

  【IT168技术】2010新的架构工具可以让我们了解应用程序和功能设计,并帮助验证设计和执行不偏离。它除了支持一般系统分析设计流程(需求→实体)外,也支持

  另一类的流程—逆向工程(Reverse Engineering)。

  通过逆向工程可以理解应用程序之间的部分是重要的相互依赖关系,以确定可能会出现的问题。此外,直观图可以帮助我们找到非常好的位置来执行新的功能。

  DGML文件可以使解决方案产生依赖矩阵和布局,每个视图可以在项目结构中提供一个不同的视图,如图1所示。

  图1 程序集关系分析图

  通过高级的视图功能可以来分析模型的整体结构。在一个区域中,可以根据需要修改15分钟到一个小时之间的变化差异的依赖关系,如图2所示。

  图2 类关系分析图

  单击相应的类,在出现方向箭头处单击可放大局部类之间的关系图,如图3所示。

  图3 类关系局部放大分析图

  VSTS 2010逆向工程类型可分为静态与动态:静态指的是整个程序代码的静态结构,如组件或类间的关系;动态则是程序代码执行的顺序,如某个程序代码区段的相关方法引用与响应顺序。

  1.静态逆向工程(Static Reverse Engineering)

  VSTS 2010提供针对不同功能层面的分析工具来辅助程序代码进行逆向工程:Layer Diagram可从高阶面看架构;Architecture Explorer能从特定点切入,只探索我们所关心的部分;.net Class Diagram则可分析最细节的Class结构。它支持静态的逆向工程,主要有三个工具:Architecture Explorer、Layer Diagram和Class Diagram。

  应用&实践

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

  (1)层图(Layer Diagram)

  Layer Diagram可以让我们以高层的角度来分析整个软件结构,细腻程度可以自由选择,从项目、Namespace、Class、到方法皆可。

  ①首先打开一个Web Application工程,打开VS新增一个Modeling Project,命名为“DemoReverseEngineering”,新增空白Layer Diagram,命名为“MainLayerDiagram” (Architecture|New Diagram|Layer Diagram),然后从Solution Explorer中拖曳ClassLibrary1、WebApplication1到MainLayerDiagram,然后可以看到两个方块(Layer),单击方块并单击鼠标右键,选“Generate Dependencies”命令,VSTS 2010会自动生成之间的关系,如图4所示。

  图4 关系层图

  ②我们可以定义每个Layer包含的工作产品(Artifact),并可以直接用相关文件对应到Layer,然后在Layer上单击鼠标右键选择“View Links”命令,

  即可检视此Layer的相关工作产品,如图5所示。

  图5 层浏览器

  Layer Diagram基本上为快照(Snapshot)图形,后续即使程序代码有了变动,该图形也并不会自动跟着更新,所以必须定期执行Validate Architecture。

  (2)架构浏览器(Architecture Explorer)

  架构浏览器可以让我们从特定点开始分析相关类(Class)、方法(Method)、成员(Member)间的关系。打开VS IDE,选择“View”|“Architecture Explorer”或者“Architecture”|“Windows”|“Architecture Explorer”命令可打开架构浏览器,如图6所示。

  图6 架构浏览器类视图

0
相关文章