作业四
| 这个作业属于哪个课程 | 2022软件代码开发技术 |
|---|---|
| 这个作业要求在哪里 | 作业四 |
| 这个作业的目标 | 1.改进需求 2.学习领域驱动的系统设计方法 |
需求规格说明
需求说明
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多客户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
系统特性
经分析,为满足所提出的需求,本系统应具备以下系统特性:
- 管理与查询自由职业者信息
- 管理与查询项目信息
- 管理与查询客户信息
- 管理自由职业者时间表
- 管理自由职业者联系方式
管理与查询自由职业者信息
对自由职业者的信息进行管理与查询。
管理与查询项目信息
对项目的信息进行管理与查询。
管理与查询客户信息
对自由职业者的信息进行管理与查询。
管理自由职业者时间表
对合同中自由职业者的时间表信息进行管理。
管理自由职业者联系方式
对自由职业者的联系方式进行管理。
用例设计
结合先前的系统特性设计,本系统的用例设计如下图所示:

系统设计
结构分层
本系统的结构可分为四层,采用依赖倒置原则将各层结构如下图组合:

子领域划分
本系统可划分为以下子领域:
- 客户子领域
- 项目子领域
- 自由职业者子领域
客户子领域
负责客户信息的管理与查找。
项目子领域
负责项目信息的管理。
自由职业者子领域
负责自由职业者的信息管理、查询,以及对自由职业者日程和联系方式的管理。
实体与值对象
本系统中主要实体有客户(Customer)、项目(Project)和自由职业者(Freelancer),主要的值对象则有日程(Schedule)和联系方式(Contact),它们的基本定义如下所示:
//实体
class Freelancer
{
public string Id {get;}
public string Name {get; set;}
public string Types {get;}
public List<Schedule> ScheduleTable {get;}
public List<Contact> Contacts {get;}
...
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string Type { get; set; }
...
}
class Project
{
public string Id {get;}
public string Name {get; set;}
public string Info {get; set;}
public string Type {get;}
...
}
//值对象
class Schedule
{
public sting Info {get;}
public Time StartTime {get;}
public Time EndTime {get;}
}
class Contact
{
public String Type {get;}
public String Detail {get;}
}
任务计划
本系统的开发划分为六个模块,各个模块的开发计划如下表所示:
| 模块 | 优先级 | 依赖关系 | 开发时间 | |
|---|---|---|---|---|
| 基础设施模块 | 最高 | 13h | ||
| 搭建数据库框架 | 5h | |||
| 配置网络协议 | 8h | |||
| 客户系统模块 | 高 | 基础设施模块 | 13h | |
| 管理客户信息 | 7h | |||
| 搜索客户分类 | 6h | |||
| 自由工作者系统模块 | 高 | 基础设施模块 | 19h | |
| 管理自由工作者信息 | 7h | |||
| 搜索自由工作者分类 | 6h | |||
| 管理联系方式 | 6h | |||
| 项目系统模块 | 中 | 基础设施模块 客户系统模块 |
11h | |
| 管理项目信息 | 6h | |||
| 搜索项目分类 | 5h | |||
| 时间表模块 | 低 | 基础设施模块 项目系统模块 自由工作者模块 |
8h | |
| 管理时间表 | 8h | |||
| 客户界面模块 | 最低 | 客户系统模块 项目信息模块 自由工作者模块 |
27h | |
| 信息管理界面 | 4h | |||
| 查询客户分类界面 | 5h | |||
| 查询自由职业者分类界面 | 5h | |||
| 查询项目分类界面 | 5h | |||
| 日程表维护界面 | 8h |
甘特图

测试计划
本系统的测试流程主要包含三个阶段,各阶段的测试计划如下表所示:
| 测试阶段 | 测试人员 | 用时 | |
|---|---|---|---|
| 单元测试 | 对各个模块的功能进行测试 | 程序人员 | 30h |
| 集成测试 | 集成各个模块后进行测试 | 测试人员 | 15h |
| 系统测试 | 对系统进行总体性的测试 | 测试人员 | 15h |