实验5 建立软件系统的辅助模型[实验目的]掌握用Rose/viso绘制顺序图、通信图、活动图、状态图的方法。
[实验内容]1.绘制顺序图在图书馆管理系统中,每个用例都可以建立一个时序图,将用例执行中各个参与的对象之间的消息传递过程表现出来。
建立系统管理员添加书籍的时序图。
2.绘制通信图在图书馆管理系统中,建立图书管理员处理借书的通信图。
3.绘制活动图在图书馆管理系统中,有明确活动的类包括借阅者、图书馆管理员和系统管理员,建立借阅者的活动图4.绘制状态图在图书馆管理系统中,有明确状态转换的类包括:书籍和借阅者的账户(相当于包含特定个人信息的电子借阅凭证)。
建立书的状态图。
[实验步骤]1.绘制顺序图①创建顺序图。
在浏览器窗口中,在“Use Case View”的图标上单击鼠标右键,在弹出的菜单中选择New →Sequence Diagram。
此时,在“Use Case View”树形结构下多了一个名为“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的时序图的名字。
双击时序图图标,出现时序图的编辑区和编辑工具栏。
②时序图工具栏按钮简介。
时序图工具栏中各个按钮的图标及其作用如图5-1所示。
图5-1顺序图工具栏各个按钮的图标及作用③添加对象。
⏹向时序图添加对象。
首先点击工具栏中的对象图标按钮,然后在编辑区要放置对象的位置单击鼠标左键。
⏹设置对象属性。
可以双击相应的对象图标,弹出对象属性设置对话框。
也可以选中要改变属性的对象,单击右键,在弹出的菜单中选择“Open Specification...”,打开属性设置对话框。
⏹设置对象持续性。
可以设置每个对象的持续性,Rose中提供了3个选项。
“持续(Persistent)”对象保存到数据库或其他形式的永久存储体中,即使程序终止,对象依然存在。
“静态(Static)”对象保存在内存中直到程序终止。
“临时(Transient)”对象只是在短时间内保存在内存中。
要设置对象的持续性,右键单击要设置持续性的对象,从弹出菜单中选择“Open Specification...”,打开属性设置对话框,即可进行设置。
④添加消息消息是对象间的通信,一个对象可以请求另一个对象做某件事。
在时序图中,消息用两个对象生命线之间的箭头表示。
⏹增加对象间的消息。
首先点击工具栏中的图标按钮→,然后将鼠标从发送消息的对象或角色的生命线拖动到接收消息的对象或角色的生命线。
消息绘制出来以后,还要输入消息文本。
双击表示消息的箭头,在弹出的对话框的Name 字段里输入要添加的文本。
⏹显示或取消消息编号。
消息编号在时序图中是可选的,选择菜单栏的Tools→Options 菜单项,在出现的对话框中选择Diagram选项卡,将“Sequence numbering”复选框勾选,就可以显示消息编号;如果不勾选,消息编号不会显示在时序图中。
⏹显示或取消激活显示。
选择菜单栏的Tools→Options菜单项,在出现的对话框中选择Diagram选项卡,将“Focus of control”复选框勾选,就可以显示激活;如果不勾选,激活不会显示在时序图中。
5.绘制通信图①创建协作图。
在浏览器窗口中,在“Use Case View”的图标上单击鼠标右键,在弹出的菜单中选择New →Collaboration Diagram。
此时,在“Use Case View”树形结构下多了一个名为“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的协作图的名字。
双击协作图图标,出现协作图的编辑区和编辑工具栏。
②协作图工具栏按钮简介。
协作图工具栏中各个按钮的图标及其作用如图5-2所示。
图5-2 通信图工具栏各个按钮的图标及作用③添加对象。
首先点击工具栏中的图标按钮,然后在绘制区要放置对象的位置单击鼠标左键。
协作图中对象的属性及持续性的设置方法见时序图。
④添加消息⏹添加对象间的消息。
在将消息添加到两个对象之间前,首先要建立对象间的通信路径。
单击工具栏中的图标按钮,在两个目标对象之间拖动一条直线,就在对象间增加了通信路径。
有了通信路径,就可以在路径上增加对象之间的消息了。
增加对象间消息的步骤如下:选择工具栏中的图标按钮或,单击两个对象之间的通信路径,就会画出消息箭头。
⏹消息绘制出来以后,还要输入消息文本。
双击表示消息的箭头,在弹出的对话框的Name 字段里输入要添加的文本。
⏹添加反身消息。
选择工具栏中的图标按钮,然后单击收发消息的对象,为此对象增加一个到它自身的通信路径。
反身通信路径在对象上方,显示为半圆形。
选择工具栏中的图标按钮,然后在对象的反身通信路径上单击,Rose就会为对象添加消息。
新增加的消息的属性值可以按照前面介绍的方法修改。
⑤添加数据流。
数据流描述一个对象向另一个对象发送消息时返回的消息。
一般来说,对协作图的每个消息都加上数据流是没有必要的,这样做只会使图中堆满价值不大的信息。
只要在一些重要消息上附加数据流即可。
数据流的添加步骤如下:选择工具栏的图标按钮或,单击要返回数据的消息,Rose 就会在协作图中添加数据流箭头。
6.绘制活动图②创建活动图。
在浏览器窗口中,在“Logic View”的图标上单击鼠标右键,在弹出的菜单中选择New →Activity Diagram。
点击菜单项后,在“Logic View”目录下创建“State/Activity Model”子目录,目录下是新建的活动图“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的活动图的名字。
[注意] 此时创建的State/Activity Model模块和新建状态图时创建的模块其实是一个模块,新建的状态图或者活动图都处于“State/Activity Model”目录树下。
如果创建状态图时已经创建了一个State/Activity Model模块,要创建活动图,只需要在“State/Activity Model”的图标上单击鼠标右键,在弹出的菜单中选择New →Activity Diagram即可。
双击活动图图标,出现活动图的编辑区和编辑工具栏。
③活动图工具栏按钮简介如图5-3所示。
图5-3 活动图工具栏各个按钮的图标及作用④加入初态和终态。
初态在图中显示为实心圆,点击工具栏中的开始状态图标,然后在绘制区域要绘制初态的地方单击鼠标左键就可以加入开始状态。
终态的加入方法与初态相同。
⑤增加动作状态。
首先点击工具栏中的状态图标,然后在绘制区域要绘制动作状态的地方单击鼠标左键。
双击动作状态图标,在弹出的对话框中可设置动作状态的属性。
⑥增加活动状态。
活动状态的表示图标和动作状态相同,与动作状态不同的是活动状态能够添加动作。
添加动作的步骤如下:选中要添加动作的活动状态的图标,右键单击,在弹出的菜单中选择菜单项[Open Specification…]⏹在弹出的对话框中选择“Actions”选项卡,在空白处单击鼠标右键,在弹出菜单中选择Insert菜单项。
⏹接着双击列表中出现的默认动作“Entry/”,在出现的对话框的“When”选项的下拉列表中有“On Entry”、“On Exit”、“Do”和“On Event”等动作选项。
用户可以根据需要进行选择。
下面的“Name”字段要求用户加入所添加动作的名称。
⏹如果选择“On Event”,则要求在相应的字段中输入事件的名称“Event”、“Argument(参数)”和事件发生的条件“Condition”等。
⏹点击“OK”按钮,退出当前对话框,然后再点击属性设置对话框的“OK”按钮,活动状态的动作就添加完成。
⑦增加动作流。
动作流显示了活动之间的移动。
动作流在两个状态之间进行,要增加动作流,点击工具栏中的图标按钮,然后在两个要转换的动作状态之间拖动一条直线。
⑧增加分支与合并。
分支与合并描述对象的并发行为。
要增加分支与合并,点击工具栏中的图标按钮,然后在绘制区域要加入分支与合并的地方单击鼠标左键。
⑨增加分叉与汇合。
分叉与汇合描述对象的条件行为。
要增加分叉与汇合,点击工具栏中的图标按钮,在绘制区域要加入分叉与汇合的地方单击鼠标左键。
⑩增加泳道。
泳道用于将活动图中的活动分组。
要绘制泳道,可以点击工具栏中的图标按钮,然后在绘制区域点击鼠标左键,泳道就绘制出来了。
可以修改泳道的名字以反映泳道的分组情况,修改方法如下:⏹选中相应的泳道,右键单击,在弹出的菜单中选择[Open Specification…]⏹在弹出的对话框中的“Name”字段中可以修改泳道的名字。
⑪增加对象与对象流。
可以通过对象流显示工作流如何影响或使用对象。
对象与活动间的带箭头的虚线表示对象流。
⏹增加对象。
点击工具栏中的图标按钮,在绘制区域要绘制对象的地方单击鼠标左键。
增加对象以后,右键单击此对象,在弹出的菜单中选择[Open Specification…]→“General”选项卡,此时可以输入对象名、标出对象的状态和增加对象的说明等。
⏹增加对象流。
点击工具栏中的图标按钮,从改变对象的活动拖放到相应对象上,或从对象拖放到使用对象的活动。
7.绘制状态图①创建状态图。
在浏览器窗口中,在“Logic View”的图标上单击鼠标右键,在弹出的菜单中选择New →Statechart Diagram。
点击菜单项后,在“Logic View”目录下创建“State/Activity Model”子目录,目录下是新建的状态图“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的状态图的名字。
双击状态图图标,出现状态图的编辑区和编辑工具栏。
②状态图工具栏按钮简介。
状态图工具栏中各个按钮的图标及其作用如图5-4所示。
③加入开始状态和终止状态。
状态图中可以加入两个特殊的状态:开始状态和终止状态。
开始状态在图中显示为实心圆,点击工具栏中的开始状态图标,然后在绘制区域要绘制开始状态的地方单击鼠标左键就可以加入开始状态。
终止状态的加入方法与开始状态相同。
④增加状态。
增加状态的步骤如下:⏹增加状态。
点击工具栏中的状态图标,然后在绘制区域要绘制状态的地方单击鼠标左键。
双击状态图标,在弹出的对话框中可设置状态的属性。
图5-4 状态图工具栏各个按钮的图标及作用⏹增加入口动作。
入口动作是对象进入某个状态时发生的动作,进入动作在状态内显示,前面有“Entry/”前缀。
添加入口动作可以在状态属性对话框里进行:点击对话框的“Actions”选项卡,在空白处单击鼠标右键,在弹出菜单中选择Insert菜单项。
接着,双击出现的动作类型“Entry/”,在出现的对话框的“When”选项的下拉列表中选择“On Entry”,在“Name”选项中填入动作的名字。