华师大面向对象程序设计-Lec08_第5章顺序图讲解

上传人:最**** 文档编号:117925178 上传时间:2019-12-11 格式:PPT 页数:22 大小:1.05MB
返回 下载 相关 举报
华师大面向对象程序设计-Lec08_第5章顺序图讲解_第1页
第1页 / 共22页
华师大面向对象程序设计-Lec08_第5章顺序图讲解_第2页
第2页 / 共22页
华师大面向对象程序设计-Lec08_第5章顺序图讲解_第3页
第3页 / 共22页
华师大面向对象程序设计-Lec08_第5章顺序图讲解_第4页
第4页 / 共22页
华师大面向对象程序设计-Lec08_第5章顺序图讲解_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《华师大面向对象程序设计-Lec08_第5章顺序图讲解》由会员分享,可在线阅读,更多相关《华师大面向对象程序设计-Lec08_第5章顺序图讲解(22页珍藏版)》请在金锄头文库上搜索。

1、1 第5章 顺序图 用例图描述了系统必须做什么;类图描述了组成 系统结构各部分的各种类型。这缺少一部分内容 ,因为单凭用例和类还无法描述系统实际上将如 何运作。为了满足这方面的要求,这就需要使用 交互图,特别是顺序图。 顺序图作为交互图的重要成员,它描述了系统运 行时各对象之间的如何进行交互。除顺序图外, UML2.0中的交互视图还包括:通信图和时序图 。使用这几种图可以帮助用户准确地为组成系统 各部分之间如何交互建模。 2 本章学习要点: 理解为什么要建模顺序图 理解协作图的作用 了解顺序图中的组成 了解顺序图中的消息类型 能够在顺序图建模创建对象和迭代 理解消息的控制,并能够使用条件控制消

2、 息 理解消息中的参数 理解顺序图中的顺序片段 建造简单的顺序图 3 5.1 定义顺序图 顺序图描述了对象之间传递消息的时间顺序 ,它用来表示用例中的行为顺序。当执行一个用 例行为时,顺序图中的每条消息对应了一个类操 作或状态机中引起转换的触发事件。它着重显示 了参与相互作用的对象和所交换消息的顺序。 顺序图代表了一个相互作用、在以时间为次 序的对象之间的通讯集合。不同于协作图,顺序 图包括时间顺序但是不包括对象联系。它可以以 描述形式存在,也可以以实例形式存在。顺序图 和协作图表达了相似的信息,但是它们以不同的 方式显示。 4 5.2 顺序图的组成 顺序图主要有4个标记符:对象、生命线、消息

3、和激活。在UML 中,顺序图用一个二维图描述系统中各个对象之间的交互关系。 其中,纵轴是时间轴,时间沿竖线向下延伸。横轴代表了参与相 互作用的对象。当对象存在时,生命线有一条虚线表示,当对象 的过程处于激活状态时,生命线是一双道线。消息用从一个对象 到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到 下排列,如图5-1所示。从该图容易看出,顺充图清楚地描述了 随时间顺序推移的控制流轨迹。 5.2.1 对象与生命线 类定义了对象可以执行的各种行为,从但是在面向对象 的系统中,行为的执行者是对象,而不是类,因此协作 图通常描述的是对象层次而不是类层次。对象可以是系 统的参与者或者任何有效的系

4、统对象。顺序图中的每个 对象显示在单独的列里。一个对象标识符(带有对象名 称的矩形框)放置在代表生成这个对象的消息的箭头的 末端,其垂直位置表示这个对象第一次生成的时间。如 果一个对象在顺序图的第一个操作之前就存在,对象标 记符就应画在任何消息之前顺序图的顶部。将对象置于 顺序图的顶部意味着在开始的时候对象就已经存在。与 此相反,如果对象的位置不在顶部,那么表示对象是在 对象的交互过程中,由其他对象创建。 5.2.2 消息 在任何一个软件系统中,对象都不是孤立存在的,它们之 间通过消息进行通信。消息是用来说明顺序图中不同活动 对象之间的通信,因此,消息可以激发某个操作、创建或 解构某对象。在顺

5、序图中,消息是从一对象的生命线指向 另一个对象的生命线的直线箭头来表示,箭头上面还可以 表明要发送的消息名。在各对象间,消息发送的次序由它 们在垂直轴上的相对位置决定。如图所示,发送消息2的时 间是在发送消息1之后。 6 5.3.3 激活 当一条消息被传递给对象的时候,它会触发该对象的 某个行为,这时就说该对象被激活了。在生命线上,激活用 一个细长的矩形框表示。如图所示,矩形本身被称为对象的 控制期,控制期说明对象正在执行某个动作。 7 5.4 创建对象和分支、从属流 到目前为止,顺序图中的对象在创 建顺序图都已经创建好的。事实上,顺 序图中的对象并不一定需要在顺序图的 整个交互期间存活,对象

