使用VisualStudio 2010从分析到实施(4)——使用Sequence Diagram设计消息序列

前言

在前三篇中,我们已经通过Visual Studio 2010的用例图,状态图对系统进行了需求分析,接下来进入的是程序的架构和行为设计阶段。本篇继续前文,向大家介绍使用VisualStudio 2010中对Sequence Diagram(序列图)的支持,和使用VisualStudio 2010设计消息序列的方法。

背景

前篇:VisualStudio 2010从分析到实施(3)——使用Use Case Diagram设计系统交互

对序列图不熟悉的兄弟请参考:http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/3101.html

在系统需求确定之后,我们将进入基于UML的OOD系统设计阶段,在这个阶段中,将通过以下三篇文章来为大家呈现VS2010在设计阶段的支持和应用:

使用VisualStudio 2010从分析到实施(4)——使用Sequence Diagram设计消息序列

使用VisualStudio 2010从分析到实施(5)——使用Component Diagram设计系统结构

使用VisualStudio 2010从分析到实施(6)——使用Logical Class Diagram实现系统组件

Sequence Diagram 使用步骤

1. 新建解决方案

2. 新建Project(项目),类型为“Modeling Projects”

3. 在解决方案管理器中右击刚刚新建的Modeling Project,添加新item

4. 选择“Sequence Diagram”  然后OK即可, 文件扩展名为“.sequence”

5. 从左边的工具栏拖放元素到用例图中。

 

Visual Studio 2010提供的Sequence Diagram支持:

在Visual Studio 2010 CTP中,Sequence Diagram元素如下:

1. Lifeline 生命线,表示序列中,建模的角色或对象实例,可通过设置其Actor属性是否为true来确定它是一个角色还是对象实例。

     

2. 消息,包括:

   
2.1 Synchronous 同步消息

           

  2.2 Asynchronous 异步消息

       

3. Create 用来创建生命线元素和实例。


    

4. Comment 注释标签(与其它图形中的相似)

5. Comment Link 注释链接线(与其它图形中的相似)

6. Interaction Use 交互应用,用于创建一个可复用的序列,或创建其它序列的一个引用

   

7. CombinedFragment 组合碎片,在下文中详细介绍

 

CombinedFragment

CombinedFragment 组合碎片(或称为变体方案,选择项,和循环)UML 1.x中仅有的“in-line”约束不足以处理一个建模序列的必需逻辑。而UML 2.0 已经通过去掉“in-line”约束,增加一个叫做组合碎片的符号元件,解决了这一个问题。一个组合碎片用来把一套消息组合在一起,在一个序列图中显示条件分支。而且,UML 2 规范指明了组合碎片的 11 种交互类型。

在VSTS 2010中,虽然组合碎片没有出现在Toolbox中,但也对CombinedFragment 提供了非常完备的支持。
我们选中一个消息,点击右键,在目录的"Surround With"(以……封装)中,我们可以找到如下12种组合碎片:

 

Sequence Diagram绘制步骤:

 

A. 定义参与者

    
1. 从工具栏中拖放Lifeline元素到序列图中并命名。

    
2. 将需要标记为“活动者”的Lifeline的Actor属性设置为True。

B. 创建消息

     在起点Lifeline上右键
--》添加中选择需要创建的消息,或“Create”,并链接到终点Lifeline

C. 组合碎片

    
1. 在需要组合的消息线上右键--》Surround With中选择适当的组合碎片
    
    
2. 设置组合碎片的相应属性

D. 注释

    若需要添加注释,则拖放注释元素到图中,写好注释后使用Comment Link将注释和与其相关的元素链接起来

 

使用Sequence Diagram设计消息序列:

序列图算是UML中很复杂的一种图,在VS2010中,MS尽量简化了标准中的定义,保留并稍加扩展最核心的部分,作为动态图,它在OOAD系统行为的设计中起着主要作用,一张好的序列图能够在模块的层次上将应用程序内部的逻辑交互清晰的展示出来,一方面可以从中分析出静态设计(组件、类设计)时需要实现或扩展的接口和基类,另一方面也为静态设计之后的编码阶段提供重要的参照。 

下文预告:

使用VisualStudio 2010从分析到实施(5)——使用Component Diagram设计系统结构

posted @ 2008-11-24 00:30 LanceZhang 阅读(...) 评论(...) 编辑 收藏