从用户视角出发:用例图分析家政预约小程序

devtools/2024/12/24 7:35:23/

目录

  • 1 引言:什么是用例图?它解决了什么问题?
  • 2 如何绘制用例图?
    • 2.1 绘制步骤
  • 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统一建模语言里就提供了许多方便的工具,我们本篇介绍一下其中的一种系统分析方法,用例分析。

1 引言:什么是用例图?它解决了什么问题?

什么是用例图? 用例图(Use Case Diagram)是统一建模语言(UML)中的一种图形化建模工具,用于描述系统与外部参与者(Actor)之间的交互。它从用户的角度出发,展示用户如何使用系统来完成特定的目标。

用例图解决了什么问题?

需求不清晰: 用例图通过图形化的方式,清晰地展示了系统的功能和用户需求,避免了文字描述的歧义和遗漏。

沟通障碍: 用例图是用户、分析师和开发人员之间沟通的桥梁,帮助各方更好地理解系统需求,达成共识。

系统边界不明确: 用例图明确了系统的边界,以及系统与外部环境的交互。

难以理解用户需求: 用例图从用户视角出发,更容易理解用户使用系统的目标和方式。

2 如何绘制用例图?

主要元素:

参与者(Actor): 与系统交互的外部实体,可以是人、其他系统或硬件设备。用小人图标表示。

用例(Use Case): 系统提供的一项完整的功能,代表参与者与系统的一次交互。用椭圆表示,内部写有用例名称,用动词+名词的形式描述,例如“预订服务”、“支付订单”。

关联(Association): 参与者与用例之间的连接线,表示参与者使用了某个用例。

包含(Include): 一个用例包含另一个用例,表示一个用例的执行必须包含另一个用例的执行。用虚线箭头表示,箭头指向被包含的用例。

扩展(Extend): 一个用例在特定条件下扩展另一个用例的功能。用虚线箭头表示,箭头指向被扩展的用例,并附有扩展条件。

泛化(Generalization): 表示参与者或用例之间的继承关系。用实线空心三角箭头表示,箭头指向父参与者或父用例。

我们日常开发小程序通常功能都不是特别复杂,逻辑关系比较清晰,我们只需要考虑参与者、用例、关联这三者即可

2.1 绘制步骤

在浏览器里输入绘图工具地址

https://app.diagrams.net/

在这里插入图片描述
展开UML,找到我们的参与者
在这里插入图片描述
将参与者拖入画布中
在这里插入图片描述
拖入一个椭圆,表示我们的用例
在这里插入图片描述
然后将actor和user case连接起来
在这里插入图片描述
按照用例的名称进行修改,比如第一个用例我们修改为用户登录
在这里插入图片描述

3 家政预约小程序用例图分析

顾客用例:
在这里插入图片描述
家政公司用例:
在这里插入图片描述
家政员工用例:
在这里插入图片描述
借助用例图,我们可以清晰的看到系统区分哪些角色,每种角色都可以有哪些操作,可以为后续系统架构和设计工作打下良好的基础

4 顾客用例详细分析

4.1 注册/登录

参与者: 顾客

简要描述: 顾客注册新账号或使用已有账号登录小程序

前置条件: 无。

后置条件: 顾客成功登录小程序

正常流程:

  1. 顾客打开小程序,进入注册/登录页面。
  2. 顾客选择注册或登录。
  3. 注册: 顾客填写手机号码、验证码、密码等信息,提交注册请求。系统验证信息,创建新账号。
  4. 登录: 顾客输入手机号码和密码,提交登录请求。系统验证信息,允许登录。

异常流程:

  1. 手机号码格式错误:系统提示输入正确的手机号码。
  2. 验证码错误或过期:系统提示重新获取验证码。
  3. 密码格式错误:系统提示输入符合要求的密码。
  4. 账号不存在或密码错误:系统提示重新输入或找回密码。

4.2 浏览服务

参与者: 顾客

简要描述: 顾客浏览小程序提供的各种家政服务项目。

前置条件: 顾客已登录。

后置条件: 顾客查看服务列表。

