收藏 分享(赏)

软件工程8 动态设计——2.交互图.pptx

上传人:Facebook 文档编号:3479916 上传时间:2018-11-03 格式:PPTX 页数:97 大小:1.45MB
下载 相关 举报
软件工程8 动态设计——2.交互图.pptx_第1页
第1页 / 共97页
软件工程8 动态设计——2.交互图.pptx_第2页
第2页 / 共97页
软件工程8 动态设计——2.交互图.pptx_第3页
第3页 / 共97页
软件工程8 动态设计——2.交互图.pptx_第4页
第4页 / 共97页
软件工程8 动态设计——2.交互图.pptx_第5页
第5页 / 共97页
点击查看更多>>
资源描述

1、图书管理系统第6次课,完成系统行为交互建模:时序图建模,今天的工作任务,提交内容,系统时序图,1 时序图的相关概念 3 时序图的用途 4 时序图的建模技术,知识点:动态视图时序图,通过RUP方法开发软件时,我们是以用例为材料来构造交互图的,交互图通常是对用例的实现。即,交互图中的对象相互协作,完成用例的功能。,交互图的概念,1. 交互图的概念交互图(interaction): 用来描述对象之间、对象与参与者之间的动态协作关系,以及协作过程中行为次序的图形。2.交互图的类型 顺序图( Sequence diagram )又称为时序图协作图( Collaboration diagram ),用例图

2、、类图、活动图、时序图之间是什么关系? 时序图有什么作用?,一个旅客到机场换登机牌的情况,1.交互的对象 2.消息交互的时间顺序,赤壁之战的时序图,Public class 刘备 public void 应战(); ,Public class 孔明 public void 拟定策略();public void 联合孙权();private void 借东风火攻(); ,Public class 关羽 Public void 防守荊州(); ,Public class 张飞 public void 防守荆州前线(); ,Public class 孙权 public void 领兵相助(); ,活

3、动图(从用户的角度描述用例),用例,时序图(从计算机的角度描述用例),对象间的交互,分析1:用例图、活动图、时序图之间的关系,分析2:类图与时序图之间的关系,思考:消息是什么?与类是什么关系?,类图描述系统的静态结构,时序图描述系统的动态行为,需要在类C中添加操作“K”,若出现了一个新的消息(不是类中的操作),则需要为类添加一个新的操作。,小结:时序图的作用 用对象间的交互来描述用例 寻找类的操作,1 时序图的概念,时序图描述了对象之间传递消息的时间顺序,它用来表示用例的行为顺序。,时序图的作用: 用对象间的交互来描述用例 寻找类的操作,时序图符号表示,时序图包括了4个元素,分别是 对象(Ob

4、ject)、生命线(Lifeline)、激活(Activation)和消息(Message)。,一、对象,对象是类的实例,对象是通过类来创建的,我们可以把类看作是创建对象的模板。,1、对象的符号时序图中的每个对象显示在单独的列里。,匿名对象,2、对象的左右排列位置 对象的左右顺序并不重要,但是为了图面的清晰整洁起见,通常应遵循以下两个原则: (1)把交互频繁的对象尽可能地靠拢 (2)把初始化整个交互活动的对象(有时是一个参与者)放置在最左边,二、生命线(lifeline)表示对象的生存时间。生命线从对象创建开始到对象销毁时终止。,对象在生命线上的两种状态:休眠状态激活状态,三、消息,1、消息的

5、概念对象之间的交互是通过互发消息来实现的。一个对象可以 请求(要求)另一个对象做某件事件。,消息从源对象指向目标对象。消息一旦发送便将控制从源 对象转移到目标对象。,时序图中,消息的阅读顺序是严格自上而下的,2、消息的类型与符号,简单消息(包括反身消息)同步消息异步消息返回消息(可选),实例:同步与异步你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。你叫我去吃饭,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。,所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。_!,(1)简单消息简单消息是没有区分同步

