• 1.42 MB
  • 2022-04-22 13:47:22 发布

数据库系统设计毕业论文.doc

  • 37页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'数据库系统设计毕业论文第一章概述1.1课题背景随着计算机智能化、人性化和Internet技术的不断发展,为了使教学、培训能满足不同地点和不同学习时间的需要,传统的面对面教育方式在这方面已经力不从心。利用网络进行远程教育已成为教育发展的一个方向。基于网络的教学相对于传统的教学有两个明显的特征。首先,师生可以突破时空的界限,大大的节省了教育资源,而且师生间可以实现互动,反馈和交流都比传统的广播电视教学方便,有效率。其次,可共享的丰富的网络教学、学习资源给师生提供了有利的学习支持。1.2课题意义  随着计算机智能化、人性化和Internet技术的不断发展,为了使教学、培训能满足不同地点和不同学习时间的需要,传统的面对面教育方式在这方面已经力不从心。利用网络进行远程教育已成为教育发展的一个方向。基于网络的教学相对于传统的教学有两个明显的特征。首先,师生可以突破时空的界限,大大的节省了教育资源,而且师生间可以实现互动,反馈和交流都比传统的广播电视教学方便,有效率。其次,可共享的丰富的网络教学、学习资源给师生提供了有利的学习支持。37 对于教师来说由原来对教学的完全支配者变成了学习的支持者,他负责网络课件的设计、开发以及维护。对于学生来说由以前单一的、被动的接受学习变成自我探索、发现、协作学习等多种形式的组合学习,学生不仅仅要像从前一样接受教师给予的知识,更应该发挥自己的主观能动性去寻找和探索相关的知识和资源,学生的学习范围和交流对象也随着网络延伸,并且可以进行协作化的学习。这些变化都要求我们在进行网络课件的设计开发和教学时不能在因循从前的一套模式,而应该根据新的学习、教学环境进行教学设计。37 第二章需求分析在软件开发之前,设计开发人员要对该系统进行软件需求分析,软件分析人员要认真了解用户的要求,细致地进行调查分析,深入描述软件的功能和性能,因此,软件需求分析是奠定软件开发的基础,也是起决定性的一步。2.1系统开发目的在线学习系统开发的目的在于知识的共享、提高培训的效率和效果。在线学习系统除了需要实现基本的网上学习功能外,需要重点关注学习者进度和理解程度的把握,否则在线学习系统和普通的资料共享没有太大的区别了。在线学习除了学生和老师的相关功能外,还包括管理者的功能,在线学习系统的管理面向整个公司,而不是某个事业部,管理功能主要包括老师管理、学生学籍管理、科目管理、课程管理、教材管理等内容。另外,为了实现在线学习系统的功能和内容的不断升级与完善,需要提供对学习者学习效果的调查问卷的功能,把握学生对课程、教材、老师等各方面的意见或建议。基本信息查看子系统是在线学习系统中班级管理模块的一个重要组成部分。是在线学习不可或缺的一部分。2.2系统功能描述在线学习系统的主要访问角色如下:学生:主要是学习的功能老师:主要是答疑、学生进度把握以及教材作成与维护的功能访客:类似于学生,可以对公共课进行学习,但无法实现同老师交流的功能管理部门:实现老师管理、学籍管理、科目设置、课程管理、教材管理等功能事业部领导:查阅本部门学生和老师相关情报的功能系统管理员:系统级配置与管理37 在线学习系统功能模块图如图2-1所示。图2-1.在线学习系统功能模块图作为在线学习系统这样一个大型系统,包括很多方面的信息,如科目信息,课程信息,班级信息,老师信息,学生信息,老师与学生针对教学内容的交流信息,学生对老师和课程的反馈信息,学生在进入班级后查看到的老师在线与否的信息和老师最新提问信息,老师进入班级后查看学生在线与否的信息和学生最新提问的信息,但有些信息是需要一登陆页面便能看到,以便与老师进行相应的交流。游客通过查看科目和课程信息,能够及时了解是否有新增的课程,是否需要对该课程报名等。37 第三章系统设计3.1系统概要设计本系统采用B/S结构,开发语言是JAVA、JSP、JAVASCRIPT和HTML语言,数据库采用Oracle9i,服务器采用WebLogic8.1,中间件采用O3W。外部设计采用的是JSP、JS和HTML语言,因为系统是B/S结构,所以网页采用HTML语言编写。3.1.1系统体系结构本系统采用B/S结构。3.1.1.1选择B/S结构的原因本系统采用的是B/S开发模式,B/S模式,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。B/S结构(图3-1),主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术。图3-1.B/S结构示意图C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,由于C/S体系结构的应用处理留在Client端,使得在处理复杂应用时客户端应用程序仍显肥胖,限制了对业务处理逻辑变化适应和扩展能力,一旦大量用户访问时,易造成网络瓶颈。从以上的分析可以看出,B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步,B/S结构的大型管理软件有着C/S结构软件无法比拟的优势。因此这次毕业设计将采用B/S结构进行开发。3.1.2前台开发工具的选择对于前台页面的开发,我们采用JSP编程语言。37 1)JSP:JSP(JavaServerPages)是一种在服务器端运行的网页脚本语言。JSP里可以包含HTML标志、Servlet标记、JSP语法、JavaScript或VBscript脚本。JSP是一种动态网页技术标准。在传统的HTML网页文件中假如JAVA程序片段和JSP标记,就构成了JSP网页。程序片段可以操作数据库库、可以重新定向网页、可以发送和接受电子邮件等动态网页所需要的功能。2)JavaScript:JavaScript是一种内嵌于HTML中的脚本语言。由于HTML无法独自完成交互和客户端动态网页的任务,而Java语言又显得过于复杂。JavaScript的目的在于将二者融合。3)CSS:CSS是英语CascadingStyleSheets(层叠样式表)的缩写,它是一种用来表现HTML或XML等文件式样的计算机语言。CSS是一种风格语言,它允许为不同的显示部分建立不同的字体,页空白或行空白等。使用CSS可以使整个站点的所有页面看起来具有统一的风格。3.1.3后台开发工具的选择在本系统的开发中我们采用面向对象的程序设计语言JAVA语言进行系统后台的开发。它融合了完美的语言设计和以前主要可见于专用语言的强大功能。Java编程语言还发布了许多功能强大的用于数据库,网络和用户界面接口(GUI)等任务的支持软件库。Java语言是一种真正面向对象(OO)的编程语言。面向对象语言为设计那些为再现真实世界里的实体(如汽车、职员、保险制度等等)的程序提供了一个框架。在这种分离下,程序员必须人为地将数据的结构与处理此数据的相关过程联系在一起。J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,37 一个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的四层结构,如图3-2所示:图3-2.J2EE典型的四层结构这四层分别是:运行在客户端机器上的客户端层(ClientTier)、运行在Web服务器上的Web层(WebTier)、运行在EJB服务器上的业务层(BusinessTier)和运行在EIS服务器上企业信息系统层(EnterpriseInformationSystemTier)。一般情况下,许多开放商把Web服务器和EJB服务器产品结合在一起发布,称为应用服务器或J2EE服务器3.1.4数据库开发环境的选择本次毕业设计始用ORACLE9i数据库,因为ORACLE数据库具有众多的优点,非常适合公司的大型数据库开发与维护。3.1.5Web服务器的选择及中间件的介绍3.1.5.1Web服务器WebLogic是一套基于JAVA功能强大的电子商务套件,提供了许多功能强大的中间件以方便编程人员编写的JSP、SERVLET等电子商务应用。WebLogic的优点:(1)WebLogicServer越来越多开发商、独立软件厂商(ISV)、应用服务提供商(ASP)和系统集成商采用的事实上的标准应用服务器(2)简化运行并实现自动化,使应用和基础结构具有可视化。(4)通过Web和无线客户机访问相同应用程序代码,从而实现无线商务(5)37 利用高可用性和可伸缩性的先进群集技术,使系统随业务的不断壮大而扩展3.1.5.2中间件O3W的介绍3.1.5.2.1中间件的重要性本系统采用了典型的分布式事务应用程序架构,随着各种现有应用的不断扩充和新应用形式的不断增加,迫使在开发中需要解决越来越多的需求,诸如跨过不同硬件平台、不同的网络环境、不同的数据库系统之间互操作,新旧系统并存,系统效率过低,传输不可靠、数据需要加密,各种应用模式,开发周期过长,维护不力,等等,这些问题只靠传统的系统软件或Web工具软件提供的功能已经不能满足要求,这就需要一种中间平台——中间件,来解决上述问题。中间件是位于平台(硬件和操作系统)和应用程序之间的通用服务,如图3-3所示,这些服务具有标准的程序接口和协议。图3-3.中间件位置示意图中间件构架是一种电子商务应用集成的关键件,互连和互操作是电子商务中间件构架首先要解决的问题。3.1.5.2.2O3W的逻辑结构Web基本用户界面+画面转移控制+DataStoreBean+Java应用程序3.1.5.2.3O3W的部件的主要任务作为使用Servlet的Web应用程序的窗口实现的功能。分析从Servlet引擎接收到的请求,交给对象「控件」控制,还有,以「控件」的处理结果为基础进行画面迁移的施行。保存业务处理执行到Web37 用户界面的数据的输入输出中必要的数据项目和数据,向Java应用程序提供单体CHECK,还有,向JSP提供数据显示的支持功能。只在一个请求间保存有效的数据的容器,所以保存每个请求传送的Request对象和Respone对象,也可以在应用程序设定独立的数据。3.1.5.2.4O3W处理流程基于O3W的应用程序的工作流程,具体如下:在客户端部分,当用户在程序的输入画面点击提交按钮时,O3W将对所提交的数据进行简单的检查,通过O3W管理的后台应用程序调用应用程序,同时把需要调用的方法名称传递给后台业务服务器。在后台业务服务器上,JAVA应用程序接受WEB服务器上传送过来的数据,在各项检查都通过的情况下,JAVA程序则开始对于所传过来的数据进行各种业务处理,其中包括对关系数据库的访问和操作。在JAVA程序的最后,将程序的结果传递给WEB服务器。WEB服务器接受到后台业务服务器上的内容后,通过页面迁移控制把数据传递给相应的输出画面。至此,一次程序调用过程结束。O3W处理流程如图3-4所示:图3-4.处理流程37 其中sdh(SessionDataHolder)、dsb(DataStoreBean)、rdh(RequestDataHolder)为O3W的三个对象,主要用于存储,是Web服务器上的中转站。3.1.6功能模块设计基本信息查看系统的功能模块如图3-5所示。图3-5.基本信息查看系统的功能模块图3.1.7数据库设计3.1.7.1数据库设计遵循的规则作为一个大型的项目,数据库的设计非常的重要。如果不遵守一定的规则,将会给项目带来灾难性的后果。在本次毕业设计中,遵循的规则是:1)数据类型(1)数据类型VARCHAR2采用统一的长度,编码长度采用20位,名称采用60位。(2)标志位使用VARCHAR2数据类型。(3)日期类型由VARCHAR2(8)表示,不保存日期分割符。(4)时间类型由VARCHAR2(6)表示,不保存时间分割符。2)命名规范37 (1)表名字应能包含一定的含义信息。(2)字段名:表类型简写_表名简称_数据类型_ZZZZ。其中,表类型简写为:master简写为M,table简写为T;数据类型为:S-字符串,N-数字,ZZZZ为字段的含义名。3.1.7.2数据库概念设计概念模型设计同应用领域的信息需求分析有关,构造一个高级的数据模型。采用称之为实体联系模型的非形式模型。它提供一种表示实体及其相互联系的自然方法。先在第一阶段的设计策略上使用实体联系模型,然后讨论从实体-联系模型向关系模型的转换。实体-关系模型中的信息由下列三种基本概念级成:实体:正要被建模的对象关系:实体之间的联系属性:实体和联系的特征E-R图设计是数据库概念结构设计的一个很好的方法。E-R图,即实体-联系图,用来描述现实世界的概念模型。其中,矩型表示实体,椭圆表示属性,菱型表示联系,它们构成了E-R图的基本要素。本系统是基于基本信息查看,它所涉及的实体有科目、课程、班级、老师、学生,他们之间存在着所属或包含的关系,具体如图3-6所示:37 图3-6.系统整体ER图各实体属性图如下:图3-7.科目属性图37 图3-8.课程属性图图3-9.班级属性图图3-10.老师属性图37 图3-11.学生属性图3.1.7.3数据库逻辑结构设计关系模型的逻辑结构是一组关系模式的集合。而E-R图则是由实体、实体的属性和实体之间的联系三个要素组成的。所以将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换遵循的原则:1、一个实体型转换为一个关系模式。2、一个m:n联系转换为一个关系模式。3、一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。4、一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。5、三个或三个以上实体间的一个多元联系转换为一个关系模式。6、同一实体集的实体间的联系,即自联系,也可按1:1、1:n和m:n三种情况分别处理。7、具有相同码的关系模式可合并。关系模式:科目(编码,编号,中文名称,日文名称,中文简介,日文简介,内容分类)课程(编码,编号,所属科目编码,课程名称CN,课程名称JP37 ,课程简介CN,课程简介JP,发布标识,发布者,是否公開,选用教材编码,是否考核,试卷编码,预计学时,开始日,结束日,报名截止日,有效标示,課程分类名稱,實際結束時間)班级(编码,编号,所属课程编码,选用教材编码,选用教材发布日,开始日期,结束日期,暫停標示)老师(所属编码,所属类型,教师编号,簡介,教師開始日)学生(学生编号,课程编码,批准日期,班级编码,班级编号,毕业时间,学习开始日期,学习结束日期,成绩,学习状态,评价,评语,评价状态,备注,教材编号,教材发布日,累计学时,登陆次数,进度,Q&A总数,Q&A未回答数,人員郵件,所屬事業部ID,職務,入社日)根据实体、实体的属性和实体之间的联系转化为关系模式而设计的数据37 第四章详细设计详细设计的目的是为软件结构图(SC图或HC图)中的每一个模块确定使用的算法和块内数据结构。4.1页面设计4.1.1画面(见表4-1)表4-1画面设计画面ID画面名称所属功能模块OSM_OS08G04课程编辑页面课程编辑OSM_OS09G01班级信息查看页面班级查看OSM_OS09G03我的课程(老师)页面某个老师信息的查看OSM_OS09G05学生信息查看某个班级中学生信息的查看4.1.2画面跳转几个页面主要功能示意图(如图4-1)37 图4-1.画面跳转图4.2迁移定义页面迁移定义,即页面跳转定义,是用来定义页面之间跳转的方向和处理过程,一组相关页面的迁移定义包含在同一个Control中,Control即O3W中的控制机制,由它来控制页面的跳转,并将页面上的数据存入到O3W中的存储器DSB中。37 表中各项包含:编号,迁移源页面名称,迁移源的画面名称,触发迁移的动作名称,所调用的后台名称,迁移目的地的页面名称以及迁移目的地的页面文件名。迁移页面一般都会有两个页面,一个是正确返回页面,一个是错误返回页面,O3W判断程序的正确与否是通过请求方法的返回值来判断的,0表示正确,99标志错误。4.3数据定义数据定义,即DSB的做成,是O3W开发的四大部分之一。数据定义是用来定义在存储器DSB中存储的数据的名称、类型、格式以及输入输出要求的。数据定义最大的优点就是可以提供数据检查,即检查输入输出数据的合法性。数据定义写在特定的Excel文件中,最终通过特定的方式导出为XML文件。4.4请求对象内部设计本系统通过请求对象和页面进行交互,因此请求对象的逻辑和编码是否正确,直接影响到页面显示信息的正确与否,页面显示的信息会直接影响用户的选择。4.4.1课程编辑页面课程编辑页面提供对课程信息进行查询、修改,该页面的主要方法有初始化函数,保存函数,添加函数,修改发布标示函数,修改有效标示函数,删除函数。1.页面初始化方法blInit08G04该方法用于初始化课程编辑页面,首先要将页面上所有可以输入的控件全部清空,清空页面上需要用到的ds(数据定义),并查询出课程、课程下的班级、课程分类、教材以及老师的信息,将查询结果放入相应的ds中。2.保存方法blSave08G04当用户点击页面上的“保存”按钮,则执行此方法,根据用户对相应信息所做的修改对数据进行保存。3.追加班级方法blAdd08G04当用户点击页面上的“追加班级”链接时,执行此方法,在此课程下追加一个班级。4.修改有效标示方法blEfc08G04当用户点击页面上的“有效/无效”37 按钮,则执行此方法。修改课程状态(暂停/继续)。5.修改发布标示blRls08G04当用户点击页面上的“发布/取消发布”按钮,则执行此方法。修改课程状态(发布/不发布)。6.删除信息blDel08G04当用户点击页面上的某个“删除”链接时,则执行此方法。删除相应的班级信息。4.4.2班级信息查看页面班级信息查看页面提供用户对所有班级信息进行查看,该页面的主要方法有初始化函数,查询函数,暂停/继续班级的方法和删除班级函数。页面初始化方法blInit09G01该方法用于初始化班级信息查看页面。首先清空页面上需要用到的ds,读取所有科目、课程分类以及课程的信息,将查询结果放入相应的ds中,以供页面显示。查询课程下班级信息方法blQuery09G01该方法用于查询出某一课程下所有班级的信息。在页面中选中相应的课程,点击“照会”按钮时,执行此方法。首先清空页面上需要用到的ds,获取以面中选中的科目、课程分类、课程的编码,读取所选中的科目、课程分类以及课程下所有班级的信息,将查询结果放入相应的ds中,以供页面显示。暂停/继续班级方法blStop09G01当用户点击页面上的某个“暂停/继续”链接时,执行此方法。修改相应班级的状态(暂停/继续)。删除班级方法blDel09G01当用户点击页面上的某个“删除”链接时,执行此方法。删除相应的班级信息。4.4.3我的课程(老师)页面我的课程(老师)页面提供角色为老师的人员对自己所带班级信息进行查看,该页面的主要方法有初始化函数。37 4.4.4学生信息查看页面学生信息查看页面提供用户对某一班级下所有学生的信息进行查看,该页面的主要方法有初始化函数,查询函数,暂停/继续班级的方法和删除班级函数。1.页面初始化方法blInit09G05该方法用于初始化学生信息查看页面。首先清空页面上需要用到的ds,读取所有科目、课程分类、课程以及班级的信息,将查询结果放入相应的ds中,以供页面显示。2.查询班级下学生信息方法blQuery09G05该方法用于查询出某一班级下所有学生的信息。在页面中选中相应的班级,点击“照会”按钮时,执行此方法。首先清空页面上需要用到的ds,班级的编码以及hasFinFlag(是否包含已毕业学生复选框的值),读取所选中的班级下所有学生的信息,将查询结果放入相应的ds中,以供页面显示。3.开除學生方法blDel09G05当用户点击页面上的某个“开除”链接时,执行此方法。修改相应学生的状态为“开除”。4.5业务对象内部设计本系统通过业务对象和数据库进行操作,业务对象设计与编码是否正确,将直接影响程序的正确性。4.5.1课程编辑页面涉及到的业务方法业务方法与数据表之间的关系:如图4-3所示(○表示相关数据表)。37 图4-3.课程编辑页面涉及到的业务方法与数据表关系4.5.2班级信息查看页面涉及到的业务方法业务方法与数据表之间的关系:如图4-4所示(○表示相关数据表)。图4-4.班级信息查看页面涉及到的业务方法与数据表关系4.5.3我的课程(老师)页面涉及到的业务方法业务方法与数据表之间的关系:如图4-5所示(○表示相关数据表)。图4-5.我的课程(老师)页面涉及到的业务方法与数据表关系4.5.4学生信息查看页面涉及到的业务方法业务方法与数据表之间的关系:如图4-6所示(○表示相关数据表)。37 图4-6.学生信息查看页面涉及到的业务方法与数据表关系37 第五章编码5.1规约规约,顾名思义就是一些要求人们遵守规范和约定。在开发大系统的时候,程序员们遵守同一版本的规约更是尤为重要,它可以使开发变得简单、有序。5.1.1代码注释1、方法(1)注释位置:方法定义语句前/***ID:statStudInfo*名稱:*機能説明:*統計班級内學生信息*參數説明:*conn:數據庫連接*clsNo:班级编码,String,入力*hasFinFlag:包含結束標識,String,入力*0:包含已畢業學生*1:不包含已畢業學生*vecResults:Vector,出力*返回値説明:*0:統計班級内學生信息成功*1:統計班級内學生信息失敗*處理數據説明:*統計班級内學生信息*擔當者設計:製造:王晶測試:*版本信息:2007/04/29*/publicintstatStudInfo(Connectionconn,StringclsNo,StringhasFinFlag,37 VectorvecResults)throwsOSMException{}5.1.2调试信息注释位置:需要处理调试信息的位置,格式如下://调试信息开始System.out.println("clsNo="+clsNo);System.out.println("hasFinFlag="+hasFinFlag);//调试信息结束5.1.3JSP页面模版说明1、JSP页面格式如下:<%@pagecontentType="text/html;charset=Shift_JIS"%>----------------------①<%@includefile="COMMONHDR.jsp"%><%@includefile="OSM_COMMONHDR.jsp"%><%=pageID+":"+pageName%><%=baseUrlDir%>css/OSM_styleL.css"--------------------------②type="text/css"><%=baseUrlDir%>js/OSM_must.js"><!-------------------本畫面js函數begin-------------------><%=pageHeader%><%=sbfMenubar%>-------------------------------------------------------------③"onSubmit="returnsubmitEventHandler(this)"><%=_SYSFLD%><%=_SYSDSBFLD%><%=OSM_HIDDEN_FLD%><%@includefile="COMMONFTR.jsp"%>说明:①中文:GBK日文:Shift-JIS②大画面:OSM_styleL.css中画面:OSM_styleM.css小画面:OSM_styleS.css③大画面导航用,小画面与中画面不用37 5.3页面的功能实现由于本系统主要实现的基本信息的查看功能,所以为用户提供更加人性化的界面及细节操作是非常重要的。用户选择信息的提交通过一个JavaScript函数,实现用户提交不同信息的功能,并调用业务对象方法,将用户所选信息记录在ds中的位置,存入页面的相应位置。5.3.1课程编辑页面的功能实现5.3.2班级信息查看页面的功能实现37 1.页面初始化功能的实现此功能实现的流程图,如图5-7所示。图5-7.班级信息查看页面初始化功能流程图1.查询课程下班级信息功能的实现此功能实现的流程图,如图5-8所示。37 图5-8.查询课程下班级信息功能流程图1.暂停/继续班级功能的实现此功能实现的流程图,如图5-9所示。37 图5-9.暂停/继续班级功能流程图1.删除班级信息功能的实现此功能实现的流程图,如图5-10所示。37 图5-10.删除班级信息功能流程图5.3.3我的课程(老师)页面的功能实现37 5.3.4学生信息查看页面的功能实现37 第六章系统测试软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试同软件分析与设计一样,都是为了建成高质量的软件,只是侧重点不同而已。测试的目的是找出软件设计开发全周期中各个阶段的错误,以便分析错误的性质与位置而加以纠正。纠正过程可能涉及到改正或重新设计相关的文档活动。找错的过程称为测试,纠错的过程成为调试。6.1软件测试的重要性6.1.1缩短开发时间一旦编码完成,开发人员总是会迫切希望进行软件的集成工作,这样他们就能够看到实际的系统开始启动工作了。这在外表上看来是一项明显的进步,而象单元测试这样的活动也许会被看作是通往这个阶段点的道路上的障碍,推迟了对整个系统进行联调这种真正有意思的工作启动的时间。在实践工作中,进行了完整计划的单元测试和编写实际的代码所花费的精力大致上是相同的。一旦完成了这些单元测试工作,很多Bug将被纠正,在确信他们手头拥有稳定可靠的部件的情况下,开发人员能够进行更高效的系统集成工作。所以说完整计划下的单元测试是对时间的更高效的利用。6.1.2尽量减少BUG始终记住:检测的目的不是证明你的程序的正确性,而是证明你的程序存在错误。真正的软件系统不可以寄希望于没有进行广泛的测试和Bug修改过程就可以正常工作。编码不是一个可以一次性通过的过程。6.1.3及早发现BUG同样的BUG在不同的测试阶段被发现,其修正的成本是截然不同的。很多研究成果表明,无论什么时候作出修改都要进行完整的回归测试,在生命周期中尽早地对软件产品进行测试将使效率和质量得到最好的保证。37 Bug发现的越晚, 修改它所需的费用就越高, 因此从经济角度来看, 应该尽可能早的查找和修改Bug。在从全程的费用来考虑,相比起那些复杂且旷日持久的集成测试,或是不稳定的软件系统来说,单元测试所需的费用是很低的。6.2软件测试方法软件测试按测试技术来分,分为白盒测试与黑盒测试。6.2.1黑盒测试黑盒测试也称功能测试或数据驱动测试,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。6.2.2白盒测试“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。6.3软件测试的实施6.3.1测试范围及内容系统的测试包括单体测试1和单体测试2,如图6-1所示。图6-1测试范围37 单体测试1的测试范围为画面和请求方法,输入为客户终端画面输入内容和业务方法的返回值,输出为客户终端画面的表示内容和调用业务方法的输入参数。对于客户终端输入直接由测试人员在画面上输入即可,对于业务方法的返回值需要开发dummy程序模拟。开发dummy程序时,dummy程序中的各种名称(对象名称、方法名称、属性名称)和接口规范都必须和被模拟的业务方法完全一致。单体测试2的测试范围是业务方法,输入是请求方法的输入参数和数据库的初始值,输出为返回请求方法的处理结果和对数据库的操作结果。对于数据库初始值可以直接往数据库中设置,但对于请求方法的输入参数需要开发driver程序模拟。6.3.2测试目标程序内部逻辑覆盖率达100%,处理逻辑的各类典型Case覆盖率达100%。6.3.3质量基准单体测试1测试密度:40-60件/KlocBUG密度:4-6件/Kloc(对BUG中属于程序错误部分的统计结果)单体测试2测试密度:40-60件/KlocBUG密度:6-8件/Kloc(对BUG中属于程序错误部分的统计结果)6.3.4测试成果测试成果包括:测试式样书、测试数据文件、测试验证物、测试BUG记录、修正后的源程序其中测试验证物包括:画面硬拷贝(输入画面和结果画面)、数据库处理结果数据文件、测试log文件(控制台log)6.5测试结论通过这次测试,我总结出,测试一定要非常细心,测试用例做的再好,如果不去细心的检查和分析测试结果,放在眼前的明显的错误也很难发现。37 结论本次毕业设计为我提供了一个很好的锻炼机会。除了将大学里学到理论应用到实践中外,还学习到了许多书本没有遇到过的问题。技术水平有了很大的提高,解决问题的能力也得到了锻炼。这次毕业设计,虽然时间有限,但却是踏踏实实,认真严谨的做着每一步的工作。任何一个系统的开发,决不仅仅是编写代码这么简单,而是一项系统的,规范的工作。为开发出真正满足用户需求的软件产品,首先必须得到用户的需求,所谓需求分析,简单说就是要明确系统要“做什么”。对软件需求的准确把握和深入理解是软件工作获得成功的前提条件。总体设计是站在全局的高度上,决定系统要“怎么做”,从较抽象的层次上分析对比多种可能的系统实施方案和软件结构,从中选出最佳方案和最合理的软件结构。详细设计的根本目标是确定应该怎样具体的实现所要求的功能。经过这一阶段的设计,我们可以得到对目标系统的精确描述,从而在编码阶段可以直接把这个描述翻译成用某种语言书写的程序。代码的实现又分编码和测试两部分。编码是对设计的进一步具体化。测试则是开发环节中最不可或缺的一步。但是由于经验有限,也走了不少弯路,但是在学校老师的帮助下,以及同组同学的共同努力下,终于有了一份答卷。在这个过程中我们收获更多的是“实战”经验和上面提到的对软件开发的整体流程的认识,而这些正是可以让我受益终身的宝贵知识。总之,这次系统开发为我日后的工作打下了良好的基础,激发了我对软件开发浓厚的兴趣,也使我深刻感受到自身知识的贫乏,必须不断用知识充实自己,才能适应今后的工作和生活。37 参考文献[1]武晓军.JavaScript/VBScript网页编程实例解析[J].清华大学出版社,2001-1,48-50.[2]周政宏.Java程序设计方法与实例[J].科学出版社,2003-4,89-90.[3]周之英.现代软件工程[M].北京:科学出版社,2000-1.[4]胡海.DreamweaverMX标准教程[M].北京:北京希望电子出版社,2001-3.[5]网冠科技.JavaScript时尚编程百例[M].北京:机械工业出版社,2001-1.[6]屈辉立.JSP网站编程教程[M].北京:北京希望电子出版社,2001-5.[7]JohnCarnell.BjarkiHolm.Oracle8i应用高级编程[M].清华大学出版社,2001-1.[8](美)鲍格斯坦.JSP第三版[M].北京:中国电力出版社,2005-1.[9]林行健.精通Oracle9i[M].北京:机械工业出版,2004-01.[10](美)霍斯特曼(Horstmann,CayS.)和(美)科耐尔(CornellGary)编著.李如豹,刚冬梅等译.最新java核心技术卷I:原理[M].机械工业出版社,2002-1.[11]EllioteRustyHaroldDavidFlanagan,《JavaNetworkProgramming》.O"Reilly1997-09.[12]Cornel&Horstman,《CoreJava1.1Volume1-Fundamentals&CoreJava1.1Volume2-AdvancedFeatures》.Prentice-Hall2006-01.[13]JoeZuffoletto,BEAWebLogicServerBible,WileyPublishing.Inc,2003-1.37 致谢在此次毕业设计过程中,我得到了老师、公司同事的大力帮助,学校对我们在校外进行毕业设计的同学也给予了大力支持。在此,我向所有帮助过我的人表示感谢。特别要感谢的是我的指导老师侯殿有,指导老师侯殿有和我的组长甘俊霖。各位老师在整个毕业设计过程中始终指导和帮助我,指导老师曾多次询问我们的毕设进展,及时更正我们的错误思路。指导老师在开发过程中,不仅在技术上给予我很大的帮助,而且,在工作之余还教会我在今后应如何工作,如何更大的提高工作效率。组长给我以技术上的支持和帮助,使我能顺利完成本次系统的开发,解决了系统设计和实现上发生的若干问题。我不仅仅在技术上有所提高,而且感受到团队精神以及积极严谨的工作态度的重要性。今天,我能顺利完成毕业设计,与各位老师的孜孜教悔是分不开的。在此,我再一次向他们表示衷心地感谢!37'