正常流程:

  1. 顾客进入小程序首页或服务列表页面。
  2. 系统展示可用的服务项目,例如保洁、洗衣、做饭等。
  3. 顾客可以按服务类型、价格、评价等进行排序和筛选。

异常流程:

  1. 网络连接异常:系统提示网络连接失败。
  2. 没有可用的服务:系统提示暂无服务。

4.3 搜索服务

参与者: 顾客

简要描述: 顾客通过关键词搜索特定的家政服务。

前置条件: 顾客已登录。

后置条件: 系统显示搜索结果。

正常流程:

  1. 顾客在搜索框输入关键词,例如“小时工”、“保姆”等。
  2. 系统根据关键词搜索相关的服务项目。
  3. 系统显示搜索结果,包括服务名称、价格、评价等信息。

异常流程:

  1. 没有找到匹配的服务:系统提示未找到相关服务。

4.4 查看服务详情

参与者: 顾客

简要描述: 顾客查看某个具体家政服务的详细信息。

前置条件: 顾客已登录,已浏览或搜索到服务。

后置条件: 顾客查看服务详情页面。

正常流程:

  1. 顾客点击服务列表中的某个服务项目。
  2. 系统显示该服务的详细信息,包括服务内容、价格、服务人员、评价等。

异常流程:

  1. 服务信息不存在:系统提示服务信息不存在。

4.5 预订服务

参与者: 顾客

简要描述: 顾客选择所需的服务项目、服务时间和地点,提交预订请求。

前置条件: 顾客已登录。

后置条件: 系统生成待确认的订单。

正常流程:

  1. 顾客浏览服务列表或通过搜索找到所需服务。
  2. 顾客查看服务详情,包括服务内容、价格、服务人员等信息。
  3. 顾客选择服务时间和地点。
  4. 顾客确认预订信息并提交预订请求。
  5. 系统验证预订信息,并生成待确认的订单。

异常流程:

  1. 所选服务在该时间段已被预订:系统提示顾客选择其他时间。
  2. 顾客输入的地址信息不完整或不正确:系统提示顾客修改地址信息。

4.6 支付订单

参与者: 顾客

简要描述: 顾客使用支付方式完成订单支付。

前置条件: 顾客已提交预订请求,订单状态为待支付。

后置条件: 订单状态更新为已支付。

正常流程:

  1. 顾客在订单详情页面选择支付方式,例如微信支付、支付宝支付等。
  2. 顾客完成支付操作。
  3. 系统接收支付结果,更新订单状态。

异常流程:

  1. 支付失败:系统提示支付失败,并提供重新支付的选项。
  2. 支付超时:系统提示支付超时,并提供重新支付的选项。

4.7 取消订单

参与者: 顾客

简要描述: 顾客在规定时间内取消已预订的订单。

前置条件: 顾客已预订服务,订单状态为待服务或待支付(根据业务规则)。

后置条件: 订单状态更新为已取消。

正常流程:

  1. 顾客在订单列表或订单详情页面选择取消订单。
  2. 系统验证取消条件(例如是否在允许取消的时间范围内)。
  3. 系统更新订单状态。

异常流程:

  1. 超出允许取消的时间范围:系统提示无法取消订单。

4.8 评价服务

参与者: 顾客

简要描述: 顾客对已完成的服务进行评价。

前置条件: 服务已完成。

后置条件: 系统保存顾客的评价信息。

正常流程:

  1. 顾客在订单列表或订单详情页面选择评价服务。
  2. 顾客填写评价内容,包括评分、文字评价等。
  3. 顾客提交评价。
  4. 系统保存评价信息。

4.9 查看订单记录

参与者: 顾客

简要描述: 顾客查看历史订单记录。

前置条件: 顾客已登录。

后置条件: 顾客查看订单列表。

正常流程:

  1. 顾客进入订单列表页面。
  2. 系统显示顾客的历史订单,可以按订单状态、服务时间等进行筛选和排序。

4.10 管理个人信息

参与者: 顾客

简要描述: 顾客管理个人信息,例如修改密码、更新联系方式等。

