基于java Web软件缺陷库系统业务系统设计与实现
博主介绍:翰文编程 专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和课设项目实战、企业信息化系统建设,从业十八余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+题目解决方法案例 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址
第4章 总体设计
4.1 系统总体模块图
软件缺陷管理系统主要设计了用户管理、菜单、软件缺陷管理管理、审批管理等功能,满足用户在网站上面进行软件缺陷管理的信息浏览与查看,具体功能模块图如4.1所示:

图4.1 系统总体模块图
4.2.1 概念模型设计
将需求分析得到的用户需求抽象为信息结构,即概念模型的过程就是概念结构设计,它是整个数据库设计的关键。
(2)系统中实体E-R图
菜单信息实体,主要包括 菜单编号,菜单名称,序号,类型,链接,父 等信息实体。如图4.2所示:

图4.2 菜单实体属性图
角色信息实体,主要包括 角色编号,角色名称,介绍 等信息实体。如图4.3所示:

图4.3 角色实体属性图
菜单角色信息实体,主要包括 菜单角色编号,菜单,角色 等信息实体。如图4.5所示:

图4.5 菜单角色实体属性图
用户信息实体,主要包括 用户编号,用户名,密码,姓名,联系电话,联系地址,角色 等信息实体。如图4.6所示:

图4.6用户管理实体属性图
属性信息实体,主要包括 属性编号,属性名称,属性值,标记 等信息实体。如图4.7所示:

图4.7属性实体属性图
缺陷信息实体,主要包括 缺陷编号,缺陷主题,所属系统,子系统,所属需求,测试环境,优先级,严重等级,缺陷原因,用户,时间,状态,附件,描述,缺陷状态 等信息实体。如图4.7所示:

图4.7 缺陷实体属性图
流程节点信息实体,主要包括 流程节点编号,节点,操作人,节点名称,类型,步骤序号 等信息实体

审批信息实体,主要包括 审批编号,业务,流程节点,用户时间,状态,是否同意,用户,操作人,节点名称 等信息实体.

4.2.2 关系模式设计
一个实体型转换为一个关系模式的集合。实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
在软件缺陷管理系统中,实体有菜单实体,角色实体,菜单角色实体,用户实体,属性实体,缺陷实体,流程节点实体,审批实体等实体,他们之间的关系如图4.13所示:

