这个作业属于哪个课程 | 软件代码开发技术 |
---|---|
这个作业要求在哪里 | 需求改进&系统设计 |
这个作业的目标 | 1. 深入理解DDD战略设计 |
2. 改进需求,完成系统设计 | |
3.完善计划,制定开发任务计划与测试计划 |
1. 需求改进
新增将系统划分成几个子域如下:
- 用户子域:校验用户身份,识别用户权限。
- 信息操作子域:对自由职业者信息、项目信息、客户信息、时间表信息进行增删改,改变数据信息。
- 信息搜索子域:对自由职业者信息、项目信息、客户信息、时间表信息进行查询,不改变数据信息。
- 信息校验子域:判断信息操作是否有问题,过滤非法信息。
- 审计子域:汇总安全日志信息,生成审计日志。
领域类图:
2. 系统设计
2.1 业务简介
- 管理自由职业者信息、项目信息、客户信息、时间表信息,系统管理员可以对其增删查改
- 操作信息时生成对应安全日志,汇总数据生成审计日志,审计员可以操作审计日志
2.2 战略设计
领域:本系统中的领域为信息管理领域。信息管理,即CRUD是本领域的核心。
子域:本系统分为以下子域:用户子域、信息操作子域、信息搜索子域、信息校验子域与审计子域。
限界上下文:本系统需求非常简单,本质就是一个管理系统,领域拆分如图:
- 用户子域:校验用户身份,识别用户权限。
- 信息操作子域:对自由职业者信息、项目信息、客户信息、时间表信息进行增删改,改变数据信息。
- 信息搜索子域:对自由职业者信息、项目信息、客户信息、时间表信息进行查询,不改变数据信息。
- 信息校验子域:判断信息操作是否有问题,过滤非法信息。
- 审计子域:汇总安全日志信息,生成审计日志。
架构分层:分层架构的一个重要原则是——每层只能与位于其下方的层发生聚合。
2.3 战术设计
实体:实体类定义如下
实体名 | 类名 |
---|---|
用户 | User |
自由职业者 | Freelance |
项目 | Project |
客户 | Client |
时间表 | Schedule |
值对象:值对象定义如下
值对象名 | 类名 | 作用 |
---|---|---|
地址 | Address | 操作具体地址,划分省市区等等 |
邮箱 | 校验邮箱 | |
类型 | Type | 操作类型,区分不同实体不同类型 |
领域服务:领域服务表示一个无状态的操作,它用于实现特定于某个领域的任务。本系统中的领域服务为:用户认证、审计日志生成。
- 用户认证:识别用户,提供认证细节。
- 审计日志生成:汇总信息,生成审计日志。
领域事件:将领域中发生的活动建模成一系列的离散事件,每个事件都用领域对象来表示。本系统只是一个简单的信息管理系统,不需要领域事件。
3. 开发任务计划
3.1 代码开发任务计划
3.1.1 各模块开发时间和顺序
顺序编号 | 模块任务 | 开发时间 |
---|---|---|
1 | 自由职业者信息管理模块实现 | 5个工作日 |
2 | 普通客户信息管理模块实现 | 3个工作日 |
3 | 项目信息管理模块实现 | 3个工作日 |
4 | 时间表管理模块实现 | 3个工作日 |
5 | 审计日志模块实现 | 3个工作日 |
3.1.2 模块分解
模块名 | 分解后的任务 | 开发时间 |
---|---|---|
自由职业者信息管理模块 | 实现CRUD接口或映射 | 8个小时 |
实现前后端数据交互 | 12个小时 | |
数据过滤,数据校验 | 8个小时 | |
普通客户信息管理模块实现 | 实现CRUD接口或映射 | 4个小时 |
实现前后端数据交互 | 8个小时 | |
数据过滤,数据校验 | 4个小时 | |
项目信息管理模块实现 | 实现CRUD接口或映射 | 4个小时 |
实现前后端数据交互 | 8个小时 | |
数据过滤,数据校验 | 4个小时 | |
时间表管理模块实现 | 实现CRUD接口或映射 | 4个小时 |
实现前后端数据交互 | 8个小时 | |
数据过滤,数据校验 | 4个小时 | |
审计日志模块实现 | 汇总信息,生成审计日志 | 16小时 |
3.1.3 代码开发甘特图
4. 测试计划
4.1 引言
4.1.1 项目背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。
本系统为一个客户管理系统。
4.2 任务概述
4.2.1 测试范围
本系统所有源码以及系统网页.
4.2.2 测试目标
发现错误,修复错误,最终得到一个质量过关的、功能完善的、可交付的用户管理系统。
4.3 测试策略
4.3.1 测试人员
开发者个人
4.3.2 测试方法
单元测试、集成测试、系统测试与验收测试。
4.3.3 测试计划
测试名称 | 具体任务 | 持续时间 |
---|---|---|
单元测试 | 自由职业者信息管理模块CRUD单元测试 | 0.5个工作日 |
普通客户信息管理模块CRUD单元测试 | 0.5个工作日 | |
项目信息管理模块CRUD单元测试 | 0.5个工作日 | |
时间表管理模块CRUD单元测试 | 0.5个工作日 | |
集成测试 | 模块集成测试 | 1个工作日 |
审计模块测试 | 1个工作日 | |
系统测试与测试总结 | 系统测试与测试总结 | 2个工作日 |
验收测试 | 验收测试 | 2个工作日 |
4.4 测试资源
4.4.1 硬件资源需求
一台可正常工作的win10操作系统笔记本电脑。
4.4.2 软件资源需求
需要对系统源码进行单元测试与集成测试,需要系统网页进行系统测试与验收测试。
需要不同的浏览器运行打开网页进行测试,浏览器包括:IE、Chrome、Firefox等等。
4.4.3 测试环境需求
需要对应web项目开发所在环境、测试所需的包。
4.4.4 测试人员需求
开发者个人