谢立新 | 2021软件代码开发技术作业四 | 需求改进&系统设计
| 这个作业属于哪个课程 | 软件代码开发技术 |
|---|---|
| 这个作业要求在哪里 | 需求改进&系统设计 |
| 这个作业的目标 | 1、熟悉领域驱动设计实践 |
| 2、熟悉测试计划编写 |
一、需求改进
功能需求
1、服务提供者功能
| 需求编号 | 需求内容 |
|---|---|
| 1.1 | 注册成为该系统的新用户 |
| 1.2 | 修改自己的个人信息 |
| 1.3 | 修改自己的时间表 |
| 1.4 | 查询系统中的任务 |
| 1.5 | 接收系统中的任务 |
| 1.6 | 查询自己接收的服务 |
| 1.7 | 与客户签订合同 |
| 1.8 | 查询与客户签订的合同 |
2、客户功能
| 需求编号 | 需求内容 |
|---|---|
| 2.1 | 注册成为该系统的新用户 |
| 2.2 | 修改自己的个人信息 |
| 2.3 | 在系统中发布新任务 |
| 2.4 | 查询/修改自己发布的任务 |
| 2.5 | 查询自由职业者 |
| 2.6 | 与服务提供者签订合同 |
| 2.7 | 查询与服务提供者签订的合同 |
3、系统管理员功能
| 需求编号 | 需求内容 |
|---|---|
| 3.1 | 修改自由职业者和客户的账户信息 |
| 3.2 | 查询系统中的自由职业者 |
| 3.3 | 查询系统中的客户 |
| 3.4 | 查询/修改自由职业者的时间表 |
| 3.5 | 查询/修改系统中的任务 |
| 3.6 | 查询/修改系统中的合同 |
| 3.7 | 审计系统行为日志 |
二、系统设计
1、战略设计
领域:交易服务
子域:
(1)交易服务核心子域
(2)管理用户子域
(3)审计日志子域
领域划分如下:

- 交易服务核心子域:完成服务任务的发布和接受,以及合同的签订
- 管理用户子域:服务提供者和客户的管理
- 审计日志子域:系统日志管理
架构分层:
基于依赖倒置原则的架构分层:

六边形架构:

项目模块结构:
| 模块 | 说明 |
|---|---|
| 注册登录模块 | 实现注册和登录验证功能 |
| 账户信息管理模块 | 实现对用户的信息的查询和修改功能 |
| 服务任务管理模块 | 实现新任务的发布、已发布任务的修改、接受已发布任务的功能 |
| 时间表管理模块 | 实现接受任务后的时间表的创建、修改功能 |
| 合同管理模块 | 实现合同的签订和修改功能 |
| 日志管理模块 | 实现日志审计功能 |
2、战术设计
实体:由属性和行为组成,具有唯一标识
Freelancer,Client,Project,Contract
值对象:没有唯一标识,具有可度量或可描述,并满足不变性的对象
- Contact:联系方式
- Schedule:时间表
领域服务:领域服务表示一个无状态的操作,它用于实现特定于某个领域的任务
- 用户注册和登录
- 管理用户信息
- 审计日志
领域事件:通常将领域事件用于维护事件的一致性,这样可以消除两阶段提交(全局事务)
聚合:聚合是一组相关对象的组合,作为一个整体被外界访问,聚合根是这个聚合的根节点
工厂:工厂提供一个创建对象的接口,该接口封装了所有创建对象的复杂操作过程
三、开发任务计划
用户功能模块依赖于注册登录模块,最先开发注册登录模块。
服务任务的发布、查询、修改均需要在用户模块完成后进行。
| 编号 | 任务 | 对应需求 | 计划开始时间 | 计划结束时间 |
|---|---|---|---|---|
| 1 | 注册功能模块 | 1.1、2.1 | 2021-05-16 | 2021-05-17 |
| 2 | 账号信息管理 | 1.2、2.2、3.1 | 2021-05-17 | 2021-05-19 |
| 3 | 查询用户信息 | 2.5、3.2、3.3 | 2021-05-19 | 2021-05-21 |
| 4 | 发布、修改服务任务 | 2.3、2.4 | 2021-05-21 | 2021-05-23 |
| 5 | 查询服务任务 | 1.4、1.6、2.4、3.5 | 2021-05-23 | 2021-05-24 |
| 6 | 接受服务任务 | 1.5 | 2021-05-24 | 2021-05-25 |
| 7 | 管理时间表 | 1.3、3.4 | 2021-05-25 | 2021-05-27 |
| 8 | 签订合同 | 1.7、2.6 | 2021-05-27 | 2021-05-27 |
| 9 | 查询合同 | 1.8、2.7、3.6 | 2021-05-27 | 2021-05-28 |
| 10 | 审计日志 | 3.7 | 2021-05-28 | 2021-05-29 |
模块分解:
| 模块名称 | 任务名称 | 耗费工时(h) |
|---|---|---|
| 注册登录模块 | 注册功能 | 5 |
| 登录验证功能 | 5 | |
| 账户信息管理模块 | 查询账户信息功能 | 4 |
| 修改账户信息功能 | 6 | |
| 服务任务管理模块 | 发布新任务 | 6 |
| 修改任务 | 4 | |
| 接受任务 | 3 | |
| 时间表管理模块 | 新建时间表项功能 | 6 |
| 修改时间表项功能 | 4 | |
| 合同管理模块 | 签订合同功能 | 6 |
| 查询合同功能 | 3 | |
| 日志管理模块 | 审计日志功能 | 4 |
甘特图:

