2、参与者如何采用若干顺序步骤与系统对象交互的模型统对象交互的模型。n顺序图样式顺序图样式顺序图建模顺序图建模二、为什么要建模顺序图建模顺序图有许多理由,顺序图与活动图具有类似的作用。其中重要的理由就是实现用例。任何用例都可以使用顺序图进一步阐明和实现。顺序图刻画了用例具体实现的流程,比活动图更能够表示细节,因此适用于详细设计。UML-5-顺序图与用例图和类图的关系顺序图与用例图和类图的关系三、顺序图的标记符顺序图有两个主要的标记符:活动对象和这些活动对象之间的通信消息。活动对象可以是任何在系统中扮演角色的对象,不管它是对象实例还是参与者,如下图所示。1活动对象活动对象可以是系统的参与
6、参与者表示为活动对象参与者表示为活动对象的建模可以说明参与者如何与系统交互,以及系统如何与用户交互。参与者可以调用对象,对象也可以通知参与者,如下图所示。可以把消息发送给不是其直接相邻的参与者或者对象。可以把消息发送给不是其直接相邻的参与者或者对象。2消息消息用来说明顺序图中不同活动对象之间的通信。消息从活动对象生命线到接收对象生命线的箭头表示。箭头上面标记要发送的消息,如下图所示。活动对象之间发送的消息是顺序图的关键。消息说明了对象之间的控制流,对象是如何交互的。带箭头的连线,表示对象之间传输的信息。带箭头的连线,表示对象之间传输的信息。对象之间的交互是通过互发消息来实现的。一个对
7、象可对象之间的交互是通过互发消息来实现的。一个对象可以请求(要求)另一个对象做某件事件。以请求(要求)另一个对象做某件事件。消息从源对象指向目标对象。消息一旦发送便将控制从消息从源对象指向目标对象。消息一旦发送便将控制从源对象转移到目标对象。源对象转移到目标对象。消息消息时序图中,消息的阅读顺序是严格自上而下的时序图中,消息的阅读顺序是严格自上而下的消息的类型:在UML中,总共有4种类型的消息,如下图所示。到目前为止只看到了一种消息,即简单消息(flatmessage)。(1).同步消息同步消息(synchronousmessage)代表一个操作调用的控制流。同步消息的发送者把控制
10、CompileApplication用例的顺序图操作:Developer请求Compiler执行编译Compiler请求FileSystem加载文件Compiler通知自己执行编译Compiler请求FileSystem保存对象代码Compiler请求Linker链接对象代码Linker请求FileSystem加载对象代码Liker通知自己执行链接Linker请求FileSystem保存编译的结果下面看一个意义更加丰富的示例。对于CompileApplication用例,我们可以创建一个成功编译工作流的顺序图。一个成功编译工作流的顺序图五、顺序图的其他技术1创建对
11、象创建对象的标记符如下图中的示例所示。有一个主要步骤用来把“create”消息发送给对象实例。对象创建之后就会具有生命线,就像顺序图中的任何其他对象一样。现在可以像顺序图中的其他对象那样来使用该对象发送和接收消息。在处理新创建的对象,或者处理顺序图中的任何其他对象时,都可以发送“destroys”消息来删除对象。若要想说明某个对象被销毁,需要在被销毁对象的生命线上放一个X字符。3分支和从属流有两种方式来修改顺序图的控制流:使用分支和使用从属流。控制流的改变是由于不同的条件导致控制流走向不同的道路。注意消息的开始位置是相同的,分支消息的结束“高度”也是相等的。这说明在下一步中,其中之一
12、将会执行,如下图所示。在下面的示例中,Editor在用户删除文件或者保存文件时向Filesystem发送一条消息。显然,Filesystem将会执行两种完全不同的活动,并且每一个工作流都需要独立的生命线,如下图所示。六、学习如何建模顺序图创建顺序图包含4项任务:1)确定需要建模的工作流。2)从左到右布置对象。3)添加消息和条件以便创建每一个工作流。4)绘制总图以便连接各个分图。例子:建模“教师查询学生分数”1确定工作流建模顺序图的第一步是确定将要建模的工作流。为此,需要至少标识出3个要建模的工作流:教师成功地检查学生分数教师试图检查某个学生分数,但是该学生在系统中不存在。