谢浩杰|2021软件代码开发技术|综合系统开发 需求分析

这个作业属于哪个课程 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
    • 管理员
  • 时间表:Schedule

添加关联

添加属性,建立领域模型

需求规格说明书

问题定义

  1. 项目名称:出租服务管理系统

  2. 问题概述:一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。以下是核心要求

    • 搜索自由职业者分类的功能
    • 用于存储联系自由职业者的不同渠道的解决方案
    • 搜索项目分类的功能
    • 搜索客户分类的功能
    • 维护合同中自由职业者的时间表
  3. 面向用户分析

    该系统存在多种权限用户,主要分为两大类:管理员,客户;根据不同用户的类型不同给予不同系统权限,从而限制其功能,内容的访问

  4. 系统需求

    • 功能性需求

      • 用户允许同时持有多种身份,不同的身份可以使用对应权限下的不同的功能
      • 能对用户信息,项目信息,时间表进行增删查改
      • 能对客户,项目,自由职业者进行分类,提供搜索功能
      • 自动维护合同的时间表
      • 引入日志和安全审计
    • 技术需求

      • 数据库需要至少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

博客园后台截图

posted @ 2021-05-04 20:09  AMzz  阅读(121)  评论(0编辑  收藏  举报
//字体