图4.13 实体之间关系图
4.3 本章小结
本章主要介绍的内容是总体设计或者概要设计,介绍了软件缺陷管理系统的设计,主要是在架构设计、总体模块设计和数据库设计的方面介绍的,为进一步的详细设计做准备。
第5章 详细设计
详细设计阶段的任务就是把在总体设计阶段提出的比较抽象概括的解决问题的方法具体化,也就是“应该怎样具体地实现这个系统”。在本阶段将包括数据库的设计和每个模块的详细设计,确定实现模块功能所需要的算法和数据结构。
普通用户或管理员输入自己的用户账号、密码,通过身份验证后可以进入相应的管理界面首页。管理员管理页面分为菜单信息管理与查看,角色信息管理与查看,菜单角色信息管理与查看,用户信息管理与查看,属性信息管理与查看,缺陷信息管理与查看,流程节点信息管理与查看,审批信息管理与查看模块。
当用户需要登录的时候,需要有响应的页面来实现这一功能。登录界面是用来支持用户进行登录功能操作的界面,当在界面中输入普通用户的用户名、密码,就可以通过身份验证进入该系统。 登录界面需要让用户输入用户名、密码。如果是错误登录信息造成的还要显示错误信息。否则,当信息输入和权限选择正确时,将分别将用户导入各自对应的操作界面首页。 用户分为普通用户和管理员两种。每种用户具有不同的权限,能完成不同的操作。普通用户具有查看信息权限夹功能等。管理员用户是系统的最高权限具有系统所有功能的操作。
管理员登录信息验证界面是非常重要的一部分,它接收登录表单提交的信息,并在用户信息表里检验是否存在对应的用户,和判断用户的类型以便获得相应的权限。
5.2.1 逻辑结构设计
2 角色( 角色编号,角色名称,介绍 )
3 菜单角色( 菜单角色编号,菜单,角色 )
4 用户( 用户编号,用户名,密码,姓名,联系电话,联系地址,角色 )
5 属性( 属性编号,属性名称,属性值,标记 )
6 缺陷( 缺陷编号,缺陷主题,所属系统,子系统,所属需求,测试环境,优先级,严重等级,缺陷原因,用户,时间,状态,附件,描述,缺陷状态 )
7 流程节点( 流程节点编号,节点,操作人,节点名称,类型,步骤序号 )
8 审批( 审批编号,业务,流程节点,用户时间,状态,是否同意,用户,操作人,节点名称 )
5.2.2 物理结构设计
由各个关系模式和根据需求分析阶段数据字典的数据项描述,给出各数据表结构。
(1)菜单信息表如表5.1所示:
表5.1 菜单信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cdid | INTEGER | 11 | 是 | 菜单编号 |
2 | cdmc | VARCHAR | 40 | 否 | 菜单名称 |
3 | xh | VARCHAR | 40 | 否 | 序号 |
4 | lx | VARCHAR | 40 | 否 | 类型 |
5 | lj | VARCHAR | 40 | 否 | 链接 |
6 | f | VARCHAR | 40 | 否 | 父 |
(2)角色如表5.2所示:
表5.2 角色表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | jsid | INTEGER | 11 | 是 | 角色编号 |
2 | jsmc | VARCHAR | 40 | 否 | 角色名称 |
3 | js | VARCHAR | 40 | 否 | 介绍 |
(3)菜单角色表如表5.3所示:
表5.3 菜单角色表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cdjsid | INTEGER | 11 | 是 | 菜单角色编号 |
2 | cd | VARCHAR | 40 | 否 | 菜单 |
3 | js | VARCHAR | 40 | 否 | 角色 |
(4)用户管理表如表5.4所示:
表5.4 用户管理信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | lxdh | VARCHAR | 40 | 否 | 联系电话 |
6 | lxdz | VARCHAR | 40 | 否 | 联系地址 |
7 | js | VARCHAR | 40 | 否 | 角色 |
(5)属性管理详情表如表5.5所示:
表5.5 属性管理详情表
字段名称 | 数据类型 | 长度 | 主键 | 描述 | |
1 | sxid | INTEGER | 11 | 是 | 属性编号 |
2 | sxmc | VARCHAR | 40 | 否 | 属性名称 |
3 | sxz | VARCHAR | 40 | 否 | 属性值 |
4 | bj | VARCHAR | 40 | 否 | 标记 |
(6)缺陷表如表5.6所示:
表5.缺陷表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | qxid | INTEGER | 11 | 是 | 缺陷编号 |
2 | qxzt | VARCHAR | 40 | 否 | 缺陷主题 |
3 | ssxt | VARCHAR | 40 | 否 | 所属系统 |
4 | zxt | VARCHAR | 40 | 否 | 子系统 |
5 | ssxq | VARCHAR | 40 | 否 | 所属需求 |
6 | cshj | VARCHAR | 40 | 否 | 测试环境 |
7 | yxj | VARCHAR | 40 | 否 | 优先级 |
8 | yzdj | VARCHAR | 40 | 否 | 严重等级 |
9 | qxyy | VARCHAR | 40 | 否 | 缺陷原因 |
10 | yh | VARCHAR | 40 | 否 | 用户 |
11 | sj | VARCHAR | 40 | 否 | 时间 |
12 | zt | VARCHAR | 40 | 否 | 状态 |
13 | fj | VARCHAR | 40 | 否 | 附件 |
14 | ms | VARCHAR | 40 | 否 | 描述 |
15 | qxzht | VARCHAR | 40 | 否 | 缺陷状态 |
流程节点
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | lcjdid | INTEGER | 11 | 是 | 流程节点编号 |
2 | jd | VARCHAR | 40 | 否 | 节点 |
3 | czr | VARCHAR | 40 | 否 | 操作人 |
4 | jdmc | VARCHAR | 40 | 否 | 节点名称 |
5 | lx | VARCHAR | 40 | 否 | 类型 |
6 | bzxh | VARCHAR | 40 | 否 | 步骤序号 |
审批
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | spid | INTEGER | 11 | 是 | 审批编号 |
2 | yw | VARCHAR | 40 | 否 | 业务 |
3 | lcjd | VARCHAR | 40 | 否 | 流程节点 |
4 | yhsj | VARCHAR | 40 | 否 | 用户时间 |
5 | zt | VARCHAR | 40 | 否 | 状态 |
6 | sfty | VARCHAR | 40 | 否 | 是否同意 |
7 | yh | VARCHAR | 40 | 否 | 用户 |
8 | czr | VARCHAR | 40 | 否 | 操作人 |
9 | jdmc | VARCHAR | 40 | 否 | 节点名称 |
6.1 登录模块界面
登录系统首页,出现用户名、密码的输入框,填写用户名和密码点击【提交】按钮,即可登录;具体的登录页面如图6.1所示:

图6.2 登录界面图
6.2 用户管理界面

该功能用于实现对系统用户信息的管理。可以添加、删除和更改用户信息,以及用户信息列表展现,在添加用户信息时,系统会自动查询系统中用户表中的用户编号字段,系统自动将用户表中最大值加1作为该用户表用户记录的用户编号,同时将用户编号,用户名,密码,姓名,联系电话,联系地址,角色 信息添加到用户信息表中;在删除一条用户记录时,先选中一条用户记录,将该条用户记录中的用户编号作为查询条件在用户信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改用户记录时,先选中一条用户记录,将用户信息显示在相应的修改页面中,然后更改后保存到用户信息表中;查看用户信息记录时,选中要查看的用户记录,系统根据用户选择用户信息,在详细页面显示用户信息
6.3 菜单管理管理界面

