代码开发、测试及发布
| 这个作业属于哪个课程 | 2021软件代码开发技术 |
|---|---|
| 这个作业要求在哪里 | 代码开发、测试及发布 |
| 这个作业的目标 | 运用面向领域建模的方法,改善需求规格说明以及完成系统设计 |
一、代码开发
1.开发过程
| 日期 | 昨天已完成的工作 | 今天计划完成的工作 | 工作中遇到的困难 |
|---|---|---|---|
| 5.24-5.27 | 无 | 复习前端知识HTML、CSS、JS | 由于学习时间短,知识较难消化理解 |
| 5.28-6.1 | 大致完成前端方面的学习 | 对Spring、SpringMVC、Mybatis框架进行大致的了解 | 同上 |
| 6.2 | 大致完成框架学习 | 搭建开发环境,提前准备开发环境所需要的依赖,建立数据库 | 无 |
| 6.3 | 完成搭建项目环境、数据库建立并连接 | 完成前端静态部分页面开发 | 对前端框架不熟悉开发缓慢 |
| 6.4 | 实现大部分页面 | 完成剩余页面开发,初步实现领域层的开发 | 对领域开发理解不深刻,耗费较多时间 |
| 6.5 | 实现领域层开发 | 实现登录功能、客户模块 | 前后端传输数据出大问题 |
| 6.6 | 完成客户管理模块 | 实现项目管理模块、自由职业者管理模块 | mapper.xml文件出bug |
| 6.7 | 实现项目管理、自由职业者管理模块 | 进行项目的集成测试 | 发现不少漏洞 |
2.项目燃尽图
(1)燃尽图是用于表示剩余工作量的工作图表,由横轴(X)和纵轴(Y)组成,横轴表示工期,纵轴表示剩余工作量。
(2)实线表示期望的工作进度,虚线记录实际的工作进度,把工作拆分成若干工作要点,完成一个就减去一个,以此来衡量工作距离全部完成的剩余时间。
(3)燃尽图是由团队成员共同维护的信息,提供的是实时客观的任务完成情况数据,根据它可以得到团队乃至整体产品的客观进度。通过使用燃尽图,避免了口头汇报进度不准确的问题,可以使进度风险尽早、客观的展现出来,促进团队和整个组织尽早采取应对措施。用好燃尽图,可以实时提供准确的进度信息,提高了整个团队、项目和组织的透明度。
(4)项目燃尽图发布如下:

3.代码/文档签入记录
(1)代码签入记录:

(2)对应的签入代码内容记录详见Github的commit记录:
https://github.com/Dioikawa/ServiceRental/commits/main
(3)编码规范Code Review:
1.明确方法功能,精确(而不是近似)地实现方法设计。如果一个功能将在多处实现,即使只有两行代码,也应该编写方法实现。
2.应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责,缺省是由方法调用者负责。
3.明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组相近的功能。说明:划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的单一性。
4.所有的数据类必须重载toString() 方法,返回该类有意义的内容。说明:父类如果实现了比较合理的toString() , 子类可以继承不必再重写。
5.数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close()。
6.异常捕获后,如果不对该异常进行处理,则应该记录日志(针对后台)。
7.自己抛出的异常必须要填写详细的描述信息。
8. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。说明:一个系统或者模块应该统一规划异常类型和返回码的含义。但是不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。
9.避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量来代替。
10.数组声明的时候使用 int[] index ,而不要使用 int index[] 。说明:
11.异常捕获尽量不要直接 catch (Exception ex) ,应该把异常细分处理。
12.不要使用难懂的技巧性很高的语句,除非很有必要时。说明:高技巧语句不等于高效率的程序,实际上程序的效率关键在于算法。
4.项目程序截图
项目文件结构

登录界面

客户管理模块

添加功能

修改功能

二、测试
1.在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个?
| Bug类型 | Bug数量 |
|---|---|
| 修复的bug | 5 |
| 不能重现的bug | 2 |
| 这个产品就是这样设计的,不是bug | 0 |
| 没有能力修复,将来也不打算修复 | 0 |
| 这个bug的确应该修复,但是没有时间在这个版本修复,延迟到下一个版本修复 | 3 |
2.场景测试
(1)你预期不同的用户会怎样使用你的软件?
- 客户:能够正常登录进入系统并管理个人信息、项目
- 自由职业者:能够正常登录进入系统管理个人信息
- 管理员:能够正常登录进入系统管理所有信息
(2)他们有什么需求和目标?
- 客户:管理个人信息,申请项目并进行管理、要求信息资料隐私度高
- 自由职业者:管理个人信息,向客户申请项目的合作、要求信息资料隐私度高
- 管理员:管理客户、自由职业者、项目信息、安全要求较高
(3)你的软件提供的功能怎么组合起来满足他们的需要?
对登录密码进行输入加密验证保证登录安全,将所有信息存储在数据库中防止信息丢失。
通过对数据库的各种操作获得个人信息。
3、测试矩阵
测试平台以及硬件配置

