作业四
这个作业属于哪个课程 | 2022软件代码开发技术 |
---|---|
这个作业的要求在哪里 | 需求改进&系统设计 |
这个作业的目标 | 运用DDD方法修改上次的博文 |
项目背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
需求改进
根据DDD方法分析项目背景
首先需要找到领域,根据上文分析,这个web解决方案中用户主要是公司的员工(管理员),主要进行的工作是管理,核心要求中提到的要求:搜索自由职业者、储存联系方式、搜索项目分类、等功能无一不以管理为核心,因此可以判断管理即为此项目的核心。
回顾上一次博文
根据上面的分析结果以及对上一次作业的回顾发现了以下的问题
- 并未严格按照项目背景中的要求进行分析
- 自作主张地为系统添加了没有提到的客户和自由职业者作为系统用户
经分析发现问题较为严重,应重新进行需求分析才能较为合理地进行接下来的活动
功能需求
用户
-
员工(管理员)
- 员工登陆;员工登陆后可以进行以下操作
- 日志管理:员工可以通过查看日志来帮助服务器的维护和服务器的紧急恢复
- 表单维护:员工可以通过检查表单生成信息来确认时间表是否发生冲突
- 表单查询:员工可以通过搜索表单进行客户信息的查询操作
- 合作表单:员工可以多人同时在线对表单进行操作
系统模块图
实体联系图
技术需求
- 系统须支持多用户工作
- 系统可以自动备份重要信息,也可以手动备份
- 系统可生成安全和审计日志以供维护
系统设计
领域划分
首先分析各项功能
- 搜索自由职业者,搜索项目分类,搜索客户分类,三个功能均为搜索,因此归为一类。
- 维护合同中自由职业者地时间表,维护抽象为审查和修改。
- 储存自由职业者联系方式
再分析其技术需求
- 多用户工作,此项需求可通过多用户登陆完成
- 系统可备份,包括手动和自动
- 系统生成安全和审计日志
根据上面的分析,可将此系统的功能分为简单的增删改查四个功能以及备份和日志维护功能,而增删改查可进一步抽象为管理功能,下面将上面的分析划分为各个领域,不难发现管理为核心子域:
- 管理核心子域:实现对各个表单的增删改查能力
- 备份子域:定时备份重要数据的能力
- 日志子域:记录用户的各项操作的能力
再加上通用的
- 用户子域:完成用户登录校验等通用能力
经过上面的分析我们可以得到领域划分图:
架构分层
此处参照给出的参考链接的架构进行架构分层
实体和值对象
- 实体:管理员
- 管理
- 登陆
- 备份
- id
- password
其中管理包含了对数据库的增删改查操作。
- 值对象:
- 员工
- id
- 姓名
- 年龄
- 性别
- 类型
- 联系方式
- 客户
- id
- 姓名
- 联系方式
- 合同
- 时间
- 地点
- 金额
- 甲方
- 乙方
- 是否完成
- 时间表
- 时间
- 员工id
- 员工姓名
- 员工
领域服务、领域应用
- 领域服务:备份,日志生成
- 应用服务:管理服务,登陆
代码开发任务计划
各模块开发时间和顺序
模块名 | 开始时间 |
---|---|
管理模块 | 2022/04/10 |
数据模块 | 2022/04/11 |
各模块进一步分解
模块名 | 开始时间 | 预计工时/h |
---|---|---|
用户子域 | 2022/04/10 | 5 |
管理子域 | 2022/04/11 | 8 |
日志子域 | 2022/04/12 | 4 |
备份子域 | 2022/04/12 | 4 |
开发进程的甘特图
其中在编码进行一天后软件测试工作开始,做到与开发几乎同步进行。
测试计划
- 为了保证项目的安全以及稳定性而进行测试
- 在这里主要进行单元测试和集成测试,其中单元测试将安排在相应单元编码完成后的后一天进行,集成测试将安排在项目代码开发完成后进行
- 测试方法,白盒测试,黑盒测试,压力测试
- 测试计划安排表
被测试模块名 | 开始时间 | 预计工时/h | 测试方法 | 负责人 |
---|---|---|---|---|
用户子域 | 2022/04/11 | 5 | 白盒测试 | 邓泓涛 |
管理子域 | 2022/04/12 | 8 | 白盒测试 | 邓泓涛 |
日志子域 | 2022/04/13 | 4 | 黑盒测试 | 邓泓涛 |
备份子域 | 2022/04/13 | 4 | 黑盒测试 | 邓泓涛 |
压力测试 | 2022/05/7 | 10 | 自动化测试 | 邓泓涛 |