强规范有何益处?
软件工程
2013-08-14 v4
摘要
轻量级形式化方法的经验表明,如果编写规范能为常规开发活动带来切实利益,程序员是愿意去做的。本文探讨了更强的规范,研究它们是否可以作为一种增量实践来部署,从而在不产生不可接受的高成本的情况下带来额外益处。我们引入了一种方法论,将契约式设计 (Design by Contract) 扩展为以前置条件、后置条件和不变量形式编写功能属性的强规范。该方法论旨在让那些不精通形式化技术但习惯于编写简单规范的开发人员易于接受。我们通过将该方法论应用于测试用 Eiffel 和 C# 编写的数据结构实现,评估了使用强规范的成本和收益。在我们的大量实验中,针对强规范的测试检测出的错误数量是标准契约的两倍,而在注释负担和测试时的运行时性能方面仅产生合理的开销。在软件质量的形式化技术谱系中,针对强规范的测试处于一个“最佳点”,具有有利的效益努力比。
引用
@article{arxiv.1208.3337,
title = {What Good Are Strong Specifications?},
author = {Nadia Polikarpova and Carlo A. Furia and Yu Pei and Yi Wei and Bertrand Meyer},
journal= {arXiv preprint arXiv:1208.3337},
year = {2013}
}
备注
This is the extended version of the camera-ready published as ICSE 2013