作业四

这个作业属于哪个课程 2022软件代码开发技术
这个作业要求在哪里 作业四
这个作业的目标 1.改进需求
2.学习领域驱动的系统设计方法

需求规格说明

需求说明

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

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

系统特性

经分析,为满足所提出的需求,本系统应具备以下系统特性:

  • 管理与查询自由职业者信息
  • 管理与查询项目信息
  • 管理与查询客户信息
  • 管理自由职业者时间表
  • 管理自由职业者联系方式

管理与查询自由职业者信息

对自由职业者的信息进行管理与查询。

管理与查询项目信息

对项目的信息进行管理与查询。

管理与查询客户信息

对自由职业者的信息进行管理与查询。

管理自由职业者时间表

对合同中自由职业者的时间表信息进行管理。

管理自由职业者联系方式

对自由职业者的联系方式进行管理。

用例设计

结合先前的系统特性设计,本系统的用例设计如下图所示:

系统设计

结构分层

本系统的结构可分为四层,采用依赖倒置原则将各层结构如下图组合:

子领域划分

本系统可划分为以下子领域:

  • 客户子领域
  • 项目子领域
  • 自由职业者子领域

客户子领域

负责客户信息的管理与查找。

项目子领域

负责项目信息的管理。

自由职业者子领域

负责自由职业者的信息管理、查询,以及对自由职业者日程和联系方式的管理。

实体与值对象

本系统中主要实体有客户(Customer)、项目(Project)和自由职业者(Freelancer),主要的值对象则有日程(Schedule)和联系方式(Contact),它们的基本定义如下所示:

//实体
class Freelancer
{
    public string Id {get;}
    public string Name {get; set;}
    public string Types {get;}
    public List<Schedule> ScheduleTable {get;}
    public List<Contact> Contacts {get;}
    ...
}
public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Type { get; set; }
    ...
}
class Project
{
    public string Id {get;}
    public string Name {get; set;}
    public string Info {get; set;}
    public string Type {get;}
    ...
}
//值对象
class Schedule
{
    public sting Info {get;}
    public Time StartTime {get;}
    public Time EndTime {get;}
}
class Contact
{
    public String Type {get;}
    public String Detail {get;}
}

任务计划

本系统的开发划分为六个模块,各个模块的开发计划如下表所示:

模块 优先级 依赖关系 开发时间
基础设施模块 最高 13h
搭建数据库框架 5h
配置网络协议 8h
客户系统模块 高 基础设施模块 13h
管理客户信息 7h
搜索客户分类 6h
自由工作者系统模块 高 基础设施模块 19h
管理自由工作者信息 7h
搜索自由工作者分类 6h
管理联系方式 6h
项目系统模块 中 基础设施模块
客户系统模块
11h
管理项目信息 6h
搜索项目分类 5h
时间表模块 低 基础设施模块
项目系统模块
自由工作者模块
8h
管理时间表 8h
客户界面模块 最低 客户系统模块
项目信息模块
自由工作者模块
27h
信息管理界面 4h
查询客户分类界面 5h
查询自由职业者分类界面 5h
查询项目分类界面 5h
日程表维护界面 8h

甘特图

测试计划

本系统的测试流程主要包含三个阶段,各阶段的测试计划如下表所示:

测试阶段 测试人员 用时
单元测试 对各个模块的功能进行测试 程序人员 30h
集成测试 集成各个模块后进行测试 测试人员 15h
系统测试 对系统进行总体性的测试 测试人员 15h
posted @ 2023-05-19 17:09  B9E83DA8  阅读(28)  评论(0)    收藏  举报