Hao_YiYi

导航

作业三——综合系统开发:需求分析

所属课程 <班级链接>
作业要求 <作业要求链接>
作业目标 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.随笔编辑

posted on 2022-04-06 18:39  Hao_YiYi  阅读(165)  评论(0编辑  收藏  举报