您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页毕业设计说明书

毕业设计说明书

来源:爱够旅游网
摘要

软件中的缺陷(Defect或Bug)是软件开发过程中的\"副产品\"。通常,缺陷会导致软件产品在某种程度上不能满足用户的需要或在使用过程中出现突发的异常。在软件开发过程中如何合理,有效的进行BUG的跟踪管理是每个软件开发公司开发过程中必须考虑的问题。本文介绍了本项目开发的背景和意义,及项目开发的设计过程与实现过程。本项目开发采用B/S架构模式,使用MVC的开发模式,采用jsp+servlet+spring+hibernate技术实现,使用mysql数据库进行数据的存储。该系统具有一定的实用价值,但性能和功能方面有待改善。

[关键词] 缺陷;项目开发;项目设计;B/S;MVC;Mysql。

Abstract

Software defects (Defect or bug) is a \"byproduct\" of the software

development process. Typically, defects in software products can not meet the needs of users in a way or occur a sudden abnormal during use. How to effective track and manage the BUG must be considered in the development process of every software development company. This article describes the background and significance of the project development and design process of project development and implementation process. This project developed using the B / S structure mode, using the MVC development model, using jsp + servlet + spring + hibernate technology, using the mysql database for data storage. The system has some practical value, but the performance and functionality needs to be improved.

[Key Word] Defects; project development; project design; the B/S; the MVC; Mysql

1引言

1.1 选题背景

随着社会的蓬勃发展,软件行业的激烈竞争也日益明显,人们对软件的质量要求也越来越严格。软件测试作为保证软件质量的一种手段,也日益被软件开发商所重视,软件测试也是软件开发过程中不可缺少的组成部分,而软件测试过程中的bug管理是软件测试的重要工作,是重中之中。为了保证Bug能够得到及时的发现和解决,在解决bug的过程细节能够得到完整的记录和存档并随时了解当前项目中的bug的处理状况和整体情况。因此,对bug进行跟踪管理,确保每个被发现的缺陷都能够及时得到处理是测试工作的一项重要内容。

在软件开发与维护过程中,有效地进行质量控制与保证工作尤为重要。正因如此,软件缺陷跟踪与管理在现代软件过程中成为实施质量控制与保证的重要方面。软件中的缺陷是软件开发过程中的\"副产品\"。通常,缺陷会导致软件产品在某种程度上不能满足用户的需要。Bug跟踪管理系统用于帮助公司和团队跟踪工作中的问题,管理和记录这些问题的处理过程,并为用户提供事务分配的平台。

1.2 系统的意义

Bug跟踪管理系统对于一个团队的Bug管理非常有效,可以确保每个出现的问题都可以得到记录和跟踪,为团队提供有效的交互平台,提高团队效率和增强团队工作氛围。总之,BUG管理系统旨在提供一套系统建立测试人员,开发人员与管理人员之间的一种桥梁,以有效的提高软件的管理与沟通效率。

1.3 系统的基本功能

管理员:

帐号管理:包括添加帐号,删除,更新帐号基本信息。

项目管理:包括添加项目,分配人员,发布项目,关闭项目,及更新项目

信息。(不需要删除)

项目经理:

项目经理登录后系统列出该项目经理所有的项目,其选择某个项目后可以执行:待分配的BUG,BUG统计,无法解决的BUG

开发人员:

开发人员登录后显示所有最新未解决的BUG,开发人员可以选择其中的BUG执行”反溃”操作。

测试人员:

测试人员登录后可以看到所有属于他发起的BUG,并可选择其中的BUG执行回归测试等操作。

测试人员同时可以执行“添加BUG”来产生一个新的BUG

2 相关技术简介

2.1 Servlet技术介绍

Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,

然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么

SUN还要推出Java Server Pages的原因。

2.2 Hibernate技术介绍

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,完成数据持久化的重任。

Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。Session接口 Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。

SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

Configuration类 Configuration类负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。

之前在没有使用Hibernate以前使用纯jdbc来操作数据库,完成相同的操作,jdbc的代码量非常多,而hibernate几行代码就解决了。

比如我们要保证一个对象,使用jdbc操作时我们要写一句insert into „ 这样的SQL语句,而使用hibernate我们只要调用session的save等方法。我们还可以使用hibernate的事务控制接口,手动开启和关闭事务,这样我们可以

