简介
一个用例图是由统一建模语言(UML)定义的一种行为图。它用于描述用户(参与者)与系统之间的交互,以实现特定目标。用例图对于从用户的角度理解和记录系统的功能需求至关重要。本教程将通过以Wheels自行车租赁系统为例,指导您创建和理解用例图。
什么是用例图?
一个用例图由以下关键组件组成:
- 参与者:代表与系统交互的用户或外部系统。参与者可以是人类、其他系统或硬件设备。
- 用例:代表系统向参与者提供的特定功能或服务。每个用例描述了参与者通过与系统交互所希望实现的目标。
- 关系:
- 通信关联:一条连接参与者与用例的线,表示该参与者参与该用例。
- 包含:一种用例之间的关系,其中一个用例包含另一个用例的行为。
- 扩展:一种用例之间的关系,其中一个用例在特定条件下扩展另一个用例的行为。
创建用例图
步骤1:识别参与者
识别所有将与系统交互的参与者。对于Wheels自行车租赁系统,参与者包括:
- 管理员
- 接待员
步骤2:识别用例
识别系统提供的主要功能或服务。每个用例应代表一个角色想要实现的特定目标。对于Wheels系统,用例包括:
- 维护自行车列表
- 维护客户列表
- 处理咨询
- 发放自行车
- 处理自行车归还
- 查找自行车
- 打印收据
步骤3:绘制用例图
- 绘制参与者:将参与者表示为小人图形。
- 绘制用例:将用例表示为椭圆形。
- 连接参与者和用例:使用线条将参与者连接到他们参与的用例。
- 添加关系:使用虚线箭头表示“包含”和“扩展”关系。
示例:Wheels自行车租赁系统
让我们根据提供的图片为Wheels自行车租赁系统创建一个用例图。
参与者:
- 管理员
- 接待员
用例:
- 维护自行车列表
- 维护客户列表
- 处理咨询
- 发放自行车
- 处理自行车归还
- 查找自行车
- 打印收据
用例图:

说明:
- 参与者:
管理员(管理员)接待员(接待员)
- 用例:
维护自行车列表(用例1)维护客户列表(用例2)处理咨询(用例3)发放自行车(用例4)处理自行车归还(用例5)查找自行车(用例6)打印收据(用例7)
- 关系:
- 该
接待员参与了处理咨询,发放自行车,以及处理自行车归还. - 该
管理员参与维护自行车列表和维护客户列表. - 该
发放自行车用例包括处理咨询用例。 - 该
处理自行车归还用例包括打印收据用例。 - 该
发放自行车用例扩展了维护客户列表用例。 - 该
查找自行车用例包含在维护自行车列表,维护客户列表,处理咨询,以及发放自行车.
- 该
用例描述
除了图表之外,用例的描述也很重要。用例描述通常包括:
- 用例名称:用例的名称。
- 参与者:参与该用例的参与者。
- 目标:用例的目标或目的。
- 概要:对用例中发生的事情的简要描述。
- 典型事件流程:对事件正常流程的逐步描述。
- 替代流程:对任何替代或异常事件流程的描述。
示例:发放自行车用例描述
用例:发放自行车
参与者:接待员
目标:出租自行车
概述:当顾客进入店铺时,他们会选择一辆自行车进行租赁。接待员在系统中查找该自行车,并告知顾客在指定时间段内租赁该自行车的费用。顾客支付费用,获得收据,然后带着自行车离开。
典型事件流程:
- 顾客选择一辆自行车。
- 接待员输入自行车编号。
- 系统显示自行车的详细信息,包括每日租赁费率和押金。
- 顾客指定租赁时长。
- 接待员输入租赁时长。
- 系统显示总租赁费用。
- 顾客同意该价格。
- 接待员输入顾客信息。
- 系统显示顾客信息。
- 顾客支付总费用。
- 接待员记录已支付金额。
- 系统打印收据。
其他流程:
- 步骤8和9:顾客信息已在系统中,因此接待员只需输入一个标识符,系统便会显示顾客信息。
- 步骤7至12:顾客可能对价格不满意,从而终止交易。
发放自行车用例:详细说明
Wheels自行车租赁系统中的“发放自行车”用例代表了将自行车租赁给顾客的过程。该用例涉及接待员与系统之间的多次交互,以实现发放自行车的目标。下面我们将解释“发放自行车”用例中的事件流程,以及它与“包含”和“扩展”用例的关系。
参与者:
- 接待员:与系统交互以发放自行车的主要参与者。
目标:
- 将自行车租赁给顾客。
概述:
当顾客进入店铺时,他们会选择一辆自行车进行租赁。接待员在系统中查找该自行车,并告知顾客在指定时间段内租赁该自行车的费用。顾客支付费用,获得收据,然后带着自行车离开。
典型事件流程:
- 客户选择一辆自行车: 客户从可用选项中选择一辆自行车。
- 接待员输入自行车编号: 接待员将自行车编号输入系统。
- 系统显示自行车详情: 系统显示自行车详情,包括每日租赁费率和押金。
- 客户指定租赁时长: 客户表明他们希望租赁自行车的时间长度。
- 接待员输入租赁时长: 接待员将租赁时长输入系统。
- 系统显示总租赁费用: 系统计算并显示租赁自行车的总费用。
- 客户同意价格: 客户确认他们同意租赁费用。
- 接待员输入客户信息: 接待员将客户信息输入系统。
- 系统显示客户信息: 系统显示已输入的客户信息以供核对。
- 客户支付总费用: 客户完成付款。
- 接待员记录已支付金额: 接待员在系统中记录付款信息。
- 系统打印收据: 系统生成并打印客户收据。
与其他用例的关系:
- 包含关系:
- 处理咨询: “发放自行车”用例包含“处理咨询”用例。这意味着每当发放自行车时,系统必须处理关于自行车可用性和费用的咨询。在“发放自行车”用例的流程中,始终包含处理咨询的环节。
- 查找自行车: “发放自行车”用例包含“查找自行车”用例。这意味着收银员将使用系统根据输入的自行车编号查找自行车信息。这是发放自行车的必要步骤。
- 扩展关系:
- 维护客户列表: “发放自行车”用例扩展了“维护客户列表”用例。这意味着在发放自行车的过程中,系统可能需要添加新客户或更新现有客户信息。此扩展是条件性的,仅在必要时发生。
包含和扩展用例的事件流程:
- 客户选择一辆自行车: 客户选择一辆自行车。
- 收银员输入自行车编号: 收银员输入自行车编号。
- 包含:查找自行车: 系统根据输入的编号查找自行车信息。
- 系统显示自行车信息: 系统显示自行车信息,包括每日租金和押金。
- 包含:处理咨询: 系统处理关于自行车可用性和费用的咨询。
- 客户指定租赁时长: 客户表明租赁时长。
- 收银员输入租赁时长: 收银员输入租赁时长。
- 系统显示总租赁费用: 系统计算并显示总租赁费用。
- 客户同意价格: 客户确认租赁费用。
- 收银员输入客户信息: 收银员输入客户信息。
- 扩展:维护客户列表: 如果客户是新客户或其信息需要更新,系统将添加或更新客户信息。
- 系统显示客户信息: 系统显示输入的客户信息以供核对。
- 客户支付总费用: 客户完成付款。
- 接待员记录已支付金额: 接待员记录付款信息。
- 系统打印收据: 系统为客户提供并打印收据。
“发放自行车”用例是一个综合性的过程,涉及接待员与系统之间的多次交互。通过与“查找自行车”和“处理咨询”用例使用“包含”关系,确保查找自行车信息和处理咨询的必要步骤始终被执行。与“维护客户列表”用例的“扩展”关系,允许根据条件添加或更新客户信息,从而在发放自行车过程中提供灵活性。理解这些关系有助于构建一个稳健且以用户为中心的系统,有效满足Wheels自行车租赁系统的功能需求。
结论
用例图用例图是软件开发过程中的重要工具,尤其是在面向对象开发领域。它们以清晰简洁的视觉方式展示用户(参与者)如何与系统交互以实现特定目标(用例)。通过识别参与者、用例及其相互关系,开发人员可以有效地建模并传达系统的功能需求。
在Wheels自行车租赁系统的背景下,我们展示了如何创建用例图这些用例图能够捕捉不同参与者(接待员和管理员)与系统功能(如维护自行车和客户列表、处理咨询、发放自行车以及处理还车)之间的交互。我们还展示了如何引入“包含”和“扩展”等关系,分别表示共用行为和附加行为。
用例图及其描述为后续的开发活动奠定了基础,包括创建其他UML模型以及最终实现系统。通过遵循本教程中列出的步骤,开发人员可以确保全面理解系统的需求,并能有效地向利益相关者传达这些需求。
总之,掌握用例图的创建与解读用例图对于任何希望构建稳健、以用户为中心系统的软件开发人员而言,掌握用例图的创建与解读至关重要。通过不断练习,这些图表将成为建模、文档化和验证任何软件项目功能需求的宝贵工具。












