实验八、九 对象图和包
一、实验目的
1.对象图的基本概念。 2.包的基本概念。
3.掌握在Rational Rose中绘制对象图和包。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
SUDA图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,不过当这份文档提交给图书馆的使用人员审查时,他们认为最好能用一个实例来说明系统的运作,现系统分析部指派您完成该项任务,为系统绘制一张对象图。
1.以借书过程为例绘制对象图;
四、实验步骤
为了更好的描述借书过程,根据图8.1绘制借书过程中某一时刻的对象图
LendFrame-BookName-ReaderId+lendBook()Book-BookName-ISBN+findFreeItem()BookManager+lendBook()+findBookByName()Item-ItemId-ISBN-State+getItemId()+setLoanState()图8.1
(1) 确定对象的值
假定管理员在为读者“S05001”办理“UML Guide”的借书手续,这时首先弹出一个借书窗口“lfLend”,在其上输入读者ID和书名,点击“借书”按钮。这里lfLend对象将调用业务管理者类bmMain对象的findBookByName方法去获取一个书名为“UML Guide”的Book对象bLend,然后bmMain再通过lendBook方法,去调用bLend对象findFreeItem方法,去查找一本可借阅的图书,这里假定找到图书iLend,然后使用setLoanState更改iLend的借阅状态为“借出”,完成借书过程。
表8.1描述了在成功设置iLend对象借阅状态为“借出”状态时,与借书过程有关的各对象的值。
52
表8.1
类名 LendFrame 对象名 lfLend 属性值 BookName=”UML Guide” ReaderID=”S05001” 方法 lendBook BookManager bmMain findBookByName lendBook Book bLend BookName=”UML Guide” ISBN=”ISBN12315” findFreeItem Item iLend ISBN=”ISBN12315” ItemID=”B05001”
getItemID setLoanState (2) 绘图,根据(1)中的描述,绘制出当iLend状态变更时,系统中各对象的状态如图8.2所示。
(3)根据分析设计情况,进一步设计对象和包之间的关系。
lfLendBookName = UML GuideReaderId = S05001iLend : ItemItemId = B05001ISBN = ISBN12315State = 借出bmMain : BookManagerbLend : BookBookName = UML GuideISBN = ISBN12315
图8.2
五、实验报告要求
1.整理实验结果。 2.小结实验心得体会。
53
实验十、十一 组件图和部署图
一、实验目的
1.理解组件图的基本概念。 2.理解组件图的应用:逻辑部署。 3.理解部署图的基本概念。 4.理解部署图的应用:物理部署。 5.掌握组件图和部署图绘制的方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
SUDA图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,下一步将完成系统的组件图和部署图,现系统分析部指派您完成如下任务:
1. 完成系统的组件图。
四、实验步骤
1. 绘制组件图 分析:
在SUDA的图书馆管理系统中,通过分析可以发现类图中的类应分为4个部分: 1.用户接口模块(UI),主要负责系统和用户的交互,包括Frame类,Dialog类等。 2.业务对象模块(BO),主要负责处理系统中的业务计算,如借书,还书等功能的具体操作。
3.数据存储模块(DB),主要负责处理对数据的存储。 4.通用工具模块(UTIL),包括系统中通用函数。
通过一个主程序StartClass来启动。由于系统中的类较多,这里以业务对象模块(BO)为例来讲解如何创建组件图,BO模块中包括
Item类:书目类,表示一本实际存在的书籍或杂志
Loan类:借书业务类,将借阅者和图书馆关联起来,一个Loan对象表示借出的一本书 BorrowerInfomation类:借阅者信息类,表示一个借阅者。
Title类:表示一种书或一种杂志。如《C++编程思想》就是一种书,用1个title表示,如果有2本这样的书,则需要用2个Item表示。
Reservation类:预定信息类,表示一个预定信息。
Item类和Loan类之间互相依赖,Loan类和BorrowerInfomation类之间互相依赖,BorrowerInfomation类和Reservation类之间互相依赖,Reservation类和Title之间互相依赖,Title和Item类之间互相依赖。 绘图步骤:
(1)在组件视图中双击Main图,出现图10.1,为编辑组件图做好准备,这时绘图工
54
具栏中的图标如图中椭圆所示,其中具体含义可参看本节“补充图标”一段的介绍。
图10.1
(2)在组件视图中,从工具栏中选择MainProgram图标,在右边的绘图区中添加一个新组件,并取名StartClass.java表明新增一个主程序。
图10.2
(3)选择新创建的组件,点击鼠标右键,在弹出的菜单中选择“Open Sepcification”,弹出图10.3对话框。
(4)在对话框中,可以修改组件的名称,设置组件的类型,指定实现的语言。这里新组件的名称定为“StartClass.java”,组件构型为Main Program(Rose中提供了多种构型,大部分在补充图标一段中均有简单的介绍),实现语言为JAVA(Rose中默认的是分析语言Analysis),修改结果如图10.4所示。
55