ATM系统 ---UMl建模实验 对象模型建模

实验2 对象模型建模

实验2 对象模型建模
一、实验目的
1.熟悉对象模型建模方法;
2.掌握使用StarUML绘制类图的方法;
3.掌握类的描述方法。
二、实验内容
按照以下ATM系统的描述,对其进行对象模型建模。
ATM系统是一个复杂的软件控制硬件的系统,各功能模块协调工作。以具体业务为出发点对它进行建模,一个功能齐全的ATM系统包含以下几个模块:
(1)读卡机模块: 客户银行卡插入读卡机,读卡机识别卡在显示器提示输入密码。
(2)键盘输入模块: 客户通过键盘输入密码与取款金额,选择要进行的业务。
(3)IC认证模块: 基于安全性,鉴别卡的真伪。
(4)显示模块: 显示一切与客户有关信息,包括交互提示、确认等信息。
(5)吐钱机模块: 照客户需求选择合适面值钞票给客户。
(6)打印报表模块: 客户可自由选择打印或不打印凭条(卡号、金额、日期等信息)。
(7)监视器模块: 设置摄像头以防意外事件,保证交易安全性,银行有权调看记录。

三、实验要求
1.绘制ATM系统的类图,并保存为StarUML文件。
2.按照规范要求描述对象模型建模过程。
四、实验过程

1、寻找分析类(列出所有候选类)
通过以上对ATM系统的描述,读卡机模块的功能是识别客户的银行卡信息,通过查询资料,读卡机读取银行卡号后,通过查询数据库,识别银行卡的类型以及所属银行等信息,然后输出信息。因而,在ATM系统中存在读卡机和数据库连接两类。客户和银行职员为主要参与者,显然他们是本系统的两个类。客户通过从键盘输入信息选择交易类型,因此,可加入键盘类。在显示模块中,屏幕向客户输出相关信息,通过与客户的信息交互,保证业务的正常进行,可以将屏幕作为一个类。吐钱机模块中,取款存款是系统的主要业务,所以可以加入取款机类,保证客户服务的完整进行。打印报表模块不是必要流程,所以,我认为可以不加人类图分析。监视器模块和客户的操作没有联系,因而,不考虑此模块。
综上所述,在ATM 系统中我们可以得出以下7个类,分别是:
①Account(客户类)
②Worker(银行职员类)
③Database Connector(数据库连接类)
④Screen(屏幕类)
⑤Keyboard(键盘类)
⑥Cardreader(读卡机类)
⑦Cashdispenser(取款机类)

2、确定类之间的关系(画出初始类图,不需要绘制类的属性和操作)

客户和银行职员通过调用和使用数据库完成相关的服务,可见客户类与数据库连接类和银行职员类与数据库连接类之间都是使用依赖关系。客户通过各种操作实现对之间账户信息的访问,屏幕类、读卡机类、取款机类作为源对象访问客户类,客户类为目标对象。相同地,客户在键盘输入信息,键盘作为源对象访问屏幕。从而得到系统各个类的关系如下图:
ATM系统初始类图:

3、确定类的属性和操作(给出完成的类图,包括每个类的属性和操作)
ATM系统最终类图:

4、类的详细说明

(1)Account类的详细说明
类名:Account
属性(attribute) AccountNumber 客户账号
Balance 余额

操作 With_draw_money() 取款
Deposit_money() 存款
Transfer() 转账
Password_change() 修改密码
Query_balance() 查询余额
Payment() 付款
协作(与Account有关的类的列表)
Database Connector 数据库连接类
Cardreader 读卡机类
Screen 屏幕类
Cashdispenser 取款机类

(2)Worker类的详细说明
类名:Worker
属性(attribute) WorkerNumber 职员账号
Score 现金添加数目
操作 Add_money() 现金添加数目
Password_change() 修改密码
Preventive() 维护设备
协作(与Worker有关的类的列表)
Database Connector 数据库连接类

(3)Screen类的详细说明
类名:Screen
属性(attribute)
操作 Accept_input() 接受客户输入信息
Show() 显示信息
协作(与Screen有关的类的列表)
Account 客户类
Keyboard 键盘类

(4)Keyboard类的详细说明
类名:Keyboard
属性(attribute)
操作 Enter_password() 输入密码
Select_item() 选择交易项目
协作(与Keyboard有关的类的列表)
Screen 屏幕类

(5)Database Connector类的详细说明
类名:Database Connector
属性(attribute) Username 用户名
密码
操作 Connect_database() 连接数据库
Exit_connect() 取消数据库连接
协作(与Database Connector有关的类的列表)
Account 客户类
Worker 银行职员类

(6)Cashispenser类的详细说明
类名:Cashispenser
属性(attribute) Surplusmoney 取款机余额
操作 Provide_money() 提供现金
Retrieve_money() 检索现金
Accept_money() 接收现金
Output_money 输出现金
协作(与Cashispenser有关的类的列表)
Account 客户类

(7)Cardreader类的详细说明
类名:Cardreader
属性(attribute) CardNumber 卡号
Bankname 成绩
操作 Accept_card 接受卡
Sallow_card 吐卡
Read_card 读卡
协作(与Cardreader有关的类的列表)
Account
客户类

五、实验结果分析

六、实验总结

七、实验评价

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值