Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1639950.1640008acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
poster

Dynamically inferring, refining, and checking API usage protocols

Published: 25 October 2009 Publication History

Abstract

Using a set of API methods often requires compliance with a protocol, whose violation can lead to errors in the program. However, most APIs lack explicit and formal definitions of these protocols. We propose a dynamic program analysis for automatically inferring and refining specifications of correct method call sequences. Our experiments with several Java programs show that we can infer meaningful protocols, such as widely respected programming rules. Furthermore, our analysis finds violations of the inferred specifications that point out potential bugs to the programmer.

References

[1]
Glenn Ammons, Rastislav Bodik, and James R. Larus. Mining specifications. In POPL, 2002.
[2]
Kevin Bierhoff and Jonathan Aldrich. Modular typestate checking of aliased objects. In OOPSLA, 2007.
[3]
Stephen M. Blackburn et al. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA, 2006.
[4]
Feng Chen and Grigore Rosu. MOP: An efficient and generic runtime verification framework. In OOPSLA, 2007.
[5]
Michael Dean Ernst. Dynamically discovering likely program invariants. PhD thesis, University of Washington, 2000.
[6]
Mark Gabel and Zhendong Su. Javert: Fully automatic mining of general temporal properties from dynamic traces. In FSE, 2008.
[7]
Michael Pradel and Thomas R. Gross. Automatic generation of object usage specifications from large method traces. In ASE, 2009.
[8]
John Whaley, Michael C. Martin, and Monica S. Lam. Automatic extraction of object-oriented component interfaces. In ISSTA, 2002.
[9]
Jinlin Yang, David Evans, Deepali Bhardwaj, Thirumalesh Bhat, and Manuvir Das. Perracotta: Mining temporal API rules from imperfect traces. In ICSE, 2006.

Cited By

View all
  • (2024)SPIDER: Specification-Based Integration Defect RevealerTools and Methods of Program Analysis10.1007/978-3-031-50423-5_10(107-119)Online publication date: 3-Jan-2024
  • (2019)How effective are existing Java API specifications for finding bugs during runtime verification?Automated Software Engineering10.1007/s10515-019-00267-126:4(795-837)Online publication date: 21-Nov-2019
  • (2016)How good are the specs? a study of the bug-finding effectiveness of existing Java API specificationsProceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering10.1145/2970276.2970356(602-613)Online publication date: 25-Aug-2016
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
October 2009
502 pages
ISBN:9781605587684
DOI:10.1145/1639950

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 October 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. runtime verification
  2. specification mining

Qualifiers

  • Poster

Conference

OOPSLA09
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)3
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)SPIDER: Specification-Based Integration Defect RevealerTools and Methods of Program Analysis10.1007/978-3-031-50423-5_10(107-119)Online publication date: 3-Jan-2024
  • (2019)How effective are existing Java API specifications for finding bugs during runtime verification?Automated Software Engineering10.1007/s10515-019-00267-126:4(795-837)Online publication date: 21-Nov-2019
  • (2016)How good are the specs? a study of the bug-finding effectiveness of existing Java API specificationsProceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering10.1145/2970276.2970356(602-613)Online publication date: 25-Aug-2016
  • (2015)Making system user interactive tests repeatableProceedings of the 37th International Conference on Software Engineering - Volume 110.5555/2818754.2818764(55-65)Online publication date: 16-May-2015
  • (2015)Making System User Interactive Tests Repeatable: When and What Should We Control?2015 IEEE/ACM 37th IEEE International Conference on Software Engineering10.1109/ICSE.2015.28(55-65)Online publication date: May-2015
  • (2013)Automated API Property Inference TechniquesIEEE Transactions on Software Engineering10.1109/TSE.2012.6339:5(613-637)Online publication date: 1-May-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media