1. 需求改进
1.1 项目背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。
1.2 需求改进
- 管理员可以输入自由职业者的关键字标签进行自由职业者分类
 
- 用户可以对自己发布的项目进行修改
 
- 自由职业者可以按分类搜索项目
 
1.3 领域建模

1.4 完善需求建模

2. 系统设计
2.1 分层结构

2.2 子领域与限界上下文

- 自由职业者领域:负责实现与自由职业者有关的功能,例如职业者的增删查改操作。
 
- 用户领域:负责实现与用户有关的功能,例如用户登录、注册等操作。
 
- 项目子域:完成项目的增删查改,用户项目的发布包括项目的要求等操作。
 
- 自由职业者时间表子域:完成自由职业者时间表增删查改操作。
 
- 审计子域:完成生成审计日志功能。
 
2.3 实体与值对象
|  实体 | 
 值对象 | 
|  自由职业者表(客户表) | 
 客户编号、姓名、时间表、联系渠道、客户类别 | 
|  平台用户表 | 
 用户编号、用户名、密码、客户需求、服务需求 | 
|  项目信息表 | 
  项目编号、项目名称、项目类别、项目内容、项目开始时间、项目结束时间、项目生成时间 | 
|  合同信息表 | 
 合同编号、合同名称、合同内容、合同日期 | 
|  自由职业者时间表 | 
 空闲时间编号、空闲时间、对应客户编号 | 
2.4 领域服务
- 用户登录注册功能
 
- 自由职业者管理功能
 
- 项目管理功能
 
- 自由职业者时间表管理功能
 
- 审计功能
 
3. 代码开发任务计划
3.1 项目时间安排表
|  所属流程 | 
 预计工期 | 
 预计开始时间 | 
 预计结束时间 | 
|  需求分析 | 
  4 | 
  2022/4/2 | 
  2022/4/5 | 
|  总体设计 | 
  5 | 
  2022/4/6 | 
 2022/4/10 | 
|  详细设计 | 
  7 | 
 2022/4/11 | 
 2022/4/17 | 
|  功能实现 | 
 13 | 
 2022/4/18 | 
 2022/5/4 | 
|  系统测试 | 
  3 | 
 2022/5/9 | 
 2022/5/11 | 
|  系统交付 | 
 1 | 
 2022/5/12 | 
 2022/5/13 | 
3.2 子模块分解
|  模块名称 | 
 预期活动工期(天) | 
 预计开始时间 | 
 预计完成时间 | 
|  用户模块 | 
  3 | 
  2022/4/18 | 
 2022/4/20 | 
|  自由职业者管理模块 | 
 3 | 
  2022/4/21 | 
 2022/4/25 | 
|  项目及合同管理模块 | 
 2 | 
 2022/4/26 | 
 2022/4/27 | 
|  自由职业者时间表模块 | 
  3 | 
 2022/4/28 | 
  2022/5/2 | 
|  审计日志功能 | 
 2 | 
 2022/5/3 | 
 2022/5/4 | 
3.3 模块任务分解
|  模块名称 | 
 任务名称 | 
 预期活动工期(天) | 
 预计开始时间 | 
 预计完成时间 | 
|  用户模块 | 
 注册 | 
 1 | 
 2022/4/18 | 
 2022/4/18 | 
 | 
 登录 | 
 1 | 
 2022/4/19 | 
 2022/4/19 | 
 | 
 修改个人信息 | 
 1 | 
 2022/4/20 | 
 2022/4/20 | 
|  自由职业者管理 | 
 增加或删除信息 | 
 1 | 
 2022/4/21 | 
 2022/4/21 | 
 | 
 修改信息 | 
 1 | 
  2022/4/22 | 
 2022/4/22 | 
 | 
 查询信息 | 
 1 | 
  2022/4/25 | 
 2022/4/25 | 
|  项目及合同管理 | 
 签订 | 
 1 | 
 2022/4/26 | 
 2022/4/26 | 
 | 
 取消 | 
 1 | 
