软件工程课程设计-ATM取款服务系统
软件工程课程设计
--------M ATM 机取款服务系统
学校:
苏州大学
院系:
计算机科学与技术学院
专业:
计算机科学与技术
组员:
戴飞 0727401003
张超
0727401001
丁杰荣 0727401002
苏栋梁
0727401014
1 1 .
引言 1 1.1 编写目的 本次软件设计的目的是建设一个通过软件实现ATM机各项功能的模拟系统,能够更加方便的为客户提供取款,转账和余额查询等功能,并且按模块划分功能,最大程度的来提神系统的健壮性和可扩展性。根据迭代式开发原理,逐步完善,直至完全满足客户的需求。
2 1.2 适用范围 ATM 的功能要求支持在本公司注册过的所有银行,为其提供服务。
3 1.3 背景 ATM 自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。ATM 是英文 Automatic Teller Machine 的缩写。ATM 是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务。在 ATM 自动取款机上也可以进行账户查询、修改密码和转账的业务。作为自助式金融服务终端,除了提供金融业务功能之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功能。
ATM 自动取款机系统,是一个有终端机,ATM 系统,数据库组成的应用系统。系统功能有用户在 ATM 上提取现金、查询账户余额、修改密码及转账功能。
ATM 自动取款机系统向用户提供一个方便、简单、及时、随时随地可以随心所欲存取款的互联的现代计算机化的网络系统。可以大大减少工作人员,节约人力资源的开销,同时由于手续程序减少也可以减轻业务员的工作负担,有效地提高了整体的工作效率和精确度。
减少了用户办理业务的等待时间;用户可以随时随地可以随心所欲存取款,并且操作简单易懂;用户还可以选择在柜台办理业务或自己在自动提款机和自动取款机办理业务。
4 1.4 文档概述 ATM 自动柜员机系统是由计算机控制的银行自动出纳系统,主要服务于活期储蓄,实现客户自助服务的电子化设备。统一建模语言 UML(Unified Modeling Language)是面向对象技术的一个重要应用,也是软件工程环境中对象分析和设计的重要工具。通过 UML 对 ATM 自动取款机建模,实现查询余额,取款,转账,更改密码等业务,对各功能进行具体的分析和建模。
1.5 5 参考资料 《软件工程导论(第 5 版)》 清华大学出版社
张海藩 编著 《UML 面向对象建模与设计》 人民邮电出版社
Michael Blaha, James Rumbaugh 编著 2. 任务概述 2.1. 目标 本系统可以帮助用户更为轻松的进行取款,转账和查询余额等业务。从用户角度出发,更为理性的设计银行卡卡号,来保证更高的安全性和更快捷的银行业务操作,来吸引更多的客户使用。
2.2. 用户特点 1.客户:通过输入自身信息进入系统,主要完成取款、转账和余额查询操作。
3. 核心技术 1.在代码的编制方面,我们使用的是 java 的 GUI 设计; 2. 在数据库方面我们使用的是 oracle 数据库,版本号为 11.1.0.6.0 release 1。(oracle 11g 对应 JDBC 驱动在附件中已经打包) 3.在做界面的美观设计时,我们将设计代码封装在了 demo.xml 文件中,如果之后的设计需要对界面的外观进行相应的修改,直接更改该文件即可。
4.数据库方面的各类脚本,包括表的建立、删除、修改,以及表中数据的
插入、更新和删除操作都已经保存在对应的 txt 文档中(在附件中已经打包)。
4 4 . 项目需求分析 4 4 .1 系统功能概述 4 4M .1.1 ATM 自动取款机系统相关的主要对象 (1 1 )用户:使用 ATM 自动取款机进行现金交易。进行取款、查询余额、设置密码、转账等操作。
(2 2 )数据库:对用户的所有信息进行存储更新。
4 4M .1.2 ATM 自动取款机系统相关的主要功能 (1 1 )取款功能:用户按照系统输入要求输入取款金额即可取出相应金额的现金。
(2 2 )查询余额功能:用户可以查看账户所剩现金余额。
(3 3 )修改密码功能:如果用户想要修改当前密码,通过系统可以设置新密码。
(4 4 )转账功能:用户可以通过该功能将自己账户上的金额转到其他账户。
首先,ATM 要求用户输入密码,接下来 ATM 把从银行卡上读到的信息以及用户输入的密码传给 ATM 自动取款机系统,系统通过于数据库中的信息进行核对,如果密码正确 ATM 就要求用户选择事务类型(取款、查询等),直至用户选择退出应用服务,询问用户是否退出银行卡结束服务,如果用户选择结束,则退出银行卡,系统重回登陆界面。
4 4M .1.3 ATM 自动取款机系统相关的界面 (1 1 )登录界面:
在整个的系统中,首先用户要输入正确用户登录密码以后才可以进入主界面进行相关的操作。
(2 2 )主界面:
当用户输入正确的用户密码以后,出现主界面,包括以下的一些功能:
a) 主界面有“查询余额”“取款”“转账”“修改密码”等功能选项。
b) 主界面中还有“退卡”功能选项,点击即退出系统服务。
(3 3 )取款界面:
当用户在菜单栏点击取款功能选项,可以进入取款界面:
a) 首先你可以输入取款的金额,输入的必须为 50 倍数的数字,否则系统会提示输入的金额错误,请重新输入。如果屏幕上有便捷提示,比如:1000元、800 元、500 元等。如果上边有你想要取款的金额,你可以按相对应的按键就可以了,如果没有,你再找一个 “其他金额”按下之后,就可以自由输入自己想取的金额了,输入金额之后,按“确认”,即完成取款功能。
b) 正确输入取款的金额后,直接点击取款,会再次确认你取款的金额,点击“是”即可以取出取款机吐出的现金,并且数据更新到相关的数据库文件中,以便以后查询。
(4 4 )余额查询界面:
在主界面中点击余额查询功能选项,就会弹出余额的窗口。
(5 5 )修改密码界面:
在主界面中点击修改密码功能选项,进入修改密码功能界面,系统要求首先输入旧密码,再输入写密码,并对新密码进行第二次确认,全部输入正确修改功能完成。
(6 6 )转账界面:
当点击转账功能选项,会出现转账的界面,这时就可以进行转账;分别输入转入的账户和转入的金额,直接点击转入。若转入过程中出错会有相关的提示的操作。
4 42 .2 系统 Use- -e Case 模型 用户系统登陆取款转账余额查询打印清单<<uses>><<uses>>-结束1*-结束2*-结束3*-结束4*-结束5*-结束6*-结束7*-结束8*修改密码-结束9*-结束10*验证账户<<uses>> 4 4 .3 系统用例描述 4 4 .3.1 M ATM 机 取款 的 用例规约
用例名称:
M ATM 取款 简述:
客户持银行卡(本行 或其他行)从 M ATM 提取现金 actors: 客户和银行主机 基本流:
1.
客户插入银行卡。
2.
M ATM 从银行卡读入卡号(含银行标识和账号),验证卡的有效性。
3.
客户输入密码。
4.
M ATM 验证帐号和密码。
5.
M ATM 显示包括取款在内的服务功能,客户选择 “ 取款 ” 。
6.
输入取款额:客户输入数量为 0 50 元的倍数的取款额。
7.
M ATM 向银行主机通知卡号、密码、账号和取款额,获得含有最新余额的取款成功确认信息。
8.
M ATM 打印并吐出凭条。
9.
M ATM 清点并吐出现金,记录取款成功。
10.
M ATM 询问客户是否继续服务。
11.
客户选择否,M ATM 吐出银行卡,结束用例,否则回到步骤 骤 5 5 。
[ [ 用例结束] ] 备选流:
1. 客户取消服务:
M ATM 记录服务取消,打印凭条,吐出凭条和银行卡,[ [ 用例失败] ] 2. 客户未及时输入超过 0 30 秒:
M ATM 吞卡,[ [ 用例失败] ] 3. 卡无效:
M ATM 吞卡,[ [ 用例失败] ] 4. 读卡器或卡被损坏:
M ATM 吞卡,[ [ 用例失败] ] 5. 密码错:
5.1 客户重新输入密码 5.1.2
累计 3 3 次密 码错误:
M ATM 吞卡,[ [ 用例失败] ] 6. 无此帐号:
M ATM 吞卡,[ [ 用例失败] ] 7. M ATM 无现金:
M ATM 不显示 “ 取款 ” 功能,客户可选择其他服务,
[ [ 用例失败] ] 8. 取款额超过 M ATM 现金余额:
M ATM 要求客户重新输入取款额。
9. 帐户余额不足:
M ATM 要求客户重新输入取款额。
10. 取款额超过当日最高限额:
M ATM 要求客户重新输入取款额。
11. 网络或银行主机失效、通讯超时:
M ATM 记录服务取消,打印凭条,吐出凭条和银行卡,[ [ 用例失败] ] 12. 凭条打印失败,纸用完或卡纸:
12.1 M ATM 通知银行主机取消取款 12.2 M ATM 记录服务取消,吐 出银行卡,[ [ 用例失败] ]
4 4 .3.2 M ATM 机转账的 用例规约
13. 吐现金失败:
13.1 M ATM 通知银行主机取消取款 13.2 M ATM 记录服务取消,吐出银行卡,[ [ 用例失败] ] 14. 客户未及时取走卡:
M ATM 吞卡,[ [ 用例失败] ] 业务规则
1. 单 单 笔 取款 金额上限为 0 5000 元
2. 每月前 前 3 3 笔取款不收手续费
3. 超过前 3 3 笔之后,在本行本地的 M ATM 机取款 2 2 元每次
4. 超过前 3 3 笔之后,在本行异地的 M ATM 机取款 4 4 元每次
5. 超过前 3 3 笔之后,在异行本地的 M ATM 机取款 3 3 元每次
6. 超过前 3 3 笔之后,在异行异地的 M ATM 机取款 5 5 元每次
用 例名称:
M ATM 转账 简述:
客户持银行卡(本行)从 M ATM 可以将 卡内金额转至其他有效银行卡账户中 actors: 客户和银行主机 基本流:
1.
客户插入银行卡。
2.
M ATM 从银行卡读入卡号(含银行标识和账号),验证卡的有效性。
3.
客户输入密码。
4.
M ATM 验证帐号和密码。
5.
M ATM 显示包括取款在内的服务功能,客户选择 “ 转账 ” 。
6.
输入 转账金额 。
7.
M ATM 向银行主机通知卡号、密码、账号和取款额,获得 含有最新余额的 转账 成功确认信息。
8.
M ATM 打印并吐出凭条。
9.
记录 转账 成功。
10.
M ATM 询问客户是否继续服务。
11.
客户选择否,M ATM 吐出银行卡,结束用例,否则回到步骤 骤 5 5 。
[ [ 用例结束] ] 备选流:
1. 客户取消服务:
M ATM 记录服务取消,打印凭条,吐出凭条和银行卡,[ [ 用例失败] ] 1. 客户未及时输入超过 0 30 秒:
M ATM 吞卡,[ [ 用例失败] ] 2. 卡无效:
M ATM 吞卡,[ [ 用例失败] ]
4 4 .3.3 M ATM 机修改密码的 用例规约
用例名称:
ATM 修改密码 简述:
客户持银行卡(本行或其他行)在 在 M ATM 机上完成对银行卡账户密码的修改 actors: 客户和银行主机 基本流:
1.
客户插入银行卡。
2.
ATM 从银行卡读入卡号(含银行标识和账号),验证卡的有效性。
3.
客户输入密码。
4.
ATM 验证帐号和密码。
5.
ATM 显示包括取款在内的服务功能,客户选择 “ 修改密码 ” 。
6.
系统提示客户输入旧密码
7.
系统提示客户输入新密码,并再次确认新密码 3. 读卡器或卡被损坏:
M ATM 吞卡,[ [ 用例失败] ] 4. 密码错:
5.1 客户重新输入密码 5.2
累计 3 3 次密码错误:
M ATM 吞卡,[ [ 用例失败] ] 5. 无此帐号:
M ATM 吞卡,[ [ 用例失败] ] 7 7 . 帐户余额不足:
M ATM 要求客户重新输入 转账金额 。
8 8 .转账 额超过当日最高限额:
M ATM 要求客户重新输入 转账金额 。
9 9 . 网络或银行主机失效、通讯超时:
M ATM 记录服务取消,打印凭条,吐出凭条和银行卡,[ [ 用例失败] ] 10 . 凭条打印失败,纸用完或卡纸:
10.1
M ATM 通知银行主机取消取款 10.2
M ATM 记录服务取消,吐出银行卡,[ [ 用例失败] ] 11 . 客户未及时取走卡:
M ATM 吞卡,[ [ 用例失败] ] 业务规则:
1. 单日 转账 不 得超过 5000 00 0 元
2. 本地本行转账免费
3. 本地异行转账5 +5 元每笔
4. 异地本行转账加4 +4 元每笔
5. 异地异行装张9 +9 元每笔
8.
ATM 提示修改密码成功。
9.
ATM 询问客户是否继续服务。
10.
客户选择否,ATM 吐出银行卡,结束用例,否则回到步骤 骤 5 。
[ 用例结束] 备选流:
1. 客户取消服务:
ATM 记录服务取消,打印凭条,吐出凭条和银行卡,[ 用例失败] 2. 客户未及时输入超过 30 秒:
ATM 吞卡,[ 用例失败] 3. 卡无效:
ATM 吞卡,[ 用例失败] 4. 读卡器或卡被损坏:
ATM 吞卡,[ 用例失败] 5. 密码错:
5.1 客户重新输入密码 5.2
累计 3 次密码错误:
ATM 吞卡,[ 用例失败] 6. 无此帐号:
ATM 吞卡,[ 用例失败] 7. 网络或银行主机失效、通讯超时:
ATM 记录服务取消,打印凭条,吐出凭条和银行卡,[ 用例失败] 8. 客户未及时取走卡:
ATM 吞卡,[ 用例失败] 业务规则:
4 4 .4 系统动态模型 — 活动图 4 4 .4.1 系统总体活动图 合法不正确正确正确不正确不合理合理是否是否不合法插卡 验证帐号输入密码合法帐号?正确?显示系统功能选项修改密码 查询余额取款转帐依次输入旧新密码是否正确显示修改成功返回系统功能页面显示余额输入取款金额验证账户余额及最大可取金额合理?取出现金输入对方帐号合法?转帐成功询问是否打印凭条打印?打印退卡 推出系统
4 4 .4.2 2 系统登陆模块的活动图
4 4 .4.3 3 修改密码模块的活动图
4 44 .4.4 系统取款模块的活动图
4 4 .4.5 5 系统转账模块的活动图
5 5 . 系统分析设计 5 5 .1 系统设计模式的选择 经过小组成员的讨论,我们选的设计模式为:代理模式,单例模式和责任链模式。
5 5 .1.1 代理模式的介绍:
代理模式的体现:
代理模式提供一个中介以控制对某个对象的访问。在本系统中,当用户通过ATM 机提出各种请求时,ATM 要访问银行服务器上的数据库,因此存在跨越数据库访问障碍,同时还有网络障碍。在应用代理模式时,由于 Proxy 与 Withdrawal,Transfer,CheckAccount,SaveAccount,ChangePassword 类继承同一接口,所
以 User 验证完卡类型后调用 Withdrawal 等类时就可以转换为 User 调用 Proxy再调用 Withdrawal 等类,类 Proxy 就是这个中间代理。
例如:Withdrawal 等类部署在银行服务器上,也就是说 Withdrawal 等类和 ATM的客户程序根本不在一个地址空间之内,如此就存在一个网络障碍。
这时调用 Withdrawal 等类的方法就比较复杂了。因为我们还要考虑网络的问题,对收到的结果解包等一些操作。
而在应用了代理模式后,现在已经实现了对 Math 类的代理。存在一问题是在Proxy 类中调用了原实现类 Withdrawal 等的方法。但 Withdrawal 等类并不一定实现所有的方法。为了强迫它实现所有的方法。另一方面,为了我们更加透明地去操作对象,我们在 Withdrawal 等类和 Proxy 类的基础上加一层抽象,即它们都实现 IWithdrawal 接口:
如此,由 Proxy 类在客户端实现 Withdrawal 等类的所有功能,对客户端隐藏了服务端的行为,有助于屏蔽网络可能带来的问题。
5 5 .1.2 责任链模式的介绍 责任链模式的体现:
此模式的想法是给多个对象一个处理请求的机会,从而解耦发送者和接收者,请求沿对象链传递知道被处理。在此系统中,主要体现在手续费的收取问题上:首先由 Withdrawal 类或 Transfer 类提出请求 WithdrawalRequest 或TransferRequest,请求被发送到 Judger 类,Judger 类根据预先设定好的顺序
传递给第一个类进行处理,若第一个类不能处理或处理完它能处理的请求的相关部分之后,将请求发送给其后继,依次类推,知道请求被最后一个类处理完成。同样的方法还体现在 JudgeAmount 中,根据所操作金额的范围不同,对金额所产生的费用作不同的处理。
5 5 .2 用例功能的类图设计
5 5 .2 系统交互模型 — 顺序图 5 5 .2.1 系统取款模块的顺序图 用户 读卡机 屏幕 输入设备 账户管理 点钞机 打印机 事务管理插入磁卡验证账号要求输入密码显示输入密码请求()输入密码传递密码请求验证密码合法性密码合法要求输出事务类型显示选择事务类型请求选择取款请求传递取款请求询问取款金额显示输入取款金额确认输入取款金额传递取款金额请求验证取款金额合法性验证取款金额合法更新账户余额信息请求出钞出钞取钞询问是否打印凭据输出是否打印凭据选择打印确认打印请求打印请求打印打印取出打印数据询问是否进行其他业务输出是否进行其他业务
5 5 .2.2 系统转账模块的顺序图
用户 读卡机 屏幕 输入设备 账户管理 打印机 事务管理插入磁卡验证账号要求输入密码显示输入密码请求()输入密码传递密码请求验证密码合法性密码合法要求输出事务类型显示选择事务类型请求选择转帐请求传递转帐请求询问收帐方帐户显示输入收帐方帐户输入收帐方帐户传递收帐方帐户请求验证帐户是否存在验证帐户存在更新账户余额信息选择打印确认打印请求打印请求打印打印取出打印数据询问是否进行其他业务输出是否进行其他业务询问转帐金额显示输入转帐金额输入转帐金额传递转帐金额请求验证转帐金额是否合法验证取款金额合法输出是否打印询问是否打印
5 5 .3 系统设计类图 +main()-contactno : long-address : char-mailaddress : charUser+infointeraction()-address : char-bankname : char-bankid : intBank+newtype()+deletetype()+altertype()-typename : char-typeno : int-typefeature : charTpye+judgerequest()-transferrequest : bool-transferamount : long-transferdate : char-transfertimes : intJudgeAmount+judgerequest()-withdrawalrequest : bool-transferrequest : bool-accountbankbelong : char-atmbankbelong : charJudgeBank+judgerequest()-typename : char-typeno : int-typefeature : char-cardtype : char-cardno : longJudgeType+judgerequest()-withdrawalrequest : bool-transferrequest : bool-location : char-openaddress : charJudgeRemote+withdrawal()+transfer()+changpassword()+saveaccount()+checkaccount()-accountoverage : long-cardtype : char-accountbankbelong : char-openaddress : char-username : char-userid : long-password : char-withdrawaltimes : int-cardno : long-iflocked : boolAccount+printlist()-transactionamount-transactiondatePrintList+showlogin()+showfunction()+showwithdrawal()+showtransfer()+showchangepassword()+showoverage()-length-widthScreenShow+withdrawal()+transfer()+changpassword()+saveaccount()+checkaccount()-bankname-accountProxy+checkaccount()-cardno-password-userid-usernameCheckAccount+updateaccount()-date : char-withdrawaltimes : intSaveAccount+withdrawal()-withdrawalamount : int-withdrawaldate : char-withdrawtimes : int-withdrawalrequest : bool-cardtype : char-openaddress : char-accountoverage : long-withdrawaltimes : intWithdrawal+transfer()-transferamount : long-transferdate : char-transfertimes : int-transferrequest : bool-withdrawalamount : int-withdrawaldate : char-withdrawaltimes : int-withdrawalrequest : boolTransfer+changpassword()-orginalpassword : char-newpassword1 : char-newpassword2 : charChangePassWord+judgerequest()-withdrawalrequest : bool-transferrequest : boolJudgeFee+judgerequest()-withdrawalrequest : bool-withdrawalamount : int-withdrawaldate : char-withdrawaltimes : int-transferrequest : bool-transferamount : long-transferdate : char-transfertimes : intJudger-withdrawrequest : bool-withdrawalamount : int-withdrawaldate : char-withdrawaltimes : intWithdrawalRequest-transferrequest : bool-transferamount : long-transferdate : char-transfertimes : intTransferRequest+judgerequest()-transferamount : long-transferdate : char-tansfertimes : intAmountRange1+judgerequest()-transferamount : long-transferdate : char-tansfertimes : intAmountRange2+judgerequest()-transferamount : long-transferdate : char-transfertimes : intAmountRange3+judgerequest()-withdrawalrequest : bool-withdrawaldate : char-transferrequest : bool-transferdate : char-date : char-withdrawaltimes : int-transfertimes : intJudgeTime-结束1 *-结束2 *-结束31-结束4*结束1结束2结束3结束4结束5结束6结束7结束8结束9结束10结束11结束12结束13结束14结束15结束16-结束51-结束6 *结束19结束20结束21结束22-结束71-结束8 *+aviableoperation()-atmno : int-atmtype : char-atmbankbelong : char-location : char-date : char-moneyaviable : longAtm
5 5 .4.1 Can rdinformation 包内类之间关系图:
+main()-contactno : long-address : char-mailaddress : charUser+infointeraction()-address : char-bankname : char-bankid : intBank+newtype()+deletetype()+altertype()-typename : char-typeno : int-typefeature : charTpye-结束1 *-结束2 *-结束31-结束4*
5 5t .4.2 Account 包内类之间关系图
+withdrawal()+transfer()+changpassword()+saveaccount()+checkaccount()-accountoverage : long-cardtype : char-accountbankbelong : char-openaddress : char-username : char-userid : long-password : char-withdrawaltimes : int-cardno : long-iflocked : boolAccount+printlist()-transactionamount-transactiondatePrintList+showlogin()+showfunction()+showwithdrawal()+showtransfer()+showchangepassword()+showoverage()-length-widthScreenShow结束3结束4结束5结束6
5 5 .4.3 Service 包内类之间关系图: : +withdrawal()+transfer()+changpassword()+saveaccount()+checkaccount()Proxy-bankname-account+checkaccount()CheckAccount-cardno-password-userid-username+updateaccount()SaveAccount-date : char-withdrawaltimes : int+withdrawal()Withdrawal-withdrawalamount : int-withdrawaldate : char-withdrawtimes : int-withdrawalrequest : bool-cardtype : char-openaddress : char-accountoverage : long-withdrawaltimes : int+transfer()Transfer-transferamount : long-transferdate : char-transfertimes : int-transferrequest : bool-withdrawalamount : int-withdrawaldate : char-withdrawaltimes : int-withdrawalrequest : bool+changpassword()ChangePassWord-orginalpassword : char-newpassword1 : char-newpassword2 : char结束7结束8结束9结束10结束11结束12结束13结束14结束15结束16 6 6 .用户使用说明 1. 将卡插入 ATM 机。
2. 界面提示输入帐号,此时应输入帐号,输入帐号后,点击“继续”。
3. 界面提示输入密码,此时应输入密码。若想重新输入帐号点击“返回”,若想重新输入密码,点击“取消”。
4. 输入密码后点击“确定”,若帐号密码正确,进入业务选择界面,若帐号密码错误,界面提示错误信息,并回到输入帐号界面。(若帐号密码错误次数累计为 3 次以上,则所定账户)
5. 进入业务选择界面,选择相应业务 (1)点击“取款”,进入取款界面,可选择界面显示的数额,也可输入取款金额,取款金额应为 100 倍数并小于帐户余额,否则无效,并重新提示输入取款金额,同时取款金额应小于5000,否则提示取款失败。
(2)点击“转帐”,系统提示输入对方帐号和转账金额,如需重新输入,点击“重置”,输入后点击“确定”,若对方帐号不存在,重新提示输入对方帐号取款金额,若转账金额大于帐户余额或 5000,提示转账失败,并回到业务选择界面。
(3)点击“修改密码”,系统提示输入新旧密码,并再次对输入新密码,点击“确定”,若旧密码不正确或新密码不一致或新密码不是 6 位数字串,系统提示重新输入,并回到修改密码界面,若修改成功,密码提示成功信息,并回到业务选择页面。
(4)点击“余额查询”,系统显示当前用户余额。
(5)点击“退卡”,系统退卡。
7 7 .
系统测试 (一)
白盒测试 我们是由各个模块的代码编制者自己完成的,检查有无异常以及代码自身的逻辑错误等等。
(二)
黑盒测试 黑盒测试中我们使用的是边界值测试,测试用例如下:
取款测试用例 时间 账号 密码 取 款金额 预期结果 实际结果 1 1 天 0020100001 123456 -100 返回取款界面
V 2 1 天 0020100001 123456 0 返回取款界面
V 3 1 天 0020100001 123456 100 取款成功 withdrawtimes+1 卡上余额-100 V 4 1 天 0020100001 123456 2400 取款成功 withdrawtimes+1 卡上余额-2400 V 5 1 天 0020100001 123456 2500 取款成功 withdrawtimes+1 卡上余额-2500
V 6 1 天 0020100001 123456 2600 取款成功 withdrawtimes+1 卡上余额-2600 V 7 1 天 0020100001 123456 4800 取款成功 withdrawtimes+1 卡上余额-4800 V 8 1 天 0020100001 123456 4900 取款成功 withdrawtimes+1 卡上余额-4900 V 9 1 天 0020100001 123456 5000 取款失败
V 10 1 天 0020100001 123456 2590 返回取款界面
V 11 1 天 0020100001 123456 4900 取款成功 withdrawtimes+1 卡上余额-4900 V
4900 取款成功 withdrawtimes+1 卡上余额-4900 V
200 取款成功 withdrawtimes+1 卡上余额-200 V
1 天 0020100001 123456 -100 返回取款界面
V
0 返回取款界面
V
100 取款失败 V
12 1 天 0020100001 123456 1000 取款成功 withdrawtimes+1 卡上余额-1000 V
3000 取款成功 withdrawtimes+1 卡上余额-3000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1 天 0020100001 123456 4000 取款成功 withdrawtimes+1 卡上余额-4002 V 13 1 天 0020100003 123456 1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1004 V 14 1 天 0010100002 123456 1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1003 V 15 1 天 0010100004 123456 1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1000 取款成功 withdrawtimes+1 卡上余额-1005 V 16 1 天 0020100001 123456 1000 取款成功 withdrawtimes+1 卡上余额-1000 V
3000 取款成功 withdrawtimes+1 卡上余额-3000 V
1000 取款成功 withdrawtimes+1 卡上余额-1000 V
1 天 0020100001 123456 5000 取款失败
V
转账测 时间 账号 密码 转 账 预期结果 实际结果
试用例 金额 1 1 天 0020100001 123456 -100 返回转账界面
V 2 1 天 0020100001 123456 0 返回转账界面
V 3 1 天 0020100001 123456 100 转账成功 withdrawtimes+1 卡上余额-100,对方余额+100 V 4 1 天 0020100001 123456 2400 转账成功 withdrawtimes+1 卡上余额-2400,对方余额+2400 V 5 1 天 0020100001 123456 2500 转账成功 withdrawtimes+1 卡上余额-2500,对方余额+2500 V 6 1 天 0020100001 123456 2600 转账成功 withdrawtimes+1 卡上余额-2600,对方余额+2600 V 7 1 天 0020100001 123456 4800 转账成功 withdrawtimes+1 卡上余额-4900,对方余额+4900 V 8 1 天 0020100001 123456 4900 转账成功 withdrawtimes+1 卡上余额-4900,对方余额+4900 V 9 1 天 0020100001 123456 5000 返回转账界面
V 10 1 天 0020100001 123456 2590 返回转账界面
V 11 1 天 0020100001 123456 4900 转账成功 withdrawtimes+1 卡上余额-4900,对方余额+4900 V
4900 转账成功 withdrawtimes+1 卡上余额-4900,对方余额+4900 V
200 转账成功 withdrawtimes+1 卡上余额-200,对方余额+200 V
1 天 0020100001 123456 -100 返回转账界面
V
0 返回转账界面
V
100 返回转账界面
V 12 1 天 0020100001 123456 1000 转账成功 withdrawtimes+1 卡上余额-1000,对方余额V
+1000 13 1 天 0020100003 123456 1000 转账成功 withdrawtimes+1 卡上余额-1005,对方余额+1000 V 14 1 天 0010100002 123456 1000 转账成功 withdrawtimes+1 卡上余额-1004,对方余额+1000 V 15 1 天 0010100004 123456 1000 转账成功 withdrawtimes+1 卡上余额-1009,对方余额+1000 V 16 1 天 0020100003 123456 2500 转账成功 withdrawtimes+1 卡上余额-2509,对方余额+2500 V
1 天 0020100003 123456 2500 转账成功 withdrawtimes+1 卡上余额-2509,对方余额+2500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 500 转账成功 withdrawtimes+1 卡上余额-509,对方余额+500 V
1 天 0020100003 123456 400 取款失败 V
- 范文大全
- 职场知识
- 精美散文
- 名著
- 讲坛
- 诗歌
- 礼仪知识
-
超星尔雅学习通《对话大国工匠致敬劳动模范》题库附答案
超星尔雅学习通《对话大国工匠致敬劳动模范》题库附答案 1、历史只会眷顾坚定者、奋进者、搏击者,而不会
【入党申请书】 日期:2021-05-12
-
对于政治生态考核整改工作方案
本文系作者原创投稿,仅供学习参考,请勿照搬照抄! 关于政治生态考核整改工作的方案 为做好推进风清气正
【经济工作】 日期:2020-06-05
-
大学生学习2024年两会精神心得感悟
大学生学习2024年两会精神心得感悟过去一年,是全面贯彻二十大精神的开局之年,中国共产党带领全国各族人民,付出艰辛努力,换来重大成
【心得体会】 日期:2024-03-07
-
中国传统故事英文版 中国古代故事英文版
历史学科蕴含着许多丰富的、生动的、有趣的素材,每一个历史事件、历史人物都有相关的、动人的历史小故事,都能给人以启迪。你对中国古代的故事了解多少呢?下面是小编为您...
【调查报告】 日期:2019-05-22
-
基尔霍夫定律验证实验报告
基尔霍夫定律的验证的实验报告本文关键词:基尔,定律,霍夫,验证,实验基尔霍夫定律的验证的实验报告本文
【思想宣传】 日期:2021-03-08
-
中小学党建工作实施意见
中小学党建设工作实施意见中小学校担负着培养德智体美全面发展的社会主义建设者和接班人的重要使命。加强中
【爱国演讲】 日期:2020-09-22
-
地藏经诵读仪规(完整版)
地藏经诵读仪规(完整版) 恭请文: 恭请大慈大悲大愿地藏王菩萨、护法诸天菩萨慈悲加持护念弟子***能
【个人简历】 日期:2021-03-31
-
小学党建工作制度
小学党建工作制度33篇 党建工作责任制度 1 党支部年初制定全年党建工作计划,将目标任务分解到有关部
【思想学习】 日期:2021-02-10
-
青年学生学习全国人大十四届二次会议心得感想16篇
青年学生学习全国人大十四届二次会议心得感想16篇报告中提到政府在经济调控、消费政策、基础设施和制造业投资、房地产调控以及地方债务
【心得体会】 日期:2024-03-07
-
材料力学考题
材料力学考题本文关键词:材料力学,考题材料力学考题本文简介:材料力学1、简易起重设备中,AC杆由两根
【入党申请书】 日期:2021-03-06
-
执行信息公开网
执行信息公开网 执行信息公开网 执行信息公开网: zhi*ing (点击下图可直接进行访问) 全国
【职场知识】 日期:2020-07-03
-
大学教师毕业设计指导记录4篇
大学教师毕业设计指导记录4篇 毕业设计是指工、农、林科高等学校和中等专业学校学生毕业前夕总结性的独立作业。是实践性教学最后一
【职场知识】 日期:2022-05-11
-
年国家开放大学电大电子商务单选题题库
单选: 1、EDI是指A、电子商务B、电子数据交换C、电子交易 D、移动数据交换 答案: B 2、电
【职场知识】 日期:2020-06-05
-
“以学生为中心”的教学原则
以学生为中心的教学原则教师在开展以学生为中心的教学实践中,必须谨记学习目标不再是知识的获得,能力要比知识更重要。以下是蒲公英阅读网
【职场知识】 日期:2023-01-05
-
有机磷酸酯类中毒及其解救(实验报告范文)
有机磷酸酯类中毒及其解救XXX、XXX一、实验目的1 观察有机磷酸酯类农药敌百虫中毒时的症状。 2
【职场知识】 日期:2020-08-30
-
组工干部学习谈治国理政第三卷《共建创新包容开放型世界经济》心得体会
组工干部学习谈治国理政第三卷《共建创新包容的开放型世界经济》心得体会 《习近平谈治国理政》第三卷第七
【职场知识】 日期:2020-09-22
-
心理健康黑板报_心理健康黑板报图片
虽然工作上难免压力,但是只要正视压力,一切就不会太辛苦。下面就随小编看看心理健康黑板报内容,希望喜欢哦。 心理健康黑板报图片欣赏 心理健康黑板报图片1 心理健...
【职场知识】 日期:2020-02-26
-
2021教育基础知识试题(附答案)
2021教育基础知识精选试题(附答案) 1、主张恢复西方传统教育核心价值,反对“进步教育
【职场知识】 日期:2021-03-17
-
男一分钟仰卧起坐标准表
表表11--13 男生一分钟仰卧起坐、引体向上单项评分表(单位:次) 等级 单项 得分 三年级 四年
【职场知识】 日期:2021-05-08
-
发展党员工作部门联审征求意见表
发展党员工作部门联审征求意见表发展对象姓 名 性别 出生年月 身份证号 现工作单位及职务 家庭住址
【职场知识】 日期:2020-09-22
-
唐代诗人李昂个人信息
唐代诗人李昂个人信息 导读:我根据大家的需要整理了一份关于《唐代诗人李昂个人信息》的内容,具体内容:
【古典文学】 日期:2020-11-07
-
[关于中秋的朗诵诗词] 关于爱国的朗诵诗词
中秋,热闹的街头树起了灯彩,舞起了火龙。你知道多少关于中秋的朗诵诗词?下面小编为你整理了几篇关于中秋的朗诵诗词,希望对你有帮助。 关于中秋的朗诵诗词一 中秋佳节...
【古典文学】 日期:2019-06-06
-
叠加原理实验报告
一、实验目的1、通过实验来验证线性电路中的叠加原理以及其适用范围。 2、学习直流仪器仪表的测试方法。
【古典文学】 日期:2020-11-12
-
输血查对制度
输血查对制度依据卫生部《临床输血技术规范》的要求,制订抽血交叉配备查对制度、取血查对制度、输血查对制
【古典文学】 日期:2020-09-24
-
大气唯美黑板报【国庆节大气黑板报】
日本在投降的那一天,再也没有昔日的嚣张,我们中国的屈辱得到洗刷。下面就随小编看看国庆节大气黑板报内容,希望喜欢哦。 国庆节大气黑板报图片欣赏 国庆节大气黑板报...
【古典文学】 日期:2019-05-05
-
【二人旅游英语情景对话】 二人英语对话2分钟旅游
随着国内外旅游业市场的不断扩大,旅游英语人才成为社会的紧缺人才。小编精心收集了二人旅游英语情景对话,供大家欣赏学习! 二人旅游英语情景对话1 A:Itsmyfirsttimeto...
【古典文学】 日期:2020-02-29
-
怎样认识世界处于百年未有之大变局
怎样认识世界处于百年未有之大变局 首先,“大变局”是对国际格局发生巨大变迁的
【古典文学】 日期:2020-10-28
-
2021公安专业知识考试练习题(附答案)
2021公安专业知识考试练习题(附答案) 1 甲地公安机关接到群众举报,在当天举行的大型娱乐活动中,
【古典文学】 日期:2021-01-29
-
乳糖检测方法
附录A(规范性附录) 乳糖的测定A 1原理牛乳或乳粉样液经沉淀剂澄清后,样液中的乳糖在苯酚、氢氧化钠
【古典文学】 日期:2020-12-08
-
[合作与成功的故事]团队合作成功的案例
学会合作,合作是一种深刻后的美丽,因为一滴水只有融入大海,才能够激起美丽的浪花。关于合作你了解吗?以下是小编分享的合作与成功的故事,一起来和小编看看吧。 合作与成...
【古典文学】 日期:2020-02-27
-
时尚女装店面装修效果图|韩式女装店面装修
在服装店的设计之中,我们要将多变、创新、品牌自身的定位与发展趋势相结合,用一种可持续的设计方式呈现出来,以便更加适应不断更新的展示主体。下面小编就为大家解开时尚女装店...
【中国文学】 日期:2019-05-16
-
2021年超星尔雅学习通《辩论与修养》章节测试试题(共183题附答案)
2021年超星尔雅学习通《辩论与修养》章节测试试题(共183题附答案)1、辩论的目的不是单纯获得某种
【中国文学】 日期:2021-05-12
-
天地人格最佳搭配起名技巧|天地人格的五行怎么算
天地有阴有阳,物体刚柔表里,而数字则有一个诱导力,那么你知道怎么计算天地人格来取名吗?今天小编为你整理了天地人格最佳搭配起名技巧,一起来看看用天地人格取名的方法有哪些...
【中国文学】 日期:2019-06-06
-
信息技术重要性
信息技术的重要性 信息技术与课程整合将带来课程内容的革新,信息技术的高速发展,要求传统的课程必须适应
【中国文学】 日期:2021-02-11
-
2022年当前世界下中国面临国际形势论文范本
和平与发展仍然是当今时代的主题。谋和平、求合作、促发展是各国人民的共同愿望。为了大家学习方便,下面是小编为大家整理的当前世界下中国面临的国际形势论文范文内容,以供参...
【中国文学】 日期:2022-03-31
-
【世界上最大的半岛】阿拉伯半岛
你知道世界上最大的半岛是什么吗?下面由小编来介绍一下。 阿拉伯半岛的简介 阿拉伯半岛(阿拉伯文:)位于亚洲,是世界上最大的半岛。沙特阿拉伯、也门、阿曼、阿拉伯联合...
【中国文学】 日期:2019-05-24
-
古代人物漫画女生唯美图片欣赏 漫画人物图片女孩唯美
中国漫画始于清末民初,而平面设计虽然其名称是在改革开放以后确立的,但设计活动却自古就有,二者的相互影响是本文的主要讨论范围。小编整理了唯美古代女生人物漫画,欢迎阅读!...
【中国文学】 日期:2020-03-19
-
雪天安全行车注意事项_雪天安全行车提示语
维护城市交通秩序,争做河源文明市民。你们想看看雪天安全行车提示语有哪些吗?以下是小编推荐雪天安全行车提示语给大家,欢迎大家阅读! 安全行车温馨提示语【经典篇】 1...
【中国文学】 日期:2020-03-15
-
2021年5月时事政治热点(国内+国际)
2021年年5月时事政治热点(国内+国际)国内部分 1 55月月66日,由商务部和海南省人民政府共同
【中国文学】 日期:2021-06-10
-
关于通过努力获得成功的故事:靠自己努力成功的例子
努力,是成功的一半。人生道路上难免会遇到挫折,但我们不应后退,应向理想之路奋勇前进。关于名人努力成功的故事你了解吗?以下是小编分享的关于通过努力获得成功的故事,一起...
【中国文学】 日期:2020-03-03
-
改革开放大事记简表(改革开放新时期1978-2012年)
改革开放大事记简表 (1978-2012年) 时间1978年12月18日至22日地点北京事件党的十一
【外国名著】 日期:2021-06-17
-
山东省生产经营单位安全生产主体责任规定(303号令)
山东省生产经营单位安全生产主体责任规定(2013年2月2日山东省人民政府令第260号公布根据2016
【外国名著】 日期:2020-10-22
-
大学生音乐欣赏论文 大学音乐鉴赏论文3000
今天小编就为你介绍关于大学生音乐欣赏论文,下面是!小编给你搜集了相关资料!希望可以能帮助到大家。 大学生音乐欣赏论文—第一篇 音乐是生活不可缺少的一部分,学会欣...
【外国名著】 日期:2019-05-27
-
材料力学金属扭转实验报告
材料力学金属扭转实验报告 【实验目的】 1、验证扭转变形公式,测定低碳钢的切变模量G。;测定低碳钢和
【外国名著】 日期:2020-11-27
-
长豆角家常做法怎么做好吃营养 炒豆角的家常做法
豆角在我们日常生活中是很常见的食材,可能我们只知道它含有优质蛋白和维生素,其实它还有其他的营养价值。它也是可以和很多食材做搭配的。下面小编为大家整理了长豆角的做法...
【外国名著】 日期:2020-02-26
-
(新版)就业知识竞赛题库及答案解析
(新版)就业知识竞赛题库(全真题库) 一、单选题1 (单选):在职业生涯规划工具中,组织在展开员工职
【外国名著】 日期:2021-07-21
-
植物装饰画黑白图片欣赏|荷花装饰画黑白图片
装饰画是一种装饰性艺术,是装饰性和创造性相结合的艺术设计形式。小编整理了植物装饰画黑白,欢迎阅读! 植物装饰画黑白图片展示 植物装饰画黑白图片1 植物装饰画黑白...
【外国名著】 日期:2019-05-31
-
坚定不移全面从严管党治警研讨发言稿
坚定不移全面从严管党治警研讨发言稿政治建警、从严治警是党在新时代的建警治警方针。一年前的全国公安工作
【外国名著】 日期:2020-09-18
-
白烛葵的花语:白烛葵的不死幻想症
白烛葵,花名,花语为“不感兴趣”。现又指《知音漫客》上连载漫画《极度分裂》里主要角色之一。下面小编为你整理了白烛葵的花语。欢迎阅读。 白烛葵的花语:不感兴趣 ...
【外国名著】 日期:2019-05-11
-
把脉人力资源管理的风向标 什么是风向标
把脉人力资源管理的风向标 外部经营环境的巨大变化,不可避免地给身处其中的企业及其经营管理带来新的、深刻的变化和挑战:市场需求在明显萎缩;而买方市场中,客户要求
【外国名著】 日期:2019-09-04
-
梧桐花的花语|梧桐花的功效与作用
梧桐花为梧桐科植物梧桐的花,植物形态详梧桐子条。今天小编为你整理了梧桐花的花语,欢迎阅读。 梧桐花的花语是:情窦初开 在春季里晚开的花朵,有着恬淡的气息。 ...
【寓言童话】 日期:2020-03-03
-
西部计划笔试题库(99题含答案)
西部计划笔试题库(99题含答案) 1 第十三届全国人大三次会议表决通过了《中华人民共和国民法典》,自
【寓言童话】 日期:2021-06-16
-
大学生音乐欣赏论文 大学音乐鉴赏论文3000
今天小编就为你介绍关于大学生音乐欣赏论文,下面是!小编给你搜集了相关资料!希望可以能帮助到大家。 大学生音乐欣赏论文—第一篇 音乐是生活不可缺少的一部分,学会欣...
【寓言童话】 日期:2020-03-12
-
年学生资助诚信教育主题活动方案
各二级学院(部): 为深入贯彻落实习近平总书记关于教育的重要论述,落实立德树人根本任务,增强当代大学
【寓言童话】 日期:2020-06-21
-
油管、套管规格尺寸对照表
API油管规格及尺寸 公称尺寸(in) 不加厚外径(mm) 不加厚内径(mm) 加厚外径(mm) 加
【寓言童话】 日期:2020-08-31
-
主题教育调查研究工作方案2篇
主题教育调查研究工作方案1根据省、市、县开展“不忘初心、牢记使命”主题教育工
【寓言童话】 日期:2021-03-19
-
惊悚鬼故事50字 令人惊悚的故事
这些惊悚故事在短短的篇幅和时间之内让您感受到故事里传达出来的恐怖感,令你感到害怕。下面就是小编给大家整理的令人惊悚的故事,希望对你有用! 令人惊悚的故事篇1:学校...
【寓言童话】 日期:2019-05-13
-
【古代男生漫画图片大全】男生漫画头像
漫画和动画组成了动漫产业的两大支柱。然而,与动画相比,漫画在业界和学界皆相对冷清。小编整理了古代男生漫画,欢迎阅读! 古代男生漫画图片展示 古代男生漫画图片1 ...
【寓言童话】 日期:2019-05-27
-
读《李光耀观天下》有感_李光耀观天下txt在线读
务实与真诚 ——读《李光耀观天下》有感 原创:雁过留声ly 购于北大,在出差的飞机和高铁上读完,这本《李光耀观天下》给予我很多启示。严格地说,这本书没有详
【寓言童话】 日期:2019-05-05
-
北京最好吃的自助餐厅 北京高档自助餐排名
自助餐简直就是拯救大胃王的最佳饮食!没有之一!世界上没有什么事情是吃一顿自助餐解决不了的,如果有,那就吃两顿!下面小编给大家推荐北京几家好吃的自助餐。 北京最好吃的...
【寓言童话】 日期:2020-02-25
-
学生高考动员演讲稿
学生高考动员演讲稿3篇高考动员演讲稿11 老师们、同学们: 大家下午好!漫漫高考长征路已经进入尾声了
【百家讲坛】 日期:2021-09-22
-
企业安全演讲稿2021
最新企业安全的演讲稿5篇 演讲稿是作为在特定的情境中供口语表达使用的文稿。在充满活力,日益开放的今天
【百家讲坛】 日期:2021-09-22
-
XX镇扶贫项目实施专项整治工作总结_1
XX镇扶贫项目实施专项整治工作总结 为深入贯彻精准扶贫精准脱贫基本方略,认真落实党中央、国务院,省委
【百家讲坛】 日期:2021-09-22
-
对乡镇领导班子干部成员批评意见例文
对乡镇领导班子干部成员的批评看法范文 一、对党委书记XXX同志的批评看法〔3条〕 1、与干部交流偏少
【百家讲坛】 日期:2021-09-22
-
群英乡扶贫资金项目芬坡村祖埇村生产道路硬化工程绩效自评报告
群英乡扶贫资金项目((芬坡村祖埇村生产道路硬化工程))绩效自评报告 一、基本情况(一)群英乡扶贫资金
【百家讲坛】 日期:2021-09-22
-
党委书记警示教育大会上讲话2021汇编
党委书记在警示教育大会上的讲话55篇汇编 党委书记在警示教育大会上的讲话(一) 同志们: 根据省州委
【百家讲坛】 日期:2021-09-22
-
对于2021年召开巡视整改专题民主生活会对照检查材料
关于12021年召开巡视整改专题民主生活会对照检查材料 按照中央巡视组要求和省、市、区委统一部署,区
【百家讲坛】 日期:2021-08-14
-
消防安全知识培训试题.doc
消防安全知识培训试题姓名: 部门班组: 成绩: 一:填空题,每空4分,共44分。 1、灭火剂是通过隔
【百家讲坛】 日期:2021-08-14
-
涉疫重点人员“五包一”居家隔离医学观察工作流程
涉疫重点人员“五包一”居家隔离医学观察工作流程 目前,全球疫情仍处于大流行状
【百家讲坛】 日期:2021-08-14
-
疫情防控致全体师生员工及家长一封信
疫情防控致全体师生员工及家长的一封信 各位师生员工及全体家长朋友: 暑假已至,近期我省部分地方发现确
【百家讲坛】 日期:2021-08-14