IODINE: a tool to automatically infer dynamic invariants for hardware designs
Proceedings of the 42nd annual Design Automation Conference
Perracotta: mining temporal API rules from imperfect traces
Proceedings of the 28th international conference on Software engineering
Inculcating invariants in introductory courses
Proceedings of the 28th international conference on Software engineering
LtRules: an automated software library usage rule extraction tool
Proceedings of the 28th international conference on Software engineering
Performance assertions for mobile devices
Proceedings of the 2006 international symposium on Software testing and analysis
Verification through the principle of least astonishment
Proceedings of the 2006 IEEE/ACM international conference on Computer-aided design
Discovery of SOA patterns via model checking
2nd international workshop on Service oriented software engineering: in conjunction with the 6th ESEC/FSE joint meeting
Toasters, Seat Belts, and Inferring Program Properties
Verified Software: Theories, Tools, Experiments
Inferno: streamlining verification with inferred semantics
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Synoptic: summarizing system logs with refinement
SLAML'10 Proceedings of the 2010 workshop on Managing systems via log analysis and machine learning techniques
A static model for reverse engineering of software threads and their interactions
ACOS'06 Proceedings of the 5th WSEAS international conference on Applied computer science
Leveraging existing instrumentation to automatically infer invariant-constrained models
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Mining temporal invariants from partially ordered logs
SLAML '11 Managing Large-scale Systems via the Analysis of System Logs and the Application of Machine Learning Techniques
Mining temporal invariants from partially ordered logs
ACM SIGOPS Operating Systems Review
Using concept lattices to uncover causal dependencies in software
ICFCA'06 Proceedings of the 4th international conference on Formal Concept Analysis
Dynamic property mining for embedded software
Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
Hi-index | 0.00 |
It is important that program maintainers understand important properties of the programs they modify and ensure that the changes they make do not alter essential properties in unintended ways. Manually documenting those properties, especially temporal ones that constrain the ordering of events, is difficult and rarely done in practice. We propose an automatic approach to inferring a target system's temporal properties based on analyzing its event traces. The core of our technique is a set of pre-defined property patterns among a few events. These patterns form a partial order in terms of their strictness. Our approach finds the strictest properties satisfied by a set of events based on the traces. We report results from experiments on two sets of programs: student solutions for a class assignment, and several recent versions of OpenSSL. Comparing properties inferred from different implementations led us to discover important behavioral differences which revealed flaws in the programs. Differences in automatically inferred temporal properties can provide useful information to programmers evolving complex, often unspecified, programs whose correctness depends on preservation of undocumented temporal properties.