The technology of formal software verification has made spectacular advances, but how much does it actually benefit the development of practical software? Considerable disagreement remains about the practicality of building systems with mechanically-checked proofs of correctness. Is this prospect confined to a few expensive, life-critical projects, or can the idea be applied to a wide segment of the software industry? To help answer this question, the present survey examines a range of projects, in various application areas, that have produced formally verified systems and deployed them for actual use. It considers the technologies used, the form of verification applied, the results obtained, and the lessons that can be drawn for the software industry at large and its ability to benefit from formal verification techniques and tools. Note: a short version of this paper is also available, covering in detail only a subset of the considered systems. The present version is intended for full reference.
翻译:正式软件验证技术取得了惊人的进展,但它实际上对实际软件开发有多大帮助?关于使用机械验证正确性的系统的实际构建性,仍然存在相当大的分歧。这种前景只限于一些昂贵的、生命关键性的项目,还是这个想法可以应用于软件行业的广泛部分?为了回答这个问题,本次调查考察了一系列不同应用领域的项目,它们产生了经过正式验证的系统并部署了它们供实际使用。它考虑了使用的技术、应用的验证形式、获得的结果以及对整个软件行业及其从正式验证技术和工具中受益的能力的教训。注意:本文的短版也可用,仅涵盖所考虑系统的子集的详细信息。本版本供全面参考。