关键系统中的逻辑与魔法:从航空到软件的启示
航空领域的逻辑崛起
在航空实践取得巨大成功的同时,理论空气动力学的进展表明,薄机翼或许并非最佳选择。路德维希·普朗特基于弗雷德里克·兰彻斯特奠定的基础所开展的升力线理论研究,指出了厚翼型截面的优越性。在当时众多有才华的航空工程师中,只有荷兰人安东尼·福克注意到了这一点,并率先将更厚的机翼截面应用于福克三翼机,后来更重要的是应用于 DVII 双翼机。这一成果使得该飞机性能大幅超越对手,如果大量生产,甚至可能改变战争的走向。1918 年停战协议特别规定,德国需向协约国交出的唯一一种飞机就是福克 DVII。
从那时起,航空工程行业的特点就体现在将实践经验与理论、数学研究相结合。早期航空的“魔法”已被如今行业的逻辑所取代。
以构建确保正确性
“魔法”并不足以解决问题。它看似能让生活更简单,为实现目标提供捷径,但实际上这只是一种错觉。真正的敌人是复杂性,即便被“魔法”掩盖,复杂性依然存在。我们应像霍are 教授所提醒的那样,先尽量减少复杂性,而非掩盖它。用航空工程领域的一句话来说,优秀设计的秘诀是“简化并增加轻盈感”。应对不可避免的复杂性的唯一方法是进行推理。
基于工程学的以构建确保正确性的方法,强调在系统和软件的开发全过程中都要进行推理。开发过程各阶段之间的语义差距应保持较小,这样才能确保每个阶段都保留前一阶段所需的属性。我们的目标并非满足特定的开发标准,而是要通过逻辑推理证明系统是可接受的,这样的系统能符合任何合理的标准。我们可能仍需进行大量测试,甚至标准可能会有此要求,但我们带着认为系统正确的预期进入测试流程,是为了证明其正确性,而非寻找预期中的大量漏洞。结构工程师对结构进行载荷测试,并非是“想知
超级会员免费看
订阅专栏 解锁全文
32

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



