----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
软件project
?
银行业务管理和现金结算系统
--- 需求分析文档
?
1.?????项目分工
2.?????项目背景
??? 当今计算机及网络技术飞速发展,计算机应用在全球范围内日益普及,而社会也正高速向信息化社会前进,信息系统的作用也越来越大。因此,纸质作为存储数据的介质已经不能适应时代大道发展。
加上现现在,纯人工操作银行存取款业务已经不太现实,一是由于业务量大。人工操作会显得效率极低;二是由于银行存取款业务繁琐,准确度要求极高,人工操作易出错。甚至会造成不可挽回的损失。
所以准确度高、出错率低的银行业务管理软件显得尤为重要。银行储蓄系统对于现代银行而言,是是否能发挥其银行管理作用至关重要的技术平台。对于银行储户和银行管理人员来说,是是否能方便快捷的获取信息的关键。因此银行储蓄系统应该能够为用户提供充足的信息和快捷方便的操作手段
?
3.?????项目的功能需求
?
(1)?????????????需求分析
系统中要求每一个人银行操作员、管理员都拥有一个系统账号和password。系统操作都由银行操作员、管理员运行。而不是由储户运行,即储户并不直接与系统交互。储户通过填写单据的方式由操作员代为操作。
该系统主要有例如以下业务功能,开户销户、挂失、活期定期存取款、转账汇款、利率更改、打印报账、还原备份、信息管理等业务。
?
(2)?????????????系统设计方法
1.?????? 系统为银行操作员(管理员)提供主功能界面。不为储户提供操作界面。
2.?????? 管理员、操作员、储户、账户信息等均存储在数据库表中。
3.?????? 进入系统时要求操作员或管理员输入账号与password方可登陆。
4.?????? 由管理员取代储户运行系列操作(如开户销户、挂失、存取款、转账汇款、利率更改、打印报账、还原备份、信息管理等)。
?
(3)?????????????功能性分析
1.?????? 实现账户开户
2.?????? 实现账户销户
3.?????? 实现储户信息登记
4.?????? 打印储户信息明细单
5.?????? 创建管理员
6.?????? 办理定期存、取款
7.?????? 打印定期存、取款明细单
8.?????? 办理活期存、取款
9.?????? 打印活期存、取款明细单
10.??? 实现账户间转账
11.??? 打印转账明细单
12.??? 办理挂失与取消挂失
13.??? 打印挂失明细单
14.??? 实现利息计算
15.??? 查看账户信息
16.??? 查看储户信息
17.??? 查看管理员信息
18.??? 实现手续费计算
19.??? 数据备份和数据恢复功能
20.??? 实现利率改动
21.??? 判定账户状态(是否存在、可用、剩余金额足够等)
22.??? 判定管理员级别
23.??? 实现一定的搜索功能
?
4.?????开发环境、硬件及软件的需求
开发工具:Eclipse 5.0 MARS
??????? ? SQL Server 2014
??????? ? Office Visio 2013
编程语言:SQL
??????? ?Java
开发模式:C/S模式
操作系统:Windows7/8/10
硬件需求:CPU1.6GHz及以上、内存2GB及以上、硬盘空间10GB以上
软件需求:SQLServer 2008及以上
??????? ? JDK 1.8
?
5.?????系统的结构化功能建模、分层数据流图
(1)?????????????顶层数据流图
?
(2)?????????????1层数据流图
(3)?????????????2层数据流图
i. ? ? ? ? ? ? 账户管理子系统分解图:
ii. ? ? ? ? ? ? 管理员管理子系统分解图:
iii. ? ? ? ? ? ? 利率管理子系统分解图:
iv. ? ? ? ? ? ? 存款子系统分解图:
v. ? ? ? ? ? ? 取款子系统分解图:
vi. ? ? ? ? ? ? 转账子系统分解图(当中“转账处理”加工块继续分解):
?
6.?????数据字典描写叙述
(1)?????????????顶层数据字典
实体名称 |
数据流 |
简述 |
账户 |
password、身份信息 |
账户可要求管理员进行相关操作,前提是须要通过password、身份信息验证 |
管理员 |
事务 |
管理员能够取代账户发出查询、存取款、转账、挂失、销户等事务,前提是通过管理员验证 |
?
(2)?????????????1层数据字典
子系统名称 |
编号 |
数据流 |
简述 |
账户管理子系统 |
1.1 |
password、事务 |
账户可要求管理员可进行销户、挂失、取消挂失、查询信息、更改password等操作。前提是须要通过password、身份信息验证。管理员可为储户发出开户事务 |
管理员管理子系统 |
1.2 |
password、事务 |
管理员管理储户和账户信息;高等级的管理员可管理低等级管理员。前提是通过password验证级别符合 |
利率管理子系统 |
1.3 |
password、事务 |
一定级别的管理员能够发出改动利率事务。前提是通过password验证级别符合 |
存款子系统 |
1.4 |
password、事务、存款凭证 |
账户可要求管理员进行存款操作并获得存款凭证,前提是通过password和身份验证 |
取款子系统 |
1.5 |
password、事务、取款凭证 |
账户可要求管理员进行取款操作并获得取款凭证,前提是通过password和身份验证 |
转账子系统 |
1.6 |
password、事务、转账凭证、收款凭证 |
账户可要求管理员进行转账操作并获得转账凭证,前提是通过password和身份验证,同一时候为转入账户发出收款凭证 |
?
(3)?????????????2层数据字典
i.?????????????账户管理子系统分解图数据字典
加工名 |
输入数据流 |
输出数据流 |
加工逻辑 |
password验证 |
账户password |
password验证通过 |
验证password符合才可进行下一步 |
身份验证 |
password验证通过、身份信息 |
身份验证通过 |
password验证通过的基础上还须要验证身份通过。通过管理员核实身份证与本人是同一个人 |
新用户推断 |
账户信息 |
不存在当前账户 |
储户请求开户。抽象其所属账户信息为空,可在用户推断中通过 |
创建账户(开户) |
不存在当前账户、开户事务 |
账户信息 |
管理员发出开户事务,为储户创建账户,并将账户信息写入账户表 |
销户 |
身份验证通过、有效挂失、销户事务 |
销户信息 |
处理1:账户有销户请求。此时账户password通过且身份验证符合,由管理员发出销户事务,经销户处理后将销户信息记录在销户表中; 处理2: 数据库中存在自己主动触发销户,即若挂失表中存在到达14个工作日的挂失记录,期间没有取消挂失的更改,会自己主动销户并将销户记录写入销户表 |
查询信息 |
身份验证通过、查询事务、账户信息 |
账户信息 |
账户有查询请求,此时账户password通过且身份验证符合,由管理员发出查询事务,从账户表中读取相关信息返回给管理员 |
更改password |
身份验证通过、更改事务、password输入 |
更改信息 |
账户有改密请求,账户原password通过且身份验证符合。由管理员发出更改password事务,由账户输入新password后,将信息写入账户表,前提是这个账户不处于挂失状态 |
挂失管理 |
身份验证通过、挂失事务 |
挂失信息 |
账户发出挂失或取消挂失请求。password和身份验证通过,由管理员发出挂失事务。若是挂失请求则将挂失信息写入挂失表;若是取消挂饰请求,则删除挂失表中相应挂失记录的挂失状态 |
?
ii.?????????????管理员管理子系统分解图数据字典
加工名 |
输入数据流 |
输出数据流 |
加工逻辑 |
password验证 |
账户password |
password验证通过 |
验证password符合才可进行下一步 |
事务分析 |
事务输入、password验证通过 |
查询事务、创建事务、删除事务、改密事务 |
由管理员发起事务。在此加工推断管理员发起的是何种事务 |
查询处理 |
查询事务、账户信息、管理员信息 |
查询信息 |
接收查询事务,从管理员表或账户表或储户表得到信息返回管理员 |
权限分析 |
创建事务 |
创建信息 |
分析该管理员级别,推断其级别是否符合其当前发出的事务所要求的级别,不符合的拒绝该发起事务的操作 |
创建处理 |
拥有权限 |
加入信息 |
创建一个管理员。并将信息写入管理员表中 |
删除处理 |
拥有权限 |
删除信息 |
删除一个管理员,并将信息移出管理员表 |
改动处理 |
拥有权限 |
改动信息 |
改动一个管理员信息,将新的信息更新到当前管理员表中 |
?
iii.?????????????利率改动子系统分解图数据字典
加工名 |
输入数据流 |
输出数据流 |
加工逻辑 |
password验证 |
管理员password |
password验证通过 |
验证password符合才可进行下一步 |
权限分析 |
password验证通过、更改事务 |
拥有权限 |
分析该管理员级别,推断其级别是否符合能够发起改动利率事务所要求的级别。不符合的拒绝改动利率事务的操作 |
利率更改 |
拥有权限 |
更改信息 |
将新的利率写入利率表中 |
*备注:手续费改动子系统和利率改动子系统同理。故略。
?
?
iv.?????????????存款子系统分解图数据字典
加工名 |
输入数据流 |
输出数据流 |
加工逻辑 |
password验证 |
账户password |
password验证通过 |
验证password符合才可进行下一步 |
身份验证 |
password验证通过、账户身份信息 |
身份验证通过 |
password验证通过的基础上还须要验证身份通过,通过管理员核实身份证与本人是同一个人 |
存款处理 |
身份验证通过、存款事务输入 |
加入存款信息到存款单、更改信息到账户表 |
管理员发起存款事务。若账户验证通过,则将存款信息写入存款单,并为账户发放存款凭证,同一时候将账户变动信息(如剩余金额等属性)更新到账户表中 |
?
v.?????????????取款子系统分解图数据字典
加工名 |
输入数据流 |
输出数据流 |
加工逻辑 |
password验证 |
账户password |
password验证通过 |
验证password符合才可进行下一步 |
身份验证 |
password验证通过、账户身份信息 |
身份验证通过 |
password验证通过的基础上还须要验证身份通过,通过管理员核实身份证与本人是同一个人 |
挂失推断 |
挂失信息 |
该账户未挂失 |
该加工推断当前操作账户不处于挂失状态 |
剩余金额推断 |
剩余金额推断 |
该账户剩余金额充足 |
该加工推断当前操作账户的剩余金额充足,能够转账 |
利息计算 |
存款类型、利率信息 |
利润信息 |
该加工利用存款凭证(存款表信息)推断当前取款类型。从利率表取出该类型所相应当前利率。并通过取款金额和利率计算利息,将信息给予取款处理加工块 |
取款处理 |
身份验证通过、该账户未挂失、该账户越充足、利润信息、取款事务输入 |
加入取款信息到取款单、取款凭证、更改存款单信息 |
该加工获得利息和存款凭证各项信息,得到终于应得金额。同一时候从账户表中该账户剩余金额扣除取款金额,将存款凭证回收(将存款信息从存款表中删除),最后将本次取款信息写入取款表并生成取款凭证给予该账户 |
?
vi.?????????????转账子系统分解图数据字典(当中转账处理继续分解)
加工名 |
输入数据流 |
输出数据流 |
加工逻辑 |
password验证 |
账户password |
password验证通过 |
验证password符合才可进行下一步 |
身份验证 |
password验证通过、身份信息 |
身份验证通过 |
password验证通过的基础上还须要验证身份通过。通过管理员核实身份证与本人是同一个人 |
转账处理 |
身份验证通过、转账信息、管理员password验证通过、转账事务输入 |
转账凭证、收款凭证 |
? |
转账处理-剩余金额推断 |
转账信息、账户身份验证通过、管理员password验证通过、账户信息 |
该账户剩余金额充足 |
转账金额应不大于发起转出账户的剩余金额 |
转账处理-有效推断 |
挂失推断、账户推断 |
该账户存在且未挂失 |
该加工推断转账合法性,即转入账户应存在。且转入和转出账户均不处于挂失状态 |
转账处理-转账 |
该账户剩余金额充足、该账户存在且未挂失、转账事务输入 |
转账凭证、收款凭证、改动信息、加入信息 |
该加工接收管理员发起的转账事务,在转账推断通过的情况下(同一时候满足剩余金额充足和有效推断)。将转账记录写入转账表中,并改动账户表中转入和转出账户的剩余金额信息,同一时候生成转账凭证和收款凭证给转入转出账户 |
?
*数据字典加工逻辑备注:凡是不满足条件的加工均发生事务回滚,不再继续操作。
一段时间内(24小时之内)可连续对同一账户发起同一事务不超过3次,否则临时冻结该账户。
?
7.?????系统行为建模、状态图演示样例
以该系统部分行为为例。结构化行为建模,设计状态图例如以下所看到的。
(1)?????????????存款状态图
(2)?????????????取款状态图
?
(3)?????????????转账状态图
?
(4)??开户状态图
??????
(5)?????????????销户状态图
?
(6)?????????????挂失状态图
?
(7)?????????????查询状态图
?
8.?????系统数据建模、E-R模型图、关系模式表示
(1)?????????????部分E-R图
(1)?????? 储户
(2)?????? 账户
(3)?????? 管理员
(4)?????? 存款单
(5)?????? 取款单
(6)?????? 转账单
(7)?????? 挂失单
(8)?????? 销户单
(9)?????? 利率单
(2)?????????????整体E-R图
(3)?????????????关系模式表示
管理员(工号,password,级别,姓名。身份证号,联系方式,住址。照片,备注)
主码:工号 唯一
外码:工号
?
储户(户号,身份证号。姓名,联系方式。照片。备注)
主码:身份证号 唯一
外码:户号
?
账户(户号,password。剩余金额,开户日期,开户地,信用记录,挂失状态,备注)
主码:户号 唯一
外码:户号
?
存款单(存款单号,户号。存款金额。存款日期,存款类型,操作员工号)
主码:存款单号 唯一
外码:户号 操作员工号 存款类型
?
取款单(取款单号,户号。取款金额,利息,应得金额,剩余金额。取款日期,取款方式。操作员工号)
主码:取款单号 唯一
外码:户号 操作员工号
?
销户单(销户单号。户号,销户前剩余金额,销户日期,操作员工号)
主码:销户单号 唯一
外码:户号 操作员工号
?
转账单(转账单号,转出户号,转入户号。转账金额,转账日期。操作员工号)
主码:转账单号 唯一
外码:转出户号 转入户号 操作员工号
?
挂失单(户号,剩余金额,挂失日期,操作员工号)
主码:户号
外码:操作员工号
?
利息单(编号,类型,期限,利率)
主码:编号
?
数据库表:
管理员表
属性名 |
数据类型 |
约束条件 |
凝视 |
工号 |
Varchar(10) |
Primary key, not null |
? |
password |
Varchar(6) |
Not null |
? |
级别 |
Int |
Not null |
不同级别管理员拥有不同权限 |
姓名 |
Nvarchar(10) |
Not null |
? |
身份证号 |
Varchar(18) |
Not null |
? |
联系方式 |
Varchar(20) |
? |
? |
住址 |
Nvarchar(80) |
? |
? |
照片 |
Image |
? |
图片 |
备注 |
Nvarchar(50) |
? |
? |
?
储户表
属性名 |
数据类型 |
约束条件 |
凝视 |
户号 |
Varchar(20) |
Not null |
? |
身份证号 |
Varchar(18) |
Primary key, Not null |
? |
姓名 |
Nvarchar(10) |
Not null |
? |
联系方式 |
Varchar(20) |
? |
? |
照片 |
Image |
? |
图片 |
备注 |
Nvarchar(50) |
? |
? |
?
账户表
属性名 |
数据类型 |
约束条件 |
凝视 |
户号 |
Varchar(20) |
Primary key, not null |
? |
password |
Varchar(6) |
Not null |
? |
剩余金额 |
Money |
Not null |
开户时要存入钱 |
开户日期 |
Datetime |
Not null |
? |
开户地 |
Nvarchar(20) |
Not null |
? |
信用记录 |
Nvarchar(4) |
Not null, default ‘良好’ |
默认信用为良好 |
挂失状态 |
Int |
Not null, default 0 |
推断账户是否可用 |
备注 |
Nvarchar(50) |
? |
? |
?
存款单表
属性名 |
数据类型 |
约束条件 |
凝视 |
存款单号 |
Varchar(20) |
Primary key, not null |
? |
户号 |
Varchar(20) |
Not null |
? |
存款金额 |
Money |
Not null |
? |
存款日期 |
Datetime |
Not null |
? |
存款类型 |
Nvarchar(4) |
Not null |
活期或定期以及定期种类 |
操作员工号 |
Varchar(10) |
Not null |
? |
?
取款单表
属性名 |
数据类型 |
约束条件 |
凝视 |
取款单号 |
Varchar(20) |
Primary key, not null |
? |
户号 |
Varchar(20) |
Not null |
? |
取款金额 |
Money |
Not null |
? |
利息 |
Money |
Not null |
按取款类型计算 |
应得金额 |
Money |
Not null |
算入利息 |
剩余金额 |
Money |
Not null |
? |
取款日期 |
Datetime |
Not null |
? |
取款类型 |
Nvarchar(4) |
Not null |
活期或定期 |
操作员工号 |
Varchar(10) |
Not null |
? |
?
销户单表
属性名 |
数据类型 |
约束条件 |
凝视 |
销户单号 |
Varchar(20) |
Primary key, not null |
? |
户号 |
Varchar(20) |
Not null |
? |
销户前剩余金额 |
Money |
Not null |
剩余金额自己主动取出 |
销户日期 |
Datetime |
Not null |
? |
操作员工号 |
Varchar(10) |
Not null |
? |
?
转账单表
属性名 |
数据类型 |
约束条件 |
凝视 |
转账单号 |
Varchar(20) |
Primary key, not null |
? |
转出户号 |
Varchar(20) |
Not null |
? |
转入户号 |
Varchar(20) |
Not null |
? |
转账金额 |
Money |
Not null |
? |
转账日期 |
Datetime |
Not null |
? |
手续费 |
Money |
Not null |
? |
操作员工号 |
Varchar(10) |
Not null |
? |
?
挂失单表
属性名 |
数据类型 |
约束条件 |
凝视 |
户号 |
Varchar(20) |
Primary key, not null |
? |
剩余金额 |
Money |
Not null |
? |
挂失日期 |
Datetime |
Not null |
? |
操作员工号 |
Varchar(10) |
Not null |
? |
?
利率单表
属性名 |
数据类型 |
约束条件 |
凝视 |
编号 |
Varchar(2) |
Primary key, not null |
? |
类型 |
Nvarchar(4) |
Not null |
活期或定期以及定期种类 |
利率 |
Numeric |
Not null |
? |
期限 |
Int |
Not null |
? |
?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------**********数据流图、状态图、E-R图未上传,如需请点击URL点击打开链接http://www.ycxsdu.icoc.in/下载文档《银行业务管理 - 需求分析文档》。
********
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
END
2016/4/19