Recovering Software Specifications with Inductive Logic Programming

Recovering Software Specifications with Inductive Logic Programming
复制标题

使用归纳逻辑编程恢复软件规格

DOI:
--
复制
发表时间:
1994
期刊:
AAAI Conference on Artificial Intelligence
影响因子:
--
通讯作者:
William W. Cohen
William W. Cohen
中科院分区:
--
文献类型:
--
作者:
William W. Cohen

文献摘要

被引文献

相似文献

我们考虑使用机器学习技术来帮助理解大型软件系统。特别是,我们描述了如何使用学习技术来从某一类型的数据库软件的操作实例中重构其抽象的数据日志规范。在一个涉及大型(超过一百万行C语言)真实软件系统的案例研究中,我们证明了现成的归纳逻辑编程方法可以成功地用于规格说明恢复;具体地说,Grendel2可以以高的准确率和召回率提取测试套件中大约三分之一的模块的规格说明。然后,我们描述了Grendel2的两个扩展,它们提高了这项任务的性能:一个允许它输出一组候选假设,另一个允许它输出包含判定的规范。这些扩展结合在一起,使近三分之二的基准模块能够以完美的召回率提取规范,精确度超过60%。
We consider using machine learning techniques to help understand a large software system. In particular, we describe how learning techniques can be used to reconstruct abstract Datalog specifications of a certain type of database software from examples of its operation. In a case study involving a large (more than one million lines of C) real-world software system, we demonstrate that off-the-shelf inductive logic programming methods can be successfully used for specification recovery; specifically, Grendel2 can extract specifications for about one-third of the modules in a test suite with high rates of precision and recall. We then describe two extensions to Grendel2 which improve performance on this task: one which allows it to output a set of candidate hypotheses, and another which allows it to output specifications containing determinations. In combination, these extensions enable specifications to be extracted for nearly two-thirds of the benchmark modules with perfect recall, and precision of better than 60%.