5.交互图(序列+协作)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

交互图交互图概述序列图的定义和作用序列图的组成元素协作图交互图概述交互图(InteractionDiagram)描述对象之间的关系描述对象之间的信息传递作用通常用来描述某个用例的行为为实现某个用例,为系统的动态行为建模种类序列图(SequenceDiagram)协作图(CollaborationDiagram)序列图(sequencediagram)定义:描述对象之间的消息交互的二维图又称“时序图”或“顺序图”横向:代表在协作中各独立对象的角色纵向:时间轴,沿竖线向下延伸。用于强调消息在时间轴上的先后顺序序列图(sequencediagram)作用:通常用来描述用例的实现:表明了由哪些对象,通过消息相互协作来实现用例的功能可以根据对象之间的交互关系来定义类的职责序列图(sequencediagram)自动车锁系统中的锁车用例序列图的组成元素组成元素对象生命线:表示对象的生存期激活(控制焦点):表示对象正在执行某个操作消息:表示对象之间的通讯生命线激活对象顺序图的组成消息对象序列图中的对象系统的参与者任何有效的系统对象对象的表示形式图形:包围名称的矩形框名称:对象名:类名特点:下部有一条被称为“生命线”的垂直虚线对象对象的类型Persistence(持续性)Persistent(持续):对象能够保存在数据库或其它持续存储器中Static(静态):保存在内存中,直至程序终止才会销毁Transient(临时):临时保存在内存中对象对象的位置对象置于顺序图的顶部:意味着在交互开始的时候对象就已经存在对象的位置不在顶部:表示对象是在交互的过程中被创建的主角:一个交互的发起对象,通常在最左边反应系统角色:与主角交互的对象,通常在图的右边生命线生命线(Lifeline)对象的底部中心位置的一条垂直的虚线这是一个时间线,其长度取决于交互持续的时间,用来表示对象在一段时间内的存在对象存在的时段对象在拥有控制线程时被动对象被外部调用时销毁对象激活/控制焦点(FocusofControl)在对象的生命线上,包含一个矩形,表示对象处于激活状态处于激活状态的对象正在执行某个任务对象在完成自己的工作后,去除激活,处于空闲状态顶端与激活时间对齐,底端与完成时间对齐激活/控制焦点可以通过修改Options中的Diagram来决定是否显示激活状态。消息消息的定义:一个对象(发送者)向另一个或几个其他对象(接收者)发送信息号一个对象(调用者)调用另一个对象(被调用者)的操作消息的组成包括消息号、消息名、消息参数。例如:1.login(uName,uPwd)不同类型的消息不同类型的消息不同类型的消息Synchronization(同步性)Simple(常规)Synchronous(同步)Balking(阻止)Timeout(超时)ProcedureCall(过程调用)Asynchronous(异步)Return(返回)Frequency(频率)Periodic(定期):按照固定时间间隔发送Aperiodic(不定期):只发送一次,或者在不规则的时间发送不同类型的消息序列图的绘制顺序练习1:绘制序列图仓库管理员处理产品入库工作流程,基本工作流程如下:1.仓库管理员将通过库存管理子系统将生产的产品处理入库。2.仓库管理员通过库存管理子系统中的产品入库界面获取产品信息。3.产品入库界面根据产品的编号将产品类实例化并请求该类产品信息。4.产品类实例化对象根据产品的编号加载产品信息,并提供给产品入库界面。5.仓库管理员通过产品入库界面增加产品数目。6.产品入库界面通过产品类实例化对象修改产品信息。7.产品类实例化对象向产品入库界面返回修改信息。8.产品入库界面向仓库管理员显示添加成功信息。练习1:绘制序列图练习2为ATM存款用例绘制一个序列图转账用例序列图练习3为选课系统中的选课用例绘制序列图。假设学生已经成功登陆系统,选择的事件可以简化如下:选课事件:1.进入选课主界面。2.点击选课。3.系统显示所有课程信息。4.学生选择课程。5.系统验证课程是否可选。6.系统提示课程选择成功,提示学生交费。7.用例结束。错误事件:5A:课程不可选。5A1:系统提示课程不可选原因。、5A2:重新选课。练习3练习3(查询课程)练习4:绘制序列图以饮料自动销售系统为例,对“买饮料”的3种场景进行建模,对每一个场景,绘制其对应的顺序图1)买饮料的正常场景,基本事件流如下:(1)顾客从机器的前端钱币口投入钱币,然后选择想要的饮料(2)钱币到达钱币记录仪,记录仪更新自己的存储(3)记录仪通知分配器分发饮料到机器前端2)饮料“已售完”的场景3)机器没有合适的零钱的场景练习4:绘制序列图1)买饮料的“正常”场景练习4:绘制序列图2)饮料“已售完”的场景练习4:绘制序列图3)“没有合适的零钱”的场景练习5:绘制序列图打印文件用户通过计算机向打印服务器发送打印命令打印机如果空闲,则直接执行打印操作否则,将打印文件存储在打印队列之中练习5:绘制序列图借书处理(需求描述)读者在借书时,先由管理员把借书证上的读者编号扫描给系统,系统检查这个读者的借书证合法信息;如果不合法,则系统给出提示,如果正确系统返回读者的身份信息,以及读者的借阅信息。如果读者借书数量没有超过借书的上限,则把要借书的图书编号输入系统,系统登记借书信息,并返回借书成功信息,借书过程完成图书馆借书处理的顺序图●用例:借书●参与者:管理员,借阅者●基本事件流:1.借阅者带着借书证和书来到柜台。2.管员输入借阅者的借书证编码。3.系统检查借阅者的合法性。4.系统显示借阅者的信息。5.系统检查借阅者的借阅信息。6.管员输入所借图书的条码。7.系统显示所借图书的信息,并登记图书。管员重复6~7步,直到结束。8.系统登记借阅者的本次借阅信息,并显示。●扩展事件流:3a.借阅者身份非法,则提示,本次拒借。5a.该借阅者所借图书中有超期的,则提示,本次拒借。5b.该借阅者所借图书数量超过了上限,则提示,本次拒借。还书处理(需求描述)读者在还书时,先由管理员把所借图书的图书编号扫描给系统,系统接收到这个信息,则显示这个该读者信息,以及这本书的信息。管理员确认还书,则系统登记还书信息,并返回还书成功信息,还书过程完成。图书馆还书处理的序列图●用例:还书●参与者:管理员,借阅者●操作流:①管理员进入图书借阅界面,用例开始。②系统要求输入所还图书的条码。③系统显示所还图书的图书、读者、借阅等信息④确认还书。⑤系统回到上一界面,等待处理下一业务。图书馆还书处理的序列图协作图CollaborationDiagram协作:在一定的语境中,一组用以实现某些行为的对象之间的相互作用它描述了若干对象为实现某种目的,而组成相互合作的“对象社会”协作图:表现对象协作关系的图是对“对象图”的扩展(增加消息传递)序列图和协作图可以相互转化强调:参与交互对象的角色位置与组织关系组成协作图的元素——对象对象的角色表示一个或一组对象在完成目标的过程中所应起的那部分作用。不需要关于某个类的所有对象都出现同一个类的对象可能充当多个角色表示形式和序列图中的对象的表示方式基本一样与序列图不同的是,协作图中的对象的下部没有“生命线”,并且对象存在多对象的形式组成协作图的元素——消息作用:通过一系列的消息来描述系统的动态行为表示形式:每个消息包括一个顺序号以及消息的名称使用带有标签的箭头来表示,箭头指向接收者附在连接发送者和接收者的链上消息的名称也可以是一个方法,包含一个名字和参数表、可选的返回值表。组成协作图的元素——链在协作图中的链和对象图中链的概念和表示形式都相同,都是两个或多个对象之间的独立连接。链的表示形式普通:连接在两个对象之间的线或弧。自身关联:两端指向同一对象的回路,是一条弧。多重对象多个对象的集合,往往是同类对象用于表示:同一消息同时发给多个对象在顺序图中仍然显示为单一对象的图标练习画出对应的顺序图答案练习:协作图练习:协作图顺序图与协作图的关系顺序图与协作图都表示对象之间的交互作用,只是侧重点有所不同:顺序图描述了对象交互的时间顺序,但没有明确地表达对象之间的关系(多用于用例描述)协作图描述了对象在交互中承担的角色,但对象在交互中的时间顺序必须从消息的顺序号获得(多用于详细设计时对象关系的描述)顺序图可以表示出对象的激活状态和非激活状态,也可以表示出对象的创建和销毁的相对时间;协作图则没有这些功能。两种图的语义是等价的,可以采用RationalRose工具相互转化,而不丢失任何信息。练习用例“新增书籍”基本事件流①图书管理员向系统发出“新增书籍信息“请求。②系统要求图书管理员选择要新增的书籍是计算机类还是非计算机类。③图书管理员做出选择后,显示相应界面,让图书管理员输入信息,并自动根据书号规则生成书号。④图书管理员输入书籍的相关信息,包括:书名、作者、出版社、ISBN号、开本、页数、定价、是否有CD-ROM。⑤系统确定输入的信息中书名没有重复。⑥系统将所输入的信息存储建档。练习扩展事件流①如果输入的书名有重名现象,则显示出重名的书籍,并要求图书管理员选择修改书名或取消输入。②图书管理员选择取消输入,则结束用例,不做存储建档工作。③图书管理员选择修改书名后,转到5绘制顺序按照从左到右的顺序,依此将参与者、边界对象和实体对象放在最顶部,参与者放在最左边,实体类放在最右边。注意,在分析模型中可以先不考虑控制类的引用(有必要时也可以引入)。然后根据事件流描述逐一导出其相应的消息流,即可得到顺序图。序列图顺序图协作图协作图

1 / 53
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功