Visual Studio生成序列图教程

标签: Visual-Studio
发布时间: 2014/2/28 14:30:40

简介

本篇文章主要介绍微软提供的vs中的一个特性:将已写好的代码生成序列图。在展开详细讨论VS如何生成序列图这项功能之前,我们先来描述一下什么是序列图(下面的描述是从维基百科的解释)

序列图

序列图是一种展示管理不同进程的执行顺序的交互图。它是一种消息序列图表构建的一种图表。序列图将对对象的交互和执行的顺序按照时间序列排序并进行展示。它描述的是对象和类的作用范围以及对象和方法间消息序列的内容变更和传递顺序。它与用例的实现过程有关,展示的是正在开发中的系统的系统逻辑视图。

点击这里,获取更多信息 : Sequence diagram

接下来,我设计了自己的代码,随后我将向大家展示此代码的序列图。

视图层



这层代码是视图部分,此视图将要展示给应用程序的最终用户,即应用程序的前端。

业务处理层


这层代码向程序的终端提供业务逻辑处理。这层将处理所有复杂活动以及与数据层的交互。

数据访问层


这层代码实现与数据库或者数据结构的交互,并实现数据的存取操作。

以上,就是我想向项目组新成员或我的项目经理准备的基本资料。我想向他们展示程序终端的前台到数据存取整个过程的代码处理流程。如果想描述出这些代码,需要考虑一下几个方面:

  1. 代码如何在层与层之间流动执行

  2. 哪些类会牵涉其中

  3. 会涉及到类中的哪些方法


所以,为了实现上述目标,VS提供了生成序列图的特性,并解答了上述问题。

生成序列图

为了生成序列图,只需右键代码的方法,在右键菜单中选择生成序列图,如上图所示。

生成序列图窗口


一旦点击了右键菜单,将会弹出一个对话框,为生成序列图来设置一些参数。下面是一些重要的参数说明。

  • 最大调用深度 - 你想调用的深度。如果涉及到调用多个类,那么你需要考虑你想要展示的调用深度。

  • 包括调用 - 正如选项所示,选择当前项目,当前解决方案或者解决方案和外部引用。

  • 排除调用 - 分别排除调用属性和事件,系统命名空间或者其他命名空间。

生成的序列图

点击生成序列图的按钮后,就会生成序列图。在前端显示的图,展示的是GetCustomer调用的详细信息。

如果你看到上面的代码中的图像或调出上面的图片的代码分为三层,涉及三类,它们分别组成部分每一层的。
执行以下步骤,从由上述序列图中显示的数据库层获取数据。

  • 前端通过调用Getcustomer方法,请求获取用户数据,来展示到应用程序的视图层。然而,Getcustomer方法是业务处理类中的静态方法,所以没有显示出调用业务处理类的创建对象的过程。

  • 程序的业务处理层收到GetCustomer被调用的请求,所以为了填充用户的信息,数据处理层会调用数据层。但是在调用之前,需要创建数据层中Customer类的实例。

  • 程序的数据库访问层接收到调用请求后,会访问数据库并返回数据。

  • 现在数据库访问层将数据返回给业务处理层的customer类。

  • 业务处理层将从数据库访问层获取的数据封装为customer对象,返回给视图层。

  • 视图层从业务处理层取回返回的对象,并将对象展示给终端用户
    所以,通过生成序列图的方式,我可以找出代码层,类和方法的代码处理流程和关系。当然,它也解答了上述问题。



注意 :
我指定最大调用文本框为10的对话框,但是这里只有三层代码被展示了出来。出现这种情况,是因为如上讨论的,只涉及三个类中的三层代码的展示。

从序列图中查看代码



在VS生成的序列图的帮助下,我可以通过双击消息或者方法,直接跳转到任何指定的方法中。

例如我点击实例化Customer的方法,序列图会调用它标记为红色的创建消息或方法,如上图所示。

双击序列图后展示的代码


双击序列图中的方法,vs会直接跳转到双击的节点代表的代码上。 

生成序列图的优势

  • 最大的优势是帮助理解别人写的代码。即,如果你刚进入一个开发团队,你想要从头到尾的熟悉其他人写的项目和代码,此时序列图很有帮助。

  • 也可以帮助你,向新加入你团队的人,解释你写的代码。

  • 它展示的是,代码中,类和方法的调用关系。

注意 :
这个序列图展示的是你点击的方法到程序最底层生成的序列图。它不会展示它被上层调用的情况。


例如
如果我点击了业务处理层的代码来生成序列图。那么,visual studio就会从这个方法开始向下层挖掘,直到数据库访问层,生成序列图。它并不展示这个方法作为被调函数时,使用的情况。也就是说,终端的展示层是无法在这张序列图中展示出来。

上图就是点击业务处理层中的方法后生成的序列图。正如上边讨论的,它并没有展示出视图层调用业务处理层的流程和详细信息。

总结


visual studio提供的这个特性,在你想要向别人解释你代码或者你想了解别人的代码时,会显得很酷。


官方微信
官方QQ群
31647020