企业 AI 项目 Wiki · 需求与业务场景
软件要求
也常写作Software requirement · 软件需求 · 软件系统要求 · 软件项要求 · 软件技术要求
软件要求是对指定软件对象在明确运行环境、状态、输入、接口、资源和异常条件下必须满足的功能、性能、数据、质量、保护或约束所作的规范性陈述。获批的软件要求集合把上层系统和相关方意图转成软件可承担、可验证、可追溯并可维护的交付基线。
软件要求规定软件必须承担什么,不是把系统要求改个标题
企业系统通常由软件、云或硬件资源、数据、外部服务、人员和业务流程共同完成结果。系统要求可以约束整个组合,软件要求只对其中已经明确分配给软件的义务负责。若审批最终决定必须由授权人员作出,就不能为了“软件要求完整”而写成软件自动批准;软件应承担展示证据、接受决定、校验权限和记录结果等被分配行为。
软件要求是一个完整集合,不是功能要求的同义词。除了系统做什么,还需规定软件状态和模式、内部外部接口、数据、性能和时限、安全隐私、可靠与恢复、资源、运行环境、配置适配、安装升级、维护支持及有依据的实现约束。遗漏的类别往往在开发后期以集成、生产或交接问题重新出现。
NASA 要求软件要求由上层系统工程要求、安全和可靠性分析、硬件规格与设计等下传或派生,并保持清晰、完整、一致、可行、可验证和上层可追溯。软件团队可以参与澄清上层要求,但不能仅凭技术偏好创造业务义务。
先确定软件对象、运行环境和责任边界
一套系统可能同时依赖业务应用、身份平台、数据库、第三方服务和人工流程。软件要求只约束其中被明确指定的软件对象。边界清楚后,团队才不会把外部服务承诺成自有能力,也不会把本应由软件保护的责任推给操作人员。
目标软件对象
明确是完整软件系统、业务应用、后端服务、移动端、嵌入式软件、模型编排服务还是某个软件配置项;每条要求标出分配层级。
软件内部组成
列出由本基线控制的代码、配置、规则、脚本、模式、模型或提示等配置项。模型和数据是否属于软件配置须按项目定义,不能默认一概而论。
承载与使能环境
说明操作系统、运行时、数据库、网络、硬件、云服务和运维平台哪些由软件依赖、哪些属于软件交付、哪些由客户或第三方提供。
外部人与系统
识别用户、操作者、管理员、维护者、设备、上游下游系统、供应服务和人工流程,以及每个边界的权威来源与责任。
运行状态和生命周期
覆盖初始化、正常、峰值、维护、降级、断连、恢复、迁移、升级和退役;软件在不同状态的义务可能不同。
不可由软件单独保证的结果
业务成效、人工响应、外部服务可用率、底层硬件可靠性和组织合规通常需要共同责任;软件要求只承诺可分配且可验证的部分。
- 边界是否支持报价和责任确认?
能够辨认本期开发、配置、集成、客户准备和持续费用,避免把整个企业运行环境算进软件开发。
核对:系统上下文、软件分解、范围和责任矩阵。
- 每个系统要求都完成分配了吗?
上层要求可以分给软件、硬件、人或流程,也可能多方共同满足;未分配项需有负责人和关闭决定。
核对:系统—软件分配与未决项。
- 软件边界变化会触发复核吗?
把规则移出代码、替换模型服务或新增人工复核都会改变责任、接口、验证与交付资料。
核对:配置基线和变更触发规则。
一套完整软件要求通常覆盖哪些内容
软件不仅响应界面操作,还管理状态、保存数据、调用接口、记录异常并支持安装和维护。只写功能故事,会让安全、资源、升级和故障恢复等必要行为落在实现者的默认选择里。完整覆盖是为了让这些责任也能被设计和验证。
功能、状态与模式
软件在触发和前置条件下接收、验证、计算、决定、存取、呈现、传输、阻止或恢复什么,以及启动、正常、维护、降级和故障模式中的状态转换。
外部与内部接口
与用户、硬件、其他软件、数据源和运维工具的交互,以及确有必要在要求阶段约束的软件内部接口;引用双方认可的接口契约。
数据与信息处理
对象定义、标识、来源、完整性、精度、时间、状态、保留、迁移、删除、审计和权威数据源;数据字典可以独立维护但须受控引用。
性能、时限与容量
在明确负载、数据、硬件和网络条件下的响应、延迟、吞吐、并发、批量、存储和资源边界,并连接可复现的性能要求。
安全、隐私与软件安全性
身份、授权、隔离、输入验证、机密性、完整性、日志、事件响应、隐私处理、安全状态、危险控制和不可绕过的保护。
可靠性、可用性与恢复
故障检测、隔离、重试、降级、数据一致性、重启、检查点、备份恢复配合和恢复后的状态核对;不能只写“系统稳定”。
软件质量与可维护性
可分析、可修改、可测试、可观测、可移植、兼容、可访问和可支持等适用质量,并用场景和判据量化。
运行环境与计算资源
支持的操作系统、运行时、处理器、内存、存储、通信、设备、区域和环境限制,以及达到要求所需的资源假设。
配置、适配、安装与升级
不同站点或租户使用的配置数据、功能开关、初始化、部署、迁移、升级、回退、卸载和兼容条件。
运行、维护、培训与支持
操作和维护所需的诊断、权限、工具、手册、培训、支持接口、数据导出和退役能力;属于软件产品义务的部分进入基线。
设计与实现约束
只有来自外部标准、兼容、安全、许可或已批准架构的必要限制才进入要求,并记录理由;一般技术偏好保留为设计决定。
外购、开源和复用组件
对 COTS、SaaS、开源、旧系统和复用代码同样规定功能适配、配置、接口、质量、安全、许可、支持、缺陷、更新和退出条件,不能因“不是自己开发”而遗漏。
一条软件要求怎样写到可实现、可验证和可维护
软件要求既要给实现足够信息,也要避免把当前代码结构写成永久限制。用输入、状态、行为、输出和异常描述外部可观察义务,并保留来源与验证方式,团队就能在更换内部设计时继续证明同一责任。
稳定 ID、主体和层级
用稳定编号标出承担义务的软件系统、配置项或服务;不要在同一层级把系统、软件和组件主体混写。
条件、触发、状态与模式
明确何时适用,包括角色、权限、数据状态、运行模式、外部依赖、时间和环境;无条件语句只用于真正始终成立的约束。
单一规范义务
写明软件必须执行、产生、保持或禁止的一个可判断结果;复合义务拆分后用共同父要求或场景维持关系。
输入、输出、数据与接口
引用受控对象、来源、格式、规则和接口版本,说明空值、冲突、无效、重复和越权输入的处理。
量化质量和资源条件
性能、可靠、安全或维护目标附带负载、环境、测量、统计、阈值和失败等级;资源假设与目标配置可核对。
异常、安全状态与禁止副作用
规定依赖失败、部分完成、断电重启、无资料或风险条件下的停止、回退、保留、通知和人工介入,明确不得发生的状态。
来源、理由和派生状态
连接上层系统要求、相关方意图、接口、安全分析、法规或架构决定,说明是直接分配还是经分析派生及由谁批准。
验证、验收和优先级
指定检查、分析、演示或测试及代表环境、数据和证据,记录关键性、版本、状态和本期验收适用性。
双向追溯与变化触发
向上追到来源,向下追到设计、代码或配置、验证、偏差和发布;外部依赖、风险或实现变化能反向发现受影响要求。
软件要求怎样从系统分配和工程分析中形成
不是所有系统要求都应该原样落到软件。团队要根据架构分配,判断哪些由软件独立承担、哪些与人员或设备共同完成;同时把安全、故障、资源和外部组件分析产生的新软件约束连回依据。
冻结当前上层输入和目标软件边界
使用获批系统要求、业务场景、运行概念、接口、范围和假设,标出输入版本与未决事项,不从页面原型或现有代码直接宣布基线。
完成系统功能和责任分配
逐项决定由软件、硬件、人、流程或外部服务承担什么;共同满足的要求给出分配关系和端到端验证责任。
分析正常、异常和生命周期场景
沿输入—处理—输出、状态、数据和接口追踪正常、边界、错误、维护、恢复和退役,发现遗漏的软件行为与保护。
吸收安全、可靠性、硬件和环境分析
从危险、威胁、隐私、故障、资源和设备限制导出软件必须检测、阻止、记录、降级或保持的要求,并保留派生理由。
分解到可独立承担和验证的层级
保持父子要求的充分必要关系,避免按页面、微服务或代码函数机械切碎;设计尚未决定时不提前绑定组件。
补全跨类别一致性
功能与状态、数据、接口、性能、安全和恢复共同走查,确认一类要求没有让另一类无法满足,例如缓存性能破坏权限或数据新鲜度。
双方和专业角色验证要求
让业务、系统、软件、测试、运维、安全、数据及外部接口方确认必要、充分、可行和使用环境正确,并关闭冲突与 TBD。
批准软件基线并进入变化控制
记录适用版本、负责人、追溯、验证方法、偏差和批准证据;迭代开发可以逐步成熟,但每个交付增量仍有可识别基线。
既要审查每一条,也要审查整套软件要求
单条要求写得清楚,不代表集合已经完整。两条各自合理的状态要求可能互相矛盾,多个功能也可能争用同一资源或留下无人处理的错误状态。评审要同时看句子质量和整套软件行为是否能共同成立。
- 正确且必要吗?
义务确实支撑上层结果或风险控制,没有把个人偏好、旧实现或未经批准范围包装成要求。
核对:来源、理由、分配决定和有权确认。
- 清楚、单义且原子吗?
主体、条件、动作和结果只有一种合理解释;一个编号内的义务能够单独状态和验证。
核对:同行走查、术语表和反例解释。
- 现实、量化且可验证吗?
阈值有业务与工程证据,环境和方法可取得;“智能、快速、稳定、友好”等形容词已转成判据。
核对:原型、基线、预算、验证方法和设备条件。
- 向上和向下都可追吗?
知道为什么需要、由谁实现、怎样证明、哪些偏差影响它;孤儿要求与没有软件子项的上层分配均被处理。
核对:双向追溯矩阵或等效图谱。
- 要求集合完整吗?
覆盖所有模式、角色、数据、接口、质量、异常、资源、安装运行维护、外购复用和退役,不只审查句法。
核对:类别矩阵、场景覆盖和接口清单。
- 集合一致且可共同满足吗?
状态、字段、单位、时区、权限、错误、性能和保留定义没有冲突,资源和外部承诺能同时支撑目标。
核对:模型分析、交叉审查、容量与风险证据。
- 假设、约束和 TBD 受控吗?
未确认事项有来源、负责人、期限和失效影响;设计假设没有伪装成客户义务。
核对:问题台账、假设登记和关闭记录。
软件要求集合与 SRS、待办列表和交付基线怎样配合
SRS 是组织要求的一种载体,待办列表是安排工作的方式,交付基线则说明本次实际承诺哪一版。三者可以互相引用,但不能互相假装:一张任务卡关闭,不等于完整软件责任已经验证。
Software Requirements Specification(SRS)是组织和传递软件要求的一种受控信息项。它可以是单一文档,也可以由需求库、模型、数据字典、接口规格和受控链接共同实现;NASA 明确软件要求和设计规格不必全是文本,也可以使用严谨语言、图形或分析工具表示。关键不是文件名,而是内容完整、版本可识别、关系不丢失。
产品待办列表可以安排实现顺序,用户故事可以表达迭代中的用户价值,但它们通常不会自动覆盖所有状态、接口、质量、安全、运维和复用组件要求。团队可把要求关联到 Epic、Story 或任务,却不应因采用敏捷方法而取消产品基线、验证和双向追溯。
交付时需要能够重建当时适用的软件要求集合:包括批准版、数据与接口引用、TBD 关闭、偏差、设计与代码配置、测试结果、已知限制和运行资料。只导出一份过期 SRS PDF 或当前看板,无法证明实际版本按什么建设和验收。
内容基线
稳定 ID、文本或模型、适用软件对象、版本、状态、来源、优先级、关键性、理由和批准。
关系基线
上层系统要求、接口与数据定义、风险与危险、设计元素、实现配置、验证、偏差和发布版本之间的连接。
变化记录
提议、影响分析、双方意见、批准拒绝、迁移、实现、回归和生效时间,保留旧版可追溯性。
访问与责任
谁能提出、编辑、审查、批准和关闭要求,供应方与客户如何取得一致版本,敏感要求怎样受控分享。
采购申请软件要求的构造例子
下面用独立构造、与任何客户无关的采购应用,展示系统层责任怎样分配成软件可执行的状态、权限、记录和失败行为。编号与变量只说明结构,不代表真实功能、控制或性能承诺。
SWR-FUN-101:提交前检查
当获权申请人在草稿状态请求检查时,申请软件应按已批准规则版本返回每个缺失或冲突项、适用规则 ID 和可修正位置,不得创建正式申请或改变批准状态。
SWR-STATE-102:原子提交
当草稿通过检查且申请人确认提交时,软件应以唯一请求标识原子创建正式申请与初始审计记录;任一必要写入失败时保持可恢复草稿,不产生部分正式状态。
SWR-SEC-103:职责分离
软件应对当前组织、对象和动作独立验证申请与批准权限,不得仅依据客户端角色文本;同一主体不得执行经业务规则禁止的自我批准。
SWR-IF-104:ERP 创建意图
达到“待 ERP 接收”状态后,软件应按接口要求 IF-101 至 IF-108 发送、查询和对账,不得把网络超时直接视为 ERP 未创建。
SWR-PERF-105:提交性能
软件在获批环境、负载 W1 和数据 D1 下执行 SWR-FUN-101 与 SWR-STATE-102 的时间、吞吐、错误和资源应满足关联性能要求 P1;P1 未批准前不得编造秒数。
SWR-REL-106:依赖不可用
当规则、身份或 ERP 依赖不可用或结果不确定时,软件应停止不可逆动作,保留请求、依赖状态、关联标识和已完成阶段,并向获权角色提供可行动状态。
SWR-OPS-107:诊断与对账
获权运营人员应能按申请和关联标识查看受控的处理阶段、规则与接口版本、失败分类和对账状态,但不得看到超出支持目的的敏感材料或凭证。
外购、SaaS、开源和复用软件也必须有要求
团队不编写一项软件,并不意味着可以不规定它。第三方组件仍会影响数据、可用性、安全、版本和退出能力。项目需要为选择、配置、监测和替代写出要求,再用供应商证据与自身验证共同判断是否满足。
适用能力和禁止用途
说明组件被用于哪些功能、数据和风险级别,不允许承担什么;供应商宣传或开源 README 不能代替项目要求。
版本、配置和依赖
固定或约束组件版、配置、插件、运行环境和传递依赖,记录升级策略、兼容范围和已知缺陷。
质量、安全和证据
规定性能、可用、漏洞、补丁、数据处理、日志、测试与证明材料;无法取得内部设计时,用黑盒验证和补偿控制管理不确定性。
许可、权利和交付
核对使用、修改、分发、数据、模型、输出、专有权、担保和移交限制;法律结论由有权角色确认,不由技术条目推断。
支持、变化和事件
规定通知、维护窗口、弃用、缺陷响应、重大变化、事故协作和联系人,供应方变化触发影响分析与回归。
替换、导出和退役
明确配置、数据和审计的可导出性、替代接口、迁移验证、停止使用和删除证据,避免关键能力只有不可验证的单一供应路径。
企业 AI 软件要求要明确组合版本、概率输出和确定性控制
在 AI 应用里,很多行为并不只由代码决定。模型、提示词、知识索引和工具配置会一起改变结果,因此软件要求既要标识这套组合,也要把权限、状态和不可逆动作放在可重复验证的控制之内。
定义软件与 AI 配置对象
明确应用代码、模型服务、模型版、提示、检索配置、知识索引、规则、工具模式和安全策略哪些进入可复现组合,哪些是外部受控依赖。
规定预期与禁止行为
按角色、任务、资料状态和风险写清生成、检索、分类、建议、拒绝和人工转接,不用“智能回答”“自动理解”代替软件义务。
确定性控制包围概率输出
身份授权、数据隔离、业务规则、工具参数验证、不可逆动作确认、停止条件和审计由可验证控制实施,模型输出不得自行扩大权限。
资料不足、冲突与不确定
规定缺少权威来源、来源冲突、低支持度或模型拒绝时软件必须怎样标记、限制、追问、停止或交给人,不得编造完成状态。
质量要求连接代表评测
按任务、语言、角色、资料状态和严重错误分层定义正确性、相关性、证据、稳健、公平与安全,记录样本、标注、重复和统计口径。
模型、知识和工具接口
把输入输出模式、权限、版本、超时、限流、错误、幂等、数据用途和供应变化写进接口要求,不把第三方 SDK 当契约。
软件要真的把任务交到人手里,而不是显示一句请人工处理
移交功能要创建可领取的任务,附上原始材料、系统依据和当前状态,并在等待期间锁住不能继续的动作。还要处理无人接收、超时和人工决定写回。只有页面提示而没有队列、接收角色和审计记录,并不算人在环。
持续变化触发回归和批准
模型、提示、知识、规则、数据、工具、用途或风险变化后,软件识别组合版本,执行对应回归、灰度、回滚和重新批准。
保留非 AI 或安全降级路径
高风险或关键业务明确 AI 不可用、质量不足或供应退出时的软件行为,包括传统规则、只读查询、排队和人工办理,避免无声失败。
软件要求与相邻概念怎样区分
系统要求可以把责任分给人员、设备和外部服务,软件要求只接住其中的软件部分;设计和代码再说明怎样实现。分清层级,既避免软件承担它控制不了的结果,也避免用一段现有实现替代长期有效的义务。
| 概念 | 与软件要求的边界 |
|---|---|
| 系统要求 | 约束更广的目标系统,可把义务分给软件、硬件、数据、人、流程和外部服务;软件要求只承接明确分配或派生给软件对象的部分。 |
| 功能要求 | 规定必须执行的行为与结果,是软件要求的重要类别;软件要求集合还含状态、数据、接口、性能、安全、质量、资源和生命周期约束。 |
| 非功能要求 | 规定质量或有依据约束,可以分配给软件;它不是软件要求的剩余杂项,也不能代表完整软件基线。 |
| 性能要求 | 量化功能在负载和环境下做得多快、多少和多高效;软件性能要求是完整软件要求集合中的一类。 |
| 接口要求 | 规定软件边界两侧共同契约,可能同时对软件和外部实体分配义务;软件基线引用并承担属于本侧的部分。 |
| SRS | 软件要求规格是组织软件要求和必要背景、理由、关系的一种受控信息项;要求可存于文档、库或模型,文件存在不等于内容完整。 |
| 用户故事与产品待办 | 用于表达迭代价值和安排工作,可关联软件要求,但通常不会自动覆盖全部质量、安全、接口、运维和追溯。 |
| 软件架构与设计 | 说明怎样分解结构、分配组件并实现要求。设计受到要求约束,也可能产生派生要求,但实现选择不等于上层义务。 |
| 代码和配置 | 是软件要求的实现和配置状态;代码当前行为不能自动成为正确要求,反向工程结果须经来源与有权确认。 |
| 测试用例 | 定义验证某项要求的条件、数据、步骤和预期结果;测试发现遗漏可促成变更,但脚本默认值不能直接创造需求。 |
| 验收标准 | 把批准要求应用到指定交付版本、环境和样本以作出通过决定;完整软件要求还包含未必在一次项目验收中证明的长期运行义务。 |
| 项目要求 | 规定团队过程、排期、评审、报告或交付方式;只有明确约束软件产品本身的部分才转成软件要求。 |
依据与适用边界
本文解释系统与软件工程中的软件要求:分配给边界明确的软件系统、软件项、服务或软件配置项,规定其必须提供的行为、状态、数据处理、接口、性能、质量、安全保护、运行适配和生命周期约束,并形成可设计、实现、验证、双向追溯和受控变更的软件基线。它不只是功能清单,也不等于项目所有需求。本文不完整定义系统要求、功能/非功能/性能/接口要求、用户故事、产品待办项、SRS 文档、软件设计、架构、代码、测试用例、验收标准、项目管理要求或供应合同。具体软件边界、要求分配、安全等级、外购与开源适用性、阈值和批准权须由项目有权人员确认。
- ISO/IEC/IEEE 29148:2018:系统与软件需求工程过程、软件要求规格、良好要求特征、验证、追溯和变更;2024 年确认继续有效
- ISO/IEC/IEEE 12207:2026:软件系统、产品与服务从构思、采购供应、开发、运行维护到退役的全生命周期过程框架
- NASA SWE-050:建立、记录、批准和维护软件要求,并覆盖 COTS、政府软件、改装软件、开源和复用组件
- NASA SWE-051:从系统工程要求、安全可靠分析和硬件规格分配与派生软件要求,并审查正确、完整、一致、可行、可验证与可维护
- NASA SWE-052:软件要求与上层要求、系统危险、设计、代码、验证和不符合项之间的双向追溯
- NASA SWE-055:贯穿生命周期验证软件要求必要、充分、可行并反映客户和相关方在目标环境中的预期
- NASA SWE-109:SRS 覆盖功能、状态模式、内外接口、数据、适配、安全、性能、环境、资源、质量、约束和验证理由
- NASA SWE-027:外购、政府、旧有、开源与复用软件的适用要求、许可权利、支持、缺陷、风险和生命周期管理
- NIST SP 800-160 Vol. 1:从相关方保护需要和系统风险出发,将可信和安全要求贯穿系统与软件生命周期
- NIST AI RMF Core:AI 系统要求、组件和第三方依赖、角色责任、数据、人工监督、测量、供应变化与持续监测