Object-oriented analysis and design with applications (2nd ed.)
Object-oriented analysis and design with applications (2nd ed.)
The object constraint language: precise modeling with UML
The object constraint language: precise modeling with UML
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Efficient incremental algorithms for dynamic detection of likely invariants
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Dynamically discovering likely interface invariants
Proceedings of the 28th international conference on Software engineering
Dynamic constraint detection for polymorphic behavior
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
DySy: dynamic symbolic execution for invariant inference
Proceedings of the 30th international conference on Software engineering
Proceedings of the 33rd International Conference on Software Engineering
Automatic inference of model fields and their representation
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Hi-index | 0.00 |
The general technique for dynamically detecting likely invariants, as implemented by Daikon, lacks specific objectoriented support for polymorphism. Daikon examines only the declared type of a variable which prohibits it from examination of the runtime variables in the presence of polymorphism. The approach presented in this paper extends the technique to consider the runtime type of a polymorphic variable, which may have different declared and runtime types. The runtime behavior of a polymorphic variable is captured by polymorphic constraints which have the form of an implication with the name of the runtime class in the antecedent. We demonstrate the improved accuracy of the dynamically detected specification on the Money example from the JUnit testing framework tutorial. Polymorphic constraints are shown to reveal the specification of the runtime behavior of the example.