Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Test-infected: programmers love writing tests
More Java gems
Safely creating correct subclasses without seeing superclass code
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Behavioural subtyping using invariants and constraints
Formal methods for distributed processing
Houdini, an Annotation Assistant for ESC/Java
FME '01 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
AGILE '06 Proceedings of the conference on AGILE 2006
Extending Dynamic Constraint Detection with Polymorphic Analysis
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Static specification mining using automata-based abstractions
Proceedings of the 2007 international symposium on Software testing and analysis
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
Privately Finding Specifications
IEEE Transactions on Software Engineering
DySy: dynamic symbolic execution for invariant inference
Proceedings of the 30th international conference on Software engineering
Extending dynamic constraint detection with disjunctive constraints
WODA '08 Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
Snugglebug: a powerful approach to weakest preconditions
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Discovering Comprehension Pitfalls in Class Hierarchies
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Generating Fixes from Object Behavior Anomalies
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Learning from 6,000 projects: lightweight cross-project anomaly detection
Proceedings of the 19th international symposium on Software testing and analysis
Automatic inference of abstract type behavior
Proceedings of the IEEE/ACM international conference on Automated software engineering
A fast linear-arithmetic solver for DPLL(T)
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Hi-index | 0.00 |
Automatic mining or inference of formal specifications from program source code is a desirable goal for documentation and verification purposes. However, current approaches that generate invariants, pre- and post-conditions, procedure summaries and sometimes also class invariants have mostly focused on extracting specifications from concrete method bodies. Consequently, almost all results have a low level of abstraction that is very close to the analyzed source code. We use JML model fields to raise the abstraction level of such automatically generated specifications, relying on the constraints imposed by behavioral subtyping. Starting from several derived classes we attempt to generate model fields for the supertype and represents clauses for each subtype. The relations between concrete and model fields are generated by checking the validity of predefined patterns against the specifications of subtype methods. Our prototype tool uses as inputs specifications generated with dynamic analysis (Daikon), identifies model fields and their representations, and generates specifications for supertype methods.