软件不确定性原理与假设的影响
1. 引言
在20世纪50 - 60年代计算机开始普及之时,人们认为在计算机程序正确实现后,其在现实世界中的执行结果只要不超出规范设定的范围,就是完全可预测的。然而,执行结果的持续有效性并不能得到绝对保证。这一现象源于E型软件应用及其运行的现实世界具有无限数量的属性,且这些属性不可避免地会发生变化。这一基本观察被称为软件不确定性原理。
2. SPE程序分类方案
为了解释软件中为何不可避免地存在假设,并推导其影响,这里介绍一种SPE程序分类方案:
- S型程序(S代表规范) :实现对可以完全、明确(可能是形式化)规范的问题的解决方案。至少从理论上讲,处理这类问题的程序可以被证明相对于规范是正确的。这类程序解决的是在封闭、抽象领域中完全定义的问题。例如,计算机科学文献中关于形式化方法广泛讨论的领域就涉及S型程序。不过,即使是S型程序,其解决问题的规范也会反映出关于应用和执行领域的假设。当S型组件集成到E型系统中时,它们会获得E型属性。
- E型程序(E代表进化) :处理现实世界的计算机应用和/或支持现实世界的活动。安装到运行领域后,它们在其中运行并与之交互,执行结果取决于现实世界的属性。这类程序在人类活动的各个层面都很普遍,但它们面临诸多挑战。E型软件所处理的应用无法像证明绝对正确性那样完全、明确地规范,即使有部分规范可用,正确性证明也是不完整的,因为它无法涵盖现实世界领域的无限属性。现实世界用户和其他利益相关者更关注程序在现实世界中的执行结果,而不是部分组件相对于规范的正确性证明。由于现实世界是动态变化的,E型系统必须不断进化以适应变化。
-
超级会员免费看
订阅专栏 解锁全文

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



