软件工程导论限选银行存取钱自助系统大报告(分析+代码)
为了明确所要开发的系统应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续的设计与开发工作。本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。
二、项目背景
近些年,随着互联网的发展,人们越来越频繁地使用电子支付,并逐渐成为了一种习惯,现金在人们日常生活中似乎变得越来越不重要了。但不可否认,随着我国经济实力的快速发展,我国大众对现金的需求量还是稳中有升。随着人们经济水平的提高,大家对储蓄的需求也越来越大,因此开发一套银行存取钱系统迫在眉睫。
在我国,近些年来信息化的趋势越来越强,银行存取钱系统的高效率运行需求逐渐增强。时间对于我们每个人来说都很宝贵,而对于银行本身来说,提高存取钱的效率可以创造更多价值,节约出更多的时间来更好地为人民群众服务。
于此同时,随着我国老龄化的不断加重,银行存取钱系统还具有操作简单的需求,需要使得文化程度较低的老人也可进行操作,扩大系统的受众面。
三、功能要求
对于银行存取钱系统来言,其主要的用户为储户,隐形用户为银行。因此我们设计的程序需要同时满足储户、银行两方面的需求:对于储户来说,为满足大部分人的使用需求,程序应实现存钱、取钱、查询明细和查询余额等功能;对于银行来言,数据安全是最大的事情,因此我们需要保证系统和储户资金的安全性,即在储户使用本系统时需要进行安全验证。
四、功能概述
存钱:用户成功登录后,点选进入存钱界面,核对账号是否正确并输入需要存的钱数,点击存钱按钮,系统会弹出确认对话框,用户可核对信息后选择确认或取消。中途用户若不想存了,可以返回主界面,重新选择操作类型或退出系统。
取钱:用户成功登录后,点选进入取钱界面,需要重新输入正确的账号和密码以进行身份核验,并输入想要取走的金钱数额。点击取钱按钮后,系统会先检测账号的正确性,再检测密码的正确性,两者均正确才能完成取钱操作。中途若用户不想取了,可以返回主界面,重新选择操作类型或退出系统。
查询明细:用户成功登录后,点选进入明细界面,可以通过交易类型进行检索,查询自己账号的各类交易明细。
查询余额:用户成功登录后,点选进入余额界面,可以查询自己银行账户信息,如编号、姓名和余额等。
五、数据流图

