实验五—1 顺序图、协作图
一、实验目的
1.理解顺序图的基本概念。 2.理解协作图的基本概念。
3.掌握在 Rational Rose 中绘制顺序图、协作图的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过对课堂学习和前面的实验,使我们完成了图书馆的管理系统的需求分析,并从业务 对象中抽象出了类。现在需要对前面所给出的用例进行实现,而用例的实现主要由顺序图来 描述系统的动态特性,协作图与顺序图是同构的,Rose 可自动转换。现指派你运用课堂所学 的相关知识,完成如下任务:
1.对图书管理功能中的借书用例、还书用例进行动态建模。
四、实验步骤
4.1 分析阶段的动态建模
1.分析:在分析阶段,绘制的顺序图中,所有消息可以使用便于理解的自然语言来描述, 并且可以仅在实体类中识别对象职责,而不涉及边界类和控制类。根据课堂讲授,参见教材 P213 可完成借书用例和还书用例分析阶段的动态建模。
2.绘图步骤:
(1) 鼠标右击导航窗口“Logicl View”节点,选择“New——Package”,建立 1 个子 包:“Sequence Diagram”(用于存放顺序图、协作图),完成后如图 3.1 所示。
(2) 如图 3.2 所示,鼠标右击“Sequence Diagram”子包,选择快捷菜单项“New— —Sequence Diagram”,创建一张新的顺序图,取名为“借出图书”(注意:为了好对应,顺 序图名称最好与相应的用例名称相同)。鼠标双击新建的顺序图,在右边绘图窗口中将其打开, 如图 3.3 所示。
(3) 设置支持嵌套消息的环境:选择主菜单项“Tools——Options”,打开 Rose 环境 设置的对话框,点击“Diagram”选项卡,在如图 3.4 所示界面中,将“Display”下的 “Hierarchical Message”选中,点击“确定”即可。
35
图 3.1
图 3.2
36
图 3.3
37
图 3.4
(4) 绘制类:从导航窗口中,将“Use Case View”节点下的参与者“图书管理员”拖 到绘图窗口;将“Class Diagram”包下“BO”实体包中的相关类“Reader”、“ResourceItem”、 “ResourceTitle”和“Loan”拖到绘图窗口中,如图 3.5 所示。
38
图 3.5
(5) 绘制消息:选择左边顺序图工具栏“Object Message”图标,在右边绘图窗口中 绘制一条“图书管理员”发给“Reader”对象的消息,Rose 系统自动为此消息添加序号,如 图 3.6 所示。鼠标右击该消息,选择“Open Specification”菜单项,出现如图 3.7 所示的 消息设置对话框,在 Name 框中输入消息的名称:“验证读者”,点击 OK 即可完成设置。以此 类推,我们完成“借出图书”其余消息的绘制,完成后如图 3.8 所示。
图 3.6
39
图 3.7
图 3.8
(6) 重复步骤第(2)—(5)步骤,按照同样的方法完成用例“归还图书”的顺序图, 完成后的顺序图如图 3.9 所示。
(7) 分析阶段的动态建模完成后,可以保存模型文件为“图书管理系统.mdl”。
40
图 3.9
4.2 设计阶段的动态建模
1.分析:在设计阶段,顺序图中需要引入边界类和控制类,在识别对象职责的基础上, 需要将消息转换为类的方法,为方法定义参数、返回值类型,便于计算机的实现。
2.绘图步骤:
(1) 在分析阶段保存的模型文件基础上,打开“借出图书”的顺序图。
(2) 在顺序图中引入一个“LendWindow”界面类和一个“LendLogic”控制类,如图 3.10 所示。
41
图 3.10
(3) 为消息定义类的方法:绘制一条从“图书管理员”指向“LendWindow” 对象的 消息,如图 3.11 所示,鼠标右击该消息,在快捷菜单中查找是否有名为“newReader”的方 法,若存在,则在快捷菜单中选择“newReader”项;若不存在,则选择快捷菜单项“ 42 图 3.11 图 3.12 图 3.13 (4) 重复第(3)步,为其余的消息定义方法,来完善分析阶 段 “借出图书”的顺序图,注意:对象发给自己的消息,应使用左边工具栏“Message to Self” 43 图标。经过改进后顺序图如图 3.16 所示。 (5) 完善“归还图书”顺序图:同 “借出图书”顺序图的绘制方法相同,打开“归 还图书”的顺序图,,模仿第(2)—(4)步骤,即可完成“归还图 书”设计阶段的动态建模和类的方法设计。完成后,如图 3.17 所示。 (6) 生成协作图:在导航窗口双击“借出图书”顺序图,将其打开后,按下 F5 键, 即可生成与之对应的协作图,Rose 自动生成的协作图由于相互重叠,比较乱,打开后加以整 理,即可比较规范,如果协作图中对象间有多余的线条,选中后按下 Ctrl+D 就能将它删除。 完成后如图 3.14 所示。按照同样的方法,我们可以生成如图 3.15 所示的“归还图书”协作图。保存模型文件为“图书管理系统.mdl”。 图 3.14 44 图 3.15 45 图书管理员 : LendWindow : LendLogic : Reader : ResourceItem : ResourctTitle : Loan 1. newReader(String) 1.1. checkReader(String) 1.1.1. getReaderInfo(String) 1.2. displayReader(Reader) 2. addNewLoan(String) 2.1. makeNewLoan(String) 2.1.1. getItemInfo(String) 2.1.1.1. getTitleInfo(String) 2.1.2. lendItem(String) 2.1.2.1. descreaseAvailable( ) 2.1.3. descreaseBookLmt( ) 2.1.4. Create(String) 2.2. displayResource(ResourctTitle) 2.3. addInLst( ) 3. endAllLoan( ) 3.1. printLoanList( ) 3.16 : 46 47 : ReturnLogic : ResourceItem : ResourctTitle : Loan : Reader : 图书管理员 : ReturnWindow 1. checkItem(String) 1.1. checkItem(String) 1.1.1. getItemInfo(String) 1.1.1.1. getTitleInfo(String) 1.1.2. getLoanInfo(String) 1.1.3. getReaderInfo(String) 1.2. displayResource(ResourctTitle) 1.3. displayLoan(Loan) 2. returnLoan(String) 2.1. returnItem(String) 2.1.1. returmItem(String) 2.1.1.1. increaseAvailable( ) 2.1.2. return(String) 2.1.3. increaseBookLmt(String) 图 3.17 48 2. 49 因篇幅问题不能全部显示,请点此查看更多更全内容