搜索
您的当前位置:首页正文

实验五--1 顺序图和协作图

来源:榕意旅游网


实验五—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”项;若不存在,则选择快捷菜单项“”,为“LendWindow”类添加一个新方法 newReader(参数:AcardNo,属于 String 型,返回值类型为 Reader 类),我们可以参照实验二“设计阶段的静态建模”中为类方法定 义参数和返回值的步骤(4)、(5),完成新方法的定义,完成后顺序图如图 3.12 所示。此时 回到“Class Diagram”下的类图 Overall 中,我们发现 Rose 自动为“LendWindow”类添加了 “newReader”方法。如图 3.13 所示。

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Top