在用例图中,应该如何区分《include》和《extend》这两个原型? 转

本文探讨了在软件系统需求收集过程中,如何通过UML用例图区分'Include'(包含)和'Extend'(扩展)这两种关系。通过ATM系统和图书管理系统的例子,清晰地解释了它们的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自http://www.cnblogs.com/bookideas/

"

我们知道,在收集一个软件系统需求的时候,一般会用到用例图。在分析两个用例之间的关系的时候,会用到《include》和《extend》这两个原型。这两个原型很容易让UML的初学者感到迷惑,包括我,呵呵。今天,在这里初步探讨它们之间的区别。

  • 《Include》: 表示一个用例包含另一个用例,即要完成包含用例就一定要执行被包含用例。
  • 《extend》:表示一个用例扩展到另一个用例,这里有一点需要注意:在执行一个被扩展用例时,不一定执行扩展用例。即扩展用例的执行是受条件限制的,是可选的。这一点,是区别两个用例之间的关系是《包含》还是《扩展》的依据。

   下面举两个比较直观的例子:

image

  •     说明:这是一个ATM系统中的两个用例,很显然,在执行“取款”用例的过程必定要执行“银行卡验证”用例。将来在画“取款”的活动图的时候,一定要把“银行卡验证”作为一个步骤加入进去。

image

  • 说明:这是一个图书管理系统常见的两个用例。这里被扩展用例“还书”有一个“扩展点”即“过期”。当且仅当还书过期的时候,“还书”用例的活动图中才需要加入扩展用例“罚款”,即“罚款”用例是可选的,而不是必选的。

从以上两个例子,我们就可以明确得区分,两种关系的区别。

"

再贴几张图感受一下:

2011061917074059.jpg

2011061917081794.jpg

2011061917091752.jpg

转载于:https://www.cnblogs.com/ndxsdhy/archive/2011/06/19/2084698.html

<think>好的,我需要帮助用户了解如何绘制校园寻路系统的用。首先,用属于UML的一部分,所以我要先回忆UML用的基本要素。用主要包括参与者(Actor)、用(Use Case)以及它们之间关系。 用户提到的校园寻路系统,应该涉及学生、访客等作为参与者。用可能包括路径规划、查看地、导航提示等。根据引用[2],导航网格生成寻路算法是关键,但用更侧重用户与系统的交互,不需要深入到算法细节。 接下来,我需要确定主要步骤。首先是识别参与者,比如学生、教师、访客、管理员。然后是确定用,比如“查找路径”、“选择起点终点”、“实时导航”等。还要考虑系统管理功能,比如地更新,这可能由管理员参与。 然后要描述用之间关系,比如“查找路径”可能包含“选择起点”“设置偏好”,使用包含关系include)。或者“实时导航”可能会扩展出“调整路线”,用扩展关系extend)。 需要提醒用户使用专业工具,比如Axure,但根据引用[1],Axure在画UML时没有模板,可能需要自己绘制。所以可以推荐其他工具如Lucidchart、PlantUML或者StarUML,这些更适合UML。 还要注意用的布局,参与者放在两侧,用在中间,关联线连接。最后检查是否符合UML标准,确保逻辑清晰。 可能用户会混淆用功能模块,需要强调用是从用户角度出发的系统功能。另外,是否需要权限管理?比如访客可能只能查看基本路径,而管理员可以更新地,这一点也要考虑进去。 总结步骤:识别参与者→确定用→建立关系→工具选择→绘制→验证。同时结合用户提供的引用,特别是引用[2]中的导航网格生成寻路算法,可能在用中体现为系统后台处理,但用不涉及具体实现,所以保持抽象层面即可。</think>### 校园寻路系统用绘制方法 #### **1. 确定系统范围参与者** - **参与者(Actor)**:与系统交互的外部角色 - 学生/教师:主要用户,使用寻路功能 - 访客:可能需要简化版路径规划 - 管理员:维护地数据系统设置 - 外部地服务(可选):如集成第三方地API[^2] #### **2. 定义核心用(Use Case)** - **用户相关用**: - 查找路径:输入起点终点获取最优路线 - 选择路径偏好(步行/骑行/无障碍通道) - 查看实时导航提示(如语音指引、方向箭头) - 保存常用路径 - 上报路径问题(施工/障碍物) - **管理相关用**: - 更新校园地数据 - 管理用户权限(如访客功能限制) - 处理路径上报问题 #### **3. 建立用关系** - **包含关系Include)**: - 查找路径 → 包含 → 选择起点/终点、设置偏好 - **扩展关系Extend)**: - 实时导航 → 扩展 → 调整路线(遇障碍时) - **泛化关系(Generalization)**: - 用户 → 泛化为 → 学生、访客、教师 #### **4. 工具选择与绘制** - **推荐工具**: - **PlantUML**(代码生成UML,适合快速原型) - **Lucidchart**(在线协作,含UML模板) - **StarUML**(专业UML设计工具) - **Axure**(需自定义组件,如引用[1]提到的原型工具) - **绘制示**: ```plantuml @startuml left to right direction actor 学生 as Student actor 管理员 as Admin rectangle "校园寻路系统" { Student --> (查找路径) Student --> (上报路径问题) (查找路径) .> (选择起点/终点) : include (查找路径) .> (设置偏好) : include (实时导航) .> (调整路线) : extend Admin --> (更新地数据) Admin --> (管理用户权限) } @enduml ``` #### **5. 验证与优化** - **检查项**: - 是否覆盖所有用户角色需求? - 用粒度是否适中(避免过于技术性,如引用[2]的导航网格生成属于实现细节) - 关系是否符合实际交互逻辑? - **常见问题**: - 瞬移问题(如引用[4]提到的路径规划异常)需在用中体现异常处理分支 - 多线程设计影响应在系统设计阶段处理,用不涉及具体技术实现 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值