掌握事务的流程,保证数据有效和完整。

Hibernate还有其它方面的功能,它是个非常好用的框架。但它的学习难度比较大,学习过程中很多细节要考虑。

2.3 Spring 技术介绍

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。是容器在对象初始化时不等对象请求就主动将依赖传递给它。Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。这次BUG跟踪管理系统中使用IoC比较多,在我们平时开发过程,在哪块代码在要用到某个对象时我们会直接new 出一个对象然后操作这个对象,这样子做的话代码的耦合很强。如果使用了Spring管理这个对象,我们可以使用注解注入和构造注入等方式注入这个对象。这样耦合度降低了。Spring还提供了注解事务,省去了hibernate手动开启和关闭事务,使程序更加简洁。降低了事务控制难度。配合jsp ,servlet完成了BUG跟踪管理系统,jsp主要作视图层,做数据展示,servlet作控制层,控制程序流程(使用spring注入dao对象),在DAO层使用Hibernate提供的功能完成数据库访问。

2.4 MVC简介

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用,其模型如图1所示: 1、模型(Model):

模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑. 2、视图(View):

视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 3、控制器(controller): 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。

3 系统设计

3.1 系统可行性研究

3.1.1经济可行性

经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于BUG跟踪管理系统是作为毕业设计由我们学生自己开发的,在经济上的投入比较少,系统开发所有的技术及框架都是开源的,主要是时间投入比较大。因此在经济上是可行的。 3.1.2技术可行性

技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。BUG跟踪管理系统采用MyEclipse开发工具,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在硬件上是绝对可行的。软件方面:由于目前B/S模式相对发展成熟,java EE 开发平台已是现在的主流。系统采用的Spring和Hibernate都是开源免费框架,极大的简化了应用的开发难度,加上jsp,servlet等技术完全可满足bug跟踪管理系统开发需求。

3.2 需求分析

3.2.1系统简介

BUG是指在软件测试领域中,描述软件缺陷或问题的实体。 BUG管理系统至在提供一套系统建立测试人员,开发人员与管理人员 之前的一种桥梁,以有效的提高软件的管理与沟通效率。 3.2.2系统角色及主要职能

系统管理员:

系统帐号管理,项目管理,分配相关人员。

项目经理:

BUG查询及分配,统计BUG,汇总报表等

开发人员:

主要是解决分配给他的BUG,更新BUG状态。

测试人员:

提交新的BUG,及对开发人员修改的BUG进行回归测试。

3.2.3 关键业务实体说明

a)系统帐户表:

帐号,密码,姓名,角色(管理员,测试人员,开发人员),账号状态,人员状态。

b)项目:即一个具体的软件项目

项目信息主要由基本信息,人员信息,及相关文档三部分组成:

基本信息主要包括:编号,名称,描述,项目经理(管理员指定,帐户表外键),开发单位,发布单位,开始日期(发布时间),结束日期(关闭时间),状态(3种),项目附件1,项目附件2, 项目附件3

项目人员信息主要包括:编号,系统帐号(外键),项目编号

项目的状态主要有

新建:刚建立尝未发布的项目,除管理员外其他人不可见。

已发布:项目已经发布,正在进行BUG跟踪。(管理员执行发布操作之后),项目相关人员可见。

已关闭:已关闭的项目不能做任何的修改,包括添加BUG等。(关闭后不能再进行BUG处理)

BUG:用于描述软件系统的缺陷

BUG的主要信息主要由基本信息,相关文件及BUG跟踪记录组成:

基本信息包括:编号,问题简述,问题详细描述,测试过程描述,建立人(测试人员帐号),建立时间(自动),解决人(被指派开发人员帐号,由项目经理指派,用户帐户),分配时间(指派时间),关闭时间(测试人员关闭或项目经理异常关闭时的时间),计划修正日期(指派时指定),严重级别(严重,一般,可选),状态(如下)。

相关文件:测试人员添加的一些例如截屏,附件数据等。一个BUG可能会有多个相关文件,主要包括:文件编号,文件路径,对应的BUG(外键)

BUG跟踪记录:该数据与BUG是多对一的关系,即一个BUG可能有多个跟踪记录,例如:项目经理分在分配时会填写分配记录,开发人员修正后会填写修改记录,测试人员回归测试时会填写测试记录,如此反复。