图1 银行存取钱自助系统数据流图
(二)可行性研究报告
一、编写目的
为了进一步提高人们到银行存取钱的便利性,同时也为了提高银行的服务水平及办事效率,我们需要开发银行存取钱自助系统。然而,由于设计一套可投入使用的软件要消耗大量的人力物力,具有一定的风险。为了避免造成不必要的浪费,在项目正式开发之前,我们需要投入一定的精力,通过一套准则,从经济、技术、社会和操作等方面对项目的必要性、可能性、合理性,以及项目所面临的重大风险进行分析和评价,编写软件的可行性研究报告,以验证此银行存取钱自助系统的设计是否可行。
二、前提要求
随着人口的不断增长以及人们对银行存取款业务需求的不断提升,银行方面设置了越来越多的工作人员和柜台来提高服务质量,与此同时,服务成本也随之上升。因此旧的单纯靠人力的一对一服务管理体系越来越不适应当前的需求,这就要求我们新的银行存取钱自助系统可以帮助解决这些问题,即本银行存取钱系统必须具有以下特点:
1. 使用方便:银行存取款自助系统为便于大众使用而开发,应易于理解、简洁明了、使用方便,适用于绝大部分人民群众,为他们存取钱带来便利。
2. 保障数据安全:对于银行来说,数据的安全性至关重要,既要确保大家各自账户的存取金额与交易金额一致且符合逻辑,也要确认操作人身份,避免有人盗取他人银行资金的情况发生。
3. 节约人力资源:开发存取钱的自助系统,使得人们可以在机器上自行操作,有效地减少银行柜台和工作人员的数量,可以将节约出来的人力物力用来提高银行总体的服务水平。
4. 稳定可靠:我们开发出软件后,要保证其投入使用后较为稳定可靠,即保证其质量,使软件能够稳定运行,不能中途出错或故障,即逻辑上要严谨,多方面考虑周全,不能出现混乱。
5. 高效率:对于大众来说,知识层次和理解能力不一,因此本银行存取钱自助系统应确保各年龄层和各知识阶层的人均能顺利使用,提高操作效率,有效节约用户时间。
三、具体分析
1. 技术可行性分析
在技术层面,我们采用C#语言进行前台代码的编写,使用Access2016作为程序的后台数据库,使用ADO.NET来进行数据的增删改查等数据库操作技术。
2. 经济可行性分析
在银行方面,我们需要满足系统安全性和数据安全性两方面的问题。对于系统安全性,我们采用严密的逻辑结构,多方面综合考虑,尽量避免逻辑错误,来保证每一条输入数据库的数据都是正确合理的。对于数据安全性,一方面,我们采用Access数据库,可以保证交易数据不丢失且丢失可以有效找回;另一方面,在用户使用本系统时需要输入正确的账户和密码等来进行身份验证,以保证账户金额的安全性,防止用户的资金被盗用。
3. 社会可行性分析
在没有使用存取款自助系统前,采取的是人工方式,相对而言耗时大、效率低。根据现有的硬件条件以及行政管理模式和工作制度,银行可以应用我们的系统,人员素质要求也可满足要求。另外,在软件开发和投入使用的过程中,该系统研发和应用时均需使用正版软件,遵守《中华人民共和国网络使用法》,并且合同拟定时要符合国家标准,经双方签字后生效。
4. 操作可行性分析
我们的银行存取款自助系统同时拥有界面简单整洁和流程清晰等特点,适合18岁以上成年人使用,并且对于老年人特别友好,可操作性强,拥有较好的用户体验。
四、结论
根据以上分析可知,开发银行存取款自助系统在技术、经济、社会和操作上均具备可行性,即该项目无所面临的重大风险,具备开发价值,且开发条件均已具备。但不可否认,随着技术的发展,采用自助系统来管理银行日常存取钱操作,毫无疑问会在使用过程中产生新的需求和问题,这样也会不断促进信息技术和系统应用的革新。用哲学的思维分析可概括为软件应用促进技术进步,技术进步反作用于软件的应用,从而双方面同时促使社会不断进步。
(三)总体设计报告
一、系统目标
根据银行存取钱自助系统的需求分析,本系统应遵守以下原则:
1. 系统的功能设计完善,能够满足储户和银行的基本要求,即能够使用数据库进行实现数据的存取、能够实现存钱和取钱功能、能够打印每个账户的流水和能够根据账户查询余额。
2. 系统应具有良好的稳定性、实用性和安全性,设计理念和思路易被客户接受,逻辑结构严密合理,保障数据和系统安全。
3. 数据库结构设计合理,各类属性符合要求,满足系统需要。
二、整体结构设计

图2 系统功能结构图
图3 总体设计思路图
三、接口设计
本系统的用户一般需要通过银行终端进行操作,进入主界面后点击相应的窗口,分别进入相对应的界面,用户对程序的维护,最好要有备份。程序内的各个模块之间采用函数调用、参数传递、返回值的方法进行信息传递。在输入方面,主要是对于键盘和鼠标的输入。
四、逻辑结构设计
1. 银行账户表
用户信息(账号、姓名、密码、余额)
2. 交易明细表
流水信息(账号、交易类型、交易金额、余额、交易时间)
3. E-R图

