知乎论坛系统用例图建模实战:5大业务场景与3种关系精解
2026/9/23 6:19:09 网站建设 项目流程

1. 项目概述:为什么一个知乎风格的论坛系统,是练熟用例图的最佳靶子

我带过十几届软工和信管专业的学生做UML建模实训,也给五家中小企业的技术团队做过系统分析内训。每次讲到用例图,总有人问:“画个登录注册不就完了?太简单,没挑战。”——这话听着有道理,但恰恰暴露了对用例图本质的误解。用例图从来不是“画功能列表”的草稿纸,它是系统边界、用户角色、业务意图三者之间的一次精准对焦。而知乎论坛系统,就是一块天然的磨刀石:它表面看是问答社区,实则暗含内容生产、社交互动、信息分发、权益管理、平台治理五条并行的业务主线,每一条都牵扯多个角色、多种触发条件、多层权限约束。你画一个“提问”用例,背后要厘清的是:普通用户能提,匿名用户不能提;提问后自动进入审核队列还是直发?被举报后是否触发“内容复核”用例?这些都不是功能点罗列,而是业务规则在用户视角下的具象投射。

标题里说的“5大核心功能”,其实更准确的说法是“5个高价值业务场景”:用户提问与回答、内容推荐与发现、关注与私信互动、账号权限与等级体系、社区审核与举报处理。它们不是孤立模块,而是像齿轮一样咬合运转——比如“内容推荐”依赖“用户关注”产生的兴趣画像,“举报处理”又反过来影响“内容推荐”的质量权重。这正是用例图最擅长表达的:谁在什么条件下,为了什么目的,触发系统做什么,又可能引发什么连锁反应。我试过用电商系统、图书管理系统来教,效果都不如知乎案例扎实。前者流程太重(下单-支付-发货-售后),初学者容易陷进顺序图细节;后者角色太单薄(读者/管理员),难以体现“利益相关方冲突”这个关键建模难点。知乎的“答主-读者-管理员-广告主-算法工程师”多重身份叠加,让“包含”“扩展”“泛化”三种关系有了真实落脚点。比如“匿名提问”不是独立用例,而是“提问”的扩展;“机构号认证”也不是新功能,而是“账号管理”的泛化——这些判断,必须回到真实业务中反复推敲,而不是照着UML手册填空。

关键词里反复出现的“uml”“用例图”“知乎”,说明搜索者不是要理论定义,而是急需可上手的参照系。他们可能刚学完类图,正卡在“怎么把需求翻译成图形语言”这一步;也可能在赶课程设计,需要快速产出符合老师要求的规范图;甚至可能是转行的初级产品经理,想用建模工具理清自己负责的功能模块。这篇内容不讲UML发展史,不堆砌23种图谱,就死磕一个问题:当你面对一个真实、复杂、有血有肉的互联网产品时,如何用一张用例图,把它的灵魂骨架画出来。下面所有拆解,都基于我实际带学生画过的17版知乎用例图迭代记录——从第一版漏掉“举报后的内容状态变更”被老师打回,到最终版通过企业级评审,中间踩过的坑、改过的逻辑、补全的细节,全部摊开给你看。

2. 核心建模思路拆解:5大功能不是并列关系,而是分层演进的业务流

2.1 为什么必须先锁定系统边界与参与者,再画用例?

很多初学者一上来就画椭圆(用例)和小人(参与者),结果画到一半发现:这个“推荐”用例该算谁的操作?是用户主动点击“猜你喜欢”,还是系统后台定时推送?如果没提前明确系统边界,就会把“算法生成推荐列表”这种内部逻辑误画成用户用例。我在教学中强制要求第一步:用虚线框出“知乎论坛系统”的物理边界,并标注三个不可逾越的硬约束:

  1. 数据主权边界:系统只管理用户在知乎平台内产生的内容(提问、回答、评论、点赞)、行为数据(浏览、关注、搜索)和账户信息。外部数据(如微信好友关系链、微博转发记录)仅作为导入源,不纳入本系统用例范围;
  2. 责任边界:系统负责内容分发、交互反馈、权限控制,但不承担内容真实性审核的法律责任(这是运营团队职责),因此“法律合规审查”不能作为本系统的用例;
  3. 技术能力边界:系统具备实时消息推送能力,但不具备语音识别、图像OCR等AI能力,所以“语音提问”“图片识别提问”需作为扩展用例,而非基础功能。

