顺序图

更新时间:2023-07-01 22:38:31 阅读: 评论:0

4.2  顺序图
构建顺序图是以图形方式记录情景(scenarios)的方式。每当要记录一系列动作时,就可以构建顺序图,而不是编写情景。什么时候要这么做呢?由用例图部分可知,用例由一系列任务(情景)构成,可通过构建顺序图将它记录下来。假如有图4-8中的文本记录的情景,为什么要构建一个顺序图呢?原因有三个:
要记录支持对象:可记录通常不在情景中描述的所有辅助对象。由图4-8中的情景可知,可能需要一个订单表,可从中提取列表,选择用哪些订单构建清单。如果用顺序图记录,则比在情景中用普通文本描述更容易。
要记录技术问题:随着项目的发展,可能要记录一些关于顺序图的技术问题。例如,可记录所需要的参数类型和默认值等。如果这个阶段了解这些信息,则确实应该记录下来,开发人员和测试者将用到这些信息。如果将这些信息记录在顺序图中,则更容易理解要实现的内容。
一幅图片能抵得上千言万语:图形更容易记录问题,如果用普通文字描述的话,可能需要很多话语才能说清楚。
顺序图与后面介绍的协作图属于同一系列。二者的区别在于:顺序图基于时间显示情景,而协作图显示对象之间的关联方式。所谓基于时间,即一件事情先发生,接着发生另一件事情,事情完全按描述的顺序发生。
上面提到过,顺序图常与用例(情景)相关。不过,顺序图也可用于其他许多目的。用例一节曾介绍过,如果不了解正处理的业务,或任务非常复杂,需要了解业务过程的更多信息,则可执行业务分析。在执行业务分析时,可用顺序图记下所有过程(这很可能是业务用例)。实际上,顺序图可能是记录要实现内容的最强大工具。
顺序图包含以下一些元素:
      对象(objects)
      激活(activations)
      消息(messages)
      分公司章程注解(notes)
