文档详情

《面向对象的系统分析与设计》4章-交互图与协作图.ppt

发布:2017-05-06约1.28万字共89页下载文档
文本预览下载声明
通信图 通信图的概念 通信图也称为协作图,它描述了系统中,对象间通过消息进行的交互,强调了对象在交互行为中承担的角色。 通信图和顺序图之间的语义是等价的,只是它们的关注点有所不同而已,可以很容易的完成从顺序图到通信图的转换。 从订单生成订货单的通信图 通信图 通信图的作用 通信图常用来描述业务或软件系统中,每个对象在交互发生时承担的角色,即强调了交互发生时,每个对象承担的职责。 使用通信图可以显示对象相互协作时充当的角色。如果需要强调时间和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择通信图建模。 通信图用于显示对象之间如何进行交互,以实现特定用例或用例中特定部分的行为。设计员使用通信图和顺序图确定并阐明对象的角色,这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类的职责和接口。 通信图中的元素 通信图是用于描述系统的行为是如何由系统成分协作实现的图. 对象object 链 link 消息 message 通信图 通信图的组成元素包括对象、消息、链(连接器)。消息表示了对象间的通信,对象通过链连接在一起。 表示一个通信图,主要是标识系统中的对象、对象间交互的消息、对象间的链。如图所示,是系统管理员添加书籍的协作图。 通信图的组成元素 1.对象: 通信图与顺序图中的对象的概念是一样,只不过在通信图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。 2.链: 表示对象之间的语义关系,链是关联的一个实例。通信图中链的符号和对象图中链所用的符号是一样的,即一条连接两个对象的实线。 3.消息 通信图中的消息类型与顺序图中的相同,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号。顺序号是在消息的前面加一个整数。每个消息都必须有唯一的顺序号。 4.消息编号: 消息的编号有两种,一种是无层次编号(按顺序编号),它简单直观;另一种 是嵌套的编号,它更易于表示消息的包含关系. 5.迭代标记和监护条件 通信图 (1) 迭代标记 迭代标记用*号表示,表示循环,通常还有迭代表达式,用来说明循 环规则。虽然在UML2.0中顺序图已不采用迭代标记(用交互片段代替 迭代标记的功能),但在通信图中仍然使用迭代标记。 迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表 达式来表示。对于迭代表达式,UML没有强制规定什么语法,因此可以 使用任何可读的、有意义的表达式来表示。常用的迭代表达式如表所示。 迭代表达式 语义 [i:=1..n] 迭代n次 [I=1..10] I迭代10次 [while(表达式)] 表达式为true时才进行迭代 [until(表达式)] 迭代到表达识为true时,才停止迭代 [for each(对象集合)] 在对象集合上迭代 常用迭代表达式 通信图 (2). 监护条件 监护条件通常是用来表示分支的,也就是表示“如果条件为true,猜 发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的格 式表示的。 例如,消息“1.3:create(prddleryid)”的前面添加了一个监护 条件【peddeleryid not exist】,它说明只有当peddeleryid不存在 时才调用create方法来创建新的送货单。如果已经存在,那就不必创建, 直接调用1.4方法即可。 通信图 在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。 在图中,coutse类实例c中还用到了构造型《local》,这是因为这个对象是由CourseList 的find方法创建的,是一个局部的对象。而在这张图中,共有五处使用了监护条件,它们的含义如表所示. 注册课程 通信图 监护表达式与消息 语义解释 [sc]1.3register(s) 当s和c都不是空对象时,才执行register方法 [(!s)c]1:studentNotFound 如果s是空对象,则说明没有指定的学生,返回studentNotFound消息 [s(!c)]1:courseNotFound 如果c是空对象,则表示没有找到指定课程,返回courseNotFound消息 [(!s)(!c)]1:allNotFound 如果s和c都是空对象,表示都没有找到,返回allNotFound消息 [sc]1:ok 如果s和c都不是空对象,则返回ok,表示注册成功 监护条件的含义如表所示. 顺序图与通信图的相同点 规定责任 二者均直观地规定了发送对象和接收对象的责任. 支持消息 二者均支持所有的消息类型. 衡量工具 二者均是衡量耦合性的工具. 时序图与通信图的不同点 通信图强调参与交互的对象的组织结构; 顺序图强调消息
显示全部
相似文档