作业四——需求改进&系统设计
所属课程 | <班级链接> |
---|---|
作业要求 | <作业要求链接> |
作业目标 | 1. 进一步完善系统需求 |
2. 更好地运用领域建模 | |
3. 更好地掌握领域驱动设计分析运用 | |
4. 更好地体会系统开发和测试的过程 |
需求改进
1.问题定义
1.1.项目名称:出租服务管理系统
1.2.问题概述:一家公司提供服务出租,公司自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案,通过出租服务管理系统实现公司出租服务相关信息的管理以及提供公司信息的安全性。
1.3.系统需求
-
数据需求:
序号 输入数据 输出数据 数据存储 1 自由职业者信息 审计日志 自由职业者信息 2 普通客户信息 审计日志 普通股客户信息 3 时间表 时间表 时间 4 项目信息 —— 项目信息 -
功能需求:
1、能够接收、存储或更新用户(含普通客户和自由职业者)信息;
2、能够产生审计信息;
3、能够查询用户信息。 -
技术需求:
序号 输入数据 输出数据 数据存储 1 自由职业者信息 审计日志 自由职业者信息 2 普通客户信息 审计日志 普通客户信息 3 时间表 时间表 时间 4 项目信息 —— 项目信息
1.4.架构分层
-
使用依赖倒置,使细节依赖于抽象
-
抽象和细节解耦
-
降低系统内部不同模块的耦合性
1.5.关键行为
(1)查询自由职业者;
(2)管理时间表;
(3)审计日志;
(4)发布项目;
(5)查询项目。
- 初步得到领域边界图如下:
上下文:
(1)查询自由职业者:
(2)管理时间表:
(3)审计日志:
(4)发布项目:
(5)查询项目:
1.6.流程图
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.对象服务接口
系统设计
1.系统流程及物理元素
1.1.流程图
1.2.物理元素清单
(1)硬件
-
计算机一台
-
打印机一台
-
显示器一台
(2)软件
- 程序P1:更新自由职业者信息,更新普通用户信息,更新项目信息、更新时间表
- 程序P2:读取数据库信息,产生审计日志
- 出租服务数据库:自由职业者信息、普通客户信息、项目、合同、时间表
2.软件设计与战略设计
2.1.软件设计
2.2.战略设计
领域 | 子域 | 限定上下文 | 领域服务 |
---|---|---|---|
信息管理域 | 自由职业者信息管理子域 | 实现对自由职业者的信息进行“增、删、改、查”的功能 | 信息验证、安全检验 |
信息管理域 | 普通客户信息管理子域 | 实现对普通客户的信息进行“增、删、改、查”的功能 | 信息验证、安全检验 |
信息管理域 | 时间表管理子域 | 实现对时间表的信息进行“增、删、改、查” 的功能 | 信息验证、安全检验 |
信息管理域 | 项目信息管理子域 | 实现对项目的信息进行“增、删、改、查”的功能 | 信息验证、安全检验 |
权限域 | 系统管理员权限子域 | 实现系统管理员所拥有系统功能的权限 | 身份验证、安全检验 |
审计日志域 | 打印审计日志子域 | 实现打印审计日志功能 | 身份验证、安全检验 |
审计日志域 | 查看审计日志子域 | 系统管理员所拥有系统功能的权限 | 身份验证、安全检验 |
3.数据库逻辑结构
序号 | 记录 | 主码 | 外码 | 码 |
---|---|---|---|---|
(1) | 自由职业者表 | 自由职业者编号 | 自由职业者编号,自由职业者姓名,自由职业者联系方式,自由职业者年龄,自由职业者服务类型,自由职业者性别 | |
(2) | 普通客户表 | 普通客户编号 | 普通客户编号,普通客户姓名,普通客户年龄,普通客户联系方式,普通客户性别,普通用户诚信情况 | |
(3) | 项目 | 项目编号 | 自由职业者编号,普通客户编号 | 项目编号,项目内容,项目时间,项目类别,自由职业者编号,普通客户编号 |
(4) | 合同 | 合同编号 | 自由职业者编号,普通客户编号 | 合同编号,合同条款,合同有效期,自由职业者编号,普通客户编号 |
(5) | 时间表 | 时间表编号 | 自由职业者编号 | 时间表编号,时间表时间,自由职业者编号 |
4.验证与事件描述
4.1.验证描述
领域服务 | 描述 |
---|---|
信息验证 | 检验更新信息是否符合限制要求 |
安全验证 | 检验操作以及操作环境是否安全 |
身份验证 | 检验操作者身份是否具有操作权限 |
4.2.事件描述
领域事件 | 描述 |
---|---|
成功修改信息事件 | 表示信息修改成功的事件 |
成功添加信息事件 | 表示信息添加成功的事件 |
成功删除信息事件 | 表示信息删除成功的事件 |
失败修改信息事件 | 表示信息修改失败的事件 |
失败添加信息事件 | 表示信息添加失败的事件 |
失败删除信息事件 | 表示信息删除失败的事件 |
失败查询信息事件 | 表示信息查询失败的事件 |
成功查询信息事件 | 表示信息查询成功的事件 |
身份符合事件 | 表示操作者具有相应操作权限的事件 |
身份不符合事件 | 表示操作者不具有相应操作权限的事件 |
安全事件 | 表示操作及操作环境安全的事件 |
不安全事件 | 表示操作及操作环境不安全的事件 |
5.开发计划
5.1.任务计划表
模块 | 开发时间 | 开发循序 | 优先级 | 任务 | 任务具体时间 |
---|---|---|---|---|---|
前端页面 | 24小时 | 第一位 | 最高 | 颜色搭配方案设计 | 8小时 |
前端页面 | 24小时 | 第一位 | 最高 | 控件样式设计 | 8小时 |
前端页面 | 24小时 | 第一位 | 最高 | 页面总体设计 | 8小时 |
信息管理模块 | 26小时 | 第二位 | 高 | 自由职业者信息管理功能实现 | 8小时 |
信息管理模块 | 26小时 | 第二位 | 高 | 普通客户信息管理功能实现 | 6小时 |
信息管理模块 | 26小时 | 第二位 | 高 | 时间表管理功能实现 | 6小时 |
信息管理模块 | 26小时 | 第二位 | 高 | 项目信息管理功能实现 | 6小时 |
后台存储模块 | 17小时 | 第三位 | 较高 | 数据库逻辑设计 | 8小时 |
后台存储模块 | 17小时 | 第三位 | 较高 | 数据库创建 | 6小时 |
后台存储模块 | 17小时 | 第三位 | 较高 | 数据库连接 | 3小时 |
打印审计日志模块 | 8小时 | 第四位 | 较高 | 打印审计日志功能实现 | 8小时 |
5.2.甘特图
5.3.角色责任表
角色 | 责任 | 协助者 |
---|---|---|
系统管理员 | 自由职业者信息管理 | 数据管理员 |
普通客户信息管理 | 数据管理员 | |
时间表管理 | 数据管理员 | |
项目信息管理 | 数据管理员 | |
获取审计信息 | 信息管理员 |
6.测试计划
6.1.测试项目
项目名称 | 负责部门 | 版本 | 完成日期 | 撰写人 |
---|---|---|---|---|
用例名称 | 19级软件工程5班 | ver2.0 | 2022.4.12 | 李景源 |
6.2.测试总纲及人员安排
编号 | 测试类型 | 测试内容 | 测试目的 | 测试人员 | 测试人员电话 | 测试工具及方法 |
---|---|---|---|---|---|---|
1 | 功能测试 | 产生审计信息,自由职业者信息和普通用户信息以及时间表管理,搜索自由职业者分类、搜索项目分类、搜索客户分类以及维护合同中自由职业者的时间表 | 核实所有功能均已正常实现 | 李景源 | 180****3513 | 黑盒测试,手工测试 |
2 | 用户界面测试 | 页面结构包括菜单、背景、颜色、字体、按钮、提示信息的一致性等 | 核实网站风格符合可接受标准 | 李景源 | 180****3513 | 手工测试 |
3 | 安全测试 | 权限限制、SQL注入 | 核实只能具备系统访问权限的用户才能访问系统 | 李景源 | 180****3513 | 黑盒测试、手工测试 |
4 | 兼容性测试 | 用不同版本的不同浏览器:Edge、火狐、搜狗、360浏览器等访问系统 | 核实系统在不同的软件和硬件配置中运行稳定 | 李景源 | 180****3513 | 黑盒测试、手工测试 |
6.3.测试环境及配置
资源名称、类型 | 配置 |
---|---|
测试PC硬盘容量 | 1T |
测试PC处理器 | Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz |
操作系统 | Windows10 |
应用服务器 | Tomcat服务器 |
数据库管理系统 | MySQL |
应用软件 | IDEA |
6.4.测试进度安排
阶段 | 任务号 | 任务名称 | 前序任务号 | 工时(人日) | 提交结果 | 负责人 |
---|---|---|---|---|---|---|
测试计划 | 1 | 制定测试计划 | 1 | 测试计划文档 | 李景源 | |
测试系统开发配置 | 2 | 人员安排 | 1 | 0.5 | 任务分配 | 李景源 |
测试系统开发配置 | 3 | 测试环境配置 | 1,2 | 1.5 | 可运行系统环境 | 李景源 |
测试系统开发配置 | 4 | 测试用例设计 | 1,2 | 2 | 测试用例文档 | 李景源 |
测试执行 | 5 | 第一阶段通过 | 1,2,3,4 | 2 | 测试结果记录 | 李景源 |
测试执行 | 6 | 第二阶段通过 | 5 | 2 | 测试结果记录 | 李景源 |
测试执行 | 7 | 第三阶段通过 | 6 | 2 | 测试结果记录 | 李景源 |
测试总结分析 | 8 | 退出系统测试 | 7 | 0.5 | 测试分析报告 | 李景源 |
6.5.测试时间安排
步骤 | 预计完成时间 | 预计开始时间 | 预计结束时间 | 矫正后完成时间 | 校正后结束时间 |
---|---|---|---|---|---|
单元测试完成 | 3个工作日 | 2022/5/25 | 2022/5/27 | 3个工作日 | 2022/5/27 |
集成测试完成 | 3个工作日 | 2022/5/28 | 2022/5/30 | 3个工作日 | 2022/5/30 |
系统测试完成 | 3个工作日 | 2022/5/31 | 2022/6/02 | 3个工作日 | 2022/6/02 |
测试总结完成 | 1个工作日 | 2022/6/03 | 2022/6/03 | 1个工作日 | 2022/6/03 |
测试完成 | 1个工作日 | 2022/6/04 | 2022/6/04 | 1个工作日 | 2022/6/04 |
验收测试完成 | 3个工作日 | 2022/6/05 | 2022/6/07 | 3个工作日 | 2022/6/07 |