作业四:需求改进&系统设计
| 这个作业属于哪个课程 | 2022软件代码开发技术 |
|---|---|
| 这个作业要求在哪里 | 需求改进&系统设计 |
| 这个作业的目标 | 这次的作业目标是基于上次的作业进行更新修改完善 |
一、项目简介
一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。
下面需求分析将基于UML描述需求规格。
二、领域驱动设计分析
领域驱动设计(Domain Driven Desing,简称DDD)就是在可扩展性方面将复杂多变的业务排除在稳定不变的内核业务之外,从而在多变的环境中找到不变的部分,达到以不变应万变的目标。不仅如此,DDD还能够以更优于静态文档的方式提供开发人员,业务人员所需要的业务知识,因为DDD在设计之初就要求业务人员特别是领域专家与开发人员通过双方统一的语言一起来协作设计系统,最终交付给业务人员能够“读”得懂的,符合其期望的产品。
优点:
1.易于理解和维护。不是由一个完成所有事的大类组成,而是由许多小类组成,每个小类都有少量的职责
2.面向对象设计更容易测试:每个类都可以并且应该能够被独立测试
3.最后面向个对象设计更容易扩展
将核心要求细分如下:
- SF1 搜索自由职业者分类的功能
- SF2 用于存储联系自由职业者的不同渠道的解决方案
- SF3 搜索项目分类的功能
- SF4 搜索客户分类的功能
- SF5 维护合同中自由职业者的时间表
- SF6 管理员工客户信息
- SF7 管理项目数据
- SF8 维护系统日志
三、用户分析
客户
SF1 搜索自由职业者分类的功能
SF2 存储联系自由职业者的不同渠道的解决方案
SF3 搜索项目分类的功能
SF4 搜索客户分类的功能
员工
SF2 存储联系自由职业者的不同渠道的解决方案
SF5 维护合同中自由职业者的时间表
管理员
SF6 管理员工客户信息
SF7 管理项目数据
SF8 维护系统日志
用例图

