高山 | 2021软件代码开发技术作业三 | 综合系统开发----需求分析
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11968 |
这个作业的目标 | 学会运用UML、领域驱动设计方法、软件设计模式等知识,对系统需求进行建模;学会撰写需求规格说明书,并完成项目后续的开发计划 |
1.领域驱动设计
领域对象
- 自由职业者:Freer
- 用户:Customer
- 时间表:Schedule
- 项目:Project
领域模型
2. 需求规格说明
2.1 面向用户分析
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。包含以下核心要求:
- 搜索自由职业者分类的功能
- 用于存储联系自由职业者的不同渠道的解决方案
- 搜索项目分类的功能
- 搜索客户分类的功能
- 维护合同中自由职业者的时间表
2.2 需求分析
-
系统需求
公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。他们决定构建一个新的基于Web的解决方案,来代替Excel工作表来对他们的客户进行高效的管理。期望在使用新的解决方案后能够进行安全高效的管理,同时有审计日志的功能。
-
功能需求
功能需求即为系统基本功能的说明,在此分模块进行功能需求描述
- 用户模块:增加用户,查看用户,删除用户,修改用户信息。
- 自由职业者模块:增加自由职业者,查看自由职业者,删除自由职业者,修改自由职业者信息,搜索自由职业者分类。
- 项目模块:添加项目,查看项目信息,删除项目,修改项目信息,搜索项目分类。
- 时间表模块:添加时间表,查看时间表,删除时间表,修改时间表信息。
-
数据需求
数据需求分析是从对数据进行组织与存储的角度,从用户视图出发,分析与辨别应用领域所管理的各类数据项和数据结构,形成数据字典的主要内容。
- 用户数据:用户id、名字、电话、邮箱、地址、类型
- 自由职业者数据:自由职业者id、名字、电话、邮箱、地址、类型
- 项目数据:项目id、名字、类型
- 时间表数据:时间表id、时间表名字、自由职业者id
-
技术需求
- 所有的数据需要长期安全地保存
- 能够高效地查询、增加、修改、删除数据
2.3功能建模
-
建立实体-关系模型
实体:用户、自由职业者、项目、时间表
-
实体之间的联系
- 自由职业者与时间表是一对一的关系
- 自由职业者与项目是一对多的关系
- 用户与项目是一对多的关系
-
实体-关系图
-
数据字典
名字 | 描述 | 位置 | 数据类型 |
---|---|---|---|
用户编号 | 用户的编号,唯一标识用户 | 用户信息 | integer |
用户名字 | 用户的名字 | 用户信息 | varchar(50) |
用户电话 | 用户的电话 | 用户信息 | varchar(50) |
用户邮箱 | 用户的邮箱 | 用户信息 | varchar(50) |
项目编号 | 项目的编号,唯一标识项目 | 项目信息 | integer |
项目名称 | 项目的名称 | 项目信息 | varchar(50) |
自由职业者编号 | 自由职业者的编号,唯一标识 | 自由职业者信息 | integer |
自由职业者姓名 | 自由职业者的名称 | 自由职业者信息 | varchar(50) |
自由职业者电话 | 自由职业者的电话号码 | 自由职业者信息 | varchar(50) |
自由职业者邮箱 | 自由职业者的联系邮箱 | 自由职业者信息 | varchar(50) |
时间表编号 | 时间表的编号,唯一标识 | 时间表信息 | integer |
时间表名字 | 时间表的名字 | 时间表信息 | varchar(20) |
- 建立用例模型
接下来建立用例模型,用例(Use Case)是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模。
- 参与者(Actor)
参与者是指存在于被定义系统外部并与该系统发生交互的人或其他系统,他们代表的是系统的使用者或使用环境。 - 用例(Use Case)
用例用于表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。 - 通讯关联(Communication Association)
通讯关联用于表示参与者和用例之间的对应关系,它表示参与者使用了系统中的哪些服务(用例),或者说系统所提供的服务(用例)是被哪些参与者所使用的。
- 用例图
- 建立类图
3.任务计划
活动 | 详细任务 | 工期 | 开始时间 | 结束时间 | 校正后工期 | 校正后结束时间 |
---|---|---|---|---|---|---|
需求分析 | 需求获取 | 3个工作日 | 2021/4/23 | 2021/4/25 | 3个工作日 | 2021/4/25 |
需求分析 | 3个工作日 | 2021/4/26 | 2021/4/28 | 3个工作日 | 2021/4/28 | |
需求规格说明 | 4个工作日 | 2021/4/29 | 2021/5/2 | 4个工作日 | 2021/5/2 | |
需求验证 | 2个工作日 | 2021/5/3 | 2021/5/4 | 2个工作日 | 2021/5/4 | |
系统设计 | 系统设计 | 5个工作日 | 2021/5/6 | 2021/5/10 | 5个工作日 | 2021/5/10 |
详细设计 | 接口设计 | 4个工作日 | 2021/5/11 | 2021/5/14 | 4个工作日 | 2021/5/14 |
单元模块设计 | 3个工作日 | 2021/5/15 | 2021/5/17 | 3个工作日 | 2021/5/17 | |
功能实现 | 数据库实现 | 3个工作日 | 2021/5/18 | 2021/5/20 | 3个工作日 | 2021/5/20 |
自由职业者模块实现 | 4个工作日 | 2021/5/21 | 2021/5/24 | 4个工作日 | 2021/5/24 | |
客户信息模块实现 | 4个工作日 | 2021/5/25 | 2021/5/28 | 4个工作日 | 2021/5/28 | |
项目信息模块实现 | 4个工作日 | 2021/5/29 | 2021/6/2 | 4个工作日 | 2021/6/2 | |
时间表模块实现 | 4个工作日 | 2021/6/3 | 2021/6/6 | 4个工作日 | 2021/6/6 | |
测试 | 单元测试 | 4个工作日 | 2021/6/1 | 2021/6/4 | 4个工作日 | 2021/6/5 |
集成测试 | 3个工作日 | 2021/6/5 | 2021/6/7 | 3个工作日 | 2021/6/8 | |
系统测试 | 3个工作日 | 2021/6/8 | 2021/6/10 | 3个工作日 | 2021/6/11 | |
集成交付 | 系统交付 | 3个工作日 | 2021/6/11 | 2021/6/13 | 4个工作日 | 2021/6/14 |
Github链接
https://github.com/gs735028922gs/ServerProject