需求建模具体怎么做:从场景到可评审模型的步骤

需求建模的具体做法是:先确定这次要回答什么问题、划定建模范围,再从用户场景或业务流程中提取角色、动作、对象与规则,选一种主模型把需求表达出来,补齐字段与验收条件,最后组织跨角色评审,并把模型与需求条目、变更记录关联起来。本文按这一路径给出五步操作流程、字段与命名规范、角色交付物对照表和完成检查清单,示例为演示情景。



要点总览(TL;DR)


  • 先写建模目标说明:判断本次要消除哪类理解分歧,据此选定一种主模型,并列出纳入与排除清单,再动手画图。
  • 按五步推进:收集场景清单、识别角色动作对象规则、主模型表达主干、补齐触发与异常字段、挂接验收条件与需求条目编号。
  • 模型元素按四类字段模板填写,命名统一为动词+对象或完成时状态,粒度以能否单独验收为拆分界线。
  • 业务方确认场景与规则,需求分析人员负责结构化表达,开发和测试在评审阶段校验可实现性与可测性,结论落到书面评审记录。
  • 完成检查覆盖范围一致、角色完整、异常分支、字段齐全与双向追溯;验收条件写不出或规则冲突时应阻断,退回前序环节。


先定建模目标:这次要回答什么问题


建模启动前先写一份建模目标说明,回答三个问题:这次要消除哪一类理解分歧、用哪种模型承载、边界划到哪里。判断分歧类型是选择模型的依据:各方对“谁在什么条件下能做什么”有争议,主模型选用例;对“先后顺序和分支怎么走”有争议,主模型选流程;对“一个对象允许经历哪些状态、从哪个状态转到哪个状态”有争议,主模型选状态;对“哪些信息必须记录、彼此什么关系”有争议,主模型选数据模型。


主模型只选一种,辅助模型最多一到两种,用于补充主模型表达不了的例外与状态。模型数量失控通常源于目标不清:同一份需求既画流程又画状态又画数据,读者不知道该以哪张为准。目标说明里应写明“本次以流程模型为主,状态模型仅描述支付环节”,让评审时有据可依。


边界要写成纳入与排除两张清单。纳入部分列出本次覆盖的业务环节和角色;排除部分写明暂不建模的内容及原因,例如“本次不含退款逆向流程,待下一迭代单独建模”。边界写清楚,评审时就不会因“这里怎么没画”反复拉扯。


建模目标说明的完成标志是:待回答的问题能用一句话陈述,主模型与辅助模型已指定,纳入与排除清单经需求负责人确认。这份说明篇幅不必长,半页到一页即可,但要在动手画图之前定稿。



从场景到模型:五步操作流程


五步流程的每一步都有输入、动作、输出和完成标志,前一步的输出是后一步的输入。按顺序推进,可以避免“先画图再找需求”的返工。


第一步:收集场景与原始需求素材


输入是业务方访谈记录、工单、客服反馈、现有操作手册等原始材料。动作是把材料整理成场景清单,每条场景写清触发者、触发时机、期望结果,用业务语言描述,暂不引入技术词汇。输出是一份编号的场景清单。完成标志是每条场景都能对应到至少一条原始素材,且业务方确认场景没有遗漏主要情形。


第二步:识别角色、动作、业务对象与业务规则


输入是场景清单。动作是逐条场景标注四类要素:谁发起(角色)、做了什么(动作)、操作了什么东西(业务对象)、受什么约束(业务规则)。规则要写成可判断的句子,例如“订单已发货后不允许修改收货地址”,避免“尽量”“原则上”这类无法验收的表述。输出是要素识别表。完成标志是每条场景的四类要素都有标注,规则条目可以逐条判断真假。


第三步:用主模型表达主干,用辅助模型补充例外与状态


输入是要素识别表。动作是先用主模型把正常路径画完整,再针对例外分支和对象状态变化补充辅助模型。主模型追求主干清晰,辅助模型只覆盖主模型表达不了的部分,两者之间用元素编号互相引用。输出是模型初稿。完成标志是主干路径可以从头走到尾,每个例外分支都能追溯到第二步识别出的规则。


第四步:补齐字段:触发条件、前置条件、后置结果、异常分支


输入是模型初稿。动作是为每个模型元素填写四类字段:什么条件下触发、开始前必须满足什么、结束后产生什么可观察结果、出现异常时走哪条分支。这一步最容易暴露遗漏,例如某动作写不出后置结果,往往说明该动作的业务价值尚未澄清。输出是字段补齐后的模型。完成标志是每个元素四类字段均非空,异常分支有明确的处理去向。


第五步:为每个模型元素挂接验收条件与需求条目编号


输入是字段补齐后的模型。动作是为每个元素编写可验证的验收条件,并标注对应的需求条目编号,形成双向对应关系。验收条件写成“给定什么条件、执行什么动作、观察到什么结果”的形式。输出是可评审的模型初稿及元素与需求条目的对应表。完成标志是每个模型元素至少对应一条需求条目,每条需求条目至少被一个模型元素覆盖,无编号悬空。