图4 银行存取款自助系统E-R图
五、物理结构设计
1. 设计说明
本系统的物理结构设计主要就是数据库的设计。数据库是本系统保存数据的核心,在整个系统开发中占据着重要的分量,它设计的合理性至关重要。在本系统可使用Access 2016,根据逻辑结构设计的结果,设计逻辑结构最佳存取方法、存取结构和存放位置以及合理选择存储介质等,从而设计出适合逻辑结构的最佳物理环境,为系统开发提供良好的物理结构基础,方便录入数据和检索查询。
2. 物理结构设计要点
1) 银行账户表:银行账户数据表命名为AcIn,数据表字段有编号(ID)、用户账号(AccountId)、用户姓名(Accountname)、用户密码(AccountPwd)和账户余额(Amount),具体细节如下:
| 字段名 | 意义 | 字段类型 | 字段大小 | 关键字 |
| ID | 自动编号 | 自动编号 | - | 是 |
| AccountId | 用户账号 | 文本 | 20 | 否 |
| Accountname | 用户姓名 | 文本 | 20 | 否 |
| AccountPwd | 用户密码 | 文本 | 10 | 否 |
| Amount | 账户余额 | 数字 | - | 否 |
2) 交易明细表:交易明细数据表命名为Record,数据字段有编号(ID)、用户账号(AccountId)、交易类型(Type)、交易金额(Amount)、账户余额(Balance)和交易日期(Time)
| 字段名 | 意义 | 字段类型 | 字段大小 | 关键字 |
| ID | 自动编号 | 自动编号 | - | 是 |
| AccountId | 用户账号 | 文本 | 20 | 否 |
| Type | 交易类型 | 文本 | 20 | 否 |
| Amount | 交易金额 | 数字 | - | 否 |
| Balance | 账户余额 | 数字 | - | 否 |
| Time | 交易日期 | 文本 | 20 | 否 |
六、数据结构与程序的关系
数据结构为关系型数据库,所以在程序中可以用标准的SQL语句与数据结构进行交互,交互过程中采用通用的数据反向接口。为了保持良好的程序架构,对数据库访问采用DAO设计模式实现,提高维护性和扩张性。
(四)详细设计报告
一、编写目的
本报告编写的目的是对银行存取钱自助系统进行详细设计说明,以便用户及项目人员了解产品详细的设计与实现过程,为其他人员提供开发参考书。以下叙述将结合文字描述、部分程序代码和图表等来描述银行存取钱自助系统的详细设计和相关模块描述。本报告的预期读者有客户、项目经理、开发人员以及跟该项目相关的其他参与人员。
二、物理结构预览
1. 银行账户表

图5 银行账户表的物理结构
2. 交易明细表

图6 交易明细表的物理结构
二、系统功能预览
本银行存取钱系统主要包含五个功能区,分别为:储户登录、取钱、存钱、查询明细、查询余额。分别介绍如下:
1. 登录
1) 功能说明:
本功能的设计目的主要是为了防止有人非法登录储户账户,给储户照成不必要的损失。在设计该功能时,储户的账户信息存储在数据库中,用户可以输入账号和密码来进行身份验证。为保证信息安全,用户在输入密码时屏幕显示为“*”,点击登录按钮即确认输入完毕,系统即从数据库中检索账号和密码是否正确。若账号或密码输入为空或错误,则弹出对话框提示用户重新输入,返回登录界面;若账号和密码均在数据库中且相匹配,即身份验证成功,进入系统主界面。
2) 流程图:

图7 登录功能算法流程图
3) 界面设计:

图8 银行存取钱自助系统登录界面
4) 部分代码(点击登录按钮对应的代码):

图9 登录模块部分代码
2. 主界面
1) 功能说明:
主界面主要起到功能选择和连接各功能模块的作用,上连登录界面,并且既是存钱、取钱、查询明细和查询余额等功能的起点,亦是它们的终点:用户登录后即进入主界面,在主界面点选所需功能即进入各功能区,进行相关操作后,退出功能模块即回到主界面,此时用户可选择进入其他功能模块或退出主界面,即打开指定功能模块或回到最开始时的登录界面。
2) 界面设计:

图10 银行存取钱自助系统主界面
3) 部分代码(各按键对应的代码):

