作业三 综合系统开发----需求分析
| 这个作业属于哪个程 | https://edu.cnblogs.com/campus/gdgy/2022softwarecodedevelopmenttechnology |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/2022softwarecodedevelopmenttechnology/homework/12494 |
| 这个作业的目标 | 1、熟悉使用uml进行需求分析; 2、 使用领域驱动模型进行需求分析; 3、熟悉使用软件设计模式; 4、熟悉Github的使用。 |
一、软件开发背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
二、领域驱动设计
1、领域驱动过程
基本概念:领域驱动设计作为一个针对大型复杂业务系统的领域建模方法体系(不仅限于面向对象的领 域建模),它改变了传统软件开发工程师针对数据库建模的方式,通过面向领域的思维方式,将要 解决的业务概念和业务规则等内容提炼为领域知识,然后借由不同的建模范式将这些领域知识抽象 为能够反映真实世界的领域模型。

2、uml进行领域模型设计
1)首先获取用例描述
- 按项目分类搜索服务项目
- 用于存储联系自由职业者的不同渠道的解决方案
- 按服务请求分类搜索服务请求
- 签署合同
- 自由职业者发布服务项目
- 用户发布服务请求
- 维护合同中自由职业者的时间表
- 管理员管理项目
- 管理员管理合同
2)寻找概念类
寻找到的概念类:项目、自由职业者、客户、用户、时间表
3)添加关联
- 用户发布项目
- 自由职业者填写时间表
- 自由职业者提供某个项目服务
- 客户分为自由职业者和用户
![]()
4)添加属性
得到最终设计的领域模型。

三、需求规格说明书
需求规格说明书
1、 问题定义
-
项目名称:出租服务管理系统
-
问题概述:
一家公司提供服务出租,公司自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案,通过出租服务管理系统实现公司出租服务相关信息的管理以及提供公司信息的安全性。
2、 系统需求:
- 数据需求
| 输入数据 | 数据存储 | 输出数据 |
|---|---|---|
| 自由职业者信息 | 自由职业者信息 | 审计日志 |
| 普通客户信息 | 普通客户信息 | |
| 时间表 | 时间表 | |
| 项目信息 | 项目信息 |
-
功能性需求
能对自由职业者信息、普通客户信息、项目信息以及时间表进行接受处理并产生审计信息,随时更新自由职业者信息和普通用户信息以及时间表,能够搜索自由职业者分类、搜索项目分类、搜索客户分类以及维护合同中自由职业者的时间表。 -
技术需求
- 自由职业者信息、普通用户信息、项目信息、时间表必须随时更新。
- 主存要有至少30T存储空间的数据库存储自由职业者信息、普通用户信息、项目信息、时间表
- 通过限制用户权限,只有拥有权限的特定用户才能访问系统内的相关数据信息以保证存储信息的不外泄
3、 用例模型
(1)用例图

(2)用例描述
| 描述项 | 说明 |
|---|---|
| 用例名称 | 查询服务项目 |
| 用例描述 | 用户查询自己需要的对应分类的服务项目 |
| 参与者 | 用户 |
| 前置条件 | 用户输入项目信息、时间段 |
| 后置条件 | 系统返回并显示根据用户输入信息进行筛选后的服务项目结果 |
4、 数据库设计
- 实体
| 实体 | 属性 |
|---|---|
| 自由职业者 | 自由职业者编号、姓名、联系方式、类型、地址 |
| 时间表 | 编号、自由职业者编号、时间表时间 |
| 用户 | 用户编号、姓名、联系方式、类型、地址 |
| 项目 | 项目编号、项目内容、项目实际、项目类型 |
- 联系
- 一个自由职业者对应一个时间表,一个时间表对于一个自由职业者,一对一关系
- 一个自由自由者对于多个项目,一个项目对于多个自由职业者,多对多关系
- 一个用户对于多个项目,一个项目对应多个用户,多对多关系
-
实体联系图
![]()
-
数据库逻辑结构设计
| 字段 | 主码 | 外码 | 码 |
|---|---|---|---|
| 自由职业者 | 自由职业者编号 | 自由职业者编号,自由职业者姓名,自由职业者联系方式,自由职业者地址,自由职业者类别、时间表编号 | |
| 普通用户 | 普通用户编号 | 普通用户编号,普通用户姓名,普通用户联系方式,普通用户地址,普通用户类别 | |
| 项目 | 项目编号 | 自由职业者编号,普通用户编号 | 项目编号,项目内容,项目时间,项目类别,自由职业者编号,普通用户编号 |
| 时间表 | 时间表编号 | 自由职业者编号 | 时间表编号,时间表时间,自由职业者编号 |
5、 数据字典
1.数据项
| 名字 | 别名 | 简述 | 定义 | 位置 |
|---|---|---|---|---|
| 自由职业者编号 | 服务商编号 | 用于识别自由职业者特有的代码 | 自由职业者编号=1{数字}3 自由职业者信息、审计日志、时间表、项目信息 | |
| 普通客户编号 | 用于识别普通客户特有的代码 | 普通客户编号=1{数字}3 普通用户信息、审计日志、项目信息 | ||
| 时间表编号 | 用于识别时间表特有的代码 | 时间表编号=1{数字}3 | 时间表信息 | |
| 项目编号 | 用于识别项目特有的代码 | 项目编号=1{数字}3 | 项目信息、审计日志 | |
| 自由职业者姓名 | 服务商姓名 | 自由职业者特有的名称 | 自由职业者姓名=1{英文字母}6 | 自由职业者信息、时间表 |
| 普通客户姓名 | 普通客户特有的名称 | 普通客户姓名=1{英文字母}6 | 普通用户信息、项目信息 | |
| 项目时间 | 项目建立的时间 | 项目时间=4{数字}4+1{汉字字符年}1+1{数字}2+1{汉字字符月}1 | 项目信息 | |
| 项目内容 | 项目的详细描述 | 项目内容=2{汉字字符}30 | 项目信息、审计日志 | |
| 自由职业者类型 | 服务商类型 | 自由职业者特有的类别 | 自由职业者类型=[A级\B级] | 自由职业者信息 |
| 普通用户类型 | 普通用户特有的类别 | 普通用户类型=[会员\非会员] | 普通用户信息 | |
| 项目类型 | 项目特有的类别 | 项目类型=[紧急\一般] | 项目信息 | |
| 时间表时间 | 时间表对应自由职业者的时间 | 时间表时间=4{数字}4+1{汉字字符年}1+1{数字}2+1{汉字字符月}1 | 时间表信息 | |
| 自由职业者电话 | 服务商电话 | 自由职业者特有的联系号码 自由职业者电话=11{数字}11 | 自由职业者信息 | |
| 自由职业者地址 | 服务商地址 | 自由职业者特有的居住位置 自由职业者地址=2{中文字符}30 | 自由职业者信息 | |
| 普通用户电话 | 普通用户特有的联系号码 | 普通用户电话=11{数字}11 | 普通用户信息 | |
| 普通用户地址 | 普通用户特有的居住位置 | 普通用户地址=2{中文字符}30 | 普通用户信息 |
(3)数据存储:
| 名字 | 别名 | 简述 | 定义 | 更新频率 |
|---|---|---|---|---|
| 自由职业者信息 | 服务商信息 | 自由职业者特有的个人资料 | 自由职业者信息=自由职业者编号+自由职业者姓名+自由职业者电话+自由职业者地址+自由职业者类别 | 随时 |
| 普通用户信息 | 普通用户特有的个人资料 | 普通用户信息=普通用户编号+普通用户姓名+普通用户电话+普通用户地址+普通用户类别 | 随时 | |
| 时间表 | 自由职业者对应的特有的个人时间安排表 | 时间表=自由职业者编号+时间表编号+时间表时间 | 随时 | |
| 项目信息 | 项目特有的资料信息 | 项目信息=项目编号+项目内容+项目时间+项目类别 | 随时 |
6、 对象模型