6、和异步的消息。 简单消息用从一对象的生命线指向另一个对象的生命线的直线箭头来表示,箭头上面标出消息名。,(2)同步消息消息的发送者把进程控制传递给消息的接收者,然后暂停活动,等待消息接收者的回应消息。,你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。,(3)异步消息消息的发送者将消息发送给消息的接收者后,不用等待回应的消息,即可开始另一个活动。,你叫我去吃饭,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。,四、激活,1、激活的概念当一个对象没有被激活期时,该对象处于休眠状态,什么事都不做,但它仍然存在,等待新的消息来激活它。当

7、一条消息被传递给对象的时候,它会触发该对象的某个行为,这是就说该对象被激活了。当一个对象处于激活期时,表明该对象正在执行某个动作。,2、激活的符号激活用一个细长的矩阵框(在生命线上)表示。,矩形框的高度表示对象执行一个操作所经历的时间段,矩形的顶部表示动作的开始,底部表示动作的结束。 对象接收消息后可以由自己的某个操作来完成,也可以通过其他对象的操作来完成。,三个图有什么区别?,4.建立顺序图 从用例中识别交互过程;,4.建立顺序图 从用例中识别交互过程; 识别参与交互过程的对象;,4.建立顺序图 从用例中识别交互过程; 识别参与交互过程的对象; 为每一个对象设置生命线,并确定对象的存在期限;

8、,4.建立顺序图 从用例中识别交互过程; 识别参与交互过程的对象; 为每一个对象设置生命线,并确定对象的存在期限; 从引发交互的初始消息开始,在对象生命线上依次画出交互的消息;,4.建立顺序图 从用例中识别交互过程; 识别参与交互过程的对象; 为每一个对象设置生命线,并确定对象的存在期限; 从引发交互的初始消息开始,在对象生命线上依次画出交互的消息; 如果需要,可以给消息增加时间约束,以及前置条件和后置条件。,用例描述:注册用户在官方网站帐户登陆页面上输入ID和密码登陆管理个人帐户。 主事件流: 1用户点击主页上的登陆按钮,开始用例。 2系统显示登陆页面。 3用户输入ID和密码,然后点击登陆。

9、 4系统验证登陆信息和数据库一致,然后回到主页。 5用例结束。 其他事件流A1: 如果用户点击登陆页面上的提示词按钮,系统在一个单独的对话框里显示为用户储存的提示词,用户点击确定按钮,系统页面回到登陆页。 其他事件流A2: 如果用户输入了一个系统无法识别的ID,系统显示错误信息并提示用户输入一个不同的ID。 其他事件流A3: 如果用户输入了一个不正确的密码,系统显示错误信息并提示用户输入正确的密码。 其他事件流A4: 如果用户连续3次输入错误的密码,系统显示消息告诉用户无法再连接服务器,并且冻结登陆页。,工作任务1:完成系统行为交互建模时序图建模,工具应用 在rose中如何画时序图,创建方法

10、单击Browse Interaction Diagram,弹出Select Interaction Diagram对话框;在对话框左边选择预建立时序图的包,单击OK。弹出New Interaction Diagram对话框;在Title字段输入新框图的名字,单击diagram type中的Sequence,单击OK。 在左边浏览器Use Case View或Logical View上右键单击,选择“new”,选择“Sequence Diagram”。,创建时序图,一、新建一个时序图,方法1:,方法2:右击某个用例,如下图所示,这种便于将用例图与时序图衔接起来,二、重命名并双击该时序图,对象 消

11、息,三、添加对象方法1:利用已经存在(创建)的类 a.从浏览器中将类(事先已创建)拖到时序图中 b. 双击该对象以设置对象的名称,方法2:新建对象,然后给该对象指定一个类a.通过工具栏的对象按纽在时序图中添加一个对象,b.双击对象,给该对象指定一个类或新建一个类,四、添加消息1、添加简单消息a.使用此按纽在两个对象之间拖动,b.双击消息,在弹出的窗口中设置消息的名称,2、添加同步消息 方法:双击简单消息,在弹出的对话框选择“detail”选项 卡,选中”procedure a call”,3、添加异步消息 方法:双击简单消息,在弹出的对话框选择“detail”选项 卡,选中”Asynchron

