【软件project】 文档 - 银行业务管理 - 需求分析
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
软件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
【软件project】 文档 - 银行业务管理 - 需求分析的更多相关文章
- 软件project文档中的数据库模型设计
背景:软件project文档之<数据库设计说明书>的结构设计部分要明白规划出数据库的概念结构设计.逻辑结构设计.物理结构设计,就是设计数据库的概念模型.逻辑模型.物理模型.那么.何为数据库 ...
- Atitit 文档资料管理同步解决方案
Atitit 文档资料管理同步解决方案 流程 生成快照, 操作. 使用快照与dir对比,生成操作日志 /atiplat_cms/src/com/attilax/sync/SyncUtil.java p ...
- 软件开发过程文档-cgaowei
鸡肋——食之无味,弃之可惜”,软件开发过程文档遭遇了鸡肋一样的境遇. 目前敏捷软件开发过程非常流行.相对于软件开发过程文档,敏捷软件开发过程更加重视可运行的程序.关于软件开发过程文档,两个极端都是不可 ...
- 基于Qt Assistant制作软件帮助文档
Qt Assistant是Qt自带的一款可定制.可重新发行的帮助文件浏览器.Qt Assistant支持HTML文件,用户可以利用其定制自己的功能强大的帮助文档浏览器.关于Qt Assistant定制 ...
- supervisor安装部署文档和管理实例
Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit(关于monit见我的博客:用monit监控系统关键进程),monit和supervisord的一个比较大的差异 ...
- 如何用OCR图文识别软件在文档里复制内容
ABBYY FineReader 12是一款OCR图文识别软件,可从文档中复制文本.图片和表格,粘贴到其他应用程序中.无需识别整个文档(关于ABBYY FineReader识别文档的文章,请参考解析A ...
- Linux命令学习之路——文档权限管理:chmod
使用权限:所有角色 使用方式:chmod [ -cfvR ] [ --help ] [ --version ] mode file... 作用:该命令用于在Linux中管理和变更角色对文档的存取权限 ...
- WORD文档书签管理
最近在浏览一个word超长文档,在文档中有几处要点用颜色做了标记,但是在下次查找的时候无法定位,还得一页页去翻,而且无法通过目录概览的形式查看总共做了多少处标记 于是想到了书签 原本以为在视图中能够设 ...
- Cognos软件介绍文档(原创)
1. Cognos简介 Cognos是世界上最大的业务智能软件制造商,它能够帮助用户提取公司数据,然后分析并汇总得出报告.Cognos有许多产品,但最为著名的还是它的PowerPlay联机分析处理(o ...
随机推荐
- Vim插件使用技巧(转)
在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考.当然 ...
- PatentTips - System and method to deprivilege components of a virtual machine monitor
BACKGROUND INFORMATION An embodiment of the present invention relates generally to virtualization pl ...
- 懒加载js实现和优化
1.懒加载的作用和原理 在我们展示多图片的场景下,类似淘宝或者百度图片,由于图片的数目过多,全部从服务器请求会给用户糟糕的用户体验,为了提升用户体验,我们这里使用懒加载,随着下拉逐步加载. 每个图片的 ...
- 认识Linux瘦客户机
(本文完整版见http://os.51cto.com/art/201001/181448.htm) 随着Linux的发展,以及网络计算技术的发展和逐步深入的云计算,基于Li ...
- 分享一下10个常用jquery片段
1. 图片预加载 (function($) { var cache = []; // Arguments are image paths relative to the current page. ...
- c# List集合学习
1---集合,可以理解成容器 泛型集合 非泛型集合2---使用集合用到的命名空间 using System.Collections.Generic;3---集合是如何来的?集合的前辈是数组,数组在内存 ...
- 【Django】AJAX
目录 JSON 序列化 stringify 反序列化 parse JSON与XML对比 AJAX简介 AJAX常见应用场景 jQuery实现AJAX JS实现AJAX AJAX请求设置csrf_tok ...
- idea git ignore 插件
https://blog.csdn.net/qq_34590097/article/details/56284935
- [Javascript] Classify JSON text data with machine learning in Natural
In this lesson, we will learn how to train a Naive Bayes classifier and a Logistic Regression classi ...
- Android启动原理剖析
我们知道Android是以一个Activity为单位的,可是我们并没有看到一个Activity是怎么開始启动的. 今天我 们就从Android的源码開始讲吧. ActivityThread: Andr ...