前置条件: 顾客已登录。

后置条件: 顾客信息更新。

正常流程:

  1. 顾客进入个人信息管理页面。
  2. 顾客修改个人信息,例如密码、联系方式、地址等。
  3. 顾客提交修改请求。
  4. 系统验证信息并更新数据库。

5 家政公司用例详解

5.1 管理服务项目

参与者: 家政公司

简要描述: 家政公司添加、修改、删除服务项目信息。

前置条件: 家政公司管理员已登录。

后置条件: 服务项目信息更新。

正常流程:

  1. 管理员进入服务项目管理页面。
  2. 管理员进行添加、修改或删除操作。
  3. 系统验证信息并更新数据库。

5.2 管理服务人员

参与者: 家政公司

简要描述: 家政公司添加、修改、删除服务人员信息,包括技能、排班等。

前置条件: 家政公司管理员已登录。

后置条件: 服务人员信息更新。

正常流程:

  1. 管理员进入服务人员管理页面。
  2. 管理员进行添加、修改或删除操作。
  3. 系统验证信息并更新数据库。

5.3 管理订单

参与者: 家政公司

简要描述: 家政公司查看、分配、处理订单。

前置条件: 家政公司管理员已登录。

后置条件: 订单状态更新。

正常流程:

  1. 管理员进入订单管理页面。
  2. 管理员查看订单信息,根据订单情况分配服务人员。
  3. 管理员更新订单状态。

5.4 处理投诉

参与者: 家政公司

简要描述: 家政公司处理顾客的投诉。

前置条件: 家政公司管理员已登录,收到投诉。

后置条件: 投诉处理完成。

正常流程:

  1. 管理员查看投诉信息。
  2. 管理员与顾客或服务人员沟通,了解情况。
  3. 管理员根据情况进行

6 家政员工用例详情

6.1 登录/签到

参与者: 家政服务员工

简要描述: 家政服务员工登录系统并进行签到,表明开始工作。

前置条件: 员工已注册账号。

后置条件: 员工成功登录并签到,系统记录签到时间。

正常流程:

  1. 员工打开小程序,进入登录页面。
  2. 员工输入账号和密码,点击登录。
  3. 登录成功后,员工点击“签到”按钮。
  4. 系统记录签到时间。

异常流程:

  1. 账号或密码错误:系统提示账号或密码错误。
  2. 网络连接异常:系统提示网络连接失败。
  3. 重复签到(在短时间内):系统提示请勿重复签到。

6.2 查看排班

参与者: 家政服务员工

简要描述: 家政服务员工查看自己的工作排班信息。

前置条件: 员工已登录。

后置条件: 员工查看排班信息。

正常流程:

  1. 员工进入排班页面。
  2. 系统显示员工的排班信息,包括服务日期、时间、地点、服务项目、客户信息等。

异常流程:

  1. 没有排班信息:系统提示暂无排班信息。
  2. 网络连接异常:系统提示网络连接失败。

6.3 接受/拒绝订单

参与者: 家政服务员工

简要描述: 家政服务员工根据自身情况接受或拒绝分配的订单。

前置条件: 员工已登录,收到新的订单分配通知。

后置条件: 订单状态更新。

正常流程:

  1. 员工收到新的订单分配通知。
  2. 员工查看订单详情,包括服务时间、地点、服务项目、客户信息等。
  3. 员工根据自身情况选择接受或拒绝订单。
  4. 系统更新订单状态。

异常流程:

  1. 订单已被其他员工接受:系统提示订单已被其他员工接受。
  2. 操作超时:系统提示操作超时,订单将自动分配给其他员工(或保持待分配状态)。

6.4 更新服务状态

参与者: 家政服务员工

简要描述: 家政服务员工在服务过程中更新服务状态,例如“开始服务”、“服务中”、“服务完成”等。

前置条件: 员工已接受订单。

后置条件: 订单状态更新,系统记录服务时间。

正常流程:

  1. 员工到达服务地点后,点击“开始服务”按钮。
  2. 服务完成后,员工点击“服务完成”按钮。
  3. 系统记录服务时间,更新订单状态。

