摘要:如今社会正处于一个高新科技的时代,通信、计算机和网络技术正极大地影响着整个人类社会,IT公司的项目也在不断增长,项目的管理压力不断在增大。
科学化、规范化、制度化、信息化的管理是提高公司项目交付率的基础,一套现代化的项目管理系统是IT公司中都必须拥有的。针对目前公司中存在项目管理不善的问题,结合当前公司实际状况为公司开发一个基于J2EE平台、B/S多层体系结构、MVC设计模式和SpringBoot框架的软件项目管理系统。该管理系统提高公司项目管理能力和项目跟踪进度,减少人工的投入和提高各岗位员工工作效率,工作安排准确,同时使公司项目管理的工作达到科学化、规范化、制度化、信息化的目标。基于SpringBoot软件项目管理系统主要是实现对公司的项目管理,包括项目管理,项目任务管理,任务BUG管理等模块,其中有项目录入,评估,项目任务分配,BUG提取,项目交付等功能。
关键词:项目管理,spring boot,MVC
Software project management system based on SpringBoot technology
Abstract:Nowadays, the society is in an era of high and new technology. Communication, computer and network technologies have a positive impact on the entire human society. At the same time, IT companies’ projects are constantly growing, and the pressure of project management is increasing. Under the traditional model, human resources There are more and more mental memories, and the files are constantly increasing. Once the tracking is not good, different projects are intertwined, which not only wastes labor but is also disorganized, and also causes huge loss of company benefits. Since it is an IT company, it should pursue modernization, informationization, and scientific development needs.
Scientific, standardized, institutionalized, and informatized management is the basis for improving the company’s project delivery rate. A modern project management system is a must in IT companies. Aiming at the problem of poor project management in the current company, combined with the current situation of the company, a software project management system based on the J2EE platform, B / S multi-layer architecture, MVC design pattern, and SpringBoot framework was developed for the company. Improve the company’s project management capabilities and project tracking progress, reduce labor input and improve the work efficiency of employees in all positions, accurate work arrangements, and make the company’s project management work to achieve scientific, standardized, institutionalized, and information-based standards. The project management system based on SpringBoot software mainly implements project management for the company, including project management, project task management, task BUG management and other modules, among which there are item catalog entry, evaluation, project task allocation, BUG extraction, project delivery and other tasks.
The software project management system is developed on IntelliJ IDEA software. The software code prompt function is very complete, including file reference path errors, page jump path error prompts, and automatic package guidance. The software project management system of the SpringBoot framework uses the current mainstream JAVA open source lightweight framework completed by SpringBoot and Mybatis framework. SpringBoot is based on Spring 4.0 design. Version 1.0 was released in April 2014. Compared to the SSM framework, SpringBoot combined with Maven reduces a large number of frequent configuration files in the past. After configuration, maven contains many plugin functions, such as mybatis reverse engineering, The project automatically generates entity classes, mapping classes and mapping files, reducing a lot of tedious work. The combination of SpringBoot and Maven can help JAVA develop siege lions for project research and development.
Key words:Project management,Authority
第1章 绪 论 1
1.1 系统开发的背景 1
1.2 系统开发的意义 1
1.3 国内外发展状况 2
1.4 主要研究内容 3
第2章 系统需求分析 4
2.1 可行性分析 4
2.1.1 经济可行性 4
2.1.2 技术可行性 4
2.1.3 操作可行性 4
2.2 系统的总体需求 5
2.3 需求分析 5
2.4系统用例图 7
2.4.1 系统管理员用例图 7
2.4.2 系统管理员用例规约表 8
2.4.3 项目经理用例图 12
2.4.4 项目经理用例规约表 13
2.4.5 产品经理用例图 16
2.4.6 产品经理用例规约 17
2.4.7 开发人员用例图 17
2.4.8 开发人员用例规约 18
2.4.9 测试人员用例图 22
2.4.10 测试人员用例规约 23
2.5 系统类图 26
2.5.1 实体类图 26
第3章 系统设计 28
3.1 系统功能设计 28
3.2 数据库设计 29
第4章 系统实现 32
4.1 登录界面实现 32
4.1.1 账号登陆 32
4.1.2 扫码登陆 33
4.2 主页界面实现 36
4.2.1 项目管理菜单 37
4.2.2 任务管理菜单 41
4.2.3 BUG管理菜单 44
4.2.4 用户管理菜单 48
4.2.5 密码修改,注销按钮 52
第5章 系统测试 56
5.1 系统测试目的 56
5.2 系统测试意义 56
5.3 测试用例及结果 56
第6章 结束语 58
参考文献: 59
致谢 60
1.1系统开发的背景
软件项目开发首先是一项系统性的工作,而诸多的软件项目开发同时堆在一起,不单更加系统性,而且变成了更加复杂的工作,软件项目开发讲究分工明确,需要一个团队的整体合作,才能规范性的完成整个软件项目直至交付给客户。而软件项目开发是需要科学化、规范化、制度化、信息化的管理。因此,基于SpringBoot软件项目管理系统可以整理各个软件项目开发的进度过程。明确项目成本、进度、质量和风险的分析,使各个项目有一个预估的结果,是否符合自身公司的所掌握的领域,或者收益是否大于成本,种种因素都可纳入到该系统进行统计和登记。实际上,软件项目管理不单单如此,而且还可降低减少企业公司日常软件项目开发的工作管理压力,并使各个职责相关人员随时随地都可以知道自身的任务安排,无需像传统模式工作下面对面交流去布置各人员工作任务的安排,这样就减少日常工作不必要时间的浪费,让员工更加专心致志的工作,提高全体的工作效率,这也是公司都不必要浪费的时间成本,时间就是金钱。起到科学化、规范化、制度化、信息化的软件项目管理。
1.2系统开发的意义
如今社会正处于一个高新科技的时代,通信、计算机和网络技术正极大地影响着整个人类社会,从日常的家庭生活用品到国家重器发展制造都有涉及到高新科技,每个产品的研发都需要一个开发的管理流程,无规矩不成方圆,软件开发也是如此。当项目较小时,任务量少时,我们还能勉强掌握项目的流程走向,和任务的安排,但当项目增多时,任务量非常庞大时,那么日常的管理压力也会随着项目计划的增多也变得非常庞大,而且人的记忆能力有限,此时,不一定可以记得每个项目计划的细节,甚至不清楚自己还有多少的任务没有完成,这样会非常影响各员工的工作效率,这时就是为什么要用到软件项目管理系统了,软件项目管理系统可以大大减少项目开发的管理压力,并且对每个项目任务进行进度跟踪,落实各自任务的安排,各任务计划文档的管理整合,BUG的产生处理流程,项目收益评估,任务工时登记。
开发一个高效的软件项目管理系统,各岗位员工都可以利用它来进行轻松管理,使日常工作更加高效,使公司资源得到最大化的利用和最大的收益,比如面对一个项目的录入,需要多少人员来做,花多少工作日,使开发整个流程清晰明了,本着时间就是金钱的使命,对时间进行高效的管理和分配。还有项目的评估,需要多少成本,获得多少收益,都是非常重要的。项目开发流程进度都应该做到可跟踪,可掌控,从软件项目评估到项目软件的交付流程。通过软件项目管理系统的实施使用,能够使公司企业的软件开发项目更加科学性管理,促进规范管理和工作的高效性。
1.3 国内外发展状况
软件项目管理的提出源于美国20世纪70年代中期,当时美国国防部通过对软件开发不能按时提交,预算超支,和质量达不到用户要求的原因,结果显示70%的项目都是因为项目管理不善引起的,并非技术方面出现错误。在微型计算机的出现时,20世纪80年代后项目管理技术也开始呈现出不断兴起的趋势,多样的项目管理软件不断出现,对于软件开发管理,也是其中的一类,软件开发的项目越大,任务就会越多,整个流程会趋于更加繁重、复杂。到了20世纪90年代中期,软件开发项目管理仍存在较多管理不善的问题,据美国软件工程实施现状的调查,软件开发的情况仍然是一个很难去预测的问题,几乎只有大于10%的项目能够在预定的费用和进度下交付给客户。
随着社会科技的发展,高新科技的不断兴起,越来越多的软件需要开发,那么开发就需要制定计划,实施项目管理。因此项目管理更加地广泛应用于各个公司企业中。项目管理思想正逐步被各行各业所接受和采用。建设部最近发布了《关于培育发展工程总承包和工程项目管理企业的指导意见》文件,更加表明了项目管理的重要性,也表明了我国的项目管理模式正逐步走向制度化和法制化轨道。
经过数据调查显示,大部分软件项目开发人员主要走在编码开发的路上,虽然对软件开发方面知识具有较丰富的技术知识,但是相对于软件管理方面,却又是另一座高峰,知识的盲区,不能说他们不聪明,只是不擅长这方面或者是不专注于这方面,正所谓努力做好一件事容易,但是做好每件事是不容易的,而且没必要花费太多时间在自己工作外的事情。因此如果可以有个软件系统可以帮助他们减少这些繁琐的事情,专心工作,对于公司企业来讲,这将是一个非常科学化地管理工作,而且大大减少了公司企业资源的浪费。
项目管理软件系统主要分为客户机/服务器(C/S)结构和浏览器/服务器(B/S)结构体系,应用范围由原来的单机到局域网再到互联网的走向,使得信息得到互相交互,伴随着项目管理软件应用范围变广,系统管理的任务也越来越繁多,C/S结构下项目管理系统也呈现出非常多的缺点,比如对客户来说版本更替,安装都较为不便,而且价格昂贵,对于供应商在提供该软件做系统前需要做的测试也较为麻烦等等问题;而B/S结构的软件项目管理系统在一定程度上解决了这些问题,显得更方便的特性,无论用户的多少都不会增加维护的工作量,所以目前主流的软件项目管理系统主要采用于浏览器/服务器(B/S)结构。JAVA技术的成熟也使浏览器/服务器(B/S)结构日益成为应用软件的主流。
1.4 主要研究内容
软件项目管理系统包括6大功能模块,项目管理模块,任务管理模块,Bug管理模块,日志模块,登陆模块,人员管理模块,不同角色拥有的权限模块也是不同的。
首先软件项目管理系统拥有用户友好的界面,还有系统服务器和数据库的支持,使系统成为一个动态化的软件项目管理系统。因此项目管理系统的主要研究内容分为以下几步:首先对界面化如何去设计,让使用者使用简单明了,还有对数据库设计,这是一个比较重要的过程,设计好不好关系到系统的完整性,不会使系统杂乱无章,再一个保证了不同角色权限清晰,在一定级别上无权操作更改他人工作任务,还有保证服务器的完美运行,不存在BUG,最后结合前端页面,服务器和数据库三个重要模块实现软件项目管理系统。
2.1 可行性分析
可行性分析是根据对系统进行调查的根本上,针对系统是否具备开发的必要性和可能性,对开发系统所需要掌握的技术,经济和操作等多方面进行分析和研究,避免浪费金钱和时间的前提上开发该系统。可行性分析研究目的是以最低的资本去决策问题是否可解决。系统的可行性分析包括以下几个方面。
2.1.1 经济可行性
基于SpringBoot软件项目管理系统是本人的毕业设计,从系统设计开始到系统的开发再到系统的实现完成,都由本人独自完成。实现零经费实现系统。软件项目管理系统被使用后,将会实现公司项目管理的科学科学化、规范化、制度化、信息化,提高公司运作效率和项目交付率。
2.1.2 技术可行性
技术上的分析主要在于开发者技术能力是否能够顺利完成软件项目管理系统开发工作。此系统开发过程中采用IntelliJ IDEA 2019.3.3 x64作为系统的集成开发环境,采用JAVA语言,并使用JAVA开源轻量级框架SpringBoot框架和Mybatis框架,数据库使用msyql5.7。前端采用bootstrap admin开源项目,以及easyui框架和jQuery。
2.1.3 操作可行性
基于SpringBoot软件项目管理系统采用目前主流的浏览器/服务器(B/S)结构体系,让使用者熟悉,易于操作。根据公司目前的管理过程进行系统化培训,便可对系统进行简单操作。
2.2 系统的总体需求
软件项目管理系统存在5类角色,包括管理员,项目经理,产品经理,开发人员和测试人员。不同角色拥有的权限功能不同,因此权限的管理,体现了公司不同职员负责的工作不同,而且即使角色相同,所负责的工作内容保持互不干扰,独立安排整理自身工作任务。
2.3 需求分析
以下是对软件项目管理系统的六大模块进行需求分析:
项目管理模块:项目管理模块是该系统的核心,也是该系统使用的开始,当公司企业接收一个项目需求时,由项目经理进行录入,登记相关信息并上传需求文档,产品经理下载项目需求文档进行评估等级,并上传项目评估文档供给项目经理查看,不同项目的项目经理不能操作其他项目经理的项目。
任务管理模块:任务管理模块是针对已经过产品经理进行评估认定后,符合公司标准的项目需求,再由项目经理根据产品经理所提供的文档去进行拆分任务,并进行任务的分发到开发人员,测试人员后,开发人员和测试人员都可以通过登陆系统查看自身的任务。项目经理只可建立自身项目的任务。
BUG管理模块:该模块主要开始于测试人员。测试人员在进行系统模块测试时,途中可能会遇到一些不太理想的情况下,发现某些项目存在一些BUG问题的时候,便可以在这个模块中登记BUG,并指派给该模块的开发人员,相应的开发人员也可以登陆查看自己目前存在的BUG数量,当开发修复BUG后,该BUG负责人会指向提出BUG的人。不同BUG只可由该BUG负责人和创建人具有操作权限。
人员管理模块:各人员可通过人员列表查看当前系统各人员职责、手机号以及登陆时间。还有管理员添加修改员工功能,人员管理作为系统的基础必须项,也是比较复杂的一项,不同的人员职位不同,相应的所能执行的功能模块也是不同的,比如录入项目需求,就只能是项目经理才能有权限去录入需求。该系统总要分为5类人员:包括管理员,项目经理,产品经理,开发人员,测试人员。不同岗位有不同权限。admin整个系统项目经理拥有最高的权限,可管理全部模块。
系统管理模块:作为系统的管理模块,拥有系统日志功能和系统数据还原功能:日志功能记录系统人员登陆时间,包括登陆ip和时间,以及人员对系统执行增删改操作;系统数据还原功能包括项目,任务,BUG,文件,日志数据进行清除还原。
登陆模块:使用系统账号为公司人员创建账号。员工可使用账号,密码登陆系统,也可以进行企业微信扫码登陆,确保企业微信邮箱上填写对应的邮箱账号方可登陆系统,登陆根据人员权限不同,拥有的系统功能权限也会不同。还有各人员拥有修改密码功能。
图2.1 软件项目管理系统模块图
2.4系统用例图
软件项目管理系统根据功能划分五个用例图,分别如下
(1)系统管理员用例图:主要描述管理员维护用户,系统日志,系统数据还原。
(2)项目经理用例图:主要描述项目经理项目管理过程和项目任务分配。
(3)产品经理用例图:主要描述产品经理评估项目
(4)开发人员:主要描述开发人员开发任务维护过程和BUG修复过程。
(5)测试人员:主要描述测试人员测试任务维护和BUG管理过程。
2.4.1 系统管理员用例图
在系统管理员用例图中,系统管理员拥有添加用户,更新用户,删除用户,查看系统日志,系统数据还原功能。具体如图2.2所示系统管理员用例图。
图2.2 系统管理员用例图
2.4.2 系统管理员用例规约表
表2.1新建用户用例规约表
用例编号 Admin01
用例名称 新建用户
功能描述 新建用户,为员工创建系统权限账号,并赋予账号赋予职位,管理对应的功能模块
执行者 系统管理员
前置条件 系统管理员成功登录系统
后置条件 管理 管理员账号
涉众利益 管理员账号
基本路径 1.新建用户
1.1管理员使用电脑登陆系统
1.2调用用户新建接口
1.3输入用户信息
1.4保存完成后退出系统或进行其他操作。
拓展 1.账号已存在
1.1a:更改当前新建用户账号。
字段列表 管理员账号、管理员密码
业务规则 只有管理员可以新建用户
备注
表2.2更新用户用例规约表
用例编号 Admin02
用例名称 更新用户
功能描述 更新用户,管理员可更新该用户上司,职位以及手机号码信息。
执行者 系统管理员
前置条件 系统管理员成功登录系统
后置条件 管理 管理员账号
涉众利益 管理员账号
基本路径 1.更新用户
1.1管理员使用电脑登陆系统
1.2调用用户更新接口
1.3更改用户信息
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 管理员账号、管理员密码、
业务规则 只有管理员可以更新用户
备注
表2.3删除用户用例规约表
用例编号 Admin03
用例名称 删除用户
功能描述 删除用户,管理员删除用户。
执行者 系统管理员
前置条件 系统管理员成功登录系统
后置条件 管理 管理员账号
涉众利益 管理员账号
基本路径 1.删除
1.1管理员使用电脑登陆系统
1.2调用用户删除接口
1.3删除用户信息
1.4保存完成后退出系统或进行其他操作。
拓展 1.删除失败
1.1:用户存在项目工作
1.2: 用户存在任务工作
1.3: 用户存在BUG工作
字段列表 管理员账号、管理员密码、
业务规则 只有管理员可以删除用户
备注
表2.4查看系统日志用例规约表
用例编号 Admin04
用例名称 查看系统日志
功能描述 系统管理查看系统日志
执行者 系统管理员
前置条件 系统管理员成功登录系统
后置条件 管理 管理员账号
涉众利益 管理员账号
基本路径 1.查看系统日志
1.1管理员使用电脑登陆系统
1.2调用系统日志列表接口
1.3查看系统日志
1.4查看后退出系统或进行其他操作。
拓展
字段列表 管理员账号、管理员密码、
业务规则 只有管理员可以查看系统日志
备注
表2.5系统数据还原用例规约表
用例编号 Admin05
用例名称 系统数据还原
功能描述 系统数据还原,系统管理员进行系统数据清除。
执行者 系统管理员
前置条件 系统管理员成功登录系统
后置条件 管理 管理员账号
涉众利益 管理员账号
基本路径 1.系统数据还原
1.1管理员使用电脑登陆系统
1.2调用系统数据删除接口
1.3输入删除指令
1.4删除系统数据
1.5保存完成后退出系统或进行其他操作。
拓展 1…删除失败
1.1:删除指令错误
字段列表 管理员账号、管理员密码、
业务规则 只有管理员可以系统数据还原
备注
2.4.3 项目经理用例图
在项目经理用例图中,项目经理拥有项目录入,项目更新,项目删除,新增任务功能。具体如图2.3所示项目经理用例图
图2.3 项目经理用例图
2.4.4 项目经理用例规约表
表2-6项目录入用例规约表
用例编号 project01
用例名称 项目录入
功能描述 项目录入,项目经理进行项目录入,包括项目名称,公司等内容,以及上传项目需求文档。
执行者 项目经理
前置条件 项目经理成功登录系统
后置条件 管理 项目经理账号
涉众利益 项目经理账号
基本路径 1.项目录入
1.1项目经理使用电脑登陆系统
1.2调用项目录入接口
1.3填写项目信息
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 项目经理账号、项目经理密码、
业务规则 只有项目可以录入项目
备注
表2.7项目录入用例规约表
用例编号 project02
用例名称 项目更新
功能描述 项目更新,项目经理对评估后的项目进行信息更换时可使用此功能,更新项目状态,金额,工作量,级别,备注。
执行者 项目经理
前置条件 项目经理成功登录系统
后置条件 管理 项目经理账号
涉众利益 项目经理账号
基本路径 1.项目更新
1.1项目经理使用电脑登陆系统
1.2调用项目更新接口
1.3修改项目信息
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 项目经理账号、项目经理密码、
业务规则 只有项目经理可以录入项目
备注
表2.8项目删除用例规约表
用例编号 project03
用例名称 项目删除
功能描述 项目删除,项目经理进行项目删除,包括与项目有关的任务,BUG
执行者 项目经理
前置条件 项目经理成功登录系统
后置条件 管理 项目经理账号
涉众利益 项目经理账号
基本路径 1.项目删除
1.1项目经理使用电脑登陆系统
1.2调用项目删除接口
1.3删除项目
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 项目经理账号、项目经理密码、
业务规则 只有项目经理可以删除项目
备注
表2.9新增任务用例规约表
用例编号 project04
用例名称 新增任务
功能描述 新增任务,项目经理进行项目任务分配到开发人员和测试人员。
执行者 项目经理
前置条件 项目经理成功登录系统
后置条件 管理 项目经理账号
涉众利益 项目经理账号
基本路径 1.新增任务
1.1项目经理使用电脑登陆系统
1.2调用任务新增接口
1.3新增任务
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 项目经理账号、项目经理密码、
业务规则
备注
2.4.5 产品经理用例图
在产品经理用例图中,产品经理拥有项目评估功能。具体如图2.4所示项目经理用例图
图2.4 产品经理项目评估用例图
2.4.6 产品经理用例规约
表2.10新增任务用例规约表
用例编号 product01
用例名称 项目评估
功能描述 项目评估,产品经理对项目经理所录入的项目进行评估认定,填写项目工作量,交付时间,以及评估上传评估文档。
执行者 产品经理
前置条件 产品经理成功登录系统
后置条件 管理 产品经理账号
涉众利益 产品经理账号
基本路径 1.新增任务
1.1产品经理使用电脑登陆系统
1.2调用项目更新接口
1.3项目评估
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 项目经理账号、项目经理密码、
业务规则
备注
2.4.7 开发人员用例图
在开发人员用例图中,开发人员拥有新增任务,开始任务,更新任务,完成任务,删除任务,修复BUG功能。具体如图2.5所示开发人员用例图
2.5开发人员用例图
2.4.8 开发人员用例规约
表2.11新增任务用例规约表
用例编号 dev01
用例名称 新增任务
功能描述 新增任务,开发人员新建开发任务,填写任务信息,上传任务文档。
执行者 开发人员
前置条件 开发人员成功登录系统
后置条件 管理 开发人员账号
涉众利益 开发人员账号
基本路径 1.新增任务
1.1开发人员使用电脑登陆系统
1.2调用任务新增接口
1.3新增任务
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 开发人员账号、开发人员密码、
业务规则
备注
表2.12完成任务用例规约表
用例编号 dev02
用例名称 完成任务
功能描述 完成任务,开发人员完成自己任务。
执行者 开发人员
前置条件 开发人员成功登录系统
后置条件 管理 开发人员账号
涉众利益 开发人员账号
基本路径 1.新增任务
1.1开发人员使用电脑登陆系统
1.2调用任务更新接口
1.3完成任务
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 开发人员账号、开发人员密码、
业务规则
备注
图2.13完成任务用例规约表
用例编号 dev03
用例名称 更新任务
功能描述 更新任务,开发人员更新自己任务,修改当前任务状态,工作量,等级,任务文档。
执行者 开发人员
前置条件 开发人员成功登录系统
后置条件 管理 开发人员账号
涉众利益 开发人员账号
基本路径 1.更新任务
1.1开发人员使用电脑登陆系统
1.2调用任务更新接口
1.3更新任务
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 开发人员账号、开发人员密码、
业务规则
备注
表2.14删除任务用例规约表
用例编号 dev04
用例名称 删除任务
功能描述 删除任务,开发人员删除自己任务,以及任务相关BUG
执行者 开发人员
前置条件 开发人员成功登录系统
后置条件 管理 开发人员账号
涉众利益 开发人员账号
基本路径 1.删除任务
1.1开发人员使用电脑登陆系统
1.2调用任务删除接口
1.3删除任务
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 开发人员账号、开发人员密码、
业务规则
备注
表2.15修复BUG用例规约表
用例编号 dev05
用例名称 修复BUG
功能描述 修复BUG,开发人员修复测试人员针对测试任务所出现的BUG进行修复
执行者 开发人员
前置条件 开发人员成功登录系统
后置条件 管理 开发人员账号
涉众利益 开发人员账号
基本路径 1.修复BUG
1.1开发人员使用电脑登陆系统
1.2调用BUG更新接口
1.3更新BUG
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 开发人员账号、开发人员密码、
业务规则
备注
2.4.9 测试人员用例图
在测试人员用例图中,开发人员拥有新增BUG,开始测试任务,完成测试任务,删除BUG功能。具体如图2.6所示测试人员用例图
图2.6 测试人员用例图
2.4.10 测试人员用例规约
表2.16新增BUG用例规约表
用例编号 test01
用例名称 新增BUG
功能描述 新增BUG,测试人员对测试任务发现BUG并提给开发人员。
执行者 测试人员
前置条件 测试人员成功登录系统
后置条件 管理 测试人员账号
涉众利益 测试人员账号
基本路径 1.新增BUG
1.1测试人员使用电脑登陆系统
1.2调用BUG新增接口
1.3新增BUG
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 测试人员账号、测试人员密码、
业务规则
备注
表2.17开始测试任务用例规约表
用例编号 test02
用例名称 开始测试任务
功能描述 开始测试任务,测试人员开始测试任务。
执行者 测试人员
前置条件 测试人员成功登录系统
后置条件 管理 测试人员账号
涉众利益 测试人员账号
基本路径 1. 开始测试任务
1.1测试人员使用电脑登陆系统
1.2调用任务更新接口
1.3开始测试任务
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 测试人员账号、测试人员密码、
业务规则
备注
表2.18完成测试任务用例规约表
用例编号 test03
用例名称 完成测试任务
功能描述 完成测试任务,测试人员完成测试任务。
执行者 测试人员
前置条件 测试人员成功登录系统
后置条件 管理 测试人员账号
涉众利益 测试人员账号
基本路径 1. 完成测试任务
1.1测试人员使用电脑登陆系统
1.2调用任务更新接口
1.3完成测试任务
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 测试人员账号、测试人员密码、
业务规则
备注
表2.19BUG删除用例规约表
用例编号 test04
用例名称 BUG删除
功能描述 BUG删除,经过开发人员修复后的BUG可由测试人员删除。
执行者 测试人员
前置条件 测试人员成功登录系统
后置条件 管理 测试人员账号
涉众利益 测试人员账号
基本路径 1. 完成测试任务
1.1测试人员使用电脑登陆系统
1.2调用BUG删除接口
1.3 BUG删除
1.4保存完成后退出系统或进行其他操作。
拓展
字段列表 测试人员账号、测试人员密码、
业务规则
备注
2.5 系统类图
2.5.1 实体类图
图2.7 实体类关系图描述各个实体类直接关系。共有七个实体类图,包括User类,Job类,Project类,Task类,Bug类,Uploadfile类,Log类。
实体类说明如下:
(1)User用户类:用于存储用户账号信息。
(2)Job职位类:用于用户类job属性对应的职位名称。
(3)Project项目类:用于存储项目信息。
(4)Task任务类:用于存储任务信息。
(5)Bug类:用于存储BUG信息。
(6)Uplodafile上传文件类:用于存储用户所上传的文件信息。
(7)Log日志类:用于存储系统用户操作日志数据
图2.7 实体类关系图
3.1 系统功能设计
基于SpringBoot软件项目管理系统有六大模块,项目管理模块,任务管理模块,Bug管理模块,日志模块,登录模块,人员管理模块。
下面为各模块功能设计说明:
1.项目管理模块:通过管理员授权的项目经理权限的账号进行系统登录。实现项目的录入,登记相关信息并上传需求文档。而项目评估阶段可由管理员授权的产品经理权限的账号进行项目评估等级,并上传项目评估文档供给项目经理查看,再由项目经理参考项目评估文档进行任务划分,最终由项目经理进行项目完成交付功能。其中不同项目经理账号只可操作由自己建立的项目,评估项目也只可让项目产品评估负责人进行评估该项目。
2.任务管理模块:经过由项目经理进行新增的任务,开发人员和测试人员都可看到任务列表,还可以通过我的任务进行查看自己的任务工作。开发人员和测试人员也可自己新增任务。任务维护只可由任务负责人进行操作,包括任务开始、完成、删除、更新操作。
3.BUG管理模块:测试人员在进行测试任务时,发现任务BUG时可新增BUG到该任务模块的开发人员,开发人员可在我的BUG中查看到自己目前的BUG任务,进行修复,经修复后自动指派给BUG创建者,再由创建者进行BUG确认是否已经修复,若修复完成便可进行BUG删除。
4.人员管理模块:各人员可通过人员列表查看当前系统各人员职责、手机号以及登陆时间。通过管理员账号登陆,可进行用户维护功能,包括用户新增,更新用户信息和删除用户,确保只有管理员账号可操作此功能。
5.系统管理模块:作为系统的管理模块,只有管理员可操作此模块。通过管理员账号登陆进行系统日志查询各人员对系统的操作历史,包括项目,任务,BUG的增删改操作以及用户登陆系统记录;还有进行系统数据还原功能:包括项目,任务,BUG,文件,日志数据进行清除还原,还有操作时需输入删除指令,若指令错误立即退出系统。
6.登陆模块:员工可使用管理员授权的账号,密码登陆系统,也可以进行企业微信扫码登陆,确保扫码登录后的账号与账号登录为同一账号。各账号可修改自身账号密码。
3.2 数据库设计
系统数据库采用mysql数据库,建有七张表,包括用户表,职位表,项目表,任务表,BUG表,上传文件表,日志表。
1.user(用户表),表的详细数据见下表3-1 用户表:
表3-1用户表
列名 数据类型 是否为空 主外键 描述
id int Not null 主键 编号
account varchar(255) Not null 账号
name varchar(255) Not null 姓名
leader varchar(255) 上级
password varchar(255) Not null 密码
job int Not null 外键 职位
phone Varchar(255) 手机号码
lastLogin Datetime 最后登录时间
2.job(职位表),表的详细数据见下表3-2 职位表:
表3-2职位表
列名 数据类型 是否为空 主外键 描述
id int Not null 主键 编号
name varchar(255) Not null 名称
3.project(项目表),表的详细数据见下表3-3 项目表:
表3-3项目表
列名 数据类型 是否为空 主外键 描述
id int Not null 主键 编号
name varchar(255) Not null 名称
company varchar(255) Not null 公司
creator varchar(255) Not null 负责人
creatdate datetime Not null 创建时间
evaluator varchar(255) 评估者
evaluatedate datetime 评估时间
workload Datetime Not null 工作量
status Varchar(255) Not null 状态
earnings varchar(255) Not null 收益
finishby varchar(255) 交付者
finishdate datetime 交付时间
remark varchar(255) 备注
deadline varchar(255) 最后期限
grade varchar(255) 级别
updater varchar(255) 更新者
Updatedate datetime 更新时间
4.task(任务表),表的详细数据见下表3-4 任务表:
表3-4任务表
列名 数据类型 是否为空 主外键 描述
id int Not null 主键 编号
name varchar(255) Not null 名称
project int Not null 项目id
creator varchar(255) Not null 创建者
creatdate datetime Not null 创建时间
principal varchar(255) 负责人
type varchar(255) 任务类型
workload Datetime Not null 工作量
status Varchar(255) Not null 状态
startdate varchar(255) Not null 开始时间
finishdate datetime 完成时间
remark varchar(255) 备注
deadline varchar(255) 最后期限
grade varchar(255) 级别
updater varchar(255) 更新者
updatedate datetime 更新时间
5 BUG(BUG表),表的详细数据见下表3-5 BUG表:
表3-5 BUG表
列名 数据类型 是否为空 主外键 描述
id int Not null 主键 编号
name varchar(255) Not null 名称
project int Not null 项目id
task int Not null 任务id
creator varchar(255) Not null 创建者
creatdate datetime Not null 创建时间
principal varchar(255) 负责人
status Varchar(255) Not null 状态
startdate varchar(255) Not null 开始时间
finishdate datetime 完成时间
remark varchar(255) 备注
deadline varchar(255) 最后期限
grade varchar(255) 级别
updater varchar(255) 更新者
updatedate datetime 更新时间
6 上传文件表(uploadfile表),表的详细数据见下表3-6 上传文件表:
表3-6 上传文件表
列名 数据类型 是否为空 主外键 描述
id int Not null 主键 编号
name varchar(255) Not null 名称
classify varchar(255) Not null 文件类型
filetype varchar(255) Not null 文件归属
filetypeid int Not null 归属id
uploader varchar(255) Not null 上传者
uploaddate datetime Not null 上传时间
filepath Varchar(255) Not null 文件路径
updater varchar(255) 更新者
updatedate datetime 更新时间
7 日志表(log表),表的详细数据见下表3-7上传日志表:
表3-7 日志表
列名 数据类型 是否为空 主外键 描述
id int Not null 主键 编号
ip varchar(255) Not null IP地址
account varchar(255) Not null 账号
name varchar(255) Not null 姓名
action varchar(255) Not null 动作
actiondate datetime Not null 动作时间
4.1 登录界面实现
基于SpringBoot软件项目管理系统服务器开启后,用户可直接访问系统登录页面。登录模块拥有两种登录方式,包括账号登陆和扫码登陆。
4.1.1 账号登陆
1.点击账号登录会弹出账号输入框和密码输入框,如图4.1 账号登录界面所示。
图4.1 账号登录界面
图4.2 账号密码错误提示
代码实现:
4.1.2 扫码登陆
1.点击扫码登录会弹出企业微信二维码后,使用手机企业微信进行扫码登录。如图4.2账号登录界面所示
图4.3 企业微信扫码登录界面
代码实现:1.可下载企业微信扫码js代码并引入到项目中,调用window.WwLogin函数便可将二维码嵌入到某个div标签中
3.打开手机企业微信使用扫一扫进行扫码登陆
图4.4 企业微信扫码确认
4.扫码登录失败提示分为非本企业员工如图4.5权限不足和未授权账号如图4.6 扫码失败
如图4.6 扫码失败
4.2 主页界面实现
通过用户成功登录后可进入到主要界面。主页界面包括用户姓名,职位,多个菜单栏以及各未交付项目、未完成任务、未修复BUG统计,修改密码和注销按钮以及待评估项目列表。如图4.7 主页界面所示
4.2.1 项目管理菜单
1.点击左侧项目管理,便可展开项目管理菜单,其中含有项目列表、项目录入、项目评估、项目详情四个小菜单。如图4.8 项目管理菜单界面所示
图4.8 项目管理菜单界面
2.点击项目列表会进入项目列表页面,可看到当前所有项目和列表查询功能和导出Excel功能。如图4.9 项目列表界面所示。
图4.9 项目列表界面
图4.10 项目录入界面
代码如下:
图4.11 项目详情界面
4.2.2 任务管理菜单
图4.13 任务管理菜单界面
2.点击任务列表会进入任务列表页面,可看到当前所有任务和列表查询功能和导出Excel功能。如图4.14任务列表界面所示。
图4.17 我的任务界面
4.2.3 BUG管理菜单
图4.18 BUG管理菜单界面
2.点击BUG列表会进入BUG列表页面,可看到当前所有BUG和列表查询功能和导出Excel功能。如图4.19BUG列表界面所示。
图4.22 我的BUG界面
4.2.4 用户管理菜单
图4.23 用户管理菜单界面
2.点击用户列表会进入用户列表页面,可看到当前所有用户和列表查询功能和导出Excel功能。如图4.24用户列表界面所示。
图4.25 添加用户界面
代码如下:function saveUser() {
var account=$(“#account”).val();
if (account==‘’){
$.messager.show({
timeout: 1000,
msg: ‘请填写账号’,
showType: ‘slide’
});
KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲account').focus…(“#password”).val();
if(password.length<6){
$.messager.show({
timeout: 1000,
msg: ‘密码最少6位’,
showType: ‘slide’
});
$(‘#password’).val(‘’)
$(“password”).focus();
return;}
if(!passwordRex.test(password)){
$.messager.show({
timeout: 1000,
msg: ‘格式不正确’,
showType: ‘slide’
});
$(‘#password’).val(‘’)
KaTeX parse error: Expected 'EOF', got '}' at position 42: … return;}̲ var ve…(“#verifyPassword”).val();
if (verifyPassword!=password){
$.messager.show({
timeout: 1000,
msg: ‘两次密码不正确’,
showType: ‘slide’
});
$(‘#verifyPassword’).val(‘’)
KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲verifyPassword'…(“#name”).val();
if (name==‘’){
$.messager.show({
timeout: 1000,
msg: ‘请填写姓名’,
showType: ‘slide’
});
$(‘#name’).focus()
return;
}
var leader = $(“#principal”).find(“option:selected”).val();
var jobs = $(“#position”).find(“option:selected”).val();
var phone = $(“#phone”).val();
if (!commonUtils.verifiPhone(phone)){
return;
}
$.post(‘user/addUser’,{account:account,password:hex_md5(password),name:name,leader:leader,jobs:jobs,phone:phone},function (data) {
if (data==‘true’){
$.messager.show({
timeout: 1000,
msg: ‘新建用户成功’,
showType: ‘slide’
});
$(‘#account’).val(‘’);
$(‘#password’).val(‘’);
$(‘#verifyPassword’).val(‘’);
$(‘#name’).val(‘’);
$(‘#phone’).val(‘’);
}
})
}
4.2.5 密码修改,注销按钮
1.点击主页右上角密码修改按钮可进入到密码修改界面,如图4.27密码修改界面所示
图4.27 密码修改界面
代码如下:
var passwordRex=/^(?:\d+|[a-zA-Z]+|[!@# %^&*]+) ///密码格式验证 纯数字,纯字母,纯特殊字符
function changePassword() {
var oldPassword=$("#oldPassword").val();
if (oldPassword==''){
$.messager.show({
timeout: 1000,
msg: '原密码为空',
showType: 'slide'
});
$('#oldPassword').focus()
return;
}
var newPassword=$("#newPassword").val();
if(newPassword.length<6){
$.messager.show({
timeout: 1000,
msg: '密码最少6位',
showType: 'slide'
});
$('#newPassword').val('')
$("#newPassword").focus();
return;}
if(!passwordRex.test(newPassword)){
$.messager.show({
timeout: 1000,
msg: '格式不正确',
showType: 'slide'
});
$('#newPassword').val('')
$("#newPassword").focus();
return;}
if (oldPassword==newPassword){
$.messager.show({
timeout: 1000,
msg: '新密码不能与旧密码相同',
showType: 'slide'
});
$('#newPassword').val('')
$("#newPassword").focus();
$("#verifyPassword").val('')
return;
}
var verifyPassword=$("#verifyPassword").val();
if (verifyPassword!=newPassword){
$.messager.show({
timeout: 1000,
msg: '两次密码不正确',
showType: 'slide'
});
$('#verifyPassword').val('')
$('#verifyPassword').focus()
return;
}
var id=JSON.parse(window.sessionStorage.getItem("user")).id
$.post('user/changePassword',{oldPassword:hex_md5($('#oldPassword').val()),newPassword:hex_md5($('#newPassword').val()),id:id},function (data) {
if (data=='true'){
$.messager.show({
timeout: 1000,
msg: '密码修改成功',
showType: 'slide'
});
window.location.href='login'
}else {
$.messager.show({
timeout: 1000,
msg: '原密码错误',
showType: 'slide'
});
$('#oldPassword').focus()
$('#oldPassword').val('')
$('#newPassword').val('')
$('#verifyPassword').val('')
}
})
}
2.点击主页右上角注销按钮便可退出当前系统,回到登录界面,如图4.28 注销按钮。
5.1 系统测试目的
系统进行测试的目的为了保证系统可以无错误异常地运行供用户使用,避免用户在系统使用时出现崩溃。因此要对系统进行测试,找出系统中Bug,bug可能存在于数据错误、功能异常、编码多个方面,系统需要在这些方面上进行测试尽量找到系统的bug并进行修复。在系统设计和实现过程中测试出来的bug需要在系统运行中进行测试,所以系统测试是软件开发中必不可少的部分。
5.2 系统测试意义
目前处于高科技时代,软件市场非常庞大,在如此庞大的市场中如何确保自身软件的成功之道首先是用户的使用体验,好的软件甚至不应该存在任何一个bug,因为这样会影响用户的体验。因此在软件发布前需要做一系列的软件测试,找出系统中存在的bug漏洞,有利于保证软件的用户体验,而且还可以保护软件系统的安全性。
5.3 测试用例及结果
用例编号 用例名称 测试目的 测试结果
T-1 非本企业扫码登陆 测试用户使用非本企业进行扫码登陆是否可以登陆系统 用户需为此企业才能进行扫码,否则提示权限不足
T-2 本企业未授权账号 测试用户在管理员未授权账号进行扫码登录是否可以登录系统 提示登录失败,请联系管理员
T-3 非项目经理账号进行项目录入功能 测试没有项目经理权限的账号是否可以新增项目 点击项目录入的时候,提示没有权限
T-4 非产品经理账号进行项目评估功能 测试没有产品经理权限的账号是否可以评估项目 点击项目评估的时候,提示没有权限
T-5 不是本任务的负责人或者创建者是否可以更新任务或者删除任务 测试是否不是此任务的负责人或者创建者可以更新或者删除任务 在任务详情页点击更新按钮和删除按钮提示没有权限
T-6 不是本BUG的负责人或者创建者是否可以更新任务或者删除任务 测试是否不是此BUG的负责人或者创建者可以更新或者删除BUG 在BUG详情页点击更新按钮和删除按钮提示没有权限
T-7 不是管理员账号是否可以进行用户维护 测试不是管理员账号是否可以对用户信息进行增删改操作 提示没有权限
T-8 不是管理员账号是否可以使用系统管理模块功能 测试不是管理员账号是否可以使用系统管理模块功能 提示没有权限
T-9 在管理员账号不输入指令是否可以使用还原功能 测试在管理员账号是否可以不输入指令是否可以使用还原功能 密码错误,直接退出当前系统返回登录界面
经过这一段时间的不懈努力,我的毕业设计——基于SpringBoot软件项目管理系统经过测试顺利,系统开发成功。系统页面采用BootStrap提供的开源项目,也属于目前比较主流的B/S多层体系结构的web系统,,供用户可以简单使用,对于开源公司的免费资源表示非常感激。JAVA语言仍是目前各个公司都占比比较大的一种编程语言,出现比较早,具有非常稳定性,我使用的是JAVA1.8,而采用SpringBoot轻量级框架考虑到此框架相对于SSM框架,没有太多的配置文件,通过SpringBoot和Maven整合可以减少配置文件,方便搭建好项目框架,而且SpringBoot自带有Tomcat服务器,使用在IDEA软件上就可以轻易运行,数据库选择mysql的原因是因为目前mysql也是作为主流的数据库,功能也比较完善,INNODB引擎支持事务。基于SpringBoot软件项目管理系统在这些工具整合下可以完美运行。
[1][美]Cay S.Horstmann Core Java Volume Ⅰ 机械工业出版社,2008-6
[2][美] Cay S.Horstmann Core Java Volume Ⅱ 机械工业出版社,2008-6
[3][美]Bruce Eckel Thinking in Java(Fourth Edition) 机械工业出版社 2007-6
[4]考特莱尔Cotterell.软件项目管理(原书第4版)机械工业出版社 2007-4
[5][美]克雷格·沃斯(译者雪丰)Springboot实战 人民邮电出版社2016-9
[6]汪云飞 JAVAEE开发的颠覆者 电子工业出版社 2016-3
[7]周志明 深入理解Java虚拟机 机械工业出版社 2011-6
[8][美]达克特 JavaScript & jQuery交互式Web前端开发 清华大学出版社2015-6
[9]Michele Sliger / Stacia Broderick 译者(初悦欣 / 亢江妹)软件项目管理与[9]敏捷方法 机械工业出版社2010-6
[10]李刚 Java疯狂讲义 电子工业出版社 2008-10
[11]传智播客高教产品研发部 Java基础入门 清华大学出版社 2014-5
[12]韩晓霞 Linux操作系统 哈尔滨工业大学出版社 2013-1
[13]杨弘平 UML2基础、建模与设计编程 清华大学出版社 2015-10
[14]崔洋 贺亚茹 mysql数据库应用从入门到精通 2013-1
[15][美] 德罗兹德克(译者周响)数据结构与算法:Java语言版 机械工业出版社 [15]2006-7
白驹过隙,转眼之间,我的本科生活和学习即将画上一个完整的句号,我人生的另一船帆也即将展开,起航向未知的社会前进。我感慨万千。在本次毕业设计与论文撰写中,我要特别感谢唐盛平导师的一路相随与悉心指导,解答我的疑惑,纠正我的不当之处。本论文从立题之初、设计之时到撰稿之终,方方面面皆离不开导师的支持与指导。在此我要感谢我的导师对我的关怀。同时也感谢与本论文相关的各位专家与学者的研究成果,给予我启发与帮助。
同时,我要感谢所有教育过我、指导过我、帮助过我的老师们,在我迷茫之时可以为我解答问题,去除疑惑,让我不断在获得知识的道路上不再受阻。俗话说“苦海无涯苦作舟”,不单单是我付出的苦,更有老师们为我所付出的苦,所以非常感谢在大学生活中各个关怀过,帮助过我的老师们。还有感谢大学生活里的那群如挚友般的同学们,感谢你们平时对我的帮助、关怀。
最后祝各位老师、同学们生活一帆风顺、事事如意。