在这个边界内,我们梳理出6类核心参与者(Actor),注意不是按职位分,而是按与系统交互的目的分:

  • 普通用户:以获取信息、表达观点为目的,核心诉求是“快速找到答案”“被更多人看到”;
  • 答主:以建立影响力、获取收益为目的,核心诉求是“内容被精准推荐”“粉丝增长可预期”;
  • 管理员:以保障社区秩序为目的,核心诉求是“违规内容秒级响应”“审核规则可配置”;
  • 内容运营:以提升平台活跃度为目的,核心诉求是“活动模板可复用”“数据效果可归因”;
  • 广告主:以投放转化为目的,核心诉求是“流量包可定向”“效果数据可验证”;
  • 系统自身(System as Actor):作为特殊参与者,代表后台自动化服务,如“定时清理过期缓存”“自动降权低质内容”。

提示:很多人把“游客”单独列为参与者,这是典型误区。知乎的游客只能浏览公开内容,其行为完全被“普通用户”用例覆盖(如“浏览问题列表”不需登录),强行拆分只会增加冗余。真正的区分标准是:是否拥有独立的权限集、是否触发不同的业务规则、是否需要不同的系统响应

2.2 5大核心功能的内在逻辑:从“内容生产”到“生态治理”的闭环

这5个功能不是随意罗列的,而是遵循“生产→分发→互动→激励→治理”的业务流闭环。我用一张简化的因果链帮你理清:

用户提问 → 系统生成问题页 → 答主回答 → 内容进入推荐池 → 读者点赞/收藏 → 算法提升内容权重 → 更多读者看到 → 低质内容被举报 → 管理员审核 → 触发降权或删除 → 内容质量整体提升 → 推荐效果增强 → 用户更愿提问

所以建模时绝不能平铺5个用例,而要体现这种驱动关系。例如:

  • “提问”和“回答”是内容生产的起点,必须关联“内容审核”(即使默认直发,也要有审核入口);
  • “内容推荐”不是独立存在,它依赖“用户关注”产生的兴趣标签,也反向影响“提问”的曝光量;
  • “账号管理”看似后台功能,实则是整个闭环的信任基石——没有实名认证,举报就无法追溯;没有等级体系,优质答主就缺乏持续输出动力。

这种动态关系,正是用例图超越功能清单的价值所在。我让学生用不同颜色笔标注:蓝色表示核心业务流(提问→回答→推荐→互动),红色表示支撑性流程(账号管理、审核举报),绿色表示异常处理流(举报→审核→处置)。当三种颜色线条开始交叉缠绕时,你就知道模型接近真实了。

2.3 三种关系的本质:不是语法练习,而是业务规则的视觉翻译

UML规定用例间有“包含(include)”“扩展(extend)”“泛化(generalization)”三种关系,但很多人画错的根本原因是:把它们当成图形语法,而非业务逻辑表达。我用知乎的具体场景给你翻译:

  • 包含(include):表示强制依赖,被包含用例是主用例的必要组成部分,没有它,主用例无法完成。
    例如:“发布回答”必须包含“内容审核”。这里的关键判断是:知乎允许用户发布后立即显示,但系统后台必然启动审核流程(哪怕只是风控扫描)。如果去掉审核,整个内容安全体系就崩塌了。所以“内容审核”不是可选动作,而是“发布回答”的原子级子步骤。

  • 扩展(extend):表示可选分支,只有满足特定条件时才执行,且不影响主用例主干流程。
    例如:“匿名提问”扩展“提问”。普通用户提问时,默认显示用户名;只有当用户主动勾选“匿名”选项,且系统校验其等级达标(如Lv3以上),才会触发匿名逻辑。此时主用例“提问”依然完整执行(问题创建、标签绑定、发布时间戳生成),只是展示层做了遮蔽。如果把“匿名提问”画成独立用例,就割裂了它与“提问”的本质联系。

  • 泛化(generalization):表示类型继承,子用例是父用例的特化形式,拥有父用例全部行为,但增加了特定约束或行为。
    例如:“机构号认证”泛化“账号管理”。所有账号管理操作(修改资料、绑定手机)都适用于机构号,但机构号额外要求上传营业执照、缴纳保证金、接受资质年审。这种“共性+个性”的结构,用泛化箭头比用两个平行用例更准确表达业务层级。

注意:我见过最多错误是把“登录”作为所有用例的包含关系。这是致命错误!登录是访问系统的前提,不是用例的组成部分。正确做法是将“登录”设为独立用例,其他用例通过关联线连接到“普通用户”参与者,由参与者自身的权限状态决定能否执行——这才是UML的本意:用例描述系统做什么,不描述用户怎么做。