异常流程:

  1. 网络连接异常:系统提示网络连接失败。
  2. 重复操作(例如短时间内连续点击“开始服务”):系统提示请勿重复操作。

6.5 查看收入记录

参与者: 家政服务员工

简要描述: 家政服务员工查看自己的收入记录。

前置条件: 员工已登录。

后置条件: 员工查看收入记录。

正常流程:

  1. 员工进入收入记录页面。
  2. 系统显示员工的收入记录,包括收入明细、结算周期等。

异常流程:

  1. 没有收入记录:系统提示暂无收入记录。
  2. 网络连接异常:系统提示网络连接失败。

总结

我们本篇介绍了如何借助UML的用例图来开展系统分析,并且按照角色详细拆解了家政预约小程序的各个用例。在分析阶段思考的越多,沟通的越多,在系统开发阶段需要修改的就越少,下一篇我们拆解一下第二个分析工具数据流图DFD。


http://www.ppmy.cn/devtools/144928.html

相关文章

CTF-WEB php-Session 文件利用 [第一届国城杯 n0ob_un4er 赛后学习笔记]

step 1 搭建容器 教程 题目 github.com Dockerfile 有点问题,手动修复一下 FROM php:7.2-apacheCOPY ./flag /root COPY ./readflag / COPY ./html/ /var/www/html/ COPY ./php.ini /usr/local/etc/php/php.ini COPY ./readflag /readsecretRUN chmod 755 /var/www/html &…

基于Hal库stm32串口配置printf函数

使用示例 /*初始化USART 配置模式为 115200 8-N-1,中断接收*/ DEBUG_USART_Config(); printf("欢迎使用野火 电机开发板 步进电机 速度闭环控制 位置式PID例程\r\n"); printf("按下按键1增加目标值、按键2减少目标值\r\n"); printf("其他操作请使用…

Slate文档编辑器-TS类型扩展与节点类型检查

Slate文档编辑器-TS类型扩展与节点类型检查 在之前我们基于slate实现的文档编辑器探讨了WrapNode数据结构与操作变换,主要是对于嵌套类型的数据结构类型需要关注的Normalize与Transformers,那么接下来我们更专注于文档编辑器的数据结构设计,…

Echarts连接数据库,实时绘制图表详解

文章目录 Echarts连接数据库,实时绘制图表详解一、引言二、步骤一:环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二:数据获取与处理1、查询数据库2、数据处理 四、步骤三:ECharts图表配置与渲染1、配置ECharts选项2、动…

ssr实现方案

目录 序言 一、流程 二、前端要做的事情 三、节点介绍 四、总结 序言 本文不是详细的实现过程,是让你最快最直接的理解ssr的真正实现方法,有前端经验的同学,能够很好的理解过程,细节根据具体项目实现 一、前端要做的事情 1.…

[Effective C++]条款38-39 复合和private继承

本文初发于 “天目中云的小站”,同步转载于此。 条款38 : 通过复合塑膜出has-a或"is-implemented-in-terms-of" 在条款32中我们认识了public继承意味着is-a, 本条款将会认识两个新的关系, 均可通过"复合"这一操作实现出来. 复合 所谓复合, 就是…

漏洞检测工具:允许TRACE方法漏洞

允许TRACE方法漏洞 漏洞定义 TRACE方法是HTTP协议中定义的一种调试方法,主要用于测试或诊断Web服务器连接。Web服务器在配置时未正确禁用HTTP TRACE方法,从而允许客户端向服务器发送TRACE请求,并导致服务器返回可能包含敏感信息的响应。 漏…

无人零售及开源 AI 智能名片 S2B2C 商城小程序的深度剖析

摘要:本文聚焦无人零售这一新兴零售模式及其发展浪潮中崛起的开源 AI 智能名片 S2B2C 商城小程序。深入阐述无人零售的发展态势,细致剖析其驱动因素、现存问题,全面详细介绍小程序的功能特性、应用优势以及对无人零售的潜在价值,旨…