企业 AI 项目 Wiki · 需求与业务场景
功能要求
也常写作Functional requirement · 功能性要求 · 功能需求 · 系统功能要求
功能要求是分配给指定系统层级的规范性陈述,用来规定该系统在明确条件下必须接收、验证、转换、存储、检索、计算、决定、控制、呈现、传输、记录、阻止或恢复什么,并给出能够由系统边界外观察或验证的结果。它应必要、原子、单义、可行、可验证且能双向追溯。
功能要求规定系统必须做什么,不是列出有什么功能
“审批”“搜索”“知识问答”“导出报表”只是功能域或能力名称,还不能约束系统行为。功能要求必须进一步说明由哪个系统层级承担义务,在什么触发、权限、数据状态与运行模式下,接收什么输入、执行什么业务可观察行为、产生什么输出或状态,并在失败时保持什么结果。
功能要求可以位于系统、子系统、软件、服务或组件层,但每条必须标出层级。上层可能写“服务应接收并处理申请”,下层再分解为身份校验、材料验证、规则判断、状态更新和通知;不能把不同层级的抽象语句当成相互重复,也不能让下层行为失去上游理由。
功能与性能必须协调。功能要求说明需要执行什么,性能要求说明在指定负载和环境下做得多快、多准、多大或多稳定。数值可以与功能要求相邻或合并呈现,但项目仍要辨认行为义务和量化判据,避免遗漏其中一类。
功能要求通常规定哪些系统行为
功能不只发生在用户点击按钮之后。系统还会接收事件、校验资料、决定状态、调用外部服务、生成通知,并在失败时保持或恢复业务对象。把这些行为分别说清,才能看见一项业务任务从开始到结束是否真正闭环。
接收与输入验证
接收表单、文件、事件、传感信息或接口消息,确认格式、必填、来源、签名、权限和适用状态;无效输入的拒绝结果也是功能行为。
转换、计算与派生
根据有版本的规则把输入转换、归一、汇总、分类、计算或生成派生事实,并明确舍入、空值、时间、单位和规则冲突的处理。
存储、检索与记录
创建、读取、更新、归档或删除业务信息,规定对象、条件、版本、关联、历史和不可改变记录;数据保留时长等质量或合规约束需另有依据。
决定与业务规则执行
判断资格、选择路径、阻止动作、请求复核或给出允许的建议。必须区分决定结论、解释和实际执行副作用,标出决定权来源。
状态与模式控制
在事件和条件满足时进行允许的状态转换,阻止非法转换,并处理正常、降级、维护、暂停、恢复等模式下的不同行为。
呈现、通知与交互
向特定角色显示、解释、请求确认、提示纠正或发送通知,并规定内容来源、接收对象、触发、确认和重复发送行为;页面布局通常属于设计。
接口交互与编排
调用或响应外部系统,编排多步服务,规定消息语义、顺序、幂等、超时、重试、补偿和部分成功时的系统行为;协议细节可由接口规格管理。
权限、保护与审计动作
执行身份验证、授权检查、职责分离、敏感信息遮蔽、同意记录和审计事件等具体行为。它们是安全或隐私目标的功能实现,但完整保护要求不限于这些功能。
异常、降级与恢复
识别资料不足、依赖失败、重复请求、冲突和超时,规定拒绝、保持状态、告警、转人工、补偿、重试或恢复;不能只写“系统提示错误”。
一条可执行的功能要求要记录什么
“支持采购申请”只是功能名称,开发不知道触发后要做什么,测试也不知道什么结果算正确。可执行的要求会交代触发者、前置状态、输入、处理、输出和失败结果,同时把适用规则与权限连接进来。
稳定编号和承担层级
给要求稳定 ID,写明承担义务的是整个服务、系统、子系统、软件项还是组件,使下级分解、验证和变更有准确对象。
规范主体与单一动作
用目标系统加“应”或项目约定的规范词,一条只承载一个主要义务;不要用“支持”“提供能力”代替明确动词。
触发和请求者
说明哪个事件、定时任务、外部消息或有权角色发起行为;如果不是所有人都可触发,角色和授权不能留给测试猜测。
前置条件、状态和模式
规定业务对象状态、依赖状态、已有数据、时间窗口以及正常或降级模式。前置条件不满足时的行为应在本条或关联要求中覆盖。
输入、来源和有效性
列出必需输入、权威来源、格式、版本、权限与验证边界,区分用户声明、系统事实和外部参考,不默认所有输入可信。
处理规则与顺序
引用获批业务规则或算法目标,说明必要决定顺序、原子性和优先关系。若规定具体算法、产品或数据结构,要记录为何必须限制设计。
输出和结束状态
写出返回对象、接收角色、保存记录、通知、状态变化或不得变化的状态,使结果能从系统边界外检查。
异常、替代路径和禁止副作用
说明缺失、无权、冲突、重复、超时、部分失败时停止还是恢复,以及不得创建决定、扣款、发送或泄露等高风险结果。
来源、理由、分配和追溯
向上连接场景、相关方或系统要求、规则与风险,向下连接子功能、接口、设计、实现和验证;派生功能必须保留工程理由。
验证方法和判定
指定通过检查、分析、演示或测试验证,给出环境、角色、初始状态、输入类别、预期输出和严重失败;量化性能另连对应性能要求。
怎样从场景和上游要求推导功能要求
上游要求说的是相关方需要得到什么,功能要求则回答系统要做哪些行为才能稳定提供这个结果。团队要沿着正常、异常和资料不足场景逐步走一遍,识别每次状态变化、外部交互和人工接手,而不是直接从界面草图抄功能。
确认上游结果和系统边界
从获批相关方要求、用户要求、系统要求、业务规则和风险出发,确认目标系统负责的结果与边界外责任,不从现有页面或供应商产品反向制造需求。
展开端到端业务场景
分别走查正常、异常、资料不足、取消、重复、依赖故障、人工接手和恢复路径,记录角色、触发、输入、决定、交接、记录与结束状态。
识别系统必须执行的功能
沿场景找出接收、验证、转换、保存、检索、判断、呈现、传输、控制、记录和恢复,先描述逻辑功能,不急于决定哪个微服务或界面实现。
建立输入—处理—输出与状态模型
为每个功能明确输入、控制、输出、状态转换、前后条件、失败模式和后果;用活动、序列或状态模型帮助发现遗漏,但模型不自动等于获批要求。
应用规则、权限和数据约束
把适用业务规则、身份权限、数据分类和接口契约映射到功能,分清由功能执行的控制与另行管理的质量、性能和工程约束。
分解、派生并分配
把上层功能分解到足以设计和验证的子功能,注明父子充分性;从接口、架构和失败分析产生的新功能标记为派生项,记录理由和批准。
用反例和边界验证要求集
让业务、用户、运营、开发、测试、安全和接口负责人共同走查合法与非法状态、空值、重复、顺序颠倒、权限变化和依赖失败,确认没有隐含决定。
批准基线并保持双向追溯
按版本批准要求、关联模型、规则和待决定项;变更功能时同时检查上游结果、相邻状态、接口、数据、质量要求、测试和上线运行影响。
功能要求应该分解到什么颗粒度
写得太大,一条失败会牵涉整条流程;拆得太碎,又会失去业务结果和上下文。合适的颗粒度通常是一项能够单独分配、验证和变更的可观察行为,同时仍能说明它服务于哪个场景步骤。
上层要求保留完整业务可观察结果
上层功能要足以说明系统为什么执行和外部获得什么结果,不因分解而只剩内部技术动作。父要求与场景保持连接。
下层要求可单独分配和验证
当一个动作需要不同系统元素、不同接口、不同失败处理或不同验证方法时,应拆成子要求,并分别指定承担对象。
一条主要义务不等于一句短话
原子性要求一个主要可判定义务,不要求删除所有必要条件。拆得过细会把条件与结果割裂,产生大量无法独立理解的句子。
父子集合必须充分且没有额外镀金
全部子要求合起来必须满足父要求,每个子要求也应能回到父要求、约束或派生理由。未追溯的“顺手做一下”是范围和维护风险。
功能分解不是组件分解
先问系统需要完成哪些逻辑功能,再通过架构把功能分配给人员、软件、硬件或服务。同一功能可能跨组件,一个组件也可能承担多个功能。
停止条件是能够验证而非达到固定层数
当要求已单义、可行、能明确分配、能设计实现、能以有限方法验证,并且接口与失败行为充分时,可以停止当前层分解。
功能要求基线前要检查什么
功能要求直接进入开发和测试,含糊词会很快变成实现者各自的猜测。基线检查既要确认正常路径可完成,也要确认未授权、重复请求、外部失败和无有效结果时不会悄悄改变状态。
- 必要且有上游依据吗?
每个功能支持获批结果、规则、风险或有记录的派生需要,不是因为某产品有此功能或团队觉得方便。
核对:上游要求、场景、规则、派生理由。
- 主体、条件、行为和结果唯一吗?
不同读者对谁在何时做什么、对象是什么、最终状态是什么得到同一解释,一条不混入多个主要义务。
核对:独立复述、反例和术语表。
- 正常、异常和禁止结果完整吗?
输入为空、无效、重复、无权、冲突、超时、依赖失败、人工介入和恢复均有明确行为,不默认“报错即可”。
核对:场景—功能与状态覆盖矩阵。
- 层级和方案独立性合适吗?
要求落在正确系统层,能分配而不过早冻结控件、产品、组件或算法;必须限制方案时有来源和理由。
核对:系统边界、架构决定和约束。
- 与规则、数据、接口和质量要求一致吗?
决定、状态、术语、数据语义、授权和错误行为没有互相矛盾,功能同时关联必要性能、安全、可靠性和可用性要求。
核对:交叉要求与接口评审。
- 可行且可验证吗?
在现有技术、数据、人员和依赖条件下能实现,并能构造有限输入、初始状态和预期可观察结果判定通过或失败。
核对:可行性证据、验证方法与样本类别。
- 双向追溯和变更影响完整吗?
每个上游必要行为都有覆盖,每个下层功能都有来源;变更时能找到相关场景、接口、状态、质量、测试和运营资料。
核对:追溯矩阵、孤立项和变更分析。
采购申请服务的功能要求构造例子
下面用独立构造、与任何客户无关的采购服务,把“提交前发现缺失资料”分成若干可观察行为。它不仅包括显示提示,也包括读取规则、保护权限、保持草稿状态和处理失败。编号与条件只说明写法,不代表真实制度或默认产品方案。
FR-101:检查提交就绪状态
当有权申请人在草稿状态请求提交时,系统应使用该请求时适用的获批规则版本,检查所有必需事实和材料,并返回每个满足项、缺失项及规则编号,不改变正式审批状态。
FR-102:阻止无权提交
当请求主体没有代表该申请组织提交的有效权限,或申请不处于允许提交的状态时,系统应拒绝提交、保持原状态并记录主体、申请、策略版本、原因代码和时间。
FR-103:资料不足时转人工
当必需材料无法读取、权威规则版本不确定或材料结论冲突时,系统应停止自动判断,保存已确认事实,将案件路由到指定复核队列并向申请人说明待处理事项。
FR-104:创建正式提交记录
仅当 FR-101 全部满足且 FR-102、FR-103 未触发时,系统应原子地创建不可混淆的提交版本、把状态从草稿改为已提交、记录规则与材料版本,并发送一次提交确认。
FR-105:处理重复请求
当系统收到同一申请版本和同一幂等标识的重复提交请求时,应返回首次提交的结果,不创建第二个提交版本、不重复改变状态或发送确认。
FR-106:保留决定边界
完整性检查、材料摘要或 AI 说明只能支持提交准备,不得生成采购批准、供应商选择或预算占用;这些动作必须由各自有权流程触发。
功能要求怎样连接设计、测试、验收和运行
一条功能要求只有在设计中找到承担组件、在测试中取得证据、在运行中留下可观察记录,才算真正进入系统。验收签字后这条关系仍有用:出现异常时,团队可以沿要求找到实现、日志、外部依赖和最近变更。
要求—模型一致性
活动、状态、序列、用例或数据流模型可以展示多条功能的关系;每个模型元素要能回到规范要求,模型变化也要触发要求影响检查。
要求—设计分配
架构记录哪个人员、流程、软件、硬件或外部服务实现功能,以及跨元素接口和事务边界;设计选择不能悄悄改变外部可观察义务。
要求—验证覆盖
每条功能要求关联至少一种验证方法,并按正常、边界、无效、无权、重复、失败和恢复建立覆盖。测试用例是验证实例,不是要求来源。
要求—验收边界
验收标准选择本期交付对象、正式版本、环境和业务样本的通过规则。不是所有内部子功能都由客户逐项验收,但其验证证据仍应支持上层验收结论。
要求—缺陷与豁免
失败结果关联要求 ID、版本、测试环境、重现条件、严重程度、处置和复测;延期或偏离由有权角色批准,不能把未实现要求直接改写成“按现状通过”。
要求—运行监测
关键功能应有足以发现触发、成功、失败、拒绝、人工接手和副作用的记录或指标,并遵守访问与隐私边界,使上线后能够确认真实行为。
企业 AI 功能要求要把生成、工具动作和人工责任拆开
AI 助手的一次回答,背后可能先检索资料、生成文字,再调用工具改变业务状态。这些步骤的风险和失败方式完全不同,不能合并成一句“AI 完成处理”。功能要求要逐步说明证据从哪里来、哪一步只给建议、哪一步需要权限或人工确认。
上下文组装与访问过滤
规定系统怎样识别当前主体、任务和对象,在检索或发送模型前过滤无权数据,并记录实际使用的输入和版本;提示词不能替代服务端权限。
检索与证据选择
规定查询构造、允许来源、版本与有效期过滤、结果去重、冲突标记和引用关联。检索不到足够权威资料时,应进入明确不足路径。
生成与结构化输出
说明允许生成的内容类型、必需字段、来源标注、事实与建议区分、输出解析失败处理,以及不得伪造批准、权限、状态或不存在依据。
规则与模型职责分离
资格、权限、状态转换和硬停止等确定性控制由可验证规则或代码执行;模型可以提取、归纳或解释,但不得暗中替代正式决定权。
资料不足、冲突与拒绝
明确缺失、矛盾、超出知识期、提示攻击、输出结构无效或高风险时系统怎样停止、保持状态、说明限制并转入人工或非 AI 路径。
工具调用和副作用
把查询、草拟、发送、写入、删除、批准等动作分别要求,规定参数校验、最小权限、确认、幂等、超时、回滚和结果复核;生成调用意图不等于获准执行。
人工复核和接手
规定何时创建人工任务、复核者看到哪些原始材料和模型依据、能够怎样纠正或覆盖、决定怎样回写,以及无人响应时保持什么安全状态。
审计、反馈与版本变化
记录组合版本、输入类别、检索依据、规则结果、工具调用、人工决定和严重失败;模型、知识或提示改变时,用这些功能路径驱动回归验证和重新批准。
回答可以有不同说法,关键控制不能跟着漂
同一个结论允许用不同句子表达时,可以通过结构、必需内容和禁止结果来约束,并用多次运行观察变化。但权限是否通过、业务状态有没有改变、资料不足时是否停止,必须每次都能得到确定且可重复判定的结果。
功能要求与相邻概念怎样区分
功能、页面、用户故事、业务规则和测试用例常在同一张任务卡上出现,却分别回答系统做什么、用户为什么需要、组织怎样约束和如何证明。把它们分开,既能保留业务理由,也不会让当前界面设计变成无法改变的需求本体。
| 概念 | 与功能要求的边界 |
|---|---|
| 功能或特性名称 | “报表”“搜索”“AI 助手”用于分组和沟通;功能要求必须继续规定条件、行为和可观察结果,名称本身不可验证。 |
| 系统要求 | 系统要求是完整基线,除功能外还覆盖性能、接口、数据、质量、运行和约束;功能要求只是其中规定系统行为的一类。 |
| 用户要求 | 用户要求从用户需求和能力出发,规定人机交互与使用相关质量;它可推导功能要求,但不等于全部内部系统行为。 |
| 用户故事 | 用户故事以简短叙述表达角色、目标和价值,便于对话与计划;一条故事可能需要多条功能与质量要求,也不能代替正式追溯。 |
| 用例或业务场景 | 它们描述跨多个步骤、角色和系统的目标路径及例外;功能要求从这些叙述中提取由指定系统层级承担的原子规范义务。 |
| 业务流程 | 流程展示组织中人员、系统和决定的端到端工作顺序;功能要求只规定其中分配给目标系统的行为,不接管流程治理。 |
| 业务规则 | 规则规定业务定义、允许、义务、禁止和决定;功能要求说明系统怎样应用、支持或执行规则,并引用其权威版本。 |
| 非功能或性能要求 | 它们规定功能做得多好及系统质量或约束。功能与性能应关联,但“返回结果”和“在何种负载下多快返回”是不同判定。 |
| 接口要求 | 接口要求规定边界双方的交互语义、协议、时序和责任;调用或响应接口是功能行为,但完整接口规格覆盖双方契约。 |
| 算法和设计 | 算法与设计说明怎样实现行为。只有确有标准、风险或互操作依据时才应限制具体方法,并把来源记录为设计约束或派生要求。 |
| 验收标准与测试用例 | 验收标准规定特定交付对象的通过规则,测试用例给出输入、步骤和预期;它们验证功能要求,不应反过来成为唯一需求说明。 |
| 产品待办项或任务 | 待办项安排某阶段要分析、设计、开发或验证的工作;功能要求属于产品基线,可能跨多个任务和发布持续有效。 |
依据与适用边界
本文解释系统与软件需求工程中的功能要求:规定一个边界明确的系统、子系统、软件项或服务在给定触发、前置条件、状态和模式下必须执行的功能、行为或转换,以及必须产生、保持或禁止的可观察结果。功能要求回答“系统必须做什么”,但不是功能名称、产品卖点、用户故事、用例、业务流程、业务规则、算法说明、接口设计、页面设计、性能要求、非功能要求、完整系统或软件规格、验收标准或测试用例。不同组织对数据、安全、错误处理或接口行为的分类可能不同,项目须声明分类口径;要求的实际内容、优先级、数值、法规适用性和批准权由具体项目有权人员确认。
- ISO/IEC/IEEE 29148:2018:系统与软件需求工程过程、要求特征、规格内容、验证、追溯与管理;2024 年确认继续有效
- ISO/IEC/IEEE 15288:2023:目标系统、系统元素、技术要求定义、逻辑分解、设计和验证等全生命周期过程
- NASA Technical Requirements Definition:功能要求说明为实现目标需要执行什么功能,并与性能、接口和跨领域要求共同形成完整技术基线
- NASA Logical Decomposition:用功能分析分解和分配功能,记录输入、输出、失效模式、后果、接口和派生要求
- NASA Requirements Management:多层要求的分配、双向追溯、状态、基线和变更控制
- NASA SWE-050:从上层系统要求分解并分配功能与性能要求,保证必要、完整、可验证和可追溯
- NASA Software Requirements Specification:功能行为、状态模式、数据、输入输出、验证错误、分解和派生要求的规格内容
- IREB CPRE Glossary:功能要求是关于系统功能必须提供的结果或行为的要求
- OMG SysML:以用例、活动、序列、状态和要求图表达功能、行为、要求层级、派生、满足、验证与分配关系
- NIST AI RMF Core:AI 系统预期用途、角色权限、数据与组件、人工监督、风险控制、测量和生命周期监测