Bug管理系统课题报告

  • 格式:doc
  • 大小:252.00 KB
  • 文档页数:13

实训项目 Bug管理系统课题报告

信息与计算机系 软件092 学号: 姓名:

实训目的

1. 学习标准的软件开发过程,掌握软件开发过程中需求分析,概要设计,详细设计,编码实现,测试及系统发布与部属各个阶段及每个阶段的分工协作。

2. 进一步熟悉Java语言和JDK核心类库,掌握Web应用程序的开发,熟练掌握多层体系架构的软件层次结构及具体实现。

3. 进一步熟悉Web相关开发技术,熟练掌握HTML, JavaScript, CSS及Java Web开发中所涉及到的Java EE的相关技术,包括JSP, Servlet及 JSTL, 熟悉数据库连接池的使用,提高数据库访问性能。

4. 进一步熟悉Java Web开发相关的工具及环境,包括Eclipse ,Tomcat 及 SQL

Server的应用。

5. 培养学员面界面设计,数据库设计及OO设计的能力及在项目中的应用。

实训环境

1. 硬件环境:

Pentium IV或同档次以上PC

1024MB内存或以上

10G硬盘或以上

2. 软件环境:

Windows XP SP3以上版本

Eclipse for JavaEE 或者 MyEclipse

SQL Server 2000或以上版本

Tomcat 6.0 或以上版本

JDK 6.0或以上版本

Apache Ant 或者 Maven

实训内容

1. 软件工程在项目开发过程中的应用,熟悉项目开发过程中的主要阶段,及各个角色工作及职责;

2. Bug跟踪与管理的流程,在项目管理中Bug管理的重要性及各个角色应该怎样高效的进行Bug管理;

3. 使用面向对象的分析与设计方法进行Bug管理系统的分析与设计,了解什么是用例和类图

4. 使用SQL Server2000进行数据库的设计与实施 5. 使用Java EE web应用程序实现Bug管理系统,进一步熟悉Web开发的客户端相关技术和Servlet标准技术

6. 使用JDBC进行数据库相关操作,掌握数据库连接池的概念。掌握Apache DBCP数据库连接池

7. 使用Ant编写构建脚本,掌握系统构建的基本概念,使用Ant进行应用程序和数据库的发布

需求分析

项目背景

现代行软件开发项目或者产品的规模日益增长,为了满足企业或者个人对于软件的需求,代码量相关资源增多,软件版本为了满足不同的需求也会增多,所以软件后期维护的工作量不断增长,目前来讲软件行业的服务在整个软件实施的过程中起着关键性的作用,直接影响客户对于软件及软件企业服务的主要评价标准,而软件服务中比较重要的环节是软件的需求变更和缺陷管理,有效地管理好软件的需求变更,版本及缺陷,持续的集成和改善软件的用户体验已经成为每一个软件公司或者团队的关键任务。

缺陷跟踪就是为了能够更有效地管理好软件的所有的缺陷(Bug),能够让软件的功能,性能及用户体验等各个方面持续的提升,减少软件的问题。本系统的主要目标:

1. 建立一个系统能够从缺陷的新建、审核、分配、修复、验证直至关闭的流程

2. 能够有效地管理团队的资源,高效的管理Bug的修复流程,减少团队的沟通成本

3. 对于大型的团队的项目开发,能够有效地让分布在不同地点的开发人员在这个平台上进行bug跟踪

4. 能够方便的进行开发人员、测试人员在项目维护阶段的工作量的统计和工作效率的直观表现

5. 能够给项目维护提供较好的维护知识库

6. 为项目团队构建需求变更系统建立基础 系统边界及业务流程

系统模块划分

按照用户的角色来分,系统主要的功能模块如下:

按照系统的模块划分:系统的字功能模块:

模块及功能点说明:

用户管理:系统能够添加,修改及删除用户,并且能够列出所有的用户

项目管理:系统能够添加,修改及删除项目,并且项目列出 项目ID

项目名称 项目描述,开始时间,当前状态(打开,等待,关闭)

指定项目用户:指定项的管理,测试,开发人员删除BUG,能够删除一个或多个BUG ID

User List:

ID DisplayName Role

1 ZhangSan PM

2 LiSi Developer

3 WangWu Tester

系统设计

首先设计了登录页面,通过检查用户名、密码和用户类型来验证用户身份,如果验证失败,返回登录页面并提示用户名或密码错误,如果验证成功,则根据不同的用户类型进入不同的管理页面,图片如下所示:

然后是测试模块的设计。右侧显示等待修复的Bug(Bug编号、Bug标题、Bug修复者、Bug提交者、ETA),已经修复的Bug(Bug编号、Bug标题、Bug修复者、Bug提交者、ETA) 和 推迟修复的Bug(Bug编号、Bug标题、Bug修复者、Bug提交者、ETA)。点击Bug编号,显示Bug的详细信息。

最后是提交bug的页面设计,用于填写bug的名称,严重级以及优先级等数据。

系统实现与调试

建立数据库

安装好SQL数据库后,打开企业管理器,在控制台根目录树中,选择数据库,右击→新建数据库,命一个数据名.建立主数据文件,设置好数据文件的名字位置大小,建立二级数据文件和日志数据文件,返回企业管理器,根据数据库属性窗口查看相关属性。

数据库表

序号 数据库表 数据库表存储内容

1 Users 用户信息

2 ProjectUsers 项目经理信息

3 Projects

项目信息

4 Bugs Bug信息

用户信息

字段名 字段类型 备注

UserID int 非空,自动编号

DisplayName varchar(50) 显示名称

LoginName varchar(50) 用户名称

Password varchar(50 密码

Role int 用户类型

项目信息

字段名 字段类型 备注

ProjectID int 非空,自动编号

ProjectName varchar(50) 项目名称

Descriptions varchar(200) 项目描述

Bug信息

字段名 字段类型 备注 BugID int Bug编号

BugTitle varchar(200) Bug标题

Exposure int 严重级别

Reproduce varchar(1024) Bug

Descrition text Bug描述

ProjectID int 项目编号

Submitter varchar(20) Bug提交者

Validator varchar(20) Bug发现者

Owner varchar(20) Bug所有者

LastUpdateBy varchar(20) 最后更新者

SubmitDate datetime Bug提交日期

UpdateDate datetime Bug更新日期

项目经理信息

字段名 字段类型 备注

UserID int 用户编号

ProjectID int 项目编号

调试运行

public class User implements Serializable {

private static final long serialVersionUID = -3073526210639266067L;

private int userID;

private String loginName;

private String password;

private String displayName;

private int role;

public User(){}

public int getUserID() {

return userID;

}

public void setUserID(int userID) {

erID = userID;

}

public String getLoginName() {

return loginName;

}

public void setLoginName(String loginName) {

this.loginName = loginName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getDisplayName() {

return displayName;

}

public void setDisplayName(String displayName) {

this.displayName = displayName;

}

public int getRole() {

return role;

}

public void setRole(int role) {

this.role = role;

}

}

LoginServlet.java 接收从Login.jsp 提交过来的

UserName 、Password、 UserType

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//data validation

String loginName = req.getParameter("loginName");

String password = req.getParameter("password");

String role = req.getParameter("role");

调用UserService.java 中的 login()方法进行验证

public class UserService extends BaseService {

public User login(String loginName,String password) throws

SQLException{