做软件需求,功能需求用户会提,但质量需求往往被一句“要稳定、要安全、要好用”带过。资源有限,不可能所有质量都做到极致。关键是要找出真正关键的质量需求,集中力量保障。怎么找?分两步:第一步,逆向思维,从威胁找需求;第二步,用风险曝光度排序。
第一步:逆向思维,排查核心威胁
别直接问“你要什么质量”,而是问“什么会威胁系统”。威胁找到了,对应的质量需求就浮出水面。以嵌入式软件为例,逐个看。
安全性:系统被偷,无非三种原因——太有钱、太有名、门没关好。嵌入式飞控软件,太有钱:控制权价值高,被劫持后果严重;太有名:军用无人机,攻击者有成就感;门没关好:无线通信开放,协议有漏洞。这些威胁越大,安全性需求越关键。
可靠性:最大威胁有三类。一是要求高,如工业控制嵌入式需7×24小时运行;二是环境复杂,高温、振动、电磁干扰;三是使用者手生,操作员培训不足,误操作导致系统不可靠。比如医疗输液泵,一旦死机人命关天,可靠性就是首要质量。
易用性:威胁来自效率要求高、用户基础弱、与开发者差异大。嵌入式手持终端,操作员在嘈杂环境快速操作,界面复杂就易出错;用户可能不熟悉智能设备,需要更多提示;开发者觉得好用的,现场人员未必觉得好用。
可维护性:最大威胁是变化。业务变化:新任务模式、新法规;技术变化:新传感器、新通信协议。嵌入式固件升级困难,如果可维护性差,每次变更都伤筋动骨。
可移植性:威胁来自系统生命周期长、部署范围大。同一套飞控软件要适配多种机型、多个客户,硬件平台不同,移植需求就大。
第二步:风险曝光度排序,找出最重要的
识别出候选质量需求后,用风险曝光度排序:威胁影响度 × 出现频度。
威胁影响度:给出标准,如生命攸关、重大经济损失、频繁小损失,赋予不同权重。生命攸关权重最高。
出现频度:分三级——经常出现(3分)、偶尔出现(2分)、低概率出现(1分)。
建议两个维度交给不同的人、不同团队评估,避免偏见。然后相乘,根据乘积排序。
嵌入式示例:无人机飞控软件
候选质量需求:
-
安全性:被劫持风险。影响度:生命攸关(权重10)。出现频度:低概率(1)。乘积10。 -
可靠性:任务中死机。影响度:生命攸关(10)。出现频度:偶尔(2)。乘积20。 -
易用性:地面站误操作。影响度:重大损失(8)。出现频度:经常(3)。乘积24。 -
可维护性:新任务模式升级。影响度:频繁小损失(3)。出现频度:偶尔(2)。乘积6。 -
可移植性:适配新机型。影响度:频繁小损失(3)。出现频度:低概率(1)。乘积3。
排序结果:易用性(24)> 可靠性(20)> 安全性(10)> 可维护性(6)> 可移植性(3)。这样就知道优先保障易用性和可靠性,安全性虽重要但出现概率低,可适度平衡。
总结
找关键质量需求,先逆向排查威胁,得出候选;再用风险曝光度排序,影响度乘频度,不同团队评估。嵌入式软件尤其要结合生命攸关、环境复杂、部署范围大等特点。抓住关键,资源才不浪费。
最后,四句诗总结:
逆向排查找威胁,风险曝光定优先。
质量需求抓关键,资源有限保重点。
参考书目:有效需求分析 ,作者: 徐锋,出版社: 电子工业出版社

