【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 架构浏览器类视图