3. 5大核心功能与3种关系的逐项建模详解

3.1 功能一:用户提问与回答——内容生产的双引擎

这是整个知乎生态的起点,但绝非简单的表单提交。建模时必须拆解出三层逻辑:

第一层:基础用例(必须存在)

  • “提问”:普通用户发起新问题,包含输入标题、描述、选择话题、添加图片/链接;
  • “回答”:用户针对已有问题提交解答,支持富文本、代码块、公式编辑;
  • “评论”:对问题或回答发表短评,触发通知机制。

第二层:强制包含关系(不可省略)

  • “提问”包含“内容审核”:系统自动调用敏感词库、图片鉴黄API、历史相似问题比对;
  • “回答”包含“内容审核”:同上,但增加“引用来源核查”(检测是否抄袭);
  • “评论”包含“内容审核”:轻量级审核(仅敏感词+辱骂词库),因评论长度限制,不触发深度分析。

第三层:扩展与泛化(体现业务复杂性)

  • “匿名提问”扩展“提问”:条件为用户等级≥Lv3且未被封禁;
  • “付费提问”扩展“提问”:条件为用户开通知乎盐选会员且余额充足,扩展点包括“设置悬赏金额”“选择回答者范围”;
  • “机构号提问”泛化“提问”:继承所有提问能力,但强制要求绑定企业资质,且问题自动打标“官方认证”角标。

实操心得:我在指导学生时,会让他们先画出“提问”的完整流程图(从输入框到数据库写入),再从中圈出哪些步骤是“必然发生”(即包含关系),哪些是“按条件触发”(即扩展关系)。比如“发送站内信通知关注者”这个动作,在普通提问中是可选的(用户可关闭通知),但在“付费提问”中是强制的(需告知潜在答主),这就决定了它在不同用例中的关系类型。

3.2 功能二:内容推荐与发现——信息分发的智能中枢

很多人以为推荐就是“猜你喜欢”,但知乎的推荐引擎实际是多目标优化系统。建模时要抓住三个关键输入源:

推荐的数据基础

  • 用户行为数据:浏览时长、跳失率、点赞/收藏/分享频次;
  • 关系网络数据:关注的答主、加入的圈子、共同关注的好友;
  • 内容特征数据:问题热度(回答数/浏览量)、回答质量(专业认证/引用数)、时效性(发布时间)。

核心用例设计

  • “个性化推荐”:主用例,系统根据上述数据生成首页Feed流;
  • “话题聚合推荐”:用户点击“科技”话题时,系统聚合该话题下高互动内容;
  • “相似问题推荐”:在问题详情页底部,推荐语义相近的其他问题。

关系建模要点

  • “个性化推荐”包含“用户画像更新”:每次用户行为(如点赞)都会实时更新其兴趣权重,这是推荐的基础;
  • “话题聚合推荐”扩展“个性化推荐”:当用户主动选择话题时,系统在个性化模型基础上叠加话题权重系数;
  • “相似问题推荐”泛化“个性化推荐”:它使用相同的协同过滤算法,但输入源限定为问题文本的语义向量,而非用户行为序列。

注意:绝对不能把“算法训练”“模型部署”画成用例!这些是系统内部实现,不属于用户可见的功能。用例图只描述“系统对外提供的服务”,不描述“系统内部如何工作”。我曾见学生把“BERT模型微调”画进去,被直接退回——这属于类图或组件图范畴。

3.3 功能三:关注与私信互动——社交关系的双向通道

知乎的社交属性常被低估,但“关注”是内容分发的底层杠杆。建模时要区分两种关注:

显性关注(用户主动操作)

  • “关注答主”:用户点击关注按钮,系统建立关注关系,后续该答主的新内容进入其Feed;
  • “关注话题”:用户订阅话题,系统聚合该话题下所有新内容;
  • “加入圈子”:用户申请加入兴趣小组,获得专属讨论区权限。

隐性关注(系统自动推断)

  • “行为关联关注”:系统发现用户连续3天浏览同一答主的5篇回答,自动将其加入“潜在关注列表”,并在首页提示“你可能想关注XXX”。

关系建模实战

  • “关注答主”包含“关系同步”:将关注数据同步至消息中心(生成“你关注的答主发布了新回答”通知)和推荐引擎(提升该答主内容权重);
  • “加入圈子”扩展“关注话题”:圈子是话题的子集,加入圈子意味着同时关注该话题,但额外获得发言权限;
  • “行为关联关注”泛化“关注答主”:它不改变用户主动关注状态,但系统在推荐时模拟了“已关注”效果,属于策略层泛化。

