破除误解
第一个误解,是以为系统工程是一种工程技术,跟机械、电气、软件并列。它不是。系统工程研究的不是系统本身,而是"造系统"这件事的组织方式——如何把成千上万人的工作、数百个子系统、互相冲突的需求,组装成一个能用的整体。
第二个误解,是以为需求是项目开始前一次性定下来的清单。需求更像一个持续谈判出来的、必须被看管的条约。利益相关方会改主意,环境会变,设计过程中会暴露出当初没人想到的不可能组合。需求工程的核心工作不是"收集"需求——仿佛它们躺在那里等人捡——而是把它们写成可验证的、可追踪的、改动有代价的形式。
第三个误解,是把验证(verification)与确认(validation)当作同一个词的两种译法。它们回答两个不同的问题,混起来的代价极其昂贵。软件工程界流传最广的区分来自勃姆(Barry Boehm)的概括:验证问"我们把系统造对了吗",确认问"我们造的是对的系统吗"。一个系统可以完全符合规格书,同时在真实世界里毫无用处——因为规格书写错了。这样的事真实发生过,而且一再发生。
这门学科是什么:INCOSE 与它的手册
系统工程作为一套自觉的方法论,术语可以追溯到二十世纪四十年代的贝尔电话实验室;作为一个行业,它成形于冷战时期的导弹与航天计划——航天至今仍是它最严苛的应用场(见 space-engineering)。1990 年,美国的从业者在波音公司主持的会议上成立了全国系统工程理事会(NCOSE),五年后扩展为国际系统工程理事会(INCOSE)。它的《系统工程手册》(最新为 2023 年第五版)把系统工程定义为:一种跨学科的方法,统管把利益相关方的需要、期望与约束转化为解决方案、并在其全生命周期内支持该解决方案所需的全部技术工作与管理工作。
这个定义的要点不在"跨学科"这个口号,而在全生命周期:需求分析、架构设计、集成、验证、运行维护直到退役处置,都在同一个框架里被考虑。它的对立面是"各管一段"——设计交图、制造交产品,整体没人负责。ISO/IEC/IEEE 15288 把这套生命周期过程正式化为国际标准。
V 模型:把测试计划写进设计开始之前
系统工程最广为人知的图形是 V 模型。左边一撇向下:需求被逐层分解——从利益相关方需要,到系统需求,到子系统需求,到部件规格;右边一撇向上:实现物被逐层集成——部件测试、子系统集成测试、系统测试、验收测试。两边在同一高度上彼此对应:每一层的左边定义"应该是什么",右边检验"是不是"。
这个图最重要的含义经常被画出来却没人注意:右侧每一项测试的依据,在左侧对应的分解阶段就应当写下来。如果你在做系统需求时写不出"我们将如何检验这条需求",这条需求就是不合格的——它可能是一句愿望,而不是一条需求。"测试性"是需求的质量属性,与需求内容同等重要。V 模型在德国的制度化最彻底:1992 年它被定为德国联邦软件开发标准(V-Modell),此后多次修订。
验证与确认的区别在 V 模型上有精确的位置:验证贯穿整个右撇,回答"这一层是否满足上一层的要求"——它对照的是文档;确认位于 V 的顶端,回答"这个系统在真实使用场景中是否满足用户的真实需要"——它对照的是现实。一套电梯控制系统可以逐条通过规格书测试(验证成功),却在早高峰让乘客等得无法忍受,因为"响应时间小于两秒"这条需求本身就是从错误的假设里推出来的(确认失败)。验证的失败是工程失败,确认的失败是认知失败——我们把世界想错了。 在无法穷举测试的系统上,验证的一部分还要从测试转向证明——形式化方法正是在航天与航空这类领域最先真实落地。
需求可追溯性与变更管理:两个代价极高的案例
可追溯性的意思很朴素:每一条需求都能向上说出"我为什么存在"(源自哪条更高层需要),向下说出"我在哪里被实现、在哪里被检验"。这条链条的价值平时看不出来,直到有人要改东西。没有追溯链,变更的影响分析只能靠工程师的记忆与善意;有了它,"改动这条牵连什么"才是可回答的问题。
阿波罗登月舱:重量作为最硬的约束。 1965 年,登月舱的重量失控了。这年 5 月,NASA 阿波罗飞船项目办公室主任约瑟夫·谢伊(Joseph Shea)不得不说服上级把登月舱的控制重量上限上调到 14,850 公斤——6 月已有工程师警告连它也守不住。NASA 的官方史(《Chariots for Apollo》)记录了两条应对措施。其一是变更纪律:项目控制负责人托马斯·马克利(J. Thomas Markley)在 1965 年 6 月的备忘录中要求工程师对构型控制委员会保守提案——"变更必须纠正设计缺陷,而不是改进硬件"。其二是格鲁曼公司发动的减重战役("Scrape"与"SWIP"超级减重计划):由托马斯·凯利(Thomas J. Kelly)带队,对已经完成 95% 的图纸逐克复查。到 1965 年底,两项计划共削去约 1,100 公斤,包括用金箔多层隔热毯替换刚性隔热罩一项省下的 50 公斤。这是系统工程的一次完整示范:约束(土星五号的运载能力)不可谈判,需求(功能)必须保住,能动的是设计——而动设计的前提是知道每一公斤挂在哪条需求上。
F-35:需求膨胀如何把通用性吃掉。 联合攻击战斗机项目的核心卖点是一套机体满足三个军种,以此摊薄成本。项目立项时的作战需求要求三个型号之间保持 70%–90% 的通用性;2001 年国防部为整个采办计划定下的基线是 2,330 亿美元。国会研究局与审计署的逐年记录显示:三军种各自的关键性能参数不断追加,结构被迫分化,到 2008 年 7 月,按机体重量计算的型号间通用性只剩 27%–43%;采办成本到 2016 年已逼近 4,000 亿美元。兰德公司 2013 年的研究报告《联合战斗机项目省钱吗?》给出了更难堪的结论:考察历史上的联合军机项目,存在一种系统性的"联合成本增长溢价"——联合研制理论上省研发费,实践中却因为需求妥协与整合复杂度而更贵。F-35 不是技术失败的案例,它是需求与变更管理失败的案例:每一条追加的需求单独看都有理由,合起来吃掉了一开始用来论证项目成立的那个前提。
接口控制与权衡研究
系统出问题的地方很少在部件内部,绝大多数在接口上——机械、电气、数据、时序,以及最容易被忽略的人际与组织接口。系统工程的对策是把接口当作与设计实体同等的一等公民:接口控制文件(ICD)先于详细设计冻结,双方按文件对接,任何偏离都必须经变更程序,而不是两家工程师私下"通融"。
阿波罗计划里有一个漂亮的权衡研究(trade study)实例。1965 年,工程师克莱因·弗雷泽(Cline Frasier)提议用光学跟踪器替换登月舱的交会雷达,估算可省 40 公斤重量与 3,000 万美元。NASA 没有当场拍板,也没有当场否决,而是在年底设立了被内部称为"交会传感器奥林匹克"的竞标式评估:两套方案平行推进,统一成功判据,1966 年春见分晓。最终胜出的是雷达——因为乘组操作负责人斯莱顿等人指出的距离与距离变化率测量能力,是光学方案补不上的。权衡研究的要点不是"选出最优",而是把选择标准事先摆在桌面上:事先约定的判据,防止了立场取代论证。阿波罗的"全箭测试"(all-up testing,1963 年由乔治·穆勒推动,尽可能以完整构型试飞而非逐级递加)是同一思想在验证策略上的应用:让接口问题尽早以真实形态暴露。
争议与边界:不能推出什么
不能把流程当成可靠的保证。 V 模型、追溯矩阵、配置控制委员会都只是工具。挑战者号事故里,O 形环在低温下的性能数据齐备,测试记录完整,失效的环节是把数据送到决策桌上的那段组织距离——详见 challenger-o-ring-organizational-failure。流程决定信息"能不能"流动,文化决定它"实际上"流不流动。
不能把可追溯性当成不做判断的借口。 完全的追溯矩阵在大系统上是天文数字,维护本身就要成本。成熟的做法是有选择地追溯——安全关键需求、跨承包商接口、法规符合性条目优先。这与 工业工程 处理变异的态度相通:把最严的控制投给最关键的少数特性。追溯是手段,问责才是目的。
不能假定需求前期固定就是坏事、变更是坏事。 敏捷与增量开发对"前期冻结一切"的批评是真实的:对探索性系统,过早冻结需求等于冻结错误。但同样真实的是,在涉及人身安全、法规认证与巨额沉没成本的系统上,未经影响分析的变更是灾难的主要入口之一。两种立场各有成立条件,变成阵营之争是行业的内耗。
不能指望一篇通识文章替代工程判断。 本文为原理性通识介绍。具体项目的安全裕度、适航或行业认证、验证充分性判据,须由持照专业人员结合现场规范、适用标准与实际工况判断;本文不构成任何工程决策依据。
跨域连接
- 挑战者号 O 形环与组织失效:系统工程给出的是信息结构——追溯链、变更委员会、接口文件——而挑战者号展示的是这个结构在组织压力下的实际通量。发射前一晚的工程数据符合每一条流程要求,但流程没有规定"当建议与发射计划冲突时谁有最后决定权"。验证体系回答的是技术问题,而事故几乎都发生在技术问题与组织问题的接缝上,这正是系统工程把"管理"写进自己定义的原因。
- 失效分析:失效分析与需求工程是同一枚硬币的两面。需求追溯矩阵预先规定了"系统在什么条件下算失败",失效分析则在事后回答"它实际失败的方式是否在我们设想过的清单里"。一次次事故调查积累下来的失效模式,最终会回流为下一代系统的需求条目——航空业的适航条款几乎每一条背后都对应着真实的事故与真实的名字。
- 巨型工程:从大型水坝到新一代机场,巨型工程的成本超支有规律可循,而需求与范围的渐进扩张是最重要的机制之一。F-35 的通用性从 70%–90% 滑到 27%–43% 的轨迹,在民用巨型工程里以"范围蔓延"的名字反复重演。变更管理的纪律,本质上是对"单条看都合理的改动,合起来会毁掉项目前提"这一算术的承认。
- 博弈论:需求不是被"收集"的,而是被谈判出来的。三军种共用一套机体,意味着每个军种既有动力塞入自己的关键性能参数、又有动力否决别人的——个体的最优策略(坚持己方需求)加总出集体的次优结果(通用性瓦解)。接口控制文件和配置控制委员会,可以看作是给这个博弈安装的规则装置。
- 统计学:验证的右半边最终都要落成数据——样本量多大才敢说"可靠性达标",验收测试的置信度怎么定。这些问题没有统计学框架就只能靠资历和胆量回答。"我们通过了多少测试"从来不是一个完整的论证,"这些测试覆盖了输入空间的多大比例"才是。
参考文献
- Brooks, Courtney G., James M. Grimwood, and Loyd S. Swenson. Chariots for Apollo: A History of Manned Lunar Spacecraft. NASA SP-4205, 1979.
- INCOSE. Systems Engineering Handbook: A Guide for System Life Cycle Processes and Activities. 5th ed., Wiley, 2023.
- Lorell, Mark A., et al. Do Joint Fighter Programs Save Money? RAND Corporation, MG-1225-AF, 2013.
- U.S. Government Accountability Office. F-35 Joint Strike Fighter: Preliminary Observations on Program Progress. Testimony before the House Armed Services Committee, 2016.
- Gertler, Jeremiah. F-35 Joint Strike Fighter (JSF) Program. Congressional Research Service, RL30563(历年更新版).
- ISO/IEC/IEEE 15288. Systems and Software Engineering — System Life Cycle Processes. 2015.
延伸阅读
- Boehm, Barry W. Software Engineering Economics. Prentice Hall, 1981.
- NASA. NASA Systems Engineering Handbook. NASA/SP-2016-6105 Rev 2, 2016.
- Maier, Mark W., and Eberhardt Rechtin. The Art of Systems Architecting. 3rd ed., CRC Press, 2009.
- Vaughan, Diane. The Challenger Launch Decision. University of Chicago Press, 1996.