2022/4/27 | 
 2022/4/27 | 
|  自由职业者时间表 | 
 增加或删除时间表信息 | 
 1 | 
 2022/4/28 | 
 2022/4/28 | 
 | 
 修改时间表信息 | 
 1 | 
  2022/4/29 | 
 2022/4/29 | 
 | 
 查询时间表信息 | 
 1 | 
  2022/5/2 | 
 2022/5/2 | 
|  审计日志功能 | 
 生成安全日志 | 
 1 | 
 2022/5/3 | 
  2022/5/3 | 
 | 
 查看项目审计 | 
 1 | 
 2022/5/4 | 
 2022/5/4 | 
3.4 甘特图

4. 测试计划
4.1 测试目的
保证代码能够正常运行,及时发现系统的错误。
4.2 测试范围
上述模块的主要功能。
4.3 测试方法
主要使用黑盒测试的方法进行测试。
4.4 测试安排
|  测试模块 | 
 测试内容 | 
 测试类型 | 
 开始时间 | 
 结束时间 | 
|  用户模块 | 
 整个管理模块 | 
 黑盒测试,集成测试 | 
 2022/4/18 | 
 2022/4/20 | 
|  登录 | 
 能否登录 | 
  黑盒测试,单元测试 | 
  2022/4/18 | 
  2022/4/18 | 
|  注册 | 
 能否注册,密码是否符合规范 | 
  黑盒测试,单元测试 | 
 2022/4/19 | 
 2022/4/19 | 
|  个人信息 | 
 能否修改个人信息,空值处理 | 
 黑盒测试,单元测试 | 
 2022/4/20 | 
 2022/4/20 | 
|  自由职业者 | 
 整个管理模块 | 
 黑盒测试,集成测试 | 
  2022/4/21 | 
  2022/4/25 | 
|  添加信息 | 
 能否手动录入信息或删除人员 | 
  黑盒测试,单元测试 | 
 2022/4/21 | 
  2022/4/21 | 
|  修改信息 | 
  能否修改个人信息,空值处理 | 
  黑盒测试,单元测试 | 
  2022/4/22 | 
 2022/4/22 | 
|  查询信息 | 
 能否查看信息(不包括密码) | 
  黑盒测试,单元测试 | 
  2022/4/25 | 
  2022/4/25 | 
|  项目及合同管理 | 
 整个管理模块 | 
 黑盒测试,集成测试 | 
 2022/4/26 | 
 2022/4/27 | 
|  合同管理 | 
 能否签订,取消合同 | 
 黑盒测试,单元测试 | 
 2022/4/26 | 
 2022/4/26 | 
|  项目信息管理 | 
 添加项目,修改项目信息是否正常 | 
 黑盒测试,单元测试 | 
 2022/4/27 | 
 2022/4/27 | 
|  自由职业者时间表 | 
 整个时间表模块 | 
 黑盒测试,集成测试 | 
 2022/4/28 | 
 2022/5/2 | 
|  增加或删除时间表 | 
能否手动录入时间表信息或删除 | 
 黑盒测试,单元测试 | 
 2022/4/28 | 
 2022/4/28 | 
|  修改时间表信息 | 
 能否修改时间表信息,空值处理 | 
 黑盒测试,单元测试 | 
 2022/4/29 | 
 2022/4/29 | 
|  查询时间表信息 | 
 能否查看时间表信息 | 
 黑盒测试,单元测试 | 
  2022/5/2 | 
  2022/5/2 | 
|  审计日志功能 | 
 整个审计日志模块 | 
  黑盒测试,集成测试 | 
 2022/5/3 | 
 2022/5/4 | 
|  生成安全日志 | 
系统能否在做任何操作之后生成安全日志信息 | 
黑盒测试,单元测试 | 
2022/5/3 | 
  2022/5/3 | 
|  查看审计信息 | 
 能否正常显示审计信息 | 
 黑盒测试,单元测试 | 
 2022/5/4 | 
  2022/5/4 | 
5. 截图