实操技巧:画“私信”用例时,务必区分“发送私信”和“接收私信”。前者是用户主动发起,后者是系统被动响应(需触发通知)。很多学生把两者合并,导致权限设计错误——未互关用户只能发送一次私信(防骚扰),但接收方永远能查看。这种细节能看出建模者是否真正理解业务规则。

3.4 功能四:账号权限与等级体系——信任网络的量化表达

知乎的等级体系(Lv1-Lv10)不是装饰,而是权限开关。建模时要抓住“等级决定能力”这一核心:

等级能力映射表

等级可执行操作不可执行操作
Lv1提问、回答、点赞匿名提问、创建圈子、举报置顶
Lv3匿名提问、创建圈子付费提问、机构号认证
Lv5付费提问、邀请答主发布付费咨询、成为圈子管理员
Lv8发布付费咨询、圈子管理员开通机构号、参与内容审核

核心用例与关系

  • “账号升级”:用户通过提问/回答/互动积累经验,系统自动提升等级;
  • “权限申请”:用户主动申请高阶权限(如“申请圈子管理员”),触发人工审核;
  • “等级冻结”:用户违规时,系统临时冻结其高等级权限(如Lv7被冻结后,仅保留Lv3权限)。

关系建模关键

  • “匿名提问”扩展“提问”,但扩展条件是“账号等级≥Lv3”——这里等级是参与者(用户)的属性,不是用例的输入参数;
  • “权限申请”包含“资质审核”:申请圈子管理员需提交管理方案,申请机构号需上传营业执照;
  • “等级冻结”泛化“账号升级”:它继承所有等级状态,但覆盖了部分权限值,属于状态层面的泛化。

提示:等级体系最容易犯的错是把“升级”画成用户操作。实际上用户只做内容生产行为,升级是系统根据规则自动计算的结果。所以“账号升级”用例的参与者应该是“系统自身”,而非“普通用户”。

3.5 功能五:社区审核与举报处理——生态治理的应急响应

这是保障知乎内容质量的生命线,建模时要体现“分级响应”机制:

三级审核体系

  • 一级(自动):AI风控系统实时扫描,拦截90%的垃圾广告、色情内容;
  • 二级(众裁):用户举报后,系统随机推送至5位Lv6+用户,3票以上判定违规;
  • 三级(人工):众裁争议大或涉及法律风险的内容,转交专职审核员。

核心用例设计

  • “内容举报”:用户标记违规内容,选择违规类型(广告/辱骂/抄袭);
  • “众裁响应”:Lv6+用户收到众裁任务,进行投票判定;
  • “人工审核”:审核员处理众裁未决或高危内容。

关系建模精要

  • “内容举报”包含“证据固化”:系统自动截取举报时的内容快照、URL、时间戳,防止事后篡改;
  • “众裁响应”扩展“内容举报”:当举报内容达到众裁阈值(如被3人以上举报),系统自动触发众裁流程;
  • “人工审核”泛化“众裁响应”:它使用相同的判定标准(社区公约),但执行主体从用户变为专业审核员,且拥有终审权。

实操避坑:绝对不要把“审核员”画成普通参与者!审核员是“管理员”的子类型,必须用泛化箭头连接。因为审核员拥有管理员的所有权限(如封禁账号),只是职责更聚焦。如果画成独立参与者,会导致权限模型断裂。

4. 用例图落地实操:从草图到规范图的7个关键步骤

4.1 步骤一:用白板草绘,拒绝直接开软件

我坚持让学生用白板画第一版,原因有三:

  1. 降低心理门槛:软件的完美线条会让人不敢修改,而白板涂改无压力;
  2. 聚焦逻辑而非格式:避免陷入“Visio字体大小”“StarUML配色”的细节陷阱;
  3. 促进协作讨论:多人围在白板前,自然形成“这个用例该不该存在”的辩论场。

具体操作:用不同颜色白板笔——黑色画参与者,红色画核心用例,蓝色画关系线。重点标注存疑点,如“此处是否需要包含审核?”“举报后是否必须触发众裁?”。这些问号,就是后续验证的锚点。

4.2 步骤二:用“5W1H”验证每个用例

