资源描述
银
行
系
统
需
求
分
析
目录
第一章 引 言 3
1.1 编写目的 3
1.2 背景 3
1.3 参考资料 3
第二章 需求分析报告前提 5
2.1 功能需求 5
2.1.1 功能划分 5
2.1.2 功能描述 5
2.2 性能需求 13
2.3 运行需要 14
2.4 输入要求 14
2.5 输出要求 15
2.6 其他需求 15
第三章 与用户的沟通 16
3.1 访谈 16
3.2 描述 16
第四章 系统的数据流程和处理流程 17
4.1 识别参与者(角色) 17
4.2 用例建模(Modeling Use Cases) 17
4.3 定义系统对象类 21
第五章 结论 25
第一章 引 言
1.1 编写目的
本报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本银行储蓄系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用
此文档进一步定制软件开发的细节问题,明确软件需求、安排项目规划与进度、组织软件开发与测试,便于用户与开发商协调工作。经过对该银行储蓄系统项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行需求分析。
1.2 背景
项目名称:银行计算机系统
用户:××银行
说明:银行系统是与生活紧密相关的一个机构,银行提供了存款、取款、转账等业务。在银行设立账户的人或机构通常被称为银行的储户。一个储户可以在银行开多个账户,储户可以存钱到账户中,也可以从自己的账户中取现,还可以将存款从一个账户转到另一个账户。储户还可以随时查询自己账户的情况,并查询以前所进行的存款、取款等交易记录。后台管理员可以对储户的账户进行注销、删除、查询等管理,还有就是银行利息、汇率、手续费之类参数的设置,以及财务管理以及财务分析。
1.3 参考资料
《件工程(第二版)》 齐志昌 谭庆平 宁洪 编著 高等教育出版社
《软件工程概论》 郑人杰 马素霞 殷人昆 编著 机械工业出版社
《软件工程——原理,方法与应用》 吴钦藩 编着 人民交通出版社出版
《软件工程导论(第四版)》 张海藩 编着 清华大学出版社出版
《软件工程》 任胜兵 邢琳 编着 北京邮电大学出版社
第二章 需求分析报告前提
2.1 功能需求
2.1.1 功能划分
软件分别有注册,修改,查询,更新等功能。各个模块各有不同的功能,但都能完成查询和存储功能。各模块的数据都存放在数据库中。数据的调用和连接都有程序来完成。
此软件所要完成的主要功能有三方面:如果是存款,用户填写存款单,然后交给键入系统,同时系统还要记录存款人姓名,住址,身份证,号码,存款类型,存款日期。利率及密码(可选)等信息,完成后由系统反馈成功存款信息给用户。如果是取款,用户填写取款的相关信息(取款金额、取款币种)进行提交,系统要求用户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息给用户。如果是转账,用户填写转账的相关信息进行提交,系统要求用户输入密码以确认身份,核对密码正确无误后系统计算利息并反馈信息给用户。系统进行及时更新数据库。
其他功能:开户功能。用户通过注册的方式向系统提出开户请求,用户填写相关信息后进行提交,系统根据用户所填写信息为用户分配唯一的银行卡号,并且及时更新数据库,将用户信息进行保存。还提供了后台管理员的一些相关功能,如账户信息管理,财务管理,系统参数以及财务分析统计。
2.1.2 功能描述
外部功能:实现化窗口,开户/销户、存款/取款、查询/转账
内部功能:同步,过滤,定位,识别,更新,连接
开户功能:通过储户申请建立一个新帐户的描述信息,并将该帐户添加到帐户信息映射表中,并以系统自动生成的唯一的帐户号作为主键。同时系统还将生成唯一的银行卡号作为外键。
① 申请需要提交有关材料的证明,并审核通过。
② 银行为其建立一个新账户。
③ 返回账户号/密码给储户
④ 打印开户信息给储户
开户活动图:
销户功能:消除储户存储在系统中的个人信息。
① 通过储户申请,由管理员进行消户操作。
② 系统消除储户的一切信息,更新数据库。
③ 返回注销信息成功通知。
销户活动图:
登录功能:根据不同身份登录进入到不同的登录界面。
① 用户输入登录相关信息(账号、密码)。
② 系统检查用户相关信息,提示成功与否。
用户登录活动图:
存款功能:以储户的存款为主要活动,相关记录根据存款结果进行调整,以使信息保持一致。
① 系统需要在原帐户信息中增加一条记录,包括存款人姓名,住址,存款类型,存款日期。
② 若为新储户须建立一个帐户,并记录此次的记录。
存款活动图:
取款功能:以储户的取款为主要活动,相关记录根据存款结果进行调整,以使信息保持一致。
① 系统计算利息,在原帐户信息中取款减去。
② 账户取款相关信息都会写入到数据库中
取款活动图:
查询功能:为储户提供查询余额服务,将储户的相关记录输出。
①需要储户的帐户信息及密码。
②打印储户的帐户余额
余额查询活动图:
转账功能:为储户提供转账给其它储户的服务,将储户的存款信息进行调整,以保持信息的一致。
① 需要储户的帐户信息及密码。
② 需要其它储户的账号信息
③ 需要进行一定的手续费收取
转账活动图:
密码修改:为储户提供密码修改服务,将储户的密码信息进行调整,以保持信息的一致。
① 需要储户的帐户信息及密码。
② 需要储户输入新密码并确认。
用户密码修改活动图:
2.2 性能需求
① 数据精确度
在进行向数据库文件提取数据时,需求数据记录定位精确,在往数据库文件数组中添加数时,要求输入数精确金额,身份证,卡号等按消息设定字符数。
② 时间特性
程序响应时间:在人的感觉和视觉事物范围内;
信息交换时间:要求在程序调用前调用后都与数据库保持同步更新,网络信息交换施加应该小于程序调用时间。
③ 适应性
要求数据库局用很好的更新能力,由于本产品是试验性软件,故对磁盘和内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。
④ 磁盘容量
由于要存贮大量的数据和信息,所以要求要有足够的磁盘容量。
⑤ 主存容量
为了满足储户的要求,系统必须要有高的运作速度,储户填写的表单输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息并打印出各项清单,所以要求很高的信息量速度和大的主存容量。
2.3 运行需要
① 用户界面
屏幕格式:采用窗口格式,通过分窗口操作进行各个操作之间的转换。
报表格式:以银行原报表格式设计电子打印表格式。
菜单格式:下拉式菜单,应显示储户资料及帐户资料的各个详细条目。
② 硬件接口
网络硬件接口要求:显示中要求具有高速以太网组以实现联网操作,但是在理论试验验证软件本身的目的来看,无需网络通讯接口。
③ 软件接口
Windows 标准接口,要求与其他软件无冲突错误发生。
④ 通信接口
计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。
⑤ 故障处理
软件应具备自由拼写错误检查等功能,在出现故障后应从整个系统数据库更新载入数据库进行操作。
2.4 输入要求
① 业务员从存取款表单输入数据,要迅速精确,适当调整输入时间,不能让客户等太久,但也不能让业务员太过忙碌以免影响正确率。
② 储户自己在自动机存钱时要耐心等待机器算清正确,待准确无误时再按确认。
2.5 输出要求
① 要求能快速准确打印出清单给客户。
② 要求能够快速响应储户的功能要求。
2.6 其他需求
① 可用性
本软件业可以通过单步跟踪的操作进行检查处理。
② 安全性
由于软件运行数据库中,所以参数不容易被错改,破坏,万一参数受到破坏也不会影响源程序。
③ 可维护性
本软件利用数据库进行编程,系统结构由程序基本无额定,大量的参数及文本内容全部存放于数据库中。修改,更新数据库只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性升级都十分方便。
④ 兼容性
适合windows 95 ,windows 98,windows xp,windows sp2及以上操作系统、数据库:SQL SERVER 2000
第三章 与用户的沟通
3.1 访谈
当前大多数银行所使用的银行储蓄系统办理业各时手续繁多,人工业务操作过多,严重影响了工作效率,以至客户等待办理手续过长感到不耐烦,且出错率高。针对于现象,与银行相关人员进行交流,获取需求以及了解银行的主要功能模块以及各个模块之间的联系。与用户进行交流(主要采取问卷调查方式),查看当前用户的需求。针对用户以及银行业务人员的要求进行系统的设置。
3.2 描述
如储户用卡取款时能直接取款,可以交给业务员输入资料,再由储户输入密码以确认身份,然后业务员才把现金交给储户,也可以自己到ATM取款机自己自行。
卡内余额
银行
输入取款信息
输入密 码
储户
确认
清单生成程序
清单
第四章 系统的数据流程和处理流程
4.1 识别参与者(角色)
通过分析银行系统的功能需求,可以识别出3个参与者:
(1)后台管理员:相当于银行的工作人员
(2)客户:任何在银行中开户的个人或组织
(3)银行系统:提供存、取等业务的银行。客户可在银行中开户或销户(关闭帐户)。
4.2 用例建模(Modeling Use Cases)
1.使用时序图来描述用例(Using Activity Diagrams to Represent Use Cases)
(1)修改信息时序图
(2)存款(Deposit fund)时序图
(3)取款(Withdraw fund)时序图
(4)转帐(Transfer fund)时序图
(5)开户(创建帐户)时序图
(6)注销账户时序图
4.3 定义系统对象类
1.定义过系统需求,就可以根据系统需求来识别系统中所存在的对象。
2.系统对象的识别可以通过寻找系统域描述和需求描述中的名词来进行,从系统需求描述中可以找到的名词有银行(Bank)、帐户(Account)、客户(Customer)、资金(Funds),这些是对象图中的候选对象。
3.判断是否应该为这些候选对象创建类的方法是:是否有与该对象相关的身份和行为。如果有,则它是一个存在于模型中的对象,应该为之创建类。资金没有对象,也没有与资金相关的行为。
4.从上述分析可知,系统至少具有3个重要的类:Bank、Account、Customer。
在银行中,对帐户进行存钱、取钱、转帐操作,要保留业务记录。因此在系统中还应有代表这些业务记录的对象存在:存(Deposit)、取(Withdraw)、转帐(Transfer),这三个类都是一种业务记录,故可抽象出父类:Transaction。
5.接着需确定这些对象的属性和行为。
1)类Bank的属性和行为
bankCode: String name: String
address: String Phone:String Fax:String
setBankCode(code: String)
setName(name: String)
setAddress(address: String)
setPhone(phone: String)
setFax(fax: String))(设置私有属性)
getBankCode(code: String)
getName(name: String)
getAddress(address: String)
getPhone(phone: String)
getFax(fax: String))(访问私有属性)
(2)类Account的属性和行为
bank: Bank holder: Customer[]
accountNo: String createDate: Date
balance: float (私有属性)
getHolders(): Customer[ ]
newAccount(holder:Customer,balance:float):void
remAccount(accountNo:String):void(销户)
Withdraw(holderName:String,holderID:String,accountNo:String,money:float):float(返回取户余额)
Deposit(holderName:String,holderID:String,accountNo:String,money:float):float(返回存款户余额)
2)类Account的属性和行为
transferOut(accountNo: String, bankCode: String, money: float): float
transferIn(accountNo:String, bankCode: String, money: float): float
newBalance(): float(计算新的帐户余额)
update(): void(更新数据库中的帐户信息)
save(): void(将帐户信息存储到数据库中)
delete(): void(从数据库中删除帐户)
closeAccount(accountNo: String): void
getAccount(accountNo:String): Account(返回指定的帐户信息)
query(holderName:String,holderID:String, accountNo:String, money:float, isSaving: Boolean):Boolean(查询存取帐户是否存在,若是取款,还要查询帐户余额是否足够)
3)类Customer的属性和行为
Name: String customID: String
address: String account: account[ ]
getAccounts(): Account[ ]
Query(name: String, id: String): Boolean
newCustomer(name: String, id: String, address: String, account: Account[ ]):void(创建客户对象)
save(): void(将客户信息存储到数据库中)
update(): void(更新DB中客户信息)
hasAccount():Boolean(判断客户是否还持有帐户)
delete(): void(删除DB中的客户信息)
(4)类Transaction的属性和行为
私有属性:account: Account
createDate: Date fund: float(交易金额)
newTransaction(account: Account, fund: float, date: Date): void
save():void(将交易记录存储到数据库中)
(5)类Deposit的属性和行为
继承类Transaction,无私有属性
newDeposit(account: Account, fund: float, date: Date):void(创建存款交易记录)
save(): void(将存款交易记录存储到DB中)
6)类Withdraw的属性和行为
继承类Transaction(同样有account,createDate及交易金额fund属性)。
无私有属性。
newWithdraw(account: Account, fund: float, date: Date): void(创建新的取款交易记录)
save(): void(将取款交易记录存储到DB中)
(7)类Transfer的属性和行为
继承类Transaction
transferAccountNo: String
transferBank:Bank
newTransfer(account: Account, transferAccountNo: String, transferBank: Bank, fund: float, date: Date): void(创建新的转帐交易记录,可是收帐户或付帐户)
save(): void(将转帐交易记录存储到DB中)
第五章 结论
银行储蓄计算机系统技术在目前是一个技术上成熟的系统,并且在银行公局内部准备采取有力措施保证资金和人员配置等。因此,分阶段开发“银行业务系统”的构想是可行的。为了使银行公司适应现代化高场竞争的需求,促进银行管理信息化,不断满足储户的要求,争取更好的经济效益,建议立即着手系统的建议。
展开阅读全文