简短的回答是"是".很长的答案是,浴缸分布不是一个很好的模型,因为失败的工作方式缺乏连续性.例如,输入值为42会导致被零除错误; 那么这些失败的分布将完全是输入中42个值的分布.它不像硬件,正如你所说:软件不会随着时间的推移而失败,它会在错误时失败.
现在,可能是你在滥用这里的话:你的意思是缺陷而不是失败.甲故障是不正确的行为一次出现; 一个缺陷是在实施,一个"错误"的一个缺陷.
软件中缺陷的出现往往具有类似浴缸的分布,但实际上它并不像你的图片那么干净:早期的bug往往被观察到逐渐减少,然后是补丁和新版本的尖峰,一般上升趋势开始进入软件的生命.但是,即使这样做也要仔细定义,因为你真的在谈论每单位时间观察到的缺陷.
现在,已经说过,现代SE实践往往会改变实际的速率,但不会改变观察到的缺陷随时间的分布."现代"在这里也值得一点定义:航天飞机HAL软件具有非常低的缺陷率,使用20年前"现代"的SE技术:强规格,结构化编程,严格审查和OCD版本控制和测试.极限编程倾向于具有较低的"缺陷"率,但许多传统方法称之为"缺陷"的XP称为"用户输入" - 因为没有有限和严格的定义它应该做什么,"缺陷"只是另一个故事.
有一些不错的研究表明XP/TDD会导致低缺陷率,但如果缺陷/单位时间分布是不同的形状,我会非常惊讶.