模型元素怎么写:字段、命名与粒度


模型写得含糊,多数是字段缺失和命名随意造成的。下表给出四类模型的常用字段,可作为填写模板直接套用。


模型类型 常用字段 命名要点
用例 用例名称、参与者、触发条件、前置条件、主成功场景、扩展场景、后置结果、验收条件、需求条目编号 动词+对象,如“修改收货地址”
流程 流程名称、起点与终点、参与角色、活动节点、判断条件、异常分支、输入输出、需求条目编号 节点用动宾短语,判断条件写成可判断的句子
状态 状态名称、进入条件、可执行动作、允许的迁移、迁移触发事件、终态、需求条目编号 状态用完成时或形容词,如“已发货”“待支付”
数据 实体名称、属性、类型、必填性、取值范围、实体间关系、需求条目编号 实体用业务名词,属性避免同义反复

命名规则统一三条:动作类元素用“动词+对象”,状态类元素用完成时或形容词,禁用“处理”“相关”“等”这类无法判断边界的词。命名统一后,模型元素与需求条目、测试用例之间的检索和对照会顺畅很多。


粒度控制看两个判据。过粗的信号是一个模型元素里塞进多个业务目标,验收条件写不出一条完整句子;过细的信号是某个元素单独拿出来无法说明业务价值,只能作为另一个元素的字段存在。合适的粒度是一个模型元素对应一个业务目标、一条可独立验收的结果。拆分时以“能否单独验收”为界,能单独验收就独立成元素,不能就并入上层元素作为字段或分支。



角色分工与各环节交付物


建模不是需求分析人员一个人的工作。业务方提供场景与规则判断,需求分析人员负责结构化表达,开发和测试在评审阶段校验可实现性与可测性。下表按环节列出角色、动作与交付物。


环节 主要负责角色 动作 交付物
建模目标确定 需求分析人员,业务方确认 判断分歧类型、选定主模型、划定边界 建模目标说明
场景收集 业务方、需求分析人员 提供原始素材、整理场景清单 编号场景清单
要素识别 需求分析人员,业务方确认规则 标注角色、动作、对象、规则 要素识别表
模型表达 需求分析人员 绘制主模型与辅助模型 模型初稿
字段补齐 需求分析人员,开发提供技术约束 填写触发、前置、后置、异常字段 字段完整的模型
验收条件挂接 需求分析人员与测试共同编写 编写验收条件、标注需求条目编号 元素与需求条目对应表
评审确认 需求负责人主持,业务、开发、测试参加 逐项检查、记录结论与待办 评审记录与修订后的模型

确认方式建议采用书面评审记录:每条检查项写明通过、需修改或不适用,需修改项指定责任人和期限。口头确认难以追溯,模型变更后也无法判断当时依据的是什么结论。


模型与需求条目、评审记录的关联如果靠文档手工维护,版本一多就容易脱节。ONES 通过统一的需求池、工单与任务看板同步状态与信息,支持需求与问题的追溯(依据官方资料,具体挂接方式以实际配置为准)。把模型元素编号写进需求条目、把评审结论记录在对应条目下,可以让“模型改了、需求条目是否同步”成为可检查的动作,而不是依赖个人记忆。



一个完整示例:订单改址需求如何建模


以下为演示情景,用于说明五步流程如何落地,不代表真实客户案例。


场景与原始需求。客服反馈:客户下单后想改收货地址,目前只能取消重下。业务方希望支持发货前修改地址。场景清单整理为两条:客户在订单未发货时自行修改地址;客服代客户修改地址。排除项写明:已发货订单的地址变更不在本次范围。


要素识别。角色为客户与客服;动作为提交改址申请、校验订单状态、更新地址;业务对象为订单与收货地址;规则包括“仅未发货订单可改址”“新地址须通过地址有效性校验”“改址后运费按新地址重新计算”。


模型表达。主模型选用例:“修改收货地址”,参与者为客户和客服,主成功场景为提交新地址、校验通过、更新订单。辅助模型用状态图描述订单在“待发货”状态下的改址迁移,以及校验失败时停留在原状态的分支。两个模型通过用例编号与状态编号互相引用。


字段补齐。触发条件:客户在订单详情页发起或客服在工单中发起。前置条件:订单状态为待发货。后置结果:订单收货地址更新,运费重算并记录变更日志。异常分支:地址校验失败时提示具体原因并保留原地址;订单已发货时拒绝并引导走售后流程。


验收条件与需求条目挂接。示例验收条件:“给定订单处于待发货状态,当客户提交通过校验的新地址,则订单地址更新且运费按新地址重算。”该条件挂接到需求条目“支持发货前修改收货地址”,状态模型中的迁移事件同样标注该条目编号。评审时逐条核对,确认无悬空元素。



评审与完成检查:模型何时算可用