下面几节将描述这些顺序图元素。
4.2.1  对象
解决方案中对象的表示符号是矩形,如图4-16所示。顺序图中的对象是解决方案中的持久元素。它们可能是表、物理窗体或类。一般情况下,对象表示解决方案中的类,也可表示节点、行动者和表等。构建顺序图的一个主要原因是:可了解顺序图中可能作为对象的候选对象。
4-16  包含类生命线的顺序图
练习4-8显示如何将对象插入顺序图。
练习4-8
(1) VEA中新建UML偶尔的近反义词模型。
注意:
在新模型中执行本练习时,将自动显示顺序图。或者,可右击需要插入顺序图的包,并选择形容岁月的词语New | Sequence Diagram插入顺序图。
(2) Shapes窗口中的UML Sequence选项卡中将Object Lifeline(对象生命线)拖入图中。
(3) 双击对象生命线,将对象生命线的名称改为Class1,该名称必须惟一。
注意:
UML模型不包含任何类时(如本例),在打开UML Classifier Role Properties对话框(如双
Object Lifeline形状)时,将自动打开UML Class Properties对话框。这是因为每个对象必须与分类器()相关。如果UML模型中已有类,则当双击Object Lifeline形状时,UML Class Properties对话框不会自动打开。此时,可通过选择UML Classifier Role Properties对话框中的Classifier列表,来设置分类器。如果不存在,可单击New按钮创建,并指定设置。
(4) 在自动打开的UML Class Properties对话框中,可接受新建类(分类器)的默认名Class1。单击OK。顺序图如图4-16所示。
提示:
当同时按下CtrlShift键时,指针将变成一个放大镜,左击将放大视图,右击将缩小视图。在放大或缩小时,新视图将居中。
分类器(classifier)由类生命线表示。在本例中,类生命线表示Class1类。由第2章知,对象可以是人,也可以是物,故可以是类。对象也可以是行动者。在练习4-9中,为顺序图添加一个行动者对象。
练习4-9
(1) 右击准备放置行动者的包,从弹出菜单中选择New | Actor,在Model Explorer中构建行动者。
(2) UML Actor Properties对话框中单击OK,以接受默认名(Actor1)
(3) Object Lifeline拖入顺序图。
(4) 双击Object Lifeline形状,将名称改为Actor1(不一定使Object Lifeline与其分类器同名,但名称必须惟一)。如图4-17所示。
4-17  包含类和行动者生命线的顺序图
由图4-17可看到,Object Lifeline形状已改为Actor形状,因为它通过分类器设置表示行动者。另外注意Object Lifeline形状下的虚垂线,这就是生命线。生命线表示时间,其长度应反映实际时间(对象被销毁前的生命期)。不能将动作直接连接到生命线,为达到目的,需要使用激活,见4.2.2节。
4.2.2  激活
激活是可连接到对象生命线的细长矩形。这样,对象生命线(对象)能参与动作。动作(action)类似于事件,可由用户(例如,当用户双击时)、另一个系统或信号(例如,日子或日期的特定时间)触发。
练习4-10演示如何为对象添加激活。
练习4-10
(1) 对于在练习4-8中构建,在练习4-9中进行修改的顺序图,将胃痛喝什么Activation拖到Class1对象生命线。
(2) Activation形状的终点连接到对象生命线的连接点,两个连接点必须相连(可能要拖动Object Lifeline形状进行扩展,使其大于Activation形状)
(3) 重新调整Activation形状的长度,以表示执行动作需要的时间。不能指定时间量,如30分钟,但可指定动作将占用多少对象生命线。例如,如果占用整个生命线,则该动作占用100%的对象生命期。如图4-18所示。
4-18  包含Activation形状的顺序图
由图4-18可以看到,Class1对象准备参与动作,将消息传给其他对象,或从其他消息接收消息。
4.2.3  消息
对象(如类、表等)是解决方案的持久元素。消息是对象之间执行的动作,经常是类的方法,是未实例化对象或代码模块中的函数。消息标志着两个对象之间的通信,从而表示一个动作。在顺序图中,消息只表示一条消息[9]
顺序图存在以下消息类型,如图4-19所示。
4-19  6种顺序图消息类型
消息:这是普通消息。它连接到两个不同对象生命线的连接点。在图4-19中,Message1
是个消息例子。此类消息表示一个动作,与接收对象(箭头所指的对象)的方法或操作相关。换言之,接收消息的对象执行这个请求上的动作。消息可包含传给要执行方法的参数。
消息(调用)消息调用的流程类型是过程调用,即消息调用是过程调用的一部分。尽管如此,消息调用的行为类似于普通消息。图4-19Message2Message3是消息调用。Message3Message2不同,它是到发送对象本身的消息调用(例如,给出一些多态行为)
消息(返回)返回消息是将信息返给对象的消息,一般发生在执行动作之后。返回信息不执行动作,仅返回信息,与普通消息的方法或操作无关。在图4-19中,Message4Message6是返回消息,但Message6是发送对象本身的所返回消息。
消息(异步)异步调用是流程类型被设置为异步的消息。这意味着,发送对象将消息发送给接收对象,并不等待接收对象的响应。发送对象可继续其他操作,同时接收对象执行发送消息的动作请求。在图4-19中,Message5是异步消息。异步消息与普通消息和消息调
用不同,因为异步消息不是真正的方法(操作),而是一种接收(reception)。接收仅指示分类器(操作)能对指定信号做出反应。
要将一条消息添加到顺序图中,将Message形状从UML Sequence选项卡拖到图中,并将连接点连接起来。消息可包含参数,如果确保将所需参数添加到消息,则开发人员可真正使用此类文档来构建类图。还可指定顺序编号,这有利于表示发送消息的顺序及哪些消息是相关的。将顺序图的编号用作快速索引,顺序说明了消息的位置(在协作图中,顺序编号更加重要)。双击消息,并在Sequence文本框中输入编号,即可指定顺序编号。
设有一个对象,一个名为Order的类,该对象包含称为GetList的方法或操作,它检索出特定日期的订单列表。要检索订单列表,需要从Orders表提取信息,Orders表包含所有订单。Orders表也是一个对象。可以记录该对象,见练习4-11
练习4-11
(1) VEA中新建UML模型。
(2) 使用名称OrderImplementation Class定型,在Top Package包新建一个类。
(3) 使用名称1mv等于多少vOrders,在Top Package包构建另一个类。
(4) Object Lifeline形状拖入当前图,将其命名为Order。将这个分类器设置为Top Package::Order
(5) Object Lifeline形状拖入当前图,并将其命名为Orders。再将这个分类器设置为Top Package::Orders,如图4-20所示。
4-20  包含对象的顺序图
注意:
在图4-20中,使用Implementation Class定型来指示类是一个实现类。类也可能是表示类型的类型类(type class)。实现类可以是特殊类型的实现,在建模时,在类型类和实现类之
间构建关系。
下一步添加GetList动作,该动作从Orders表检索特定日期的所有订单。要添加动作,必须首先将Activation放在Object Lifeline上。可通过从UML Sequence选项卡拖动Message形状,将GetList消息放在图中,并连接参与消息交互的两个对象的连接点。练习4-12演示了该方法。关爱男性健康
练习4-12
(1) Activation形状拖放到练习4-11构建的顺序图的Order对象生命线上。
(2) Activation形状拖放到Orders对象生命线上,如图4-21所示。端详什么意思
4-21  包含对象和激活的顺序图
(3) Message形状拖入图中,将Order对象生命线和Orders对象生命线连接起来,如图4-22示弱的近义词所示。可以看到,Message1消息从Order对象发送到Orders对象。不过,它还未在Orders对象上执行任何操作。

本文发布于:2023-07-01 22:38:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1063702.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:SQL操作语句
标签:对象   消息   顺序   生命线   动作   表示
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图