它包括:编号,BUG编号,填写人,填写时间,内容,附件1,附件2,附件3(即充许最多可以挂三个附件)

BUG的状态主要有:

未发布:BUG由测试人员建立后最初的状态。

已发布:测试人员已将BUG提交,提交后项目经理可见,可分配

已分配:项目经理指派给具体的人员之后,测试人员回归测试不通过并且回复之后,是等待开发人员反馈的状态。

正常关闭:测试人员测试通过后,回复之后

无法解决:开发人员无法修正BUG,回复之后,等待项目经理再次分配的 异常关闭:项目经理关闭无法解决的BUG,并且添加回复后。

等待测试:开发人员修正bug,回复之后,是等待测试人员回归测试的状态。 为了可以完成信息的通知,所以需要有张信息记录表

信息表主要包括编号,标题,信息内容,发送者,接受者,发送时间,状态(0 已读 1未读),在这里发送者和接受者必须在同一个项目中,才能互相发信息。发送时间取发送成功的时间。

3.3功能模块设计

通过需求分析,我们要明确系统具体要有什么样的功能去满足用户。换句话说,就是已经明确了系统要做什么。 经过分析后,系统的功能图设计如下:

BUG跟踪管理系统管理员项目经理开发人员测试人员新建项目提交项目帐号管理待解决BUG管理查看相关BUG跟踪记录查看已提交项目查看已关闭项目项目BUG管理查看相关BUG跟踪记录新建BUGBUG管理查看相关BUG跟踪记录

3.4系统功能详细设计

BUG跟踪管理系统一共分为四个角色,每个角色登录到系统都会有不同的功能操作界面,每个角色能操作的功能也不同,很好的做到了权限控制。 3.4.1 管理员功能模块

模块介绍:管理员可以现新建一个项目,在新建项目时为这个项目分配项目经理,开发人员及测试人员,新建项目后可以查看并提交项目。对已提交的项目如果需要关闭可以关闭项目,对已关闭的项目同样可以开启。管理员还可以进行帐号管理,如添加帐号,更新帐号密码,注销帐号等。 3.4.2测试人员功能模块

模块介绍:测试人员登录系统后可为自己所负责的项目上做测试,发现BUG后新建BUG,提交BUG(系统自动做记录),对开发人员反馈的BUG进行回归测试,不成功就退回给开发人员并做记录,回归测试成功就正常关闭BUG并做记录。对于关闭的BUG可查看其跟踪记录(只能查看自己有涉及的项目BUG跟踪记录)。对跟踪记录信息还可以导出到Excel表格中。 3.4.3项目经理功能模块

模块介绍:项目经理登录系统后可以选择查看他自己负责的项目下已提交的BUG,分配BUG给这个项目下的开发人员并做记录。对开发人员反馈过来的无法解决BUG对其进行重新分配并做记录或非正常关闭BUG并做记录。查看他自己负责的项目下已关闭了的BUG的跟踪记录,并可导出到Excel表格。 3.4.4开发人员功能模块

模块介绍:开发人员登录系统后,查看待解决的BUG,如果BUG解决了,点击已修正反馈给测试人员并做记录,如果不能解决点击无法解决反馈给项目经理并做记录,由项目经理决定是否重新分配给其他开发人员还是非正常关闭BUG。查看他自己涉及的BUG的跟踪记录,并可导出到Excel表格。

4 数据库设计

4.1数据关系模型:

用户(用户账户,密码,姓名,角色)

项目(项目编号,名称,项目描述,项目经理帐号,开发单位,发布单位,发布

时间,关闭时间,状态,项目附件1,项目附件2,项目附件3) 项目人员信息(编号,用户帐号,项目编号)

BUG信息(编号,问题简述,问题详细描述,测试过程描述,建立人,建立时间,

解决人,分配时间,关闭时间,计划修正日期,严重级别,状态)

BUG跟踪记录(编号,BUG编号,填写人,填写时间,内容,附件1,附件2,附

件3)

BUG文件(记录编号,文件名,bug编号)

4.2数据字典

用户表

