作业三——综合系统开发:需求分析
所属课程 | <班级链接> |
---|---|
作业要求 | <作业要求链接> |
作业目标 | 1. 提升需求分析能力 |
2. 熟悉与掌握对Github的使用 | |
3. 进一步学习和了解UML、领域驱动设计方法及软件设计模式等知识 |
引言
项目背景
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
需求规格说明书
1.需求梳理
1.1.过程梳理
a.项目名称:出租服务管理系统
b.系统需求:
- 数据需求:
序号 输入数据 输出数据 数据存储 1 自由职业者信息 审计日志 自由职业者信息 2 普通客户信息 审计日志 普通股客户信息 3 时间表 时间表 时间 4 项目信息 —— 项目信息 - 功能需求:
1、能够接收、存储或更新用户(含普通客户和自由职业者)信息;
2、能够产生审计信息;
3、能够查询用户信息。 - 技术需求:
序号 输入数据 输出数据 数据存储 1 自由职业者信息 审计日志 自由职业者信息 2 普通客户信息 审计日志 普通客户信息 3 时间表 时间表 时间 4 项目信息 —— 项目信息
c.流程图
d.层次结构图
1.2.关键行为
(1)查询自由职业者;
(2)管理时间表;
(3)审计日志;
(4)发布项目;
(5)查询项目。
- 初步得到领域边界图如下:
2.领域结构设计
2.1.领域对象
(1)普通客户;
(2)自由职业者;
(3)系统管理员。
2.2.领域服务
(1)普通客户查询自由职业者;
(2)自由职业者管理时间表;
(3)系统管理员审计日志;
(4)普通客户发布项目;
(5)自由职业者查询项目;
(6)自由职业者编辑、修改个人信息;
(7)普通客户编辑、修改个人信息;
(8)自由职业者编辑时间表;
(9)普通客户与自由职业者签订合同。
2.3.用例图
- 用例描述:
描述项1 | 说明 |
---|---|
用例名称 | 查看项目 |
用例描述 | 查看普通客户发布的项目详细信息 |
参与者 | 普通客户、自由职业者 |
前置条件 | 项目已发布 |
后置条件 | 了解、知悉项目详情 |
基本操作流程 | 1.自由职业者点击选择项目;2.系统给出项目详细信息。 |
拓展操作流程 | 1.自由职业者关闭项目;2.系统关闭项目详细信息。 |
描述项2 | 说明 |
---|---|
用例名称 | 发布项目 |
用例描述 | 发布项目详细信息 |
参与者 | 普通客户 |
前置条件 | 项目编辑完成 |
后置条件 | 项目成功发布 |
基本操作流程 | 1.普通客户编辑项目信息;2.系统保存项目信息;3.普通客户选择发布项目;4.系统将项目详细信息发布。 |
拓展操作流程 | 1.普通客户取消发布项目;2.系统撤回项目详细信息。 |
描述项3 | 说明 |
---|---|
用例名称 | 签署合同 |
用例描述 | 普通客户与自由职业者共同签署合同,确定合作关系 |
参与者 | 普通客户、自由职业者 |
前置条件 | 普通客户与自由职业者双方经联系在项目合作上能够恰谈 |
后置条件 | 合同签署完成,普通客户与自由职业者双方成功建立合作关系 |
基本操作流程 | 1.普通客户点击选择签署合同;2.自由职业者点击选择签署合同;3.系统在相应合同上输入双方信息。 |
描述项4 | 说明 |
---|---|
用例名称 | 管理时间表 |
用例描述 | 编辑修改时间表就对应事项信息 |
参与者 | 自由职业者 |
前置条件 | 自由职业者个人信息编辑完毕 |
后置条件 | 自由职业者相应时间表信息成功保存 |
基本操作流程 | 1.自由职业者点击管理时间表;2.系统显示自由职业者的时间表并提供编辑功能;3.自由职业者保存时间表信息;4.系统存储时间表信息。 |
描述项5 | 说明 |
---|---|
用例名称 | 查看时间表 |
用例描述 | 查看自由职业者对应的时间表信息 |
参与者 | 普通客户 |
前置条件 | 自由职业者时间表信息已经编辑且成功保存 |
后置条件 | 普通客户成功获取时间表信息 |
基本操作流程 | 1.普通客户点击查看自由职业者的时间表;2.系统显示自由职业者的时间表信息。 |
拓展操作流程 | 1.普通客户切换查看其他自由职业者的时间表;2.系统显示其他自由职业者的时间表信息。 |
描述项6 | 说明 |
---|---|
用例名称 | 编辑个人信息 |
用例描述 | 编辑个人详细信息 |
参与者 | 普通客户、自由职业者 |
前置条件 | 成功注册系统账号 |
后置条件 | 成功修改个人信息 |
基本操作流程 | 1.普通客户或自由职业者点击编辑个人信息;2.系统存储编辑修改后的个人信息。 |
描述项7 | 说明 |
---|---|
用例名称 | 查询个人信息 |
用例描述 | 查询个人详细信息 |
参与者 | 普通客户、自由职业者 |
前置条件 | 已编辑个人信息 |
后置条件 | 查询获取个人详细信息 |
基本操作流程 | 1.普通客户或自由职业者点击查询个人信息;2.系统获取个人详细信息。 |
拓展操作流程 | 1.普通客户或自由职业者切换查看其他用户的个人信息;2.系统显示其他用户的个人详细信息。 |
描述项8 | 说明 |
---|---|
用例名称 | 审计日志 |
用例描述 | 产生并显示审计日志 |
参与者 | 系统管理员 |
前置条件 | 系统已被使用 |
后置条件 | 审计日志成功显示 |
基本操作流程 | 1.系统管理员点击查看审计日志;2.系统产生并显示审计日志。 |
3.领域模型设计
3.1.实体关系与属性
(1)实体及属性
实体 | 属性 |
---|---|
合同 | 有效期、条款 |
项目 | 时间、名称、内容、发布者 |
时间表 | 日期、时分、安排 |
客户表 | 姓名、年龄、性别、联系方式、诚信认证 |
自由职业者表 | 姓名、工号、年龄、性别、服务类型、联系方式 |
(2)实体间联系
- 自由职业者制作时间表,因此自由职业者与时间表应该是一一对应的关系,则自由职业者表与时间表对应数量关系为1:1;
- 自由职业者可以同时实行多个项目,因此两者数量关系为1:n;
- 自由职业者可以同时签署多个合同,因此两者数量关系为1:n;
- 一个自由职业者可以与多个客户建立合作关系,而相反,一个客户也可以与多个自由职业者建立合作关系,因此二者数量关系为n:m;
- 客户可以参考多个自由职业者的时间表,因此两者数量关系为1:n;
- 客户可以发布多个项目,因此两者数量关系为1:n;
- 客户可以同时签署多个合同,两者数量关系为1:n;
- 一个合同对应一个项目,二者数量关系为1:1。
(3)实体联系图
3.2.对象服务接口
项目时间安排表
所属流程 | 步骤 | 预计完成时间 | 预计开始时间 | 预计结束时间 | 矫正后完成时间 | 矫正后结束时间 |
---|---|---|---|---|---|---|
需求分析 | 需求分析 | 10个工作日 | 2022/03/20 | 2022/03/29 | 15个工作日 | 2022/04/03 |
总体设计 | 框架设计 | 06个工作日 | 2022/03/30 | 2022/04/04 | 06个工作日 | 2022/04/09 |
详细设计 | 单元模块设计 | 08个工作日 | 2022/04/05 | 2022/04/12 | 08个工作日 | 2022/04/17 |
详细设计 | 接口设计 | 05个工作日 | 2022/04/13 | 2022/04/17 | 06个工作日 | 2022/04/24 |
实现 | 自由职业者信息管理模块 | 06个工作日 | 2022/04/18 | 2022/04/23 | 05个工作日 | 2022/04/29 |
实现 | 普通客户信息管理模块 | 06个工作日 | 2022/04/24 | 2022/04/29 | 05个工作日 | 2022/05/04 |
实现 | 项目信息管理模块 | 10个工作日 | 2022/04/30 | 2022/05/09 | 08个工作日 | 2022/05/12 |
实现 | 时间表管理模块 | 10个工作日 | 2022/05/10 | 2022/05/19 | 08个工作日 | 2022/05/20 |
实现 | 审计日志打印模块 | 05个工作日 | 2022/05/20 | 2022/05/24 | 04个工作日 | 2022/05/24 |
测试 | 单元测试 | 03个工作日 | 2022/05/25 | 2022/05/27 | 03个工作日 | 2022/05/27 |
测试 | 集成测试 | 03个工作日 | 2022/05/28 | 2022/05/30 | 03个工作日 | 2022/05/30 |
测试 | 系统测试 | 03个工作日 | 2022/05/31 | 2022/06/02 | 03个工作日 | 2022/06/02 |
测试 | 测试评价 | 01个工作日 | 2022/06/03 | 2022/06/03 | 01个工作日 | 2022/06/03 |
交付 | 验收测试完成 | 03个工作日 | 2022/06/04 | 2022/06/06 | 03个工作日 | 2022/06/06 |
- 矫正思路:在需求分析及系统的设计阶段花费更长的时间,以确保后期项目开发、模块实现等工作能够更为高效。在需求分析阶段增加50%的工作时间,后期实现工作预计效率会增加25%,并且预计后期各个极端所需成本会有所降低。
相关链接及截图
1.github——Issue
2.随笔编辑