12、ous”,Detail标签 消息同步类型(Synchronization),4、删除对象 方法1:在”edit”菜单中选择“Delete from Model” 方法2:ctrl+D,5、时序图中的常用设置 以嵌套的形式显示消息的序号 取消或隐藏消息的编号 显示或隐藏激活条,(1)以嵌套的形式显示消息的序号选择菜单【 Tools-Options 】,弹出以下对话框,选择 Diagram选项卡,选中Hierarchical Message,(2)取消或隐藏消息的编号选择菜单【 Tools-Options 】,弹出以下对话框,选择 Diagram选项卡,选中或取消Sequence numberin

13、g,(3)显示或隐藏激活条选择菜单【 Tools-Options 】,弹出以下对话框,选择 Diagram选项卡,选中或取消Focus of control,消息根据对象生命线从上往下从1开始进行编号。删除消息时,Rose自动将其余消息重新编号。 打开或关闭消息编号: 选择Tools Options; 选择Diagram标签; 复选或取消Sequence Numbering。 在时序图中,消息可以按两种方式编号: Top-Level(顶级编号)方式,如1、2、3;或者Hierarchical(等级编号)方式,如1.1、1.1.2、1.1.3。,消息编号,Top-Level 编号 定义 顶级编号

14、。编号由1开始,后续消息的编号单调递增,消息编号只有一个单一的数字,没有数字子集。 举例 如用户设定了编号为1.,1.1.,1.2.和1.2.1.的消息,在顶级编号时将被编号为1,2,3和4 一般用于对象和消息很少的时序图中 要对消息进行顶级编号: 单击Tools Options; 单击Diagram标签; 选中Sequence Numbering复选框。,消息编号,Hierarchical编号 定义 即等级编号,Hierarchical 编号使用带小数点的号码,方便显示消息嵌套。 举例 如1表示第一个消息,1.1表示嵌套在消息中的第一个消息,1.2表示嵌套在消息中的第二个消息。注意:如果删除

15、消息1,则嵌套在消息1中的其他消息也将同时被删除。 要对消息进行等级编号: 选择Tools Options; 单击Diagram标签; 同时选中Sequence Numbering和Hierarchical Messages复选框。,消息编号,Hierarchical编号,消息编号,显示或关闭控制焦点 单击Tools Options; 单击Diagram标签; 选中“Focus of Control”左边的复选框,表示在时序图中显示控制焦点;否则,在时序图中不显示控制焦点。 控制焦点着色 单击箭头指向控制焦点的消息。 选择Format Fill Color; 在颜色框中单击要选择的填充颜色;

16、单击OK。,控制焦点,控制焦点的嵌套 嵌套的控制焦点依附在另外一个控制焦点之上,它可以确切地区分一个消息开始和终止的具体位置。 要显示嵌套的控制焦点,必须同时选中Options对话框中Diagram标签中的Hierarchical Messages和Focus of Control两个选项。,控制焦点,本次课中,用到以下知识: 时序图rose绘制时序图,课程小结,今天的工作任务,完成系统行为交互建模协作图建模,提交内容,图书管理系统中的一个协作图,工作任务1: 完成系统行为交互建模协作图建模,提交内容: 图书管理系统中的一个协作图,学习情境 知识点:协作图(Collaboration Diag

17、ram),UML中的交互图是用于对系统动态方面的建模,交互图又可分为时序图和协作图。 协作图是动态视图的另一种表现形式,它强调参加交互的各对象结构的信息。,1 协作图的基本概念,协作图显示某组对象为了由一个用例描述的一个系统事件而与另一组对象进行协作的交互图。 协作图只对相互间有交互作用的对象和这些对象间的关系建模,而忽略了其他对象和关联。 协作图中包括如下元素:1.对象(Object)、2.链(Link)和3.消息(Message)。,链,链是关联的实例,当一个类与另一个类之间有关联时,这两个类的实例之间就有链,一个对象就能向另一个对象发送消息。所以链是对象间的发送消息的路径。 要在协作图中