字段名称 useraccount password userName role 主键/数据类型 外键 用户帐号 主键 varchar 密码 varchar 用户名 varchar 角色 int 含义 长度 20 80 10 2 允许空 否 是 是 是 项目表 主键/外字段名称 含义 键 projectId 项目编号 主键 projectName 名称 projecDescription 项目描述 项目经理 projectManager 帐号 developmentUnit 开发单位 数据类型 int varchar varchar varchar 长度 11 20 100 20 40 允许空 否 是 是 是 是 publishUnit publishTime closeTime state accessory1 Accessory2 Accessory3 发布单位 发布时间 关闭时间 状态 项目附件1 项目附件2 项目附件3

varchar varchar datetime datetime int varchar varchar varchar 40 0 0 11 100 100 100 是 是 是 是 是 是 是 项目人员信息表

字段名称 id userAccount projectId 含义 编号 用户帐号 项目编号 主键/外键 主键 数据类型 int varchar int 长度 11 20 11 允许空 否 是 是 BUG信息表

字段名称 bugId problemDescription problemDescriptionDetail testProcessDescription buildMan buildTime solvePeople assignTime 含义 编号 问题简述 问题详细描述 测试过程描述 建立人 建立时间 解决人 分配时间 主键/外键 主键 数据类型 int varchar varchar varchar varchar datetime varchar datetime 长度 11 100 200 100 40 0 40 0 允许空 否 是 是 是 是 是 是 是 closeTime planFixedTime seriousLevel state projectId 关闭时间 计划修正日期 严重级别 状态 项目编号 主键/外键 主键 datetime datetime varchar int int 0 0 10 11 11 长度 11 100 11 是 是 是 是 是 允许空 否 是 是 文件信息表

字段名称 fileId filePath bugId 含义 编号 文件路径 bug编号 数据类型 int varchar int

BUG跟踪记录表

字段名称 recordId bugId fillInPeople fillInTime content accessory1 accessory1 accessory1 含义 编号 BUG编号 填写人 填写时间 内容 附件1 附件2 附件3 主键/外键 主键 数据类型 int varchar varchar varchar varchar datetime varchar datetime 长度 11 11 20 0 100 100 100 100 允许空 否 是 是 是 是 是 是 是 4.3实体关系图

5 系统实现

5.1 系统登录界面设计

介绍:系统的四种角色登录都在这个窗口,对帐号密码进行数据为空校验。

使用验证码防止恶意软件的恶意攻击。验证码区分大小写,如看不清楚可点击

在页面重新刷新一张图片。

5.2 部分角色登录后界面

5.2.1管理员登录后界面

5.2.2角色登录判断

5.3 管理员部分功能模块

5.3.1新建项目 界面:

DAO代码:

5.3.2查看已提交项目和已关闭项目 界面:

查询已提交项目DAO代码:

5.3.3帐户管理 界面:

servlet代码:

6 系统测试

6.1 单元测试

软件测试是保证软件质量的特别重要的活动,单元测试是软件测试中的一种,

单元测试是在软件开发过程中要进行的最低级别的测试活动,一般是程序员自己完成。

在开发的过程中,完成一个基本功能后,我们都会进行一个单元测试。 1. 开发完用户登录模块后,我们会在用户表中添加一个用户用于登

录,在登录时程序会和表中的用户帐号密码匹配,如果成功则进入功能页面,否则给出错误提示信息。

2. 各角色都有增、删、查和改操作,每做完一个功能模块程序员都

会对其进行单元测试以保证操作正确。如新建BUG时,保证新建的BUG已存入BUG信息表中,查询BUG时看是否能够读出数据库中的数据等等。

3. 把BUG跟踪记录导出到Excel,得通过单元测试保证导出的数据不

乱码,格式正确等等。

6.2 集成测试

集成测试也称也组装测试,在单元测试的基础上,把各个组件组合在一起形

成一个子系统并对其进行测试。因为各个组件间会相互影响,所以集成测试比单元测试复杂些。

6.3输入参数错误捕获及处理

对于从页面获取参数,应当使用javascript对输入的参数进行合法性校验,保证输入的数据是完成合法的,或符合数据库的要求。比如在登录时,使用javascript校验用户名密码是否为空,在servlet中判断用户名密码是否正确,如果不正确应跳转到相应处理页面给出友情提示,使程序能继续执行下去。

7 结束语

参考文献 致谢 附录

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务