Mining Software Library Specifications using Inductive Logic Programming.Sriram Sankaranarayanan, Franjo Ivancic, and Aarti Gupta |
Software libraries are ubiquitous for organizing widely
useful functionalities in order to promote modularity and code reuse.
A typical software library is used by client programs through an API
that hides library internals from the client. Typically, the
rules governing the correct usage of the API are documented informally. As a
result, the behaviour of the library under some
corner cases may not be well understood by the programmer.
We propose a methodology for learning interface specifications using
inductive logic programming (ILP). Our technique runs several unit
tests on the library in order to generate relations describing the
operation of the library. The data collected from these tests are used
by an inductive learner to obtain rich Prolog
specifications. Such specifications capture essential properties of
the library. They may be used for applications such as
reverse engineering, and also to construct checks on
that enforce proper API usage.
|
ps pdf |
Intl. Conference On Software Engineering (ICSE 2008), pages 131-140, ACM Press. |
Copyright (C) Association For Computer Machinery (ACM). See first page of paper for copyright notice. Copy has been made available online for personal use only. Do not redistribute without permission. |