Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Test Driven Development: By Example
Test Driven Development: By Example
The use of industrial-strength formal methods
COMPSAC '97 Proceedings of the 21st International Computer Software and Applications Conference
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
ACM SIGPLAN Notices
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Propagation of JML non-null annotations in Java programs
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
MapReduce: simplified data processing on large clusters
Communications of the ACM - 50th anniversary issue: 1958 - 2008
JML Runtime Assertion Checking: Improved Error Reporting and Efficiency Using Strong Validity
FM '08 Proceedings of the 15th international symposium on Formal Methods
.QL: Object-Oriented Queries Made Easy
Generative and Transformational Techniques in Software Engineering II
A Verification Framework for FBD Based Software in Nuclear Power Plants
APSEC '08 Proceedings of the 2008 15th Asia-Pacific Software Engineering Conference
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Test-based inference of polynomial loop-bound functions
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Making resource analysis practical for real-time Java
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.00 |
Formal methods are considered to be highly expensive. Therefore, they are currently applied almost only in high risk software development. In this paper, we show that formal techniques can be also efficiently used in standard large-scale applications. We focus on the generation of specifications which state the termination condition of for loops in Java code (expressed as so called Java Modeling Language decreases clauses). We demonstrate that with help of relatively simple techniques it is possible to successfully generate the clauses for almost 80% of the loops in a number of widely deployed applications. Moreover, it turns out that the remaining 20% cases contain loops which should be carefully reviewed by software quality assurance personnel. The results show that our technique might be helpful in spreading the usage of formal methods onto typical business software.