在安全关键软件方面,我们正面临成本危机,这意味着所需功能的增加已经超出了支付其开发费用的能力。例如,波音787项目需要650万行代码,设计、开发和测试的成本为4000000000美元。重大安全关键型项目的趋势是总成本呈指数级增长,软件在总开发预算中的比例逐年加大。下一个大型航空航天项目很可能用以前项目中使用的技术是无法承受的。那么我们能做什么呢?
安全认证和所需的测试和验证在软件开发预算中占了很大的比重。将软件的测试转移到左边(即在软件开发生命周期的早期),同时利用自动化技术,在成本、风险和进度方面都有很大的好处。下图1显示了商业航空公司软件开发每千行代码的成本(以百万美元为单位)(波音和空客的数据),它清楚地显示了指数级的增长。
图1:商业航空项目每行代码的软件开发成本。数据取自空客和波音的项目指标。
错误的产生和发现地点,以及对成本的影响
不足为奇的是,大多数缺陷都是在项目开始时引入的,甚至是在编写第一行代码之前。大多数缺陷是在测试期间发现并修复