Recovering Software Specifications with Inductive Logic Programming

Abstract

We consider using machine learning techniques to help understand a large software system. In par-ticular, we describe how learning techniques can be used to reconstruct abstract Datalog specifica-tions of a certain type of database software from examples of its operation. In a case study in-volving 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, Grende12 can extract specifications for about one-third of the modules in a test suite with high rates of precision and recall. We then de-scribe two extensions to Grende12 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%.

Cite

Text

Cohen. "Recovering Software Specifications with Inductive Logic Programming." AAAI Conference on Artificial Intelligence, 1994.

Markdown

[Cohen. "Recovering Software Specifications with Inductive Logic Programming." AAAI Conference on Artificial Intelligence, 1994.](https://mlanthology.org/aaai/1994/cohen1994aaai-recovering/)

BibTeX

@inproceedings{cohen1994aaai-recovering,
  title     = {{Recovering Software Specifications with Inductive Logic Programming}},
  author    = {Cohen, William W.},
  booktitle = {AAAI Conference on Artificial Intelligence},
  year      = {1994},
  pages     = {142-148},
  url       = {https://mlanthology.org/aaai/1994/cohen1994aaai-recovering/}
}