用例图评审时出现“关系表达混乱”,通常集中在三类位置:系统边界、参与者、包含与扩展。排查时按“症状—原因假设—证据—修正—回放验证”推进,先确认边界框是否只圈住本系统职责,再核对参与者是否都在边界外、命名是否一致,随后检查每条连线是否对应真实交互,最后修正包含与扩展的箭头方向和触发条件。每类判断都要用需求原文、流程走查和评审记录支撑,证据不足时标为待确认。
要点总览(TL;DR)
- 关系混乱先拆成三类可观察症状:系统边界圈错、参与者位置与命名不一致、包含与扩展方向或条件画错。
- 每类症状先提原因假设,再用需求原文、流程走查、场景回放和评审记录验证;证据不足标为待确认,不写成缺陷。
- 修正按边界—参与者—连线—包含与扩展的顺序推进,边界一变参与者和连线往往要跟着调整。
- 改完用典型业务场景逐个走查,并交叉核对需求文档,确认每个用例和连线都有需求依据。
- 把边界与关系检查点固化进评审清单、统一命名规范并保留变更记录,可减少同类问题复发。
评审时关系混乱通常表现成哪几类症状
“关系混乱”是一个笼统的评审意见,落到图上往往能拆成若干可观察的具体现象。排查的第一步是把意见转成症状清单,让每位评审人对着同一组条目指认问题位置,避免反复争论“哪里乱”。以下三类症状覆盖了用例图关系表达的主要出错面。
系统边界类症状
- 边界框内出现外部系统、外部平台或第三方服务,例如把支付渠道、短信网关画成本系统的一部分。
- 边界框按组织架构划分,把某个部门的所有工作都圈进来,而不是按本系统承担的职责划分。
- 边界框缺失或范围模糊,图上无法判断哪些用例属于本系统、哪些属于周边系统。
参与者类症状
- 参与者被画在系统边界框内,与用例混在同一区域。
- 同一外部角色出现多个名称,如“客户”“用户”“会员”并存,无法判断是否为同一参与者。
- 参与者粒度过粗或过细:一个“管理员”承担了全部后台职责,或把同一角色的不同权限拆成多个参与者。
- 参与者与用例之间的连线实际表达的是系统内部模块调用,而非外部角色与系统的交互。
- 同一用例被多个参与者重复连接,导致该用例到底由谁触发、职责归谁变得不清楚。
包含与扩展类症状
- 箭头方向画反:包含关系的箭头指向了包含方,扩展关系的箭头指向了扩展用例。
- 把条件触发的可选行为画成包含,使可选动作在图上看起来是每次必做。
- 把代码层面的公共复用直接画成包含,而该行为在业务上并非每个主用例都必然执行。
- 扩展关系缺少扩展条件或扩展点说明,读者不知道在什么情况下走扩展路径。
评审时可以先按上表逐项打勾,把“关系混乱”收敛为若干条带位置的具体问题,再进入原因分析。症状清单只记录现象,不在此阶段下结论。
每类症状对应哪些原因假设与排除证据
症状确认后,下一步是为每条症状提出可能原因,并为每个原因找到能证实或排除它的证据。原因假设与证据要分开记录:假设是待验证的判断,证据是需求原文、流程走查、场景回放或评审记录中的具体内容。证据不足时标注“待确认”,不直接写成缺陷。
| 症状 | 原因假设 | 验证证据 | 排除或确认 |
|---|---|---|---|
| 边界框圈入外部系统 | 把外部系统当成本系统模块;按组织架构而非系统职责划分边界 | 需求原文中的系统职责描述;业务流程走查中该外部系统的实际归属 | 若需求明确该能力由外部系统提供,确认为边界错误;若需求未写清,标为待确认 |
| 参与者出现在边界内 | 绘图时未区分系统内外;把内部岗位当成外部角色 | 业务流程中该角色是否通过系统界面与系统交互;评审记录中的角色说明 | 确认其为本系统外部交互方则移出边界;若为本系统内部模块,改为内部实现说明 |
| 同一角色多个名称 | 不同评审人按各自习惯命名;角色粒度未统一 | 需求原文中的角色定义;业务术语表;场景回放中该角色的实际行为 | 行为一致则合并为一个参与者;行为不同则保留并补充区分说明 |
| 连线表达内部调用 | 把模块依赖误画成参与者交互;绘图时混入实现细节 | 该连线两端是否分属系统内外;场景走查中是否存在对应的外部触发 | 无外部触发则删除连线;有外部触发则改为正确的参与者—用例关系 |
| 包含箭头方向反了 | 对包含语义理解偏差;绘图时箭头随手连接 | 被包含用例是否在主用例每次执行时都必然发生 | 是则保留包含并改正箭头指向被包含用例;否则考虑改为扩展 |
| 可选行为画成包含 | 混淆必选与可选;把复用当包含 | 需求原文中该行为的触发条件;场景回放中是否每次都会执行 | 条件触发则改为扩展并写明条件;每次必做则保留包含 |
| 扩展点未写条件 | 只画了关系未补说明;需求本身未澄清触发条件 | 需求原文或业务规则中的触发条件;评审记录中的讨论结论 | 找到条件则补写扩展点;找不到则标为待确认并回到需求澄清 |
使用这张表时,注意把“原因假设”和“结论”分栏记录。例如“边界框圈入外部系统”只是症状,原因可能是按组织架构划分,也可能是绘图时疏忽;只有需求原文和流程走查都指向外部系统承担该职责时,才能确认为边界错误。对于同一用例被多个参与者重复连接的情况,还要核对各参与者是否真的都触发该用例,还是其中某条连线表达的是查看结果之类的间接关系。
证据收集可以借助评审记录和需求条目的关联管理。在ONES中,需求条目与评审意见可以放在同一工作项上下文中跟踪,评审人指出的边界或关系问题能对应到具体需求条目,修正时也有变更记录可查。这样做的目的是让“待确认”项有归属、有后续动作,而不是停留在会议纪要里。
按什么顺序排查并修正边界与参与者关系
修正顺序影响返工次数。边界一变,参与者和连线往往要跟着调整;参与者一合并,包含与扩展的判断也可能变化。建议按“边界—参与者—连线—包含与扩展”的顺序推进,每一步完成后再进入下一步。
第一步:固定系统边界
先明确本系统承担的职责范围,把外部系统、外部组织和外部人员移到边界之外。判断依据是需求中的系统职责描述,而不是当前组织架构。边界框内只保留本系统提供或承载的用例。若某个能力由外部系统提供、本系统只是调用,应放在边界外并以参与者或外部系统标识。
第二步:统一参与者
按与系统交互的外部角色重新梳理参与者:合并同义角色,拆分职责过粗的角色,删除实际是内部模块的“参与者”。命名以业务术语为准,同一角色在全图使用同一名称。拆分粒度以“该角色与系统的交互集合是否明显不同”为判断标准,避免为每个权限点建一个参与者。
第三步:核对参与者与用例的连线
逐条检查连线是否对应一次真实交互:该参与者是否通过系统发起或接收该用例的结果。表达内部调用、模块依赖或数据流向的连线应删除,必要时在用例描述中说明内部实现。同一用例被多个参与者连接时,确认每个参与者都有独立的触发场景,否则合并或删除多余连线。
第四步:修正包含与扩展
按语义重新判断:主用例每次执行都必然发生、且被多个用例共用的行为,用包含,箭头指向被包含用例;仅在特定条件下才发生的可选行为,用扩展,箭头指向被扩展用例,并写明扩展条件和扩展点。把“复用”作为包含的唯一理由是不够的,还要确认它在业务上是否必选。
修正过程中保留原图版本,每完成一步保存一次,便于对比和回退。若团队在ONES中管理需求与评审,可将修正前后的图与对应需求条目、评审意见关联,变更记录随需求条目留存,后续追溯时能看清每处调整的依据。
改完后怎么验证关系表达已经正确
修正完成不等于关系正确。验证的目标是确认图上每个元素都能在需求中找到依据,并且典型业务场景能够沿着图走通。
用典型业务场景逐个走查
选取覆盖主要业务路径的场景,逐个在图上走一遍:找到触发该场景的参与者,找到对应的用例,确认触发条件和扩展路径与场景描述一致。若某个场景在图上找不到对应参与者或用例,说明边界或参与者仍有遗漏;若场景走不通某条包含关系,说明包含判断有误。
交叉核对需求文档
每个用例至少对应一条需求或业务规则,每条参与者—用例连线能在需求中找到交互依据。包含与扩展关系所依赖的条件,应能在需求原文或业务规则中找到出处。对不上号的关系,要么补需求说明,要么修正图。
评审检查点
- 边界框内只包含本系统职责,外部系统与外部组织均在边界外。
- 所有参与者位于边界外,命名统一,粒度一致。
- 每条连线对应真实外部交互,无内部调用式连线。
- 包含箭头指向被包含用例,扩展箭头指向被扩展用例,扩展条件已写明。
- 同一用例的多条参与者连线各有独立触发场景。
复发预防
把上述检查点固化进用例图评审清单,作为每次评审的固定环节;统一参与者命名规范和边界划分口径,写入建模约定;保留每次修正的版本和评审记录,下次评审时先对照历史问题,确认同类错误没有再次出现。在ONES中,可将评审清单作为评审模板的一部分,需求条目与评审结论关联留存,使边界与关系检查成为需求评审的常规动作,而不是一次性的补救。
常见问题
评审时对某个角色算不算参与者有分歧,怎么处理?
先看该角色是否通过系统界面发起或接收交互。若它只是系统内部模块、岗位之间的内部流转,或由其他系统在后台调用,就不应作为参与者画在图上,可在用例描述中说明内部实现。若它确实从系统外部触发用例,则保留为参与者。分歧无法当场统一时,把两种判断和各自的依据记入评审记录,标注待确认,回到需求原文或业务流程走查中找证据,再决定是否调整。
包含和扩展都涉及公共行为,判断时容易混,有没有更直接的区分办法?
用“是否每次必做”作为第一判断:主用例每次执行都必然发生、且被多个用例共用的行为,用包含,箭头指向被包含用例;只在特定条件下才发生的可选行为,用扩展,箭头指向被扩展用例,并写明扩展条件和扩展点。仅因为代码或流程上可以复用就画成包含,容易把可选动作误标为必做。若需求原文没有写清触发条件,先标为待确认,回到需求澄清后再定关系。
用例图改完后,评审仍然觉得关系乱,下一步该查什么?
先确认修正是否按边界、参与者、连线、包含与扩展的顺序完成,边界调整后参与者和连线是否同步更新。再用典型业务场景逐个走查:每个场景能否在图上找到触发它的参与者、对应用例和触发条件。若场景走不通,问题多半仍在边界或参与者;若场景能走通但关系读起来别扭,重点检查包含与扩展的方向和条件说明。最后交叉核对需求文档,对不上号的关系要么补需求说明,要么修正图。
团队多人协作画用例图,怎样减少边界和命名上的反复返工?
在建模前先约定两条口径:边界按本系统承担的职责划分,外部系统、外部组织和外部人员一律放在边界外;参与者按业务术语统一命名,同一角色全图使用同一名称,拆分粒度以交互集合是否明显不同为准。把这两条写入建模约定,并在评审清单中固定边界与关系检查项。修正时保留原图版本,每完成一步保存一次,评审时先对照历史问题确认同类错误没有再次出现。
证据不足、只能标为待确认的问题,后续怎么跟踪才不遗漏?
把待确认项连同症状位置、原因假设和缺失的证据类型记录在同一条评审意见下,指定跟进人和需要补充的材料,例如需求原文、业务规则或流程说明。跟进人补齐证据后再判定是修正图还是补需求。若团队在ONES中管理需求与评审,可将评审意见与对应需求条目关联,变更记录随条目留存,待确认项有归属、有后续动作,不会停留在会议纪要里。
