Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1806799.1806806acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Online inference and enforcement of temporal properties

Published: 01 May 2010 Publication History

Abstract

The interfaces of software components are often paired with specifications or protocols that prescribe correct and safe usage. An important class of these specifications consists of temporal safety properties over function or method call sequences. Because violations of these properties can lead to program crashes or subtly inconsistent program state, these properties are frequently the target of runtime monitoring techniques. However, the properties must be specified in advance, a time-consuming process. Recognizing this problem, researchers have proposed various specification inference techniques, but they suffer from imprecision and require a significant investment in developer time.
This work presents the first fully automatic dynamic technique for simultaneously learning and enforcing general temporal properties over method call sequences. Our technique is an online algorithm that operates over a short, finite execution history. This limited view works well in practice due to the inherent temporal locality in sequential method calls on Java objects, a property we validate empirically. We have implemented our algorithm in a practical tool for Java, Ocd, that operates with a high degree of precision and finds new defects and code smells in well-tested applications.

References

[1]
M. Acharya, T. Xie, J. Pei, and J. Xu. Mining API patterns as partial orders from source code: from usage scenarios to specifications. In Proceedings of ESEC-FSE '07, 2007.
[2]
G. Ammons, R. Bodík, and J. R. Larus. Mining specifications. In Proceedings of POPL '02, 2002.
[3]
S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of OOPSLA '06, Oct. 2006.
[4]
E. Bodden, P. Lam, and L. Hendren. Finding programming errors earlier by evaluating runtime monitors ahead-of-time. In Proceedings of SIGSOFT '08/FSE-16, 2008.
[5]
R.-Y. Chang, A. Podgurski, and J. Yang. Finding what's not there: a new approach to revealing neglected conditions in software. In Proceedings of ISSTA '07, 2007.
[6]
F. Chen and G. Roşu. Mop: an efficient and generic runtime verification framework. In Proceedings of OOPSLA '07, 2007.
[7]
V. Dallmeier, C. Lindig, A. Wasylkowski, and A. Zeller. Mining object behavior with ADABU. In WODA '06: Proceedings of the 2006 international workshop on Dynamic systems analysis, 2006.
[8]
M. Das, S. Lerner, and M. Seigle. ESP: Path-sensitive program verification in polynomial time. In Proceedings of PLDI, 2002.
[9]
I. Dillig, T. Dillig, E. Yahav, and S. Chandra. The CLOSER: automating resource management in Java. In ISMM '08: Proceedings of the 7th international symposium on Memory management, 2008.
[10]
M. B. Dwyer, M. Diep, and S. G. Elbaum. Reducing the cost of path property monitoring through sampling. In ASE, 2008.
[11]
M. B. Dwyer, A. Kinneer, and S. Elbaum. Adaptive online program analysis. In ICSE '07: Proceedings of the 29th international conference on Software Engineering, 2007.
[12]
M. B. Dwyer and R. Purandare. Residual dynamic typestate analysis exploiting static analysis: results to reformulate and reduce the cost of dynamic analysis. In Proceedings of ASE, 2007.
[13]
S. Elbaum, S. Kanduri, and A. Andrews. Trace anomalies as precursors of field failures: an empirical study. Empirical Softw. Engg., 12(5), 2007.
[14]
D. Engler, D. Y. Chen, S. Hallem, A. Chou, and B. Chelf. Bugs as deviant behavior: a general approach to inferring errors in systems code. In SOSP '01: Proceedings of the eighteenth ACM symposium on Operating systems principles, 2001.
[15]
M. D. Ernst, A. Czeisler, W. G. Griswold, and D. Notkin. Quickly detecting relevant program invariants. In Proceedings of ICSE, 2000.
[16]
S. J. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. ACM Trans. Softw. Eng. Methodol., 17(2), 2008.
[17]
M. Gabel and Z. Su. Javert: Fully automatic mining of general temporal properties from dynamic traces. In Proceedings of SIGSOFT '08/FSE-16, 2008.
[18]
M. Gabel and Z. Su. Symbolic mining of temporal specifications. In Proceedings of ICSE '08, 2008.
[19]
M. Gopinathan and S. K. Rajamani. Enforcing object protocols by combining static and runtime analysis. In Proceedings of OOPSLA '08, 2008.
[20]
S. Hangal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. In Proceedings of ICSE, 2002.
[21]
C. Le Goues and W. Weimer. Specification mining with few false positives. In TACAS '09: Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, 2009.
[22]
Z. Li and Y. Zhou. PR-Miner: automatically extracting implicit programming rules and detecting violations in large software code. In Proceedings of ESEC/FSE-13, 2005.
[23]
S. Lu, S. Park, C. Hu, X. Ma, W. Jiang, Z. Li, R. A. Popa, and Y. Zhou. MUVI: automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs. In Proceedings of SOSP '07, 2007.
[24]
T. T. Nguyen, H. A. Nguyen, N. H. Pham, J. M. Al-Kofahi, and T. N. Nguyen. Graph-based mining of multiple object usage patterns. In Proceedings of ESEC/FSE '09, 2009.
[25]
M. K. Ramanathan, A. Grama, and S. Jagannathan. Path-sensitive inference of function precedence protocols. In Proceedings of ICSE, 2007.
[26]
R. E. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Softw. Eng., 12(1), 1986.
[27]
S. Thummalapenta and T. Xie. Mining exception-handling rules as sequence association rules. In ICSE '09: Proceedings of the 2009 IEEE 31st International Conference on Software Engineering, 2009.
[28]
A. Wasylkowski, A. Zeller, and C. Lindig. Detecting object usage anomalies. In Proceedings of ESEC-FSE, 2007.
[29]
J. Yang, D. Evans, D. Bhardwaj, T. Bhat, and M. Das. Perracotta: Mining temporal API rules from imperfect traces. In Proceedings of ICSE, 2006.

