实验3: 基于UML的面向对象分析与建模实验(I03)
一、实验名称和性质
所属课程 | 信息系统分析与设计 |
实验名称 | 基于UML的面向对象分析与建模实验 |
实验学时 | 4 |
实验性质 | □验证 □综合 √设计 |
必做/选做 | √必做 □选做 |
二、实验目的
1.掌握面向对象的系统分析方法。
2.了解UML统一建模语言在面向对象软件开发中的作用。
3.掌握利用Rational Rose进行UML建模的方法。
4.掌握用例图的绘制技术和方法。
5.掌握时序图和协作图的绘制技术和方法。
6.掌握类图的绘制技术和方法。
7.能对指定系统进行基于UML的综合建模。
三、实验的软硬件环境要求
硬件环境要求:
本实验需要为每个学生提供一台个人计算机。
使用的软件名称、版本号以及模块:
本实验需要配备的软件包括:Rational Rose 2003。
四、知识准备
前期要求掌握的知识:
理解对象模型技术的基本概念和结构,熟练掌握统一建模语言的构成基理及各种模型图的构成要素及绘制方法。
五、实验内容
1.按验证性实验的具体要求逐步完成指定题目,观察并记录实验的结果。
2.按设计性实验的具体要求完成指定题目,设计结果记录在实验报告上。
六、验证性实验
1.实验要求
某银行储蓄业务包括各种币种储蓄的本金和利息的相关业务。所有储蓄业务都通过银行折子或一卡通进行操作,银行折子和一卡通之间是关联账户,而储蓄又有多种类型:整存整取存款,零存整取存款,活期储蓄存款,定活两便存款。通过储蓄业务系统,银行客户可以方便的进行开户、销户、补办、挂失、解挂、修改密码、存款、取款、转账等操作。
(1)请用Rational Rose绘制如图9所示的用例图。
(2)请描述开户和销户所对应的用例文档。
(3)请用Rational Rose绘制如图11、12所示的时序图。
(4)请用Rational Rose绘制如图13、14所示的类图。
2.实验步骤及实验结果
(1)请用Rational Rose绘制如图9所示的用例图。
图9 银行储蓄业务管理信息系统的用例图
用Rational Rose绘制用例图的关键步骤如下:
步骤一:选择“开始”|“程序”中的“Rational Rose”,选择“Rational Rose Enterprise Edition”,在弹出的“Create New Model”对话框中选择“J2EE”,单击“OK”按钮。
步骤二:在Browser窗口内的树形列表中选择“Use Case View”并右击,在弹出的快捷菜单中选择“New”|“Use Case Diagram”,将新建的用例图更名为bank。
步骤三:双击“bank”,在打开的绘图窗口内进行用例图的绘制。
步骤四:点击“Actor”按钮,在绘图窗口内点击,修改其属性即可,其余类同。
(2)描述开户和销户所对应的用例文档。
用例图只是简单地用图描述了系统,但对于每个用例,还需要有详细的说明,这样就可以让其他人对这个系统有一个更详细的了解,因此需要写用例描述文档。其中开户的用例描述文档如图10所示。
图10 开户的用例描述文档
详细信息如下:
UC01:“开户”用例文档
用例名称:开户
用例标识:Use Case01
涉及的参与者:银行柜员
描述:银行柜员用这个用例为任何符合条件的客户办理开户手续,一卡通不打印信息,账号为以1开头的10位数字,该账号在银行中是唯一的
前置条件:银行柜员正常登录
后置条件: 无
正常事件流:
1.银行柜员选择开户功能,输入客户开户申请书信息(姓名、身份证号码、住址与联系电话),并提交
2.系统验证输入信息正确
3.系统显示开户类型
4.银行柜员选择开户类型
5.系统验证客户没有账号,系统生成客户账号
6.银行柜员输入子账号
7.客户输入密码(2次)
8.系统验证密码格式是否正确(开户时必须设置6位数字密码)
9.系统保存客户信息,打印存折信息
备选事件流:
1.信息格式错误处理
2.密码错误处理
3.已有账号,系统不再生成客户账号
UC02:“销户”用例文档
用例名称:销户
用例标识:Use Case02
涉及的参与者:银行柜员
描述:银行柜员利用这个用例为银行客户办理销户,客户需求提供销户申请书。
前置条件:银行柜员正常登录,验证客户信息成功
后置条件:无
正常事件流:
1. 银行柜员选择销户功能
2.系统显示客户资料
3.银行柜员确认客户身份证号
4.系统读取利息,打印存款及利息确认单
5.系统转入取款用例
6.银行柜员确认销户
7.系统清除子账号信息
备选事件流:
1.身份证信息错误
(3)请用Visio或Rational Rose绘制如图11、图12所示的时序图。
开户的时序图如图11所示,其中客户和柜台人员为用例中的参与者,MainForm为边界类,表示系统主界面;CardController为子账户控制类,控制边界类和实体类间的交互;Customer为客户实体类,Card为子账户实体类,与数据库中的客户表和子账户信息表对应。横线上的文字描述了对象发出和接收的消息。
图11 开户时序图
图中对象间传递的主要消息参数定义如下:
2:开户类型:1-活期,2-整存整取,3—零存整取,4-定活两便
2:客户信息=身份证号+客户名+地址+电话
7:密码:对应每张卡(子帐号)的密码,要求是6位数字密码
9:账户信息=客户账号+身份证号+客户名+地址+电话
10:子账户信息=卡号(子账号)+密码+卡类型编号+挂失状态(0)
销户的时序图如图12所示:
图12 销户时序图
图中对象间传递的主要消息参数定义如下:
2:输入客户资料:卡号+密码
3:客户资料=账户信息+子账户信息
补充说明:
确认销户:删除卡号(子账号)记录。
用Rational Rose绘制时序图的关键步骤如下:
步骤一:在Browser窗口内的树形列表中选择“Use Case View”并右击,在弹出的快捷菜单中选择“New”|“Sequence Diagram”,将新建的时序图更名为“开户”。
步骤二:双击“开户”,在打开的绘图窗口内进行时序图的绘制。
步骤三:点击“Object”按钮,在绘图窗口内点击,修改其属性即可,其余类同。
(4)请用Rational Rose绘制如图13、14所示的类图。
图13为银行储蓄业务管理信息系统的实体类图,主要有七个实体类:客户类(Customer)、子账号类(Card)、存款信息类(Deposit)、取款信息类(Fetch)、代收费用类(DepositAgent)、操作员类(Operator)、代收费用单位信息类(FeeAgent)。
图13 银行储蓄业务管理信息系统的实体类图
图14 银行储蓄业务管理信息系统的分层类图
用Rational Rose绘制类图的关键步骤如下:
步骤一:在Browser窗口内的树形列表中选择“Use Case View”并右击,在弹出的快捷菜单中选择“New”|“Class Diagram”,将新建的类图更名为“实体类图”。
步骤二:双击“实体类图”,在打开的绘图窗口内进行类图的绘制。
步骤三:点击“Class”按钮,在绘图窗口内点击,修改其属性即可。
步骤四:若要更改类图的类型,只要在类上右击,选择“Open Specification”,在其General中更改“Stereotype”的类型即可。
七、设计性实验
1.实验要求
(1)请为银行储蓄业务管理信息系统中的补办、存款、转账编写用例描述文档,并用时序图进行建模。
(2)某牙科诊所管理系统的业务如下,请为其绘制用例图及类图:
王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。
当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。
系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未就诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关于所有病人的每天和每周的工作安排。
(3)分析图书管理系统中的书和借书证的状态,画出它们的状态图;
(4)分析图书管理系统中管理员的活动状态,画出管理员的活动图。