1、宿 迁 学 院计算机软件工程大作业(2012/2013学年度第一学期) 七 系 自动化(数控) 专业班 级 09数控(1)班 姓 名 秦春年 学 号 20090705127 完成日期 2012年11月27日 成 绩 目 录摘 要3第一章 前 言41.1 软件工程的概述41.2 开发背景41.3 银行储蓄管理系统的概述51.4 运行环境5第二章 需求分析62.1 应用需求分析62.2 运行需求分析62.3 其他需求分析62.4 可行性分析62.4.1经济可行性62.4.2技术可行性73.4.3 运行可行性72.4.4 时间可行性72.4.5 法律可行性:72.5 系统开发步骤7第三章 系统总体设
2、计93.1 系统结构设计93.2 系统体系结构93.3 主要流程图10第四章 系统详细设计144.1 系统实现目标154.2 数据库结构154.3 数据库表17第五章 系统实现及主要界面215.1 管理员登录215.2 管理员设置215.3 新户开户215.4 银行帐户管理215.5 存款信息统计215.6 取款机投款225.7工作负荷统计225.8 软件的界面22第六章 系统测试236.1 程序调试256.2 程序的测试256.2.1 测试的重要性及目的256.2.2 测试的步骤266.2.3 测试的主要内容26课程总结24摘 要银行储蓄管理系统的主要作用是针对于各类银行中的储蓄业务进行有效
3、管理。银行储蓄是我们现实生活中的常见活动。就储蓄业务而言,储蓄管理是银行业务过程中十分重要的环节。本文针对储蓄管理流程,重点运用软件工程知识对系统进行分析、设计实现和测试的思想的具体描述,其中包括软件生命周期的三个主要方面:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码、测试)和运行维护。通过实际的运用软件工程知识处理问题,加强程序的规范性、清晰性、可靠性,并且使得程序易于维护。本系统采用Visual Basic6.0开发工具和SQL Server数据库设计进行了系统功能的实现,要求能通过该系统为顾客提存取款、查询以及存取款单打印等功能。本系统操作简洁容易上手、
4、结构简单、查找方便、实用性强。第一章 前 言1.1 软件工程的概述软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需
5、求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。1.2 开发背景随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生
6、了以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,特别是在银行帐目管理之中的应用日益收到人们的关注。近年来我国信息产业发展迅速,手工管理方式在银行帐目管理等需要大量事务处理的应用中已显得不相适应,采用IT技术提高服务质量和管理水平势在必行。目前,对外开放必然趋势使银行业直面外国银行巨头的直接挑战,因此,银行必须提高其工作效率,改善其工作环境。这样,帐户管理的信息化势在必行。在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程必须实现信
7、息化。我们的系统开发的整体任务是实现银行帐户管理的系统化、规范化、自动化和智能化,从而达到提高企业管理效率的目的。本课题的目的是使银行账目管理清晰化,透明化,便于操作,易于管理。通过功能模块的优化组合实现不同的管理细节,使管理过程实现最大程度的自动化与信息化,并能自动对人工操作环节进行复查,使账目出错率降至最低。在传统的银行帐户管理系统中,银行的帐户管理往往是很复杂烦琐的。帐户管理的特点是信息处理量比较大,所管理的种类比较繁多,而且由于储蓄单、取款单等单据发生量特别大,关联信息多,查询和统计的方式不尽相同。在管理过程中经常会出现信息的重复传递,因此银行帐户管理必须实现计算机化处理。我们系统开发
8、的总体任务是实现银行帐户管理的系统化、规范化、自动化、信息化与智能化,从而达到提高帐户管理效率的目的。1.3 银行储蓄管理系统的概述软件分别有存款,取款,查询,存取款单打印等功能。各个模块各有不同的功能,各模块的数据都存放在数据库中。数据的调用和连接都有程序来完成。本系统所要完成的主要功能有两方面:如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、利率及密码(可选)等信息,完成后由系统打印存款单给储户。如果是取款,储户填写取款单交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系
9、统计算利息并印出利息清单给储户。1.4 运行环境操作系统:Windows 9X、Windows NT Workstation/Server 4.0以上、Windows 2000 Server/Professional、Windows XP Professional。CPU:没有很高的要求,只要能够顺利运行Windows系列操作系统就可以了。当然,CPU的处理速度越快,运行JSP代码的效率越高。内存:最低配置32MB,建议使用64MB以上内存,如果使用Windows 2000或Windows XP建议使用128MB以上内存。硬盘空间:至少需要4GB以上的硬盘空间来安装所需的组件。第二章 需求分析
10、要实现一个软件系统,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能。下面就对在线考试系统的设计进行需求分析。2.1 应用需求分析系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。 硬件系统环境:C600、1G MB(RAM)、500MB(HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。2.2 运行需求分析硬件条件:酷睿 CPU、1G RAM、10G硬盘以上的PC机;打印机;局域网。软件条件:Windows XP 2.3 其他需求分析本系统有较好的可维护性、可靠性、可理解
11、性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。2.4 可行性分析2.4.1经济可行性经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作为毕业设计由我们自己开发的,在经济上的投入甚微,系统建成之后将为今后实现系统功能提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效益,并将费用与效益进行比较
12、,看是否有利。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件、系统软件、 机房、电源、空调等。软件开发费用:若由实习单位的技术人员开发,则该项费用可以计入下面的人员费用一项;人员费用:系统开发人员、操作人员和维护人员的工资、培训费用等;消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如水、电费,打印纸、软盘、色带等开支。所有开支都不大,所以经济上是可行的。2.4.2技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本科生实习管理系统用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上
13、是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。3.4.3 运行可行性对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前我们公司信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。本系统的开发,是典型的Mis开发,主要是对数据的处理,包括数据的收集,数据
14、的变换,及数据的各种报表形式的输出。采用流行的JSP体系,已无技术上的问题。2.4.4 时间可行性从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。2.4.5 法律可行性: 所有技术资料都为合法。 开发过程中不存在知识产权问题。 未抄袭任何网站,不存在侵犯版权问题。 开发过程中未涉及任何法律责任。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。2.5 系统开发步骤一般说来,管理信息系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工
15、作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低管理信息系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。国外曾有人对一些软件项目开发各阶段的工作量进行了统计,结果表明,在开发过程中各工作阶段所占全部工作量的比重分别达到系统分析:系统设计:编程:模块调试:系统调试20%:15%:20%:25%:20%。由此可见,程
16、序编写在开发工作中只占很小比例,而调试工作却占整个开发工作量的一半左右,因此“系统开发就是编程”的习惯说法显然是片面的。另据统计,在建立管理信息系统的三个阶段中,总体规划和系统开发阶段的工作量约占整个工作量的2/3,而运行、维护阶段要占1/3,这说明一个管理信息系统开发后,仍应十分重视它的维护工作,以便使系统不断完善并充分发挥其作用。第三章 系统总体设计3.1 系统结构设计系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。将系统划分
17、为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。在系统的概要设计中采用结构化设计以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。首先将整个系统化分为几个小问题,小模块,在系统中,设计了系统管理、数据录入、查询、报表管理和本科生实习管理模块。然后,进一步细分模块,添加细节。3.2 系统体系结构在系统功能分析的基础上,做系统功能模块图如图3-1所示。图中明示了各个模块的
18、功能,管理员有三项功能包括账户管理、取款机管理、查询统计功能,用户通过界面只能实现用户查询功能。 图3-1系统各功能模块3.3 主要流程图用户输入正确的用户名和密码,提交之后由系统判断该用户输入是否正确,如果不正确,就给出相应信息,如果正确,就完成登录。用户登录模块流程如图3-2所示:图 3-2 用户登录模块图 管理员登录后如需要对储户的信息进行诸如存款、取款、开户、销户、修改信息等操作,可以登入账户管理模块。选择相关操作,流程图如图3-3所示:图 3-3 账户管理模块 管理员登录取款机模块后,可以进行查询操作,查看当前账户中的余额、存取记录、投款记录等相关信息。也可以进行投款操作,就是开放取
19、款机中可以继续取的钱数。在界面中选择取款机投款的选项,然后输入需要的数额以及经手人的姓名,点击确定就可以完成操作。操作流程图如图3-4所示:图 3-4 取款机模块 管理员成功登录以后可以进入查询统计模块,在此可以查询到包括VIP用户统计、ATM业务量统计、异动查询统计、持卡总量消费统计、工作量负荷统计等相关信息。在VIP用户统计中,可以看到所有注册的VIP账户的信息。在ATM业务量统计中可以看到通过ATM机进行的所有的存取记录。在异动查询统计中可以看到管理员每次登陆系统的信息,例如登陆时间、登陆IP、登陆成功与否等等。在持卡消费统计中管理员可以看到用户的存取情况,在工作量负荷统计中可以看到整个
20、系统的所处理的存取记录。流程图如图3-5所示:图 3-5 查询统计模块流程图 用户通过自己的ID和密码登录系统后,可以进行用户查询模块中的各项操作,诸如查看自己的账户余额、存取的金额、存取的时间等信息。操作的流程图如图3-6所示:图 3-6 用户查询模块流程图第四章 系统详细设计在系统需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现系统的需求。首先,我们需要描述的是系统的总的体系结构。4.1 系统实现目标系统主要实现:帐户管理、取款机管理、用户查询、查询统计等功能,(1)帐户管理模块:存
21、款、取款、开户、销户、修改信息;(2)取款机信息管理方面:管理员管理查询和维护、客户查询和取款等功能;(3)用户查询模块:用户希望便于查询自己帐户的信息。(4)查询统计模块:VIP用户统计、ATM业务量统计、异动查询统计、持卡总量消费统计、工作量负荷统计等功能。4.2 数据库结构根据本系统功能设计的要求以及功能模块的划分,可以列出以下数据项和数据结构: (1)管理员信息:ID、用户名、密码等。 (2)管理员登录时间记录信息:ID、用户名、密码、登录时间、登录IP、登录是否成功等 (3)存取款信息:ID、存款或取款、钱数、时间等(4)统计信息:ID、钱数、用户名、时间等(5)用户信息:ID、帐户
22、类型、密码、姓名、性别、出生日期、电话、地址、帐户是否注销、注册时间等。 根据以上数据项和数据结构,各表的E-R图依次如图下图所示。 1、管理员信息中主要包括管理员的ID,管理员的真实姓名,和管理员登录系统时所用的密码。其E-R图如图4-1所示:图 4-1 管理员信息E-R图 2、管理员登录情况记录中主要包括了登录的管理员的姓名,其所用的密码、ID,还有登录的详细时间、登录的IP以及此次输入账户密码时是否通过验证等信息。管理员登录情况记录的E-R图如图4-2所示:图 4-2 管理员登录情况记录E-R图 3、存取信息包括了以下属性,有进行存取操作的账户ID,选择存操作还是取操作,进行操作的金额数
23、目以及此次操作的具体时间。取款信息的E-R图如图4-3所示:图 4-3 存取款信息E-R图 4、统计信息中包括了所进行各项操作的用户ID,用户的姓名,其操作所涉及的金额数目以及所有进行操作的具体时间。统计信息的E-R图如图4-4所示:图 4-4 统计信息E-R图5、用户信息中包括了用户的ID、用户的账户类型是普通用户还是VIP用户、用户账户的密码、用户的真实姓名、性别、生日、联系电话、住址、此户头是在用还是已被注销、注册时的时间等属性。用户信息的E-R图如图4-5所示:图 4-5 用户信息E-R图4.3 数据库表利用Microsoft SQL SEVER2000 创建数据库,库文件名为jspy
24、hzm.mdf。根据以上数据项和数据结构,及其ER图,数据库包含如下几个表文件:管理员信息表(admin)、管理员登录时间表(adminlog)、存取款信息表(cq)、统计信息表(tk)、用户信息表(zh)。1、由管理员信息E-R图转换而来的管理员信息表包括三个字段,分别为ID、username、password,期中ID为主键。如表4-1所示:表4-1 管理员信息表字段名称数据类型大小说明IDint4编号usernamenvarchar50帐号passwordnvarchar50密码2、管理员登录时间表包括ID、username、password、logintime、loginIP、ok这5
25、个字段。期中ID为主键,表结构如表4-2所示:表4-2 管理员登录时间表字段名称数据类型大小说明IDint4编号usernamenvarchar50帐号passwordnvarchar50密码logintimedatetime8登录时间loginipnvarchar50登录IPoknvarchar50是否成功3、存取款信息表包括了4个字段,分别为ID、type、money、addtime。Money为记录存取的金额数,type标示了是存操作还是取操作,其表结构如表4-3所示:表4-3 存取款信息表字段名称数据类型大小说明IDint4编号typenvarchar50类型moneyfloat8钱数
26、addtime nvarchar50时间4、统计信息表包括了ID、money、jsr、addtime四个字段,期中操作编号ID为主键。表结构如表4-4所示:表4-4 统计信息表字段名称数据类型大小说明IDint4编号moneyfloat8钱数jsrnvarchar50用户姓名addtimenvarchar50时间5、用户信息表是用来存取注册用户的所有信息。包括了ID、type、pwd、name、sex、bir、size、address、flag、addtime这十个字段。Flag字段是用来记录此账户是否被注销。其表结构如表4-5所示:表4-5 用户信息表字段名称数据类型大小说明IDint4编号
27、typenvarchar50类型pwdnvarchar50密码namenvarchar50姓名sexnvarchar50性别birnvarchar50出生年月sizenvarchar50电话号address nvarchar50地址flag nvarchar50状态addtimenvarchar50注册时间以上是本系统的数据库设计。第五章 系统实现及主要界面5.1 管理员登录 对于一个完整的银行账目管理系统,不仅要求功能强大、操作简单,还要有良好的设计风格和另人爽目的界面。登录界面对于整个系统来说是非常重要的,因为它设置了进入本系统的用户和口令,防止非法用户进入系统,破坏系统安全和所保存的数据
28、,只有合法的管理员在输入正确的密码后方可进入系统,否则将提示密码或用户名输入错误,并询问用户是否重新输入。这样就对使用者有了限制,增加了系统的安全性和保密性,便于控制和管理,有利于系统的维护。 当密码输入错误时,会有错误提示成功登录后,会进入到后台管理界面5.2 管理员设置系统管理模块是本系统中一个基础的部分,在本模块中包括管理员对自身密码的重新设置,可以定时更换密码,确保资料的安全。增加了系统的安全性和保密性,便于控制和管理。5.3 新户开户本模块主要实现新户开户后台管理。管理员成功登录以后会有管理权限来发放新的账户。5.4 银行帐户管理本模块主要实现银行帐户的管理。管理员可以对账户进行修改
29、和销户处理。5.5 存款信息统计这是对账目信息的阅览,可以看到所有的存取数据以及相关信息,并且可打印统计结果。界面上显示了操作的编号,此编号存在统计信息表中的ID字段中,还显示了是存操作还是取操作以及所涉及的金额数目。然后是用户进行操作所用的账户卡号,最后一列记录了操作的具体时间,精确到秒5.6 取款机投款本模块主要实现取款机投款的管理。管理员可以通过界面来对ATM机投款并且记录下经手人。信息记录在数据库中的统计信息表中。5.7工作负荷统计系统可自动统计客户存取款以及ATM机投款的工作量和账目信息。界面上显示了ATM投款累计的次数,总计的金额;客户存款累计的次数,总计的金额;客户取款的累计次数
30、,总计的金额等。5.8 软件的界面首先是启动系统并进入,系统登录界面如下:存款界面:完成储户存款操作。取款界面:完成储户取款操作。注册新用户界面:主要完成新用户的注册。储户信息查询界面:按要求查询储户各方面的信息。第六章 系统测试6.1 程序调试 在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。6.2 程序的测试6.2.1 测试的
31、重要性及目的(1)测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件
32、中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。 在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括: 认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就
33、感; 以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定; 测试工作枯燥无味,不能引起人们的兴趣; 测试工作是艰苦而细致的工作; 对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。 这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。 (2)测试的目的 如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。 软件测试是为了发现错误而执行程序的过程; 测试是为了证明程序有错,而不是证明程序无错误; 一个好的测试用例是在于它能发现至今未发现的错误;
34、 一个成功的测试是发现了至今未发现的错误的测试。 这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。6.2.2 测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步
35、骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:(1)模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。(2)系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。(3)验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。6.2.3 测试的主要内容为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。 (1)单元测试 单元测试集中在检查软件设计的最小单位模块上,通过测试发现实现该模块的实际功能与定义该模
36、块的功能说明不符合的情况,以及编码的错误。 (2)集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 (3)确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。 (4)系统测
37、试 软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。 单独对系统的测试主要从以下几方面入手: 功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。 强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。 安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。经过上述的测试过程对软件进
38、行测试后,软件基本满足开发的要求,测试宣告结束。 课程总结俩个礼拜来忙碌紧张而又有条不紊的设计,使我有机会对本专业的基本理论、专业知识和基本技术有了更深入的了解和体会,使我在这设计过程中,所学到的知识得到了系统和升华,真正达到了学以致用。 在这次设计中,基本掌握软件工程的理论和思想方法,能运用软件工程方法解决项目开发过程中的具体问题,并对项目开发过程中的各个环节,如可行性分析、需求分析、概要设计、详细设计、编码与实现、系统测试、软件维护等有较全面的了解。 在系统开发之前,必须了解该系统的特点、适用范围以及使用者需要一个什么样的系统,以此作为基础为开发系统准确定位,然后对使用者所需实现的功能进行
39、分析总结,根据使用者的实际要求来给系统设计一个初步方案。系统的开发不仅是要实现对数据处理的及时与正确,而且要考虑系统是否具有控制功能,及时将数据反馈给操作者,以进行监测和协调,保证系统的正常运行;也要考虑是否具有预测功能,运用一定的数学方法利用历史的数据对未来进行预测的工作。在我的程序设计过程中,我充分的体会到了“实践出真知”这一点,书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。一个管理信息系统的设计,不可能一步到位,还需要不断的完善和补充。同时,系统中还存在许多问题,有待在日后的使用中发现和解决。编程前的深思熟虑是减少程序调试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。虽然在开始写程序之前我们做了多的准备工作,但在真正的写程序时仍然发现许多问题,有些问题是分析时的疏漏,有些则是如果不做无论如何也想不到的。最后,在此特别感谢过老师的大力帮助。过老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时向我们提供了非常优越的设计环境,并对我给予了耐心的指导,对于我顺利完成这次设计起到了关键性的作用。另外和我同学大家始终团结协作,努力拼搏,增强了我的团队意识,并且我们接下了深厚的友谊,我们自始至终在一种愉快的气氛中学习工作。此次毕业设计对提高我的编程技术、协调团队成员的关系等方面都由许多益处。在此我一并向他们表示感谢。