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

ops/2024/12/24 20:08:31/

目录

  • 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/ops/144656.html

相关文章

前端关于pptxgen.js个人使用介绍

官方文档链接:Quick Start Guide | PptxGenJS git地址:https://github.com/gitbrent/PptxGenJS/ 1. 安装命令 npm install pptxgenjs --save yarn add pptxgenjs 2. 示例demo import pptxgen from "pptxgenjs"; // 引入pptxgen // 1. Create a Presenta…

GIN中间件

感觉中间件是gin中挺重要的内容,就拿出来单独讲讲吧! 什么是中间件? Gin框架允许开发者在处理请求的过程中,加入用户自己的 HandlerFunc 函数。 它适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记…

深度学习之超分辨率算法——SRCNN

网络为基础卷积层 tensorflow 1.14 scipy 1.2.1 numpy 1.16 大概意思就是针对数据,我们先把图片按缩小因子照整数倍进行缩减为小图片,再针对小图片进行插值算法,获得还原后的低分辨率的图片作为标签。 main.py 配置文件 from model im…

网络协议与网络安全学习记录

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密 HTTPS,代表Hyper Text Transfer Protocol Secure,将SSL/T…

Java 集合框架中的 List、ArrayList 和 泛型 实例

— Java 集合框架中的 List、ArrayList 和 泛型 在 Java 中,集合框架提供了许多不同类型的集合类,用于存储和操作对象。List 和 ArrayList 是最常用的两种集合类型,而泛型(Generics)则是 Java 中的一项重要特性&…

两款轻量级数据库SQLite 和 TinyDB,简单!实用!

SQLite 和 TinyDB 技术文档 一、SQLite 1. 特性 轻量级:SQLite 是一个轻量级的嵌入式数据库,无需独立的服务器进程,可以直接集成到应用程序中。 跨平台:支持多种操作系统,包括 Windows、Linux、macOS 等。 关系型数…

Vue常用指令

1. 插值表达式 {{}} <script setup> let msg="hello vue!" </script> <template> <h1>{{ msg }}--{{ 1+1 }}--{{ msg+sb }}</h1> </template> 2. Vue 常用指令 (以v- 开头) 2.1 v-html 替换标签元素内容,包含标签…

20240921解决使用PotPlayer在WIN10电脑播放4K分辨率10bit的视频出现偏色的问题

20240921解决使用PotPlayer在WIN10电脑播放4K分辨率10bit的视频出现偏色的问题 2024/9/21 10:40 缘起&#xff1a;常见的问题&#xff0c;你下载视频的时候&#xff0c;4K分辨率的视频播放的时候出现偏色异常&#xff0c;但是1080p分辨率的正常呀&#xff01; 偏色的识别&…