软件设计标准文档.doc

上传人:jian****018 文档编号:10191041 上传时间:2020-04-10 格式:DOC 页数:16 大小:305KB
返回 下载 相关 举报
软件设计标准文档.doc_第1页
第1页 / 共16页
软件设计标准文档.doc_第2页
第2页 / 共16页
软件设计标准文档.doc_第3页
第3页 / 共16页
点击查看更多>>
资源描述
赣南师范学院数计学院2010-2011第一学期软件工程课程考核文档系统名称:企业工资管理系统专 业: 网络工程 班 级: 08网本 学 号: 080705019 姓 名: 易达平 任课教师: 巫华芳 完成时间: 2010-12-30 目录1.系统开发背景 手工工资管理是一种原始的工作方法,由于手工操作出现错误的概率比较大,其工作量大,工作程序复杂,消耗大量的人力、物力、财力和时间。而且随着 时间的推移,由于人员的增加,科目的增多以及调整的频繁,这些矛盾显得尤为突出。随着经济的发展,企业正向着大型化、规模话发展,而对于大中型企业,员 工、职称等跟工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一 部分,使用计算机对企业员工工资进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 这些优点能够极大地提高企业工资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情。 2.系统分析2.1可行性分析2.1.1技术可行性分析 此企业工资管理系统使用Visual Foxpro 6.0开发的,Visual foxpro是Microsoft公司推出的全新的pc平台关系数据库管理系统。它具有强大的性能、无与匹敌的速度、完整而丰富的工具、及其友好的图形用户界面、简单得数据存取方式、良好的兼容性、独一无二的跨平台特性及真正的可编译性,是系统成为目前最快、最完美的数据库系统。 不但兼容早期的dbase以及Foxbase各种版本,同时还提供了许多基于windows的崭新功能。Visual Foxpro作为具有windows95兼容标志的应用软件,具有快速开发应用程序、面向对象和客户机/服务器的强大功能,它是多年来出现在关系数据库方面最重要的产品。随着桌面操作系统有windows98逐渐向WindowsXP升级的发展潮流,visual foxpro必将成为今后数据库产品中的主流。Microsoft visual foxpro是一个32位的数据库开发系统,可运行于window98和windows xp操作系统。Visual foxpro既具有visual系列的功能强大、直观易用、面向对象等优点,又兼具windows和foxpro的长处。提供了“向导”、“设计器”和“生成器”等工具,使的数据库的管理工作变的容易。Visual foxpro的易用性使初学者和那些想避免涉及foxpro复杂命令的人能很快用它来管理自 己的数据库,制作各种报表、标签等;增添的面向对象的编程方式等新特色,使它成为应用程序开发人员强有力工具;其兼容性使原来的广大Xbase用户能迅速 转为使用visual foxpro;visual foxpro还能广泛地与其他许多软件共享和交换数据。正是由于其易用性、先进性和广泛性,使visual foxpro真正做到了面向各种水平的用户。因此从技术方面讲开发此企业工资管理系统是可行的。 2.1.2社会可行性分析 社会可行性研究是对系统投入使用后对社会可能带来的影响进行分析,比如是否为人们所接受,是否为社会带来利益。2.1.3经济可行性分析主要是对项目的经济效益进行评价,一方面是支出的费用,其中包括设备购置费,软件开发费,管理和维护费,人员工资和培训费等。另一方面是取得的收益中可以用钱来衡量的那部分(收益的另一部分难以用钱来表示)。基于企业的现有计算机及配套设备,建设MIS系统。不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业提供很方便。由于企业工资管理系统是一个比较小型的系统,是由我及几个同学小组进行开发的,所以从人力、物力、财力方面来说都是可行的。2.1.4操作可行性主要是管理人员对开发信息系统是否支持,现有管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等,企业工资管理系统比较完善的规章制度和管理方法为系统的建设提供了保障。2.15可行性研究结论可行性分析的最后成果是写出可行性分析报告,可行性分析报告包括下列内容企业工资管理系统的战略目标,新系统的总体目标及主要功能。主要问题和主要信息要求。拟订新系统的方案。从经济,技术,管理,社会等方面论证方案的可行性。2.2功能需求分析(数据流图及功能说明)对用户需求的分析应该全面、深入、发展,全面是指考查由管理的信息是否有纰漏,必须保证各静态、动态信息的完全;深入是指对信息的内容、结构、含义、变换、生存周期的分析和认识;发展是指对信息未来发展变化的预测,因为信息在某个系统、机构内的变化往往存在着自身特有的发展规律,需求分析应该预见这种规律,否则就会缩短的使用寿命。为了保证需求分析的完备性,就必须保证需求分析的时间。2.21系统业务流程图通过对企业原先手工进行员工工资管理业务的情况,可以设计出它的业务流程图,如图所示。(2)系统的功能要求。整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便。开发方法,文档规范化,便于管理,可扩充。完善的数据输入,维护,输出。自检性能高,用户误输、错输均有提示。容错性能高,某个用户的操作错误不会引起整个系统的瘫痪,每一功能的操作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。2.22 数据流分析 数据流程图: (1).管理系统的数据流程图符号如图所示2.3性能分析1流程符合企业内部工资管理的要求。2界面友好,输入信息方便(好多信息,系统自动生成)。3查询全面,对任何情况或字段都可以查询,从而对管理进行监督。4系统扩充容易。由于资料有限,有很多地方还需要更好的完善。5即面向开发人员,又面向用户。2.4实体联系图2.5系统运行环境开发工具:Microsoft Visual foxpro6.0 1硬件要求。设备名称说明处理器最低奔腾III,建议主频800MHZ以上内 存最低128MB,建议256MB硬 盘最低20GB,建议40GB鼠 标略2软件要求。名 称说明操作系统WINDOWS95/98,WINDOWSXP应用软件VISUAL FOXPRO6.0(中文版)3.系统设计3.1总体设计3.1.1系统体系结构图3.1.2模块说明(1).员工信息分为员工信息浏览和员工信息查询:在员工信息浏览子模块中,可以对员工的编号、姓名、性别、岗位、工龄、工资等级等信息进行浏览,并可以对员工信息进行增加记录,修改记录,删除记录等操作;在员工信息查询模块中,可按员工号或员工姓名进行查询。(2).工资基本设定包括对基础工资、岗位工资、工龄工资的设定。基础工资的设定包括工资等级、工资额的设定,可以对工资等级及相应的工资额进行修改、添加、删除。岗位工资的设定包括岗位名称、岗位工资额的设定,可以对岗位名称及相应的岗位工资额进行修改、添加、删除。工龄工资的设定包括工龄、工资额的设定,可以对各个工龄段及相应的工龄工资额进行修改、添加、删除。(3).工资汇总在工资管理中,要分别输入每一个员工的各项工资条款,这样才能运用计算机技术来管理好员工的工资发放情况,其中包括:员工基本情况,员工基本工资情况,员工岗位工资情况,员工工龄工资,工资综合。 (4).个人工资查询此查询分为按职工姓名查询、按职工号查询。(5).退出此功能块为退出系统。3.1.3接口设计员工上班的IC卡与次系统对接,每个员工进入公司都办一张唯一识别身份的IC卡,上面记录的信息直接传入到次系统中,方便、安全、快捷。3.1.4数据库设计概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS无关的、面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解 的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁。是设计数据库结构的基础。概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。用实体间联系反映现实世界事物间的内在联系。E-R模型是建立概念性数据模型的有力工具。通过对企业工资管理内容和过程的分析,本系统应设计的实体和属性如下:本系统一共用到了3个表。如下:岗位表(dept.dbf)(包括岗位名称,岗位工资)工龄表(gongling.dbf)(包括工龄,工龄工资)工人信息表(personnel.dbf)(包括编号,姓名,性别,工作岗位,工龄,工资等级)。(1).部门表字段名类型宽度小数位数索引部门字符型10部门工资数值型102(2).工龄表字段名类型宽度小数位数索引工龄数值型10索引工龄工资数值型102(3.)员工信息表字段名类型宽度小数位数索引序号数值型10主索引姓名字符型6性别字符型2岗位字符型10工龄数值型5工资等级字符型54.系统实现4.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=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 events4.2工资信息管理窗体的设计 1 personnel.frm的有关设计: (1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-4。Form1.init事件代码:set multilocks oncursorsetprop(buffering,3)(2) thisform.pageframe1.page1.command1.click事件代码:thisform.pageframe1.page1.fy1.enabled=.F.thisform.pageframe1.page1.command2.enabled=.F.thisform.pageframe1.page1.command3.enabled=.F.thisform.pageframe1.page1.command4.enabled=.T.if thisform.pageframe1.page1.command1.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 blankthisform.pageframe1.page1.command1.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,错误)elsethisform.pageframe1.page1.command1.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.thisform.pageframe1.page1.command2.enabled=.T.thisform.pageframe1.page1.command3.enabled=.T.thisform.pageframe1.page1.command4.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=gonglingthisform.grdgongling.refresh5.”退出” 按钮有关代码thisform.releasedo form salaryformdataformat5个人查询窗体有关代码:(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 flag2 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 endifendif(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=deptthisform.grddept.refresh(5).”退出” 按钮有关代码thisform.releasedo form salaryformdataformat其它模块设计略,具体的请用VFP6.0打开工程文件就可看到相应的源代码。5.系统测试5.1系统测试方案:在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,未经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。(1)单元测试:单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进 行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单 元测试一般是由程序员完成,也称程序调试。(2)组合测试组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。(3)确认测试确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。(4)系统测试系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统能否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。(5)用户验收测试在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。在 具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入 测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:1、菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。2、数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。例如:在成绩管理模块中,我首先对考试类型进行设定,然后在成绩添加模块中进行数据操作,随时观察这两个模块之间是否有冲突产生,配合得是否正确,再然后在成绩浏览模块中进行验证,说明该功能完全正常,对其它的功能模块也进行了类似的设置。3、综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。5.2 系统运行与维护:系统的运行:1、初始数据的输入本系统的输入采用鼠标和键盘相结合的输入方法。2、怎样使用本系统:本系统的使用相应简单,基本上只要会使用Windows软件就会使用本系统,在具体的操作时,只需要点击鼠标左键即可进行相应功能的选择。3、系统的维护:本系统是个较复杂的人-机系统,由于系统外部环境与内部因素的变化,不断影响系统的运行,同时需要系统不断地适应这些变化,不断地完善系统,以提高系统运行的效率与服务水平,这就需要自始至终进行系统的维护工作。系统的维护主要包括四个方面:(1)程序的维护:指的是修改部分或全部程序,这种维护往往是在条件发生变化或原系统的效率低的情况下进行的。(2)数据文件的维护:指的是按照用户的要求对数据文件进行不定期的修改。(3)代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问题,因此,有必要变更代码,予以维护。(4)硬件的维护:指的是对系统所使用的设备进行维护。本系统的日常维护由学校的专人来负责,如果出现一些不能解决的问题,则由开发者来负责。5.3系统的转换方案:本次开发的企业工资管理系统采用了并行转换方式,以保证平衡可靠的过度。即一方面使用本系统来进行工作,另一方面又继续沿用老的方式手工方式,这种状况持续了一个周的时间,在这期间发现了一些程序中存在的漏洞和错误,用户也提出一些修改意见,经过程序的进一步完善后,正式投入了使用,中止了以前老的手工的操作方式。6.总结个人总结通过这次课程的设计,我拓宽了知识面,锻炼了能力,综合素质得到了较大的提高。安排课程设计的基本目的,在于通过理论与实际结合,人与人的沟通进一步提高思想觉悟。尤其是观察、分析和解决实际事物的能力,以便培养能够主动适应社会主义现代化建设需要的高素质的复合型人才。课程设计的目的在于运用学习成果和检验学习成果,把课堂学到的系统化的理论知识,尝试性的运用于实际的设计工作中,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看学堂学习与实际工作到底有多大的差距,并通过综合分析找出学习中的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。对我们计算机专业的本科生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践,这也是依次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心里转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。近年来,我系为适应学生的实践需要陆续增设与调整了一系列课程,受到同学的欢迎,其中这次的设计很受同学们的喜欢。课程设计达到了专业学习的预期目的。在课程设计完后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能 够结合实际存在的问题在专业领域内进行更深入的学习。成绩评定1. 系统分析(40%):_ 2.总体设计(20%):_3.详细设计(10%):_ 4.数据库设计(15%):_5.系统实现 (10%):_ 6.测 试(5%):_总成绩:_ 时间:2011年1月5日 教师签名:
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑环境 > 建筑工程


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!