
构建交互图
构建交互图

课程内容 1 顺序图与通信图的关系 绘制交互图
课程内容 顺序图与通信图的关系 绘制交互图 Conclusion 1 2

顺序图与通信图的关系 顺序图与通信图都表示对象之间的交互作用,只是 它们的侧重点有所不同: 顺序图描述了对象交互的时间顺序,但没有明确地表 达对象之间的关系,也没有表明对象在交互中承担的 角色。 通信图描述了对象在交互中承担的角色(关系),但对 象在交互中的时间顺序必须从消息的顺序号获得。 顺序图可以表示出对象的激活状态和去激活状态,也 可以表示出对象的创建和销毁的相对时间;通信图则 没有这些功能
1.顺序图与通信图的关系 顺序图与通信图都表示对象之间的交互作用,只是 它们的侧重点有所不同: ❖顺序图描述了对象交互的时间顺序,但没有明确地表 达对象之间的关系,也没有表明对象在交互中承担的 角色。 ❖通信图描述了对象在交互中承担的角色(关系),但对 象在交互中的时间顺序必须从消息的顺序号获得。 ❖顺序图可以表示出对象的激活状态和去激活状态,也 可以表示出对象的创建和销毁的相对时间;通信图则 没有这些功能

2.绘制交互图 冬绘制交互图分四个步骤: ■第一,找出交互对象及其关系; ·第二,确定对象之间交互的具体消息格式和流 程,并利用同步调用、异步消息、返回消息等 来表示; 第三,利用交互片段(顺序图)或循环标志及 监护条件来表示循环和分支结构; ·第四,通过一些构造型来完善整个交互图。 冬可以以用例为材料来构造交互图,分析模型中的 交互图通常是对用例的实现。即,交互图中的对 象相互协作,完成用例的功能
2.绘制交互图 ❖绘制交互图分四个步骤: ◼ 第一,找出交互对象及其关系; ◼ 第二,确定对象之间交互的具体消息格式和流 程,并利用同步调用、异步消息、返回消息等 来表示; ◼ 第三,利用交互片段(顺序图)或循环标志及 监护条件来表示循环和分支结构; ◼ 第四,通过一些构造型来完善整个交互图。 ❖可以以用例为材料来构造交互图,分析模型中的 交互图通常是对用例的实现。即,交互图中的对 象相互协作,完成用例的功能

2.绘制交互图 冬在构造交互图时,一般从用例描述中寻找候选对 象,然后在候选对象中选择一些对象作为交互图 的对象,把用例中的事件流转换为交互图中的消 息,然后通过演示、验证,构造交互模型
2.绘制交互图 ❖在构造交互图时,一般从用例描述中寻找候选对 象,然后在候选对象中选择一些对象作为交互图 的对象,把用例中的事件流转换为交互图中的消 息,然后通过演示、验证,构造交互模型

2.绘制交互图 dispatchForm: aOrder:Order Orderltem Product DeliverOrder Form 1:dispatch() loop [for each orderitem] 1.1:getPeddleryld() 1.1.1:getPeddleryld() 1.1.2:Peddleryld 1.2:Peddleryld alt if PeddeleryId Not Exist1.3:create(Peddleryld);Add(Productld) [elsel 1.4:Add(Productld) 1.5:Summary “将订单生成送货单”用 例
2.绘制交互图 “将订单生成送货单”用 例

2.绘制交互图 冬Booch,Rumbaugh和Jacobson在著作The Unified Modeling Language User Guide中指出 了顺序图的绘制策略,这些策略包括 ·先确定交互发生的语境,即交互是发生在系统中 、子系统中、操作中、类中还是用例或协作中; ·通过识别对象在交互中扮演的角色设置交互的场 景,将这些对象从左到右的放在顺序图的上方 较重要的对象放在左边,与它们关联的其他对象 放在右边;
2.绘制交互图 ❖Booch,Rumbaugh和Jacobson在著作The Unified Modeling Language User Guide中指出 了顺序图的绘制策略,这些策略包括: ◼ 先确定交互发生的语境,即交互是发生在系统中 、子系统中、操作中、类中还是用例或协作中; ◼ 通过识别对象在交互中扮演的角色设置交互的场 景,将这些对象从左到右的放在顺序图的上方, 较重要的对象放在左边,与它们关联的其他对象 放在右边;

2.绘制交互图 在适当的时刻为每个对象设置生命线,多数情况 下,对象存在于整个交互过程中,对于那些在交 互期间创建和撤销的对象,用适当的构造型显示 的指明它们的创建和销毁; ·从引发交互的消息开始,在生命线之间自上而下 画出依次展开的消息,显示每个消息的特性(如消 息的参数),如果需要,解释交互的语义; ·如果需要可视化消息的嵌套,或可视化实际计算 发生时的时间点,则用激活条(控制焦点)修饰 每个对象的生命线; ·如果需要更形式化的说明控制流,可以为消息附 上前置或后置条件
2.绘制交互图 ◼ 在适当的时刻为每个对象设置生命线,多数情况 下,对象存在于整个交互过程中,对于那些在交 互期间创建和撤销的对象,用适当的构造型显示 的指明它们的创建和销毁; ◼ 从引发交互的消息开始,在生命线之间自上而下 画出依次展开的消息,显示每个消息的特性(如消 息的参数),如果需要,解释交互的语义; ◼ 如果需要可视化消息的嵌套,或可视化实际计算 发生时的时间点,则用激活条(控制焦点)修饰 每个对象的生命线; ◼ 如果需要更形式化的说明控制流,可以为消息附 上前置或后置条件

2.绘制交互图 *[for each orderltem] 1.1:getPeddleryld() Orderltem aOrder:Order <- 1:dispatch() 1.2:Peddleryld 1.1.1:getPeddleryld() 1.5:Summury dispatchForm: Form 1.1.2:Peddleryld [Peddleryld Not Exist] 1.3:create(Peddleryld) :Product 1.4:Add(Productld) DeliverOrder
2.绘制交互图

2.绘制交互图 通信图显示了系统中对象和对象之间的关联,而 这种对象间的关联在顺序图中是无法直接表示的 通信图特别适合描述少量对象之间的简单交互 易于展示对象之间是如何连接到一起的,但是却 很难一眼就看出交互中消息的发生顺序 通信图很难显示补充的说明性信息,例如时间、 判定点以及不同种类的消息等,而在顺序图中这 些信息可以方便地添加到注释中 冬总之,顺序图和通信图建模中所表达的交互模型 是完全一致的,它们只是从不同的角度表达了系 统中的交互,二者是可以互相转换的
2.绘制交互图 ❖通信图显示了系统中对象和对象之间的关联,而 这种对象间的关联在顺序图中是无法直接表示的 ❖通信图特别适合描述少量对象之间的简单交互, 易于展示对象之间是如何连接到一起的,但是却 很难一眼就看出交互中消息的发生顺序 ❖通信图很难显示补充的说明性信息,例如时间、 判定点以及不同种类的消息等,而在顺序图中这 些信息可以方便地添加到注释中 ❖总之,顺序图和通信图建模中所表达的交互模型 是完全一致的,它们只是从不同的角度表达了系 统中的交互,二者是可以互相转换的