International Conference on Software Engineering · 2012 · 115 citations · 30 references
ComputingComputer ScienceContractsFormal MethodsSoftware EngineeringApplication Programming InterfacesLegal LanguageSoftware DocumentationSpecification LanguagesApi DocumentationApplication Programming Interface (Api)Formal SpecificationsNatural Language InferenceReuseReuse In Software EngineeringSoftware LibrariesSoftware Verification
Application Programming Interface (API) documents are a typical way of describing legal usage of reusable software libraries, thus facilitating software reuse. However, even with such documents, developers often overlook some documents and build software systems that are inconsistent with the legal usage of those libraries. Existing software verification tools require formal specifications (such as code contracts), and therefore cannot directly verify the legal usage described in natural language text of API documents against the code using that library. However, in practice, most libraries do not come with formal specifications, thus hindering tool-based verification. To address this issue, we propose a novel approach to infer formal specifications from natural language text of API documents. Our evaluation results show that our approach achieves an average of 92% precision and 93% recall in identifying sentences that describe code contracts from more than 2500 sentences of API documents. Furthermore, our results show that our approach has an average 83% accuracy in inferring specifications from over 1600 sentences describing code contracts.
30
Accurate unlexicalized parsing
Dan Klein, Christopher D. Manning · 2003 · 3.1K citations · Full text
Language Studies, Computer Science, Computational Linguistics +13
Feature-rich part-of-speech tagging with a cyclic dependency network
Kristina Toutanova, Dan Klein, Christopher D. Manning et al. · 2003 · 2.9K citations · Full text
Bertrand Meyer · Computer · 1992 · 2.1K citations
Computing, Computer Science, Design +15