这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11968 |
这个作业的目标 | 1. 帮助我们更好地掌握软件规格说明的写法 |
2. 帮助我们更好地掌握领域驱动设计分析运用,实践DDD | |
3. 帮助我们更好地掌握UML建模语言 | |
4. 帮助我们更好地掌握Github使用 |
案例描述
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
领域驱动设计
领域驱动设计(Domain-Driven Design, DDD),其研发过程大致如下:
需求分析 -> 领域分析 -> 领域模型 -> 核心业务逻辑 -> 技术细节
领域驱动设计关心业务中的领域划分和领域建模,开发过程以领域模型为中心,驱动项目开发
本案例的建模分析过程
定义概念类->添加关联->添加属性->建立领域模型
定义概念类
- 项目:Project
- 用户:User
- 客户Customer
- 服务商
- 自由职业:Freer
- 员工:Worker
- 需求商
- 普通客户:Client
- 服务商
- 管理员
- 客户Customer
- 时间表:Schedule
添加关联
添加属性,建立领域模型
需求规格说明书
问题定义
-
项目名称:出租服务管理系统
-
问题概述:一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
-
面向用户分析
该系统存在多种权限用户,主要分为两大类:管理员,客户;根据不同用户的类型不同给予不同系统权限,从而限制其功能,内容的访问
-
系统需求
-
功能性需求
- 用户允许同时持有多种身份,不同的身份可以使用对应权限下的不同的功能
- 能对用户信息,项目信息,时间表进行增删查改
- 能对客户,项目,自由职业者进行分类,提供搜索功能
- 自动维护合同的时间表
- 引入日志和安全审计
-
技术需求
- 数据库需要至少6T空间储存功能性需求中的各类数据;
- 需要实现登入、登出操作,根据账号权限进行相关功能操作;
- 需要定期分析、维护安全与审计日志;
-
数据需求
序号 输入数据 数据存储 输出数据 1 自由职业者信息 自由职业者信息 审计日志 2 普通客户信息 普通客户信息 审计日志 3 时间表 时间表 审计日志 4 项目信息 项目信息 审计日志
-
分析建模
系统架构分析
数据流图
0层图
实体联系模型
1.实体及属性
实体 | 属性 |
---|---|
员工及自由职业者 | 服务商编号、姓名、电话、类型、地址 |
时间表 | 时间表编号,服务商编号,时间表时间 |
普通客户/用户 | 普通客户编号,姓名,电话,类型、地址 |
项目 | 项目编号,项目内容,项目时间,项目类型 |
2.实体间联系
- 一个自由职业者/员工对应一个时间表,一个时间表对应一个自由职业者/员工,因此自由职业者/员工和时间表之间存在一对一关系。
- 一个自由职业者/员工对应多个项目,一个项目对应多个自由职业者/员工,因此自由职业者/员工和项目之间存在多对多关系。
- 一个普通客户/用户对应多个项目,一个项目对应多个普通客户/用户,因此普通客户/用户和项目之间存在多对多关系。
- 一个项目对应多个时间表,一个时间表对应多个项目。因此项目和时间表之间存在多对多关系。
3.ER图
项目时间安排
(1)项目时间安排表
所属流程 | 步骤 | 预计完成时间 | 预计开始时间 | 预计结束时间 | 矫正后完成时间 | 校正后结束时间 |
---|---|---|---|---|---|---|
需求分析 | 需求分析 | 10个工作日 | 2021/4/23 | 2021/5/3 | 6个工作日 | 2021/4/29 |
总体设计 | 框架设计完成 | 4个工作日 | 2021/5/4 | 2021/5/8 | 3个工作日 | 2021/5/2 |
总体设计 | 单元模块设计完成 | 5个工作日 | 2021/5/9 | 2021/5/14 | 5个工作日 | 2021/5/7 |
实现 | 接口设计实现 | 5个工作日 | 2021/5/15 | 2021/5/20 | 5个工作日 | 2021/5/12 |
实现 | 自由职业者/员工信息管理模块完成 | 12个工作日 | 2021/5/21 | 2021/6/1 | 8个工作日 | 2021/5/20 |
实现 | 普通客户信息管理模块完成 | 10个工作日 | 2021/6/2 | 2021/6/12 | 5个工作日 | 2021/5/25 |
实现 | 项目信息管理模块完成 | 10个工作日 | 2021/6/13 | 2021/6/23 | 6个工作日 | 2021/5/31 |
实现 | 时间表管理模块完成 | 10个工作日 | 2021/6/24 | 2021/7/4 | 6个工作日 | 2021/6/6 |
实现 | 维护审计日志模块完成 | 5个工作日 | 2021/7/5 | 2021/7/9 | 4个工作日 | 2021/6/10 |
实现 | 管理员功能模块完成 | 4个工作日 | 2021/7/10 | 2021/7/13 | 3个工作日 | 2021/6/13 |
测试 | 集成测试完成 | 3个工作日 | 2021/7/14 | 2021/7/16 | 3个工作日 | 2021/6/16 |
测试 | 系统测试完成 | 3个工作日 | 2021/7/17 | 2021/7/19 | 3个工作日 | 2021/6/19 |
测试 | 测试总结完成 | 1个工作日 | 2021/7/20 | 2021/7/20 | 1个工作日 | 2021/6/20 |
交付 | 验收测试完成 | 3个工作日 | 2021/7/21 | 2021/7/24 | 3个工作日 | 2021/6/22 |
(2)矫正计算方法
- 单元模块设计,接口设计实现,测试阶段的预计时间基本符合
- 普通客户信息管理模块与自由职业者/员工信息管理模块相似,在后者完成后可缩短实现时间为原预计50%
- 预计时间时一般会留出突发情况时间,所以大部分流程矫正后时间是预计时间的60%~80%,
截图
Github ISSUE
项目链接:https://github.com/AMzzcc/-ServiceRentalSystem/issues/1
博客园后台截图