18、增加消息,必须先建立对象之间的链接。 链接一般建立在两个对象或者两个类实例之间,也可以建立反身链接。,协作图的用途,如果按组织对控制流建模,应该选择使用协作图。协作图强调交互中实例间的结构关系以及所传送的消息。协作图对复杂的迭代和分支的可视化以及对多并发控制流的可视化要比时序图好。 协作图有别于时序图的两点特性:(1)协作图有路径 ( 2)协作图有顺序号,3 协作图的建模技术,对系统动态行为建模,当按组织对控制流建模时,一般使用协作图。 使用协作图对系统建模时,可以遵循如下策略。 (1)设置交互的语境,语境可以是系统、子系统、操作、类、用例或用例的脚本。 (2)通过识别对象在交互中所扮演的角色

19、,开始绘制协作图,把这些对象作为图的顶点放在协作图中。 (3)在识别了协作图对象后,为每个对象设置初始值。如果某对象的属性值、标记值、状态或角色在交互期发生变化,则在图中放置一个复制对象,并用变化后的值更新它,然后通过构造型或的消息将两者连接。 (4)设置了对象的初始值后,根据对象间的关系开始确定对象间链接。一般先确定关联的链接,因为这是最主要的,它代表了结构的链接。然后需要确定的是其他的链接,用合适的路径构造型修饰它们,这表达了对象间是如何互相联系的。 (5)从引起交互的消息开始,按消息的顺序,把随后的消息附到适当的链接上,这描述了对象间的消息传递,可以用带小数点的编号来表达嵌套。 (6)如

20、果需要说明时间或空间的约束,可以用适当的时间或空间约束来修饰每个消息。 (7)在建模中,如果想更详细地描述这个控制流,可以为交互过程中的每个消息都附上前置条件和后置条件。,创建协作图,创建方法 单击Browse Interaction Diagram,弹出Select Interaction Diagram对话框;在对话框左边选择预建立协作图的包,单击OK。弹出New Interaction Diagram对话框;在Title字段输入新框图的名字,单击diagram type中的Collaboration,单击OK。 在左边浏览器Use Case View或Logical View上右键单击,

21、选择“new”,选择“Collaboration Diagram”。,协作图工具箱,对象规范,多实例(Multiple instances) 选中该复选框之后,协作图中的对象图标将显示为多实例图标。,链的操作,创建链接: 单击工具箱中的 按钮; 从一个对象拖动到另一个对象,创建链接。创建反身链接 单击工具箱中的 按钮; 单击发送消息的对象,建立反身链接。,链的规范,General标签 关联(Assoc):两个对象的类之间建立的关联 可见性(Visibility):一个对象看到另一个对象的能力,链的规范,Messages标签 显示了当前链接上的消息信息 右图说明:一个是正向的链消息(由客户发给供

22、应者),一个是逆向的链消息(由供应者返回给客户);消息的编号分别为2和4;消息名分别为notify(keystroke)和update(keystroke),接收对象分别为OperatingSystem类的实例和GUI类的实例。,消息,将消息加进协作图 单击工具箱中的 按钮; 单击框图中对象间的链接; 输入消息名。 删除消息 选择要删除的消息; 选择Edit Delete from Model或按Ctrl+D。 注意:在协作图中消息删除后,链接仍然存在于模型中,消息编号,打开或关闭消息编号: 选择Tools Options; 选择Diagram标签; 复选或取消Collaboration Nu

23、mbering。,实验7:协作图示例,协作图与时序图的互换,协作图和时序图都是表示对象间的交互作用,只是它们侧重点有所不同。 时序图描述了交互过程中的时间顺序,但没有明确的表达对象间的关系,协作图描述了对象间的关系,但时间顺序必须从序列号获得。 协作图和时序图都来自UML元模型的相同信息,因此它们的语义是等价的,它们可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。,Rose中 时序图与协作图之间的转换,从时序图转换成协作图 从sequence框图创建collaboration框图: 打开sequence 框图; 选择Browse Create collaboration Diagram;或者,直接按下F5键; 浏览协作图并调整图中模型元素的位置。 从协作图转换成时序图 从collaboration 框图创建sequence框图 : 打开collaboration 框图; 选择Browse Create Sequence Diagram;或者,直接按下F5键; 浏览时序图并调整图中模型元素的位置。,课程小结,本次课中,用到以下知识: 协作图 使用rose绘制协作图,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报