软件工程课程设计报告--工资管理系统.doc
软件工程课程设计软件工程课程设计工资管理系统专业:计算机科学与技术班级:计科0701企业工资管理系统目 录引言 2课题研发的背景 2课题研发的目的与意义 2第一章 可行性研究.21.1.技术可行性分析.21.2.社会可行性分析.31.3.经济可行性分析.31.4.操作可行性.31.5可行性研究结论.3第二章 需求分析.32.1系统主要功能需求分析 . 32.2数据流分析 . 42.3 ER图.52.4层次方框图.52.5工资系统项目简介.52.6风险分析及处理政策.5第三章 总体设计 . 63.1 系统总体设计 . 63.1.1系统开发思想.63.2 数据库总体设计 . 7第四章 详细设计.74.1工资系统功能.74.2功能模块说明.84.3功能模块实现.8第五章 程序编写及调试程序.95.1主窗体的设计.95.2工资信息管理窗体的设计10第六章 系统测试166.1系统测试方案166.2系统运行与维护176.3系统的转换方案18第七章 使用说明书 .187.1 系统功能简介 .187.2 开发工具和运行环境简介 .18第八章 系统评价188.1系统的特点188.2系统的缺点198.3将来可能提出的要求19第九章 总结与展望19致谢 .19参考资料 .19引言自上个世纪90年代以来,计算机技术的迅猛发展和推广普及,为各行各业突飞猛进的发展带来了新生的动力,推动了各个行业向更高的层次进步。当今时代是飞速 发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的原因。计算机的最大好处在于利用它能够进行信息管理。使用计算机进 行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。使用计算机进行信息管理与信息管理 系统的开发密切相关,系统的开发是系统管理的前提。课题研发的背景 手工工资管理是一种原始的工作方法,由于手工操作出现错误的概率比较大,其工作量大,工作程序复杂,消耗大量的人力、物力、财力和时间。而且随着 时间的推移,由于人员的增加,科目的增多以及调整的频繁,这些矛盾显得尤为突出。随着经济的发展,企业正向着大型化、规模话发展,而对于大中型企业,员 工、职称等跟工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一 部分,使用计算机对企业员工工资进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 这些优点能够极大地提高企业工资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情。 课题研发的目的与意义 企业工资管理系统,为企业工资提供工资计算,工资统计、工资查询等服务。传统的纸介材料的数据信息管理已经不适合现代企业公司的发展了,实现工资管理的系统化,规范化,自动化,将成为现代公司管理工资的首选。 本企业工资管理系统基本能够满足现代企业工资管理的需求。现代化工资管理系统中使用了各种表格,保存相关的工资信息,方便查询、浏览、修改等操作。通过使用企业工资管理系统,使企业的工资管理工作系统化、规范化、自动化,从而达到提高企业管理效率的目的。 系统开发的总体任务是使办公人员可以轻松快捷地完成工资管理任务。 第一章可行性研究1.1.技术可行性分析 此企业工资管理系统使用Visual Foxpro 6.0开发的,Visual foxpro是Microsoft公司推出的全新的pc平台关系数据库管理系统。它具有强大的性能、无与匹敌的速度、完整而丰富的工具、及其友好的图形用户界面、简单得数据存取方式、良好的兼容性、独一无二的跨平台特性及真正的可编译性,是系统成为目前最快、最完美的数据库系统。 不但兼容早期的dbase以及Foxbase各种版本,同时还提供了许多基于windows的崭新功能。Visual Foxpro作为具有windows95兼容标志的应用软件,具有快速开发应用程序、面向对象和客户机/服务器的强大功能,它是多年来出现在关系数据库方面最重要的产品。Visual foxpro既具有visual系列的功能强大、直观易用、面向对象等优点,又兼具windows和foxpro的长处。提供了“向导”、“设计器”和“生成器”等工具,使的数据库的管理工作变的容易。Visual foxpro的易用性使初学者和那些想避免涉及foxpro复杂命令的人能很快用它来管理自 己的数据库,制作各种报表、标签等;增添的面向对象的编程方式等新特色,使它成为应用程序开发人员强有力工具;其兼容性使原来的广大Xbase用户能迅速 转为使用 visual foxpro;visual foxpro还能广泛地与其他许多软件共享和交换数据。正是由于其易用性、先进性和广泛性,使visual foxpro 真正做到了面向各种水平的用户。因此从技术方面讲开发此企业工资管理系统是可行的。 1.2.社会可行性分析 社会可行性研究是对系统投入使用后对社会可能带来的影响进行分析,比如是否为人们所接受,是否为社会带来利益。1.3.经济可行性分析主要是对项目的经济效益进行评价,一方面是支出的费用,其中包括设备购置费,软件开发费,管理和维护费,人员工资和培训费等。另一方面是取得的收益中可以用钱来衡量的那部分(收益的另一部分难以用钱来表示)。基于企业的现有计算机及配套设备,建设MIS系统。不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业提供很方便。由于企业工资管理系统是一个比较小型的系统,是由我及几个同学小组进行开发的,所以从人力、物力、财力方面来说都是可行的。1.4.操作可行性主要是管理人员对开发信息系统是否支持,现有管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等,企业工资管理系统比较完善的规章制度和管理方法为系统的建设提供了保障。1.5可行性研究结论可行性分析的最后成果是写出可行性分析报告,可行性分析报告包括下列内容企业工资管理系统的战略目标,新系统的总体目标及主要功能。主要问题和主要信息要求。拟订新系统的方案。从经济,技术,管理,社会等方面论证方案的可行性。第二章需求分析2.1 系统主要功能需求分析 对用户需求的分析应该全面、深入、发展,全面是指考查由管理的信息是否有纰漏,必须保证各静态、动态信息的完全;深入是指对信息的内容、结构、含义、变换、生存周期的分析和认识;发展是指对信息未来发展变化的预测,因为信息在某个系统、机构内的变化往往存在着自身特有的发展规律,需求分析应该预见这种规律,否则就会缩短的使用寿命。为了保证需求分析的完备性,就必须保证需求分析的时间。(1)系统业务流程图通过对企业原先手工进行员工工资管理业务的情况,可以设计出它的业务流程图,如图所示。(2)系统的功能要求。整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便。开发方法,文档规范化,便于管理,可扩充。完善的数据输入,维护,输出。自检性能高,用户误输、错输均有提示。容错性能高,某个用户的操作错误不会引起整个系统的瘫痪,每一功能的操作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。2.2 数据流分析 数据流程图: (1).管理系统的数据流程图符号如图所示2.3 ER图2.4层次方框图2.5工资系统项目简介 企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。2.6风险分析及处理政策 (1).风险分析 随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。建设一个科学高效的信息管理系统是解决这一问题的必由之路。企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统来进行管理,那么势必会给管理人员带来种种麻烦,因此类似工资管理系统之类的财务软件的开发势在必行。(2).处理政策 企事业单位工资管理实现计算机管理,使管理员能够有序的管理每一位职工的各项工资条款的发放以及员工个人台帐的生成,使企业运用现代化技术创造更多更高的经济效益。第三章总体设计3.1系统总体设计本部分主要介绍系统要实现的功能,搭好设计的总体框架,使我们对要开发的系统有一个系统、全面、确切的认识。系统开发思想本工资管理系统是采用面向对象的程序设计思想进行编制的,整个系统由若干个表单、类、报表以及一个主菜单组成,有项目管理器统一管理全部程序的编写和调试。用户可以通过主菜单或总表单调用系统的各项功能。(1)、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。(2)、 所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对 象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其 任何细节,操作是封闭的,对象之间能通过函数调用相互通信。(3)、 类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构 及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。(4)、面向对象设计的核心是类的设计。例如:可以定义一个“工资查询表单”类,该类中可以定义查询的姓名、年龄、工资等等信息,则以此类为原型可以设计出众多的“工资查询表单”类的对象实例,这些实体都具有类中所定义的特征。(5)、设计的工资管理系统也 是建立在一系列类基础之上的,其编程的思想是:先根据一定的需要创建一系列的子类或直接调用vfp提供的基类,编制程序时,由这些类派生出相应的对象,所 派生出的对象继承了其父类所有的功能,而且具有很好的封装性,这样就可利用派生出的对象像搭积木一样来设计自己的程序。打个比方,就比如要制造一台机器, 首先要制造各种零件的模具,然后用制造好的模具生产出所需的零件,所有这些做完后,剩下的就只是如何把这些零件组装起来,这样一台机器就很容易制造出来 了。实际编程也是如此。每个表单都是由一定数量的对象按某一种方式组合在一起的,程序编制的核心是类的设计。3.2 数据库总体设计 总体设计概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS无关的、面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解 的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁。是设计数据库结构的基础。概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。用实体间联系反映现实世界事物间的内在联系。E-R模型是建立概念性数据模型的有力工具。通过对企业工资管理内容和过程的分析,本系统应设计的实体和属性如下:本系统一共用到了3个表。如下:岗位表(dept.dbf)(包括岗位名称,岗位工资)工龄表(gongling.dbf)(包括工龄,工龄工资)工人信息表(personnel.dbf)(包括编号,姓名,性别,工作岗位,工龄,工资等级)。(1).部门表字段名类型宽度小数位数索引部门字符型10 部门工资数值型102 (2).工龄表字段名类型宽度小数位数索引工龄数值型10 索引工龄工资数值型102 (3.)员工信息表字段名类型宽度小数位数索引序号数值型10 主索引姓名字符型6 性别字符型2 岗位字符型10 工龄数值型5 工资等级字符型5 第四章详细设计与实现4.1工资系统功能企业工资管理系统主要有以下几大功能:(1)对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。(2)对职工的工资进行计算、修改。可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。(3)查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某部门工资数在某一范围的职工的工资情况等。(4)报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。4.2功能模块说明本系统大致分为如下四大功能模块。(1).员工信息(2).工资基本设定(3).工资汇总(4).个人工资查询(5). 退出4.3功能模块实现(1).员工信息分为员工信息浏览和员工信息查询:在员工信息浏览子模块中,可以对员工的编号、姓名、性别、岗位、工龄、工资等级等信息进行浏览,并可以对员工信息进行增加记录,修改记录,删除记录等操作;在员工信息查询模块中,可按员工号或员工姓名进行查询。(2).工资基本设定包括对基础工资、岗位工资、工龄工资的设定。基础工资的设定包括工资等级、工资额的设定,可以对工资等级及相应的工资额进行修改、添加、删除。岗位工资的设定包括岗位名称、岗位工资额的设定,可以对岗位名称及相应的岗位工资额进行修改、添加、删除。工龄工资的设定包括工龄、工资额的设定,可以对各个工龄段及相应的工龄工资额进行修改、添加、删除。(3).工资汇总在工资管理中,要分别输入每一个员工的各项工资条款,这样才能运用计算机技术来管理好员工的工资发放情况,其中包括:员工基本情况,员工基本工资情况,员工岗位工资情况,员工工龄工资,工资综合。 (4).个人工资查询此查询分为按职工姓名查询、按职工号查询。(5). 退出此功能块为退出系统。第五章 程序编写及调试程序5.1主窗体的设计 下面对本系统的具体的几个模块做详细说明。1、系统主程序MAIN.PRGclear screen clear eventsset defa to d:qygzopen database databasesalarydo salarymain.mprdo form salaryformksjmread events2、Ksjm.frm (1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图。Form1.load事件代码:public ii=0Timer.timer事件代码:if Thisform.Label1.Left<0-Thisform.Label1.WidthThisform.Label1.Left=Thisform.Width+3EndifThisform.Label1.Left=Thisform.Label1.Left-10I=I+10If I>=255*2-6I=0Endif(2)“员工基本信息“按钮的CLICK事件为: do form salaryformpersonnel personnel.frm的有关设计见第3目(3)“工资基本设定“按钮的CLICK事件为:do form salaryformdataformat(4)“工资汇总“按钮的CLICK事件为: do form salaryformresult(5)“个人工资查询“按钮的CLICK事件为: do form salaryformgrcx(6)“退出“按钮的CLICK事件为: thisform.releaseclear events5.2工资信息管理窗体的设计 1 personnel.frm的有关设计: (1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-4。Form1.init事件代码:set multilocks oncursorsetprop("buffering",3)(2) mand1.click事件代码: thisform.pageframe1.page1.fy1.enabled=.F.mand2.enabled=.F.mand3.enabled=.F.mand4.enabled=.T.if mand1.caption='增加新记录'thisform.pageframe1.page1.txtpid.enabled=.T.thisform.pageframe1.page1.txtpname.enabled=.T. thisform.pageframe1.page1.txtp*.enabled=.T.thisform.pageframe1.page1.txtpjob.enabled=.T.thisform.pageframe1.page1.txtpindate.enabled=.T.thisform.pageframe1.page1.txtprank.enabled=.T.append blankmand1.caption='增加确认'thisform.pageframe1.page1.refreshthisform.pageframe1.page1.txtpid.setfocuselsegetid=alltrim(thisform.pageframe1.page1.txtpid.value)getname=alltrim(thisform.pageframe1.page1.txtpname.value)get*=alltrim(thisform.pageframe1.page1.txtp*.value)getjob=alltrim(thisform.pageframe1.page1.txtpjob.value)getindate=alltrim(thisform.pageframe1.page1.txtpindate.value)getrank=alltrim(thisform.pageframe1.page1.txtprank.value)if empty(getid) or empty(getname) or empty(get*) or empty(getjob) or empty(getindate) or empty(getrank)messagebox("资料不足",48,"错误")elsemand1.caption='增加新记录'tableupdate(.t.)thisform.pageframe1.page1.txtpid.enabled=.F.thisform.pageframe1.page1.txtpname.enabled=.F.thisform.pageframe1.page1.txtp*.enabled=.F.thisform.pageframe1.page1.txtpjob.enabled=.F.thisform.pageframe1.page1.txtpindate.enabled=.F.thisform.pageframe1.page1.txtprank.enabled=.F.thisform.pageframe1.page1.fy1.enabled=.T.mand2.enabled=.T.mand3.enabled=.T.mand4.enabled=.F.4工龄工资设定窗体代码: 1.”修改”按钮有关代码:thisform.grdgongling.column1.text1.enabled=.T.thisform.grdgongling.column2.text1.enabled=.T.thisform.grdgongling.column1.text1.setfocus2.”修改确认”按钮有关代码:thisform.grdgongling.column1.text1.enabled=.F.thisform.grdgongling.column2.text1.enabled=.F.3.”添加” 按钮有关代码:append blankgo bottomthisform.grdgongling.column1.text1.enabled=.T.thisform.grdgongling.column2.text1.enabled=.T.thisform.grdgongling.column1.text1.setfocus4.”删除” 按钮有关代码:thisform.grdgongling.recordsource=''use gongling exclusivedelete from gongling where gname=getgnamepackthisform.grdgongling.recordsource='gongling'thisform.grdgongling.refresh5.”退出” 按钮有关代码thisform.releasedo form salaryformdataformat 5个人查询窗体有关代码:(1).”确定”按钮有关代码:inname=alltrim(thisform.text1.value)inpswd=alltrim(thisform.text2.value)set order to tms_userseek innameif !found() cMessageTitle='设备管理系统' cMessageText='用户名错误,请重新输入' nDialogType=4+32 nAnswer=messagebox(cMessageText,nDialogType,cMessageTitle) do case case nAnswer=6 thisform.text1.value='' thisform.text1.setfocus case nAnswer=7 messagebox("请勿偷窥他人资料",48,"警告") thisform.release endcaseelse if tms_pswd!=inpswd cMessageTitle='设备管理系统' cMessageText='密码错误,请重新输入' nDialogType=4+32 nanswer=messagebox(cMessageText,nDialogType,cMessageTitle) do case case nAnswer=6 if flag<2 thisform.text2.value='' thisform.text2.setfocus flag=flag+1 else messagebox("请勿偷窥他人资料",48,"警告") thisform.release endif case nAnswer=7 messagebox("请勿偷窥他人资料",48,"警告") thisform.release endcase else thisform.release par1=inname do form salaryformgresult endif endif(2)表单载入事件代码: public innamepublic flagflag=05岗位工资有关源码:(1).”修改”按钮有关代码:thisform.grddept.column1.text1.enabled=.T.thisform.grddept.column2.text1.enabled=.T.thisform.grddept.column1.text1.setfocus(2).”修改确认”按钮有关代码:thisform.grddept.column1.text1.enabled=.F.thisform.grddept.column2.text1.enabled=.F.(3).”添加” 按钮有关代码:append blankgo bottomthisform.grddept.column1.text1.enabled=.T.thisform.grddept.column2.text1.enabled=.T.thisform.grddept.column1.text1.setfocus(4).”删除” 按钮有关代码:thisform.grddept.recordsource=''use dept exclusivedelete from dept where jobname=getjobpackthisform.grddept.recordsource='dept'thisform.grddept.refresh(5).”退出” 按钮有关代码thisform.releasedo form salaryformdataformat其它模块设计略,具体的请用VFP6.0打开工程文件就可看到相应的源代码。第六章 系统测试6.1系统测试方案:在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,未经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。(1)单元测试:单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进 行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单 元测试一般是由程序员完成,也称程序调试。(2)组合测试组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。(3)确认测试确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。(4)系统测试系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统能否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。(5)用户验收测试在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。在 具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入 测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:1、菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。2、数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。例如:在成绩管理模块中,我首先对考试类型进行设定,然后在成绩添加模块中进行数据操作,随时观察这两个模块之间是否有冲突产生,配合得是否正确,再然后在成绩浏览模块中进行验证,说明该功能完全正常,对其它的功能模块也进行了类似的设置。3、综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。6.2 系统运行与维护:系统的运行:1、初始数据