是否有系统或是否有软件开发,并提供正确的证据来支持它?或者所有关键系统都是仅通过积极的代码审查和测试周期开发的?
在现实世界中,对高完整性应用程序进行编码通常涉及跳过一堆QA箍.有时这些箍实际上与正确使用软件有关.
美国的医疗器械行业受到FDA的监管.他们发布了一系列涵盖"设计"的法规,其中包括所有软件开发.这些规定基本上是类固醇的ISO 9000.您必须拥有一堆文档,这些文档由审阅者编写,标记,更新评论意见并由高级经理签字.由于法规有法律支持,FDA希望看到证据证明这些记录没有被篡改,例如在您看到测试给出的结果后写下测试的"预期结果".因此,您必须拥有一个完全安全的CM系统,或者必须在纸上签名并注明日期(包括源代码).FDA检查员具有真正的执法权力; 如果他们认为合适,他们可以用武装的联邦元帅检查你的源代码.但他们不是软件专家:他们的工作不是判断代码的质量,只是为了确保您遵守所有规定.
航空业必须遵循DO-178B,这也是类固醇的ISO-9000.您必须生成大量文档并证明它们之间的可追溯性.我不知道美国联邦航空局是否采用与FDA相同的QA方法.
问题是没有人真正知道如何生产能够达到预期目标的软件.因此,我们有一种货物崇拜的方法,我们生产大量的文件,希望这将使我们的软件充满质量.确实,质量软件通常具有明确的要求和简单的逻辑体系结构,但这并不意味着编写"需求文档"或"架构文档"将改善问题.
证据表明,对代码正确性影响最大的因素是创建代码正确性的团队.但是,您无法为团队编写法律约束.因此,具有强制质量工作的人员必须在过程中编写约束,而模糊的希望这将产生类似的效果.