软件中的假设与设计决策:挑战与应对
1. 软件不确定性原理
在软件开发中,程序里所反映的假设集的持续有效性对程序的有效执行至关重要。对于E型程序而言,其假设集的有效性难以证明,因为我们无法识别该集合的所有成员,而且即便能识别的假设也可能会失效。
如果应用程序或其所在领域发生了变化,而系统却未做出相应的修正,那么无论过去程序的执行情况多么令人满意或有效,它都可能会出现不成功、不可接受或无效的行为。基于此,便有了软件不确定性原理:“E型程序在现实世界中执行结果的有效性无法被绝对预测”。
这里所说的“可接受/有效”和“不可接受/无效”并非指个人或集体对执行结果的主观判断,而是指执行结果是否满足程序的客观目的。该原理以可接受性/有效性而非“满意度”来表述,是为了避免因“满足”一词在计算机科学中的数学含义而产生歧义。
虽然假设并非软件不确定性的唯一来源,但有充分理由认为它是软件不确定性的主要潜在根源。这就表明需要进行假设管理,因为对假设的研究以及如何确定、管理和控制它们,对于日益依赖软件的社会的未来发展至关重要。
2. 假设失效的实例
很多人可能认为软件不确定性原理只是具有理论意义,实际价值不大。但实际上,有许多实例表明假设失效会导致严重的后果。
| 实例 | 详情 |
|---|---|
| CERN粒子加速器 | 在调试过程中,原本默认可以忽略月球影响的假设被证明是错误的。由于新加速器尺寸增大,月球的引力成为了实验误差的根本来源。 |
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