四、测试计划
1、测试环境
操作系统:windows 10 【8G内存+ 512G固态硬盘】
浏览器:chrome、microsoft edge、firefox
数据库软件:mysql5.7
2、测试任务安排
测试内容:服务出租管理系统
测试人:谢立新
测试时间:项目开发流程全过程
3、测试时间表
| 编号 | 测试项 | 测试内容 | 期望输出 | 开始时间 | 结束时间 |
|---|---|---|---|---|---|
| 1 | 自由职业者/客户注册功能 | 输入个人信息进行注册 | 未注册则注册成功,已注册提示失败 | 2021-05-17 | 2021-05-17 |
| 2 | 自由职业者/客户登录功能 | 输入账户密码进行登录 | 账号密码匹配则登录成功,否则提示失败 | 2021-05-17 | 2021-05-18 |
| 3 | 自由职业者/客户的个人信息管理功能 | 对个人信息进行修改 | 成功修改 | 2021-05-19 | 2021-05-20 |
| 4 | 查询自由职业者功能 | 选择各种条件查询自由职业者 | 有相应信息则查询成功并展示 | 2021-05-20 | 2021-05-21 |
| 5 | 查询客户功能 | 选择各种条件查询客户 | 有相应信息则查询成功并展示 | 2021-05-21 | 2021-05-22 |
| 6 | 发布服务任务功能 | 客户发布新的任务 | 成功发布 | 2021-05-22 | 2021-05-23 |
| 7 | 修改服务任务功能 | 客户对已发布的任务进行修改 | 成功修改 | 2021-05-23 | 2021-05-24 |
| 8 | 查询服务任务功能 | 选择各种条件查询服务任务 | 有相应信息则查询成功并展示 | 2021-05-24 | 2021-05-24 |
| 9 | 接受服务任务功能 | 自由职业者作为服务提供者接受系统中的服务任务 | 接受成功 | 2021-05-25 | 2021-05-26 |
| 10 | 管理时间表功能 | 接受任务后时间表自动添加任务,自由职业者对时间表进行修改 | 可对时间表进行修改 | 2021-05-26 | 2021-05-28 |
| 11 | 签订合同功能 | 自由职业者和客户进行线上合同签订 | 成功签订并持久化到数据库 | 2021-05-27 | 2021-05-27 |
| 12 | 查询合同功能 | 选择各种条件查询合同 | 有相应信息则查询成功并展示 | 2021-05-27 | 2021-05-28 |
| 13 | 审计日志功能 | 对系统的行为进行审计 | 能记录系统的每一个行为 | 2021-05-28 | 2021-05-29 |
| 14 | 系统测试 | 与系统需求规格说明书作比较 | 满足需求规格说明书的功能需求和非功能需求 | 2021-05-27 | 2021-05-29 |
| 15 | 验收测试 | 检验系统是否符合预期的各项要求以及用户能否接受 | 系统符合预期,用户接受 | 2021-05-28 | 2021-05-29 |

浙公网安备 33010602011771号