用例描述表
| ID | 1.1 |
|---|---|
| 名称 | 维护时间表 |
| 参与者 | 员工,目标是维护合同中自由职业者的时间表。 |
| 触发条件 | 员工在页面登录并开始维护 |
| 前置条件 | 员工输入新时间表数据 |
| 后置条件 | 更新时间表 |
| 正常流程 | 1.员工录入新时间表信息,系统后台记录更新数据 2.员工提交信息,系统将数据传入后台数据库保存 3.员工完成维护,系统更新时间表数据 |
| 特殊需求 | 时间表修改记录保留一个月后自动清除,修改记录可以用来还原 |
| ID | 1.2 |
|---|---|
| 名称 | 存储联系渠道 |
| 参与者 | 员工、客户,目标是存储联系自由职业者的不同渠道的解决方案。 |
| 触发条件 | 员工或客户开始存储联系渠道 |
| 前置条件 | 员工或客户录入新存储联系渠道 |
| 后置条件 | 更新存储联系渠道 |
| 正常流程 | 1. 员工或客户录入新存储联系渠道,系统后台记录更新数据 2.员工或客户提交信息,系统将数据传入后台数据库保存 3.员工或客户完成存储,系统更新联系渠道数据 |
| ID | 1.3 |
|---|---|
| 名称 | 搜索自由职业者分类 |
| 参与者 | 客户,目标是搜索自由职业者的分类 |
| 触发条件 | 客户提出搜索分类请求 |
| 前置条件 | 客户在系统点击搜索分类请求 |
| 后置条件 | 展示自由职业者的分类 |
| 正常流程 | 1. 客户在系统请求搜索特定自由职业者分类,系统拉取后台数据库相关信息,传输到前端展示 |
| 业务规则 | 每次搜索只能对特定自由职业者uid搜索 |
| ID | 1.4 |
|---|---|
| 名称 | 搜索项目分类 |
| 参与者 | 客户,目标是搜索项目的分类 |
| 触发条件 | 客户提出搜索项目请求 |
| 前置条件 | 客户在系统点击搜索项目请求 |
| 后置条件 | 展示项目的分类和相关详情信息 |
| 正常流程 | 1. 客户在系统请求搜索特定项目分类,系统拉取后台数据库相关信息,传输到前端展示 |
| 业务规则 | 每次搜索只能对特定项目pid搜索 |
| ID | 1.5 |
|---|---|
| 名称 | 搜索客户分类 |
| 参与者 | 客户,目标是搜索客户的分类 |
| 触发条件 | 客户提出搜索请求 |
| 前置条件 | 客户在系统点击搜索客户请求 |
| 后置条件 | 展示客户的分类和客户公开个人信息 |
| 正常流程 | 1. 客户在系统请求搜索特定客户的分类,系统拉取后台数据库相关信息,传输到前端展示 |
| 业务规则 | 每次搜索只能对特定客户cid搜索 |
| ID | 1.6 |
|---|---|
| 参与者 | 管理员,目标是管理客户和员工的个人信息,如昵称联系方式等信息 |
| 触发条件 | 管理员提出更改个人信息请求 |
| 前置条件 | 管理员登录系统并在系统点击管理客户/员工请求 |
| 后置条件 | 客户和员工信息得到更新 |
| 正常流程 | 1. 管理员以管理权限登录系统,系统更新权限,显示管理员界面 2. 管理员参与管理员工或客户信息,系统更新后台数据 |
| 业务规则 | 每次管理不能对员工或客户专属id做出更改 |
| ID | 1.7 |
|---|---|
| 参与者 | 管理员,目标是管理项目分类等信息 |
| 触发条件 | 管理员提出管理项目数据请求 |
| 前置条件 | 管理员在系统点击管理项目 |
| 后置条件 | 更新项目最新信息 |
| 正常流程 | 1. 管理员以管理权限登录系统,系统更新权限,显示管理员界面 2. 管理员参与管理项目数据,系统更新项目最新数据 |
| ID | 1.8 |
|---|---|
| 参与者 | 管理员,目标是对系统日志进行维护更新 |
| 触发条件 | 管理员提出维护日志 |
| 前置条件 | 管理员在系统点击维护系统日志请求 |
| 后置条件 | 系统日志更新并在页面展示 |
| 正常流程 | 1. 管理员以管理权限登录系统,系统更新权限,显示管理员界面 2. 管理员参与维护系统日志,系统更新日志信息 |
| 业务规则 | 无法一次性对所有日志进行更新,单日最多更新两个星期的日志 |
四、功能需求
上下文图
0层图
模块结构图
实体关系模型ERD
类图
五、技术需求
人机交互需求
此提供服务出租的管理系统采用网页形式进行显示和用户交互,界面设计应简洁明了;不应出现产生歧义的控件。
可靠性需求
此系统主要实现管理功能,因此用户的信息应当妥善储存并加以安全性保护操作;在信息可能会产生冲突的地方应考虑周到,面对高并发的场景应能从容面对。
系统质量需求
健壮性:能够保证1000人内进行有效的基本操作。
安全性:对不同客户信息应有人员权限限制。
易用性:前端界面应简洁明了,有相应提示以提示。
六、系统设计
DDD战略设计的几个核心概念:领域、子域、限界上下文、架构分层
(1)一个好的分层式结构,可以使得开发人员的更加高效的开发。利用领域驱动设计中的分层等战略设计,划分各个层次;定义好各层次之间的接口(运用依赖倒置原则)。
(2)领域划分成内聚性高的几个子领域,给出每个子领域的限界上下文。
(3)定义好实体和值对象
(4)定义好领域服务、领域应用
领域&子域
限界上下文
- 存储渠道子域:实现员工对客户信息的录入存储
- 维护时间表子域:实现员工维护项目时间表的操作
- 查询(信息)子域:实现各用户对该用户权限内信息的查询
- 搜索分类子域:实现客户对项目等信息的分类查询功能
- 管理信息子域:实现管理员对客户和员工信息的管理
- 维护子域:实现管理员维护系统的基础功能
分层架构
七、时间安排表
项目开发计划
| 项目流程 | 时间计划 | 矫正后时间计划 |
|---|---|---|
| 可行性研究 | 2022.04.15 - 2022.04.30 | 2022.04.15 - 2022.04.20 |
| 需求分析 | 2022.05.01 - 2022.05.20 | 2022.04.20 - 2022.05.01 |
| 系统设计 | 2022.05.22 - 2022.06.20 | 2022.05.01 - 2022.05.20 |
| 软件实现 | 2022.06.21 - 2022.07.20 | 2022.05.21 - 2022.06.20 |
| 软件测试 | 2022.07.21 - 2022.08.10 | 2022.06.21 - 2022.07.01 |
因为原计划时间跨度太长,不符合一般软件开发和该软件开发实情,所以将每个流程时间均缩减一定程度,除了软件实现时间不变外,其它流程均做了一定缩短,最终能节省一个多月的时间开发该软件。
代码开发任务计划
开发时间和开发顺序
| 开发顺序 | 软件实现 | 开发时间 |
|---|---|---|
| 1 | 数据库设计 | 7 天 |
| 2 | 系统框架设计 | 5 天 |
| 3 | 员工领域设计 | 6 天 |
| 4 | 客户领域设计 | 6 天 |
| 5 | 管理员领域设计 | 6 天 |
模块分解
| 软件实现 | 任务分解 | 开发时间 |
|---|---|---|
| 数据库设计 | 7 天 | |
| 项目信息表设计 | 24h | |
| 各用户信息表设计 | 8h | |
| 封装数据库操作代码 | 10h | |
| 系统前后端初步连接 | 12h | |
| 系统框架设计 | 5 天 | |
| 前端设计 | 20h | |
| 系统设置功能 | 6h | |
| 员工领域设计 | 6 天 | |
| 实现时间表维护 | 18h | |
| 实现联系渠道存储 | 18h | |
| 客户领域设计 | 6 天 | |
| 实现搜索自由职业者分类 | 4h | |
| 实现搜索项目分类 | 4h | |
| 实现搜索客户分类 | 4h | |
| 实现客户友好界面设计 | 12h | |
| 管理员领域设计 | 6 天 | |
| 实现各用户权限安全管理功能 | 12h | |
| 实现维护系统日志功能 | 5h | |
| 实现管理客户员工信息 | 6h | |
| 实现管理项目数据 | 6h |
测试计划
测试总纲:本系统是一个基于Web的出租服务解决方案,应满足基本的查询、管理、维护等需求。
计划时间:2022.06.21 - 2022.07.01
测试类型:黑盒测试和白盒测试
测试环境:win10系统 / TestPlatform
六、博客编辑截图

浙公网安备 33010602011771号