该功能用于实现对系统菜单信息的管理。可以添加、删除和更改菜单信息,以及菜单信息列表展现,在添加菜单信息时,系统会自动查询系统中菜单表中的菜单编号字段,系统自动将菜单表中最大值加1作为该菜单表菜单记录的菜单编号,同时将菜单编号,菜单名称,序号,类型,链接,父 信息添加到菜单信息表中;在删除一条菜单记录时,先选中一条菜单记录,将该条菜单记录中的菜单编号作为查询条件在菜单信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改菜单记录时,先选中一条菜单记录,将菜单信息显示在相应的修改页面中,然后更改后保存到菜单信息表中;查看菜单信息记录时,选中要查看的菜单记录,系统根据用户选择菜单信息,在详细页面显示菜单信息
6.4 属性管理界面

该功能用于实现对系统属性信息的管理。可以添加、删除和更改属性信息,以及属性信息列表展现,在添加属性信息时,系统会自动查询系统中属性表中的属性编号字段,系统自动将属性表中最大值加1作为该属性表属性记录的属性编号,同时将属性编号,属性名称,属性值,标记 信息添加到属性信息表中;在删除一条属性记录时,先选中一条属性记录,将该条属性记录中的属性编号作为查询条件在属性信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改属性记录时,先选中一条属性记录,将属性信息显示在相应的修改页面中,然后更改后保存到属性信息表中;查看属性信息记录时,选中要查看的属性记录,系统根据用户选择属性信息,在详细页面显示属性信息
private void insertM(HttpServletRequest request, HttpServletResponse response){//属性添加 shuxingDao dao=new shuxingDao(); shuxing shuxing=new shuxing(); shuxing.setSxid((String)request.getParameter("keyid")); shuxing.setSxmc((String)request.getParameter("sxmc")); shuxing.setSxz((String)request.getParameter("sxz")); shuxing.setBj((String)request.getParameter("bj")); response.setCharacterEncoding("gb2312"); try { dao.insert(shuxing); request.setAttribute("flag", "操作成功"); request.getRequestDispatcher("shuxing/shuxingadd.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); } } private void ListM(HttpServletRequest request, HttpServletResponse response){//属性信息列表 ResultSet rs=null; shuxingDao dao = new shuxingDao(); String str=(String)request.getParameter("Page"); String; response.setCharacterEncoding("gb2312"); try{ if(str==null){ str="0"; } String sxmc=(String)request.getParameter("sxmc"); if(sxmc!=null&&!sxmc.equals("")){ //如果属性名称不为空 拼接sql语句 sql+=" and+sxmc+"'";//拼接sql语句 } String sxz=(String)request.getParameter("sxz"); if(sxz!=null&&!sxz.equals("")){ //如果属性值不为空 拼接sql语句 sql+=" and+sxz+"'";//拼接sql语句 } String bj=(String)request.getParameter("bj"); if(bj!=null&&!bj.equals("")){ //如果标记不为空 拼接sql语句 sql+=" and+bj+"'";//拼接sql语句 } rs=dao.qlist(sql); PrintWriter out = response.getWriter(); request.setAttribute("rs", rs); request.getRequestDispatcher("shuxing/shuxinglist.jsp?Page="+str).forward(request, response); }catch(Exception e){ e.toString(); e.printStackTrace(); } } private void PListM(HttpServletRequest request, HttpServletResponse response){//测试信息列表 ResultSet rs=null; shuxingDao dao = new shuxingDao(); System.out.println("alist"); String; response.setCharacterEncoding("gb2312"); try{ rs=dao.qlist(sql); PrintWriter out = response.getWriter(); request.setAttribute("rs", rs); request.getRequestDispatcher("shuxing/shuxingplist.jsp").forward(request, response); }catch(Exception e){ e.toString(); e.printStackTrace(); } }6.5 缺陷管理界面

该功能用于实现对系统缺陷信息的管理。可以添加、删除和更改缺陷信息,以及缺陷信息列表展现,在添加缺陷信息时,系统会自动查询系统中缺陷表中的缺陷编号字段,系统自动将缺陷表中最大值加1作为该缺陷表缺陷记录的缺陷编号,同时将缺陷编号,缺陷主题,所属系统,子系统,所属需求,测试环境,优先级,严重等级,缺陷原因,用户,时间,状态,附件,描述,缺陷状态 信息添加到缺陷信息表中;在删除一条缺陷记录时,先选中一条缺陷记录,将该条缺陷记录中的缺陷编号作为查询条件在缺陷信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改缺陷记录时,先选中一条缺陷记录,将缺陷信息显示在相应的修改页面中,然后更改后保存到缺陷信息表中;查看缺陷信息记录时,选中要查看的缺陷记录,系统根据用户选择缺陷信息,在详细页面显示缺陷信息
大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者