| 测试项 | 检验点 | 预期结果 | Chrome浏览器 | 世界之窗 | 360浏览器 | Microsoft Edge | Internet Explorer11 |
| 界面样式 | 文本样式 | 显示正常 | |||||
| 按钮样式 | 正常显示 | ||||||
| 文本框样式 | 显示正常 | ||||||
| 数据表格样式 | 能加载出头部/侧部工具栏/数据表格内部数据 | ||||||
| 分页下拉框样式 | 正确显示当前页数 | ||||||
| 查询类型下拉框 | 正确加载查询类型 | ||||||
| 弹出层表单 | 正常显示信息 |
| 测试功能 | 输入/输出操作 | 预期结果 | Chrome浏览器 | 世界之窗 | 360浏览器 | Microsoft Edge | Internet Explorer11 |
| 登录功能 | 不输入用户名和密码,点击登录 | 弹窗显示"必填项不能为空" | |||||
| 仅输入账号或密码,点击登录 | 弹窗显示"必填项不能为空" | ||||||
| 输入账号和密码,其中一项正确,另一项错误,点击登录 | 弹窗显示"用户名密码错误,登录失败" | ||||||
| 输入正确的账号和密码,点击登录 | 登录成功,进入后台管理界面 | ||||||
| 查询功能 | 不输入任何信息,点击搜索 | 数据表格返回所有信息 | |||||
| 仅选择类型,点击搜索 | 数据表格返回对应类型的数据 | ||||||
| 输入正确的名称,点击搜索 | 数据表格返回对应名称的数据 | ||||||
| 输入错误的名称,点击搜索 | 数据表格不返回任何信息 | ||||||
| 输入正确的ID,点击搜索 | 数据表格返回对应ID的数据 | ||||||
| 输入错误的ID,点击搜索 | 数据表格不返回任何信息 | ||||||
| 导出数据功能 | 点击导出数据按钮,选择导出到Excel文件 | 弹出保存文件窗口 | |||||
| 打印功能 | 点击打印按钮 | 弹出打印文件窗口 | |||||
| 添加客户功能 | 点击"添加客户"按钮,不输入任何信息,点击提交 | 弹出提示窗口"请选择客户类型" | |||||
| 选择任意客户类型,点击提交 | 弹出提示窗口"请输入客户姓名" | ||||||
| 选择任意客户类型,输入任意客户姓名,点击提交 | 弹出提示窗口"请输入正确的手机号" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入错误的手机号码,点击提交 | 弹出提示窗口"请输入正确的手机号" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入正确的手机号码,点击提交 | 弹出提示窗口"邮箱格式不正确" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入正确的手机号码,输入错误邮箱格式,点击提交 | 弹出提示窗口"邮箱格式不正确" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入正确的手机号码,输入正确邮箱格式,点击提交 | 弹出提示窗口"添加成功" | ||||||
| 修改客户功能 | 点击"编辑"按钮,不输入任何信息,点击提交 | 弹出提示窗口"请选择客户类型" | |||||
| 选择任意客户类型,点击提交 | 弹出提示窗口"请输入客户姓名" | ||||||
| 选择任意客户类型,输入任意客户姓名,点击提交 | 弹出提示窗口"请输入正确的手机号" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入错误的手机号码,点击提交 | 弹出提示窗口"请输入正确的手机号" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入正确的手机号码,点击提交 | 弹出提示窗口"邮箱格式不正确" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入正确的手机号码,输入错误邮箱格式,点击提交 | 弹出提示窗口"邮箱格式不正确" | ||||||
| 任意选择客户类型,输入正确格式的客户姓名,输入正确的手机号码,输入正确邮箱格式,点击提交 | 弹出提示窗口"修改成功" | ||||||
| 删除客户功能 | 点击"删除"按钮,再在弹窗中点击,点击确定 | 弹出提示窗口"删除成功" |
4、出口条件
- 能够至少实现50人同时登录使用系统不崩溃
- 基本实现软件需求规格说明书的功能
- 能够正常使用所有功能不出现异常
三、alpha版本发布
1、功能介绍
(1)登录功能
用户通过登录功能进入系统,用户名以及密码都是必填项。登录过程中密码会加密传输到后台数据库进行验证

(2)客户信息查询
进入系统后可针对性地输入搜索信息搜索客户。

其中客户分类会根据数据库中的信息加载下拉框,客户姓名可模糊搜索

(3)修改/删除功能
可对搜索出来的信息进行修改或删除,也可以多选进行批量删除

修改页面会回显客户信息方便修改

多选进行批量删除

(4)添加功能
点击添加客户后可进行客户的添加

弹出的添加表单

2、修改的缺陷
本项目为初次开发,没有原有的项目基础,故没有修改缺陷
3、环境要求
该服务租赁网站为Web网页,下面对各大主流浏览器分别说明。
| 浏览器类型 | 使用情况说明 |
|---|---|
| Chrome浏览器 | 排版正常、能够使用所有功能 |
| 世界之窗 | 登录功能正常,数据表单在7.0以下版本的世界之窗中无法显示 |
| 360浏览器 | 排版正常、能够实现预期功能 |
| Microsoft Edge | 排版正常、能够实现预期功能 |
| Internet Explorer11 | 分页样式加载不全,不支持数据导出功能,排版正常,其余功能能够正常使用 |
| 如果需要本地使用该项目 | |
| 环境要求:JDK8以上、Tomcat8.0以上、Maven3.6.1以上 |
4、安装方法
本次开发为Web网页开发,因此无须安装,只需对该网站进行访问即可进行使用。
如果需要将项目下载可在Github仓库上下载。环境要求在上一条中有说明。
5、问题与限制
问题:由于开发时间短、开发过程比较匆忙。该网站的Alpha版本的页面跳转过于繁琐,需要手动输入网址进入另外的管理模块,而且可以通过绕过登录界面直接输入后台页面网址进入后台,没有设置拦截器进行拦截。
限制:由于使用的前端框架Layui版本较新,在一些版本较旧的浏览器中可能会出现样式显示不全,某些辅助功能不能使用的问题。导致项目兼容性不强。同时代码优化程度较差,多人使用的过程中可能会出现卡顿。
6、发布方式及发布地址
发布方式:通过在博客园中发布博客发布
发布地址:因为没有部署到公网服务器上、因此想要访问需要在Github仓库中本地下载
Github地址:https://github.com/Dioikawa/ServiceRental

浙公网安备 33010602011771号