状态图和顺序图
- 格式:ppt
- 大小:146.00 KB
- 文档页数:36


第4章 顺序图和协作图
4.1 交互图概述
在一个待开发的系统中,任何对象都不是孤立存在的,系统中的这些对象都是通过传递消息进行交互的。因此在设计系统时,就免不了对交互进行缄默,并用交互图展现出来。
4.1.1 交互的定义
当需要对类操作、类、构件、用例乃至整个系统的控制流进行建模时,一定离不开“交互”。
交互:一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为。
交互图:是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。通常用来描述一个用例的行为,显示该用例中所涉及的对性和这些对象之间的消息传递情况
在大多数情况下,消息通常是指启动一个操作或发送一个信号,以及创建或销毁一个对象。
4.1.2 UML交互图的类型
顺序图:是一种强调消息时间顺序的交互图,着重描述对象按照时间顺序的消息交换,为读者提供了控制流随着时间推移的清晰的可视化轨迹。
协作图(UML 2.0中的通信图):强调的是参加交互的对象的组织,着重描述系统成分如何协同工作,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹 。
顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们可以相互转化,并且转换过程不会丢失信息。
定时图(UML 2.0中新增):采用了一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序,而且它还允许可视化的表示每条生命线的状态变化,当需要对实时时间进行定义时,采用定时图可以很好的满足。
交互概述图(UML 2.0中新增):是交互图和活动图的混合物。
定时图和交互概述图是两种特殊的变体。
4.1.3交互图和类(图)
4.2 顺序图
顺序图:显示的是参与交互的对象及对象之间消息交换的顺序,用来表示用例中的行为顺序。
图显示的是汽车租赁系统中客户取车的顺序图,涉及5个对象:客户、预定请求、工作人员、工作记录和汽车。取车的动作从客户向工作人员提出取车要求并出示清单开始,工作人员检查客户的预订请求,确认后客户可以付款。然后工作人员填写工作记录,同时登记汽车状态,最后客户取车。可以看出在UML中,顺序图将交互关系表示为二维图。其中,纵轴是时间轴,时间沿竖线向下延伸,按时间递增顺序列出各个对象所发出和接收的消息。水平方向是对象维,水平方向排列的是参与交互的对象。一般主要参与者(或人型参与者)放在最左边,次要参与者(系统参与者)放在最右边。
实用文案
标准文档 UML各种图例
面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处.
UML中有九种建模的图标,即:
用例图
类图
对象图
顺序图
协作图
状态图
活动图
组件图
配置图
本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.
为什么UML很重要?
为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成实用文案
标准文档 为了这个行业中的设计师和施工人员的必修课.
写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.
UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.
模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.
类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.
用例图
状态机图
一、 问题描述
面对目前大学生日益懒惰的现象,某企业计划开发一套针对大学食堂的网上自动订餐、派送、支付等功能的电子商务系统。具体包括(但不限于)
1、任何人均可实名注册并登录系统;
2、当日菜品浏览和订餐;
3、可实时浏览订单状态。如果尚未配送,可撤销菜单;
4、授权人员进行配送并更新状态;
5、支付方式可以是货到付款,可以是从订餐者个人校园卡中扣除(如果余额不足则支付和订餐失败),也可以是其他方式;
6、正常结束和异常结束;
7、系统可实现整体的查询和统计分析功能。
请根据上述需求给出系统的用例图、类图、活动图(泳道)和顺序图和状态机图。
二、 解题思路
1、 用例图
(1)、一般客户用例图
图1、客户用例图
(2)维护人员用例图
图2、维护人员用例图
2、 活动图
(1)、一般客户活动图
图3、客户活动图
(2)、维护人员活动图
图4、维护人员活动图
3、 类图
图5、类图
4、 顺序图
图6、顺序图
5、 状态机图
(1) 客户状态机图
图7、客户状态机图
(2) 系统维护人员状态机图
图8、系统维护人员状态机图
三、 实验总结
通过此次操作,对Rational rose软件有了更进一步的了解,对用例图,活动图,顺序图和类图的画法也有了进一步的学习,不过尚有一些问题,如顺序图中对于关系不能删除修改,对于需要分支的关系也无法建立,类图中的关系掌握的不是特别熟练,还有问题描述的有些出入,不知道是在客户订餐后还是在支付后,维护人员才会配送并更新状态,总之,还需要老师您的讲解。
实验三 创建顺序图
一、实验目的
1.理解顺序图的基本概念;
2. 掌握顺序图的组成要素及含义;
3. 掌握在Rational Rose中绘制顺序图的操作方法。
二、 预备知识
顺序图(序列图)sequence diagram
创建序列图(图3-1)
在浏览器内的Logic 视图中单击鼠标右键,选择new→sequence diagram就新建了一张序列图。也可以在浏览器中use case视图中选择某个用例,然后右击这个用例,选择new→sequence diagram。
图3-1:创建序列图
在序列图中放置参与者和对象(图3-2)
在序列图中的主要元素之一就是对象,相似的对象可以被抽象为一个类。序列图中的每个对象代表了某个类的某一实例。
(1) 把用例图中的该用例涉及的所有参与者拖到sequence图中。
(2) 选择工具栏中的object按钮,单击框图增加对象。可以选择创建已有类的对象,也可以在浏览器中新建一个类,再创建新的类的对象。双击对象,在弹出的对话框中的“class”里确定该对象所属的类。
(3) 对象命名:对象可以命名也可没名字。双击对象,在弹出的对话框中的“name”里给对象取名。
(4) 如果是多重对象,在图3-2的下方,将复选框【Multiple insta】选中。
图3-2:放置参与者和对象
说明对象之间的消息(图3-3)
(1) 选择message工具栏按钮。
(2) 单击启动消息的参与者或对象,把消息拖到目标对象和参与者。
(3) 命名消息。双击消息,在对话框中“General”里的“name” 中输入消息名称。
(4) 删除消息:选中消息线,右击,选择delete操作。
(5) 显示或取消消息编号。消息编号在顺序图中是可选的,选择菜单栏的Tools----Options菜单项,在出现的对话框中选择Diagram选项卡,将“Sequence
numbering”复选框勾选,就可以显示消息编号;如果不勾选,消息编号不会显示在时序图中。