《协作图跟序列图相似.ppt》由会员分享,可在线阅读,更多相关《协作图跟序列图相似.ppt(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第四章 顺序图和协作图软件学院 张驰本章教学目的u理解交互图的作用;u掌握交互图中元素的意义和表示方式;u掌握顺序图和协作图的建立方法;u掌握顺序图和协作图的区别和联系。4.1 交互图概述(1)u交互图是用来描述对象之间以及对象和参与者之间的动态协作关系的图形文档。u通常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情况;u交互图描述的是对象之间的消息发送关系,而不是类之间的关系,即交互图作用的层次是对象层而不是类层。u交互图包括顺序图和协作图两种形式;4.2 交互图概述(2)交互描述的是对象之间怎样互相发送消息。如果一个对象发送消息到另一个对象,那么对方必须有接收消
2、息的方法。发送的消息必须和接收对象提供的接口相匹配。4.1 交互图概述(3)u顺序图和协作图从不同角度表达系统的交互和行为,可以相互转化,但不可替代;u通常情况下一个用例需要多个顺序图或协作图;u交互图可以帮助检查用例中描述的用户需求是否在类中实现;u交互图不考虑系统中所有类及对象,但可以表示系统中某几个对象间的交互;4.2 顺序图 顺序图也称时序图,是显示对象之间交互的图,对象间交互的消息是按照时间顺序排列的。顺序图中显示的是参与交互的对象及对象之间消息交互的顺序。顺序图主要用来对用例进行逻辑建模。4.2 顺序图 顺序图示例4.2 顺序图 顺序图说明 顺序图是一个二维图形,水平方向为对象维,
3、沿水平方向排列的是参与交互的对象。对象间的排列顺序并不重要,但一般把表示参与者的对象放在图的两侧,主要参与者放在最左边,次要参与者放在最右边。顺序图的垂直方向为时间维,沿垂直向下按照时间递增顺序列出各对象所发出和接收的消息。4.2 顺序图 顺序图要素对象生命线控制焦点消息4.2 顺序图 顺序图之对象u表示方式:第一种包括对象名和类名;第二种只显示类名不显示对象名,表示一个匿名对象;第三种只显示对象名不显示类名,即不关心该对象属于什么类;u对象的位置:将对象置于顺序图的顶部意味着在场景开始的时候,对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在场景的过程中被创建的。4.2顺序图 对象命
4、名方式4.2顺序图 生命线u生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。u所用的时间取决于交互的持续长度。u对象的图标和它的生命线实际上可以代表一组对象。4.2顺序图 控制焦点u控制焦点是顺序图中表示时间段的符号,在这个时间段内,对象执行相应的操作。u控制焦点表示为在生命线上的小矩形。u控制焦点可以嵌套,嵌套的控制焦点可以更精确地说明消息的开始和结束位置。u激活期表示对象执行一个动作的期间,即对象激活的时间段,和控制焦点表示的意义相同。4.2顺序图 控制焦点嵌套4.3顺序图中的消息u消息被平行的置于对象生命线之间,水平的放置方式说明消息的传递是瞬时的,即消息在发出之
5、后会马上被收到;u消息在时间线上所处的位置说明了它们发生的先后次序,可以从上至下地从图中得知消息的发生次序。u消息的箭头尾部表示发送方,箭头所指的一方则是接收方。注意:消息在时间线上所处的位置并非消息发生的准确时间,它只是一个相对的位置,即一个消息置于另一个消息的上面,说明它先于另一个消息被发送。4.3 顺序图中的消息u调用消息u异步消息u返回消息u反身消息u递归消息u阻止消息和超时消息4.3顺序图中的消息 调用消息u调用消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或返回控制。调用消息用来表示同步的意义;u调用消息的表示符号(P39图4.6);u调用消息的接收者必须是
6、一个被动对象,即它是一个需要通过消息驱动才能执行动作的对象;u调用消息必定有一个返回消息,但与调用消息配对的返回消息可以不用画出。4.3 顺序图中的消息 异步消息u异步消息的发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接收者返回消息或控制。异步消息的接收者和发送者是并发工作的;u异步消息的表示;4.3 顺序图中的消息 异步消息的表示4.3 顺序图中的消息 返回消息u如果从过程调用返回,则返回消息是隐含的,所以返回消息可以不用画出来;u对于非过程调用,如果有返回消息,必须明确表示出来;u返回消息的表示:虚线箭头表示。4.3 顺序图中的消息 反身消息(1)指消息的发送发和接收
7、方是同一个对象,图形上消息的起点和终点是同一条生命线。4.3顺序图中的消息 反身消息(2)4.3顺序图中的消息递归消息(1)u直接递归:对象有时需要递归地调用消息,即就是说,在消息内部调用同一条消息。u间接递归:一个消息调用另一个消息,另一个消息在执行过程中又调用第一个消息。4.3顺序图中的消息 递归消息(2)补充:迭代和条件迭代指的是需要对顺序图中的一条或多条消息执行不止一次,对于单独一条消息,迭代使用迭代符号星号以及限制迭代次数的条件来表示。条件的表示是将文本置于中括号()中。4.3 顺序图中的消息 阻止消息Rose增加了阻止消息和超时消息阻止消息是指消息发送者发出消息给接收者,如果接收者
8、无法立即接收消息,则发送者放弃这个消息。用折回的箭头表示阻止消息,见教材P40图4.11。4.3 顺序图中的消息 超时消息u超时消息是指消息发送者发出消息给接收者并按指定时间等待。如果接收者无法在指定的时间内接收消息,则发送者放弃这个消息。u超时消息的表示见教材P40图4.11。4.3 顺序图中的消息 对象的创建4.3顺序图中的消息 对象的析构4.3顺序图中的消息 语法格式(1)predecessorguard-conditionsequence-expressionreturn-value:=message-name(argument-list)对上述格式的解释:uPredecessor:后
9、面紧跟一条斜线,其后可以是许多以逗号分割的序列号,表示在当前消息被处理之前,必须先处理的消息。例如:A3,B4/C2:copy(a,b)4.3顺序图中的消息 语法格式(2)uguard-condition:警戒条件,是一个在方括号中的布尔表达式,表示只有在条件满足时才能发送该消息。格式为:boolean-expression,方括号放在单引号中,表示方括号是消息的一部分。例:x0常见问题分析见教材4446页小结(1)1.顺序图和协作图都属于交互图,是动态建模机制;2.顺序图强调的是消息的时间顺序,协作图强调的是参加交互的对象的组织;3.顺序图包括的建模元素有对象、生命线、控制焦点、消息等,协作图中包扩的建模元素有对象、消息、链等。4.交互图中的消息分为调用消息、异步消息和返回消息等。小结(2)5.UML中可以表示一些复杂的消息;6.建立顺序图和协作图并没有标准的步骤,只有一些指导原则;7.目前工具大多支持显示交互图,但支持交互图的代码生成和逆向工程的工具还不多。实验报告提交ftp:/172.20.64.2/登录:用户名zc,密码zc文件夹:18002UML091学期/周四班实验1实验报告命名:学号+姓名+实验X
限制150内