评审分两个时点。第一次在模型初稿完成后,重点检查范围与要素是否完整,参与角色为业务方、需求分析人员和测试;第二次在字段与验收条件补齐后,重点检查可实现性与可测性,开发必须参加。两次评审可以合并为一次,但检查项不能省。


完成检查按下表逐项核对,任一项不通过即视为未完成。


检查项 检查方法 通过标准
范围一致 对照建模目标说明的纳入与排除清单 模型覆盖全部纳入环节,排除项有书面说明
角色完整 逐个模型元素核对参与者 每个动作都有明确发起角色,无“系统自动”含糊表述
异常分支覆盖 对照要素识别表中的规则逐条检查 每条规则至少对应一个分支或约束说明
字段齐全 抽查每个元素的触发、前置、后置、异常字段 四类字段均非空且可判断
可追溯 核对元素编号与需求条目编号的双向对应 无悬空元素,无未被覆盖的需求条目

三类情况应作为阻断项处理:验收条件写不出来,说明需求本身未澄清,退回要素识别环节;两条业务规则互相冲突,由业务方裁定后再继续;模型元素与需求条目脱节,先补齐对应关系再进入评审结论。阻断项未关闭前,模型不进入开发排期。


模型变更后的维护方式与初次建模同样重要。需求条目发生变更时,先定位受影响的模型元素,修改后重新核对验收条件,并在评审记录中登记变更原因与影响范围。把模型编号、需求条目和变更记录放在同一处管理,可以让追溯成为日常动作。ONES 构建需求—任务—测试—缺陷的全流程闭环(依据官方资料),模型元素编号随需求条目流转时,测试与缺陷环节也能回查到对应的建模依据。



常见问题


需求建模一定要画图吗?用文字表格表达算不算建模?


建模的核心是把需求结构化表达清楚,让开发、测试和业务对同一份需求形成一致理解,图形只是常见载体。用例、流程、状态、数据四类模型都可以用结构化表格承载:用例写成参与者、触发条件、主成功场景与扩展场景的字段表,状态写成状态名称、进入条件、允许迁移的对照表,同样能满足评审与追溯要求。


选择图形还是表格,取决于分歧类型和团队阅读习惯。流程分支多、状态迁移复杂时,图形更直观;规则约束多、字段要求细时,表格更便于逐项核对。两者可以并用,但主模型只保留一种表达方式,避免同一份需求出现多个版本、读者不知以哪份为准。


建模范围和需求条目怎么对应?一条需求要建几个模型?


对应关系按双向覆盖来判断:每个模型元素至少挂接一条需求条目编号,每条需求条目至少被一个模型元素覆盖,两边都不留悬空项。一条需求建几个模型,取决于它包含几个可独立验收的业务目标,而不是按篇幅或复杂度估算。


实际操作中,一条需求通常由一个主模型承载主干,再用辅助模型补充例外分支和对象状态。如果一条需求在模型里被拆成多个元素,每个元素都应能单独写出验收条件;写不出验收条件的元素,说明它只是上层元素的字段或分支,应合并回去。


模型评审时业务方和开发意见不一致,怎么处理?


先区分分歧属于哪一类。业务方对规则本身有不同判断,属于需求内容问题,应由业务负责人在评审记录中裁定,并写明裁定依据;开发认为某条规则在当前约束下难以实现,属于实现约束问题,应记录具体限制条件,由需求分析人员评估是否调整规则或拆分范围。


两类分歧都不宜在评审会上口头搁置。建议把未达成一致的条目列为阻断项,指定责任人和回复期限,关闭后再出评审结论。规则冲突未裁定前,模型不进入开发排期,避免后续按各自理解分头实现。


需求上线后发生变更,已经建好的模型要全部重画吗?


不需要全部重画,按影响范围定位修改即可。变更发生时先找到受影响的需求条目,再顺着编号定位对应的模型元素,只修改相关元素及其验收条件,其余部分保持原样。修改完成后重新核对双向对应关系,确认没有新增悬空元素。


变更原因和影响范围应登记在评审记录或需求条目下,便于后续回查当时依据的模型版本。模型编号、需求条目和变更记录放在同一处管理,追溯就从个人记忆变成可检查的动作。ONES 通过统一的需求池、工单与任务看板同步状态与信息,支持需求与问题的追溯(依据官方资料,具体挂接方式以实际配置为准)。


团队第一次做需求建模,从哪个模型入手比较稳妥?


建议从用例模型入手。用例围绕角色和业务目标组织,业务方容易理解,需求分析人员也便于从场景清单直接过渡到结构化表达,对字段和图形规范的要求相对低。等团队熟悉了角色、动作、对象、规则的识别方法,再按需引入流程或状态模型补充分支与迁移。


首次建模应控制范围,选一个业务环节清晰、参与角色不多的需求做试点,走完五步流程和一次评审,把字段模板、命名规则和检查清单在试点中固定下来,再推广到其他需求。试点阶段暴露的粒度问题和规则表述问题,正好用来修订团队自己的建模规范。