目录
- [1 引言:什么是用例图?它解决了什么问题?](#1 引言:什么是用例图?它解决了什么问题?)
- [2 如何绘制用例图?](#2 如何绘制用例图?)
-
- [2.1 绘制步骤](#2.1 绘制步骤)
- [3 家政预约小程序用例图分析](#3 家政预约小程序用例图分析)
- [4 顾客用例详细分析](#4 顾客用例详细分析)
-
- [4.1 注册/登录](#4.1 注册/登录)
- [4.2 浏览服务](#4.2 浏览服务)
- [4.3 搜索服务](#4.3 搜索服务)
- [4.4 查看服务详情](#4.4 查看服务详情)
- [4.5 预订服务](#4.5 预订服务)
- [4.6 支付订单](#4.6 支付订单)
- [4.7 取消订单](#4.7 取消订单)
- [4.8 评价服务](#4.8 评价服务)
- [4.9 查看订单记录](#4.9 查看订单记录)
- [4.10 管理个人信息](#4.10 管理个人信息)
- [5 家政公司用例详解](#5 家政公司用例详解)
-
- [5.1 管理服务项目](#5.1 管理服务项目)
- [5.2 管理服务人员](#5.2 管理服务人员)
- [5.3 管理订单](#5.3 管理订单)
- [5.4 处理投诉](#5.4 处理投诉)
- [6 家政员工用例详情](#6 家政员工用例详情)
-
- [6.1 登录/签到](#6.1 登录/签到)
- [6.2 查看排班](#6.2 查看排班)
- [6.3 接受/拒绝订单](#6.3 接受/拒绝订单)
- [6.4 更新服务状态](#6.4 更新服务状态)
- [6.5 查看收入记录](#6.5 查看收入记录)
- 总结
在和客户进行需求沟通的时候,除了使用常规的问答的形式,我们还可以使用图形化工具更深入的沟通。UML统一建模语言里就提供了许多方便的工具,我们本篇介绍一下其中的一种系统分析方法,用例分析。
1 引言:什么是用例图?它解决了什么问题?
什么是用例图? 用例图(Use Case Diagram)是统一建模语言(UML)中的一种图形化建模工具,用于描述系统与外部参与者(Actor)之间的交互。它从用户的角度出发,展示用户如何使用系统来完成特定的目标。
用例图解决了什么问题?
需求不清晰: 用例图通过图形化的方式,清晰地展示了系统的功能和用户需求,避免了文字描述的歧义和遗漏。
沟通障碍: 用例图是用户、分析师和开发人员之间沟通的桥梁,帮助各方更好地理解系统需求,达成共识。
系统边界不明确: 用例图明确了系统的边界,以及系统与外部环境的交互。
难以理解用户需求: 用例图从用户视角出发,更容易理解用户使用系统的目标和方式。
2 如何绘制用例图?
主要元素:
参与者(Actor): 与系统交互的外部实体,可以是人、其他系统或硬件设备。用小人图标表示。
用例(Use Case): 系统提供的一项完整的功能,代表参与者与系统的一次交互。用椭圆表示,内部写有用例名称,用动词+名词的形式描述,例如"预订服务"、"支付订单"。
关联(Association): 参与者与用例之间的连接线,表示参与者使用了某个用例。
包含(Include): 一个用例包含另一个用例,表示一个用例的执行必须包含另一个用例的执行。用虚线箭头表示,箭头指向被包含的用例。
扩展(Extend): 一个用例在特定条件下扩展另一个用例的功能。用虚线箭头表示,箭头指向被扩展的用例,并附有扩展条件。
泛化(Generalization): 表示参与者或用例之间的继承关系。用实线空心三角箭头表示,箭头指向父参与者或父用例。
我们日常开发小程序通常功能都不是特别复杂,逻辑关系比较清晰,我们只需要考虑参与者、用例、关联这三者即可
2.1 绘制步骤
在浏览器里输入绘图工具地址
展开UML,找到我们的参与者
将参与者拖入画布中
拖入一个椭圆,表示我们的用例
然后将actor和user case连接起来
按照用例的名称进行修改,比如第一个用例我们修改为用户登录
3 家政预约小程序用例图分析
顾客用例:
家政公司用例:
家政员工用例:
借助用例图,我们可以清晰的看到系统区分哪些角色,每种角色都可以有哪些操作,可以为后续系统架构和设计工作打下良好的基础
4 顾客用例详细分析
4.1 注册/登录
参与者: 顾客
简要描述: 顾客注册新账号或使用已有账号登录小程序。
前置条件: 无。
后置条件: 顾客成功登录小程序。
正常流程:
- 顾客打开小程序,进入注册/登录页面。
- 顾客选择注册或登录。
- 注册: 顾客填写手机号码、验证码、密码等信息,提交注册请求。系统验证信息,创建新账号。
- 登录: 顾客输入手机号码和密码,提交登录请求。系统验证信息,允许登录。
异常流程:
- 手机号码格式错误:系统提示输入正确的手机号码。
- 验证码错误或过期:系统提示重新获取验证码。
- 密码格式错误:系统提示输入符合要求的密码。
- 账号不存在或密码错误:系统提示重新输入或找回密码。
4.2 浏览服务
参与者: 顾客
简要描述: 顾客浏览小程序提供的各种家政服务项目。
前置条件: 顾客已登录。
后置条件: 顾客查看服务列表。
正常流程:
- 顾客进入小程序首页或服务列表页面。
- 系统展示可用的服务项目,例如保洁、洗衣、做饭等。
- 顾客可以按服务类型、价格、评价等进行排序和筛选。
异常流程:
- 网络连接异常:系统提示网络连接失败。
- 没有可用的服务:系统提示暂无服务。
4.3 搜索服务
参与者: 顾客
简要描述: 顾客通过关键词搜索特定的家政服务。
前置条件: 顾客已登录。
后置条件: 系统显示搜索结果。
正常流程:
- 顾客在搜索框输入关键词,例如"小时工"、"保姆"等。
- 系统根据关键词搜索相关的服务项目。
- 系统显示搜索结果,包括服务名称、价格、评价等信息。
异常流程:
- 没有找到匹配的服务:系统提示未找到相关服务。
4.4 查看服务详情
参与者: 顾客
简要描述: 顾客查看某个具体家政服务的详细信息。
前置条件: 顾客已登录,已浏览或搜索到服务。
后置条件: 顾客查看服务详情页面。
正常流程:
- 顾客点击服务列表中的某个服务项目。
- 系统显示该服务的详细信息,包括服务内容、价格、服务人员、评价等。
异常流程:
- 服务信息不存在:系统提示服务信息不存在。
4.5 预订服务
参与者: 顾客
简要描述: 顾客选择所需的服务项目、服务时间和地点,提交预订请求。
前置条件: 顾客已登录。
后置条件: 系统生成待确认的订单。
正常流程:
- 顾客浏览服务列表或通过搜索找到所需服务。
- 顾客查看服务详情,包括服务内容、价格、服务人员等信息。
- 顾客选择服务时间和地点。
- 顾客确认预订信息并提交预订请求。
- 系统验证预订信息,并生成待确认的订单。
异常流程:
- 所选服务在该时间段已被预订:系统提示顾客选择其他时间。
- 顾客输入的地址信息不完整或不正确:系统提示顾客修改地址信息。
4.6 支付订单
参与者: 顾客
简要描述: 顾客使用支付方式完成订单支付。
前置条件: 顾客已提交预订请求,订单状态为待支付。
后置条件: 订单状态更新为已支付。
正常流程:
- 顾客在订单详情页面选择支付方式,例如微信支付、支付宝支付等。
- 顾客完成支付操作。
- 系统接收支付结果,更新订单状态。
异常流程:
- 支付失败:系统提示支付失败,并提供重新支付的选项。
- 支付超时:系统提示支付超时,并提供重新支付的选项。
4.7 取消订单
参与者: 顾客
简要描述: 顾客在规定时间内取消已预订的订单。
前置条件: 顾客已预订服务,订单状态为待服务或待支付(根据业务规则)。
后置条件: 订单状态更新为已取消。
正常流程:
- 顾客在订单列表或订单详情页面选择取消订单。
- 系统验证取消条件(例如是否在允许取消的时间范围内)。
- 系统更新订单状态。
异常流程:
- 超出允许取消的时间范围:系统提示无法取消订单。
4.8 评价服务
参与者: 顾客
简要描述: 顾客对已完成的服务进行评价。
前置条件: 服务已完成。
后置条件: 系统保存顾客的评价信息。
正常流程:
- 顾客在订单列表或订单详情页面选择评价服务。
- 顾客填写评价内容,包括评分、文字评价等。
- 顾客提交评价。
- 系统保存评价信息。
4.9 查看订单记录
参与者: 顾客
简要描述: 顾客查看历史订单记录。
前置条件: 顾客已登录。
后置条件: 顾客查看订单列表。
正常流程:
- 顾客进入订单列表页面。
- 系统显示顾客的历史订单,可以按订单状态、服务时间等进行筛选和排序。
4.10 管理个人信息
参与者: 顾客
简要描述: 顾客管理个人信息,例如修改密码、更新联系方式等。
前置条件: 顾客已登录。
后置条件: 顾客信息更新。
正常流程:
- 顾客进入个人信息管理页面。
- 顾客修改个人信息,例如密码、联系方式、地址等。
- 顾客提交修改请求。
- 系统验证信息并更新数据库。
5 家政公司用例详解
5.1 管理服务项目
参与者: 家政公司
简要描述: 家政公司添加、修改、删除服务项目信息。
前置条件: 家政公司管理员已登录。
后置条件: 服务项目信息更新。
正常流程:
- 管理员进入服务项目管理页面。
- 管理员进行添加、修改或删除操作。
- 系统验证信息并更新数据库。
5.2 管理服务人员
参与者: 家政公司
简要描述: 家政公司添加、修改、删除服务人员信息,包括技能、排班等。
前置条件: 家政公司管理员已登录。
后置条件: 服务人员信息更新。
正常流程:
- 管理员进入服务人员管理页面。
- 管理员进行添加、修改或删除操作。
- 系统验证信息并更新数据库。
5.3 管理订单
参与者: 家政公司
简要描述: 家政公司查看、分配、处理订单。
前置条件: 家政公司管理员已登录。
后置条件: 订单状态更新。
正常流程:
- 管理员进入订单管理页面。
- 管理员查看订单信息,根据订单情况分配服务人员。
- 管理员更新订单状态。
5.4 处理投诉
参与者: 家政公司
简要描述: 家政公司处理顾客的投诉。
前置条件: 家政公司管理员已登录,收到投诉。
后置条件: 投诉处理完成。
正常流程:
- 管理员查看投诉信息。
- 管理员与顾客或服务人员沟通,了解情况。
- 管理员根据情况进行
6 家政员工用例详情
6.1 登录/签到
参与者: 家政服务员工
简要描述: 家政服务员工登录系统并进行签到,表明开始工作。
前置条件: 员工已注册账号。
后置条件: 员工成功登录并签到,系统记录签到时间。
正常流程:
- 员工打开小程序,进入登录页面。
- 员工输入账号和密码,点击登录。
- 登录成功后,员工点击"签到"按钮。
- 系统记录签到时间。
异常流程:
- 账号或密码错误:系统提示账号或密码错误。
- 网络连接异常:系统提示网络连接失败。
- 重复签到(在短时间内):系统提示请勿重复签到。
6.2 查看排班
参与者: 家政服务员工
简要描述: 家政服务员工查看自己的工作排班信息。
前置条件: 员工已登录。
后置条件: 员工查看排班信息。
正常流程:
- 员工进入排班页面。
- 系统显示员工的排班信息,包括服务日期、时间、地点、服务项目、客户信息等。
异常流程:
- 没有排班信息:系统提示暂无排班信息。
- 网络连接异常:系统提示网络连接失败。
6.3 接受/拒绝订单
参与者: 家政服务员工
简要描述: 家政服务员工根据自身情况接受或拒绝分配的订单。
前置条件: 员工已登录,收到新的订单分配通知。
后置条件: 订单状态更新。
正常流程:
- 员工收到新的订单分配通知。
- 员工查看订单详情,包括服务时间、地点、服务项目、客户信息等。
- 员工根据自身情况选择接受或拒绝订单。
- 系统更新订单状态。
异常流程:
- 订单已被其他员工接受:系统提示订单已被其他员工接受。
- 操作超时:系统提示操作超时,订单将自动分配给其他员工(或保持待分配状态)。
6.4 更新服务状态
参与者: 家政服务员工
简要描述: 家政服务员工在服务过程中更新服务状态,例如"开始服务"、"服务中"、"服务完成"等。
前置条件: 员工已接受订单。
后置条件: 订单状态更新,系统记录服务时间。
正常流程:
- 员工到达服务地点后,点击"开始服务"按钮。
- 服务完成后,员工点击"服务完成"按钮。
- 系统记录服务时间,更新订单状态。
异常流程:
- 网络连接异常:系统提示网络连接失败。
- 重复操作(例如短时间内连续点击"开始服务"):系统提示请勿重复操作。
6.5 查看收入记录
参与者: 家政服务员工
简要描述: 家政服务员工查看自己的收入记录。
前置条件: 员工已登录。
后置条件: 员工查看收入记录。
正常流程:
- 员工进入收入记录页面。
- 系统显示员工的收入记录,包括收入明细、结算周期等。
异常流程:
- 没有收入记录:系统提示暂无收入记录。
- 网络连接异常:系统提示网络连接失败。
总结
我们本篇介绍了如何借助UML的用例图来开展系统分析,并且按照角色详细拆解了家政预约小程序的各个用例。在分析阶段思考的越多,沟通的越多,在系统开发阶段需要修改的就越少,下一篇我们拆解一下第二个分析工具数据流图DFD。