这个作业属于哪个课程 | 软件代码开发技术 |
---|---|
这个作业要求在哪里 | 综合系统开发----需求分析 |
这个作业的目标 | 1. 学习运用UML、学习领域驱动设计方法和软件设计模式等知识 |
2. 学习使用git增量式管理代码、文档,实现文档的版本化和增量式管理 | |
3.撰写需求规格说明书,完成项名开发计划 |
需求规格说明书
1.引言
1.1 项目背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。
1.2 目的
为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。
对项目需求进行分析建模,完成客户管理系统的需求规格说明书。
2.需求分析
2.1 用户分析
本系统用户为服务出租公司的出租管理人员,负责接收出租项目、安排员工与服务商的工作。
出租管理人员需要使用本系统管理客户与时间表,维护系统信息并对相关信息快速检索。
人员 | 职责 |
---|---|
系统管理员 | 管理与维护系统中自由职业者信息、项目信息、客户信息与时间表信息 |
审计员 | 查看系统信息与操作日志,维护审计日志,对审计日志进行增删查改 |
2.2 功能需求
- 自由职业者信息增删查改,存储联系自由职业者不同渠道的联系方式
- 项目信息增删查改
- 客户信息增删查改
- 维护合同中自由职业者的时间表,时间表信息增删查改
- 维护审计日志
2.3 数据需求
输入数据 | 存储数据 | 输出信息 |
---|---|---|
自由职业者信息 | 自由职业者信息 | 审计日志 |
项目信息 | 项目信息 | 审计日志 |
客户信息 | 客户信息 | 审计日志 |
时间表信息 | 时间表信息 | 审计日志 |
2.4 技术需求
- 自由职业者信息、项目信息、客户信息、时间表信息必须实时更新并记录操作日志与审计日志
- 通过权限区分系统管理员与审计员,其中系统管理员无法操作审计日志;审计员无法修改系统管理员维护的信息。
3.领域驱动设计
3.1 定义领域对象
- 自由职业者 : Freelance
- 项目 : Project
- 客户 : Client
- 时间表 : Schedule
3.2 定义领域对象的属性
3.3 定义领域模型
4.分析建模
4.1 数据流图
0层数据流图:
系统数据流图:
4.2 用例模型
系统用例图:
4.3 实体联系模型
1.实体及其属性
实体 | 属性 |
---|---|
自由职业者 | 自由职业者编号、自由职业者姓名、自由职业者电话、自由职业者邮箱、自由职业者地址、自由职业者类型 |
项目 | 项目编号、项目名称、项目内容、项目类型 |
客户 | 客户编号、客户姓名、客户电话、客户邮箱、客户地址、客户类型 |
时间表 | 时间表编号、自由职业者编号、开始时间、结束时间 |
2.实体间联系
- 自由职业者与时间表一对多
- 自由职业者与项目多对多
- 项目与客户多对多
3.系统 E-R 图:
4.4 对象模型
系统类图:
任务计划
1. 项目时间安排表
流程 | 任务 | 预计完成时间 | 预计开始时间 | 预计结束时间 | 矫正后完成时间 | 校正后结束时间 |
---|---|---|---|---|---|---|
需求分析 | 需求获取、分析、建模 | 10个工作日 | 2021/4/23 | 2021/5/2 | 10个工作日 | 2021/5/2 |
总体设计 | 架构设计 | 3个工作日 | 2021/5/3 | 2021/5/5 | 3个工作日 | 2021/5/5 |
单元模块设计 | 5个工作日 | 2021/5/6 | 2021/5/10 | 5个工作日 | 2021/5/10 | |
实现 | 接口设计实现 | 5个工作日 | 2021/5/11 | 2021/5/15 | 5个工作日 | 2021/5/15 |
自由职业者信息管理模块实现 | 5个工作日 | 2021/5/16 | 2021/5/20 | 5个工作日 | 2021/5/20 | |
普通客户信息管理模块实现 | 5个工作日 | 2021/5/21 | 2021/5/25 | 3个工作日 | 2021/5/23 | |
项目信息管理模块实现 | 5个工作日 | 2021/5/26 | 2021/5/30 | 3个工作日 | 2021/5/26 | |
时间表管理模块实现 | 5个工作日 | 2021/5/31 | 2021/6/4 | 3个工作日 | 2021/5/29 | |
审计日志模块实现 | 5个工作日 | 2021/6/5 | 2021/6/9 | 5个工作日 | 2021/6/3 | |
测试 | 单元测试、集成测试、系统测试 | 6个工作日 | 2021/6/10 | 2021/6/15 | 6个工作日 | 2021/6/9 |
测试总结 | 1个工作日 | 2021/6/16 | 2021/6/16 | 1个工作日 | 2021/6/10 | |
交付 | 验收测试 | 2个工作日 | 2021/6/17 | 2021/6/18 | 2个工作日 | 2021/6/12 |
产品交付 | 1个工作日 | 2021/6/19 | 2021/6/19 | 1个工作日 | 2021/6/13 |
2.矫正计算方法
-
需求分析、接口和单元模块设计约定约等于预计时间;
-
根据模块之间功能相似性,在完成自由职业者信息模块后可以缩减用户信息管理、项目信息管理和时间表管理模块40%时间,其余模块预计时间不变;
-
测试时间约等于预计时间。
Github仓库链接
https://github.com/CLSgGhost/ClientManagementSystem