Cited By

View all
  • (2024)Specification Mining Based on the Ordering Points to Identify the Clustering Structure Clustering Algorithm and Model CheckingAlgorithms10.3390/a1701002817:1(28)Online publication date: 10-Jan-2024
  • (2024)LTL Learning on GPUsComputer Aided Verification10.1007/978-3-031-65633-0_10(209-231)Online publication date: 24-Jul-2024
  • (2023)Detecting API-Misuse Based on Pattern Mining via API Usage Graph with ParametersTheoretical Aspects of Software Engineering10.1007/978-3-031-35257-7_21(344-363)Online publication date: 27-Jun-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '10: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
May 2010
627 pages
ISBN:9781605587196
DOI:10.1145/1806799
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic analysis
  2. online algorithm
  3. temporal properties

Qualifiers

  • Research-article

Funding Sources

Conference

ICSE '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)2
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Specification Mining Based on the Ordering Points to Identify the Clustering Structure Clustering Algorithm and Model CheckingAlgorithms10.3390/a1701002817:1(28)Online publication date: 10-Jan-2024
  • (2024)LTL Learning on GPUsComputer Aided Verification10.1007/978-3-031-65633-0_10(209-231)Online publication date: 24-Jul-2024
  • (2023)Detecting API-Misuse Based on Pattern Mining via API Usage Graph with ParametersTheoretical Aspects of Software Engineering10.1007/978-3-031-35257-7_21(344-363)Online publication date: 27-Jun-2023
  • (2022)PPTL specification mining based on LNFGTheoretical Computer Science10.1016/j.tcs.2022.09.032937(85-95)Online publication date: Nov-2022
  • (2022)Measuring the interestingness of temporal logic behavioral specifications in process miningInformation Systems10.1016/j.is.2021.101920107:COnline publication date: 1-Jul-2022
  • (2022)MaxSAT-based temporal logic inference from noisy dataInnovations in Systems and Software Engineering10.1007/s11334-022-00444-818:3(427-442)Online publication date: 6-Apr-2022
  • (2022)Dynamic Specification Mining Based on TransformerTheoretical Aspects of Software Engineering10.1007/978-3-031-10363-6_16(220-237)Online publication date: 2022
  • (2022)RVprio: A tool for prioritizing runtime verification violationsSoftware Testing, Verification and Reliability10.1002/stvr.181332:5Online publication date: 7-Mar-2022
  • (2020)QMine: A Framework for Mining Quantitative Regular Expressions from System Traces2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C)10.1109/QRS-C51114.2020.00070(370-377)Online publication date: Dec-2020
  • (2020)Prioritizing Runtime Verification Violations2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST)10.1109/ICST46399.2020.00038(297-308)Online publication date: Oct-2020
  • Show More Cited By

View Options

Get Access

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