对每个椭圆(用例),必须回答:

  • Who:哪个参与者触发?(必须唯一,不能写“用户或管理员”)
  • What:系统具体做什么?(动宾结构,如“生成推荐列表”,而非“推荐功能”)
  • When:在什么条件下触发?(如“用户完成注册后”“回答提交成功时”)
  • Where:在哪个界面或场景?(如“问题详情页底部”“个人主页设置页”)
  • Why:解决什么业务问题?(如“降低低质内容曝光率”“提升答主创作意愿”)
  • How:是否有明确的输入输出?(如输入:举报内容ID、违规类型;输出:举报工单号、处理状态)

如果任一问题答不上,这个用例就要重审。我曾让学生用此法检查,平均删减23%的冗余用例(如“用户登录”“页面刷新”这类非业务动作)。

4.3 步骤三:关系线标注必须带条件说明

UML规范要求扩展关系标注“扩展点”(Extension Point),但初学者常忽略。正确做法:

  • 在“匿名提问”扩展线上,标注文字:“[用户等级≥Lv3] 且 [未被封禁]”;
  • 在“众裁响应”扩展线上,标注:“[举报数≥3] 或 [被标记为高危内容]”;
  • 在“机构号认证”泛化线上,标注:“[上传营业执照] 且 [缴纳保证金]”。

这些条件不是可选备注,而是业务规则的契约。某次企业评审中,客户指着“付费提问”的扩展条件问:“如果用户余额不足,是直接报错,还是引导充值?”——这正是条件标注的价值:它迫使建模者思考所有分支路径。

4.4 步骤四:用参与者泳道划分责任边界

将用例图按参与者分组,形成垂直泳道:

  • 左侧泳道:“普通用户”“答主”(内容消费者与生产者);
  • 中间泳道:“系统自身”(所有自动化流程);
  • 右侧泳道:“管理员”“内容运营”(平台治理者)。

这样做的好处:一眼看出哪些功能是用户驱动(如提问),哪些是系统驱动(如自动降权),哪些是人工干预(如人工审核)。当某用例横跨多个泳道时,必须警惕——这往往意味着职责不清。例如“内容推荐”若同时连到“普通用户”和“管理员”,说明没理清:推荐是系统服务,管理员只能配置推荐策略(如“屏蔽某类话题”),不能直接干预单条推荐。

4.5 步骤五:导出为标准UML图的3个技术要点

用StarUML或Visual Paradigm导出时,注意:

  1. 字体统一:全部用思源黑体或微软雅黑,字号12pt,确保打印清晰;
  2. 连线规范:关联线用正交样式(直角转折),避免斜线;包含/扩展线用虚线,泛化线用空心三角箭头;
  3. 图例说明:在图右下角添加小字图例:“→ 关联 | < > 包含 | < > 扩展 | ▷ 泛化”。

实操提醒:别迷信软件自动生成。我测试过5款UML工具,没有一款能自动识别“行为关联关注”该用扩展还是泛化。所有关系类型,必须由建模者手动判断并标注。

4.6 步骤六:用“逆向走查法”验证完整性

画完图后,随机选一个参与者(如“答主”),从其所有用例出发,模拟真实操作流:

  • 答主Lv5,发布一篇回答 → 触发“内容审核” → 审核通过 → 进入推荐池 → 被用户点赞 → 系统更新其等级 → Lv5升Lv6 → 获得“创建圈子”权限 → 发起圈子申请 → 触发“资质审核” → 审核通过 → 圈子上线。

如果这条链路上有任何环节断裂(如“等级升级”没连到“权限申请”),说明模型缺失关键路径。我要求学生必须完成3轮不同参与者的逆向走查,才能提交终稿。

4.7 步骤七:交付物不止一张图,而是“图+说明书”组合

企业级交付中,单张用例图毫无价值。必须配套:

  • 用例规格说明书:对每个用例,用表格描述前置条件、后置条件、主成功场景、扩展场景;
  • 关系说明文档:解释每个包含/扩展/泛化的业务依据,附原始需求文档截图;
  • 版本变更日志:记录从V1到V3的修改点,如“V2新增‘行为关联关注’,依据2023年Q3用户调研报告P12”。

某次帮客户做系统重构,他们拿着这份组合交付物,3小时就确认了87%的需求,远超传统PRD文档的沟通效率。因为图是骨架,说明书是血肉,日志是脉络——三者缺一不可。

5. 常见问题与排查技巧实录:那些教科书不会写的坑

5.1 问题一:用例粒度纠结症——到底该画“发布回答”还是“填写回答框”“提交回答”?

