实例解析UML序列图使用

开发 架构
本文向大家介绍一下UML序列图,UML序列图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的对象实例。

本文和大家重点讨论一下UML序列图,它显示具体用例(或者是用例的一部分)的详细流程。它几乎是自描述的,并且显示了流程中中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。

UML序列图

UML序列图显示具体用例(或者是用例的一部分)的详细流程。它几乎是自描述的,并且显示了流程中中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。
UML序列图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的对象实例。

UML序列图的绘制非常简单。横跨图的顶部,每个框(参见图4)表示每个类的实例(对象)。在框中,类实例名称和类名称之间用空格/冒号/空格来分隔,例如,myReportGenerator:ReportGenerator。如果某个类实例向另一个类实例发送一条消息,则绘制一条具有指向接收类实例的开箭头的连线,并把消息/方法的名称放在连线上面。对于某些特别重要的消息,您可以绘制一条具有指向发起类实例的开箭头的虚线,将返回值标注在虚线上。就我而言,我总喜欢绘制出包括返回值的虚线,这些额外的信息可以使得UML序列图更易于阅读。

阅读UML序列图也非常简单。从左上角启动序列的"驱动"类实例开始,然后顺着每条消息往下阅读。记住:虽然图4所示的例子UML序列图显示了每条被发送消息的返回消息,但这只是可选的。

图4:一个示例UML序列图

通过阅读图4中的示例UML序列图,您可以明白如何创建一个CD销售报告(CDSalesReport)。其中的aServlet对象表示驱动类实例。aServlet向名为gen的ReportGenerator类实例发送一条消息。该消息被标为generateCDSalesReport,表示ReportGenerator对象实现了这个消息处理程序。进一步理解可发现,generateCDSalesReport消息标签在括号中包括了一个cdId,表明aServlet随该消息传递一个名为cdId的参数。当gen实例接收到一条generateCDSalesReport消息时,它会接着调用CDSalesReport类,并返回一个aCDReport的实例。然后gen实例对返回的aCDReport实例进行调用,在每次消息调用时向它传递参数。在该序列的结尾,gen实例向它的调用者aServlet返回一个aCDReport。

请注意:图4中的UML序列图相对于典型的UML序列图来说太详细了。然而,我认为它才是足够易于理解的,并且它显示了如何表示嵌套的调用。对于初级开发人员来说,有时把一个序列分解到这种详细程度是很有必要的,这有助于他们理解相关的内容。

【编辑推荐】

  1. 掌握六大技巧轻松实现UML序列图绘制
  2. 养成良好的UML序列图绘制习惯
  3. Java建模:UML序列图
  4. 整洁的UML图如何绘制?
  5. 利用UML序列图设计Java应用程序

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-06-13 12:40:44

UML序列图

2010-07-07 14:33:11

UML序列图

2010-07-01 16:38:28

UML序列图

2010-07-06 12:54:17

UML序列图

2010-07-05 11:01:05

常用UML图

2010-06-13 11:28:39

UML序列图

2009-04-23 14:21:29

UML序列图绘制

2010-07-02 08:57:45

UML用例图

2010-07-02 09:45:19

UML部署图

2010-07-12 10:15:11

UML对象图

2010-06-17 18:31:12

绘制UML序列图

2010-07-01 16:48:54

UML序列图

2010-07-07 14:28:52

绘制UML序列图

2010-07-06 14:27:42

Visio绘制UML序

2010-07-07 17:23:10

UML序列图

2010-07-07 17:05:26

UML序列图

2010-07-12 14:08:59

UML序列图

2010-06-11 17:44:10

UML对象图

2010-07-01 15:22:28

UML顺序图

2010-07-07 17:14:44

UML序列图
点赞
收藏

51CTO技术栈公众号