银行储蓄系统-概要设计说明书.pdf
银行储蓄系统 概要设计说明书 1 引言 11 编写目的 在本银行计算储蓄系统目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对银行及 atm 机的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明.本阶段已在系统的需求分析的基础上,对银行储蓄系统做概要设计.主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等.在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对银行储蓄系统所做的模块结构设计的基础上,对系统进行详细设计.在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误.12 项目背景 本项目(银行储蓄系统)时由某银行委托,由负责开发。银行储蓄系统将由两部分组成:置于各银行的前台客户程序,以及置于银行的数据库服务器.本系统与其他系统的关系如下:(atm/银行柜台):(银行)13 定义 131 专门术语 SQL SERVER:系统服务器所使用的数据库管理系统(DBMS)。SQL:一种用于访问查询数据库的语言 事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域.ROLLBACK:数据库的错误恢复机制。132 缩写 系统:若未特别指出,统指本银行储蓄系统。SQL:Structured Query Language(结构化查询语言)。ATM:Asynchronous Transfer Mode(异步传输模式)。14 参考资料 客户信息 银行计算储蓄系统 数据库 客户信息客户信息 客户信息 服 务 器 及 程 序 以下列出在概要设计过程中所使用到的有关资料:1.需求规格说明书 软件开发小组 1999/3 2 用户操作手册(初稿)软件开发小组 1999/4 3 软件工程及其应用 周苏、王文等 天津科学技术出版社 1992/1 4 软件工程 张海藩 清华大学出版社 1990/11 5 Computer Network A。S。Tanenbaun Prentice Hall 1996/01 文档所采用的标准是参照软件工程导论沈美明著 的“计算机软件开发文档编写指南。1任务概述 21 目标 22 运行环境 系统将由两部分程序组成,安装在 atm 机或银行柜台计算机上的客户程序及银行内的数据服务器程序。根据调研得知所有旅行社的计算机配置均在 Pentium 133 级别以上,客户程序应能够在 Pentium 133 级别以上,Win NT 环境下运行。23 需求概述 银行账户管理、储蓄业务处理系统为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息(若为新储户须建立账户),并打印存款单给储户;如果是取款,系统计算利息并打印利息清单给储户(若为清户记录注销该账户);还可向储户提供余额查询功能。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。24 条件与限制 2总体设计 31 处理流程 未改变 改变 系统初始化 操作员登陆 实时处理 改变账目存 款 取 款 查 询 记总帐 系统界面 启动系统后,首先进入系统初始化,初始化工作完毕,就可以由各操作员按各自的登录号、密码登录号、密码登录启动操作员工作画面,随后进入联机实时处理,其中记账部分包括定期存取、活期储蓄、查询等多储种业务的记账处理;调整分户信息主要是:调整开户、销户及有关参数;查询则提供分户账信息查询、总账信息查询、操作员记账信息查询及某一科目发生额信息查询等;扎账平后,可以进入日末批量处理,主要完成记分户账、记总账、记登记簿,形成统计报表、打印报表信息并完成数据备份。如遇特殊处理,如例假日、计息日、月底、年末,则作相应处理。总体结构和模块外部设计 系统总体的模块图 实时处理模块图 功能分配 银行储蓄系统主要可以分为三大功能模块,它们是:系统初始化、实时处理、批量处理 1系统初始化 该功能是对应用系统中每日处理储蓄数据所需的中间文件、表格等进行清零或赋值等初始化处理,它必须在每日联机开始之前进行处理,而且每日只能做一次,否则将引起当日数据错误。否 批量处理 报表打印 数据备份 特 殊 日年月底等处理 结 束 是 操作员代码表 取款信息 储户信息 存款信息 收/付款信息 初始界面 登录界面 主界面 批量处理 1.0 实时处理 3.0 系统初始化 2.0 实时处理 单据判断 接受数据 确认储户信息 读入存款信息 存款处理 存款凭证 储户信息 存款信息 接受数据 读入取款信息 取款处理 取款信息 取款凭证 接受帐号密码 检验输入 存款查询 存款信息 记总帐 报表打印 数据备份 存款 取款 查询 2实时处理 该功能是储蓄业务处理系统主要的业务处理模块,每项业务处理完毕,都由计算机自动记日志、记账。例如定期存取子模块,它主要进行定期的开户、到期支取、全部提前支取和部分提前支取等业务的处理。开户,计算记自动给出账号,输入储户名、地址、金额、密码等信息,检查金额、期限、起息日是否合理,然后计算到期利息,并打印存单。到期支取。输入账号、开户日起、金额、期限、密码等信息,计算机检查核对这些信息,如无误,计算应付利息,打印利息清单,并将该定期户作销户处理.全部提前支取。输入账号、开户日期、金额、期限、密码、取款日,计算机检查核对信息,确认无误,则按规定计算出提前支取利息,打印利息清单,并将该定期户作销户处理。部分提前支取,输入账号、开户日期、部分提前支取金额、期限、支取日、密码等信息,计算机检查信息内容.部分提前支取金额必须小于原账号金额,确认无误后,计算部分提前支取金额的利息,打印利息清单,并将未支取部分按原户名、期限、起息日期、到期日起、利率等信息新开一定期账户,账号由计算机自动给出新账号,原账号作小户处理。3批量处理 批量处理是日末处理的工作,包括记总帐、打印报表、数据备份等子模块。3.3 功能分配 3 银行储蓄系统主要可以分为三大功能模块,它们是:系统初始化、实时处理、批量处理 4 1系统初始化 5 该功能是对应用系统中每日处理储蓄数据所需的中间文件、表格等进行清零或赋值等初始化处理,它必须在每日联机开始之前进行处理,而且每日只能做一次,否则将引起当日数据错误。6 2实时处理 7 该功能是储蓄业务处理系统主要的业务处理模块,每项业务处理完毕,都由计算机自动记日志、记账.8 例如定期存取子模块,它主要进行定期的开户、到期支取、全部提前支取和部分提前支取等业务的处理.9 开户,计算记自动给出账号,输入储户名、地址、金额、密码等信息,检查金额、期限、起息日是否合理,然后计算到期利息,并打印存单。10到期支取。输入账号、开户日起、金额、期限、密码等信息,计算机检查核对这些信息,如无误,计算应付利息,打印利息清单,并将该定期户作销户处理。11全部提前支取。输入账号、开户日期、金额、期限、密码、取款日,计算机检查核对信息,确认无误,则按规定计算出提前支取利息,打印利息清单,并将该定期户作销户处理.12部分提前支取,输入账号、开户日期、部分提前支取金额、期限、支取日、密码等信息,计算机检查信息内容。部分提前支取金额必须小于原账号金额,确认无误后,计算部分提前支取金额的利息,打印利息清单,并将未支取部分按原户名、期限、起息日期、到期日起、利率等信息新开一定期账户,账号由计算机自动给出新账号,原账号作小户处理。133批量处理 14批量处理是日末处理的工作,包括记总帐、打印报表、数据备份等子模块.4.接口设计 41 外部接口 411 用户界面 在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息.外观上也要做到合理化,考虑到用户多对 WINDOW 风格较熟悉,应尽量向这一方向靠拢。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用 软件接口 在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息.外观上也要做到合理化,考虑到用户多对 WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 MS VISUAL C+进行编程,在界面上可使用 VISUAL C+所提供的可视化组件,向 WINDOWS 风格靠近.其中服务器程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用 VISUAL C+库中的错误提示函数。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用 412 软件接口 服务器程序可使用 VISUAL C+提供的对 SQL SERVER 的接口,进行对数据库的所有访问.服务器程序上可使用 SQL SERVER 的对数据库的备分命令,以做到对数据的保存。在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。413 硬件接口 在输入方面,对于键盘、鼠标的输入,可用 VISUAL C+的标准输入/输出,对输入进行处理.在输出方面,打印机的连接及使用,也可用 VISUAL C+的标准输入/输出对其进行处理.在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速 ATM。42 内部接口 内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。5 数据结构设计 5。1 逻辑结构设计 操作员代码表 业务员代码 姓名 性别 出生年月 年龄 密码 取款信息 卡号 密码 取款人 取款金额 取款类型 利率 取款日期 余额 利息 存款信息 卡号 存款人 储户姓名 存款金额 存款日期 存款类型 利率 存款期限 余额 身份证 接受储户存/取款时填写的单据后,产生相应的存/取款信息写入数据库 收/付款信息 卡号 储户姓名 业务员编号 收/付款金额 收/付款日期 在业务员收/付款之后打印相应的存款凭证并修改帐户余额。储户信息 卡号 储户姓名 联系电话 身份证 地址 备注 主要在存取款时将客户信息写入数据库并返回。5。2 物理结构设计 操作员代码表 列名 数据类型 可否为空 备注 业务员代码 int NOT NULL 用于唯一标识本行内的所有业务人员 姓名 char NULL 业务人员的姓名 性别 char NULL 业务人员的性别 出生年月 datetime NULL 业务人员的出生年月 年龄 int NULL 业务人员的年龄 密码 char NULL 业务人员的密码 取款信息 列名 数据类型 可否为空 备注 帐号 int NOT NULL 用户的帐号 密码 char NULL 用户的密码 取款人 char NULL 取款人姓名 取款类型 char NULL 当次取款类别 取款金额 money NULL 当次取款数量 利率 money NULL 相应存款类型的利率 取款日期 datetime NULL 当次取款时间 余额 money NULL 取款后的余额 利息 money NULL 从存款日起至今的利息 存款信息 列名 数据类型 可否为空 备注 帐号 int NOT NULL 用户的帐号 存款人 char NULL 取款人姓名 储户姓名 char NULL 帐号开户姓名 存款类型 char NULL 当次取款类别 存款金额 money NULL 当次取款数量 存款日期 datetime NULL 当次取款时间 存款期限 datetime NULL 存款到期时间 余额 money NULL 存款后余额 利率 money NULL 存款相应类型 联系电话 int NULL 存款者的联系号码 身份证 int NULL 存款者的身份证 收/付款信息 列名 数据类型 可否为空 备注 帐号 int NOT NULL 用户的帐号 收/付款人 char NULL 取款人姓名 业务员编号 int NOT NULL 相应操作员的编号 收/付款金额 money NULL 当次存款数量 收/付款日期 datetime NULL 当次存款时间 储户信息 列名 数据类型 可否为空 备注 帐号 int NOT NULL 用户的帐号 储户姓名 char NULL 帐号开户姓名 联系电话 int NOT NULL 开户者的联系电话 身份证 int NULL 开户者的身份证号 地址 char NULL 开户者的联系地址 备注 char NULL 特殊储户应注明 5.2 物理数据结构设计 物理数据结构设计主要是设计数据在模块中的表示形式。数据在模块中都是以结构的方式表示.1 客户信息 用于存款时接收输入,以及存款时服务器返回。2 帐单号 可使用一 LONG INT 实现。用于取款时接收输入,以及存取款时服务器返回。3 存取款金额 用于存取款时接收输入,以及领票时服务器返回.4 网络包 用于数据在网络上的传输。5 错误信息 用于关于错误操作。1客户姓名 String 2客户性别 Char 3身份证号码 LONG INT 4工作单位 String 1.客户姓名 String 2.存取款数额 String 3.操作时间 Date/Time 4.机号 String 1.网络包 Head INT 2.传输数据 String 1.错误类型 INT 2.输出语句 String 6 收据信息 用于打印收据准备工作。数据类型可参照上面所述.7 帐单信息 用于打印帐单准备工作.数据类型可参照上面所述。53 数据结构与程序的关系 服务器程序在对存取款/领票进行操作时需对数据库数据库数据结构,也就是数据表进行查询和修改:在存取款/领票过程中都需要对数据库中的所有表,进行联合查询、修改。物理数据结构主要用于各模块之间函数的信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。出错信息将送入显示模块中,机票结构,帐单结构,送入打印准备模块中准备打印格式。15 运行设计 61 运行模块的组合 在每次的启动后开始运行系统初始化模块,通过各模块之间的调用,读入并对输入进行格式化.在完成系统初始化模块后,接收用户登陆数据。正常开启实时处理模块后,便可对数据库进行查询和修改,对信息进行处理,产生相应的输出。62 运行控制 运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。启动系统后,首先进入系统初始化,初始化工作完毕,就可以由各操作员按各自的登录号、密码登录号、密码登录启动操作员工作画面,随后进行正常的业务处理每日的正常业务处理完进行轧帐判断,最后进行数据备份,记帐等操作。63 运行时间 考虑到实际情况,系统对运行时间的要求为必须对作出的操作有较快的反应,建议使用 Pentium III 或更好的处理器.硬件对本系统的速度影响将会大于软件的影响。特别说明的是轧帐后的批量处理会运行较长的时间。16 出错处理设计 71 出错输出信息 程序在运行时主要会出现两种错误:1、由于输入信息,或无法满足要求时产生的错误,称为软错误。2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。对于软错误,须在存取款/其他操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中。对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置.返回输入阶段。出错信息必须给出相应的出错原因。本系统采用人-机对话模式,若操作失误则弹1存取款金额 2账号余额数额 3操作时间 4客户姓名 5客户性别 6身份证号码 7机号 1 帐单号 2 客户姓名 3 身份证号码 4 存取款金额 5 操作时间 6 余额 出对话框(如:身份验证、输错信息等)72 出错处理对策 所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户机上将不会有太大的影响,主要是服务器上:在断电后恢复过程可采用 SQL SERVER 的日志文件,对其进行 ROLLBACK 处理,对数据进行恢复。在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性.17 安全保密设计 由于数据的传输上需要通过网络传输,为了客户资料进行保密,需要在网络的传输过程中对数据进行加密。这个工作主要是在准备网络包,及解开网络包这两个模块完成,它们各对数据进行加密及解密还原工作。在加密算法选择上将使用 RSA 加密算法。具体算法可参照参考资料中Computer Networkp.598。18 维护设计 维护方面主要为对服务器上的数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。例如,定期为数据库进行 Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。