6、可以根据传递 进来的消息创建或销毁。在本节将学习 如何在创建顺序图的过程中创建对象, 以及使用分支和从属流来控制顺序图的 控制流。 8 5.4.1 创建对象 对象的创建有几种情况,在前面讲述对象生命线时,曾经 说过,对象的默认位置在图的顶部,如果对象在这个位置 上,那么说明在发送消息时,该对象就已经存在;如果对 象在执行的过程中创建的,那么它应该处在图的中间部分 。即时创建对象标记符如图中的示例所示。创建一个对象 的主要步骤是发送一个create消息到该对象。对象被创建后 就会有生命线,这与顺序图中的任何其他对象一样。创建 一个对象后,就可以像顺序图中的其他对象那样来发送和 接收消息。在处理新

7、创建的对象,或顺序图中的其他对象 时,都可以发送destroys消息来删除对象。要想说明某个对 象被销毁,需要在被销毁对象的生命线上放一个X字符。 9 5.4.2 分支和从属流 有两种方式来修改顺序图的控制流:使用分支 和使用从属流。控制流的改变是由于不同的条 件导致控制流走向不同的道路。 分支允许控制流走向不同的对象。如图 10 5.5 建模时间 消息箭头通常是水平的,说明传递消息的时间很短,在 此期间不会“发生”其他事件。对多数计算而言,这是正确 的假设。但有时从一个对象到另一个对象之间的消息之 间可能存在一定的时间延迟,即消息传递不是瞬间完成 的。如果消息的传送需要一定时间,在此期间可以

8、出现 其他事件(来自对方的消息到达),则消息箭头可以画 为向下倾斜的。这种情况发生在两个应用程序通过网络 相互通信时。如图 11 5.6 建模迭代 通过建模迭代可以实现消息的重复执行。在顺序图中,建 模人员常用的建模迭代消息是通过一个矩形把重复执行的 消息包括在矩形框中,并且提供一个控制重复执行的控制 条件。如图所示重复执行的消息。 12 5.7 消息中的参数和序号 顺序图中的消息除了具有消息名称之外还可以包含许多附 加的信息。例如,在消息中包含参数,返回值和序列表达 式。 消息可以与类中的操作等效。即消息可以带有可传递到被 调用对象的参数列表,并且最多可以包含一个返回给调用 对象的返回值。下

9、面的示例演示了如何使用指定参数和返 回值的消息来计算并且返回一个数平均值。如图所示: 13 5.8 管理复杂交互的顺序片段 对于使用过UML1.x顺序图的人而言,上述内 容已经相当熟悉。这对于简单交互而言已经足够 。在UML2.0中,为了帮助建模者处理顺序图中 需要捕捉的细节,创建有组织且结构化的顺序图 ,以显示复杂的交互,例如循环和迭代。为此 UML2.0提供了顺序图片段。 14 5.9 建造顺序图模型 创建顺序图模型包含4个项任务: 确定需要建模的用例。 确定用例的工作流 确定各工作流所涉及的对象,并按从左 到右顺序进行布置。 添加消息和条件以便创建每一个工作流 15 5.9.1 确定用例

10、与工作流 建模顺序图的第一步是确定要建模的用例。系统 的完整顺序图模型是为每一个用例创建顺序图。 在本练习中,将只对系统的借阅图书用例建模顺 序,因此,这里只考虑借阅图书用例及其工作流 。借阅图书用例包至少括4个工作流: 借阅图书操作一切正常。 在借阅图书操作的过程中,被提醒该学生有超期 借阅信息。 所借图书数目已经超过规定。 借阅者的借阅证失效 16 5.9.2 布置对象与添加消息 在确定用例的工作流后,下一步是从左到右 布置工作流所涉及到的所有参与者和对象。因为 这里只演示借阅图书用例的顺序图,该用例只与 图书管理员一个参与者相关,所以图中只绘制了 一个参与者图书管理员。 接下来就要为每个

11、工作流作为独立的顺序图 建模。从基本的工作流开始,它是没有出现其他 情况,并且需要的决策最少的工作流。 17 练习: 下面列出了打印文件时的工作流: 用户通过计算机指定要打印的文件。 打印服务器根据打印机是否空闲,操作打印机 打印文件。 如果打印机空闲,则打印机打印文件; 如果打印机忙,则将打印消息存放在队列中等 待。 经分析人员分析确认,该系统共有四个对象 Computer、PrintServer、Printer和Queue。请 给出对应用于该工作流的顺序图。 18 19 下面是一个客户在ATM机上取款工作流。 客户选择取款功能选项。 系统提示插入IC卡。 客户插入IC卡后,系统提示用户输入密码。 客户输入自己的密码。 系统检查用户密码是否正确。 如果密码正确;则系统显示用户账户上的剩余金额,并 提示用户输入想要提取的金额。 用户输入提取金额后,系统检查输入数据的合法性。 在获取用户输入的正确金额后,系统开始一个事条处理 ,减少账户上的余额,并输出相应的现金。 从该工作流中分析求出所涉及到的对象,并用顺序图描 述这个过程。 20 21 end 22

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号