7、 总体设计
-
系统流程图
![]()
-
结构图
![]()
8、 项目时间安排
- 项目计划
| 所属流程 | 步骤 | 预计完成时间 | 预计开始时间 | 预计结束时间 | 矫正后完成时间 | 校正后结束时间 |
|---|---|---|---|---|---|---|
| 需求分析 | 需求分析 | 10个工作日 | 2022/4/23 | 2022/5/3 | 6个工作日 | 2022/4/29 |
| 总体设计 | 框架设计完成 | 3个工作日 | 2022/5/4 | 2022/5/7 | 3个工作日 | 2022/5/2 |
| 总体设计 | 单元模块设计完成 | 5个工作日 | 2022/5/8 | 2022/5/13 | 5个工作日 | 2022/5/7 |
| 实现 | 接口设计实现 | 5个工作日 | 2022/5/14 | 2022/5/19 | 2022/5/20 | 8个工作日 |
| 实现 | 自由职业者信息管理模块完成 | 10个工作日 | 2022/5/20 | 2022/5/30 | 6个工作日 | 2022/5/20 |
| 实现 | 普通客户信息管理模块完成 | 10个工作日 | 2022/5/31 | 2022/6/9 | 6个工作日 | 2022/5/26 |
| 实现 | 项目信息管理模块完成 | 10个工作日 | 2022/6/10 | 2022/6/20 | 6个工作日 | 2022/5/31 |
| 实现 | 时间表管理模块完成 | 10个工作日 | 2022/6/21 | 2022/6/30 | 5个工作日 | 2022/6/6 |
| 实现 | 打印审计日志模块完成 | 5个工作日 | 2022/7/1 | 2022/7/6 | 3个工作日 | 2022/6/11 |
| 测试 | 集成测试完成 | 3个工作日 | 2022/7/7 | 2022/7/10 | 3个工作日 | 2022/6/14 |
| 测试 | 系统测试完成 | 3个工作日 | 2022/7/11 | 2022/7/14 | 2个工作日 | 2022/6/18 |
| 测试 | 测试总结完成 | 1个工作日 | 2022/7/15 | 2022/7/16 | 2个工作日 | 2022/6/18 |
| 测试 | 测试完成 | 0个工作日 | 2022/7/16 | 2022/7/16 | 1个工作日 | 2022/6/21 |
| 交付 | 验收测试完成 | 3个工作日 | 2022/7/17 | 2022/7/20 | 3个工作日 | 2022/6/21 |
- 矫正计算方法
需求分析时间按60%时间计算,接口和单元模块设计约定等于预计时间,根据模块之间功能相似性,在完成自由职业者信息模块后可以缩减普通用户信息管理、
项目信息管理和时间表管理模块80%时间,打印模块则近似看成等于预计时间,测试时间根据系统复杂度约等于预计时间。
四、截图
1、Github截图
Github地址:https://github.com/Chan-J18/Chan-J18/issues/1

2、后台截图






浙公网安备 33010602011771号