图11 主界面部分代码
3. 存钱
1) 功能说明:
用户成功登录后,可在主界面点选存钱功能,进入存钱窗口。进入窗口后,可查看当前登录的用户账号并进行核对,确认正确后可输入存款金额并点击存款,系统会自动重新检查用户账号的正确性并更新该用户账户信息表中的余额数值和交易明细表。整个过程顺利完成则存款成功,否则提示错误,以实现储蓄的理想效果。
2) 流程图:

图12 存钱功能算法流程图
3) 界面设计:

图13 银行存取钱自助系统存钱界面
4) 部分代码(点击存钱按钮对应的代码):

图14 存钱模块部分代码
4. 取钱
1) 功能说明:
用户成功登录后,可在主界面点选取钱功能,进入取钱窗口。进入窗口后,需要重新输入账号和密码进行身份验证,随后输入取款金额并点击取款,系统会自动检查用户的账号和密码是否正确且对应匹配来进行身份核验。在通过身份验证后,更新该用户账户信息表中的余额数值和交易明细表。若整个过程顺利完成则提示用户取款成功,否则提示错误,取款界面回到最初状态。
2) 流程图:

图15 取钱功能算法流程图
3) 界面设计:

图16 银行存取钱自助系统取钱界面
4) 部分代码(点击取钱按钮对应的代码):

图17 取钱模块部分代码
5. 交易明细
1) 功能说明:
用户成功登录后,可在主界面点选交易明细按钮,进入交易明细窗口。进入窗口后,可根据需要选择要查询的交易类型,有“全部”、“取钱”和“存钱”三种选项,用户选定交易类型后可点击查询,界面中的dataGridView窗口即显示检索结果,实现交易明细查询的功能。
2) 流程图:

图18 交易明细查询功能算法流程图
3) 界面设计:

图19 银行存取钱自助系统交易明细界面
4) 部分代码:

图20 交易明细查询模块部分代码
6. 余额
1) 功能说明:
用户成功登录后,可在主界面点选余额按钮,进入余额窗口,即可看到登录账户的账号、姓名和余额信息。
2) 流程图:

图21 账户余额查询功能算法流程图
3) 界面设计:

图22 银行存取钱自助系统余额界面
4) 部分代码:

图23 余额查询模块部分代码
(五)测试报告
一、编写目的
本测试报告为银行存取钱自助系统的测试报告,目的在于总结测试阶段的测试情况以及分析测试结果,描述系统是否符合用户需求,是否已达到用户预测的功能目标,并对测试质量进行分析。
二、测试过程
针对此次设计的存取钱系统,为了对系统存在的问题和缺陷进行分析,将潜在的风险暴露出来,及时纠正存在的质量问题,让程序完美的展示在用户面前,我们模拟了系统使用时的几种情形,对程序进行最后的测试工作。本次测试主要所涉及到系统各项基本功能,如登录、存钱、取钱、查询明细和查询余额等,执行情况如下:
1. 登录
| 测试内容 | 期望结果 | 测试效果 | 备注 |
| 没输账号 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 没输密码 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 输错账号 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 输错密码 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 输入账号和密码 不一致 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 输入正确且一致的账号和密码 | 打开主界面 | 打开主界面 | 达到预期效果 |
| 点击退出 | 退出程序 | 退出程序 | 达到预期效果 |
测试结果:登录模块功能正常,建议增加开户功能。
2. 主界面
| 测试内容 | 期望结果 | 测试效果 | 备注 |
| 点击存钱 | 打开存钱界面 | 打开存钱界面 | 达到预期效果 |
| 点击取钱 | 打开取钱界面 | 打开取钱界面 | 达到预期效果 |
| 点击交易明细 | 打开 交易明细界面 | 打开 交易明细界面 | 达到预期效果 |
| 点击余额 | 打开余额界面 | 打开余额界面 | 达到预期效果 |
| 点击退出 | 返回登录界面 | 返回登录界面 | 达到预期效果 |
测试结果:主界面功能正常。
3. 存钱
| 测试内容 | 期望结果 | 测试效果 | 备注 |
| 查看用户账号 | 与登录一致 | 与登录一致 | 达到预期效果 |
| 没输交易金额 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 交易金额非数字 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 正常输入交易金额,点击存钱 | 弹出 确认窗口 | 弹出 确认窗口 | 达到预期效果 |
| 确认存钱信息 | 弹出提示 “存钱成功” | 弹出提示 “存钱成功” | 达到预期效果 |
| 点击退出 | 返回登录界面 | 返回登录界面 | 达到预期效果 |
测试结果:存钱基本功能正常,缺少应急保护机制的测试内容。
4. 取钱
| 测试内容 | 期望结果 | 测试效果 | 备注 |
| 没输账号 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 没输密码 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 输错账号 | 弹出错误 | 弹出错误 | 达到预期效果 |
| 输错密码 | 弹出错误 | 弹出错误 | 达到预期效果 |
| 没输交易金额 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 交易金额非数字 | 弹出警告 | 弹出警告 | 达到预期效果 |
| 输入的交易金额 大于账户余额 | 弹出错误和 余额信息 | 弹出错误和 余额信息 | 达到预期效果 |
| 正确输入账号、密码和交易金额,点击取钱 | 弹出提示 “取钱成功” | 弹出提示 “取钱成功” | 达到预期效果 |
| 点击退出 | 返回登录界面 | 返回登录界面 | 达到预期效果 |
测试结果:取钱基本功能正常,缺少应急保护机制的测试内容。
5. 查询明细
| 测试内容 | 期望结果 | 测试效果 | 备注 |
| 查询全部 | 显示全部 | 显示全部 | 达到预期效果 |
| 查询存钱 | 显示存钱 | 显示存钱 | 达到预期效果 |
| 查询取钱 | 显示取钱 | 显示取钱 | 达到预期效果 |
| 点击关闭 | 返回登录界面 | 返回登录界面 | 达到预期效果 |
测试结果:查询明细功能正常,建议如下:
1) 交易明细中无数据时,可弹出提示框提示用户;
2) 增加可以通过日期查询的功能;
3) 添加打印交易明细的功能。
6. 查询余额
| 测试内容 | 期望结果 | 测试效果 | 备注 |
| 核对账号 | 与登录一致 | 与登录一致 | 达到预期效果 |
| 核对姓名 | 与登录一致 | 与登录一致 | 达到预期效果 |
| 核对余额 | 与计算结果一致 | 与计算结果一致 | 达到预期效果 |
| 点击确认 | 返回登录界面 | 返回登录界面 | 达到预期效果 |
测试结果:查询余额功能正常,建议添加打印功能。
三、测试结果
本次测试的结果较为理想,可以看出系统的主要功能均能达到理想效果,说明该系统能够实现用户需求说明书上的功能,能够满足效率和便捷的功能,并具备一定的上升空间。
(六)结语
通过编写本次银行账户存取钱模拟程序,我深刻学习了通过软件工程的基本流程:先进行需求规格分析,明确项目背景和功能需求,并对整个程序的数据传递有一定的了解;其次进行可行性研究,从技术可行性、经济可行性、社会可行性和擦做可行性等方面进行分析,说明程序研发是有必要且切实可行的;再其次进行总体设计,对系统的整体结构有一定的把握,尤其要明确程序所需的接口、逻辑结构和物理结构;然后进行详细设计,对物理结构和系统功能分别展开设计,要贴合实际,尽可能地详细;最后对软件进行测试,可分各功能板块进行测试,查看程序是否达到预期效果。
在经历过这一套流程后,我感受到软件的开发和设计就像完成工程建设,不但要确保程序被人们所需要,而且还得安全不出事,还得考虑成本,讲究可行性,让人用得上还用得起才行,所以实际的程序编写工作只是其中的一部分,在软件开发过程中,更重要的是融入社会,融入生活,了解人们所需和事务发展的趋势,合理设计软件思路和结构,从而设计出有价值、应用广、安全可靠的软件。
个人编写原创文档,不保证内容完全正确,仅供学习参考
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