现象:学生反复修改,一会儿拆成5个细粒度用例,一会儿合并成1个粗粒度用例,始终不确定。
根源:混淆了用例图与活动图的分工。“填写回答框”是界面操作,“提交回答”是事务边界,而“发布回答”才是用户目标。用户不关心你填了几个输入框,只关心“我的回答是否生效”。
排查技巧:用“用户一句话描述”测试——如果用户说“我想发布我的回答”,这就是一个用例;如果说“我要先点编辑按钮,再输文字,再点提交”,这就是活动图要做的事。知乎的“发布回答”必须包含内容审核、时间戳生成、通知发送,这些是用户感知不到但必不可少的后台动作,所以它是一个完整的、不可再分的用例。

5.2 问题二:参与者泛滥——把“微信”“支付宝”“短信网关”都画成参与者

现象:图上出现七八个外部系统图标,用例图变成接口调用图。
根源:没守住“系统边界”原则。微信登录只是认证方式,支付宝是支付渠道,它们不与知乎系统产生业务交互,只提供技术能力。
解决方案:用“系统接口”替代参与者。在“账号管理”用例旁加注释:“支持微信/支付宝OAuth2.0认证”,而非画出微信图标。真正的外部参与者只有两类:(用户、管理员)和需要独立决策的系统(如“风控系统”——当它自主触发封禁时,才是参与者)。

5.3 问题三:关系滥用——把所有关联都画成“包含”,导致图中全是虚线

现象:整张图密密麻麻的< >线,像蜘蛛网一样,完全看不出主干。
根源:没理解“包含”的强制性。90%的所谓“包含”,其实是“关联”或“扩展”。
速查表

关系类型判断口诀知乎案例
包含“没有它,主用例根本跑不通”“提问”必须包含“内容审核”(否则内容安全无保障)
扩展“有它更好,没它也不耽误主流程”“匿名提问”扩展“提问”(匿名是锦上添花,非必需)
泛化“它是另一种类型的主用例”“机构号认证”泛化“账号管理”(都是账号操作,但机构号有额外约束)

5.4 问题四:忽略非功能性需求——把“响应时间<200ms”“支持10万并发”画进用例图

现象:用例图角落写着“高可用”“高性能”,甚至画出服务器集群图标。
根源:用例图只描述“做什么”,不描述“做得怎样”。性能、安全、可靠性是架构设计阶段的事。
正确做法:在用例规格说明书中,为每个用例标注非功能需求。例如“内容推荐”用例的后置条件写:“返回结果延迟≤500ms(P95)”,而非在图上画闪电图标。

5.5 问题五:动态参与者困境——“游客”“未登录用户”该不该画?

现象:纠结于是否把“游客”列为独立参与者,导致权限逻辑混乱。
真相:知乎的游客行为,100%被“普通用户”用例覆盖。游客浏览问题列表,等同于“普通用户”执行“浏览公开内容”;游客无法执行“提问”,是因为其权限状态为“未登录”,而非缺少用例。
黄金法则:参与者代表角色,不是状态。登录状态是参与者的一个属性,就像“用户等级”一样,它影响用例的可执行性,但不创造新参与者。画图时只需一个“普通用户”,然后在规格说明中注明:“执行‘提问’用例需满足前置条件:已登录且等级≥Lv1”。

5.6 问题六:扩展点标注模糊——只写“某些条件下”,不写具体条件

现象:扩展线上只标注“< >”,没有文字说明触发条件。
后果:开发时各猜各的,A认为余额不足就触发扩展,B认为必须先弹充值窗口。
实操规范:所有扩展线必须带条件短语,且用业务语言而非技术语言。例如:

  • 错误:“[balance < amount]”
  • 正确:“[用户知乎币余额不足,且未开通自动充值]”

5.7 问题七:泛化关系方向画反——把子用例箭头指向父用例

现象:画“机构号认证”泛化“账号管理”,但箭头从“机构号认证”指向“账号管理”。
原理纠正:泛化箭头永远从特化指向泛化,即从子类指向父类。就像“狗”泛化“动物”,箭头从狗指向动物。在知乎中,“机构号认证”是“账号管理”的一种特殊形式,所以箭头必须从“机构号认证”指向“账号管理”。画反了,整个继承关系就崩溃了。

最后分享一个小技巧:每次画完关系线,用手机拍张照,然后把照片旋转180度看——如果箭头方向让你觉得“别扭”,那大概率画反了。这是我在带学生时发现的最直观的自查法。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询